diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 10ae5147..5d2491e7 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -56,12 +56,6 @@ jobs: ${{ runner.os }}-test- ${{ runner.os }}- - uses: julia-actions/julia-buildpkg@v1 - - name: Install matplotlib - if: runner.os == 'Linux' - run: sudo apt-get update && sudo apt-get install -y python3-matplotlib - - name: Build PyCall with system Python - if: runner.os == 'Linux' - run: julia -e 'ENV["PYTHON"]="python3"; using Pkg; Pkg.add("PyCall"); Pkg.build("PyCall")' - uses: julia-actions/julia-runtest@v1 env: BUILD_IS_PRODUCTION_BUILD: ${{ matrix.build_is_production_build }} @@ -89,10 +83,6 @@ jobs: version: ${{ matrix.julia_version }} - uses: julia-actions/cache@v2 - uses: julia-actions/julia-buildpkg@v1 - - name: Install matplotlib - run: sudo apt-get update && sudo apt-get install -y python3-matplotlib - - name: Build PyCall with system Python - run: julia -e 'ENV["PYTHON"]="python3"; using Pkg; Pkg.add("PyCall"); Pkg.build("PyCall")' - uses: julia-actions/julia-runtest@v1 env: BUILD_IS_PRODUCTION_BUILD: false diff --git a/.gitignore b/.gitignore index 8b4e9b9e..a584a539 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,5 @@ data/ram_air_kite/ram_air_kite_foil_cd_polar.csv data/ram_air_kite/ram_air_kite_foil_cm_polar.csv output/ output_cairo/ -examples_cp/.CondaPkg/ -test/.CondaPkg/ +.CondaPkg/ LocalPreferences.toml diff --git a/CHANGELOG.md b/CHANGELOG.md index 64e09d73..f344e5b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## Unreleased + +### Removed +- The `ControlPlots` plotting backend and its extension + `VortexStepMethodControlPlotsExt`, together with the `PythonCall`/Matplotlib + setup it required. Plotting is now Makie-only. +- The plot-backend dispatch machinery: `PlotBackend`, `MakieBackend`, + `ControlPlotsBackend`, and `set_plot_backend!`. Plotting functions work as + soon as a Makie backend and `MakieControlPlots` are loaded. +- `plot_circulation_distribution` (an exported stub that was never implemented). +- The `examples_cp/` directory and the `menu_cp()` ControlPlots example menu. + +### Changed +- The Makie extension now also loads when `MakieControlPlots` is present and uses + it for `plot_section_polars`. Examples load `GLMakie`/`CairoMakie` together + with `MakieControlPlots`. + ## VortexStepMethod v3.3.6 2026-06-13 ### Added diff --git a/Manifest-v1.11.toml.default b/Manifest-v1.11.toml.default index 43306bba..4c36e892 100644 --- a/Manifest-v1.11.toml.default +++ b/Manifest-v1.11.toml.default @@ -2,12 +2,12 @@ julia_version = "1.11.9" manifest_format = "2.0" -project_hash = "3afeaa867282214c3057ab37347a1bbb8af6fe92" +project_hash = "6d819b6b32f1312b2d31d1cba26887098fe3abd1" [[deps.ADTypes]] -git-tree-sha1 = "f7304359109c768cf32dc5fa2d371565bb63b68a" +git-tree-sha1 = "d9aaef7c63466eee4de23b4d9dad03629df54bea" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.21.0" +version = "1.22.1" weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] [deps.ADTypes.extensions] @@ -15,11 +15,17 @@ weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] ADTypesConstructionBaseExt = "ConstructionBase" ADTypesEnzymeCoreExt = "EnzymeCore" +[[deps.AMD]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "45a1272e3f809d36431e57ab22703c6896b8908f" +uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" +version = "0.5.3" + [[deps.Accessors]] deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "MacroTools"] -git-tree-sha1 = "2eeb2c9bef11013efc6f8f97f32ee59b146b09fb" +git-tree-sha1 = "7063ad1083578215c7c4bf410368150abe8d5524" uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.44" +version = "0.1.45" [deps.Accessors.extensions] AxisKeysExt = "AxisKeys" @@ -40,10 +46,10 @@ version = "0.1.44" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" [[deps.Adapt]] -deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "0761717147821d696c9470a7a86364b2fbd22fd8" +deps = ["LinearAlgebra"] +git-tree-sha1 = "daa72978cd7a624246e894a4f4f067706d4e17e2" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.5.2" +version = "4.7.0" weakdeps = ["SparseArrays", "StaticArrays"] [deps.Adapt.extensions] @@ -56,9 +62,9 @@ version = "1.1.2" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra"] -git-tree-sha1 = "54f895554d05c83e3dd59f6a396671dae8999573" +git-tree-sha1 = "75757da5d9f771ef5909fc84f81d2f9d24127315" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.24.0" +version = "7.27.0" [deps.ArrayInterface.extensions] ArrayInterfaceAMDGPUExt = "AMDGPU" @@ -68,6 +74,7 @@ version = "7.24.0" ArrayInterfaceCUDSSExt = ["CUDSS", "CUDA"] ArrayInterfaceChainRulesCoreExt = "ChainRulesCore" ArrayInterfaceChainRulesExt = "ChainRules" + ArrayInterfaceFillArraysExt = "FillArrays" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" ArrayInterfaceMetalExt = "Metal" ArrayInterfaceReverseDiffExt = "ReverseDiff" @@ -83,6 +90,7 @@ version = "7.24.0" CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" Metal = "dde4c033-4e86-420c-a63e-0dd931031962" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" @@ -106,9 +114,9 @@ version = "1.11.0" [[deps.BracketingNonlinearSolve]] deps = ["CommonSolve", "ConcreteStructs", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "7ad7171d693ae5552ac43862e7f6b61df4471c2b" +git-tree-sha1 = "6e7c9b6ab9aa711009a49252e45a122212c1d869" uuid = "70df07ce-3d50-431d-a3e7-ca6ddb60ac1e" -version = "1.12.1" +version = "1.12.2" weakdeps = ["ChainRulesCore", "ForwardDiff"] [deps.BracketingNonlinearSolve.extensions] @@ -144,9 +152,9 @@ uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.13.1" [[deps.CommonSolve]] -git-tree-sha1 = "78ea4ddbcf9c241827e7035c3a03e2e456711470" +git-tree-sha1 = "99ee296f88c12485402e37c2fd025f95ae097637" uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" -version = "0.2.6" +version = "0.2.9" [[deps.CommonSubexpressions]] deps = ["MacroTools"] @@ -179,9 +187,9 @@ weakdeps = ["InverseFunctions"] CompositionsBaseInverseFunctionsExt = "InverseFunctions" [[deps.ConcreteStructs]] -git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +git-tree-sha1 = "1988532cb3b4525bb718b99ba07e433bbf0e600b" uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" -version = "0.2.3" +version = "0.2.5" [[deps.ConstructionBase]] git-tree-sha1 = "b4b092499347b18a015186eae3042f72267106cb" @@ -223,15 +231,15 @@ version = "1.1.0" [[deps.DiffRules]] deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] -git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +git-tree-sha1 = "79a2aca180a85c690c58a020d47b426954b590f8" uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" -version = "1.15.1" +version = "1.16.0" [[deps.DifferentiationInterface]] deps = ["ADTypes", "LinearAlgebra"] -git-tree-sha1 = "7ae99144ea44715402c6c882bfef2adbeadbc4ce" +git-tree-sha1 = "2147a95a217cc8a78ec96ee03581adf129468e49" uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -version = "0.7.16" +version = "0.7.18" [deps.DifferentiationInterface.extensions] DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" @@ -241,8 +249,9 @@ version = "0.7.16" DifferentiationInterfaceFiniteDiffExt = "FiniteDiff" DifferentiationInterfaceFiniteDifferencesExt = "FiniteDifferences" DifferentiationInterfaceForwardDiffExt = ["ForwardDiff", "DiffResults"] - DifferentiationInterfaceGPUArraysCoreExt = "GPUArraysCore" + DifferentiationInterfaceGPUArraysCoreExt = ["GPUArraysCore", "Adapt"] DifferentiationInterfaceGTPSAExt = "GTPSA" + DifferentiationInterfaceHyperHessiansExt = "HyperHessians" DifferentiationInterfaceMooncakeExt = "Mooncake" DifferentiationInterfacePolyesterForwardDiffExt = ["PolyesterForwardDiff", "ForwardDiff", "DiffResults"] DifferentiationInterfaceReverseDiffExt = ["ReverseDiff", "DiffResults"] @@ -255,6 +264,7 @@ version = "0.7.16" DifferentiationInterfaceZygoteExt = ["Zygote", "ForwardDiff"] [deps.DifferentiationInterface.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" DiffResults = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" Diffractor = "9f5e2b26-1114-432f-b630-d3fe2085c51c" @@ -266,6 +276,7 @@ version = "0.7.16" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" GTPSA = "b27dd330-f138-47c5-815b-40db9dd9b6e8" + HyperHessians = "06b494a0-c8e0-40cc-ad32-d99506a00a6c" Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" @@ -298,9 +309,9 @@ uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.7" [[deps.EnzymeCore]] -git-tree-sha1 = "24bbb6fc8fb87eb71c1f8d00184a60fc22c63903" +git-tree-sha1 = "c6ee69ee502060982d12dbaaf3d8fcb4e835a0d1" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.8.19" +version = "0.8.20" weakdeps = ["Adapt", "ChainRulesCore"] [deps.EnzymeCore.extensions] @@ -317,15 +328,27 @@ git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" version = "0.3.2" +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "8e9c059d6857607253e837730dbf780b6b151acd" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.19.0" + + [deps.FileIO.extensions] + HTTPExt = "HTTP" + + [deps.FileIO.weakdeps] + HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" + [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" version = "1.11.0" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] -git-tree-sha1 = "73e879af0e767bd6dfade7c5b09d7b05657a8284" +git-tree-sha1 = "2e5742cda07276e1834281ada4cc71b6bfc87586" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.30.0" +version = "2.31.1" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -340,16 +363,16 @@ version = "2.30.0" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [[deps.FixedPointNumbers]] -deps = ["Statistics"] -git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" +deps = ["Random", "Statistics"] +git-tree-sha1 = "59af96b98217c6ef4ae0dfe065ac7c20831d1a84" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.5" +version = "0.8.6" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] -git-tree-sha1 = "cddeab6487248a39dae1a960fff0ac17b2a28888" +git-tree-sha1 = "2c5d0b0e12088cde2cf84afb2784415b1ea3dfee" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "1.3.3" +version = "1.4.1" weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] @@ -362,9 +385,9 @@ version = "1.1.3" [[deps.FunctionWrappersWrappers]] deps = ["FunctionWrappers", "PrecompileTools", "TruncatedStacktraces"] -git-tree-sha1 = "ce6762f8f0e7542534f01523ae051e625cbf0468" +git-tree-sha1 = "9760060160c6d7f642308eed67a40a1ffe3f028c" uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" -version = "1.5.0" +version = "1.9.3" [deps.FunctionWrappersWrappers.extensions] FunctionWrappersWrappersEnzymeExt = ["Enzyme", "EnzymeCore"] @@ -399,9 +422,9 @@ version = "1.11.0" [[deps.Interpolations]] deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] -git-tree-sha1 = "65d505fa4c0d7072990d659ef3fc086eb6da8208" +git-tree-sha1 = "48922d06068130f87e43edef52382e6a94305ae6" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -version = "0.16.2" +version = "0.16.3" [deps.Interpolations.extensions] InterpolationsForwardDiffExt = "ForwardDiff" @@ -436,15 +459,15 @@ version = "1.0.0" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" +git-tree-sha1 = "7204148362dafe5fe6a273f855b8ccbe4df8173e" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.7.1" +version = "1.8.0" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "c4d19f51afc7ba2afbe32031b8f2d21b11c9e26e" +git-tree-sha1 = "fc2e5bc665dfa1be33fac60b5762d462bccfae7b" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.10.6" +version = "0.10.8" [[deps.LaTeXStrings]] git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" @@ -493,9 +516,9 @@ version = "1.18.0+0" [[deps.LineSearch]] deps = ["ADTypes", "CommonSolve", "ConcreteStructs", "FastClosures", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "SciMLBase", "SciMLJacobianOperators", "StaticArraysCore"] -git-tree-sha1 = "69da095e4c24ed3c4a168bb76dc9c620a6d7239c" +git-tree-sha1 = "a7553de02835e996f80bf895a291ab981ba1f796" uuid = "87fe0de2-c867-4266-b59a-2f0a94fc965b" -version = "0.1.7" +version = "0.1.10" [deps.LineSearch.extensions] LineSearchLineSearchesExt = "LineSearches" @@ -509,10 +532,10 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" version = "1.11.0" [[deps.LinearSolve]] -deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "OpenBLAS_jll", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "42b5cb44317e89ef75dd841c9c8eba9045bf9ff0" +deps = ["AMD", "ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "OpenBLAS_jll", "PrecompileTools", "Preferences", "PureKLU", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "Setfield", "SparseArrays", "SparseColumnPivotedQR", "StaticArraysCore"] +git-tree-sha1 = "ec49ed72f6024be2f9833fe630fbd72f6048f8ad" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "3.75.0" +version = "3.87.0" [deps.LinearSolve.extensions] LinearSolveAMDGPUExt = "AMDGPU" @@ -520,7 +543,7 @@ version = "3.75.0" LinearSolveBLISExt = ["blis_jll", "LAPACK_jll"] LinearSolveBandedMatricesExt = "BandedMatrices" LinearSolveBlockDiagonalsExt = "BlockDiagonals" - LinearSolveCUDAExt = "CUDA" + LinearSolveCUDAExt = ["cuSOLVER"] LinearSolveCUDSSExt = "CUDSS" LinearSolveCUSOLVERRFExt = ["CUSOLVERRF", "SparseArrays"] LinearSolveChainRulesCoreExt = "ChainRulesCore" @@ -531,27 +554,32 @@ version = "3.75.0" LinearSolveFastLapackInterfaceExt = "FastLapackInterface" LinearSolveForwardDiffExt = "ForwardDiff" LinearSolveGinkgoExt = ["Ginkgo", "SparseArrays"] + LinearSolveHSLExt = ["HSL", "SparseArrays"] LinearSolveHYPREExt = "HYPRE" LinearSolveIterativeSolversExt = "IterativeSolvers" LinearSolveKernelAbstractionsExt = "KernelAbstractions" LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMUMPSExt = ["MUMPS", "SparseArrays"] LinearSolveMetalExt = "Metal" LinearSolveMooncakeExt = "Mooncake" - LinearSolvePETScCSRExt = ["PETSc", "SparseArrays", "SparseMatricesCSR"] - LinearSolvePETScExt = ["PETSc", "SparseArrays"] + LinearSolvePETScExt = ["PETSc", "SparseArrays", "SparseMatricesCSR"] LinearSolvePETScMPIExt = ["PETSc", "PartitionedArrays", "SparseArrays", "SparseMatricesCSR"] LinearSolveParUExt = ["ParU_jll", "SparseArrays"] LinearSolvePardisoExt = ["Pardiso", "SparseArrays"] + LinearSolvePartitionedSolversExt = ["PartitionedArrays", "PartitionedSolvers"] + LinearSolvePureUMFPACKExt = ["PureUMFPACK", "SparseArrays"] LinearSolveRecursiveFactorizationExt = "RecursiveFactorization" + LinearSolveSTRUMPACKExt = ["SparseArrays", "STRUMPACK_jll"] LinearSolveSparseArraysExt = "SparseArrays" LinearSolveSparspakExt = ["SparseArrays", "Sparspak"] + LinearSolveSpecializingFactorizationsExt = "SpecializingFactorizations" + LinearSolveSuperLUDISTExt = ["SparseArrays", "SuperLUDIST"] [deps.LinearSolve.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" AlgebraicMultigrid = "2169fc97-5a83-5252-b627-83903c6c433c" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" CUSOLVERRF = "a8cc9031-bad2-4722-94f5-40deabb4245c" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" @@ -562,28 +590,35 @@ version = "3.75.0" FastLapackInterface = "29a986be-02c6-4525-aec4-84b980013641" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Ginkgo = "4c8bd3c9-ead9-4b5e-a625-08f1338ba0ec" + HSL = "34c5aeac-e683-54a6-a0e9-6e0fdc586c50" HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" LAPACK_jll = "51474c39-65e3-53ba-86ba-03b1b862ec14" + MUMPS = "55d2b088-9f4e-11e9-26c0-150b02ea6a46" Metal = "dde4c033-4e86-420c-a63e-0dd931031962" Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" PETSc = "ace2c81b-2b5f-4b1e-a30d-d662738edfe0" ParU_jll = "9e0b026c-e8ce-559c-a2c4-6a3d5c955bc9" Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" PartitionedArrays = "5a9dfac6-5c52-46f7-8278-5e2210713be9" + PartitionedSolvers = "11b65f7f-80ac-401b-9ef2-3db765482d62" + PureUMFPACK = "b7e1f0a2-3c4d-4e5f-9a0b-1c2d3e4f5a6b" RecursiveFactorization = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + STRUMPACK_jll = "86fbd0b9-476f-557c-b766-62c724b42d8c" SparseMatricesCSR = "a0a7dd2c-ebf4-11e9-1f05-cf50bc540ca1" Sparspak = "e56a9233-b9d6-4f03-8d0f-1825330902ac" + SpecializingFactorizations = "fa08b7a1-13d3-4faf-875d-5cbc1520e3f3" + SuperLUDIST = "4cd002a6-0da4-410d-a012-232df062f478" blis_jll = "6136c539-28a5-5bf0-87cc-b183200dce32" + cuSOLVER = "887afef0-6a32-4de5-add4-7827692ba8fc" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "13ca9e2586b89836fd20cccf56e57e2b9ae7f38f" +git-tree-sha1 = "bba2d9aa057d8f126415de240573e86a8f39d2a1" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.29" +version = "1.0.1" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -623,9 +658,9 @@ version = "1.11.0" [[deps.MaybeInplace]] deps = ["ArrayInterface", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "54e2fdc38130c05b42be423e90da3bade29b74bd" +git-tree-sha1 = "bf287c2abdd365d73c9ee86b262c6d8af0d6e2a1" uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" -version = "0.1.4" +version = "0.1.5" weakdeps = ["SparseArrays"] [deps.MaybeInplace.extensions] @@ -649,21 +684,33 @@ version = "1.11.0" uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2023.12.12" +[[deps.MuladdMacro]] +deps = ["PrecompileTools"] +git-tree-sha1 = "e8dcbeef032ba2f9051a44ac22b4e54e3a1a0099" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.6" + +[[deps.NPZ]] +deps = ["FileIO", "ZipFile"] +git-tree-sha1 = "60a8e272fe0c5079363b28b0953831e2dd7b7e6f" +uuid = "15e1cf62-19b3-5cfa-8e77-841668bca605" +version = "0.4.3" + [[deps.NaNMath]] deps = ["OpenLibm_jll"] -git-tree-sha1 = "9b8215b1ee9e78a293f99797cd31375471b2bcae" +git-tree-sha1 = "dbd2e8cd2c1c27f0b584f6661b4309609c5a685e" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "1.1.3" +version = "1.1.4" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.NonlinearSolve]] -deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "NonlinearSolveBase", "NonlinearSolveFirstOrder", "NonlinearSolveQuasiNewton", "NonlinearSolveSpectralMethods", "PrecompileTools", "Preferences", "Reexport", "SciMLBase", "SciMLLogging", "Setfield", "SimpleNonlinearSolve", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "e88921859836899abe94d08ea0fd42137067280e" +deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "NonlinearSolveBase", "NonlinearSolveFirstOrder", "NonlinearSolveQuasiNewton", "NonlinearSolveSpectralMethods", "PrecompileTools", "Preferences", "Reexport", "SciMLBase", "Setfield", "SimpleNonlinearSolve", "StaticArraysCore", "SymbolicIndexingInterface"] +git-tree-sha1 = "997abb773470b8c0bc6f85e3bfe86ff437983121" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "4.17.1" +version = "4.20.1" [deps.NonlinearSolve.extensions] NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" @@ -694,9 +741,9 @@ version = "4.17.1" [[deps.NonlinearSolveBase]] deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "LogExpFunctions", "Markdown", "MaybeInplace", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Setfield", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] -git-tree-sha1 = "a19a5df29ef2b197499fc631fa1a59385ae15262" +git-tree-sha1 = "ed3b90b4c6265192f6dc5d7297d32a6766f74c2e" uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" -version = "2.25.0" +version = "2.31.3" [deps.NonlinearSolveBase.extensions] NonlinearSolveBaseBandedMatricesExt = "BandedMatrices" @@ -726,15 +773,15 @@ version = "2.25.0" [[deps.NonlinearSolveFirstOrder]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "ce68820a4f421fb5bee7ec4dcf875aff33886bfb" +git-tree-sha1 = "2ec3c6ce945831db0ec689df143ea1190db75be9" uuid = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" -version = "2.1.1" +version = "2.1.2" [[deps.NonlinearSolveQuasiNewton]] deps = ["ArrayInterface", "CommonSolve", "ConcreteStructs", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLOperators", "StaticArraysCore"] -git-tree-sha1 = "538432ca1aea8bf63db02929bf870501f8a7c64c" +git-tree-sha1 = "06f9454f0dc432502c465d87dbc20fc64e2192ea" uuid = "9a2c21bd-3a47-402d-9113-8faf9a0ee114" -version = "1.13.1" +version = "1.13.2" weakdeps = ["ForwardDiff"] [deps.NonlinearSolveQuasiNewton.extensions] @@ -742,9 +789,9 @@ weakdeps = ["ForwardDiff"] [[deps.NonlinearSolveSpectralMethods]] deps = ["CommonSolve", "ConcreteStructs", "LineSearch", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "a3781e12becdf0ce5520bd97ec617e879bf4e9f2" +git-tree-sha1 = "ba7d164f81482d09a03ea7e8c59ef313618e661e" uuid = "26075421-4e9a-44e1-8bd1-420ed7ad02b2" -version = "1.7.1" +version = "1.7.2" weakdeps = ["ForwardDiff"] [deps.NonlinearSolveSpectralMethods.extensions] @@ -776,9 +823,9 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.6+0" [[deps.OrderedCollections]] -git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee" +git-tree-sha1 = "94ba93778373a53bfd5a0caaf7d809c445292ff4" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.8.1" +version = "1.8.2" [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] @@ -799,9 +846,9 @@ version = "1.11.0" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterface", "PrecompileTools"] -git-tree-sha1 = "e16b73bf892c55d16d53c9c0dbd0fb31cb7e25da" +git-tree-sha1 = "0c319df479a33799d3b7566fbf14498e4e38a6f3" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "1.2.0" +version = "1.2.1" [deps.PreallocationTools.extensions] PreallocationToolsForwardDiffExt = "ForwardDiff" @@ -830,6 +877,16 @@ deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" version = "1.11.0" +[[deps.PureKLU]] +deps = ["LinearAlgebra", "MuladdMacro", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "7ff9a12af707ff8b8fc54e5e10b732af1019f6f4" +uuid = "0c0d3e7f-3a8b-4f7e-b6f1-9a4d2e7c1f01" +version = "1.1.0" +weakdeps = ["ForwardDiff"] + + [deps.PureKLU.extensions] + PureKLUForwardDiffExt = "ForwardDiff" + [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" @@ -853,9 +910,9 @@ version = "1.3.4" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "LinearAlgebra", "PrecompileTools", "RecipesBase", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "79a5a1a5b6294c54602d18a59026ec0b07471054" +git-tree-sha1 = "a0aa35f847b21c7884371ec60913632cc1b68495" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "4.2.0" +version = "4.3.2" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsCUDAExt = "CUDA" @@ -904,9 +961,9 @@ version = "1.3.1" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "cfcdc949c4660544ab0fdeed169561cb22f835f4" +git-tree-sha1 = "bd9d6c153d0c8a120b504bfb2f3be42308cc857a" uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.18" +version = "0.5.21" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -914,9 +971,9 @@ version = "0.7.0" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "Random", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLLogging", "SciMLOperators", "SciMLPublic", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] -git-tree-sha1 = "4fdad3606c60fbbd52424737c31ec4141672c809" +git-tree-sha1 = "f3e7cd82d057fdeacf9c12292ea72481c05a57c2" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "3.3.0" +version = "3.30.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -933,6 +990,7 @@ version = "3.3.0" SciMLBasePythonCallExt = "PythonCall" SciMLBaseRCallExt = "RCall" SciMLBaseReverseDiffExt = "ReverseDiff" + SciMLBaseStaticArraysExt = "StaticArrays" SciMLBaseTrackerExt = "Tracker" SciMLBaseZygoteExt = ["Zygote", "ChainRulesCore"] @@ -952,20 +1010,21 @@ version = "3.3.0" PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" RCall = "6f49c342-dc21-5d91-9882-a32aef131414" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.SciMLJacobianOperators]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DifferentiationInterface", "FastClosures", "LinearAlgebra", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "7156a5b51cba1bea33a82a036939ead4131f92bc" +git-tree-sha1 = "fcdbc0214fd43dcb9201bddda77bc4cb2ddf5da7" uuid = "19f34311-ddf3-4b8b-af20-060888a46c0e" -version = "0.1.13" +version = "0.1.14" [[deps.SciMLLogging]] deps = ["Logging", "LoggingExtras", "Preferences"] -git-tree-sha1 = "0161be062570af4042cf6f69e3d5d0b0555b6927" +git-tree-sha1 = "032fad418d14f5b9bad9db7f97db23514886dabc" uuid = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" -version = "1.9.1" +version = "2.0.1" [deps.SciMLLogging.extensions] SciMLLoggingTracyExt = "Tracy" @@ -974,26 +1033,31 @@ version = "1.9.1" Tracy = "e689c965-62c8-4b79-b2c5-8359227902fd" [[deps.SciMLOperators]] -deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra"] -git-tree-sha1 = "234869cf9fee9258a95464b7a7065cc7be84db00" +deps = ["Accessors", "Adapt", "ArrayInterface", "DocStringExtensions", "LinearAlgebra"] +git-tree-sha1 = "e6d0a9836575d20218770fc38784e5f669c58b1b" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "1.16.0" -weakdeps = ["SparseArrays", "StaticArraysCore"] +version = "1.22.1" [deps.SciMLOperators.extensions] + SciMLOperatorsLoopVectorizationExt = "LoopVectorization" SciMLOperatorsSparseArraysExt = "SparseArrays" SciMLOperatorsStaticArraysCoreExt = "StaticArraysCore" + [deps.SciMLOperators.weakdeps] + LoopVectorization = "bdcacae8-1622-11e9-2a5c-532679323890" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + [[deps.SciMLPublic]] -git-tree-sha1 = "0ba076dbdce87ba230fff48ca9bca62e1f345c9b" +git-tree-sha1 = "2b1b64add566435a768abdb3b053cac17d19ff3c" uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" -version = "1.0.1" +version = "1.2.1" [[deps.SciMLStructures]] deps = ["ArrayInterface", "PrecompileTools"] -git-tree-sha1 = "607f6867d0b0553e98fc7f725c9f9f13b4d01a32" +git-tree-sha1 = "1419128e9816e2876f7c4e93a519683b6d1d211e" uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.10.0" +version = "1.10.1" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -1012,9 +1076,9 @@ version = "1.11.0" [[deps.SimpleNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "d688de789b7e643326caf9a1051376dadbcd8873" +git-tree-sha1 = "72413286ef77ccacac383c5578641b99100eabd9" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "2.11.1" +version = "2.12.1" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" @@ -1035,11 +1099,21 @@ deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" version = "1.11.0" +[[deps.SparseColumnPivotedQR]] +deps = ["LinearAlgebra", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "e408da3a280ab9033531cad1ebccbb54c81ea9c3" +uuid = "a57abbd0-fea5-4d57-96be-5e525945e8e4" +version = "2.1.2" +weakdeps = ["AMD"] + + [deps.SparseColumnPivotedQR.extensions] + SparseColumnPivotedQRAMDExt = "AMD" + [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "2700b235561b0335d5bef7097a111dc513b8655e" +git-tree-sha1 = "6547cbdd8ce32efba0d21c5a40fa96d1a3548f9f" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.7.2" +version = "2.8.0" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -1089,9 +1163,9 @@ version = "7.7.0+0" [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "94c58884e013efff548002e8dc2fdd1cb74dfce5" +git-tree-sha1 = "d4751bc16b120dc617719f7901a3b4e69c85b7bf" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.46" +version = "0.3.49" [deps.SymbolicIndexingInterface.extensions] SymbolicIndexingInterfacePrettyTablesExt = "PrettyTables" @@ -1165,6 +1239,12 @@ git-tree-sha1 = "a1c0c7585346251353cddede21f180b96388c403" uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" version = "0.4.16" +[[deps.ZipFile]] +deps = ["Libdl", "Printf", "Zlib_jll"] +git-tree-sha1 = "f492b7fe1698e623024e873244f10d89c95c340a" +uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" +version = "0.10.1" + [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" @@ -1182,9 +1262,9 @@ version = "1.59.0+0" [[deps.oneTBB_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "1350188a69a6e46f799d3945beef36435ed7262f" +git-tree-sha1 = "da8c1f6eee04831f14edcfa5dae611d309807e57" uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" -version = "2022.0.0+1" +version = "2022.3.0+0" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] diff --git a/Manifest-v1.12.toml.default b/Manifest-v1.12.toml.default index 3d686d1c..b23b4e03 100644 --- a/Manifest-v1.12.toml.default +++ b/Manifest-v1.12.toml.default @@ -1,13 +1,13 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.12.6" +julia_version = "1.12.5" manifest_format = "2.0" -project_hash = "356626525ca9bb0f9ff17fd7cd0e99e15eac7f01" +project_hash = "30adb65bf2e48d1c0cd0a19da51c375ecdec07ec" [[deps.ADTypes]] -git-tree-sha1 = "bbc22a9a08a0ef6460041086d8a7b27940ed4ffd" +git-tree-sha1 = "d9aaef7c63466eee4de23b4d9dad03629df54bea" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.22.0" +version = "1.22.1" weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] [deps.ADTypes.extensions] @@ -15,6 +15,12 @@ weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] ADTypesConstructionBaseExt = "ConstructionBase" ADTypesEnzymeCoreExt = "EnzymeCore" +[[deps.AMD]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "45a1272e3f809d36431e57ab22703c6896b8908f" +uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" +version = "0.5.3" + [[deps.ANSIColoredPrinters]] git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9" @@ -38,9 +44,9 @@ version = "0.4.5" [[deps.Accessors]] deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "MacroTools"] -git-tree-sha1 = "2eeb2c9bef11013efc6f8f97f32ee59b146b09fb" +git-tree-sha1 = "7063ad1083578215c7c4bf410368150abe8d5524" uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.44" +version = "0.1.45" [deps.Accessors.extensions] AxisKeysExt = "AxisKeys" @@ -62,9 +68,9 @@ version = "0.1.44" [[deps.Adapt]] deps = ["LinearAlgebra"] -git-tree-sha1 = "28e1637322d4019ed2577cbec9268fab9b7da117" +git-tree-sha1 = "daa72978cd7a624246e894a4f4f067706d4e17e2" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.6.0" +version = "4.7.0" weakdeps = ["SparseArrays", "StaticArrays"] [deps.Adapt.extensions] @@ -90,9 +96,9 @@ version = "0.4.2" [[deps.Aqua]] deps = ["Compat", "Pkg", "Test"] -git-tree-sha1 = "d57fd255a8932b6509baf43284c416fc44d0b903" +git-tree-sha1 = "4537cc8ed3fba5d88b844a18f7e9bb93f07d2742" uuid = "4c88cf16-eb10-579e-8560-4a9242c79595" -version = "0.8.14" +version = "0.8.16" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" @@ -100,9 +106,9 @@ version = "1.1.2" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra"] -git-tree-sha1 = "3d0cabd25fab32390e3bcb82cd67e700aebd9816" +git-tree-sha1 = "75757da5d9f771ef5909fc84f81d2f9d24127315" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.25.0" +version = "7.27.0" [deps.ArrayInterface.extensions] ArrayInterfaceAMDGPUExt = "AMDGPU" @@ -112,6 +118,7 @@ version = "7.25.0" ArrayInterfaceCUDSSExt = ["CUDSS", "CUDA"] ArrayInterfaceChainRulesCoreExt = "ChainRulesCore" ArrayInterfaceChainRulesExt = "ChainRules" + ArrayInterfaceFillArraysExt = "FillArrays" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" ArrayInterfaceMetalExt = "Metal" ArrayInterfaceReverseDiffExt = "ReverseDiff" @@ -127,6 +134,7 @@ version = "7.25.0" CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" Metal = "dde4c033-4e86-420c-a63e-0dd931031962" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" @@ -139,10 +147,10 @@ uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" version = "1.11.0" [[deps.Automa]] -deps = ["PrecompileTools", "SIMD", "TranscodingStreams"] -git-tree-sha1 = "a8f503e8e1a5f583fbef15a8440c8c7e32185df2" +deps = ["PrecompileTools", "TranscodingStreams"] +git-tree-sha1 = "94eab0b3ccdcac361188cc661daf69d4433c1818" uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" -version = "1.1.0" +version = "1.2.0" [[deps.AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] @@ -161,9 +169,9 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" version = "1.11.0" [[deps.BaseDirs]] -git-tree-sha1 = "bca794632b8a9bbe159d56bf9e31c422671b35e0" +git-tree-sha1 = "8c290a1b223deaeea9aea44b235d24546da8eb98" uuid = "18cc8868-cbac-4acf-b575-c8ff214dc66f" -version = "1.3.2" +version = "1.4.0" [[deps.BenchmarkTools]] deps = ["Compat", "JSON", "Logging", "PrecompileTools", "Printf", "Profile", "Statistics", "UUIDs"] @@ -172,15 +180,15 @@ uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" version = "1.8.0" [[deps.BitFlags]] -git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" +git-tree-sha1 = "bbe1079eecf9c9fbb52765193ad2bae27ae09bc8" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.9" +version = "0.1.10" [[deps.BracketingNonlinearSolve]] deps = ["CommonSolve", "ConcreteStructs", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "7ad7171d693ae5552ac43862e7f6b61df4471c2b" +git-tree-sha1 = "6e7c9b6ab9aa711009a49252e45a122212c1d869" uuid = "70df07ce-3d50-431d-a3e7-ca6ddb60ac1e" -version = "1.12.1" +version = "1.12.2" weakdeps = ["ChainRulesCore", "ForwardDiff"] [deps.BracketingNonlinearSolve.extensions] @@ -228,9 +236,9 @@ version = "1.1.1" [[deps.CairoMakie]] deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] -git-tree-sha1 = "fa072933899aae6dc61dde934febed8254e66c6a" +git-tree-sha1 = "80b2770813b42f80235ea57f4333de8ff3e1c342" uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -version = "0.15.9" +version = "0.15.12" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] @@ -248,6 +256,23 @@ weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] ChainRulesCoreSparseArraysExt = "SparseArrays" +[[deps.ChunkCodecCore]] +git-tree-sha1 = "1a3ad7e16a321667698a19e77362b35a1e94c544" +uuid = "0b6fb165-00bc-4d37-ab8b-79f91016dbe1" +version = "1.0.1" + +[[deps.ChunkCodecLibZlib]] +deps = ["ChunkCodecCore", "Zlib_jll"] +git-tree-sha1 = "cee8104904c53d39eb94fd06cbe60cb5acde7177" +uuid = "4c0bbee4-addc-4d73-81a0-b6caacae83c8" +version = "1.0.0" + +[[deps.ChunkCodecLibZstd]] +deps = ["ChunkCodecCore", "Zstd_jll"] +git-tree-sha1 = "34d9873079e4cb3d0c62926a225136824677073f" +uuid = "55437552-ac27-4d47-9aa3-63184e8fd398" +version = "1.0.0" + [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9" @@ -299,13 +324,9 @@ uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.13.1" [[deps.CommonSolve]] -git-tree-sha1 = "dd91a10d8b8ae06e15706158eaf1a3e87e97b5f5" +git-tree-sha1 = "99ee296f88c12485402e37c2fd025f95ae097637" uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" -version = "0.2.7" -weakdeps = ["EnzymeCore"] - - [deps.CommonSolve.extensions] - CommonSolveEnzymeCoreExt = "EnzymeCore" +version = "0.2.9" [[deps.CommonSubexpressions]] deps = ["MacroTools"] @@ -339,14 +360,14 @@ weakdeps = ["InverseFunctions"] [[deps.ComputePipeline]] deps = ["Observables", "Preferences"] -git-tree-sha1 = "3b4be73db165146d8a88e47924f464e55ab053cd" +git-tree-sha1 = "7bc84b769c1d384315e7b5c4ac03a6c303e6cf35" uuid = "95dc2771-c249-4cd0-9c9f-1f3b4330693c" -version = "0.1.7" +version = "0.1.8" [[deps.ConcreteStructs]] -git-tree-sha1 = "ed1da4eac5ba9b3f6d061c90f3ca6ba190dd6595" +git-tree-sha1 = "1988532cb3b4525bb718b99ba07e433bbf0e600b" uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" -version = "0.2.4" +version = "0.2.5" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] @@ -354,12 +375,6 @@ git-tree-sha1 = "21d088c496ea22914fe80906eb5bce65755e5ec8" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.5.1" -[[deps.CondaPkg]] -deps = ["JSON", "Markdown", "MicroMamba", "Pidfile", "Pkg", "Preferences", "Scratch", "TOML", "pixi_jll"] -git-tree-sha1 = "2b1afb8ae65a0758795b00adafb37f97e67ef0e9" -uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" -version = "0.2.36" - [[deps.ConstructionBase]] git-tree-sha1 = "b4b092499347b18a015186eae3042f72267106cb" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" @@ -376,18 +391,6 @@ git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" version = "0.6.3" -[[deps.ControlPlots]] -deps = ["JLD2", "LaTeXStrings", "Pkg", "Printf", "PythonPlot", "StaticArraysCore"] -git-tree-sha1 = "6cbab46fef00616339eb4c3e10faeb11b408a9cc" -uuid = "23c2ee80-7a9e-4350-b264-8e670f12517c" -version = "0.3.0" - - [deps.ControlPlots.extensions] - ControlPlotsExt = "ControlSystemsBase" - - [deps.ControlPlots.weakdeps] - ControlSystemsBase = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e" - [[deps.CoreMath]] deps = ["CoreMath_jll"] git-tree-sha1 = "8c0480f92b1b1796239156a1b9b1bfb1b39499b4" @@ -418,9 +421,9 @@ version = "1.8.2" [[deps.DataStructures]] deps = ["OrderedCollections"] -git-tree-sha1 = "e86f4a2805f7f19bec5129bc9150c38208e5dc23" +git-tree-sha1 = "6fb53a69613a0b2b68a0d12671717d307ab8b24e" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.19.4" +version = "0.19.5" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -527,19 +530,21 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" version = "1.11.0" [[deps.Distributions]] -deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "e421c1938fafab0165b04dc1a9dbe2a26272952c" +deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "Roots", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "cd3c5ac74cd3923c8945c6a81518c46abd0e73a3" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.125" +version = "0.25.129" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsSparseConnectivityTracerExt = "SparseConnectivityTracer" DistributionsTestExt = "Test" [deps.Distributions.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.DocStringExtensions]] @@ -608,16 +613,11 @@ git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" version = "0.1.10" -[[deps.Extents]] -git-tree-sha1 = "b309b36a9e02fe7be71270dd8c0fd873625332b4" -uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.6" - [[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libva_jll", "libvorbis_jll", "x264_jll", "x265_jll"] -git-tree-sha1 = "cac41ca6b2d399adfc95e51240566f8a60a80806" +git-tree-sha1 = "7a58e45171b63ed4782f2d36fdee8713a469e6e0" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "8.1.0+0" +version = "8.1.2+0" [[deps.FFTA]] deps = ["AbstractFFTs", "DocStringExtensions", "LinearAlgebra", "MuladdMacro", "Primes", "Random", "Reexport"] @@ -686,9 +686,9 @@ weakdeps = ["PDMats", "SparseArrays", "StaticArrays", "Statistics"] [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] -git-tree-sha1 = "f7017a4f337f8df189fcce98e32b67a1298a2115" +git-tree-sha1 = "2e5742cda07276e1834281ada4cc71b6bfc87586" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.31.0" +version = "2.31.1" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -703,10 +703,10 @@ version = "2.31.0" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [[deps.FixedPointNumbers]] -deps = ["Statistics"] -git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" +deps = ["Random", "Statistics"] +git-tree-sha1 = "59af96b98217c6ef4ae0dfe065ac7c20831d1a84" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.5" +version = "0.8.6" [[deps.Fontconfig_jll]] deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] @@ -721,9 +721,9 @@ version = "1.3.7" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] -git-tree-sha1 = "cddeab6487248a39dae1a960fff0ac17b2a28888" +git-tree-sha1 = "2c5d0b0e12088cde2cf84afb2784415b1ea3dfee" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "1.3.3" +version = "1.4.1" weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] @@ -760,9 +760,9 @@ version = "1.1.3" [[deps.FunctionWrappersWrappers]] deps = ["FunctionWrappers", "PrecompileTools", "TruncatedStacktraces"] -git-tree-sha1 = "b28fca87e487d18ba462317e4a95d7253ae51929" +git-tree-sha1 = "9760060160c6d7f642308eed67a40a1ffe3f028c" uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" -version = "1.9.1" +version = "1.9.3" [deps.FunctionWrappersWrappers.extensions] FunctionWrappersWrappersEnzymeExt = ["Enzyme", "EnzymeCore"] @@ -792,9 +792,9 @@ version = "3.4.1+1" [[deps.GLMakie]] deps = ["ColorTypes", "Colors", "FileIO", "FixedPointNumbers", "FreeTypeAbstraction", "GLFW", "GeometryBasics", "LinearAlgebra", "Makie", "Markdown", "MeshIO", "ModernGL", "Observables", "PrecompileTools", "Printf", "ShaderAbstractions", "StaticArrays"] -git-tree-sha1 = "1e0d427d2c73eb5a7564394df2c9fec8b85e7805" +git-tree-sha1 = "4ab403982698430670bd5302bfe0bd303f9518b8" uuid = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" -version = "0.13.9" +version = "0.13.12" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -803,16 +803,20 @@ uuid = "46192b85-c4d5-4398-a991-12ede77f4527" version = "0.2.0" [[deps.GeometryBasics]] -deps = ["EarCut_jll", "Extents", "IterTools", "LinearAlgebra", "PrecompileTools", "Random", "StaticArrays"] -git-tree-sha1 = "1f5a80f4ed9f5a4aada88fc2db456e637676414b" +deps = ["EarCut_jll", "LinearAlgebra", "PrecompileTools", "Random", "StaticArrays"] +git-tree-sha1 = "364685f5ffde25deb1bbcfd5bb278a5c6b7a9b37" uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" -version = "0.5.10" +version = "0.5.11" [deps.GeometryBasics.extensions] + ExtentsExt = "Extents" GeometryBasicsGeoInterfaceExt = "GeoInterface" + IntervalSetsExt = "IntervalSets" [deps.GeometryBasics.weakdeps] + Extents = "411431e0-e8b7-467b-b5e0-f676ba4f2910" GeoInterface = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" [[deps.GettextRuntime_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll"] @@ -858,9 +862,9 @@ version = "1.1.3" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "8a6dbda1fd736d60cc477d99f2e7a042acfa46e8" +git-tree-sha1 = "69ffb934a5c5b7e086a0b4fee3427db2556fba6e" uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" -version = "1.3.15+0" +version = "1.3.16+0" [[deps.GridLayoutBase]] deps = ["GeometryBasics", "InteractiveUtils", "Observables"] @@ -868,11 +872,6 @@ git-tree-sha1 = "93d5c27c8de51687a2c70ec0716e6e76f298416f" uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" version = "0.11.2" -[[deps.Grisu]] -git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" -uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" -version = "1.0.2" - [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] git-tree-sha1 = "51059d23c8bb67911a2e6fd5130229113735fc7e" @@ -979,9 +978,9 @@ version = "1.11.0" [[deps.Interpolations]] deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] -git-tree-sha1 = "65d505fa4c0d7072990d659ef3fc086eb6da8208" +git-tree-sha1 = "48922d06068130f87e43edef52382e6a94305ae6" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -version = "0.16.2" +version = "0.16.3" weakdeps = ["ForwardDiff", "Unitful"] [deps.Interpolations.extensions] @@ -1062,10 +1061,10 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "PrecompileTools", "ScopedValues", "TranscodingStreams"] -git-tree-sha1 = "d97791feefda45729613fafeccc4fbef3f539151" +deps = ["ChunkCodecLibZlib", "ChunkCodecLibZstd", "FileIO", "MacroTools", "Mmap", "OrderedCollections", "PrecompileTools", "ScopedValues"] +git-tree-sha1 = "941f87a0ae1b14d1ac2fa57245425b23a9d7a516" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.5.15" +version = "0.6.4" weakdeps = ["UnPack"] [deps.JLD2.extensions] @@ -1079,9 +1078,9 @@ version = "1.8.0" [[deps.JSON]] deps = ["Dates", "Logging", "Parsers", "PrecompileTools", "StructUtils", "UUIDs", "Unicode"] -git-tree-sha1 = "f76f7560267b840e492180f9899b472f30b88450" +git-tree-sha1 = "c89d196f5ffb64bfbf80985b699ea913b0d2c211" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "1.6.0" +version = "1.6.1" [deps.JSON.extensions] JSONArrowExt = ["ArrowTypes"] @@ -1114,9 +1113,9 @@ version = "0.6.12" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "c4d19f51afc7ba2afbe32031b8f2d21b11c9e26e" +git-tree-sha1 = "fc2e5bc665dfa1be33fac60b5762d462bccfae7b" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.10.6" +version = "0.10.8" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1223,9 +1222,9 @@ version = "2.42.0+0" [[deps.LineSearch]] deps = ["ADTypes", "CommonSolve", "ConcreteStructs", "FastClosures", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "SciMLBase", "SciMLJacobianOperators", "StaticArraysCore"] -git-tree-sha1 = "fd58a77c92e7c8f1db25c9839127d52943a49349" +git-tree-sha1 = "a7553de02835e996f80bf895a291ab981ba1f796" uuid = "87fe0de2-c867-4266-b59a-2f0a94fc965b" -version = "0.1.9" +version = "0.1.10" [deps.LineSearch.extensions] LineSearchLineSearchesExt = "LineSearches" @@ -1239,10 +1238,10 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" version = "1.12.0" [[deps.LinearSolve]] -deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "OpenBLAS_jll", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "ce45dd7e3a54842037b52c290915a01aeecce026" +deps = ["AMD", "ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "OpenBLAS_jll", "PrecompileTools", "Preferences", "PureKLU", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "Setfield", "SparseArrays", "SparseColumnPivotedQR", "StaticArraysCore"] +git-tree-sha1 = "ec49ed72f6024be2f9833fe630fbd72f6048f8ad" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "3.82.0" +version = "3.87.0" [deps.LinearSolve.extensions] LinearSolveAMDGPUExt = "AMDGPU" @@ -1261,20 +1260,26 @@ version = "3.82.0" LinearSolveFastLapackInterfaceExt = "FastLapackInterface" LinearSolveForwardDiffExt = "ForwardDiff" LinearSolveGinkgoExt = ["Ginkgo", "SparseArrays"] + LinearSolveHSLExt = ["HSL", "SparseArrays"] LinearSolveHYPREExt = "HYPRE" LinearSolveIterativeSolversExt = "IterativeSolvers" LinearSolveKernelAbstractionsExt = "KernelAbstractions" LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMUMPSExt = ["MUMPS", "SparseArrays"] LinearSolveMetalExt = "Metal" LinearSolveMooncakeExt = "Mooncake" LinearSolvePETScExt = ["PETSc", "SparseArrays", "SparseMatricesCSR"] LinearSolvePETScMPIExt = ["PETSc", "PartitionedArrays", "SparseArrays", "SparseMatricesCSR"] LinearSolveParUExt = ["ParU_jll", "SparseArrays"] LinearSolvePardisoExt = ["Pardiso", "SparseArrays"] + LinearSolvePartitionedSolversExt = ["PartitionedArrays", "PartitionedSolvers"] + LinearSolvePureUMFPACKExt = ["PureUMFPACK", "SparseArrays"] LinearSolveRecursiveFactorizationExt = "RecursiveFactorization" LinearSolveSTRUMPACKExt = ["SparseArrays", "STRUMPACK_jll"] LinearSolveSparseArraysExt = "SparseArrays" LinearSolveSparspakExt = ["SparseArrays", "Sparspak"] + LinearSolveSpecializingFactorizationsExt = "SpecializingFactorizations" + LinearSolveSuperLUDISTExt = ["SparseArrays", "SuperLUDIST"] [deps.LinearSolve.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" @@ -1291,22 +1296,27 @@ version = "3.82.0" FastLapackInterface = "29a986be-02c6-4525-aec4-84b980013641" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Ginkgo = "4c8bd3c9-ead9-4b5e-a625-08f1338ba0ec" + HSL = "34c5aeac-e683-54a6-a0e9-6e0fdc586c50" HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" LAPACK_jll = "51474c39-65e3-53ba-86ba-03b1b862ec14" + MUMPS = "55d2b088-9f4e-11e9-26c0-150b02ea6a46" Metal = "dde4c033-4e86-420c-a63e-0dd931031962" Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" PETSc = "ace2c81b-2b5f-4b1e-a30d-d662738edfe0" ParU_jll = "9e0b026c-e8ce-559c-a2c4-6a3d5c955bc9" Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" PartitionedArrays = "5a9dfac6-5c52-46f7-8278-5e2210713be9" + PartitionedSolvers = "11b65f7f-80ac-401b-9ef2-3db765482d62" + PureUMFPACK = "b7e1f0a2-3c4d-4e5f-9a0b-1c2d3e4f5a6b" RecursiveFactorization = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" STRUMPACK_jll = "86fbd0b9-476f-557c-b766-62c724b42d8c" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SparseMatricesCSR = "a0a7dd2c-ebf4-11e9-1f05-cf50bc540ca1" Sparspak = "e56a9233-b9d6-4f03-8d0f-1825330902ac" + SpecializingFactorizations = "fa08b7a1-13d3-4faf-875d-5cbc1520e3f3" + SuperLUDIST = "4cd002a6-0da4-410d-a012-232df062f478" blis_jll = "6136c539-28a5-5bf0-87cc-b183200dce32" cuSOLVER = "887afef0-6a32-4de5-add4-7827692ba8fc" @@ -1318,9 +1328,9 @@ version = "1.5.0" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "13ca9e2586b89836fd20cccf56e57e2b9ae7f38f" +git-tree-sha1 = "bba2d9aa057d8f126415de240573e86a8f39d2a1" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.29" +version = "1.0.1" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -1359,10 +1369,10 @@ uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.16" [[deps.Makie]] -deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "ComputePipeline", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "PNGFiles", "Packing", "Pkg", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] -git-tree-sha1 = "68af66ec16af8b152309310251ecb4fbfe39869f" +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "ComputePipeline", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "PNGFiles", "Packing", "Pkg", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] +git-tree-sha1 = "efe001e1ee81b8eee0fe7da5a4328fcbbfd6b3aa" uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -version = "0.24.9" +version = "0.24.12" [deps.Makie.extensions] MakieDynamicQuantitiesExt = "DynamicQuantities" @@ -1370,6 +1380,18 @@ version = "0.24.9" [deps.Makie.weakdeps] DynamicQuantities = "06fc5a27-2a28-4c7c-a15d-362465fb6821" +[[deps.MakieControlPlots]] +deps = ["CairoMakie", "GLMakie", "GridLayoutBase", "JLD2", "LaTeXStrings", "Makie", "PrecompileTools", "Printf", "StaticArraysCore"] +git-tree-sha1 = "4d56ef86cbdd81c443021ec63d80900a1c96f87a" +uuid = "6d616b69-6563-4f6e-8472-6f6c706c6f74" +version = "0.1.5" + + [deps.MakieControlPlots.extensions] + MakieControlPlotsControlSystemsBaseExt = "ControlSystemsBase" + + [deps.MakieControlPlots.weakdeps] + ControlSystemsBase = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e" + [[deps.MappedArrays]] git-tree-sha1 = "0ee4497a4e80dbd29c058fcee6493f5219556f40" uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" @@ -1394,9 +1416,9 @@ version = "0.6.9" [[deps.MaybeInplace]] deps = ["ArrayInterface", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "54e2fdc38130c05b42be423e90da3bade29b74bd" +git-tree-sha1 = "bf287c2abdd365d73c9ee86b262c6d8af0d6e2a1" uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" -version = "0.1.4" +version = "0.1.5" weakdeps = ["SparseArrays"] [deps.MaybeInplace.extensions] @@ -1425,12 +1447,6 @@ git-tree-sha1 = "c009236e222df68e554c7ce5c720e4a33cc0c23f" uuid = "7269a6da-0436-5bbc-96c2-40638cbb6118" version = "0.5.3" -[[deps.MicroMamba]] -deps = ["Pkg", "Scratch", "micromamba_jll"] -git-tree-sha1 = "535656ce55266bfed0575cd051acc4f36dc869a0" -uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea" -version = "0.1.15" - [[deps.Missings]] deps = ["DataAPI"] git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" @@ -1458,15 +1474,22 @@ uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2025.11.4" [[deps.MuladdMacro]] -git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +deps = ["PrecompileTools"] +git-tree-sha1 = "e8dcbeef032ba2f9051a44ac22b4e54e3a1a0099" uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -version = "0.2.4" +version = "0.2.6" + +[[deps.NPZ]] +deps = ["FileIO", "ZipFile"] +git-tree-sha1 = "60a8e272fe0c5079363b28b0953831e2dd7b7e6f" +uuid = "15e1cf62-19b3-5cfa-8e77-841668bca605" +version = "0.4.3" [[deps.NaNMath]] deps = ["OpenLibm_jll"] -git-tree-sha1 = "9b8215b1ee9e78a293f99797cd31375471b2bcae" +git-tree-sha1 = "dbd2e8cd2c1c27f0b584f6661b4309609c5a685e" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "1.1.3" +version = "1.1.4" [[deps.Netpbm]] deps = ["FileIO", "ImageCore", "ImageMetadata"] @@ -1480,9 +1503,9 @@ version = "1.3.0" [[deps.NonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "NonlinearSolveBase", "NonlinearSolveFirstOrder", "NonlinearSolveQuasiNewton", "NonlinearSolveSpectralMethods", "PrecompileTools", "Preferences", "Reexport", "SciMLBase", "Setfield", "SimpleNonlinearSolve", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "a6c5719bbb42985c72f4cacbfa49e86bab850d66" +git-tree-sha1 = "997abb773470b8c0bc6f85e3bfe86ff437983121" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "4.19.1" +version = "4.20.1" [deps.NonlinearSolve.extensions] NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" @@ -1513,9 +1536,9 @@ version = "4.19.1" [[deps.NonlinearSolveBase]] deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "LogExpFunctions", "Markdown", "MaybeInplace", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Setfield", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] -git-tree-sha1 = "e518a141677e451667e1527312b18d65d261342e" +git-tree-sha1 = "ed3b90b4c6265192f6dc5d7297d32a6766f74c2e" uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" -version = "2.29.0" +version = "2.31.3" [deps.NonlinearSolveBase.extensions] NonlinearSolveBaseBandedMatricesExt = "BandedMatrices" @@ -1545,15 +1568,15 @@ version = "2.29.0" [[deps.NonlinearSolveFirstOrder]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "ce68820a4f421fb5bee7ec4dcf875aff33886bfb" +git-tree-sha1 = "2ec3c6ce945831db0ec689df143ea1190db75be9" uuid = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" -version = "2.1.1" +version = "2.1.2" [[deps.NonlinearSolveQuasiNewton]] deps = ["ArrayInterface", "CommonSolve", "ConcreteStructs", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLOperators", "StaticArraysCore"] -git-tree-sha1 = "538432ca1aea8bf63db02929bf870501f8a7c64c" +git-tree-sha1 = "06f9454f0dc432502c465d87dbc20fc64e2192ea" uuid = "9a2c21bd-3a47-402d-9113-8faf9a0ee114" -version = "1.13.1" +version = "1.13.2" weakdeps = ["ForwardDiff"] [deps.NonlinearSolveQuasiNewton.extensions] @@ -1561,9 +1584,9 @@ weakdeps = ["ForwardDiff"] [[deps.NonlinearSolveSpectralMethods]] deps = ["CommonSolve", "ConcreteStructs", "LineSearch", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "a3781e12becdf0ce5520bd97ec617e879bf4e9f2" +git-tree-sha1 = "ba7d164f81482d09a03ea7e8c59ef313618e661e" uuid = "26075421-4e9a-44e1-8bd1-420ed7ad02b2" -version = "1.7.1" +version = "1.7.2" weakdeps = ["ForwardDiff"] [deps.NonlinearSolveSpectralMethods.extensions] @@ -1608,9 +1631,9 @@ version = "0.3.3" [[deps.OpenEXR_jll]] deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "9ac7c730c53b3b5d9a73fb900ac4b4fc263774db" +git-tree-sha1 = "0d621a4beb5e48d195f907c3c5b0bea285d9ff9d" uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" -version = "3.4.9+0" +version = "3.4.13+0" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] @@ -1647,9 +1670,9 @@ uuid = "91d4177d-7536-5919-b921-800302f37372" version = "1.6.1+0" [[deps.OrderedCollections]] -git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee" +git-tree-sha1 = "94ba93778373a53bfd5a0caaf7d809c445292ff4" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.8.1" +version = "1.8.2" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -1658,9 +1681,9 @@ version = "10.44.0+1" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "e4cff168707d441cd6bf3ff7e4832bdf34278e4a" +git-tree-sha1 = "26766d4b5f1a410c218a19b85a672c6edb693c65" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.37" +version = "0.11.40" weakdeps = ["StatsBase"] [deps.PDMats.extensions] @@ -1698,15 +1721,9 @@ version = "0.12.3" [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "5d5e0a78e971354b1c7bff0655d11fdc1b0e12c8" +git-tree-sha1 = "32a4e09c5f29402573d673901778a0e03b0807b9" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.8.4" - -[[deps.Pidfile]] -deps = ["FileWatching", "Test"] -git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" -uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" -version = "1.3.0" +version = "2.8.6" [[deps.Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] @@ -1748,9 +1765,9 @@ version = "1.4.3" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterface", "PrecompileTools"] -git-tree-sha1 = "e16b73bf892c55d16d53c9c0dbd0fb31cb7e25da" +git-tree-sha1 = "0c319df479a33799d3b7566fbf14498e4e38a6f3" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "1.2.0" +version = "1.2.1" [deps.PreallocationTools.extensions] PreallocationToolsForwardDiffExt = "ForwardDiff" @@ -1813,25 +1830,15 @@ git-tree-sha1 = "4fbbafbc6251b883f4d2705356f3641f3652a7fe" uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" version = "1.4.0" -[[deps.PythonCall]] -deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Preferences", "Serialization", "Tables", "UnsafePointers"] -git-tree-sha1 = "84e5ad9f90856963f4b17cfe12872598e731082c" -uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" -version = "0.9.34" - - [deps.PythonCall.extensions] - CategoricalArraysExt = "CategoricalArrays" - PyCallExt = "PyCall" - - [deps.PythonCall.weakdeps] - CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" - PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" +[[deps.PureKLU]] +deps = ["LinearAlgebra", "MuladdMacro", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "7ff9a12af707ff8b8fc54e5e10b732af1019f6f4" +uuid = "0c0d3e7f-3a8b-4f7e-b6f1-9a4d2e7c1f01" +version = "1.1.0" +weakdeps = ["ForwardDiff"] -[[deps.PythonPlot]] -deps = ["Colors", "CondaPkg", "LaTeXStrings", "PythonCall", "Sockets", "Test", "VersionParsing"] -git-tree-sha1 = "409884283434a04092ddf1d9594c22bc097d5d9a" -uuid = "274fc56d-3b97-40fa-a1cd-1b4a50311bf9" -version = "1.0.6" + [deps.PureKLU.extensions] + PureKLUForwardDiffExt = "ForwardDiff" [[deps.QOI]] deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] @@ -1884,9 +1891,9 @@ version = "1.3.4" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "LinearAlgebra", "PrecompileTools", "RecipesBase", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "57b6fb3932fc8d1fc911f840d2c9de5fe3ba5008" +git-tree-sha1 = "a0aa35f847b21c7884371ec60913632cc1b68495" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "4.3.0" +version = "4.3.2" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsCUDAExt = "CUDA" @@ -1957,6 +1964,28 @@ git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" version = "0.5.1+0" +[[deps.Roots]] +deps = ["Accessors", "CommonSolve", "Printf"] +git-tree-sha1 = "91cfb1cb4f6e27557cc2df798a31eff6089a41eb" +uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" +version = "3.0.0" + + [deps.Roots.extensions] + RootsChainRulesCoreExt = "ChainRulesCore" + RootsForwardDiffExt = "ForwardDiff" + RootsIntervalRootFindingExt = "IntervalRootFinding" + RootsSymPyExt = "SymPy" + RootsSymPyPythonCallExt = "SymPyPythonCall" + RootsUnitfulExt = "Unitful" + + [deps.Roots.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + IntervalRootFinding = "d2bf35a9-74e0-55ec-b149-d360ff49b807" + SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" + SymPyPythonCall = "bc8888f7-b21e-4b7c-a06a-5d9c9496438c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + [[deps.RoundingEmulator]] git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" @@ -1964,9 +1993,9 @@ version = "0.2.1" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "28154d426e557495aa75097861b18c11f2541ded" +git-tree-sha1 = "bd9d6c153d0c8a120b504bfb2f3be42308cc857a" uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.19" +version = "0.5.21" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -1980,9 +2009,9 @@ version = "3.7.2" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "Random", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLLogging", "SciMLOperators", "SciMLPublic", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] -git-tree-sha1 = "8e680fb9e8b3fb7eb66bf4ead84a646ee4e9ef8b" +git-tree-sha1 = "f3e7cd82d057fdeacf9c12292ea72481c05a57c2" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "3.16.0" +version = "3.30.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2025,15 +2054,15 @@ version = "3.16.0" [[deps.SciMLJacobianOperators]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DifferentiationInterface", "FastClosures", "LinearAlgebra", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "7156a5b51cba1bea33a82a036939ead4131f92bc" +git-tree-sha1 = "fcdbc0214fd43dcb9201bddda77bc4cb2ddf5da7" uuid = "19f34311-ddf3-4b8b-af20-060888a46c0e" -version = "0.1.13" +version = "0.1.14" [[deps.SciMLLogging]] deps = ["Logging", "LoggingExtras", "Preferences"] -git-tree-sha1 = "3f98a53703f925cbd5aac5da4924f82ca34d09ab" +git-tree-sha1 = "032fad418d14f5b9bad9db7f97db23514886dabc" uuid = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" -version = "2.0.0" +version = "2.0.1" [deps.SciMLLogging.extensions] SciMLLoggingTracyExt = "Tracy" @@ -2043,9 +2072,9 @@ version = "2.0.0" [[deps.SciMLOperators]] deps = ["Accessors", "Adapt", "ArrayInterface", "DocStringExtensions", "LinearAlgebra"] -git-tree-sha1 = "3b204078e8574b9de19cac90e0c87c811a87deac" +git-tree-sha1 = "e6d0a9836575d20218770fc38784e5f669c58b1b" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "1.22.0" +version = "1.22.1" [deps.SciMLOperators.extensions] SciMLOperatorsLoopVectorizationExt = "LoopVectorization" @@ -2058,15 +2087,15 @@ version = "1.22.0" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" [[deps.SciMLPublic]] -git-tree-sha1 = "0ba076dbdce87ba230fff48ca9bca62e1f345c9b" +git-tree-sha1 = "2b1b64add566435a768abdb3b053cac17d19ff3c" uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" -version = "1.0.1" +version = "1.2.1" [[deps.SciMLStructures]] deps = ["ArrayInterface", "PrecompileTools"] -git-tree-sha1 = "607f6867d0b0553e98fc7f725c9f9f13b4d01a32" +git-tree-sha1 = "1419128e9816e2876f7c4e93a519683b6d1d211e" uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.10.0" +version = "1.10.1" [[deps.ScopedValues]] deps = ["HashArrayMappedTries", "Logging"] @@ -2107,12 +2136,6 @@ deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" version = "1.11.0" -[[deps.Showoff]] -deps = ["Dates", "Grisu"] -git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" -uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" -version = "1.0.3" - [[deps.SignedDistanceFields]] deps = ["Statistics"] git-tree-sha1 = "3949ad92e1c9d2ff0cd4a1317d5ecbba682f4b92" @@ -2126,9 +2149,9 @@ version = "1.2.0" [[deps.SimpleNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "d688de789b7e643326caf9a1051376dadbcd8873" +git-tree-sha1 = "72413286ef77ccacac383c5578641b99100eabd9" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "2.11.1" +version = "2.12.1" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" @@ -2158,15 +2181,25 @@ version = "1.11.0" [[deps.SortingAlgorithms]] deps = ["DataStructures"] -git-tree-sha1 = "64d974c2e6fdf07f8155b5b2ca2ffa9069b608d9" +git-tree-sha1 = "13cd91cc9be159e3f4d95b857fa2aa383b53772a" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.2.2" +version = "1.2.3" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" version = "1.12.0" +[[deps.SparseColumnPivotedQR]] +deps = ["LinearAlgebra", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "e408da3a280ab9033531cad1ebccbb54c81ea9c3" +uuid = "a57abbd0-fea5-4d57-96be-5e525945e8e4" +version = "2.1.2" +weakdeps = ["AMD"] + + [deps.SparseColumnPivotedQR.extensions] + SparseColumnPivotedQRAMDExt = "AMD" + [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] git-tree-sha1 = "6547cbdd8ce32efba0d21c5a40fa96d1a3548f9f" @@ -2223,15 +2256,15 @@ version = "1.8.0" [[deps.StatsBase]] deps = ["AliasTables", "DataAPI", "DataStructures", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "c6f18e5a52a176a383f6f6c635e0f81feed1d6d4" +git-tree-sha1 = "e4d7a1a0edc20af42689ea6f4f3587a2175d50ee" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.34.11" +version = "0.34.12" [[deps.StatsFuns]] deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] -git-tree-sha1 = "91f091a8716a6bb38417a6e6f274602a19aaa685" +git-tree-sha1 = "770240df9a3b8888065046948f7a09b4e0f997d5" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -version = "1.5.2" +version = "2.2.0" weakdeps = ["ChainRulesCore", "InverseFunctions"] [deps.StatsFuns.extensions] @@ -2307,9 +2340,9 @@ version = "7.8.3+2" [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "64b15330b9e3c91a86bcac92f369c58e382981c6" +git-tree-sha1 = "d4751bc16b120dc617719f7901a3b4e69c85b7bf" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.48" +version = "0.3.49" weakdeps = ["PrettyTables"] [deps.SymbolicIndexingInterface.extensions] @@ -2328,9 +2361,9 @@ version = "1.0.1" [[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "f2c1efbc8f3a609aadf318094f8fc5204bdaf344" +git-tree-sha1 = "0f38a06c83f0007bbab3cf911262841c9a0f07e0" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.12.1" +version = "1.13.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -2436,26 +2469,15 @@ version = "1.28.0" NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" -[[deps.UnsafePointers]] -git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a" -uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39" -version = "1.0.0" - -[[deps.VersionParsing]] -git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868" -uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" -version = "1.3.0" - [[deps.VortexStepMethod]] -deps = ["Colors", "DefaultApplication", "DelimitedFiles", "DifferentiationInterface", "FiniteDiff", "ForwardDiff", "Interpolations", "LaTeXStrings", "LinearAlgebra", "Logging", "Measures", "NonlinearSolve", "Parameters", "Pkg", "PreallocationTools", "PrecompileTools", "RecursiveArrayTools", "SciMLBase", "Serialization", "StaticArrays", "Statistics", "StructMapping", "Timers", "Xfoil", "YAML"] +deps = ["Colors", "DefaultApplication", "DelimitedFiles", "DifferentiationInterface", "FiniteDiff", "ForwardDiff", "Interpolations", "LaTeXStrings", "LinearAlgebra", "Logging", "Measures", "NPZ", "NonlinearSolve", "Parameters", "Pkg", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "SciMLBase", "Serialization", "StaticArrays", "Statistics", "StructMapping", "Timers", "Xfoil", "YAML"] path = "." uuid = "ed3cd733-9f0f-46a9-93e0-89b8d4998dd9" -version = "3.3.4" -weakdeps = ["ControlPlots", "Makie", "PythonCall"] +version = "3.3.6" +weakdeps = ["Makie", "MakieControlPlots"] [deps.VortexStepMethod.extensions] - VortexStepMethodControlPlotsExt = ["ControlPlots", "PythonCall"] - VortexStepMethodMakieExt = "Makie" + VortexStepMethodMakieExt = ["Makie", "MakieControlPlots"] [[deps.Wayland_jll]] deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll"] @@ -2600,6 +2622,12 @@ git-tree-sha1 = "a1c0c7585346251353cddede21f180b96388c403" uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" version = "0.4.16" +[[deps.ZipFile]] +deps = ["Libdl", "Printf", "Zlib_jll"] +git-tree-sha1 = "f492b7fe1698e623024e873244f10d89c95c340a" +uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" +version = "0.10.1" + [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" @@ -2682,12 +2710,6 @@ git-tree-sha1 = "4e4282c4d846e11dce56d74fa8040130b7a95cb3" uuid = "c5f90fcd-3b7e-5836-afba-fc50a0988cb2" version = "1.6.0+0" -[[deps.micromamba_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "717df6f6892af4ee13279a73aa58474e58a88667" -uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4" -version = "2.3.1+0" - [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" @@ -2704,12 +2726,6 @@ deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.7.0+0" -[[deps.pixi_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "3667b0931a7fe50f0a5554c61af00e5640019e21" -uuid = "4d7b5844-a134-5dcd-ac86-c8f19cd51bed" -version = "0.63.2+0" - [[deps.x264_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7" diff --git a/Project.toml b/Project.toml index 963917f2..6d188d41 100644 --- a/Project.toml +++ b/Project.toml @@ -4,7 +4,7 @@ authors = ["1-Bart-1 ", "Oriol Cayon and contributors"] version = "3.3.6" [workspace] -projects = ["examples", "examples_cp", "docs", "test"] +projects = ["examples", "docs", "test"] [deps] Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" @@ -19,8 +19,10 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" Measures = "442fdcdd-2543-5da2-b0f3-8c86c306513e" NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +NPZ = "15e1cf62-19b3-5cfa-8e77-841668bca605" Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46" PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" @@ -34,17 +36,14 @@ Xfoil = "19641d66-a62d-11e8-2441-8f57a969a9c4" YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" [weakdeps] -ControlPlots = "23c2ee80-7a9e-4350-b264-8e670f12517c" Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" +MakieControlPlots = "6d616b69-6563-4f6e-8472-6f6c706c6f74" [extensions] -VortexStepMethodControlPlotsExt = ["ControlPlots", "PythonCall"] -VortexStepMethodMakieExt = "Makie" +VortexStepMethodMakieExt = ["Makie", "MakieControlPlots"] [compat] Colors = "0.13" -ControlPlots = "0.2.5, 0.3" DefaultApplication = "1" DelimitedFiles = "1" DifferentiationInterface = "0.7.4" @@ -55,12 +54,14 @@ LaTeXStrings = "1" LinearAlgebra = "1" Logging = "1" Makie = "0.24.6" +MakieControlPlots = "0.1.5" Measures = "0.3" NonlinearSolve = "4.8.0" +NPZ = "0.4" Parameters = "0.12" Pkg = "1" +Printf = "1" PreallocationTools = "1.1.2" -PythonCall = "0.9" PrecompileTools = "1.2.1" RecursiveArrayTools = "3, 4" SciMLBase = "2, 3" diff --git a/README.md b/README.md index b05c0972..619bd078 100644 --- a/README.md +++ b/README.md @@ -19,15 +19,8 @@ Example output is shown in the figure below, where the aerodynamic predictions o ![Example output](docs/v3_example_output.png) ## Installation -Install [Julia 1.10](https://ufechner7.github.io/2024/08/09/installing-julia-with-juliaup.html) or later, -if you haven't already. On Linux, make sure that Python3 and Matplotlib are installed: -``` -sudo apt install python3-matplotlib -``` -Furthermore, the package `ControlPlots` must be installed globally: -``` -julia -e 'using Pkg; Pkg.add("ControlPlots")' -``` +Install [Julia 1.10](https://ufechner7.github.io/2024/08/09/installing-julia-with-juliaup.html) or later, +if you haven't already. Before installing this software it is suggested to create a new project, for example like this: @@ -62,10 +55,6 @@ julia> using VortexStepMethod julia> VortexStepMethod.install_examples() julia> include("examples/menu.jl") ``` -or, for using the ControlPlots library (faster time-to-first-plot): -``` -include("examples_cp/menu_cp.jl") -``` ## Running the examples as developer If you have git installed, check out this repo because it makes it easier to understand the code: @@ -88,10 +77,6 @@ Then you can display a menu with the available examples using the GLMakie librar ```julia menu() ``` -or using the ControlPlots library (faster time-to-first-plot): -```julia -menu_cp() -``` To browse the code, it is suggested to use [VSCode](https://code.visualstudio.com/) with the Julia plugin. diff --git a/bin/install b/bin/install index cd48e024..c7f69397 100755 --- a/bin/install +++ b/bin/install @@ -187,7 +187,7 @@ if ! instantiate_main_with_fallback "." "main"; then exit 1 fi -SUBPROJECTS=("examples" "examples_cp" "test" "docs" "scripts") +SUBPROJECTS=("examples" "test" "docs" "scripts") echo echo "Instantiating sub-projects..." @@ -226,46 +226,10 @@ else exit 1 fi -# Bootstrap LocalPreferences.toml for subprojects that need PythonCall. -# Only copies the .default if no LocalPreferences.toml exists yet (e.g. fresh -# clone). A subsequent run of bin/install_controlplots will add or update the -# machine-specific settings on top. -echo -echo "Bootstrapping LocalPreferences.toml for subprojects..." -for _lp_dir in examples_cp test; do - _lp_file="${_lp_dir}/LocalPreferences.toml" - _lp_default="${_lp_dir}/LocalPreferences.toml.default" - if [[ ! -f "$_lp_file" && -f "$_lp_default" ]]; then - cp "$_lp_default" "$_lp_file" - echo " Created ${_lp_file} from default (CondaPkg disabled)." - fi -done - $_julia_cmd --project=. -e 'using Pkg; Pkg.precompile(); Pkg.activate("examples"); Pkg.precompile(); -Pkg.activate("examples_cp"); Pkg.precompile(); Pkg.activate("test"); Pkg.precompile(); +Pkg.activate("test"); Pkg.precompile(); @info "Precompilation complete."' -$_julia_cmd --project=examples -e 'using GLMakie, VortexStepMethod; @info "GLMakie extension ready."' -_cp_lp="examples_cp/LocalPreferences.toml" -# Skip ControlPlots verification only when Python is genuinely not yet configured -# (Null backend with no exe= set). After install_controlplots --system the file -# still has backend="Null" but also has exe=..., so we proceed with verification. -if grep -q 'backend = "Null"' "$_cp_lp" 2>/dev/null && ! grep -q 'exe = ' "$_cp_lp" 2>/dev/null; then - echo "Skipping ControlPlots extension verification (Python not yet configured)." - echo "Run ./bin/install_controlplots to set up Python and verify ControlPlots." -else - # On Linux, prepend Julia's lib/julia so its bundled libcrypto.so.3 takes - # priority over an older system OpenSSL (e.g. Ubuntu 22.04 ships 3.0 while - # Julia 1.12 bundles 3.3+). - _julia_lib=$($_julia_cmd -e 'print(joinpath(Sys.BINDIR, "..", "lib", "julia"))' 2>/dev/null || true) - if [[ "$(uname -s)" == "Linux" && -n "$_julia_lib" && -d "$_julia_lib" ]]; then - LD_LIBRARY_PATH="${_julia_lib}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" \ - $_julia_cmd -t1 --project=examples_cp \ - -e 'using ControlPlots, VortexStepMethod; @info "ControlPlots extension ready."' - else - $_julia_cmd -t1 --project=examples_cp \ - -e 'using ControlPlots, VortexStepMethod; @info "ControlPlots extension ready."' - fi -fi +$_julia_cmd --project=examples -e 'using GLMakie, MakieControlPlots, VortexStepMethod; @info "Makie plotting extension ready."' $_julia_cmd --project=. -e 'using Pkg; Pkg.test(test_args=["settings/test_settings.jl"]); @info "Minimal test smoke check complete."' diff --git a/bin/install_controlplots b/bin/install_controlplots deleted file mode 100755 index 59a8abfd..00000000 --- a/bin/install_controlplots +++ /dev/null @@ -1,348 +0,0 @@ -#!/bin/bash -eu -# SPDX-FileCopyrightText: 2025 Uwe Fechner -# SPDX-License-Identifier: MIT -# -# Install and configure matplotlib for ControlPlots.jl (via PythonCall). -# -# Two backends are supported: -# 1) System Python – uses the matplotlib package installed by Ubuntu/Debian (apt). -# Fastest option; shares the system Python install. -# 2) CondaPkg – installs matplotlib into a pixi-managed Conda environment. -# Self-contained; does not require root / sudo. -# -# Both options configure the Qt (qtagg) backend for interactive plot windows. - -print_usage() { - echo "Usage:" - echo " ./bin/install_controlplots [--system | --conda] [-y | --yes] [-h | --help]" - echo "" - echo "Options:" - echo " --system Use the system Python and matplotlib (Ubuntu/Debian apt)" - echo " --conda Use CondaPkg (pixi) to install matplotlib" - echo " -y, --yes Non-interactive; accept defaults" - echo " -h, --help Show this help message" -} - -_backend="" # "system" or "conda" -_yes=false - -while [[ $# -gt 0 ]]; do - case $1 in - -h|--help) - print_usage - exit 0 - ;; - --system) - _backend="system" - shift - ;; - --conda) - _backend="conda" - shift - ;; - -y|--yes) - _yes=true - shift - ;; - *) - echo "Unknown option: $1" - print_usage - exit 1 - ;; - esac -done - -# Always run from the repository root (resolve from this script location). -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" -cd "${REPO_ROOT}" - -CONTROLPLOTS_PROJECT="examples_cp" -TEST_PROJECT="test" - -# ── Interactive backend selection ───────────────────────────────────────────── - -if [[ -z "$_backend" ]]; then - echo "Which matplotlib backend do you want to use for ControlPlots?" - echo "" - echo " 1) System Python (uses Ubuntu/Debian python3-matplotlib via apt)" - echo " - Requires sudo" - echo " - Shares the system-wide Python installation" - echo "" - echo " 2) CondaPkg (installs matplotlib into a pixi-managed Conda environment)" - echo " - No sudo required" - echo " - Self-contained; downloads ~200 MB on first use" - echo "" - if [[ "$_yes" == true ]]; then - _choice="2" - echo "Using default: 2 (CondaPkg)" - else - read -rp "Enter 1 or 2 [default: 2]: " _choice - fi - case "${_choice:-2}" in - 1) _backend="system" ;; - 2) _backend="conda" ;; - *) - echo "Invalid choice. Please enter 1 or 2." - exit 1 - ;; - esac -fi - -echo "" -echo "Selected backend: $_backend" -echo "" - -# ── Helper: install matplotlib via CondaPkg ─────────────────────────────────── - -_install_matplotlib_condapkg() { - echo "Installing matplotlib and pyqt into CondaPkg (pixi) environment..." - julia --project="${CONTROLPLOTS_PROJECT}" -e ' -using Pkg -# Ensure CondaPkg is available -if Base.find_package("CondaPkg") === nothing - Pkg.add("CondaPkg") -end -using CondaPkg -CondaPkg.add("matplotlib") -CondaPkg.add("pyqt") -CondaPkg.resolve() -println("matplotlib and pyqt installed in CondaPkg environment.") -' -} - -_verify_controlplots() { - echo "Verifying ControlPlots can be loaded..." - local _julia_prefix="" - if [[ "$(uname -s)" == "Linux" ]]; then - # Julia 1.12+ ships libssl.so.3 compiled against OpenSSL 3.3+, which may - # not match the system libcrypto.so.3 (e.g. Ubuntu 22.04 ships 3.0). - # Prepend Julia's own lib/julia directory so its bundled libcrypto.so.3 - # is found before the system one. We keep any existing LD_LIBRARY_PATH - # entries so other libraries set by callers are not lost. - _julia_lib=$(julia -e 'print(joinpath(Sys.BINDIR, "..", "lib", "julia"))' 2>/dev/null || true) - if [[ -n "$_julia_lib" && -d "$_julia_lib" ]]; then - _julia_prefix="env LD_LIBRARY_PATH=${_julia_lib}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" - fi - fi - if $_julia_prefix julia --project="${CONTROLPLOTS_PROJECT}" -e ' -using ControlPlots -println("ControlPlots loaded successfully.") -'; then - echo "" - echo "✓ ControlPlots is working." - else - echo "" - echo "Warning: ControlPlots could not be loaded. Check the error output above." - echo "You may need to run this script again with the other backend option." - exit 1 - fi -} - -# ── Helper: write MPLBACKEND=qtagg to LocalPreferences.toml ────────────────── - -_set_mplbackend_qtagg() { - local _prefs_file="${CONTROLPLOTS_PROJECT}/LocalPreferences.toml" - # Remove any existing [ENV] section managed by this script. - if [[ -f "$_prefs_file" ]]; then - _tmp=$(mktemp) - awk ' - /^\[ENV\]/ { in_env=1; next } - in_env && /^\[/ { in_env=0 } - !in_env { print } - ' "$_prefs_file" > "$_tmp" - mv "$_tmp" "$_prefs_file" - fi - { - echo "" - echo "[ENV]" - echo "MPLBACKEND = \"qtagg\"" - } >> "$_prefs_file" - echo "Set MPLBACKEND=qtagg in $_prefs_file." -} - -# ── System Python backend ───────────────────────────────────────────────────── - -if [[ "$_backend" == "system" ]]; then - # Detect package manager and install python3-matplotlib if missing. - if [[ "$(uname -s)" == "Linux" ]]; then - if grep -qiE "ubuntu|debian" /etc/os-release 2>/dev/null; then - if ! dpkg -s python3-matplotlib &>/dev/null 2>&1 || ! dpkg -s python3-pyqt5 &>/dev/null 2>&1; then - echo "Installing python3-matplotlib and python3-pyqt5 via apt..." - sudo apt install -y python3-matplotlib python3-pyqt5 - else - echo "python3-matplotlib and python3-pyqt5 are already installed." - fi - elif grep -qi "fedora" /etc/os-release 2>/dev/null; then - if ! rpm -q python3-matplotlib &>/dev/null 2>&1 || ! rpm -q python3-pyqt5 &>/dev/null 2>&1; then - echo "Installing python3-matplotlib and python3-qt5 via dnf..." - sudo dnf install -y python3-matplotlib python3-pyqt5 - else - echo "python3-matplotlib and python3-pyqt5 are already installed." - fi - else - echo "Warning: Could not detect Ubuntu/Debian or Fedora." - echo "Please ensure python3-matplotlib is installed manually before continuing." - if [[ "$_yes" == false ]]; then - read -rp "Continue anyway? (y/n) [default: y]: " _cont - case "${_cont:-y}" in - n|N) echo "Aborted."; exit 1 ;; - esac - fi - fi - elif [[ "$(uname -s)" =~ ^(MINGW|MSYS|CYGWIN) ]]; then - # Windows (Git Bash): use pip to install matplotlib and PyQt5. - _pip="" - for _pip_candidate in pip3 pip; do - if command -v "$_pip_candidate" &>/dev/null; then - _pip="$_pip_candidate" - break - fi - done - if [[ -n "$_pip" ]]; then - if ! "$_pip" show matplotlib &>/dev/null 2>&1 || ! "$_pip" show PyQt5 &>/dev/null 2>&1; then - echo "Installing matplotlib and PyQt5 via pip..." - "$_pip" install --user matplotlib PyQt5 - else - echo "matplotlib and PyQt5 are already installed." - fi - else - echo "Warning: pip not found. Please install matplotlib and PyQt5 manually:" - echo " pip install matplotlib PyQt5" - if [[ "$_yes" == false ]]; then - read -rp "Continue anyway? (y/n) [default: y]: " _cont - case "${_cont:-y}" in - n|N) echo "Aborted."; exit 1 ;; - esac - fi - fi - else - echo "Warning: System Python backend is intended for Ubuntu/Debian/Fedora Linux or Windows." - echo "On this OS ($(uname -s)) you may need to install matplotlib manually." - if [[ "$_yes" == false ]]; then - read -rp "Continue anyway? (y/n) [default: y]: " _cont - case "${_cont:-y}" in - n|N) echo "Aborted."; exit 1 ;; - esac - fi - fi - - # Locate the system python3 executable. - _syspython="" - if [[ "$(uname -s)" =~ ^(MINGW|MSYS|CYGWIN) ]]; then - # On Windows (Git Bash) 'python3' may not exist; also try 'python'. - for _candidate in python3 python; do - if command -v "$_candidate" &>/dev/null; then - _syspython=$(command -v "$_candidate") - # Verify it runs (guards against the Windows Store stub). - if "$_syspython" --version &>/dev/null 2>&1; then - break - fi - _syspython="" - fi - done - else - for _candidate in python3 /usr/bin/python3; do - if command -v "$_candidate" &>/dev/null; then - _syspython=$(command -v "$_candidate") - break - fi - done - fi - if [[ -z "$_syspython" ]]; then - echo "Error: python3 not found on PATH. Please install python3." - exit 1 - fi - echo "Found system Python: $_syspython" - - # Remove the CondaPkg-managed environment so that PythonCall won't keep - # using a stale conda Python when switching to system Python. - if [[ -d "${CONTROLPLOTS_PROJECT}/.CondaPkg" ]]; then - echo "Removing ${CONTROLPLOTS_PROJECT}/.CondaPkg (switching from CondaPkg to system Python)..." - rm -rf "${CONTROLPLOTS_PROJECT}/.CondaPkg" - fi - if [[ -d "${TEST_PROJECT}/.CondaPkg" ]]; then - echo "Removing ${TEST_PROJECT}/.CondaPkg (switching from CondaPkg to system Python)..." - rm -rf "${TEST_PROJECT}/.CondaPkg" - fi - # Unset JULIA_PYTHONCALL_EXE so the LocalPreferences.toml exe setting takes - # effect. - unset JULIA_PYTHONCALL_EXE - # Prevent CondaPkg from re-installing a Conda env in the current process. - export JULIA_CONDAPKG_BACKEND="Null" - export JULIA_PYTHONCALL_EXE="$_syspython" - - # Helper: update a LocalPreferences.toml file with the system Python settings. - _write_system_python_prefs() { - local _pf="$1" - if [[ -f "$_pf" ]]; then - _tmp=$(mktemp) - awk ' - /^\[PythonCall\]/ { in_sec=1; next } - /^\[PyCall\]/ { in_sec=1; next } - /^\[CondaPkg\]/ { in_sec=1; next } - in_sec && /^\[/ { in_sec=0 } - !in_sec { print } - ' "$_pf" > "$_tmp" - mv "$_tmp" "$_pf" - fi - { - echo "" - echo "[PythonCall]" - echo "exe = \"$_syspython\"" - echo "" - echo "[CondaPkg]" - echo "backend = \"Null\"" - } >> "$_pf" - echo "Written to $_pf." - } - - echo "" - echo "Saving python_exe=$_syspython to LocalPreferences.toml files..." - # Write to the root project plus the subprojects that load PythonCall. - _write_system_python_prefs "LocalPreferences.toml" - _write_system_python_prefs "${CONTROLPLOTS_PROJECT}/LocalPreferences.toml" - _write_system_python_prefs "${TEST_PROJECT}/LocalPreferences.toml" - - _set_mplbackend_qtagg - _verify_controlplots - - echo "" - echo "Done. ControlPlots will use the system Python (PythonCall) matplotlib with the Qt (qtagg) backend." - -# ── CondaPkg backend ────────────────────────────────────────────────────────── - -elif [[ "$_backend" == "conda" ]]; then - # Remove [PythonCall] exe, [CondaPkg] backend override, and legacy [PyCall] - # so PythonCall falls back to the CondaPkg-managed Python. - # Must be done in both the root and examples_cp LocalPreferences.toml. - _remove_python_prefs() { - local _pf="$1" - [[ -f "$_pf" ]] || return 0 - _tmp=$(mktemp) - awk ' - /^\[PythonCall\]/ { in_sec=1; next } - /^\[PyCall\]/ { in_sec=1; next } - /^\[CondaPkg\]/ { in_sec=1; next } - in_sec && /^\[/ { in_sec=0 } - !in_sec { print } - ' "$_pf" > "$_tmp" - if ! diff -q "$_pf" "$_tmp" &>/dev/null; then - mv "$_tmp" "$_pf" - echo "Removed [PythonCall]/[CondaPkg] sections from $_pf (switching to CondaPkg)." - else - rm -f "$_tmp" - fi - } - _remove_python_prefs "LocalPreferences.toml" - _remove_python_prefs "${CONTROLPLOTS_PROJECT}/LocalPreferences.toml" - _remove_python_prefs "${TEST_PROJECT}/LocalPreferences.toml" - - _install_matplotlib_condapkg - - _set_mplbackend_qtagg - _verify_controlplots - - echo "" - echo "Done. ControlPlots will use the CondaPkg-managed matplotlib with the Qt (qtagg) backend." -fi diff --git a/bin/jetls_examples b/bin/jetls_examples index 2bcc466d..13a98e75 100755 --- a/bin/jetls_examples +++ b/bin/jetls_examples @@ -9,9 +9,6 @@ fi echo -e "\033[1mInstalling dependencies...\033[0m" julia --project=examples -e 'using Pkg; Pkg.instantiate()' -julia --project=examples_cp -e 'using Pkg; Pkg.instantiate()' echo -e "\033[1mChecking examples with jetls...\033[0m" jetls check --root=. examples/*.jl -echo -e "\033[1mChecking examples_cp with jetls...\033[0m" -jetls -t 1,0 -- check --root=. examples_cp/*.jl echo diff --git a/bin/run_julia b/bin/run_julia index 8408a0c7..3c14cce7 100755 --- a/bin/run_julia +++ b/bin/run_julia @@ -9,7 +9,7 @@ export JULIA_PKG_SERVER_REGISTRY_PREFERENCE=eager # If any local project preferences file disables CondaPkg, forward that as an # env var so that Julia reads it at runtime even when activating a subproject # interactively (where @load_preference may have a stale baked-in value). -for _lp in LocalPreferences.toml examples_cp/LocalPreferences.toml test/LocalPreferences.toml; do +for _lp in LocalPreferences.toml test/LocalPreferences.toml; do if grep -q 'backend = "Null"' "$_lp" 2>/dev/null; then export JULIA_CONDAPKG_BACKEND=Null break diff --git a/data/TUDELFT_V3_KITE/V3_25.obj b/data/TUDELFT_V3_KITE/V3_25.obj new file mode 100644 index 00000000..339ed563 --- /dev/null +++ b/data/TUDELFT_V3_KITE/V3_25.obj @@ -0,0 +1,15578 @@ +v -0.721201 -3.736767 9.466451 +v -0.634034 -3.894945 9.069088 +v -0.64392 -3.895637 9.069299 +v -0.710632 -3.736094 9.466028 +v -0.731577 -3.738602 9.467604 +v -0.653627 -3.897557 9.069884 +v -0.74158 -3.741568 9.469469 +v -0.662989 -3.900673 9.070834 +v -0.751041 -3.745614 9.472013 +v -0.671846 -3.904931 9.072132 +v -0.759797 -3.750671 9.475192 +v -0.680046 -3.910258 9.073757 +v -0.687449 -3.916564 9.075679 +v -0.767698 -3.756652 9.478952 +v -0.693928 -3.923739 9.077867 +v -0.77461 -3.763455 9.483229 +v -0.780414 -3.770963 9.48795 +v -0.699372 -3.931663 9.080283 +v -0.78501 -3.779049 9.493033 +v -0.703689 -3.940198 9.082885 +v -0.788321 -3.787573 9.498392 +v -0.706804 -3.949199 9.08563 +v -0.790288 -3.79639 9.503936 +v -0.708664 -3.958512 9.08847 +v -0.79088 -3.80535 9.509568 +v -0.709238 -3.967978 9.091356 +v -0.790085 -3.814298 9.515194 +v -0.708515 -3.977435 9.094239 +v -0.787918 -3.823081 9.520716 +v -0.706507 -3.98672 9.09707 +v -0.784414 -3.83155 9.52604 +v -0.70325 -3.995675 9.0998 +v -0.779635 -3.83956 9.531076 +v -0.698798 -4.004147 9.102384 +v -0.773662 -3.846972 9.535736 +v -0.693229 -4.01199 9.104775 +v -0.766597 -3.853662 9.539942 +v -0.686637 -4.019071 9.106934 +v -0.758561 -3.859513 9.543621 +v -0.679135 -4.025269 9.108824 +v -0.749692 -3.864426 9.54671 +v -0.670851 -4.030477 9.110412 +v -0.740141 -3.868318 9.549156 +v -0.661928 -4.034606 9.111671 +v -0.730072 -3.87112 9.550918 +v -0.652518 -4.037585 9.112579 +v -0.719657 -3.872786 9.551965 +v -0.642781 -4.039365 9.113122 +v -0.709074 -3.873287 9.55228 +v -0.632885 -4.039913 9.113289 +v -0.622999 -4.039221 9.113078 +v -0.698505 -3.872614 9.551857 +v -0.68813 -3.870779 9.550703 +v -0.613292 -4.037301 9.112492 +v -0.678126 -3.867813 9.548839 +v -0.60393 -4.034185 9.111542 +v -0.668665 -3.863767 9.546295 +v -0.595073 -4.029927 9.110244 +v -0.659909 -3.85871 9.543116 +v -0.586873 -4.0246 9.10862 +v -0.57947 -4.018295 9.106697 +v -0.652008 -3.852729 9.539356 +v -0.572991 -4.011119 9.104509 +v -0.645096 -3.845926 9.535079 +v -0.639292 -3.838418 9.530358 +v -0.567546 -4.003195 9.102094 +v -0.634696 -3.830332 9.525275 +v -0.56323 -3.99466 9.099491 +v -0.631386 -3.821808 9.519915 +v -0.560115 -3.985659 9.096747 +v -0.629418 -3.812991 9.514372 +v -0.558255 -3.976346 9.093907 +v -0.628826 -3.804031 9.508739 +v -0.557681 -3.96688 9.091021 +v -0.629621 -3.795083 9.503114 +v -0.558404 -3.957424 9.088138 +v -0.631789 -3.7863 9.497592 +v -0.560412 -3.948138 9.085306 +v -0.635292 -3.777831 9.492267 +v -0.563669 -3.939183 9.082576 +v -0.640071 -3.769821 9.487232 +v -0.568121 -3.930712 9.079993 +v -0.646044 -3.762409 9.482571 +v -0.57369 -3.922868 9.077601 +v -0.653109 -3.755719 9.478366 +v -0.580282 -3.915787 9.075442 +v -0.661145 -3.749868 9.474687 +v -0.587784 -3.909589 9.073553 +v -0.670014 -3.744955 9.471598 +v -0.596068 -3.904382 9.071965 +v -0.679565 -3.741063 9.469152 +v -0.604991 -3.900253 9.070706 +v -0.689634 -3.738261 9.46739 +v -0.614401 -3.897273 9.069797 +v -0.700049 -3.736595 9.466342 +v -0.624138 -3.895494 9.069255 +v -0.790915 -3.445166 9.775621 +v -0.779775 -3.444604 9.774974 +v -0.801848 -3.446676 9.77736 +v -0.812386 -3.449108 9.780163 +v -0.82235 -3.452421 9.78398 +v -0.83157 -3.456559 9.788747 +v -0.839886 -3.46145 9.794382 +v -0.847157 -3.46701 9.800788 +v -0.853259 -3.473145 9.807856 +v -0.858087 -3.47975 9.815466 +v -0.861559 -3.486711 9.823486 +v -0.863614 -3.49391 9.83178 +v -0.864219 -3.501223 9.840205 +v -0.863362 -3.508525 9.8486185 +v -0.861059 -3.515692 9.856875 +v -0.857348 -3.5226 9.864833 +v -0.852293 -3.529131 9.872358 +v -0.845981 -3.535174 9.879321 +v -0.83852 -3.540625 9.885601 +v -0.830037 -3.545392 9.891092 +v -0.820677 -3.549391 9.895701 +v -0.810601 -3.552556 9.899347 +v -0.799981 -3.554832 9.901968 +v -0.788999 -3.556179 9.903522 +v -0.777843 -3.556575 9.903977 +v -0.766703 -3.556014 9.90333 +v -0.75577 -3.554504 9.901591 +v -0.745231 -3.552072 9.898788 +v -0.735267 -3.548758 9.894971 +v -0.726048 -3.544621 9.890204 +v -0.717732 -3.53973 9.884569 +v -0.71046 -3.534169 9.878163 +v -0.704358 -3.528034 9.871095 +v -0.69953 -3.52143 9.863485 +v -0.696059 -3.514468 9.855465 +v -0.694003 -3.50727 9.847171 +v -0.693399 -3.499957 9.838746 +v -0.694255 -3.492654 9.830333 +v -0.696559 -3.485488 9.822077 +v -0.70027 -3.47858 9.814118 +v -0.705324 -3.472049 9.806593 +v -0.711636 -3.466006 9.79963 +v -0.719098 -3.460554 9.79335 +v -0.727581 -3.455788 9.787859 +v -0.73694 -3.451788 9.78325 +v -0.747016 -3.448624 9.779604 +v -0.757636 -3.446348 9.776983 +v -0.768618 -3.445 9.77543 +v -0.852937 -3.079329 10.026087 +v -0.841314 -3.078768 10.02537 +v -0.864342 -3.080819 10.027994 +v -0.875333 -3.083213 10.031058 +v -0.885722 -3.086469 10.035226 +v -0.895332 -3.090532 10.040427 +v -0.903999 -3.095333 10.046572 +v -0.911574 -3.10079 10.053556 +v -0.917927 -3.106808 10.061259 +v -0.922949 -3.113285 10.0695505 +v -0.926556 -3.120111 10.078286 +v -0.928684 -3.127168 10.087318 +v -0.929298 -3.134335 10.096493 +v -0.928388 -3.141491 10.105652 +v -0.925968 -3.148512 10.114638 +v -0.92208 -3.155279 10.123299 +v -0.91679 -3.161675 10.131487 +v -0.91019 -3.167592 10.13906 +v -0.902392 -3.172928 10.145889 +v -0.89353 -3.177591 10.151858 +v -0.883754 -3.181502 10.156864 +v -0.873233 -3.184594 10.160822 +v -0.862147 -3.186815 10.163664 +v -0.850684 -3.188125 10.165341 +v -0.839042 -3.188503 10.165825 +v -0.827419 -3.187943 10.165107 +v -0.816015 -3.186453 10.1632 +v -0.805024 -3.184059 10.160137 +v -0.794634 -3.180803 10.155969 +v -0.785024 -3.176739 10.150768 +v -0.776358 -3.171938 10.144623 +v -0.768783 -3.166482 10.137639 +v -0.76243 -3.160464 10.129936 +v -0.757407 -3.153987 10.121645 +v -0.753801 -3.147161 10.112909 +v -0.751673 -3.140104 10.103876 +v -0.751058 -3.132936 10.094702 +v -0.751969 -3.125781 10.085543 +v -0.754389 -3.11876 10.076556 +v -0.758277 -3.111993 10.067895 +v -0.763566 -3.105596 10.059708 +v -0.770166 -3.09968 10.052135 +v -0.777964 -3.094344 10.045306 +v -0.786827 -3.089681 10.039337 +v -0.796602 -3.08577 10.034331 +v -0.807123 -3.082677 10.030373 +v -0.81821 -3.080457 10.027531 +v -0.829672 -3.079147 10.025854 +v -0.907221 -2.747275 10.315742 +v -0.89519 -2.746748 10.314942 +v -0.919024 -2.748664 10.317843 +v -0.930397 -2.75089 10.321213 +v -0.941146 -2.753914 10.325793 +v -0.951086 -2.757686 10.331504 +v -0.960048 -2.762141 10.338249 +v -0.967878 -2.767202 10.345913 +v -0.974442 -2.772784 10.354363 +v -0.979628 -2.778789 10.363457 +v -0.983347 -2.785117 10.373037 +v -0.985536 -2.791657 10.382941 +v -0.986158 -2.7983 10.392998 +v -0.9852 -2.80493 10.403037 +v -0.982681 -2.811434 10.412886 +v -0.978642 -2.817702 10.422376 +v -0.973154 -2.823626 10.431345 +v -0.966309 -2.829104 10.439639 +v -0.958226 -2.834042 10.447118 +v -0.949042 -2.838358 10.453651 +v -0.938914 -2.841975 10.459129 +v -0.928017 -2.844833 10.463456 +v -0.916535 -2.846883 10.46656 +v -0.904667 -2.848089 10.468387 +v -0.892614 -2.848432 10.468905 +v -0.880583 -2.847904 10.468106 +v -0.86878 -2.846515 10.466004 +v -0.857407 -2.84429 10.462634 +v -0.846659 -2.841265 10.458055 +v -0.836719 -2.837493 10.452342 +v -0.827757 -2.833038 10.445597 +v -0.819927 -2.827977 10.437934 +v -0.813362 -2.822396 10.429483 +v -0.808176 -2.81639 10.42039 +v -0.804457 -2.810063 10.4108095 +v -0.802268 -2.803522 10.400906 +v -0.801647 -2.79688 10.390848 +v -0.802604 -2.79025 10.380809 +v -0.805124 -2.783745 10.370961 +v -0.809162 -2.777477 10.36147 +v -0.814651 -2.771554 10.352501 +v -0.821495 -2.766076 10.344207 +v -0.829579 -2.761137 10.336729 +v -0.838763 -2.756822 10.330195 +v -0.84889 -2.753204 10.324718 +v -0.859788 -2.750346 10.32039 +v -0.871269 -2.748296 10.3172865 +v -0.883138 -2.74709 10.31546 +v -0.953748 -2.360817 10.499048 +v -0.941377 -2.360478 10.49811 +v -0.965884 -2.361701 10.501496 +v -0.977576 -2.363117 10.505414 +v -0.988624 -2.365038 10.510733 +v -0.99884 -2.367434 10.517364 +v -1.008048 -2.370261 10.52519 +v -1.016091 -2.373474 10.534081 +v -1.022831 -2.377015 10.543883 +v -1.028153 -2.380825 10.554428 +v -1.031966 -2.384838 10.565537 +v -1.034205 -2.388986 10.577019 +v -1.034831 -2.393198 10.588677 +v -1.033834 -2.397402 10.600313 +v -1.03123 -2.401526 10.611726 +v -1.027065 -2.405499 10.622722 +v -1.02141 -2.409253 10.633113 +v -1.01436 -2.412724 10.642721 +v -1.006038 -2.415853 10.6513815 +v -0.996585 -2.418585 10.658946 +v -0.986163 -2.420876 10.665285 +v -0.97495 -2.422684 10.67029 +v -0.963138 -2.42398 10.673877 +v -0.95093 -2.424741 10.675982 +v -0.938534 -2.424953 10.676571 +v -0.926163 -2.424614 10.675633 +v -0.914027 -2.42373 10.673185 +v -0.902335 -2.422315 10.669267 +v -0.891287 -2.420393 10.663948 +v -0.881072 -2.417998 10.657318 +v -0.871864 -2.41517 10.649491 +v -0.863821 -2.411958 10.6406 +v -0.85708 -2.408416 10.630798 +v -0.851758 -2.404606 10.620253 +v -0.847945 -2.400593 10.609144 +v -0.845706 -2.396445 10.597662 +v -0.84508 -2.392233 10.586004 +v -0.846077 -2.388029 10.5743685 +v -0.848681 -2.383905 10.562955 +v -0.852846 -2.379933 10.551959 +v -0.858502 -2.376178 10.541568 +v -0.865551 -2.372707 10.5319605 +v -0.873874 -2.369579 10.5233 +v -0.883327 -2.366846 10.515736 +v -0.893749 -2.364555 10.509396 +v -0.904961 -2.362747 10.504391 +v -0.916773 -2.361451 10.500805 +v -0.928981 -2.360691 10.498699 +v -0.992515 -1.927225 10.606703 +v -0.979864 -1.926882 10.605732 +v -1.004922 -1.928116 10.609223 +v -1.016875 -1.929539 10.613248 +v -1.028168 -1.93147 10.618709 +v -1.038608 -1.933875 10.625514 +v -1.048017 -1.936714 10.633545 +v -1.056233 -1.939939 10.642666 +v -1.063117 -1.943493 10.6527195 +v -1.06855 -1.947316 10.663534 +v -1.072439 -1.951343 10.674924 +v -1.074718 -1.955504 10.686696 +v -1.075348 -1.959729 10.698648 +v -1.074318 -1.963946 10.710575 +v -1.071645 -1.968081 10.722273 +v -1.067376 -1.972065 10.733542 +v -1.061583 -1.975829 10.744189 +v -1.054366 -1.979309 10.754033 +v -1.045848 -1.982445 10.762904 +v -1.036174 -1.985184 10.77065 +v -1.025511 -1.987478 10.77714 +v -1.01404 -1.989289 10.782263 +v -1.001959 -1.990585 10.785929 +v -0.989473 -1.991345 10.788078 +v -0.976796 -1.991555 10.788672 +v -0.964146 -1.991211 10.787701 +v -0.951739 -1.99032 10.785181 +v -0.939786 -1.988898 10.781157 +v -0.928493 -1.986967 10.775694 +v -0.918053 -1.984561 10.768889 +v -0.908644 -1.981722 10.760859 +v -0.900427 -1.978498 10.751739 +v -0.893544 -1.974944 10.741684 +v -0.888111 -1.97112 10.73087 +v -0.884221 -1.967094 10.719479 +v -0.881942 -1.962932 10.707707 +v -0.881313 -1.958707 10.695756 +v -0.882343 -1.954491 10.683829 +v -0.885016 -1.950355 10.672132 +v -0.889285 -1.946371 10.660862 +v -0.895078 -1.942607 10.650214 +v -0.902295 -1.939127 10.640371 +v -0.910813 -1.935991 10.6315 +v -0.920487 -1.933253 10.623754 +v -0.93115 -1.930958 10.617263 +v -0.94262 -1.929148 10.612141 +v -0.954702 -1.927851 10.608474 +v -0.967188 -1.927092 10.606325 +v -1.023521 -1.523465 10.792858 +v -1.010651 -1.523143 10.791852 +v -1.036143 -1.524298 10.795456 +v -1.048301 -1.525626 10.7996 +v -1.059787 -1.527427 10.805219 +v -1.070404 -1.52967 10.812219 +v -1.079971 -1.532317 10.820478 +v -1.088325 -1.535322 10.829856 +v -1.095321 -1.538634 10.840192 +v -1.100841 -1.542197 10.851309 +v -1.10479 -1.545949 10.863017 +v -1.1071 -1.549826 10.875116 +v -1.107733 -1.553762 10.887398 +v -1.106676 -1.55769 10.899655 +v -1.103949 -1.561542 10.9116745 +v -1.099597 -1.565252 10.923252 +v -1.093696 -1.568758 10.93419 +v -1.086346 -1.571998 10.944301 +v -1.077673 -1.574918 10.953412 +v -1.067825 -1.577467 10.961367 +v -1.056971 -1.579602 10.96803 +v -1.045297 -1.581287 10.973286 +v -1.033003 -1.582492 10.977047 +v -1.020298 -1.583197 10.979247 +v -1.0074 -1.58339 10.979849 +v -0.99453 -1.583067 10.978843 +v -0.981908 -1.582235 10.976246 +v -0.96975 -1.580907 10.972102 +v -0.958264 -1.579106 10.966482 +v -0.947647 -1.576863 10.959483 +v -0.938079 -1.574216 10.951223 +v -0.929726 -1.571211 10.941845 +v -0.92273 -1.567898 10.93151 +v -0.91721 -1.564336 10.920392 +v -0.913261 -1.560584 10.908684 +v -0.91095 -1.556706 10.896585 +v -0.910318 -1.55277 10.884303 +v -0.911374 -1.548843 10.872047 +v -0.914102 -1.544991 10.860027 +v -0.918454 -1.54128 10.848449 +v -0.924355 -1.537775 10.837511 +v -0.931705 -1.534535 10.8274 +v -0.940378 -1.531615 10.818289 +v -0.950225 -1.529066 10.810334 +v -0.961079 -1.526931 10.803672 +v -0.972753 -1.525246 10.798415 +v -0.985048 -1.524041 10.794654 +v -0.997753 -1.523336 10.792454 +v -1.04677 -1.103348 10.871432 +v -1.033737 -1.103264 10.870359 +v -1.059551 -1.103565 10.874192 +v -1.071862 -1.103912 10.8785925 +v -1.083491 -1.104381 10.884555 +v -1.09424 -1.104965 10.891981 +v -1.103924 -1.105655 10.900743 +v -1.112379 -1.106438 10.910688 +v -1.119459 -1.1073 10.921649 +v -1.125044 -1.108228 10.933438 +v -1.129037 -1.109205 10.945853 +v -1.13137 -1.110214 10.958681 +v -1.132004 -1.111239 10.971702 +v -1.130928 -1.112262 10.984695 +v -1.12816 -1.113264 10.9974375 +v -1.123747 -1.11423 11.00971 +v -1.117765 -1.115142 11.021303 +v -1.110316 -1.115986 11.032019 +v -1.101528 -1.116745 11.041673 +v -1.091551 -1.117409 11.050102 +v -1.080556 -1.117964 11.05716 +v -1.068731 -1.118402 11.062728 +v -1.056278 -1.118716 11.066708 +v -1.04341 -1.118899 11.069036 +v -1.030348 -1.118948 11.069667 +v -1.017315 -1.118864 11.068594 +v -1.004534 -1.118647 11.065834 +v -0.992223 -1.118301 11.061435 +v -0.980594 -1.117831 11.055471 +v -0.969845 -1.117247 11.048045 +v -0.960161 -1.116557 11.039284 +v -0.951706 -1.115775 11.029338 +v -0.944626 -1.114912 11.018377 +v -0.939041 -1.113984 11.006588 +v -0.935048 -1.113007 10.994174 +v -0.932715 -1.111998 10.981346 +v -0.932081 -1.110973 10.968324 +v -0.933157 -1.109951 10.955331 +v -0.935925 -1.108948 10.942589 +v -0.940338 -1.107982 10.930316 +v -0.94632 -1.10707 10.918723 +v -0.953769 -1.106227 10.908007 +v -0.962557 -1.105467 10.898353 +v -0.972534 -1.104803 10.889924 +v -0.983529 -1.104248 10.882866 +v -0.995354 -1.10381 10.877299 +v -1.007807 -1.103497 10.873318 +v -1.020675 -1.103314 10.870991 +v -1.062267 -0.656322 10.857701 +v -1.049126 -0.656237 10.856615 +v -1.075154 -0.656541 10.860488 +v -1.087565 -0.656889 10.864928 +v -1.099289 -0.657361 10.870945 +v -1.110125 -0.657948 10.878436 +v -1.119887 -0.658641 10.887273 +v -1.128409 -0.659428 10.8973055 +v -1.135544 -0.660295 10.9083605 +v -1.141171 -0.661227 10.920249 +v -1.145194 -0.662208 10.932768 +v -1.147542 -0.663223 10.945704 +v -1.148177 -0.664252 10.958834 +v -1.147088 -0.66528 10.971935 +v -1.144292 -0.666287 10.984782 +v -1.139839 -0.667257 10.997156 +v -1.133803 -0.668174 11.008844 +v -1.126289 -0.669021 11.019646 +v -1.117425 -0.669784 11.029379 +v -1.107362 -0.67045 11.037875 +v -1.096273 -0.671008 11.044988 +v -1.084348 -0.671448 11.050598 +v -1.07179 -0.671762 11.054608 +v -1.058815 -0.671946 11.056949 +v -1.045644 -0.671996 11.057582 +v -1.032503 -0.67191 11.056496 +v -1.019616 -0.671692 11.053709 +v -1.007205 -0.671344 11.049269 +v -0.995481 -0.670872 11.043252 +v -0.984645 -0.670285 11.035761 +v -0.974883 -0.669592 11.026924 +v -0.966361 -0.668805 11.016892 +v -0.959226 -0.667938 11.005837 +v -0.953599 -0.667006 10.993948 +v -0.949577 -0.666024 10.981429 +v -0.947228 -0.66501 10.968493 +v -0.946593 -0.66398 10.955363 +v -0.947682 -0.662953 10.942262 +v -0.950478 -0.661946 10.929415 +v -0.954932 -0.660975 10.917041 +v -0.960967 -0.660059 10.9053545 +v -0.968481 -0.659212 10.894551 +v -0.977345 -0.658449 10.884818 +v -0.987408 -0.657782 10.876323 +v -0.998497 -0.657225 10.869209 +v -1.010422 -0.656785 10.863599 +v -1.02298 -0.65647 10.859591 +v -1.035955 -0.656287 10.857248 +v -1.070026 -0.215541 10.940417 +v -1.056832 -0.215439 10.939325 +v -1.082963 -0.215803 10.943213 +v -1.095423 -0.216219 10.947667 +v -1.107193 -0.216782 10.953702 +v -1.11807 -0.217484 10.961215 +v -1.12787 -0.218311 10.970078 +v -1.136424 -0.219251 10.980138 +v -1.143586 -0.220286 10.991224 +v -1.149234 -0.2214 11.003146 +v -1.15327 -0.222572 11.0157 +v -1.155626 -0.223783 11.028671 +v -1.156262 -0.225013 11.041837 +v -1.155166 -0.22624 11.054973 +v -1.152357 -0.227443 11.067855 +v -1.147883 -0.228601 11.080261 +v -1.141822 -0.229696 11.091979 +v -1.134276 -0.230707 11.10281 +v -1.125375 -0.231618 11.112567 +v -1.115271 -0.232414 11.121084 +v -1.104137 -0.23308 11.128215 +v -1.092163 -0.233605 11.133838 +v -1.079555 -0.23398 11.137857 +v -1.066527 -0.234199 11.140203 +v -1.053304 -0.234258 11.140836 +v -1.04011 -0.234156 11.139744 +v -1.027173 -0.233895 11.136948 +v -1.014713 -0.233479 11.132494 +v -1.002943 -0.232916 11.126459 +v -0.992065 -0.232214 11.118946 +v -0.982266 -0.231386 11.110083 +v -0.973712 -0.230447 11.100023 +v -0.96655 -0.229412 11.088937 +v -0.960902 -0.228298 11.077015 +v -0.956866 -0.227126 11.064461 +v -0.95451 -0.225914 11.05149 +v -0.953874 -0.224685 11.038324 +v -0.95497 -0.223458 11.025188 +v -0.957779 -0.222255 11.012306 +v -0.962252 -0.221097 10.9999 +v -0.968314 -0.220002 10.988182 +v -0.97586 -0.218991 10.977351 +v -0.984761 -0.218079 10.967594 +v -0.994865 -0.217284 10.959077 +v -1.005999 -0.216618 10.951946 +v -1.017973 -0.216093 10.946323 +v -1.030581 -0.215718 10.942304 +v -1.043609 -0.215499 10.939958 +v -1.070026 0.215541 10.940417 +v -1.056832 0.215439 10.939325 +v -1.082963 0.215803 10.943213 +v -1.095423 0.216219 10.947667 +v -1.107193 0.216782 10.953702 +v -1.11807 0.217484 10.961215 +v -1.12787 0.218311 10.970078 +v -1.136424 0.219251 10.980138 +v -1.143586 0.220286 10.991224 +v -1.149234 0.2214 11.003146 +v -1.15327 0.222572 11.0157 +v -1.155626 0.223783 11.028671 +v -1.156262 0.225013 11.041837 +v -1.155166 0.22624 11.054973 +v -1.152357 0.227443 11.067855 +v -1.147883 0.228601 11.080261 +v -1.141822 0.229696 11.091979 +v -1.134276 0.230707 11.10281 +v -1.125375 0.231618 11.112567 +v -1.115271 0.232414 11.121084 +v -1.104137 0.23308 11.128215 +v -1.092163 0.233605 11.133838 +v -1.079555 0.23398 11.137857 +v -1.066527 0.234199 11.140203 +v -1.053304 0.234258 11.140836 +v -1.04011 0.234156 11.139744 +v -1.027173 0.233895 11.136948 +v -1.014713 0.233479 11.132494 +v -1.002943 0.232916 11.126459 +v -0.992065 0.232214 11.118946 +v -0.982266 0.231386 11.110083 +v -0.973712 0.230447 11.100023 +v -0.96655 0.229412 11.088937 +v -0.960902 0.228298 11.077015 +v -0.956866 0.227126 11.064461 +v -0.95451 0.225914 11.05149 +v -0.953874 0.224685 11.038324 +v -0.95497 0.223458 11.025188 +v -0.957779 0.222255 11.012306 +v -0.962252 0.221097 10.9999 +v -0.968314 0.220002 10.988182 +v -0.97586 0.218991 10.977351 +v -0.984761 0.218079 10.967594 +v -0.994865 0.217284 10.959077 +v -1.005999 0.216618 10.951946 +v -1.017973 0.216093 10.946323 +v -1.030581 0.215718 10.942304 +v -1.043609 0.215499 10.939958 +v -1.062267 0.656322 10.857701 +v -1.049126 0.656237 10.856615 +v -1.075154 0.656541 10.860488 +v -1.087565 0.656889 10.864928 +v -1.099289 0.657361 10.870945 +v -1.110125 0.657948 10.878436 +v -1.119887 0.658641 10.887273 +v -1.128409 0.659428 10.8973055 +v -1.135544 0.660295 10.9083605 +v -1.141171 0.661227 10.920249 +v -1.145194 0.662208 10.932768 +v -1.147542 0.663223 10.945704 +v -1.148177 0.664252 10.958834 +v -1.147088 0.66528 10.971935 +v -1.144292 0.666287 10.984782 +v -1.139839 0.667257 10.997156 +v -1.133803 0.668174 11.008844 +v -1.126289 0.669021 11.019646 +v -1.117425 0.669784 11.029379 +v -1.107362 0.67045 11.037875 +v -1.096273 0.671008 11.044988 +v -1.084348 0.671448 11.050598 +v -1.07179 0.671762 11.054608 +v -1.058815 0.671946 11.056949 +v -1.045644 0.671996 11.057582 +v -1.032503 0.67191 11.056496 +v -1.019616 0.671692 11.053709 +v -1.007205 0.671344 11.049269 +v -0.995481 0.670872 11.043252 +v -0.984645 0.670285 11.035761 +v -0.974883 0.669592 11.026924 +v -0.966361 0.668805 11.016892 +v -0.959226 0.667938 11.005837 +v -0.953599 0.667006 10.993948 +v -0.949577 0.666024 10.981429 +v -0.947228 0.66501 10.968493 +v -0.946593 0.66398 10.955363 +v -0.947682 0.662953 10.942262 +v -0.950478 0.661946 10.929415 +v -0.954932 0.660975 10.917041 +v -0.960967 0.660059 10.9053545 +v -0.968481 0.659212 10.894551 +v -0.977345 0.658449 10.884818 +v -0.987408 0.657782 10.876323 +v -0.998497 0.657225 10.869209 +v -1.010422 0.656785 10.863599 +v -1.02298 0.65647 10.859591 +v -1.035955 0.656287 10.857248 +v -1.04677 1.103348 10.871432 +v -1.033737 1.103264 10.870359 +v -1.059551 1.103565 10.874192 +v -1.071862 1.103912 10.8785925 +v -1.083491 1.104381 10.884555 +v -1.09424 1.104965 10.891981 +v -1.103924 1.105655 10.900743 +v -1.112379 1.106438 10.910688 +v -1.119459 1.1073 10.921649 +v -1.125044 1.108228 10.933438 +v -1.129037 1.109205 10.945853 +v -1.13137 1.110214 10.958681 +v -1.132004 1.111239 10.971702 +v -1.130928 1.112262 10.984695 +v -1.12816 1.113264 10.9974375 +v -1.123747 1.11423 11.00971 +v -1.117765 1.115142 11.021303 +v -1.110316 1.115986 11.032019 +v -1.101528 1.116745 11.041673 +v -1.091551 1.117409 11.050102 +v -1.080556 1.117964 11.05716 +v -1.068731 1.118402 11.062728 +v -1.056278 1.118716 11.066708 +v -1.04341 1.118899 11.069036 +v -1.030348 1.118948 11.069667 +v -1.017315 1.118864 11.068594 +v -1.004534 1.118647 11.065834 +v -0.992223 1.118301 11.061435 +v -0.980594 1.117831 11.055471 +v -0.969845 1.117247 11.048045 +v -0.960161 1.116557 11.039284 +v -0.951706 1.115775 11.029338 +v -0.944626 1.114912 11.018377 +v -0.939041 1.113984 11.006588 +v -0.935048 1.113007 10.994174 +v -0.932715 1.111998 10.981346 +v -0.932081 1.110973 10.968324 +v -0.933157 1.109951 10.955331 +v -0.935925 1.108948 10.942589 +v -0.940338 1.107982 10.930316 +v -0.94632 1.10707 10.918723 +v -0.953769 1.106227 10.908007 +v -0.962557 1.105467 10.898353 +v -0.972534 1.104803 10.889924 +v -0.983529 1.104248 10.882866 +v -0.995354 1.10381 10.877299 +v -1.007807 1.103497 10.873318 +v -1.020675 1.103314 10.870991 +v -1.023521 1.523465 10.792858 +v -1.010651 1.523143 10.791852 +v -1.036143 1.524298 10.795456 +v -1.048301 1.525626 10.7996 +v -1.059787 1.527427 10.805219 +v -1.070404 1.52967 10.812219 +v -1.079971 1.532317 10.820478 +v -1.088325 1.535322 10.829856 +v -1.095321 1.538634 10.840192 +v -1.100841 1.542197 10.851309 +v -1.10479 1.545949 10.863017 +v -1.1071 1.549826 10.875116 +v -1.107733 1.553762 10.887398 +v -1.106676 1.55769 10.899655 +v -1.103949 1.561542 10.9116745 +v -1.099597 1.565252 10.923252 +v -1.093696 1.568758 10.93419 +v -1.086346 1.571998 10.944301 +v -1.077673 1.574918 10.953412 +v -1.067825 1.577467 10.961367 +v -1.056971 1.579602 10.96803 +v -1.045297 1.581287 10.973286 +v -1.033003 1.582492 10.977047 +v -1.020298 1.583197 10.979247 +v -1.0074 1.58339 10.979849 +v -0.99453 1.583067 10.978843 +v -0.981908 1.582235 10.976246 +v -0.96975 1.580907 10.972102 +v -0.958264 1.579106 10.966482 +v -0.947647 1.576863 10.959483 +v -0.938079 1.574216 10.951223 +v -0.929726 1.571211 10.941845 +v -0.92273 1.567898 10.93151 +v -0.91721 1.564336 10.920392 +v -0.913261 1.560584 10.908684 +v -0.91095 1.556706 10.896585 +v -0.910318 1.55277 10.884303 +v -0.911374 1.548843 10.872047 +v -0.914102 1.544991 10.860027 +v -0.918454 1.54128 10.848449 +v -0.924355 1.537775 10.837511 +v -0.931705 1.534535 10.8274 +v -0.940378 1.531615 10.818289 +v -0.950225 1.529066 10.810334 +v -0.961079 1.526931 10.803672 +v -0.972753 1.525246 10.798415 +v -0.985048 1.524041 10.794654 +v -0.997753 1.523336 10.792454 +v -0.992515 1.927225 10.606703 +v -0.979864 1.926882 10.605732 +v -1.004922 1.928116 10.609223 +v -1.016875 1.929539 10.613248 +v -1.028168 1.93147 10.618709 +v -1.038608 1.933875 10.625514 +v -1.048017 1.936714 10.633545 +v -1.056233 1.939939 10.642666 +v -1.063117 1.943493 10.6527195 +v -1.06855 1.947316 10.663534 +v -1.072439 1.951343 10.674924 +v -1.074718 1.955504 10.686696 +v -1.075348 1.959729 10.698648 +v -1.074318 1.963946 10.710575 +v -1.071645 1.968081 10.722273 +v -1.067376 1.972065 10.733542 +v -1.061583 1.975829 10.744189 +v -1.054366 1.979309 10.754033 +v -1.045848 1.982445 10.762904 +v -1.036174 1.985184 10.77065 +v -1.025511 1.987478 10.77714 +v -1.01404 1.989289 10.782263 +v -1.001959 1.990585 10.785929 +v -0.989473 1.991345 10.788078 +v -0.976796 1.991555 10.788672 +v -0.964146 1.991211 10.787701 +v -0.951739 1.99032 10.785181 +v -0.939786 1.988898 10.781157 +v -0.928493 1.986967 10.775694 +v -0.918053 1.984561 10.768889 +v -0.908644 1.981722 10.760859 +v -0.900427 1.978498 10.751739 +v -0.893544 1.974944 10.741684 +v -0.888111 1.97112 10.73087 +v -0.884221 1.967094 10.719479 +v -0.881942 1.962932 10.707707 +v -0.881313 1.958707 10.695756 +v -0.882343 1.954491 10.683829 +v -0.885016 1.950355 10.672132 +v -0.889285 1.946371 10.660862 +v -0.895078 1.942607 10.650214 +v -0.902295 1.939127 10.640371 +v -0.910813 1.935991 10.6315 +v -0.920487 1.933253 10.623754 +v -0.93115 1.930958 10.617263 +v -0.94262 1.929148 10.612141 +v -0.954702 1.927851 10.608474 +v -0.967188 1.927092 10.606325 +v -0.953748 2.360817 10.499048 +v -0.941377 2.360478 10.49811 +v -0.965884 2.361701 10.501496 +v -0.977576 2.363117 10.505414 +v -0.988624 2.365038 10.510733 +v -0.99884 2.367434 10.517364 +v -1.008048 2.370261 10.52519 +v -1.016091 2.373474 10.534081 +v -1.022831 2.377015 10.543883 +v -1.028153 2.380825 10.554428 +v -1.031966 2.384838 10.565537 +v -1.034205 2.388986 10.577019 +v -1.034831 2.393198 10.588677 +v -1.033834 2.397402 10.600313 +v -1.03123 2.401526 10.611726 +v -1.027065 2.405499 10.622722 +v -1.02141 2.409253 10.633113 +v -1.01436 2.412724 10.642721 +v -1.006038 2.415853 10.6513815 +v -0.996585 2.418585 10.658946 +v -0.986163 2.420876 10.665285 +v -0.97495 2.422684 10.67029 +v -0.963138 2.42398 10.673877 +v -0.95093 2.424741 10.675982 +v -0.938534 2.424953 10.676571 +v -0.926163 2.424614 10.675633 +v -0.914027 2.42373 10.673185 +v -0.902335 2.422315 10.669267 +v -0.891287 2.420393 10.663948 +v -0.881072 2.417998 10.657318 +v -0.871864 2.41517 10.649491 +v -0.863821 2.411958 10.6406 +v -0.85708 2.408416 10.630798 +v -0.851758 2.404606 10.620253 +v -0.847945 2.400593 10.609144 +v -0.845706 2.396445 10.597662 +v -0.84508 2.392233 10.586004 +v -0.846077 2.388029 10.5743685 +v -0.848681 2.383905 10.562955 +v -0.852846 2.379933 10.551959 +v -0.858502 2.376178 10.541568 +v -0.865551 2.372707 10.5319605 +v -0.873874 2.369579 10.5233 +v -0.883327 2.366846 10.515736 +v -0.893749 2.364555 10.509396 +v -0.904961 2.362747 10.504391 +v -0.916773 2.361451 10.500805 +v -0.928981 2.360691 10.498699 +v -0.907221 2.747275 10.315742 +v -0.89519 2.746748 10.314942 +v -0.919024 2.748664 10.317843 +v -0.930397 2.75089 10.321213 +v -0.941146 2.753914 10.325793 +v -0.951086 2.757686 10.331504 +v -0.960048 2.762141 10.338249 +v -0.967878 2.767202 10.345913 +v -0.974442 2.772784 10.354363 +v -0.979628 2.778789 10.363457 +v -0.983347 2.785117 10.373037 +v -0.985536 2.791657 10.382941 +v -0.986158 2.7983 10.392998 +v -0.9852 2.80493 10.403037 +v -0.982681 2.811434 10.412886 +v -0.978642 2.817702 10.422376 +v -0.973154 2.823626 10.431345 +v -0.966309 2.829104 10.439639 +v -0.958226 2.834042 10.447118 +v -0.949042 2.838358 10.453651 +v -0.938914 2.841975 10.459129 +v -0.928017 2.844833 10.463456 +v -0.916535 2.846883 10.46656 +v -0.904667 2.848089 10.468387 +v -0.892614 2.848432 10.468905 +v -0.880583 2.847904 10.468106 +v -0.86878 2.846515 10.466004 +v -0.857407 2.84429 10.462634 +v -0.846659 2.841265 10.458055 +v -0.836719 2.837493 10.452342 +v -0.827757 2.833038 10.445597 +v -0.819927 2.827977 10.437934 +v -0.813362 2.822396 10.429483 +v -0.808176 2.81639 10.42039 +v -0.804457 2.810063 10.4108095 +v -0.802268 2.803522 10.400906 +v -0.801647 2.79688 10.390848 +v -0.802604 2.79025 10.380809 +v -0.805124 2.783745 10.370961 +v -0.809162 2.777477 10.36147 +v -0.814651 2.771554 10.352501 +v -0.821495 2.766076 10.344207 +v -0.829579 2.761137 10.336729 +v -0.838763 2.756822 10.330195 +v -0.84889 2.753204 10.324718 +v -0.859788 2.750346 10.32039 +v -0.871269 2.748296 10.3172865 +v -0.883138 2.74709 10.31546 +v -0.852937 3.079329 10.026087 +v -0.841314 3.078768 10.02537 +v -0.864342 3.080819 10.027994 +v -0.875333 3.083213 10.031058 +v -0.885722 3.086469 10.035226 +v -0.895332 3.090532 10.040427 +v -0.903999 3.095333 10.046572 +v -0.911574 3.10079 10.053556 +v -0.917927 3.106808 10.061259 +v -0.922949 3.113285 10.0695505 +v -0.926556 3.120111 10.078286 +v -0.928684 3.127168 10.087318 +v -0.929298 3.134335 10.096493 +v -0.928388 3.141491 10.105652 +v -0.925968 3.148512 10.114638 +v -0.92208 3.155279 10.123299 +v -0.91679 3.161675 10.131487 +v -0.91019 3.167592 10.13906 +v -0.902392 3.172928 10.145889 +v -0.89353 3.177591 10.151858 +v -0.883754 3.181502 10.156864 +v -0.873233 3.184594 10.160822 +v -0.862147 3.186815 10.163664 +v -0.850684 3.188125 10.165341 +v -0.839042 3.188503 10.165825 +v -0.827419 3.187943 10.165107 +v -0.816015 3.186453 10.1632 +v -0.805024 3.184059 10.160137 +v -0.794634 3.180803 10.155969 +v -0.785024 3.176739 10.150768 +v -0.776358 3.171938 10.144623 +v -0.768783 3.166482 10.137639 +v -0.76243 3.160464 10.129936 +v -0.757407 3.153987 10.121645 +v -0.753801 3.147161 10.112909 +v -0.751673 3.140104 10.103876 +v -0.751058 3.132936 10.094702 +v -0.751969 3.125781 10.085543 +v -0.754389 3.11876 10.076556 +v -0.758277 3.111993 10.067895 +v -0.763566 3.105596 10.059708 +v -0.770166 3.09968 10.052135 +v -0.777964 3.094344 10.045306 +v -0.786827 3.089681 10.039337 +v -0.796602 3.08577 10.034331 +v -0.807123 3.082677 10.030373 +v -0.81821 3.080457 10.027531 +v -0.829672 3.079147 10.025854 +v -0.790915 3.445166 9.775621 +v -0.779775 3.444604 9.774974 +v -0.801848 3.446676 9.77736 +v -0.812386 3.449108 9.780163 +v -0.82235 3.452421 9.78398 +v -0.83157 3.456559 9.788747 +v -0.839886 3.46145 9.794382 +v -0.847157 3.46701 9.800788 +v -0.853259 3.473145 9.807856 +v -0.858087 3.47975 9.815466 +v -0.861559 3.486711 9.823486 +v -0.863614 3.49391 9.83178 +v -0.864219 3.501223 9.840205 +v -0.863362 3.508525 9.8486185 +v -0.861059 3.515692 9.856875 +v -0.857348 3.5226 9.864833 +v -0.852293 3.529131 9.872358 +v -0.845981 3.535174 9.879321 +v -0.83852 3.540625 9.885601 +v -0.830037 3.545392 9.891092 +v -0.820677 3.549391 9.895701 +v -0.810601 3.552556 9.899347 +v -0.799981 3.554832 9.901968 +v -0.788999 3.556179 9.903522 +v -0.777843 3.556575 9.903977 +v -0.766703 3.556014 9.90333 +v -0.75577 3.554504 9.901591 +v -0.745231 3.552072 9.898788 +v -0.735267 3.548758 9.894971 +v -0.726048 3.544621 9.890204 +v -0.717732 3.53973 9.884569 +v -0.71046 3.534169 9.878163 +v -0.704358 3.528034 9.871095 +v -0.69953 3.52143 9.863485 +v -0.696059 3.514468 9.855465 +v -0.694003 3.50727 9.847171 +v -0.693399 3.499957 9.838746 +v -0.694255 3.492654 9.830333 +v -0.696559 3.485488 9.822077 +v -0.70027 3.47858 9.814118 +v -0.705324 3.472049 9.806593 +v -0.711636 3.466006 9.79963 +v -0.719098 3.460554 9.79335 +v -0.727581 3.455788 9.787859 +v -0.73694 3.451788 9.78325 +v -0.747016 3.448624 9.779604 +v -0.757636 3.446348 9.776983 +v -0.768618 3.445 9.77543 +v -0.721201 3.736767 9.466451 +v -0.710632 3.736094 9.466028 +v -0.731577 3.738602 9.467604 +v -0.74158 3.741568 9.469469 +v -0.751041 3.745614 9.472013 +v -0.759797 3.750671 9.475192 +v -0.767698 3.756652 9.478952 +v -0.77461 3.763455 9.483229 +v -0.780414 3.770963 9.48795 +v -0.78501 3.779049 9.493033 +v -0.788321 3.787573 9.498392 +v -0.790288 3.79639 9.503936 +v -0.79088 3.80535 9.509568 +v -0.790085 3.814298 9.515194 +v -0.787918 3.823081 9.520716 +v -0.784414 3.83155 9.52604 +v -0.779635 3.83956 9.531076 +v -0.773662 3.846972 9.535736 +v -0.766597 3.853662 9.539942 +v -0.758561 3.859513 9.543621 +v -0.749692 3.864426 9.54671 +v -0.740141 3.868318 9.549156 +v -0.730072 3.87112 9.550918 +v -0.719657 3.872786 9.551965 +v -0.709074 3.873287 9.55228 +v -0.698505 3.872614 9.551857 +v -0.68813 3.870779 9.550703 +v -0.678126 3.867813 9.548839 +v -0.668665 3.863767 9.546295 +v -0.659909 3.85871 9.543116 +v -0.652008 3.852729 9.539356 +v -0.645096 3.845926 9.535079 +v -0.639292 3.838418 9.530358 +v -0.634696 3.830332 9.525275 +v -0.631386 3.821808 9.519915 +v -0.629418 3.812991 9.514372 +v -0.628826 3.804031 9.508739 +v -0.629621 3.795083 9.503114 +v -0.631789 3.7863 9.497592 +v -0.635292 3.777831 9.492267 +v -0.640071 3.769821 9.487232 +v -0.646044 3.762409 9.482571 +v -0.653109 3.755719 9.478366 +v -0.661145 3.749868 9.474687 +v -0.670014 3.744955 9.471598 +v -0.679565 3.741063 9.469152 +v -0.689634 3.738261 9.46739 +v -0.700049 3.736595 9.466342 +v -0.64392 3.895637 9.069299 +v -0.634034 3.894945 9.069088 +v -0.653627 3.897557 9.069884 +v -0.662989 3.900673 9.070834 +v -0.671846 3.904931 9.072132 +v -0.680046 3.910258 9.073757 +v -0.687449 3.916564 9.075679 +v -0.693928 3.923739 9.077867 +v -0.699372 3.931663 9.080283 +v -0.703689 3.940198 9.082885 +v -0.706804 3.949199 9.08563 +v -0.708664 3.958512 9.08847 +v -0.709238 3.967978 9.091356 +v -0.708515 3.977435 9.094239 +v -0.706507 3.98672 9.09707 +v -0.70325 3.995675 9.0998 +v -0.698798 4.004147 9.102384 +v -0.693229 4.01199 9.104775 +v -0.686637 4.019071 9.106934 +v -0.679135 4.025269 9.108824 +v -0.670851 4.030477 9.110412 +v -0.661928 4.034606 9.111671 +v -0.652518 4.037585 9.112579 +v -0.642781 4.039365 9.113122 +v -0.632885 4.039913 9.113289 +v -0.622999 4.039221 9.113078 +v -0.613292 4.037301 9.112492 +v -0.60393 4.034185 9.111542 +v -0.595073 4.029927 9.110244 +v -0.586873 4.0246 9.10862 +v -0.57947 4.018295 9.106697 +v -0.572991 4.011119 9.104509 +v -0.567546 4.003195 9.102094 +v -0.56323 3.99466 9.099491 +v -0.560115 3.985659 9.096747 +v -0.558255 3.976346 9.093907 +v -0.557681 3.96688 9.091021 +v -0.558404 3.957424 9.088138 +v -0.560412 3.948138 9.085306 +v -0.563669 3.939183 9.082576 +v -0.568121 3.930712 9.079993 +v -0.57369 3.922868 9.077601 +v -0.580282 3.915787 9.075442 +v -0.587784 3.909589 9.073553 +v -0.596068 3.904382 9.071965 +v -0.604991 3.900253 9.070706 +v -0.614401 3.897273 9.069797 +v -0.624138 3.895494 9.069255 +v -0.57768 -3.93741 8.887324 +v -0.569235 -3.935914 8.891252 +v -0.585964 -3.940083 8.883693 +v -0.593944 -3.943888 8.880419 +v -0.601483 -3.948759 8.87756 +v -0.608452 -3.954613 8.875165 +v -0.614733 -3.96135 8.873273 +v -0.620217 -3.968855 8.871918 +v -0.624811 -3.976999 8.871123 +v -0.628437 -3.985643 8.870901 +v -0.631032 -3.994639 8.871256 +v -0.632551 -4.003833 8.872183 +v -0.63297 -4.013068 8.873664 +v -0.63228 -4.022186 8.875676 +v -0.630494 -4.03103 8.878183 +v -0.627642 -4.03945 8.881142 +v -0.623772 -4.047301 8.884504 +v -0.618952 -4.054449 8.888209 +v -0.613263 -4.060772 8.892196 +v -0.606803 -4.066162 8.896396 +v -0.599683 -4.070526 8.900736 +v -0.592024 -4.073789 8.905144 +v -0.583957 -4.075896 8.909542 +v -0.57562 -4.076811 8.913857 +v -0.567157 -4.076519 8.918013 +v -0.558711 -4.075023 8.921941 +v -0.550427 -4.07235 8.925573 +v -0.542448 -4.068545 8.928846 +v -0.534909 -4.063674 8.931705 +v -0.527939 -4.05782 8.934101 +v -0.521658 -4.051083 8.935992 +v -0.516174 -4.043578 8.937347 +v -0.51158 -4.035434 8.938142 +v -0.507954 -4.02679 8.938364 +v -0.505359 -4.017794 8.938009 +v -0.50384 -4.0086 8.937083 +v -0.503421 -3.999365 8.935601 +v -0.504111 -3.990247 8.93359 +v -0.505897 -3.981403 8.931083 +v -0.508749 -3.972983 8.928123 +v -0.512619 -3.965132 8.924762 +v -0.517439 -3.957983 8.921056 +v -0.523128 -3.95166 8.917069 +v -0.529588 -3.946271 8.912869 +v -0.536708 -3.941907 8.908529 +v -0.544367 -3.938644 8.904122 +v -0.552434 -3.936536 8.899723 +v -0.560771 -3.935621 8.895409 +v -0.463619 -3.974174 8.716454 +v -0.456719 -3.972427 8.721816 +v -0.470373 -3.977031 8.711396 +v -0.476867 -3.980949 8.706727 +v -0.48299 -3.985861 8.702527 +v -0.488637 -3.991683 8.69887 +v -0.49371 -3.998316 8.695816 +v -0.498124 -4.005646 8.693419 +v -0.501802 -4.013547 8.691719 +v -0.504683 -4.021884 8.690746 +v -0.506716 -4.030515 8.690516 +v -0.507867 -4.039292 8.691033 +v -0.508115 -4.048065 8.692288 +v -0.507458 -4.056683 8.69426 +v -0.505906 -4.065 8.696915 +v -0.503485 -4.072873 8.700207 +v -0.500237 -4.080167 8.704081 +v -0.496218 -4.086757 8.70847 +v -0.491496 -4.092531 8.713298 +v -0.486153 -4.09739 8.718484 +v -0.480279 -4.101251 8.723939 +v -0.473975 -4.104047 8.7295685 +v -0.467349 -4.105732 8.735277 +v -0.460515 -4.106275 8.740966 +v -0.453588 -4.105668 8.74654 +v -0.446689 -4.103921 8.751902 +v -0.439934 -4.101064 8.75696 +v -0.43344 -4.097146 8.761629 +v -0.427317 -4.092234 8.765828 +v -0.421671 -4.086412 8.769486 +v -0.416597 -4.079779 8.772539 +v -0.412184 -4.072449 8.774937 +v -0.408505 -4.064548 8.776636 +v -0.405625 -4.056211 8.77761 +v -0.403592 -4.04758 8.77784 +v -0.402441 -4.038803 8.777323 +v -0.402192 -4.03003 8.776068 +v -0.40285 -4.021412 8.774096 +v -0.404402 -4.013095 8.771441 +v -0.406823 -4.005222 8.768148 +v -0.41007 -3.997928 8.764275 +v -0.414089 -3.991338 8.759886 +v -0.418811 -3.985564 8.755057 +v -0.424155 -3.980705 8.749872 +v -0.430029 -3.976844 8.744417 +v -0.436332 -3.974048 8.738788 +v -0.442958 -3.972363 8.733079 +v -0.449793 -3.97182 8.72739 +v -0.311561 -4.004487 8.565264 +v -0.306119 -4.002581 8.571455 +v -0.316873 -4.007444 8.559383 +v -0.321966 -4.0114 8.553912 +v -0.326752 -4.016289 8.548946 +v -0.331149 -4.022026 8.544569 +v -0.335083 -4.028513 8.540856 +v -0.338485 -4.035639 8.53787 +v -0.341298 -4.043283 8.535663 +v -0.343473 -4.051313 8.534272 +v -0.344974 -4.059592 8.533722 +v -0.345774 -4.067979 8.534021 +v -0.345859 -4.076329 8.535164 +v -0.34523 -4.084501 8.537133 +v -0.343895 -4.092354 8.539892 +v -0.341878 -4.099754 8.543396 +v -0.339214 -4.106574 8.547584 +v -0.335948 -4.112697 8.552384 +v -0.332136 -4.11802 8.557715 +v -0.327843 -4.12245 8.563484 +v -0.323143 -4.125912 8.569594 +v -0.318116 -4.128347 8.57594 +v -0.312848 -4.129713 8.582413 +v -0.307429 -4.129986 8.588902 +v -0.301952 -4.129163 8.595297 +v -0.29651 -4.127256 8.601488 +v -0.291198 -4.124299 8.607369 +v -0.286105 -4.120343 8.61284 +v -0.281319 -4.115454 8.617806 +v -0.276922 -4.109717 8.622183 +v -0.272988 -4.10323 8.625897 +v -0.269586 -4.096104 8.628882 +v -0.266773 -4.08846 8.631089 +v -0.264598 -4.08043 8.63248 +v -0.263097 -4.072151 8.633031 +v -0.262297 -4.063764 8.632731 +v -0.262212 -4.055414 8.631588 +v -0.262841 -4.047242 8.629619 +v -0.264176 -4.039389 8.62686 +v -0.266193 -4.031989 8.623356 +v -0.268857 -4.025169 8.619168 +v -0.272123 -4.019046 8.614368 +v -0.275935 -4.013723 8.609037 +v -0.280228 -4.009293 8.603268 +v -0.284928 -4.005831 8.597158 +v -0.289955 -4.003396 8.590812 +v -0.295223 -4.00203 8.584339 +v -0.300642 -4.001757 8.57785 +v -0.128212 -4.02827 8.436094 +v -0.124086 -4.026261 8.442746 +v -0.132227 -4.03128 8.429759 +v -0.13606 -4.035236 8.423849 +v -0.139646 -4.040073 8.418465 +v -0.142925 -4.045707 8.413699 +v -0.145839 -4.052041 8.409633 +v -0.14834 -4.058968 8.406337 +v -0.150383 -4.066369 8.403866 +v -0.151935 -4.074117 8.402263 +v -0.152969 -4.08208 8.401557 +v -0.153466 -4.090121 8.401757 +v -0.15342 -4.098103 8.402862 +v -0.152829 -4.105889 8.404852 +v -0.151705 -4.113347 8.407694 +v -0.150067 -4.120348 8.411338 +v -0.147942 -4.126772 8.415722 +v -0.145368 -4.13251 8.420771 +v -0.142387 -4.137464 8.4264 +v -0.139052 -4.141548 8.432511 +v -0.135418 -4.144694 8.439 +v -0.131549 -4.146846 8.445756 +v -0.127511 -4.147969 8.452663 +v -0.123372 -4.148043 8.459603 +v -0.119204 -4.147066 8.466458 +v -0.115077 -4.145056 8.47311 +v -0.111063 -4.142047 8.479446 +v -0.10723 -4.138091 8.485356 +v -0.103644 -4.133254 8.49074 +v -0.100365 -4.12762 8.495506 +v -0.097451 -4.121286 8.499571 +v -0.09495 -4.114359 8.502868 +v -0.092907 -4.106958 8.505338 +v -0.091355 -4.09921 8.506941 +v -0.090321 -4.091247 8.507648 +v -0.089824 -4.083206 8.507447 +v -0.08987 -4.075224 8.506342 +v -0.090461 -4.067437 8.504352 +v -0.091585 -4.05998 8.501511 +v -0.093223 -4.052979 8.497867 +v -0.095348 -4.046555 8.493482 +v -0.097922 -4.040817 8.488433 +v -0.100903 -4.035863 8.482805 +v -0.104238 -4.031779 8.476694 +v -0.107872 -4.028633 8.470205 +v -0.11174 -4.026481 8.4634495 +v -0.115779 -4.025358 8.456542 +v -0.119918 -4.025284 8.449601 +v 0.081883 -4.045196 8.331348 +v 0.084821 -4.043127 8.338247 +v 0.079039 -4.048223 8.324771 +v 0.076338 -4.052157 8.318629 +v 0.073827 -4.056928 8.313027 +v 0.071548 -4.062457 8.308061 +v 0.06954 -4.068649 8.303815 +v 0.067839 -4.075396 8.300364 +v 0.066471 -4.082585 8.297765 +v 0.065462 -4.090092 8.296063 +v 0.064829 -4.097789 8.295287 +v 0.064582 -4.105543 8.295451 +v 0.064725 -4.113223 8.296551 +v 0.065256 -4.120697 8.298569 +v 0.066167 -4.127836 8.301471 +v 0.06744 -4.13452 8.305206 +v 0.069056 -4.140633 8.309711 +v 0.070985 -4.14607 8.314908 +v 0.073195 -4.15074 8.320709 +v 0.075649 -4.154561 8.327015 +v 0.078303 -4.157469 8.333717 +v 0.081113 -4.159414 8.340702 +v 0.084031 -4.160362 8.347848 +v 0.087007 -4.160298 8.355035 +v 0.08999 -4.159221 8.362139 +v 0.092928 -4.157152 8.369038 +v 0.095772 -4.154125 8.375615 +v 0.098472 -4.150192 8.381757 +v 0.100984 -4.14542 8.387359 +v 0.103263 -4.139891 8.392325 +v 0.10527 -4.1337 8.39657 +v 0.106972 -4.126952 8.400022 +v 0.108339 -4.119763 8.402621 +v 0.109348 -4.112256 8.404323 +v 0.109982 -4.104559 8.405099 +v 0.110229 -4.096805 8.404935 +v 0.110086 -4.089125 8.403835 +v 0.109554 -4.081652 8.401817 +v 0.108644 -4.074512 8.398915 +v 0.10737 -4.067829 8.39518 +v 0.105755 -4.061716 8.390675 +v 0.103826 -4.056278 8.385478 +v 0.101616 -4.051609 8.379676 +v 0.099162 -4.047787 8.373371 +v 0.096508 -4.044879 8.366668 +v 0.093697 -4.042935 8.359684 +v 0.090779 -4.041986 8.352538 +v 0.087804 -4.042051 8.345351 +v 0.31629 -4.054746 8.253257 +v 0.318144 -4.052653 8.260276 +v 0.314511 -4.057766 8.246564 +v 0.312838 -4.061663 8.240312 +v 0.3113 -4.066368 8.234608 +v 0.309923 -4.071802 8.22955 +v 0.308731 -4.077872 8.225224 +v 0.307743 -4.084473 8.221703 +v 0.306977 -4.091493 8.21905 +v 0.306446 -4.098812 8.217308 +v 0.30616 -4.106304 8.216507 +v 0.306122 -4.113842 8.216662 +v 0.306334 -4.121296 8.217769 +v 0.306792 -4.128538 8.219811 +v 0.307488 -4.135446 8.22275 +v 0.30841 -4.1419 8.226539 +v 0.309542 -4.14779 8.231111 +v 0.310866 -4.153016 8.236388 +v 0.312358 -4.157488 8.242281 +v 0.313993 -4.161129 8.248687 +v 0.315743 -4.163878 8.255499 +v 0.317578 -4.165686 8.262598 +v 0.319466 -4.166524 8.269865 +v 0.321376 -4.166377 8.277173 +v 0.323274 -4.165247 8.284399 +v 0.325129 -4.163154 8.291418 +v 0.326908 -4.160134 8.298111 +v 0.328581 -4.156237 8.304363 +v 0.330119 -4.151532 8.310067 +v 0.331496 -4.146098 8.315125 +v 0.332688 -4.140028 8.319452 +v 0.333676 -4.133427 8.322972 +v 0.334442 -4.126407 8.325626 +v 0.334972 -4.119088 8.327368 +v 0.335259 -4.111596 8.328168 +v 0.335297 -4.104058 8.328013 +v 0.335085 -4.096604 8.326906 +v 0.334627 -4.089362 8.324865 +v 0.333931 -4.082454 8.321925 +v 0.333009 -4.076 8.318136 +v 0.331877 -4.07011 8.313564 +v 0.330553 -4.064884 8.308287 +v 0.329061 -4.060412 8.302395 +v 0.327426 -4.056771 8.295988 +v 0.325676 -4.054022 8.289176 +v 0.323841 -4.052214 8.282077 +v 0.321952 -4.051376 8.274811 +v 0.320043 -4.051523 8.267502 +v 0.574763 -4.056227 8.203824 +v 0.575632 -4.054134 8.210886 +v 0.573951 -4.059229 8.197092 +v 0.573211 -4.063088 8.190804 +v 0.572554 -4.067738 8.185068 +v 0.571992 -4.073101 8.179982 +v 0.571535 -4.079083 8.175633 +v 0.57119 -4.085583 8.172096 +v 0.570964 -4.092489 8.169431 +v 0.57086 -4.099684 8.167683 +v 0.57088 -4.107044 8.1668825 +v 0.571024 -4.114443 8.167045 +v 0.571289 -4.121755 8.168165 +v 0.571671 -4.128854 8.170224 +v 0.572163 -4.13562 8.173187 +v 0.572756 -4.141935 8.177004 +v 0.573442 -4.147693 8.181609 +v 0.574207 -4.152795 8.186923 +v 0.575039 -4.157153 8.192855 +v 0.575923 -4.160693 8.199305 +v 0.576845 -4.163354 8.206161 +v 0.577789 -4.165091 8.213306 +v 0.578738 -4.165875 8.220618 +v 0.579676 -4.16569 8.227972 +v 0.580588 -4.164542 8.235242 +v 0.581457 -4.162449 8.242304 +v 0.582269 -4.159447 8.249036 +v 0.58301 -4.155588 8.255324 +v 0.583667 -4.150937 8.26106 +v 0.584229 -4.145575 8.266146 +v 0.584686 -4.139593 8.270495 +v 0.58503 -4.133093 8.274032 +v 0.585257 -4.126186 8.276697 +v 0.585361 -4.118992 8.278445 +v 0.585341 -4.111632 8.279244 +v 0.585197 -4.104233 8.279083 +v 0.584932 -4.096921 8.277963 +v 0.58455 -4.089822 8.275904 +v 0.584058 -4.083056 8.272941 +v 0.583464 -4.076741 8.269124 +v 0.582779 -4.070983 8.264519 +v 0.582014 -4.065881 8.259205 +v 0.581182 -4.061523 8.253272 +v 0.580297 -4.057983 8.246823 +v 0.579375 -4.055321 8.239967 +v 0.578432 -4.053584 8.232822 +v 0.577482 -4.052801 8.22551 +v 0.576544 -4.052986 8.218156 +v 0.811998 -4.049955 8.1882 +v 0.809128 -4.04796 8.195466 +v 0.814916 -4.052854 8.181264 +v 0.817888 -4.056605 8.174774 +v 0.82092 -4.061142 8.168837 +v 0.824015 -4.066387 8.163552 +v 0.827176 -4.072247 8.159004 +v 0.830405 -4.07862 8.155268 +v 0.833704 -4.085397 8.152404 +v 0.837071 -4.092459 8.150457 +v 0.840505 -4.099683 8.149457 +v 0.844003 -4.106946 8.149417 +v 0.847561 -4.11412 8.150333 +v 0.851175 -4.121081 8.152187 +v 0.854838 -4.127709 8.1549425 +v 0.858544 -4.13389 8.158549 +v 0.857922 -4.139638 8.163222 +v 0.855146 -4.144796 8.168744 +v 0.852388 -4.149217 8.174882 +v 0.849641 -4.152825 8.181536 +v 0.846895 -4.155561 8.188594 +v 0.844142 -4.15738 8.195941 +v 0.841371 -4.158251 8.203455 +v 0.838576 -4.158161 8.21101 +v 0.835747 -4.157113 8.218481 +v 0.832876 -4.155126 8.225744 +v 0.829959 -4.152236 8.232678 +v 0.826987 -4.148494 8.239169 +v 0.823956 -4.143965 8.245108 +v 0.820861 -4.138728 8.250399 +v 0.817701 -4.132874 8.254954 +v 0.814472 -4.126504 8.258699 +v 0.811174 -4.11973 8.261572 +v 0.807808 -4.112667 8.26353 +v 0.804375 -4.10544 8.264541 +v 0.800877 -4.098172 8.264593 +v 0.797319 -4.09099 8.263687 +v 0.793706 -4.084018 8.261842 +v 0.790043 -4.077377 8.259095 +v 0.786337 -4.071182 8.255495 +v 0.786958 -4.065423 8.250814 +v 0.789733 -4.060257 8.245279 +v 0.79249 -4.055832 8.239127 +v 0.795236 -4.052222 8.23246 +v 0.797981 -4.049487 8.225389 +v 0.800734 -4.047672 8.21803 +v 0.803504 -4.046807 8.210507 +v 0.806299 -4.046904 8.202943 +v -0.397074 -4.06102 9.119724 +v -0.611946 -4.034602 9.118879 +v -0.397077 -4.05871 9.125836 +v -0.397087 -4.05562 9.131592 +v -0.609771 -4.031575 9.125034 +v -0.397103 -4.051805 9.136897 +v -0.606274 -4.02793 9.130743 +v -0.397124 -4.047329 9.141658 +v -0.601996 -4.023683 9.13589 +v -0.397152 -4.042268 9.145794 +v -0.597343 -4.01887 9.140378 +v -0.397185 -4.03671 9.149234 +v -0.592606 -4.013552 9.144127 +v -0.397222 -4.03075 9.15192 +v -0.587986 -4.007809 9.14707 +v -0.397263 -4.024489 9.153806 +v -0.583628 -4.00173 9.14916 +v -0.397308 -4.018035 9.154859 +v -0.579635 -3.995416 9.150362 +v -0.397355 -4.011498 9.155061 +v -0.57608 -3.988972 9.15066 +v -0.397403 -4.004989 9.154409 +v -0.573009 -3.982507 9.15005 +v -0.397453 -3.998621 9.152915 +v -0.570448 -3.976132 9.148545 +v -0.397502 -3.992503 9.150602 +v -0.568399 -3.969959 9.1461735 +v -0.397551 -3.986738 9.147512 +v -0.566846 -3.964097 9.142976 +v -0.397598 -3.981426 9.143697 +v -0.565752 -3.958651 9.139008 +v -0.397642 -3.976657 9.139222 +v -0.565062 -3.953723 9.13434 +v -0.397683 -3.972513 9.134164 +v -0.564698 -3.949406 9.129053 +v -0.39772 -3.969065 9.128609 +v -0.564568 -3.945789 9.123239 +v -0.397753 -3.966372 9.122653 +v -0.564561 -3.942947 9.117 +v -0.397781 -3.964481 9.116397 +v -0.564559 -3.940946 9.110447 +v -0.397803 -3.963422 9.109949 +v -0.564442 -3.939838 9.103696 +v -0.397819 -3.963215 9.103418 +v -0.564101 -3.939658 9.096869 +v -0.397828 -3.963864 9.096917 +v -0.563451 -3.940421 9.090088 +v -0.397831 -3.965356 9.090556 +v -0.562448 -3.942122 9.083472 +v -0.397828 -3.967666 9.084445 +v -0.561094 -3.944733 9.077138 +v -0.397819 -3.970756 9.078688 +v -0.559446 -3.948201 9.071195 +v -0.397803 -3.974571 9.073384 +v -0.557602 -3.952457 9.065741 +v -0.397781 -3.979047 9.068623 +v -0.555693 -3.957411 9.060866 +v -0.397753 -3.984108 9.064487 +v -0.553868 -3.962961 9.056645 +v -0.39772 -3.989665 9.061046 +v -0.552277 -3.968996 9.053144 +v -0.397683 -3.995626 9.05836 +v -0.55106 -3.975397 9.050416 +v -0.397642 -4.001887 9.056474 +v -0.550344 -3.982043 9.048499 +v -0.397598 -4.008341 9.055421 +v -0.550234 -3.988811 9.047419 +v -0.397551 -4.014878 9.055219 +v -0.550814 -3.995577 9.047192 +v -0.397502 -4.021386 9.055871 +v -0.552142 -4.002222 9.047816 +v -0.397453 -4.027754 9.057366 +v -0.554254 -4.008629 9.04928 +v -0.397403 -4.033873 9.059678 +v -0.557162 -4.014686 9.051558 +v -0.397355 -4.039638 9.062769 +v -0.560853 -4.02029 9.054613 +v -0.397308 -4.04495 9.066584 +v -0.565289 -4.025345 9.058395 +v -0.570405 -4.029764 9.062844 +v -0.397263 -4.049719 9.071059 +v -0.397222 -4.053863 9.076117 +v -0.576105 -4.033472 9.067889 +v -0.397185 -4.057311 9.081671 +v -0.582255 -4.036411 9.073449 +v -0.397152 -4.060003 9.087628 +v -0.588674 -4.038535 9.079437 +v -0.397124 -4.061895 9.093883 +v -0.59511 -4.039821 9.085759 +v -0.397103 -4.062954 9.100332 +v -0.601211 -4.04027 9.092317 +v -0.397087 -4.06316 9.106863 +v -0.606494 -4.03991 9.099012 +v -0.397077 -4.062512 9.113364 +v -0.610356 -4.038801 9.105744 +v -0.120844 -4.045141 9.121519 +v -0.12084 -4.047391 9.115569 +v -0.120853 -4.042133 9.127125 +v -0.120869 -4.038417 9.13229 +v -0.12089 -4.034058 9.136925 +v -0.120917 -4.02913 9.140952 +v -0.120948 -4.023717 9.144302 +v -0.120985 -4.017913 9.146917 +v -0.121025 -4.011815 9.148753 +v -0.121068 -4.005529 9.149778 +v -0.121114 -3.999163 9.149975 +v -0.121161 -3.992824 9.149339 +v -0.121209 -3.986623 9.147883 +v -0.121258 -3.980663 9.145631 +v -0.121305 -3.975049 9.142622 +v -0.121351 -3.969875 9.138907 +v -0.121394 -3.96523 9.134549 +v -0.121434 -3.961194 9.129624 +v -0.12147 -3.957836 9.124215 +v -0.121502 -3.955213 9.118415 +v -0.121529 -3.953371 9.112323 +v -0.12155 -3.952339 9.106044 +v -0.121566 -3.952137 9.099685 +v -0.121575 -3.952768 9.093354 +v -0.121578 -3.954221 9.087161 +v -0.121575 -3.956471 9.081211 +v -0.121566 -3.959479 9.075605 +v -0.12155 -3.963195 9.07044 +v -0.121529 -3.967554 9.065805 +v -0.121502 -3.972482 9.061778 +v -0.12147 -3.977895 9.058428 +v -0.121434 -3.9837 9.055813 +v -0.121394 -3.989797 9.053977 +v -0.121351 -3.996083 9.052952 +v -0.121305 -4.002449 9.052755 +v -0.121258 -4.008788 9.053391 +v -0.121209 -4.01499 9.054847 +v -0.121161 -4.020949 9.057099 +v -0.121114 -4.026564 9.060108 +v -0.121068 -4.031737 9.063823 +v -0.121025 -4.036382 9.068181 +v -0.120985 -4.040418 9.073106 +v -0.120948 -4.043776 9.078515 +v -0.120917 -4.046399 9.084315 +v -0.12089 -4.048242 9.090407 +v -0.120869 -4.049273 9.096686 +v -0.120853 -4.049475 9.103045 +v -0.120844 -4.048844 9.109376 +v 0.158124 -4.022619 9.114332 +v 0.158127 -4.024761 9.108669 +v 0.158115 -4.019755 9.119666 +v 0.1581 -4.016218 9.124581 +v 0.15808 -4.012067 9.128992 +v 0.158054 -4.007374 9.132823 +v 0.158024 -4.002219 9.13601 +v 0.15799 -3.996691 9.138498 +v 0.157951 -3.990884 9.140243 +v 0.15791 -3.984897 9.141217 +v 0.157867 -3.978833 9.141403 +v 0.157821 -3.972796 9.140797 +v 0.157776 -3.966888 9.13941 +v 0.15773 -3.961212 9.137265 +v 0.157685 -3.955863 9.134399 +v 0.157641 -3.950934 9.130862 +v 0.1576 -3.94651 9.126714 +v 0.157562 -3.942664 9.122025 +v 0.157527 -3.939464 9.116876 +v 0.157497 -3.936965 9.111355 +v 0.157471 -3.935208 9.105557 +v 0.157451 -3.934224 9.099581 +v 0.157436 -3.934031 9.093528 +v 0.157427 -3.93463 9.087503 +v 0.157424 -3.936012 9.081609 +v 0.157427 -3.938154 9.075946 +v 0.157436 -3.941018 9.070612 +v 0.157451 -3.944556 9.065697 +v 0.157471 -3.948706 9.061286 +v 0.157497 -3.953399 9.057455 +v 0.157527 -3.958554 9.054268 +v 0.157562 -3.964082 9.05178 +v 0.1576 -3.969889 9.050035 +v 0.157641 -3.975876 9.049061 +v 0.157685 -3.98194 9.048875 +v 0.15773 -3.987977 9.049481 +v 0.157776 -3.993885 9.050868 +v 0.157821 -3.999561 9.053013 +v 0.157867 -4.00491 9.055879 +v 0.15791 -4.009839 9.059416 +v 0.157951 -4.014264 9.063564 +v 0.15799 -4.018109 9.068253 +v 0.158024 -4.021309 9.073402 +v 0.158054 -4.023808 9.078923 +v 0.15808 -4.025565 9.084721 +v 0.1581 -4.026549 9.090697 +v 0.158115 -4.026742 9.09675 +v 0.158124 -4.026143 9.102775 +v 0.439895 -3.999869 9.107077 +v 0.439898 -4.001903 9.1017 +v 0.439887 -3.997149 9.112143 +v 0.439873 -3.99379 9.116811 +v 0.439854 -3.989848 9.121 +v 0.439829 -3.985391 9.124638 +v 0.439801 -3.980496 9.127665 +v 0.439768 -3.975246 9.130027 +v 0.439731 -3.969731 9.131685 +v 0.439692 -3.964045 9.13261 +v 0.439651 -3.958287 9.132786 +v 0.439608 -3.952553 9.132211 +v 0.439565 -3.946943 9.130893 +v 0.439521 -3.941552 9.128857 +v 0.439478 -3.936473 9.126135 +v 0.439437 -3.931792 9.122776 +v 0.439398 -3.927589 9.118836 +v 0.439361 -3.923938 9.114383 +v 0.439328 -3.920899 9.109494 +v 0.4393 -3.918525 9.104251 +v 0.439275 -3.916857 9.098744 +v 0.439256 -3.915923 9.093069 +v 0.439242 -3.915738 9.087321 +v 0.439234 -3.916308 9.081599 +v 0.439231 -3.91762 9.076001 +v 0.439234 -3.919654 9.070624 +v 0.439242 -3.922374 9.065558 +v 0.439256 -3.925734 9.06089 +v 0.439275 -3.929676 9.056701 +v 0.4393 -3.934132 9.053062 +v 0.439328 -3.939028 9.050036 +v 0.439361 -3.944278 9.047674 +v 0.439398 -3.949793 9.046016 +v 0.439437 -3.955478 9.045091 +v 0.439478 -3.961237 9.044914 +v 0.439521 -3.966971 9.04549 +v 0.439565 -3.972581 9.046807 +v 0.439608 -3.977972 9.048844 +v 0.439651 -3.983051 9.051566 +v 0.439692 -3.987732 9.054925 +v 0.439731 -3.991934 9.058865 +v 0.439768 -3.995586 9.063318 +v 0.439801 -3.998625 9.068207 +v 0.439829 -4.000999 9.07345 +v 0.439854 -4.002667 9.078957 +v 0.439873 -4.003601 9.084632 +v 0.439887 -4.003785 9.09038 +v 0.439895 -4.003216 9.096102 +v 0.724471 -3.976893 9.099751 +v 0.724473 -3.978818 9.094661 +v 0.724462 -3.974319 9.104546 +v 0.724449 -3.971139 9.108963 +v 0.724431 -3.967408 9.112928 +v 0.724408 -3.96319 9.116372 +v 0.724381 -3.958556 9.119237 +v 0.72435 -3.953587 9.121473 +v 0.724315 -3.948367 9.123042 +v 0.724278 -3.942986 9.123917 +v 0.724239 -3.937535 9.124084 +v 0.724199 -3.932109 9.123539 +v 0.724157 -3.926799 9.122292 +v 0.724116 -3.921696 9.120365 +v 0.724076 -3.916889 9.117789 +v 0.724036 -3.912458 9.114609 +v 0.723999 -3.908481 9.11088 +v 0.723965 -3.905025 9.106666 +v 0.723934 -3.902149 9.102038 +v 0.723907 -3.899902 9.097075 +v 0.723884 -3.898323 9.091864 +v 0.723865 -3.897439 9.086492 +v 0.723852 -3.897264 9.081051 +v 0.723844 -3.897803 9.075636 +v 0.723841 -3.899045 9.070338 +v 0.723844 -3.90097 9.065248 +v 0.723852 -3.903545 9.060453 +v 0.723865 -3.906725 9.056035 +v 0.723884 -3.910456 9.052071 +v 0.723907 -3.914674 9.048626 +v 0.723934 -3.919307 9.045762 +v 0.723965 -3.924276 9.043526 +v 0.723999 -3.929496 9.041957 +v 0.724036 -3.934877 9.041081 +v 0.724076 -3.940328 9.040915 +v 0.724116 -3.945755 9.041459 +v 0.724157 -3.951065 9.042706 +v 0.724199 -3.956167 9.044634 +v 0.724239 -3.960975 9.04721 +v 0.724278 -3.965405 9.050389 +v 0.724315 -3.969382 9.054118 +v 0.72435 -3.972839 9.058333 +v 0.724381 -3.975715 9.062961 +v 0.724408 -3.977962 9.067923 +v 0.724431 -3.979541 9.073135 +v 0.724449 -3.980425 9.078507 +v 0.724462 -3.980599 9.083947 +v 0.724471 -3.980061 9.089363 +v 1.009563 -3.953875 9.092411 +v 1.011852 -3.955506 9.087553 +v 1.007269 -3.95163 9.096995 +v 1.00497 -3.948811 9.101228 +v 1.002667 -3.945468 9.105036 +v 1.000358 -3.941661 9.108357 +v 0.998045 -3.937458 9.111132 +v 0.995729 -3.932933 9.113315 +v 0.993408 -3.928167 9.114869 +v 0.991085 -3.923243 9.115768 +v 0.988759 -3.918248 9.115995 +v 0.986432 -3.913271 9.115549 +v 0.984103 -3.908399 9.114436 +v 0.981774 -3.90372 9.112676 +v 0.979446 -3.899316 9.1103 +v 0.977118 -3.895266 9.1073475 +v 0.974793 -3.891643 9.10387 +v 0.972469 -3.888511 9.099927 +v 0.970149 -3.885927 9.095588 +v 0.967832 -3.88394 9.090926 +v 0.96552 -3.882587 9.086022 +v 0.963212 -3.881894 9.080961 +v 0.960909 -3.881877 9.07583 +v 0.958612 -3.882539 9.070717 +v 0.95632 -3.883873 9.065712 +v 0.958612 -3.885559 9.060814 +v 0.960909 -3.887862 9.056201 +v 0.963212 -3.890739 9.051953 +v 0.96552 -3.894138 9.048139 +v 0.967832 -3.897997 9.044825 +v 0.970149 -3.902247 9.042064 +v 0.972469 -3.906812 9.039904 +v 0.974793 -3.911611 9.03838 +v 0.977118 -3.916558 9.037516 +v 0.979446 -3.921566 9.037325 +v 0.981774 -3.926547 9.03781 +v 0.984103 -3.931412 9.03896 +v 0.986432 -3.936076 9.040755 +v 0.988759 -3.940455 9.043161 +v 0.991085 -3.944473 9.046137 +v 0.993408 -3.948058 9.04963 +v 0.995729 -3.951147 9.053579 +v 0.998045 -3.953684 9.057916 +v 1.000358 -3.955624 9.062564 +v 1.002667 -3.95693 9.067443 +v 1.00497 -3.957579 9.072469 +v 1.007269 -3.957558 9.077554 +v 1.009563 -3.956863 9.082611 +v -0.52574 -3.237772 10.228887 +v -0.837585 -3.183058 10.170018 +v -0.525747 -3.230831 10.233611 +v -0.525768 -3.22333 10.237385 +v -0.83342 -3.177508 10.173946 +v -0.525802 -3.215397 10.240144 +v -0.827744 -3.171777 10.177353 +v -0.52585 -3.207168 10.241843 +v -0.821286 -3.165854 10.180046 +v -0.52591 -3.198784 10.242451 +v -0.814488 -3.159787 10.181902 +v -0.52598 -3.190389 10.241958 +v -0.807628 -3.153655 10.182846 +v -0.526061 -3.182125 10.240372 +v -0.800895 -3.147556 10.182835 +v -0.526151 -3.174135 10.237722 +v -0.794431 -3.141598 10.181855 +v -0.526247 -3.166555 10.234051 +v -0.788342 -3.135891 10.179915 +v -0.526349 -3.159514 10.2294235 +v -0.782709 -3.130546 10.177048 +v -0.777592 -3.12567 10.173306 +v -0.526454 -3.153134 10.223918 +v -0.526561 -3.147524 10.2176285 +v -0.773029 -3.121361 10.168762 +v -0.526668 -3.142779 10.210663 +v -0.769037 -3.117711 10.1635065 +v -0.765614 -3.114798 10.157646 +v -0.526774 -3.13898 10.20314 +v -0.526876 -3.136193 10.195189 +v -0.762736 -3.112688 10.151301 +v -0.526972 -3.134465 10.186946 +v -0.760362 -3.111432 10.144602 +v -0.527061 -3.133826 10.178552 +v -0.758434 -3.111064 10.137685 +v -0.527142 -3.134287 10.170151 +v -0.756879 -3.111605 10.130694 +v -0.527213 -3.13584 10.161885 +v -0.755619 -3.113055 10.123768 +v -0.527273 -3.138458 10.153897 +v -0.754567 -3.115403 10.117048 +v -0.52732 -3.142097 10.146324 +v -0.753644 -3.118617 10.110665 +v -0.527355 -3.146694 10.139294 +v -0.752781 -3.122654 10.104741 +v -0.527376 -3.152171 10.132929 +v -0.751927 -3.127452 10.099388 +v -0.527383 -3.158433 10.127337 +v -0.527376 -3.165374 10.122613 +v -0.750179 -3.139017 10.090764 +v -0.527355 -3.172876 10.118839 +v -0.749325 -3.14559 10.08764 +v -0.52732 -3.180808 10.116079 +v -0.74856 -3.152539 10.085376 +v -0.527273 -3.189037 10.114381 +v -0.747971 -3.159736 10.084003 +v -0.527213 -3.197421 10.113773 +v -0.747661 -3.167046 10.083535 +v -0.527142 -3.205817 10.114266 +v -0.747741 -3.174324 10.083967 +v -0.527061 -3.21408 10.115851 +v -0.74832 -3.181427 10.085276 +v -0.526972 -3.222071 10.118502 +v -0.749499 -3.188209 10.087426 +v -0.526876 -3.229651 10.122173 +v -0.751365 -3.194532 10.09036 +v -0.526774 -3.236691 10.126801 +v -0.753983 -3.200264 10.094009 +v -0.526668 -3.243071 10.132306 +v -0.757399 -3.205286 10.098291 +v -0.526561 -3.248682 10.138595 +v -0.761631 -3.209497 10.103109 +v -0.766673 -3.21281 10.108359 +v -0.526454 -3.253427 10.145561 +v -0.526349 -3.257226 10.153084 +v -0.772491 -3.215161 10.11393 +v -0.526247 -3.260013 10.161034 +v -0.779025 -3.216507 10.119708 +v -0.526151 -3.26174 10.169277 +v -0.786191 -3.216828 10.125576 +v -0.793875 -3.216127 10.131422 +v -0.526061 -3.262379 10.177671 +v -0.52598 -3.261918 10.186073 +v -0.801931 -3.21443 10.13714 +v -0.52591 -3.260365 10.194339 +v -0.81017 -3.211788 10.142636 +v -0.52585 -3.257747 10.202326 +v -0.81834 -3.20828 10.147838 +v -0.826066 -3.204015 10.152704 +v -0.525802 -3.254109 10.2099 +v -0.525768 -3.249512 10.216929 +v -0.832755 -3.199153 10.15725 +v -0.525747 -3.244035 10.223295 +v -0.837486 -3.193905 10.161576 +v -0.165556 -3.215627 10.213782 +v -0.165549 -3.22238 10.209186 +v -0.165576 -3.20833 10.217455 +v -0.16561 -3.200615 10.220143 +v -0.165656 -3.192612 10.221799 +v -0.165714 -3.184458 10.222395 +v -0.165783 -3.176295 10.221921 +v -0.165861 -3.16826 10.220385 +v -0.165948 -3.160492 10.2178135 +v -0.166042 -3.153123 10.21425 +v -0.166141 -3.146279 10.209755 +v -0.166243 -3.140079 10.204407 +v -0.166347 -3.134627 10.1982975 +v -0.166451 -3.130016 10.191528 +v -0.166554 -3.126327 10.184218 +v -0.166653 -3.123622 10.17649 +v -0.166746 -3.121947 10.168478 +v -0.166833 -3.121331 10.160318 +v -0.166912 -3.121784 10.152151 +v -0.16698 -3.1233 10.144115 +v -0.167038 -3.125851 10.136348 +v -0.167085 -3.129394 10.1289835 +v -0.167118 -3.133868 10.122147 +v -0.167139 -3.139198 10.115956 +v -0.167145 -3.145291 10.110515 +v -0.167139 -3.152044 10.105919 +v -0.167118 -3.159341 10.102246 +v -0.167085 -3.167057 10.099558 +v -0.167038 -3.17506 10.097902 +v -0.16698 -3.183213 10.097306 +v -0.166912 -3.191377 10.09778 +v -0.166833 -3.199411 10.099316 +v -0.166746 -3.20718 10.101888 +v -0.166653 -3.214548 10.105451 +v -0.166554 -3.221392 10.109946 +v -0.166451 -3.227593 10.115294 +v -0.166347 -3.233045 10.121405 +v -0.166243 -3.237655 10.128173 +v -0.166141 -3.241344 10.135483 +v -0.166042 -3.244049 10.143211 +v -0.165948 -3.245724 10.151223 +v -0.165861 -3.24634 10.159383 +v -0.165783 -3.245887 10.16755 +v -0.165714 -3.244372 10.175586 +v -0.165656 -3.241821 10.183353 +v -0.16561 -3.238278 10.190718 +v -0.165576 -3.233803 10.197554 +v -0.165556 -3.228473 10.203745 +v 0.198075 -3.189987 10.180229 +v 0.198082 -3.196366 10.175888 +v 0.198056 -3.183093 10.183696 +v 0.198024 -3.175803 10.186231 +v 0.19798 -3.16824 10.187791 +v 0.197926 -3.160534 10.188348 +v 0.19786 -3.152818 10.187893 +v 0.197786 -3.145222 10.186434 +v 0.197704 -3.137878 10.183996 +v 0.197615 -3.13091 10.180621 +v 0.197522 -3.124439 10.176365 +v 0.197425 -3.118574 10.171303 +v 0.197326 -3.113416 10.165521 +v 0.197228 -3.109053 10.159117 +v 0.197131 -3.10556 10.152202 +v 0.197037 -3.102997 10.144893 +v 0.196949 -3.101408 10.137316 +v 0.196867 -3.100819 10.129601 +v 0.196792 -3.101241 10.121877 +v 0.196727 -3.102666 10.11428 +v 0.196672 -3.105071 10.106938 +v 0.196629 -3.108414 10.0999775 +v 0.196597 -3.112637 10.093516 +v 0.196578 -3.11767 10.087667 +v 0.196571 -3.123424 10.082527 +v 0.196578 -3.129803 10.078187 +v 0.196597 -3.136697 10.074719 +v 0.196629 -3.143987 10.072184 +v 0.196672 -3.15155 10.070625 +v 0.196727 -3.159256 10.070068 +v 0.196792 -3.166972 10.070522 +v 0.196867 -3.174568 10.071981 +v 0.196949 -3.181912 10.074419 +v 0.197037 -3.18888 10.077795 +v 0.197131 -3.195351 10.08205 +v 0.197228 -3.201216 10.087112 +v 0.197326 -3.206374 10.0928955 +v 0.197425 -3.210737 10.0992985 +v 0.197522 -3.21423 10.106215 +v 0.197615 -3.216793 10.1135235 +v 0.197704 -3.218382 10.1211 +v 0.197786 -3.218971 10.128816 +v 0.19786 -3.218549 10.136539 +v 0.197926 -3.217124 10.144136 +v 0.19798 -3.214719 10.151478 +v 0.198024 -3.211376 10.158438 +v 0.198056 -3.207153 10.164899 +v 0.198075 -3.20212 10.170749 +v 0.565361 -3.164077 10.146347 +v 0.565367 -3.17009 10.142256 +v 0.565343 -3.157579 10.149616 +v 0.565313 -3.150708 10.152005 +v 0.565272 -3.143579 10.153475 +v 0.56522 -3.136316 10.154 +v 0.565158 -3.129043 10.153572 +v 0.565088 -3.121884 10.152197 +v 0.565011 -3.114962 10.1498995 +v 0.564928 -3.108394 10.146717 +v 0.564839 -3.102294 10.142706 +v 0.564748 -3.096766 10.137935 +v 0.564655 -3.091904 10.132485 +v 0.564562 -3.087792 10.126449 +v 0.564471 -3.0845 10.11993 +v 0.564383 -3.082084 10.113041 +v 0.564299 -3.080586 10.105899 +v 0.564222 -3.080031 10.098627 +v 0.564152 -3.080429 10.091347 +v 0.56409 -3.081772 10.0841875 +v 0.564039 -3.084039 10.077266 +v 0.563998 -3.08719 10.070705 +v 0.563968 -3.091171 10.064616 +v 0.563949 -3.095914 10.059102 +v 0.563943 -3.101338 10.054258 +v 0.563949 -3.107351 10.050167 +v 0.563968 -3.113848 10.046898 +v 0.563998 -3.12072 10.044509 +v 0.564039 -3.127848 10.043039 +v 0.56409 -3.135111 10.042514 +v 0.564152 -3.142385 10.042943 +v 0.564222 -3.149544 10.044318 +v 0.564299 -3.156466 10.046616 +v 0.564383 -3.163034 10.049797 +v 0.564471 -3.169133 10.053808 +v 0.564562 -3.174662 10.058579 +v 0.564655 -3.179523 10.06403 +v 0.564748 -3.183635 10.0700655 +v 0.564839 -3.186928 10.076584 +v 0.564928 -3.189344 10.083473 +v 0.565011 -3.190842 10.090615 +v 0.565088 -3.191397 10.097888 +v 0.565158 -3.190999 10.105167 +v 0.56522 -3.189655 10.112329 +v 0.565272 -3.187389 10.119248 +v 0.565313 -3.184238 10.125809 +v 0.565343 -3.180257 10.131898 +v 0.565361 -3.175514 10.137412 +v 0.936301 -3.13791 10.112129 +v 0.936307 -3.143552 10.10829 +v 0.936284 -3.131812 10.115196 +v 0.936256 -3.125363 10.117439 +v 0.936217 -3.118673 10.118818 +v 0.936169 -3.111858 10.119311 +v 0.936111 -3.105032 10.118909 +v 0.936045 -3.098313 10.117618 +v 0.935973 -3.091817 10.115462 +v 0.935894 -3.085654 10.112476 +v 0.935812 -3.079929 10.108712 +v 0.935726 -3.074741 10.104234 +v 0.935639 -3.070179 10.099119 +v 0.935552 -3.06632 10.093455 +v 0.935466 -3.06323 10.087338 +v 0.935383 -3.060963 10.0808735 +v 0.935305 -3.059557 10.07417 +v 0.935232 -3.059036 10.067345 +v 0.935166 -3.059409 10.060514 +v 0.935109 -3.06067 10.053794 +v 0.93506 -3.062798 10.0473 +v 0.935022 -3.065754 10.041142 +v 0.934994 -3.06949 10.035428 +v 0.934977 -3.073942 10.030253 +v 0.934971 -3.079032 10.025707 +v 0.934977 -3.084674 10.021868 +v 0.934994 -3.090772 10.018801 +v 0.935022 -3.097221 10.016558 +v 0.93506 -3.103911 10.015179 +v 0.935109 -3.110727 10.014686 +v 0.935166 -3.117552 10.015088 +v 0.935232 -3.124271 10.016379 +v 0.935305 -3.130767 10.018535 +v 0.935383 -3.13693 10.021521 +v 0.935466 -3.142655 10.025285 +v 0.935552 -3.147843 10.029763 +v 0.935639 -3.152405 10.034878 +v 0.935726 -3.156264 10.040542 +v 0.935812 -3.159354 10.046659 +v 0.935894 -3.161621 10.053124 +v 0.935973 -3.163027 10.059827 +v 0.936045 -3.163548 10.066652 +v 0.936111 -3.163175 10.073483 +v 0.936169 -3.161914 10.080203 +v 0.936217 -3.159787 10.086697 +v 0.936256 -3.15683 10.0928545 +v 0.936284 -3.153094 10.098569 +v 0.936301 -3.148642 10.1037445 +v 1.30806 -3.111685 10.077835 +v 1.310901 -3.116753 10.073988 +v 1.305208 -3.106185 10.080964 +v 1.302345 -3.10035 10.083324 +v 1.299472 -3.094284 10.08488 +v 1.296589 -3.088093 10.085606 +v 1.293697 -3.081886 10.085495 +v 1.290796 -3.075773 10.08455 +v 1.287889 -3.069861 10.082793 +v 1.284975 -3.064255 10.0802555 +v 1.282057 -3.059055 10.076983 +v 1.279134 -3.054354 10.073038 +v 1.27621 -3.050234 10.068489 +v 1.273285 -3.046772 10.063419 +v 1.270361 -3.04403 10.057917 +v 1.267439 -3.042059 10.052081 +v 1.26452 -3.040897 10.046015 +v 1.261607 -3.040567 10.039827 +v 1.2587 -3.04108 10.0336275 +v 1.255801 -3.042431 10.027524 +v 1.25291 -3.0446 10.021627 +v 1.250029 -3.047555 10.016043 +v 1.247159 -3.05125 10.01087 +v 1.2443 -3.055624 10.006202 +v 1.241452 -3.060607 10.002123 +v 1.2443 -3.065769 9.998275 +v 1.247159 -3.071357 9.99516 +v 1.250029 -3.07727 9.992827 +v 1.25291 -3.083404 9.991311 +v 1.255801 -3.08965 9.990633 +v 1.2587 -3.095898 9.990799 +v 1.261607 -3.102038 9.991801 +v 1.26452 -3.107963 9.993618 +v 1.267439 -3.113567 9.996213 +v 1.270361 -3.118753 9.999538 +v 1.273285 -3.123428 10.003529 +v 1.27621 -3.12751 10.008115 +v 1.279134 -3.130927 10.013212 +v 1.282057 -3.133618 10.018729 +v 1.284975 -3.135534 10.024566 +v 1.287889 -3.13664 10.030619 +v 1.290796 -3.136916 10.03678 +v 1.293697 -3.136353 10.042941 +v 1.296589 -3.13496 10.04899 +v 1.299472 -3.132757 10.054822 +v 1.302345 -3.12978 10.060331 +v 1.305208 -3.126078 10.065421 +v 1.30806 -3.121712 10.070001 +v -0.683053 -2.030011 10.897452 +v -0.994376 -1.98324 10.790324 +v -0.683038 -2.021086 10.899959 +v -0.682994 -2.011906 10.901271 +v -0.987154 -1.975747 10.793977 +v -0.682923 -2.002628 10.901364 +v -0.978626 -1.968264 10.796936 +v -0.682824 -1.993412 10.900238 +v -0.969612 -1.960837 10.79891 +v -0.682699 -1.984414 10.897912 +v -0.960479 -1.953569 10.799784 +v -0.682552 -1.975789 10.894425 +v -0.95145 -1.946583 10.799515 +v -0.682384 -1.967685 10.889837 +v -0.942687 -1.940002 10.798098 +v -0.682198 -1.960239 10.884227 +v -0.934323 -1.933948 10.795561 +v -0.681997 -1.953579 10.877691 +v -0.926466 -1.928537 10.791957 +v -0.919205 -1.923875 10.78736 +v -0.681785 -1.94782 10.87034 +v -0.681566 -1.94306 10.862301 +v -0.912611 -1.920053 10.781869 +v -0.681343 -1.93938 10.85371 +v -0.906732 -1.91715 10.7756 +v -0.68112 -1.936843 10.844715 +v -0.901598 -1.915231 10.768686 +v -0.6809 -1.935493 10.83547 +v -0.897212 -1.914339 10.761278 +v -0.680689 -1.935353 10.826133 +v -0.893556 -1.914504 10.753537 +v -0.680488 -1.936425 10.816864 +v -0.890589 -1.915733 10.745634 +v -0.680302 -1.93869 10.807821 +v -0.888247 -1.918018 10.737747 +v -0.680134 -1.942111 10.799159 +v -0.886445 -1.921331 10.730056 +v -0.679986 -1.946628 10.791026 +v -0.885084 -1.925628 10.722737 +v -0.679862 -1.952165 10.783562 +v -0.884054 -1.930848 10.715961 +v -0.679763 -1.958626 10.776893 +v -0.883247 -1.936914 10.7098875 +v -0.679691 -1.9659 10.771135 +v -0.882564 -1.943735 10.704656 +v -0.679648 -1.973865 10.766386 +v -0.88193 -1.951205 10.700384 +v -0.679633 -1.982382 10.762726 +v -0.881301 -1.959204 10.697161 +v -0.679648 -1.991307 10.760219 +v -0.880675 -1.967599 10.695047 +v -0.679691 -2.000487 10.758908 +v -0.880092 -1.976245 10.694068 +v -0.679763 -2.009765 10.758815 +v -0.87963 -1.984988 10.694221 +v -0.679862 -2.018981 10.759941 +v -0.879394 -1.993667 10.695468 +v -0.679986 -2.027979 10.762267 +v -0.879509 -2.002117 10.697755 +v -0.680134 -2.036604 10.765754 +v -0.880104 -2.010174 10.700998 +v -0.680302 -2.044708 10.770342 +v -0.881302 -2.017681 10.705099 +v -0.680488 -2.052154 10.775951 +v -0.883212 -2.024488 10.709945 +v -0.680689 -2.058814 10.782488 +v -0.885924 -2.030459 10.715412 +v -0.6809 -2.064573 10.789838 +v -0.889503 -2.035472 10.721366 +v -0.68112 -2.069333 10.797878 +v -0.893988 -2.039429 10.727668 +v -0.681343 -2.073013 10.806468 +v -0.899392 -2.042247 10.734175 +v -0.681566 -2.07555 10.815463 +v -0.905699 -2.043872 10.7407465 +v -0.681785 -2.0769 10.824708 +v -0.91287 -2.044268 10.747239 +v -0.681997 -2.07704 10.834045 +v -0.920841 -2.043426 10.753517 +v -0.929524 -2.041363 10.759453 +v -0.682198 -2.075968 10.843315 +v -0.93881 -2.038116 10.764925 +v -0.682384 -2.073703 10.852358 +v -0.682552 -2.070282 10.86102 +v -0.948566 -2.033745 10.76983 +v -0.682699 -2.065765 10.869153 +v -0.958634 -2.028334 10.774078 +v -0.682824 -2.060228 10.876617 +v -0.968814 -2.021989 10.777606 +v -0.682923 -2.053767 10.8832855 +v -0.978821 -2.014839 10.780394 +v -0.988144 -2.007056 10.782517 +v -0.682994 -2.046493 10.889044 +v -0.995546 -1.998912 10.784322 +v -0.683038 -2.038528 10.893793 +v -0.339838 -2.016666 10.887348 +v -0.339828 -2.025555 10.884848 +v -0.339867 -2.007527 10.888665 +v -0.339914 -1.998292 10.888775 +v -0.339978 -1.989121 10.887678 +v -0.340059 -1.98017 10.885391 +v -0.340156 -1.971591 10.881953 +v -0.340266 -1.963533 10.877425 +v -0.340388 -1.956133 10.871882 +v -0.340519 -1.949517 10.86542 +v -0.340657 -1.943799 10.8581505 +v -0.340801 -1.939077 10.850195 +v -0.340947 -1.93543 10.841693 +v -0.341093 -1.932923 10.832788 +v -0.341236 -1.931597 10.823633 +v -0.341375 -1.931475 10.814384 +v -0.341506 -1.93256 10.8052 +v -0.341627 -1.934832 10.796238 +v -0.341737 -1.938254 10.787651 +v -0.341834 -1.942766 10.779586 +v -0.341915 -1.948291 10.7721815 +v -0.34198 -1.954734 10.765563 +v -0.342027 -1.961987 10.759845 +v -0.342055 -1.969923 10.755125 +v -0.342065 -1.978408 10.751484 +v -0.342055 -1.987296 10.748984 +v -0.342027 -1.996436 10.747667 +v -0.34198 -2.00567 10.747556 +v -0.341915 -2.014842 10.748654 +v -0.341834 -2.023793 10.750941 +v -0.341737 -2.032371 10.754379 +v -0.341627 -2.040429 10.758907 +v -0.341506 -2.04783 10.76445 +v -0.341375 -2.054445 10.770912 +v -0.341236 -2.060164 10.778182 +v -0.341093 -2.064886 10.786136 +v -0.340947 -2.068532 10.794639 +v -0.340801 -2.07104 10.803544 +v -0.340657 -2.072366 10.812699 +v -0.340519 -2.072488 10.821948 +v -0.340388 -2.071403 10.831132 +v -0.340266 -2.06913 10.840094 +v -0.340156 -2.065709 10.848681 +v -0.340059 -2.061197 10.856746 +v -0.339978 -2.055672 10.864151 +v -0.339914 -2.049228 10.870769 +v -0.339867 -2.041976 10.876486 +v -0.339838 -2.03404 10.8812065 +v 0.005859 -2.001649 10.843418 +v 0.005868 -2.010072 10.841051 +v 0.005832 -1.992987 10.84466 +v 0.005787 -1.984233 10.844755 +v 0.005725 -1.975538 10.843701 +v 0.005648 -1.96705 10.8415165 +v 0.005556 -1.958915 10.838239 +v 0.005452 -1.951271 10.833924 +v 0.005336 -1.94425 10.828646 +v 0.005211 -1.937971 10.822496 +v 0.00508 -1.932543 10.8155775 +v 0.004943 -1.928057 10.808009 +v 0.004804 -1.924591 10.799922 +v 0.004665 -1.922204 10.791453 +v 0.004529 -1.920937 10.782747 +v 0.004397 -1.920811 10.773954 +v 0.004273 -1.921829 10.765224 +v 0.004157 -1.923973 10.756706 +v 0.004052 -1.927207 10.748546 +v 0.003961 -1.931475 10.740884 +v 0.003883 -1.936704 10.7338505 +v 0.003822 -1.942805 10.727566 +v 0.003777 -1.949673 10.722138 +v 0.00375 -1.957191 10.717659 +v 0.003741 -1.96523 10.714207 +v 0.00375 -1.973653 10.71184 +v 0.003777 -1.982315 10.710598 +v 0.003822 -1.991069 10.710505 +v 0.003883 -1.999764 10.711558 +v 0.003961 -2.008251 10.713742 +v 0.004052 -2.016387 10.717019 +v 0.004157 -2.024031 10.721334 +v 0.004273 -2.031052 10.726612 +v 0.004397 -2.03733 10.732763 +v 0.004529 -2.042759 10.739681 +v 0.004665 -2.047245 10.747249 +v 0.004804 -2.050711 10.755336 +v 0.004943 -2.053098 10.763805 +v 0.00508 -2.054365 10.7725115 +v 0.005211 -2.054491 10.781304 +v 0.005336 -2.053473 10.790034 +v 0.005452 -2.051329 10.7985525 +v 0.005556 -2.048095 10.806712 +v 0.005648 -2.043827 10.814374 +v 0.005725 -2.038598 10.821408 +v 0.005787 -2.032497 10.827692 +v 0.005832 -2.025629 10.83312 +v 0.005859 -2.018111 10.837599 +v 0.354542 -1.986418 10.79897 +v 0.35455 -1.994402 10.796727 +v 0.354516 -1.978207 10.800147 +v 0.354474 -1.969909 10.800237 +v 0.354415 -1.961666 10.799238 +v 0.354342 -1.95362 10.797167 +v 0.354255 -1.945908 10.79406 +v 0.354156 -1.938663 10.78997 +v 0.354046 -1.932007 10.784967 +v 0.353928 -1.926055 10.779136 +v 0.353803 -1.920909 10.772578 +v 0.353674 -1.916657 10.765404 +v 0.353542 -1.913371 10.757737 +v 0.353411 -1.911108 10.749709 +v 0.353281 -1.909907 10.741456 +v 0.353156 -1.909788 10.733121 +v 0.353038 -1.910753 10.724845 +v 0.352928 -1.912785 10.716771 +v 0.352829 -1.91585 10.709035 +v 0.352742 -1.919896 10.701772 +v 0.352669 -1.924853 10.695104 +v 0.352611 -1.930636 10.689147 +v 0.352568 -1.937147 10.684001 +v 0.352543 -1.944273 10.679756 +v 0.352534 -1.951894 10.676483 +v 0.352543 -1.959878 10.674239 +v 0.352568 -1.968089 10.673062 +v 0.352611 -1.976387 10.672973 +v 0.352669 -1.98463 10.673972 +v 0.352742 -1.992676 10.6760435 +v 0.352829 -2.000388 10.67915 +v 0.352928 -2.007633 10.68324 +v 0.353038 -2.014289 10.688243 +v 0.353156 -2.020241 10.694074 +v 0.353281 -2.025387 10.700632 +v 0.353411 -2.029639 10.707806 +v 0.353542 -2.032925 10.715473 +v 0.353674 -2.035188 10.723501 +v 0.353803 -2.036389 10.731753 +v 0.353928 -2.036508 10.740089 +v 0.354046 -2.035543 10.748365 +v 0.354156 -2.033511 10.756439 +v 0.354255 -2.030445 10.764175 +v 0.354342 -2.0264 10.771438 +v 0.354415 -2.021443 10.778106 +v 0.354474 -2.01566 10.784063 +v 0.354516 -2.009149 10.789209 +v 0.354542 -2.002023 10.793454 +v 0.706213 -1.971056 10.754142 +v 0.706222 -1.978598 10.752022 +v 0.706189 -1.963299 10.755253 +v 0.706149 -1.955461 10.755338 +v 0.706094 -1.947675 10.754395 +v 0.706025 -1.940074 10.752439 +v 0.705943 -1.932789 10.749503 +v 0.705849 -1.925945 10.745639 +v 0.705745 -1.919658 10.740913 +v 0.705634 -1.914035 10.735405 +v 0.705516 -1.909174 10.72921 +v 0.705394 -1.905157 10.722433 +v 0.705269 -1.902054 10.715191 +v 0.705145 -1.899916 10.707608 +v 0.705023 -1.898781 10.699812 +v 0.704905 -1.898669 10.691938 +v 0.704793 -1.89958 10.68412 +v 0.704689 -1.9015 10.676493 +v 0.704596 -1.904396 10.669186 +v 0.704514 -1.908217 10.662325 +v 0.704444 -1.9129 10.656026 +v 0.704389 -1.918363 10.650399 +v 0.704349 -1.924513 10.645538 +v 0.704325 -1.931245 10.641528 +v 0.704317 -1.938444 10.638436 +v 0.704325 -1.945986 10.636317 +v 0.704349 -1.953742 10.635205 +v 0.704389 -1.961581 10.63512 +v 0.704444 -1.969367 10.636065 +v 0.704514 -1.976967 10.6380205 +v 0.704596 -1.984252 10.640955 +v 0.704689 -1.991097 10.644819 +v 0.704793 -1.997384 10.649545 +v 0.704905 -2.003006 10.655053 +v 0.705023 -2.007867 10.661248 +v 0.705145 -2.011884 10.668025 +v 0.705269 -2.014988 10.675267 +v 0.705394 -2.017125 10.682851 +v 0.705516 -2.01826 10.690646 +v 0.705634 -2.018373 10.69852 +v 0.705745 -2.017461 10.706338 +v 0.705849 -2.015541 10.713965 +v 0.705943 -2.012646 10.721272 +v 0.706025 -2.008824 10.728134 +v 0.706094 -2.004142 10.734432 +v 0.706149 -1.998679 10.74006 +v 0.706189 -1.992529 10.74492 +v 0.706213 -1.985797 10.74893 +v 1.060874 -1.955564 10.708932 +v 1.060881 -1.96266 10.706937 +v 1.060851 -1.948265 10.709978 +v 1.060813 -1.94089 10.710057 +v 1.060761 -1.933564 10.709169 +v 1.060696 -1.926413 10.707329 +v 1.060619 -1.919559 10.704567 +v 1.060531 -1.913119 10.7009325 +v 1.060433 -1.907203 10.6964855 +v 1.060328 -1.901913 10.691303 +v 1.060217 -1.89734 10.685474 +v 1.060102 -1.89356 10.679098 +v 1.059985 -1.89064 10.672284 +v 1.059868 -1.888629 10.665148 +v 1.059753 -1.887561 10.657814 +v 1.059642 -1.887455 10.650405 +v 1.059537 -1.888313 10.64305 +v 1.05944 -1.890119 10.635873 +v 1.059352 -1.892844 10.628998 +v 1.059274 -1.89644 10.622542 +v 1.059209 -1.900845 10.616616 +v 1.059158 -1.905985 10.611321 +v 1.05912 -1.911772 10.606748 +v 1.059097 -1.918106 10.602975 +v 1.059089 -1.924879 10.600066 +v 1.059097 -1.931975 10.598072 +v 1.05912 -1.939273 10.597026 +v 1.059158 -1.946648 10.596946 +v 1.059209 -1.953974 10.597834 +v 1.059274 -1.961126 10.599674 +v 1.059352 -1.96798 10.602436 +v 1.05944 -1.97442 10.606071 +v 1.059537 -1.980335 10.610518 +v 1.059642 -1.985625 10.6157 +v 1.059753 -1.990199 10.621529 +v 1.059868 -1.993978 10.627905 +v 1.059985 -1.996899 10.634719 +v 1.060102 -1.99891 10.641855 +v 1.060217 -1.999977 10.64919 +v 1.060328 -2.000083 10.656598 +v 1.060433 -1.999226 10.663954 +v 1.060531 -1.997419 10.67113 +v 1.060619 -1.994695 10.678005 +v 1.060696 -1.991099 10.684461 +v 1.060761 -1.986694 10.690387 +v 1.060813 -1.981554 10.695683 +v 1.060851 -1.975767 10.700255 +v 1.060874 -1.969433 10.704029 +v 1.415453 -1.940075 10.663733 +v 1.41853 -1.946587 10.661473 +v 1.412361 -1.933365 10.665104 +v 1.409255 -1.926575 10.665571 +v 1.406135 -1.919824 10.66513 +v 1.403002 -1.913228 10.663792 +v 1.399856 -1.906904 10.661588 +v 1.3967 -1.900963 10.658558 +v 1.393534 -1.895507 10.654761 +v 1.390359 -1.890635 10.650267 +v 1.387178 -1.886431 10.645158 +v 1.383992 -1.882971 10.639528 +v 1.380803 -1.880317 10.633477 +v 1.377613 -1.878518 10.627115 +v 1.374424 -1.877608 10.620558 +v 1.371238 -1.877606 10.613923 +v 1.368057 -1.878514 10.607331 +v 1.364883 -1.88032 10.600899 +v 1.361717 -1.882998 10.594745 +v 1.358562 -1.886503 10.58898 +v 1.355418 -1.89078 10.583711 +v 1.352288 -1.895758 10.579033 +v 1.349172 -1.901355 10.575034 +v 1.34607 -1.907478 10.571789 +v 1.342985 -1.914024 10.569361 +v 1.34607 -1.920642 10.567135 +v 1.349172 -1.927444 10.565811 +v 1.352288 -1.934311 10.565404 +v 1.355418 -1.941122 10.565914 +v 1.358562 -1.947761 10.567325 +v 1.361717 -1.95411 10.569605 +v 1.364883 -1.960061 10.572709 +v 1.368057 -1.965508 10.576576 +v 1.371238 -1.970358 10.581134 +v 1.374424 -1.974526 10.586296 +v 1.377613 -1.977939 10.591969 +v 1.380803 -1.980538 10.598047 +v 1.383992 -1.982277 10.604421 +v 1.387178 -1.983125 10.610975 +v 1.390359 -1.983066 10.617591 +v 1.393534 -1.9821 10.624149 +v 1.3967 -1.980243 10.630531 +v 1.399856 -1.977526 10.636622 +v 1.403002 -1.973992 10.642311 +v 1.406135 -1.969703 10.647497 +v 1.409255 -1.964729 10.652083 +v 1.412361 -1.959154 10.655987 +v 1.415453 -1.953073 10.659137 +v -0.736629 -0.673242 11.192366 +v -0.736647 -0.682556 11.192253 +v -1.070065 -0.662671 11.055792 +v -0.736573 -0.663992 11.191249 +v -1.061453 -0.653818 11.058103 +v -0.736481 -0.654964 11.188922 +v -1.051635 -0.645209 11.059645 +v -0.736355 -0.646311 11.185424 +v -1.041433 -0.636972 11.060128 +v -0.736196 -0.638182 11.180815 +v -1.031187 -0.629242 11.059478 +v -0.736008 -0.630716 11.175175 +v -1.021108 -0.622153 11.057695 +v -1.011358 -0.615827 11.054814 +v -0.735793 -0.62404 11.168599 +v -1.002073 -0.610375 11.0509 +v -0.735556 -0.61827 11.161201 +v -0.7353 -0.613503 11.153105 +v -0.993366 -0.605893 11.046036 +v -0.73503 -0.609822 11.144452 +v -0.985334 -0.602461 11.040327 +v -0.73475 -0.607289 11.13539 +v -0.978054 -0.600139 11.0338955 +v -0.734465 -0.605947 11.126073 +v -0.97158 -0.598972 11.0268755 +v -0.73418 -0.60582 11.11666 +v -0.965947 -0.598981 11.019419 +v -0.7339 -0.60691 11.107314 +v -0.961165 -0.600169 11.011685 +v -0.73363 -0.609198 11.098193 +v -0.95722 -0.602519 11.003845 +v -0.733374 -0.612644 11.089454 +v -0.954074 -0.605994 10.996074 +v -0.733137 -0.617191 11.081246 +v -0.951663 -0.610536 10.988552 +v -0.732922 -0.622759 11.07371 +v -0.9499 -0.616073 10.98146 +v -0.732734 -0.629255 11.066975 +v -0.948679 -0.622514 10.974978 +v -0.732575 -0.636566 11.061156 +v -0.947879 -0.629751 10.969275 +v -0.732449 -0.644568 11.056352 +v -0.947374 -0.637665 10.964508 +v -0.732357 -0.653124 11.052646 +v -0.947048 -0.646125 10.960814 +v -0.732302 -0.662087 11.050101 +v -0.946803 -0.654991 10.958299 +v -0.732283 -0.671304 11.04876 +v -0.946578 -0.664111 10.957035 +v -0.732302 -0.680617 11.048648 +v -0.946356 -0.673333 10.957053 +v -0.732357 -0.689867 11.049765 +v -0.946169 -0.682497 10.95834 +v -0.732449 -0.698896 11.052092 +v -0.946093 -0.691444 10.960842 +v -0.732575 -0.707549 11.05559 +v -0.946234 -0.700018 10.964471 +v -0.732734 -0.715678 11.060198 +v -0.94672 -0.708067 10.969108 +v -0.732922 -0.723144 11.065839 +v -0.947683 -0.715449 10.974616 +v -0.733137 -0.729819 11.072415 +v -0.949246 -0.722031 10.98084 +v -0.733374 -0.735589 11.079813 +v -0.951519 -0.727696 10.9876175 +v -0.73363 -0.740356 11.087908 +v -0.954589 -0.732343 10.9947815 +v -0.7339 -0.744038 11.096561 +v -0.958519 -0.735887 11.002163 +v -0.73418 -0.746571 11.105624 +v -0.963346 -0.738264 11.009594 +v -0.734465 -0.747912 11.114941 +v -0.969082 -0.739431 11.016912 +v -0.73475 -0.748039 11.124353 +v -0.975713 -0.739366 11.023959 +v -0.73503 -0.74695 11.1337 +v -0.983201 -0.738068 11.030586 +v -0.7353 -0.744662 11.14282 +v -0.991485 -0.735557 11.0366535 +v -0.735556 -0.741215 11.15156 +v -1.000485 -0.731878 11.042033 +v -0.735793 -0.736669 11.159767 +v -1.010097 -0.727091 11.046613 +v -0.736008 -0.7311 11.167303 +v -1.020201 -0.721278 11.050298 +v -1.030652 -0.714541 11.053011 +v -0.736196 -0.724605 11.174038 +v -0.736355 -0.717293 11.179858 +v -1.041278 -0.706994 11.054701 +v -1.05185 -0.698769 11.055356 +v -0.736481 -0.709291 11.184662 +v -0.736573 -0.700736 11.188368 +v -1.061986 -0.690015 11.055045 +v -0.736629 -0.691773 11.190913 +v -1.070702 -0.680907 11.054099 +v -0.376692 -0.672118 11.177912 +v -0.376682 -0.681422 11.177794 +v -0.376724 -0.662877 11.176812 +v -0.376776 -0.653859 11.174512 +v -0.376847 -0.645217 11.171053 +v -0.376936 -0.637099 11.166493 +v -0.377043 -0.629644 11.16091 +v -0.377164 -0.62298 11.1544 +v -0.377298 -0.61722 11.147074 +v -0.377442 -0.612463 11.139058 +v -0.377595 -0.608791 11.130489 +v -0.377753 -0.606267 11.121512 +v -0.377913 -0.604932 11.112283 +v -0.378074 -0.604812 11.102959 +v -0.378232 -0.605906 11.093699 +v -0.378385 -0.608198 11.084662 +v -0.378529 -0.611647 11.076002 +v -0.378663 -0.616194 11.067868 +v -0.378784 -0.621763 11.060399 +v -0.37889 -0.628256 11.053723 +v -0.37898 -0.635564 11.047953 +v -0.379051 -0.643562 11.043189 +v -0.379103 -0.652111 11.039512 +v -0.379134 -0.661067 11.036985 +v -0.379145 -0.670276 11.035651 +v -0.379134 -0.67958 11.035533 +v -0.379103 -0.68882 11.0366335 +v -0.379051 -0.697839 11.038933 +v -0.37898 -0.706481 11.042392 +v -0.37889 -0.714599 11.046952 +v -0.378784 -0.722054 11.052535 +v -0.378663 -0.728718 11.059045 +v -0.378529 -0.734478 11.066371 +v -0.378385 -0.739234 11.074387 +v -0.378232 -0.742907 11.082956 +v -0.378074 -0.745431 11.091933 +v -0.377913 -0.746765 11.101162 +v -0.377753 -0.746886 11.110486 +v -0.377595 -0.745791 11.119746 +v -0.377442 -0.7435 11.128783 +v -0.377298 -0.740051 11.137444 +v -0.377164 -0.735503 11.145577 +v -0.377043 -0.729935 11.153046 +v -0.376936 -0.723441 11.159722 +v -0.376847 -0.716134 11.165492 +v -0.376776 -0.708136 11.170256 +v -0.376724 -0.699587 11.173933 +v -0.376692 -0.690631 11.17646 +v -0.014231 -0.668567 11.126168 +v -0.014221 -0.677365 11.12606 +v -0.014261 -0.65983 11.12512 +v -0.01431 -0.651302 11.122933 +v -0.014378 -0.643129 11.119645 +v -0.014463 -0.635451 11.115312 +v -0.014564 -0.6284 11.110008 +v -0.014679 -0.622096 11.103824 +v -0.014806 -0.616648 11.096865 +v -0.014943 -0.612148 11.0892515 +v -0.015088 -0.608673 11.081112 +v -0.015238 -0.606282 11.072587 +v -0.015391 -0.605018 11.063823 +v -0.015543 -0.604901 11.054968 +v -0.015693 -0.605933 11.046175 +v -0.015838 -0.608097 11.037594 +v -0.015975 -0.611355 11.029371 +v -0.016103 -0.615653 11.021648 +v -0.016218 -0.620915 11.014557 +v -0.016319 -0.627054 11.008219 +v -0.016404 -0.633962 11.002742 +v -0.016471 -0.641522 10.998221 +v -0.01652 -0.649606 10.994731 +v -0.01655 -0.658073 10.992334 +v -0.01656 -0.66678 10.991071 +v -0.01655 -0.675578 10.990962 +v -0.01652 -0.684316 10.99201 +v -0.016471 -0.692844 10.994196 +v -0.016404 -0.701017 10.997484 +v -0.016319 -0.708694 11.001817 +v -0.016218 -0.715745 11.007121 +v -0.016103 -0.722049 11.013305 +v -0.015975 -0.727498 11.020264 +v -0.015838 -0.731998 11.027878 +v -0.015693 -0.735473 11.036017 +v -0.015543 -0.737863 11.044542 +v -0.015391 -0.739127 11.053308 +v -0.015238 -0.739245 11.062161 +v -0.015088 -0.738212 11.070955 +v -0.014943 -0.736049 11.079536 +v -0.014806 -0.73279 11.087758 +v -0.014679 -0.728493 11.095481 +v -0.014564 -0.72323 11.102572 +v -0.014463 -0.717092 11.10891 +v -0.014378 -0.710183 11.1143875 +v -0.01431 -0.702623 11.118909 +v -0.014261 -0.69454 11.122398 +v -0.014231 -0.686072 11.124795 +v 0.35136 -0.664932 11.0737705 +v 0.35137 -0.673257 11.073668 +v 0.351332 -0.656664 11.072778 +v 0.351285 -0.648594 11.070709 +v 0.351221 -0.64086 11.067598 +v 0.351141 -0.633595 11.0634985 +v 0.351046 -0.626923 11.058478 +v 0.350937 -0.620958 11.052626 +v 0.350816 -0.615802 11.0460415 +v 0.350686 -0.611544 11.0388365 +v 0.350549 -0.608256 11.031134 +v 0.350407 -0.605994 11.023068 +v 0.350263 -0.604797 11.014774 +v 0.350119 -0.604687 11.006394 +v 0.349977 -0.605663 10.998075 +v 0.349839 -0.607711 10.989953 +v 0.34971 -0.610794 10.982173 +v 0.349589 -0.614861 10.974864 +v 0.34948 -0.619841 10.968154 +v 0.349385 -0.625649 10.962156 +v 0.349305 -0.632186 10.956974 +v 0.349241 -0.63934 10.952695 +v 0.349194 -0.646989 10.949393 +v 0.349166 -0.655001 10.947125 +v 0.349156 -0.66324 10.94593 +v 0.349166 -0.671565 10.945827 +v 0.349194 -0.679834 10.946818 +v 0.349241 -0.687903 10.948887 +v 0.349305 -0.695637 10.951998 +v 0.349385 -0.702902 10.9560995 +v 0.34948 -0.709574 10.961118 +v 0.349589 -0.715539 10.96697 +v 0.34971 -0.720695 10.973555 +v 0.349839 -0.724954 10.98076 +v 0.349977 -0.728242 10.988462 +v 0.350119 -0.730503 10.996529 +v 0.350263 -0.7317 11.004823 +v 0.350407 -0.731811 11.013202 +v 0.350549 -0.730834 11.021523 +v 0.350686 -0.728787 11.029643 +v 0.350816 -0.725703 11.037424 +v 0.350937 -0.721637 11.044732 +v 0.351046 -0.716657 11.051442 +v 0.351141 -0.710849 11.05744 +v 0.351221 -0.704312 11.062622 +v 0.351285 -0.697157 11.066901 +v 0.351332 -0.689509 11.070203 +v 0.35136 -0.681496 11.072471 +v 0.720085 -0.661265 11.020923 +v 0.720094 -0.669113 11.020826 +v 0.720059 -0.65347 11.019989 +v 0.720015 -0.645862 11.018038 +v 0.719954 -0.638571 11.015105 +v 0.719879 -0.631722 11.011239 +v 0.719789 -0.625432 11.006507 +v 0.719686 -0.619809 11.00099 +v 0.719572 -0.614948 10.994782 +v 0.71945 -0.610933 10.987989 +v 0.719321 -0.607833 10.980729 +v 0.719187 -0.605701 10.973123 +v 0.719051 -0.604573 10.965304 +v 0.718915 -0.604468 10.957405 +v 0.718781 -0.605389 10.94956 +v 0.718652 -0.607319 10.941905 +v 0.718529 -0.610226 10.934569 +v 0.718416 -0.61406 10.92768 +v 0.718313 -0.618755 10.921353 +v 0.718223 -0.624231 10.915699 +v 0.718147 -0.630393 10.910813 +v 0.718087 -0.637138 10.906779 +v 0.718043 -0.644349 10.9036665 +v 0.718016 -0.651903 10.901528 +v 0.718007 -0.65967 10.900401 +v 0.718016 -0.667519 10.900304 +v 0.718043 -0.675314 10.901238 +v 0.718087 -0.682922 10.903189 +v 0.718147 -0.690213 10.906122 +v 0.718223 -0.697062 10.909988 +v 0.718313 -0.703352 10.914721 +v 0.718416 -0.708975 10.920238 +v 0.718529 -0.713836 10.926445 +v 0.718652 -0.717851 10.933237 +v 0.718781 -0.720951 10.940498 +v 0.718915 -0.723083 10.948104 +v 0.719051 -0.724211 10.955923 +v 0.719187 -0.724316 10.963822 +v 0.719321 -0.723395 10.971667 +v 0.71945 -0.721464 10.979322 +v 0.719572 -0.718558 10.986658 +v 0.719686 -0.714724 10.993547 +v 0.719789 -0.710029 10.999874 +v 0.719879 -0.704553 11.005528 +v 0.719954 -0.69839 11.010414 +v 0.720015 -0.691646 11.014448 +v 0.720059 -0.684435 11.01756 +v 0.720085 -0.676881 11.019699 +v 1.091944 -0.657567 10.9676285 +v 1.091952 -0.664935 10.967536 +v 1.091919 -0.65025 10.96675 +v 1.091878 -0.643107 10.964919 +v 1.091821 -0.636263 10.962165 +v 1.09175 -0.629833 10.958536 +v 1.091665 -0.623928 10.954094 +v 1.091569 -0.618649 10.9489155 +v 1.091462 -0.614086 10.943087 +v 1.091348 -0.610317 10.93671 +v 1.091226 -0.607407 10.929894 +v 1.091101 -0.605405 10.922755 +v 1.090973 -0.604346 10.915414 +v 1.090845 -0.604248 10.907999 +v 1.090719 -0.605113 10.900634 +v 1.090598 -0.606925 10.893448 +v 1.090483 -0.609654 10.886562 +v 1.090377 -0.613253 10.880095 +v 1.09028 -0.61766 10.874155 +v 1.090196 -0.6228 10.868847 +v 1.090125 -0.628586 10.86426 +v 1.090068 -0.634917 10.860473 +v 1.090027 -0.641687 10.857551 +v 1.090002 -0.648778 10.855544 +v 1.089993 -0.65607 10.8544855 +v 1.090002 -0.663438 10.854394 +v 1.090027 -0.670755 10.855272 +v 1.090068 -0.677897 10.857103 +v 1.090125 -0.684742 10.859857 +v 1.090196 -0.691172 10.863486 +v 1.09028 -0.697076 10.8679285 +v 1.090377 -0.702356 10.873107 +v 1.090483 -0.706919 10.878935 +v 1.090598 -0.710688 10.885311 +v 1.090719 -0.713598 10.892128 +v 1.090845 -0.715599 10.899267 +v 1.090973 -0.716658 10.906608 +v 1.091101 -0.716756 10.914023 +v 1.091226 -0.715892 10.921387 +v 1.091348 -0.71408 10.928574 +v 1.091462 -0.711351 10.93546 +v 1.091569 -0.707752 10.941928 +v 1.091665 -0.703345 10.947867 +v 1.09175 -0.698204 10.953176 +v 1.091821 -0.692419 10.957762 +v 1.091878 -0.686087 10.961549 +v 1.091919 -0.679318 10.964471 +v 1.091944 -0.672227 10.966478 +v 1.463876 -0.653868 10.914321 +v 1.466944 -0.660721 10.913797 +v 1.460793 -0.647055 10.913939 +v 1.457694 -0.640397 10.912663 +v 1.45458 -0.634011 10.910522 +v 1.451452 -0.628006 10.907558 +v 1.44831 -0.622486 10.903828 +v 1.445156 -0.617547 10.899402 +v 1.441992 -0.613274 10.8943615 +v 1.438819 -0.609742 10.8888 +v 1.435638 -0.607013 10.882818 +v 1.432452 -0.605134 10.876525 +v 1.429263 -0.604141 10.870036 +v 1.426073 -0.60405 10.863468 +v 1.422884 -0.604866 10.856941 +v 1.419699 -0.606576 10.850574 +v 1.416518 -0.609152 10.844481 +v 1.413346 -0.612552 10.838776 +v 1.410182 -0.616718 10.833563 +v 1.40703 -0.621582 10.82894 +v 1.403891 -0.627061 10.824992 +v 1.400766 -0.633063 10.821796 +v 1.397656 -0.639485 10.819414 +v 1.394562 -0.64622 10.817894 +v 1.391486 -0.653152 10.817271 +v 1.394562 -0.660096 10.816806 +v 1.397656 -0.666986 10.817258 +v 1.400766 -0.673701 10.81861 +v 1.403891 -0.680127 10.820831 +v 1.40703 -0.686155 10.823876 +v 1.410182 -0.69168 10.827685 +v 1.413346 -0.696608 10.832184 +v 1.416518 -0.700855 10.83729 +v 1.419699 -0.70435 10.842906 +v 1.422884 -0.707031 10.848929 +v 1.426073 -0.708854 10.85525 +v 1.429263 -0.709789 10.8617525 +v 1.432452 -0.709819 10.868316 +v 1.435638 -0.708944 10.8748255 +v 1.438819 -0.70718 10.881159 +v 1.441992 -0.704559 10.887203 +v 1.445156 -0.701123 10.892848 +v 1.44831 -0.696934 10.89799 +v 1.451452 -0.692063 10.902535 +v 1.45458 -0.686594 10.906399 +v 1.457694 -0.680619 10.909509 +v 1.460793 -0.674242 10.911807 +v 1.463876 -0.667571 10.913247 +v -0.736629 0.691773 11.190913 +v -0.736647 0.682556 11.192253 +v -1.070702 0.680907 11.054099 +v -0.736573 0.700736 11.188368 +v -1.061986 0.690015 11.055045 +v -0.736481 0.709291 11.184662 +v -1.05185 0.698769 11.055356 +v -0.736355 0.717293 11.179858 +v -1.041278 0.706994 11.054701 +v -0.736196 0.724605 11.174038 +v -1.030652 0.714541 11.053011 +v -0.736008 0.7311 11.167303 +v -1.020201 0.721278 11.050298 +v -0.735793 0.736669 11.159767 +v -1.010097 0.727091 11.046613 +v -0.735556 0.741215 11.15156 +v -1.000485 0.731878 11.042033 +v -0.7353 0.744662 11.14282 +v -0.991485 0.735557 11.0366535 +v -0.73503 0.74695 11.1337 +v -0.983201 0.738068 11.030586 +v -0.975713 0.739366 11.023959 +v -0.73475 0.748039 11.124353 +v -0.734465 0.747912 11.114941 +v -0.969082 0.739431 11.016912 +v -0.73418 0.746571 11.105624 +v -0.963346 0.738264 11.009594 +v -0.7339 0.744038 11.096561 +v -0.958519 0.735887 11.002163 +v -0.73363 0.740356 11.087908 +v -0.954589 0.732343 10.9947815 +v -0.733374 0.735589 11.079813 +v -0.951519 0.727696 10.9876175 +v -0.733137 0.729819 11.072415 +v -0.949246 0.722031 10.98084 +v -0.732922 0.723144 11.065839 +v -0.947683 0.715449 10.974616 +v -0.732734 0.715678 11.060198 +v -0.94672 0.708067 10.969108 +v -0.732575 0.707549 11.05559 +v -0.946234 0.700018 10.964471 +v -0.732449 0.698896 11.052092 +v -0.946093 0.691444 10.960842 +v -0.732357 0.689867 11.049765 +v -0.946169 0.682497 10.95834 +v -0.732302 0.680617 11.048648 +v -0.946356 0.673333 10.957053 +v -0.732283 0.671304 11.04876 +v -0.946578 0.664111 10.957035 +v -0.732302 0.662087 11.050101 +v -0.946803 0.654991 10.958299 +v -0.732357 0.653124 11.052646 +v -0.947048 0.646125 10.960814 +v -0.732449 0.644568 11.056352 +v -0.947374 0.637665 10.964508 +v -0.732575 0.636566 11.061156 +v -0.947879 0.629751 10.969275 +v -0.732734 0.629255 11.066975 +v -0.948679 0.622514 10.974978 +v -0.732922 0.622759 11.07371 +v -0.9499 0.616073 10.98146 +v -0.733137 0.617191 11.081246 +v -0.951663 0.610536 10.988552 +v -0.733374 0.612644 11.089454 +v -0.954074 0.605994 10.996074 +v -0.73363 0.609198 11.098193 +v -0.95722 0.602519 11.003845 +v -0.7339 0.60691 11.107314 +v -0.961165 0.600169 11.011685 +v -0.73418 0.60582 11.11666 +v -0.965947 0.598981 11.019419 +v -0.734465 0.605947 11.126073 +v -0.97158 0.598972 11.0268755 +v -0.73475 0.607289 11.13539 +v -0.978054 0.600139 11.0338955 +v -0.73503 0.609822 11.144452 +v -0.985334 0.602461 11.040327 +v -0.7353 0.613503 11.153105 +v -0.993366 0.605893 11.046036 +v -0.735556 0.61827 11.161201 +v -1.002073 0.610375 11.0509 +v -0.735793 0.62404 11.168599 +v -1.011358 0.615827 11.054814 +v -0.736008 0.630716 11.175175 +v -1.021108 0.622153 11.057695 +v -0.736196 0.638182 11.180815 +v -1.031187 0.629242 11.059478 +v -0.736355 0.646311 11.185424 +v -1.041433 0.636972 11.060128 +v -0.736481 0.654964 11.188922 +v -1.051635 0.645209 11.059645 +v -0.736573 0.663992 11.191249 +v -1.061453 0.653818 11.058103 +v -0.736629 0.673242 11.192366 +v -1.070065 0.662671 11.055792 +v -0.376692 0.690631 11.17646 +v -0.376682 0.681422 11.177794 +v -0.376724 0.699587 11.173933 +v -0.376776 0.708136 11.170256 +v -0.376847 0.716134 11.165492 +v -0.376936 0.723441 11.159722 +v -0.377043 0.729935 11.153046 +v -0.377164 0.735503 11.145577 +v -0.377298 0.740051 11.137444 +v -0.377442 0.7435 11.128783 +v -0.377595 0.745791 11.119746 +v -0.377753 0.746886 11.110486 +v -0.377913 0.746765 11.101162 +v -0.378074 0.745431 11.091933 +v -0.378232 0.742907 11.082956 +v -0.378385 0.739234 11.074387 +v -0.378529 0.734478 11.066371 +v -0.378663 0.728718 11.059045 +v -0.378784 0.722054 11.052535 +v -0.37889 0.714599 11.046952 +v -0.37898 0.706481 11.042392 +v -0.379051 0.697839 11.038933 +v -0.379103 0.68882 11.0366335 +v -0.379134 0.67958 11.035533 +v -0.379145 0.670276 11.035651 +v -0.379134 0.661067 11.036985 +v -0.379103 0.652111 11.039512 +v -0.379051 0.643562 11.043189 +v -0.37898 0.635564 11.047953 +v -0.37889 0.628256 11.053723 +v -0.378784 0.621763 11.060399 +v -0.378663 0.616194 11.067868 +v -0.378529 0.611647 11.076002 +v -0.378385 0.608198 11.084662 +v -0.378232 0.605906 11.093699 +v -0.378074 0.604812 11.102959 +v -0.377913 0.604932 11.112283 +v -0.377753 0.606267 11.121512 +v -0.377595 0.608791 11.130489 +v -0.377442 0.612463 11.139058 +v -0.377298 0.61722 11.147074 +v -0.377164 0.62298 11.1544 +v -0.377043 0.629644 11.16091 +v -0.376936 0.637099 11.166493 +v -0.376847 0.645217 11.171053 +v -0.376776 0.653859 11.174512 +v -0.376724 0.662877 11.176812 +v -0.376692 0.672118 11.177912 +v -0.014231 0.686072 11.124795 +v -0.014221 0.677365 11.12606 +v -0.014261 0.69454 11.122398 +v -0.01431 0.702623 11.118909 +v -0.014378 0.710183 11.1143875 +v -0.014463 0.717092 11.10891 +v -0.014564 0.72323 11.102572 +v -0.014679 0.728493 11.095481 +v -0.014806 0.73279 11.087758 +v -0.014943 0.736049 11.079536 +v -0.015088 0.738212 11.070955 +v -0.015238 0.739245 11.062161 +v -0.015391 0.739127 11.053308 +v -0.015543 0.737863 11.044542 +v -0.015693 0.735473 11.036017 +v -0.015838 0.731998 11.027878 +v -0.015975 0.727498 11.020264 +v -0.016103 0.722049 11.013305 +v -0.016218 0.715745 11.007121 +v -0.016319 0.708694 11.001817 +v -0.016404 0.701017 10.997484 +v -0.016471 0.692844 10.994196 +v -0.01652 0.684316 10.99201 +v -0.01655 0.675578 10.990962 +v -0.01656 0.66678 10.991071 +v -0.01655 0.658073 10.992334 +v -0.01652 0.649606 10.994731 +v -0.016471 0.641522 10.998221 +v -0.016404 0.633962 11.002742 +v -0.016319 0.627054 11.008219 +v -0.016218 0.620915 11.014557 +v -0.016103 0.615653 11.021648 +v -0.015975 0.611355 11.029371 +v -0.015838 0.608097 11.037594 +v -0.015693 0.605933 11.046175 +v -0.015543 0.604901 11.054968 +v -0.015391 0.605018 11.063823 +v -0.015238 0.606282 11.072587 +v -0.015088 0.608673 11.081112 +v -0.014943 0.612148 11.0892515 +v -0.014806 0.616648 11.096865 +v -0.014679 0.622096 11.103824 +v -0.014564 0.6284 11.110008 +v -0.014463 0.635451 11.115312 +v -0.014378 0.643129 11.119645 +v -0.01431 0.651302 11.122933 +v -0.014261 0.65983 11.12512 +v -0.014231 0.668567 11.126168 +v 0.35136 0.681496 11.072471 +v 0.35137 0.673257 11.073668 +v 0.351332 0.689509 11.070203 +v 0.351285 0.697157 11.066901 +v 0.351221 0.704312 11.062622 +v 0.351141 0.710849 11.05744 +v 0.351046 0.716657 11.051442 +v 0.350937 0.721637 11.044732 +v 0.350816 0.725703 11.037424 +v 0.350686 0.728787 11.029643 +v 0.350549 0.730834 11.021523 +v 0.350407 0.731811 11.013202 +v 0.350263 0.7317 11.004823 +v 0.350119 0.730503 10.996529 +v 0.349977 0.728242 10.988462 +v 0.349839 0.724954 10.98076 +v 0.34971 0.720695 10.973555 +v 0.349589 0.715539 10.96697 +v 0.34948 0.709574 10.961118 +v 0.349385 0.702902 10.9560995 +v 0.349305 0.695637 10.951998 +v 0.349241 0.687903 10.948887 +v 0.349194 0.679834 10.946818 +v 0.349166 0.671565 10.945827 +v 0.349156 0.66324 10.94593 +v 0.349166 0.655001 10.947125 +v 0.349194 0.646989 10.949393 +v 0.349241 0.63934 10.952695 +v 0.349305 0.632186 10.956974 +v 0.349385 0.625649 10.962156 +v 0.34948 0.619841 10.968154 +v 0.349589 0.614861 10.974864 +v 0.34971 0.610794 10.982173 +v 0.349839 0.607711 10.989953 +v 0.349977 0.605663 10.998075 +v 0.350119 0.604687 11.006394 +v 0.350263 0.604797 11.014774 +v 0.350407 0.605994 11.023068 +v 0.350549 0.608256 11.031134 +v 0.350686 0.611544 11.0388365 +v 0.350816 0.615802 11.0460415 +v 0.350937 0.620958 11.052626 +v 0.351046 0.626923 11.058478 +v 0.351141 0.633595 11.0634985 +v 0.351221 0.64086 11.067598 +v 0.351285 0.648594 11.070709 +v 0.351332 0.656664 11.072778 +v 0.35136 0.664932 11.0737705 +v 0.720085 0.676881 11.019699 +v 0.720094 0.669113 11.020826 +v 0.720059 0.684435 11.01756 +v 0.720015 0.691646 11.014448 +v 0.719954 0.69839 11.010414 +v 0.719879 0.704553 11.005528 +v 0.719789 0.710029 10.999874 +v 0.719686 0.714724 10.993547 +v 0.719572 0.718558 10.986658 +v 0.71945 0.721464 10.979322 +v 0.719321 0.723395 10.971667 +v 0.719187 0.724316 10.963822 +v 0.719051 0.724211 10.955923 +v 0.718915 0.723083 10.948104 +v 0.718781 0.720951 10.940498 +v 0.718652 0.717851 10.933237 +v 0.718529 0.713836 10.926445 +v 0.718416 0.708975 10.920238 +v 0.718313 0.703352 10.914721 +v 0.718223 0.697062 10.909988 +v 0.718147 0.690213 10.906122 +v 0.718087 0.682922 10.903189 +v 0.718043 0.675314 10.901238 +v 0.718016 0.667519 10.900304 +v 0.718007 0.65967 10.900401 +v 0.718016 0.651903 10.901528 +v 0.718043 0.644349 10.9036665 +v 0.718087 0.637138 10.906779 +v 0.718147 0.630393 10.910813 +v 0.718223 0.624231 10.915699 +v 0.718313 0.618755 10.921353 +v 0.718416 0.61406 10.92768 +v 0.718529 0.610226 10.934569 +v 0.718652 0.607319 10.941905 +v 0.718781 0.605389 10.94956 +v 0.718915 0.604468 10.957405 +v 0.719051 0.604573 10.965304 +v 0.719187 0.605701 10.973123 +v 0.719321 0.607833 10.980729 +v 0.71945 0.610933 10.987989 +v 0.719572 0.614948 10.994782 +v 0.719686 0.619809 11.00099 +v 0.719789 0.625432 11.006507 +v 0.719879 0.631722 11.011239 +v 0.719954 0.638571 11.015105 +v 0.720015 0.645862 11.018038 +v 0.720059 0.65347 11.019989 +v 0.720085 0.661265 11.020923 +v 1.091944 0.672227 10.966478 +v 1.091952 0.664935 10.967536 +v 1.091919 0.679318 10.964471 +v 1.091878 0.686087 10.961549 +v 1.091821 0.692419 10.957762 +v 1.09175 0.698204 10.953176 +v 1.091665 0.703345 10.947867 +v 1.091569 0.707752 10.941928 +v 1.091462 0.711351 10.93546 +v 1.091348 0.71408 10.928574 +v 1.091226 0.715892 10.921387 +v 1.091101 0.716756 10.914023 +v 1.090973 0.716658 10.906608 +v 1.090845 0.715599 10.899267 +v 1.090719 0.713598 10.892128 +v 1.090598 0.710688 10.885311 +v 1.090483 0.706919 10.878935 +v 1.090377 0.702356 10.873107 +v 1.09028 0.697076 10.8679285 +v 1.090196 0.691172 10.863486 +v 1.090125 0.684742 10.859857 +v 1.090068 0.677897 10.857103 +v 1.090027 0.670755 10.855272 +v 1.090002 0.663438 10.854394 +v 1.089993 0.65607 10.8544855 +v 1.090002 0.648778 10.855544 +v 1.090027 0.641687 10.857551 +v 1.090068 0.634917 10.860473 +v 1.090125 0.628586 10.86426 +v 1.090196 0.6228 10.868847 +v 1.09028 0.61766 10.874155 +v 1.090377 0.613253 10.880095 +v 1.090483 0.609654 10.886562 +v 1.090598 0.606925 10.893448 +v 1.090719 0.605113 10.900634 +v 1.090845 0.604248 10.907999 +v 1.090973 0.604346 10.915414 +v 1.091101 0.605405 10.922755 +v 1.091226 0.607407 10.929894 +v 1.091348 0.610317 10.93671 +v 1.091462 0.614086 10.943087 +v 1.091569 0.618649 10.9489155 +v 1.091665 0.623928 10.954094 +v 1.09175 0.629833 10.958536 +v 1.091821 0.636263 10.962165 +v 1.091878 0.643107 10.964919 +v 1.091919 0.65025 10.96675 +v 1.091944 0.657567 10.9676285 +v 1.463876 0.667571 10.913247 +v 1.466944 0.660721 10.913797 +v 1.460793 0.674242 10.911807 +v 1.457694 0.680619 10.909509 +v 1.45458 0.686594 10.906399 +v 1.451452 0.692063 10.902535 +v 1.44831 0.696934 10.89799 +v 1.445156 0.701123 10.892848 +v 1.441992 0.704559 10.887203 +v 1.438819 0.70718 10.881159 +v 1.435638 0.708944 10.8748255 +v 1.432452 0.709819 10.868316 +v 1.429263 0.709789 10.8617525 +v 1.426073 0.708854 10.85525 +v 1.422884 0.707031 10.848929 +v 1.419699 0.70435 10.842906 +v 1.416518 0.700855 10.83729 +v 1.413346 0.696608 10.832184 +v 1.410182 0.69168 10.827685 +v 1.40703 0.686155 10.823876 +v 1.403891 0.680127 10.820831 +v 1.400766 0.673701 10.81861 +v 1.397656 0.666986 10.817258 +v 1.394562 0.660096 10.816806 +v 1.391486 0.653152 10.817271 +v 1.394562 0.64622 10.817894 +v 1.397656 0.639485 10.819414 +v 1.400766 0.633063 10.821796 +v 1.403891 0.627061 10.824992 +v 1.40703 0.621582 10.82894 +v 1.410182 0.616718 10.833563 +v 1.413346 0.612552 10.838776 +v 1.416518 0.609152 10.844481 +v 1.419699 0.606576 10.850574 +v 1.422884 0.604866 10.856941 +v 1.426073 0.60405 10.863468 +v 1.429263 0.604141 10.870036 +v 1.432452 0.605134 10.876525 +v 1.435638 0.607013 10.882818 +v 1.438819 0.609742 10.8888 +v 1.441992 0.613274 10.8943615 +v 1.445156 0.617547 10.899402 +v 1.44831 0.622486 10.903828 +v 1.451452 0.628006 10.907558 +v 1.45458 0.634011 10.910522 +v 1.457694 0.640397 10.912663 +v 1.460793 0.647055 10.913939 +v 1.463876 0.653868 10.914321 +v -0.683038 2.038528 10.893793 +v -0.683053 2.030011 10.897452 +v -0.995546 1.998912 10.784322 +v -0.682994 2.046493 10.889044 +v -0.988144 2.007056 10.782517 +v -0.682923 2.053767 10.8832855 +v -0.978821 2.014839 10.780394 +v -0.682824 2.060228 10.876617 +v -0.968814 2.021989 10.777606 +v -0.682699 2.065765 10.869153 +v -0.958634 2.028334 10.774078 +v -0.682552 2.070282 10.86102 +v -0.948566 2.033745 10.76983 +v -0.682384 2.073703 10.852358 +v -0.93881 2.038116 10.764925 +v -0.682198 2.075968 10.843315 +v -0.929524 2.041363 10.759453 +v -0.681997 2.07704 10.834045 +v -0.920841 2.043426 10.753517 +v -0.681785 2.0769 10.824708 +v -0.91287 2.044268 10.747239 +v -0.905699 2.043872 10.7407465 +v -0.681566 2.07555 10.815463 +v -0.681343 2.073013 10.806468 +v -0.899392 2.042247 10.734175 +v -0.68112 2.069333 10.797878 +v -0.893988 2.039429 10.727668 +v -0.6809 2.064573 10.789838 +v -0.889503 2.035472 10.721366 +v -0.680689 2.058814 10.782488 +v -0.885924 2.030459 10.715412 +v -0.680488 2.052154 10.775951 +v -0.883212 2.024488 10.709945 +v -0.680302 2.044708 10.770342 +v -0.881302 2.017681 10.705099 +v -0.680134 2.036604 10.765754 +v -0.880104 2.010174 10.700998 +v -0.679986 2.027979 10.762267 +v -0.879509 2.002117 10.697755 +v -0.679862 2.018981 10.759941 +v -0.879394 1.993667 10.695468 +v -0.679763 2.009765 10.758815 +v -0.87963 1.984988 10.694221 +v -0.679691 2.000487 10.758908 +v -0.880092 1.976245 10.694068 +v -0.679648 1.991307 10.760219 +v -0.880675 1.967599 10.695047 +v -0.679633 1.982382 10.762726 +v -0.881301 1.959204 10.697161 +v -0.679648 1.973865 10.766386 +v -0.88193 1.951205 10.700384 +v -0.679691 1.9659 10.771135 +v -0.882564 1.943735 10.704656 +v -0.679763 1.958626 10.776893 +v -0.883247 1.936914 10.7098875 +v -0.679862 1.952165 10.783562 +v -0.884054 1.930848 10.715961 +v -0.679986 1.946628 10.791026 +v -0.885084 1.925628 10.722737 +v -0.680134 1.942111 10.799159 +v -0.886445 1.921331 10.730056 +v -0.680302 1.93869 10.807821 +v -0.888247 1.918018 10.737747 +v -0.680488 1.936425 10.816864 +v -0.890589 1.915733 10.745634 +v -0.680689 1.935353 10.826133 +v -0.893556 1.914504 10.753537 +v -0.6809 1.935493 10.83547 +v -0.897212 1.914339 10.761278 +v -0.68112 1.936843 10.844715 +v -0.901598 1.915231 10.768686 +v -0.681343 1.93938 10.85371 +v -0.906732 1.91715 10.7756 +v -0.681566 1.94306 10.862301 +v -0.912611 1.920053 10.781869 +v -0.681785 1.94782 10.87034 +v -0.919205 1.923875 10.78736 +v -0.681997 1.953579 10.877691 +v -0.926466 1.928537 10.791957 +v -0.682198 1.960239 10.884227 +v -0.934323 1.933948 10.795561 +v -0.682384 1.967685 10.889837 +v -0.942687 1.940002 10.798098 +v -0.682552 1.975789 10.894425 +v -0.95145 1.946583 10.799515 +v -0.682699 1.984414 10.897912 +v -0.960479 1.953569 10.799784 +v -0.682824 1.993412 10.900238 +v -0.969612 1.960837 10.79891 +v -0.682923 2.002628 10.901364 +v -0.978626 1.968264 10.796936 +v -0.682994 2.011906 10.901271 +v -0.987154 1.975747 10.793977 +v -0.683038 2.021086 10.899959 +v -0.994376 1.98324 10.790324 +v -0.339838 2.03404 10.8812065 +v -0.339828 2.025555 10.884848 +v -0.339867 2.041976 10.876486 +v -0.339914 2.049228 10.870769 +v -0.339978 2.055672 10.864151 +v -0.340059 2.061197 10.856746 +v -0.340156 2.065709 10.848681 +v -0.340266 2.06913 10.840094 +v -0.340388 2.071403 10.831132 +v -0.340519 2.072488 10.821948 +v -0.340657 2.072366 10.812699 +v -0.340801 2.07104 10.803544 +v -0.340947 2.068532 10.794639 +v -0.341093 2.064886 10.786136 +v -0.341236 2.060164 10.778182 +v -0.341375 2.054445 10.770912 +v -0.341506 2.04783 10.76445 +v -0.341627 2.040429 10.758907 +v -0.341737 2.032371 10.754379 +v -0.341834 2.023793 10.750941 +v -0.341915 2.014842 10.748654 +v -0.34198 2.00567 10.747556 +v -0.342027 1.996436 10.747667 +v -0.342055 1.987296 10.748984 +v -0.342065 1.978408 10.751484 +v -0.342055 1.969923 10.755125 +v -0.342027 1.961987 10.759845 +v -0.34198 1.954734 10.765563 +v -0.341915 1.948291 10.7721815 +v -0.341834 1.942766 10.779586 +v -0.341737 1.938254 10.787651 +v -0.341627 1.934832 10.796238 +v -0.341506 1.93256 10.8052 +v -0.341375 1.931475 10.814384 +v -0.341236 1.931597 10.823633 +v -0.341093 1.932923 10.832788 +v -0.340947 1.93543 10.841693 +v -0.340801 1.939077 10.850195 +v -0.340657 1.943799 10.8581505 +v -0.340519 1.949517 10.86542 +v -0.340388 1.956133 10.871882 +v -0.340266 1.963533 10.877425 +v -0.340156 1.971591 10.881953 +v -0.340059 1.98017 10.885391 +v -0.339978 1.989121 10.887678 +v -0.339914 1.998292 10.888775 +v -0.339867 2.007527 10.888665 +v -0.339838 2.016666 10.887348 +v 0.005859 2.018111 10.837599 +v 0.005868 2.010072 10.841051 +v 0.005832 2.025629 10.83312 +v 0.005787 2.032497 10.827692 +v 0.005725 2.038598 10.821408 +v 0.005648 2.043827 10.814374 +v 0.005556 2.048095 10.806712 +v 0.005452 2.051329 10.7985525 +v 0.005336 2.053473 10.790034 +v 0.005211 2.054491 10.781304 +v 0.00508 2.054365 10.7725115 +v 0.004943 2.053098 10.763805 +v 0.004804 2.050711 10.755336 +v 0.004665 2.047245 10.747249 +v 0.004529 2.042759 10.739681 +v 0.004397 2.03733 10.732763 +v 0.004273 2.031052 10.726612 +v 0.004157 2.024031 10.721334 +v 0.004052 2.016387 10.717019 +v 0.003961 2.008251 10.713742 +v 0.003883 1.999764 10.711558 +v 0.003822 1.991069 10.710505 +v 0.003777 1.982315 10.710598 +v 0.00375 1.973653 10.71184 +v 0.003741 1.96523 10.714207 +v 0.00375 1.957191 10.717659 +v 0.003777 1.949673 10.722138 +v 0.003822 1.942805 10.727566 +v 0.003883 1.936704 10.7338505 +v 0.003961 1.931475 10.740884 +v 0.004052 1.927207 10.748546 +v 0.004157 1.923973 10.756706 +v 0.004273 1.921829 10.765224 +v 0.004397 1.920811 10.773954 +v 0.004529 1.920937 10.782747 +v 0.004665 1.922204 10.791453 +v 0.004804 1.924591 10.799922 +v 0.004943 1.928057 10.808009 +v 0.00508 1.932543 10.8155775 +v 0.005211 1.937971 10.822496 +v 0.005336 1.94425 10.828646 +v 0.005452 1.951271 10.833924 +v 0.005556 1.958915 10.838239 +v 0.005648 1.96705 10.8415165 +v 0.005725 1.975538 10.843701 +v 0.005787 1.984233 10.844755 +v 0.005832 1.992987 10.84466 +v 0.005859 2.001649 10.843418 +v 0.354542 2.002023 10.793454 +v 0.35455 1.994402 10.796727 +v 0.354516 2.009149 10.789209 +v 0.354474 2.01566 10.784063 +v 0.354415 2.021443 10.778106 +v 0.354342 2.0264 10.771438 +v 0.354255 2.030445 10.764175 +v 0.354156 2.033511 10.756439 +v 0.354046 2.035543 10.748365 +v 0.353928 2.036508 10.740089 +v 0.353803 2.036389 10.731753 +v 0.353674 2.035188 10.723501 +v 0.353542 2.032925 10.715473 +v 0.353411 2.029639 10.707806 +v 0.353281 2.025387 10.700632 +v 0.353156 2.020241 10.694074 +v 0.353038 2.014289 10.688243 +v 0.352928 2.007633 10.68324 +v 0.352829 2.000388 10.67915 +v 0.352742 1.992676 10.6760435 +v 0.352669 1.98463 10.673972 +v 0.352611 1.976387 10.672973 +v 0.352568 1.968089 10.673062 +v 0.352543 1.959878 10.674239 +v 0.352534 1.951894 10.676483 +v 0.352543 1.944273 10.679756 +v 0.352568 1.937147 10.684001 +v 0.352611 1.930636 10.689147 +v 0.352669 1.924853 10.695104 +v 0.352742 1.919896 10.701772 +v 0.352829 1.91585 10.709035 +v 0.352928 1.912785 10.716771 +v 0.353038 1.910753 10.724845 +v 0.353156 1.909788 10.733121 +v 0.353281 1.909907 10.741456 +v 0.353411 1.911108 10.749709 +v 0.353542 1.913371 10.757737 +v 0.353674 1.916657 10.765404 +v 0.353803 1.920909 10.772578 +v 0.353928 1.926055 10.779136 +v 0.354046 1.932007 10.784967 +v 0.354156 1.938663 10.78997 +v 0.354255 1.945908 10.79406 +v 0.354342 1.95362 10.797167 +v 0.354415 1.961666 10.799238 +v 0.354474 1.969909 10.800237 +v 0.354516 1.978207 10.800147 +v 0.354542 1.986418 10.79897 +v 0.706213 1.985797 10.74893 +v 0.706222 1.978598 10.752022 +v 0.706189 1.992529 10.74492 +v 0.706149 1.998679 10.74006 +v 0.706094 2.004142 10.734432 +v 0.706025 2.008824 10.728134 +v 0.705943 2.012646 10.721272 +v 0.705849 2.015541 10.713965 +v 0.705745 2.017461 10.706338 +v 0.705634 2.018373 10.69852 +v 0.705516 2.01826 10.690646 +v 0.705394 2.017125 10.682851 +v 0.705269 2.014988 10.675267 +v 0.705145 2.011884 10.668025 +v 0.705023 2.007867 10.661248 +v 0.704905 2.003006 10.655053 +v 0.704793 1.997384 10.649545 +v 0.704689 1.991097 10.644819 +v 0.704596 1.984252 10.640955 +v 0.704514 1.976967 10.6380205 +v 0.704444 1.969367 10.636065 +v 0.704389 1.961581 10.63512 +v 0.704349 1.953742 10.635205 +v 0.704325 1.945986 10.636317 +v 0.704317 1.938444 10.638436 +v 0.704325 1.931245 10.641528 +v 0.704349 1.924513 10.645538 +v 0.704389 1.918363 10.650399 +v 0.704444 1.9129 10.656026 +v 0.704514 1.908217 10.662325 +v 0.704596 1.904396 10.669186 +v 0.704689 1.9015 10.676493 +v 0.704793 1.89958 10.68412 +v 0.704905 1.898669 10.691938 +v 0.705023 1.898781 10.699812 +v 0.705145 1.899916 10.707608 +v 0.705269 1.902054 10.715191 +v 0.705394 1.905157 10.722433 +v 0.705516 1.909174 10.72921 +v 0.705634 1.914035 10.735405 +v 0.705745 1.919658 10.740913 +v 0.705849 1.925945 10.745639 +v 0.705943 1.932789 10.749503 +v 0.706025 1.940074 10.752439 +v 0.706094 1.947675 10.754395 +v 0.706149 1.955461 10.755338 +v 0.706189 1.963299 10.755253 +v 0.706213 1.971056 10.754142 +v 1.060874 1.969433 10.704029 +v 1.060881 1.96266 10.706937 +v 1.060851 1.975767 10.700255 +v 1.060813 1.981554 10.695683 +v 1.060761 1.986694 10.690387 +v 1.060696 1.991099 10.684461 +v 1.060619 1.994695 10.678005 +v 1.060531 1.997419 10.67113 +v 1.060433 1.999226 10.663954 +v 1.060328 2.000083 10.656598 +v 1.060217 1.999977 10.64919 +v 1.060102 1.99891 10.641855 +v 1.059985 1.996899 10.634719 +v 1.059868 1.993978 10.627905 +v 1.059753 1.990199 10.621529 +v 1.059642 1.985625 10.6157 +v 1.059537 1.980335 10.610518 +v 1.05944 1.97442 10.606071 +v 1.059352 1.96798 10.602436 +v 1.059274 1.961126 10.599674 +v 1.059209 1.953974 10.597834 +v 1.059158 1.946648 10.596946 +v 1.05912 1.939273 10.597026 +v 1.059097 1.931975 10.598072 +v 1.059089 1.924879 10.600066 +v 1.059097 1.918106 10.602975 +v 1.05912 1.911772 10.606748 +v 1.059158 1.905985 10.611321 +v 1.059209 1.900845 10.616616 +v 1.059274 1.89644 10.622542 +v 1.059352 1.892844 10.628998 +v 1.05944 1.890119 10.635873 +v 1.059537 1.888313 10.64305 +v 1.059642 1.887455 10.650405 +v 1.059753 1.887561 10.657814 +v 1.059868 1.888629 10.665148 +v 1.059985 1.89064 10.672284 +v 1.060102 1.89356 10.679098 +v 1.060217 1.89734 10.685474 +v 1.060328 1.901913 10.691303 +v 1.060433 1.907203 10.6964855 +v 1.060531 1.913119 10.7009325 +v 1.060619 1.919559 10.704567 +v 1.060696 1.926413 10.707329 +v 1.060761 1.933564 10.709169 +v 1.060813 1.94089 10.710057 +v 1.060851 1.948265 10.709978 +v 1.060874 1.955564 10.708932 +v 1.415453 1.953073 10.659137 +v 1.41853 1.946587 10.661473 +v 1.412361 1.959154 10.655987 +v 1.409255 1.964729 10.652083 +v 1.406135 1.969703 10.647497 +v 1.403002 1.973992 10.642311 +v 1.399856 1.977526 10.636622 +v 1.3967 1.980243 10.630531 +v 1.393534 1.9821 10.624149 +v 1.390359 1.983066 10.617591 +v 1.387178 1.983125 10.610975 +v 1.383992 1.982277 10.604421 +v 1.380803 1.980538 10.598047 +v 1.377613 1.977939 10.591969 +v 1.374424 1.974526 10.586296 +v 1.371238 1.970358 10.581134 +v 1.368057 1.965508 10.576576 +v 1.364883 1.960061 10.572709 +v 1.361717 1.95411 10.569605 +v 1.358562 1.947761 10.567325 +v 1.355418 1.941122 10.565914 +v 1.352288 1.934311 10.565404 +v 1.349172 1.927444 10.565811 +v 1.34607 1.920642 10.567135 +v 1.342985 1.914024 10.569361 +v 1.34607 1.907478 10.571789 +v 1.349172 1.901355 10.575034 +v 1.352288 1.895758 10.579033 +v 1.355418 1.89078 10.583711 +v 1.358562 1.886503 10.58898 +v 1.361717 1.882998 10.594745 +v 1.364883 1.88032 10.600899 +v 1.368057 1.878514 10.607331 +v 1.371238 1.877606 10.613923 +v 1.374424 1.877608 10.620558 +v 1.377613 1.878518 10.627115 +v 1.380803 1.880317 10.633477 +v 1.383992 1.882971 10.639528 +v 1.387178 1.886431 10.645158 +v 1.390359 1.890635 10.650267 +v 1.393534 1.895507 10.654761 +v 1.3967 1.900963 10.658558 +v 1.399856 1.906904 10.661588 +v 1.403002 1.913228 10.663792 +v 1.406135 1.919824 10.66513 +v 1.409255 1.926575 10.665571 +v 1.412361 1.933365 10.665104 +v 1.415453 1.940075 10.663733 +v -0.525747 3.244035 10.223295 +v -0.52574 3.237772 10.228887 +v -0.837486 3.193905 10.161576 +v -0.525768 3.249512 10.216929 +v -0.832755 3.199153 10.15725 +v -0.525802 3.254109 10.2099 +v -0.826066 3.204015 10.152704 +v -0.52585 3.257747 10.202326 +v -0.81834 3.20828 10.147838 +v -0.81017 3.211788 10.142636 +v -0.52591 3.260365 10.194339 +v -0.52598 3.261918 10.186073 +v -0.801931 3.21443 10.13714 +v -0.526061 3.262379 10.177671 +v -0.793875 3.216127 10.131422 +v -0.526151 3.26174 10.169277 +v -0.786191 3.216828 10.125576 +v -0.526247 3.260013 10.161034 +v -0.779025 3.216507 10.119708 +v -0.772491 3.215161 10.11393 +v -0.526349 3.257226 10.153084 +v -0.526454 3.253427 10.145561 +v -0.766673 3.21281 10.108359 +v -0.526561 3.248682 10.138595 +v -0.761631 3.209497 10.103109 +v -0.526668 3.243071 10.132306 +v -0.757399 3.205286 10.098291 +v -0.526774 3.236691 10.126801 +v -0.753983 3.200264 10.094009 +v -0.526876 3.229651 10.122173 +v -0.751365 3.194532 10.09036 +v -0.526972 3.222071 10.118502 +v -0.749499 3.188209 10.087426 +v -0.527061 3.21408 10.115851 +v -0.74832 3.181427 10.085276 +v -0.527142 3.205817 10.114266 +v -0.747741 3.174324 10.083967 +v -0.527213 3.197421 10.113773 +v -0.747661 3.167046 10.083535 +v -0.527273 3.189037 10.114381 +v -0.747971 3.159736 10.084003 +v -0.52732 3.180808 10.116079 +v -0.74856 3.152539 10.085376 +v -0.527355 3.172876 10.118839 +v -0.749325 3.14559 10.08764 +v -0.527376 3.165374 10.122613 +v -0.750179 3.139017 10.090764 +v -0.527383 3.158433 10.127337 +v -0.527376 3.152171 10.132929 +v -0.751927 3.127452 10.099388 +v -0.527355 3.146694 10.139294 +v -0.752781 3.122654 10.104741 +v -0.52732 3.142097 10.146324 +v -0.753644 3.118617 10.110665 +v -0.527273 3.138458 10.153897 +v -0.754567 3.115403 10.117048 +v -0.527213 3.13584 10.161885 +v -0.755619 3.113055 10.123768 +v -0.527142 3.134287 10.170151 +v -0.756879 3.111605 10.130694 +v -0.527061 3.133826 10.178552 +v -0.758434 3.111064 10.137685 +v -0.526972 3.134465 10.186946 +v -0.760362 3.111432 10.144602 +v -0.526876 3.136193 10.195189 +v -0.762736 3.112688 10.151301 +v -0.765614 3.114798 10.157646 +v -0.526774 3.13898 10.20314 +v -0.526668 3.142779 10.210663 +v -0.769037 3.117711 10.1635065 +v -0.526561 3.147524 10.2176285 +v -0.773029 3.121361 10.168762 +v -0.526454 3.153134 10.223918 +v -0.777592 3.12567 10.173306 +v -0.526349 3.159514 10.2294235 +v -0.782709 3.130546 10.177048 +v -0.526247 3.166555 10.234051 +v -0.788342 3.135891 10.179915 +v -0.526151 3.174135 10.237722 +v -0.794431 3.141598 10.181855 +v -0.800895 3.147556 10.182835 +v -0.526061 3.182125 10.240372 +v -0.52598 3.190389 10.241958 +v -0.807628 3.153655 10.182846 +v -0.814488 3.159787 10.181902 +v -0.52591 3.198784 10.242451 +v -0.52585 3.207168 10.241843 +v -0.821286 3.165854 10.180046 +v -0.525802 3.215397 10.240144 +v -0.827744 3.171777 10.177353 +v -0.525768 3.22333 10.237385 +v -0.83342 3.177508 10.173946 +v -0.525747 3.230831 10.233611 +v -0.837585 3.183058 10.170018 +v -0.165556 3.228473 10.203745 +v -0.165549 3.22238 10.209186 +v -0.165576 3.233803 10.197554 +v -0.16561 3.238278 10.190718 +v -0.165656 3.241821 10.183353 +v -0.165714 3.244372 10.175586 +v -0.165783 3.245887 10.16755 +v -0.165861 3.24634 10.159383 +v -0.165948 3.245724 10.151223 +v -0.166042 3.244049 10.143211 +v -0.166141 3.241344 10.135483 +v -0.166243 3.237655 10.128173 +v -0.166347 3.233045 10.121405 +v -0.166451 3.227593 10.115294 +v -0.166554 3.221392 10.109946 +v -0.166653 3.214548 10.105451 +v -0.166746 3.20718 10.101888 +v -0.166833 3.199411 10.099316 +v -0.166912 3.191377 10.09778 +v -0.16698 3.183213 10.097306 +v -0.167038 3.17506 10.097902 +v -0.167085 3.167057 10.099558 +v -0.167118 3.159341 10.102246 +v -0.167139 3.152044 10.105919 +v -0.167145 3.145291 10.110515 +v -0.167139 3.139198 10.115956 +v -0.167118 3.133868 10.122147 +v -0.167085 3.129394 10.1289835 +v -0.167038 3.125851 10.136348 +v -0.16698 3.1233 10.144115 +v -0.166912 3.121784 10.152151 +v -0.166833 3.121331 10.160318 +v -0.166746 3.121947 10.168478 +v -0.166653 3.123622 10.17649 +v -0.166554 3.126327 10.184218 +v -0.166451 3.130016 10.191528 +v -0.166347 3.134627 10.1982975 +v -0.166243 3.140079 10.204407 +v -0.166141 3.146279 10.209755 +v -0.166042 3.153123 10.21425 +v -0.165948 3.160492 10.2178135 +v -0.165861 3.16826 10.220385 +v -0.165783 3.176295 10.221921 +v -0.165714 3.184458 10.222395 +v -0.165656 3.192612 10.221799 +v -0.16561 3.200615 10.220143 +v -0.165576 3.20833 10.217455 +v -0.165556 3.215627 10.213782 +v 0.198075 3.20212 10.170749 +v 0.198082 3.196366 10.175888 +v 0.198056 3.207153 10.164899 +v 0.198024 3.211376 10.158438 +v 0.19798 3.214719 10.151478 +v 0.197926 3.217124 10.144136 +v 0.19786 3.218549 10.136539 +v 0.197786 3.218971 10.128816 +v 0.197704 3.218382 10.1211 +v 0.197615 3.216793 10.1135235 +v 0.197522 3.21423 10.106215 +v 0.197425 3.210737 10.0992985 +v 0.197326 3.206374 10.0928955 +v 0.197228 3.201216 10.087112 +v 0.197131 3.195351 10.08205 +v 0.197037 3.18888 10.077795 +v 0.196949 3.181912 10.074419 +v 0.196867 3.174568 10.071981 +v 0.196792 3.166972 10.070522 +v 0.196727 3.159256 10.070068 +v 0.196672 3.15155 10.070625 +v 0.196629 3.143987 10.072184 +v 0.196597 3.136697 10.074719 +v 0.196578 3.129803 10.078187 +v 0.196571 3.123424 10.082527 +v 0.196578 3.11767 10.087667 +v 0.196597 3.112637 10.093516 +v 0.196629 3.108414 10.0999775 +v 0.196672 3.105071 10.106938 +v 0.196727 3.102666 10.11428 +v 0.196792 3.101241 10.121877 +v 0.196867 3.100819 10.129601 +v 0.196949 3.101408 10.137316 +v 0.197037 3.102997 10.144893 +v 0.197131 3.10556 10.152202 +v 0.197228 3.109053 10.159117 +v 0.197326 3.113416 10.165521 +v 0.197425 3.118574 10.171303 +v 0.197522 3.124439 10.176365 +v 0.197615 3.13091 10.180621 +v 0.197704 3.137878 10.183996 +v 0.197786 3.145222 10.186434 +v 0.19786 3.152818 10.187893 +v 0.197926 3.160534 10.188348 +v 0.19798 3.16824 10.187791 +v 0.198024 3.175803 10.186231 +v 0.198056 3.183093 10.183696 +v 0.198075 3.189987 10.180229 +v 0.565361 3.175514 10.137412 +v 0.565367 3.17009 10.142256 +v 0.565343 3.180257 10.131898 +v 0.565313 3.184238 10.125809 +v 0.565272 3.187389 10.119248 +v 0.56522 3.189655 10.112329 +v 0.565158 3.190999 10.105167 +v 0.565088 3.191397 10.097888 +v 0.565011 3.190842 10.090615 +v 0.564928 3.189344 10.083473 +v 0.564839 3.186928 10.076584 +v 0.564748 3.183635 10.0700655 +v 0.564655 3.179523 10.06403 +v 0.564562 3.174662 10.058579 +v 0.564471 3.169133 10.053808 +v 0.564383 3.163034 10.049797 +v 0.564299 3.156466 10.046616 +v 0.564222 3.149544 10.044318 +v 0.564152 3.142385 10.042943 +v 0.56409 3.135111 10.042514 +v 0.564039 3.127848 10.043039 +v 0.563998 3.12072 10.044509 +v 0.563968 3.113848 10.046898 +v 0.563949 3.107351 10.050167 +v 0.563943 3.101338 10.054258 +v 0.563949 3.095914 10.059102 +v 0.563968 3.091171 10.064616 +v 0.563998 3.08719 10.070705 +v 0.564039 3.084039 10.077266 +v 0.56409 3.081772 10.0841875 +v 0.564152 3.080429 10.091347 +v 0.564222 3.080031 10.098627 +v 0.564299 3.080586 10.105899 +v 0.564383 3.082084 10.113041 +v 0.564471 3.0845 10.11993 +v 0.564562 3.087792 10.126449 +v 0.564655 3.091904 10.132485 +v 0.564748 3.096766 10.137935 +v 0.564839 3.102294 10.142706 +v 0.564928 3.108394 10.146717 +v 0.565011 3.114962 10.1498995 +v 0.565088 3.121884 10.152197 +v 0.565158 3.129043 10.153572 +v 0.56522 3.136316 10.154 +v 0.565272 3.143579 10.153475 +v 0.565313 3.150708 10.152005 +v 0.565343 3.157579 10.149616 +v 0.565361 3.164077 10.146347 +v 0.936301 3.148642 10.1037445 +v 0.936307 3.143552 10.10829 +v 0.936284 3.153094 10.098569 +v 0.936256 3.15683 10.0928545 +v 0.936217 3.159787 10.086697 +v 0.936169 3.161914 10.080203 +v 0.936111 3.163175 10.073483 +v 0.936045 3.163548 10.066652 +v 0.935973 3.163027 10.059827 +v 0.935894 3.161621 10.053124 +v 0.935812 3.159354 10.046659 +v 0.935726 3.156264 10.040542 +v 0.935639 3.152405 10.034878 +v 0.935552 3.147843 10.029763 +v 0.935466 3.142655 10.025285 +v 0.935383 3.13693 10.021521 +v 0.935305 3.130767 10.018535 +v 0.935232 3.124271 10.016379 +v 0.935166 3.117552 10.015088 +v 0.935109 3.110727 10.014686 +v 0.93506 3.103911 10.015179 +v 0.935022 3.097221 10.016558 +v 0.934994 3.090772 10.018801 +v 0.934977 3.084674 10.021868 +v 0.934971 3.079032 10.025707 +v 0.934977 3.073942 10.030253 +v 0.934994 3.06949 10.035428 +v 0.935022 3.065754 10.041142 +v 0.93506 3.062798 10.0473 +v 0.935109 3.06067 10.053794 +v 0.935166 3.059409 10.060514 +v 0.935232 3.059036 10.067345 +v 0.935305 3.059557 10.07417 +v 0.935383 3.060963 10.0808735 +v 0.935466 3.06323 10.087338 +v 0.935552 3.06632 10.093455 +v 0.935639 3.070179 10.099119 +v 0.935726 3.074741 10.104234 +v 0.935812 3.079929 10.108712 +v 0.935894 3.085654 10.112476 +v 0.935973 3.091817 10.115462 +v 0.936045 3.098313 10.117618 +v 0.936111 3.105032 10.118909 +v 0.936169 3.111858 10.119311 +v 0.936217 3.118673 10.118818 +v 0.936256 3.125363 10.117439 +v 0.936284 3.131812 10.115196 +v 0.936301 3.13791 10.112129 +v 1.30806 3.121712 10.070001 +v 1.310901 3.116753 10.073988 +v 1.305208 3.126078 10.065421 +v 1.302345 3.12978 10.060331 +v 1.299472 3.132757 10.054822 +v 1.296589 3.13496 10.04899 +v 1.293697 3.136353 10.042941 +v 1.290796 3.136916 10.03678 +v 1.287889 3.13664 10.030619 +v 1.284975 3.135534 10.024566 +v 1.282057 3.133618 10.018729 +v 1.279134 3.130927 10.013212 +v 1.27621 3.12751 10.008115 +v 1.273285 3.123428 10.003529 +v 1.270361 3.118753 9.999538 +v 1.267439 3.113567 9.996213 +v 1.26452 3.107963 9.993618 +v 1.261607 3.102038 9.991801 +v 1.2587 3.095898 9.990799 +v 1.255801 3.08965 9.990633 +v 1.25291 3.083404 9.991311 +v 1.250029 3.07727 9.992827 +v 1.247159 3.071357 9.99516 +v 1.2443 3.065769 9.998275 +v 1.241452 3.060607 10.002123 +v 1.2443 3.055624 10.006202 +v 1.247159 3.05125 10.01087 +v 1.250029 3.047555 10.016043 +v 1.25291 3.0446 10.021627 +v 1.255801 3.042431 10.027524 +v 1.2587 3.04108 10.0336275 +v 1.261607 3.040567 10.039827 +v 1.26452 3.040897 10.046015 +v 1.267439 3.042059 10.052081 +v 1.270361 3.04403 10.057917 +v 1.273285 3.046772 10.063419 +v 1.27621 3.050234 10.068489 +v 1.279134 3.054354 10.073038 +v 1.282057 3.059055 10.076983 +v 1.284975 3.064255 10.0802555 +v 1.287889 3.069861 10.082793 +v 1.290796 3.075773 10.08455 +v 1.293697 3.081886 10.085495 +v 1.296589 3.088093 10.085606 +v 1.299472 3.094284 10.08488 +v 1.302345 3.10035 10.083324 +v 1.305208 3.106185 10.080964 +v 1.30806 3.111685 10.077835 +v -0.397074 4.06102 9.119724 +v -0.610356 4.038801 9.105744 +v -0.397077 4.062512 9.113364 +v -0.397087 4.06316 9.106863 +v -0.606494 4.03991 9.099012 +v -0.397103 4.062954 9.100332 +v -0.601211 4.04027 9.092317 +v -0.397124 4.061895 9.093883 +v -0.59511 4.039821 9.085759 +v -0.397152 4.060003 9.087628 +v -0.588674 4.038535 9.079437 +v -0.397185 4.057311 9.081671 +v -0.582255 4.036411 9.073449 +v -0.397222 4.053863 9.076117 +v -0.576105 4.033472 9.067889 +v -0.397263 4.049719 9.071059 +v -0.570405 4.029764 9.062844 +v -0.397308 4.04495 9.066584 +v -0.565289 4.025345 9.058395 +v -0.560853 4.02029 9.054613 +v -0.397355 4.039638 9.062769 +v -0.397403 4.033873 9.059678 +v -0.557162 4.014686 9.051558 +v -0.397453 4.027754 9.057366 +v -0.554254 4.008629 9.04928 +v -0.397502 4.021386 9.055871 +v -0.552142 4.002222 9.047816 +v -0.397551 4.014878 9.055219 +v -0.550814 3.995577 9.047192 +v -0.397598 4.008341 9.055421 +v -0.550234 3.988811 9.047419 +v -0.397642 4.001887 9.056474 +v -0.550344 3.982043 9.048499 +v -0.397683 3.995626 9.05836 +v -0.55106 3.975397 9.050416 +v -0.39772 3.989665 9.061046 +v -0.552277 3.968996 9.053144 +v -0.397753 3.984108 9.064487 +v -0.553868 3.962961 9.056645 +v -0.397781 3.979047 9.068623 +v -0.555693 3.957411 9.060866 +v -0.397803 3.974571 9.073384 +v -0.557602 3.952457 9.065741 +v -0.397819 3.970756 9.078688 +v -0.559446 3.948201 9.071195 +v -0.397828 3.967666 9.084445 +v -0.561094 3.944733 9.077138 +v -0.397831 3.965356 9.090556 +v -0.562448 3.942122 9.083472 +v -0.397828 3.963864 9.096917 +v -0.563451 3.940421 9.090088 +v -0.397819 3.963215 9.103418 +v -0.564101 3.939658 9.096869 +v -0.397803 3.963422 9.109949 +v -0.564442 3.939838 9.103696 +v -0.397781 3.964481 9.116397 +v -0.564559 3.940946 9.110447 +v -0.397753 3.966372 9.122653 +v -0.564561 3.942947 9.117 +v -0.39772 3.969065 9.128609 +v -0.564568 3.945789 9.123239 +v -0.397683 3.972513 9.134164 +v -0.564698 3.949406 9.129053 +v -0.397642 3.976657 9.139222 +v -0.565062 3.953723 9.13434 +v -0.397598 3.981426 9.143697 +v -0.565752 3.958651 9.139008 +v -0.397551 3.986738 9.147512 +v -0.566846 3.964097 9.142976 +v -0.397502 3.992503 9.150602 +v -0.568399 3.969959 9.1461735 +v -0.397453 3.998621 9.152915 +v -0.570448 3.976132 9.148545 +v -0.397403 4.004989 9.154409 +v -0.573009 3.982507 9.15005 +v -0.397355 4.011498 9.155061 +v -0.57608 3.988972 9.15066 +v -0.397308 4.018035 9.154859 +v -0.579635 3.995416 9.150362 +v -0.583628 4.00173 9.14916 +v -0.397263 4.024489 9.153806 +v -0.587986 4.007809 9.14707 +v -0.397222 4.03075 9.15192 +v -0.397185 4.03671 9.149234 +v -0.592606 4.013552 9.144127 +v -0.597343 4.01887 9.140378 +v -0.397152 4.042268 9.145794 +v -0.397124 4.047329 9.141658 +v -0.601996 4.023683 9.13589 +v -0.397103 4.051805 9.136897 +v -0.606274 4.02793 9.130743 +v -0.397087 4.05562 9.131592 +v -0.609771 4.031575 9.125034 +v -0.397077 4.05871 9.125836 +v -0.611946 4.034602 9.118879 +v -0.120844 4.048844 9.109376 +v -0.12084 4.047391 9.115569 +v -0.120853 4.049475 9.103045 +v -0.120869 4.049273 9.096686 +v -0.12089 4.048242 9.090407 +v -0.120917 4.046399 9.084315 +v -0.120948 4.043776 9.078515 +v -0.120985 4.040418 9.073106 +v -0.121025 4.036382 9.068181 +v -0.121068 4.031737 9.063823 +v -0.121114 4.026564 9.060108 +v -0.121161 4.020949 9.057099 +v -0.121209 4.01499 9.054847 +v -0.121258 4.008788 9.053391 +v -0.121305 4.002449 9.052755 +v -0.121351 3.996083 9.052952 +v -0.121394 3.989797 9.053977 +v -0.121434 3.9837 9.055813 +v -0.12147 3.977895 9.058428 +v -0.121502 3.972482 9.061778 +v -0.121529 3.967554 9.065805 +v -0.12155 3.963195 9.07044 +v -0.121566 3.959479 9.075605 +v -0.121575 3.956471 9.081211 +v -0.121578 3.954221 9.087161 +v -0.121575 3.952768 9.093354 +v -0.121566 3.952137 9.099685 +v -0.12155 3.952339 9.106044 +v -0.121529 3.953371 9.112323 +v -0.121502 3.955213 9.118415 +v -0.12147 3.957836 9.124215 +v -0.121434 3.961194 9.129624 +v -0.121394 3.96523 9.134549 +v -0.121351 3.969875 9.138907 +v -0.121305 3.975049 9.142622 +v -0.121258 3.980663 9.145631 +v -0.121209 3.986623 9.147883 +v -0.121161 3.992824 9.149339 +v -0.121114 3.999163 9.149975 +v -0.121068 4.005529 9.149778 +v -0.121025 4.011815 9.148753 +v -0.120985 4.017913 9.146917 +v -0.120948 4.023717 9.144302 +v -0.120917 4.02913 9.140952 +v -0.12089 4.034058 9.136925 +v -0.120869 4.038417 9.13229 +v -0.120853 4.042133 9.127125 +v -0.120844 4.045141 9.121519 +v 0.158124 4.026143 9.102775 +v 0.158127 4.024761 9.108669 +v 0.158115 4.026742 9.09675 +v 0.1581 4.026549 9.090697 +v 0.15808 4.025565 9.084721 +v 0.158054 4.023808 9.078923 +v 0.158024 4.021309 9.073402 +v 0.15799 4.018109 9.068253 +v 0.157951 4.014264 9.063564 +v 0.15791 4.009839 9.059416 +v 0.157867 4.00491 9.055879 +v 0.157821 3.999561 9.053013 +v 0.157776 3.993885 9.050868 +v 0.15773 3.987977 9.049481 +v 0.157685 3.98194 9.048875 +v 0.157641 3.975876 9.049061 +v 0.1576 3.969889 9.050035 +v 0.157562 3.964082 9.05178 +v 0.157527 3.958554 9.054268 +v 0.157497 3.953399 9.057455 +v 0.157471 3.948706 9.061286 +v 0.157451 3.944556 9.065697 +v 0.157436 3.941018 9.070612 +v 0.157427 3.938154 9.075946 +v 0.157424 3.936012 9.081609 +v 0.157427 3.93463 9.087503 +v 0.157436 3.934031 9.093528 +v 0.157451 3.934224 9.099581 +v 0.157471 3.935208 9.105557 +v 0.157497 3.936965 9.111355 +v 0.157527 3.939464 9.116876 +v 0.157562 3.942664 9.122025 +v 0.1576 3.94651 9.126714 +v 0.157641 3.950934 9.130862 +v 0.157685 3.955863 9.134399 +v 0.15773 3.961212 9.137265 +v 0.157776 3.966888 9.13941 +v 0.157821 3.972796 9.140797 +v 0.157867 3.978833 9.141403 +v 0.15791 3.984897 9.141217 +v 0.157951 3.990884 9.140243 +v 0.15799 3.996691 9.138498 +v 0.158024 4.002219 9.13601 +v 0.158054 4.007374 9.132823 +v 0.15808 4.012067 9.128992 +v 0.1581 4.016218 9.124581 +v 0.158115 4.019755 9.119666 +v 0.158124 4.022619 9.114332 +v 0.439895 4.003216 9.096102 +v 0.439898 4.001903 9.1017 +v 0.439887 4.003785 9.09038 +v 0.439873 4.003601 9.084632 +v 0.439854 4.002667 9.078957 +v 0.439829 4.000999 9.07345 +v 0.439801 3.998625 9.068207 +v 0.439768 3.995586 9.063318 +v 0.439731 3.991934 9.058865 +v 0.439692 3.987732 9.054925 +v 0.439651 3.983051 9.051566 +v 0.439608 3.977972 9.048844 +v 0.439565 3.972581 9.046807 +v 0.439521 3.966971 9.04549 +v 0.439478 3.961237 9.044914 +v 0.439437 3.955478 9.045091 +v 0.439398 3.949793 9.046016 +v 0.439361 3.944278 9.047674 +v 0.439328 3.939028 9.050036 +v 0.4393 3.934132 9.053062 +v 0.439275 3.929676 9.056701 +v 0.439256 3.925734 9.06089 +v 0.439242 3.922374 9.065558 +v 0.439234 3.919654 9.070624 +v 0.439231 3.91762 9.076001 +v 0.439234 3.916308 9.081599 +v 0.439242 3.915738 9.087321 +v 0.439256 3.915923 9.093069 +v 0.439275 3.916857 9.098744 +v 0.4393 3.918525 9.104251 +v 0.439328 3.920899 9.109494 +v 0.439361 3.923938 9.114383 +v 0.439398 3.927589 9.118836 +v 0.439437 3.931792 9.122776 +v 0.439478 3.936473 9.126135 +v 0.439521 3.941552 9.128857 +v 0.439565 3.946943 9.130893 +v 0.439608 3.952553 9.132211 +v 0.439651 3.958287 9.132786 +v 0.439692 3.964045 9.13261 +v 0.439731 3.969731 9.131685 +v 0.439768 3.975246 9.130027 +v 0.439801 3.980496 9.127665 +v 0.439829 3.985391 9.124638 +v 0.439854 3.989848 9.121 +v 0.439873 3.99379 9.116811 +v 0.439887 3.997149 9.112143 +v 0.439895 3.999869 9.107077 +v 0.724471 3.980061 9.089363 +v 0.724473 3.978818 9.094661 +v 0.724462 3.980599 9.083947 +v 0.724449 3.980425 9.078507 +v 0.724431 3.979541 9.073135 +v 0.724408 3.977962 9.067923 +v 0.724381 3.975715 9.062961 +v 0.72435 3.972839 9.058333 +v 0.724315 3.969382 9.054118 +v 0.724278 3.965405 9.050389 +v 0.724239 3.960975 9.04721 +v 0.724199 3.956167 9.044634 +v 0.724157 3.951065 9.042706 +v 0.724116 3.945755 9.041459 +v 0.724076 3.940328 9.040915 +v 0.724036 3.934877 9.041081 +v 0.723999 3.929496 9.041957 +v 0.723965 3.924276 9.043526 +v 0.723934 3.919307 9.045762 +v 0.723907 3.914674 9.048626 +v 0.723884 3.910456 9.052071 +v 0.723865 3.906725 9.056035 +v 0.723852 3.903545 9.060453 +v 0.723844 3.90097 9.065248 +v 0.723841 3.899045 9.070338 +v 0.723844 3.897803 9.075636 +v 0.723852 3.897264 9.081051 +v 0.723865 3.897439 9.086492 +v 0.723884 3.898323 9.091864 +v 0.723907 3.899902 9.097075 +v 0.723934 3.902149 9.102038 +v 0.723965 3.905025 9.106666 +v 0.723999 3.908481 9.11088 +v 0.724036 3.912458 9.114609 +v 0.724076 3.916889 9.117789 +v 0.724116 3.921696 9.120365 +v 0.724157 3.926799 9.122292 +v 0.724199 3.932109 9.123539 +v 0.724239 3.937535 9.124084 +v 0.724278 3.942986 9.123917 +v 0.724315 3.948367 9.123042 +v 0.72435 3.953587 9.121473 +v 0.724381 3.958556 9.119237 +v 0.724408 3.96319 9.116372 +v 0.724431 3.967408 9.112928 +v 0.724449 3.971139 9.108963 +v 0.724462 3.974319 9.104546 +v 0.724471 3.976893 9.099751 +v 1.009563 3.956863 9.082611 +v 1.011852 3.955506 9.087553 +v 1.007269 3.957558 9.077554 +v 1.00497 3.957579 9.072469 +v 1.002667 3.95693 9.067443 +v 1.000358 3.955624 9.062564 +v 0.998045 3.953684 9.057916 +v 0.995729 3.951147 9.053579 +v 0.993408 3.948058 9.04963 +v 0.991085 3.944473 9.046137 +v 0.988759 3.940455 9.043161 +v 0.986432 3.936076 9.040755 +v 0.984103 3.931412 9.03896 +v 0.981774 3.926547 9.03781 +v 0.979446 3.921566 9.037325 +v 0.977118 3.916558 9.037516 +v 0.974793 3.911611 9.03838 +v 0.972469 3.906812 9.039904 +v 0.970149 3.902247 9.042064 +v 0.967832 3.897997 9.044825 +v 0.96552 3.894138 9.048139 +v 0.963212 3.890739 9.051953 +v 0.960909 3.887862 9.056201 +v 0.958612 3.885559 9.060814 +v 0.95632 3.883873 9.065712 +v 0.958612 3.882539 9.070717 +v 0.960909 3.881877 9.07583 +v 0.963212 3.881894 9.080961 +v 0.96552 3.882587 9.086022 +v 0.967832 3.88394 9.090926 +v 0.970149 3.885927 9.095588 +v 0.972469 3.888511 9.099927 +v 0.974793 3.891643 9.10387 +v 0.977118 3.895266 9.1073475 +v 0.979446 3.899316 9.1103 +v 0.981774 3.90372 9.112676 +v 0.984103 3.908399 9.114436 +v 0.986432 3.913271 9.115549 +v 0.988759 3.918248 9.115995 +v 0.991085 3.923243 9.115768 +v 0.993408 3.928167 9.114869 +v 0.995729 3.932933 9.113315 +v 0.998045 3.937458 9.111132 +v 1.000358 3.941661 9.108357 +v 1.002667 3.945468 9.105036 +v 1.00497 3.948811 9.101228 +v 1.007269 3.95163 9.096995 +v 1.009563 3.953875 9.092411 +v -0.569235 3.935914 8.891252 +v -0.560771 3.935621 8.895409 +v -0.552434 3.936536 8.899723 +v -0.544367 3.938644 8.904122 +v -0.536708 3.941907 8.908529 +v -0.529588 3.946271 8.912869 +v -0.523128 3.95166 8.917069 +v -0.517439 3.957983 8.921056 +v -0.512619 3.965132 8.924762 +v -0.508749 3.972983 8.928123 +v -0.505897 3.981403 8.931083 +v -0.504111 3.990247 8.93359 +v -0.503421 3.999365 8.935601 +v -0.50384 4.0086 8.937083 +v -0.505359 4.017794 8.938009 +v -0.507954 4.02679 8.938364 +v -0.51158 4.035434 8.938142 +v -0.516174 4.043578 8.937347 +v -0.521658 4.051083 8.935992 +v -0.527939 4.05782 8.934101 +v -0.534909 4.063674 8.931705 +v -0.542448 4.068545 8.928846 +v -0.550427 4.07235 8.925573 +v -0.558711 4.075023 8.921941 +v -0.567157 4.076519 8.918013 +v -0.57562 4.076811 8.913857 +v -0.583957 4.075896 8.909542 +v -0.592024 4.073789 8.905144 +v -0.599683 4.070526 8.900736 +v -0.606803 4.066162 8.896396 +v -0.613263 4.060772 8.892196 +v -0.618952 4.054449 8.888209 +v -0.623772 4.047301 8.884504 +v -0.627642 4.03945 8.881142 +v -0.630494 4.03103 8.878183 +v -0.63228 4.022186 8.875676 +v -0.63297 4.013068 8.873664 +v -0.632551 4.003833 8.872183 +v -0.631032 3.994639 8.871256 +v -0.628437 3.985643 8.870901 +v -0.624811 3.976999 8.871123 +v -0.620217 3.968855 8.871918 +v -0.614733 3.96135 8.873273 +v -0.608452 3.954613 8.875165 +v -0.601483 3.948759 8.87756 +v -0.593944 3.943888 8.880419 +v -0.585964 3.940083 8.883693 +v -0.57768 3.93741 8.887324 +v -0.449793 3.97182 8.72739 +v -0.456719 3.972427 8.721816 +v -0.442958 3.972363 8.733079 +v -0.436332 3.974048 8.738788 +v -0.430029 3.976844 8.744417 +v -0.424155 3.980705 8.749872 +v -0.418811 3.985564 8.755057 +v -0.414089 3.991338 8.759886 +v -0.41007 3.997928 8.764275 +v -0.406823 4.005222 8.768148 +v -0.404402 4.013095 8.771441 +v -0.40285 4.021412 8.774096 +v -0.402192 4.03003 8.776068 +v -0.402441 4.038803 8.777323 +v -0.403592 4.04758 8.77784 +v -0.405625 4.056211 8.77761 +v -0.408505 4.064548 8.776636 +v -0.412184 4.072449 8.774937 +v -0.416597 4.079779 8.772539 +v -0.421671 4.086412 8.769486 +v -0.427317 4.092234 8.765828 +v -0.43344 4.097146 8.761629 +v -0.439934 4.101064 8.75696 +v -0.446689 4.103921 8.751902 +v -0.453588 4.105668 8.74654 +v -0.460515 4.106275 8.740966 +v -0.467349 4.105732 8.735277 +v -0.473975 4.104047 8.7295685 +v -0.480279 4.101251 8.723939 +v -0.486153 4.09739 8.718484 +v -0.491496 4.092531 8.713298 +v -0.496218 4.086757 8.70847 +v -0.500237 4.080167 8.704081 +v -0.503485 4.072873 8.700207 +v -0.505906 4.065 8.696915 +v -0.507458 4.056683 8.69426 +v -0.508115 4.048065 8.692288 +v -0.507867 4.039292 8.691033 +v -0.506716 4.030515 8.690516 +v -0.504683 4.021884 8.690746 +v -0.501802 4.013547 8.691719 +v -0.498124 4.005646 8.693419 +v -0.49371 3.998316 8.695816 +v -0.488637 3.991683 8.69887 +v -0.48299 3.985861 8.702527 +v -0.476867 3.980949 8.706727 +v -0.470373 3.977031 8.711396 +v -0.463619 3.974174 8.716454 +v -0.300642 4.001757 8.57785 +v -0.306119 4.002581 8.571455 +v -0.295223 4.00203 8.584339 +v -0.289955 4.003396 8.590812 +v -0.284928 4.005831 8.597158 +v -0.280228 4.009293 8.603268 +v -0.275935 4.013723 8.609037 +v -0.272123 4.019046 8.614368 +v -0.268857 4.025169 8.619168 +v -0.266193 4.031989 8.623356 +v -0.264176 4.039389 8.62686 +v -0.262841 4.047242 8.629619 +v -0.262212 4.055414 8.631588 +v -0.262297 4.063764 8.632731 +v -0.263097 4.072151 8.633031 +v -0.264598 4.08043 8.63248 +v -0.266773 4.08846 8.631089 +v -0.269586 4.096104 8.628882 +v -0.272988 4.10323 8.625897 +v -0.276922 4.109717 8.622183 +v -0.281319 4.115454 8.617806 +v -0.286105 4.120343 8.61284 +v -0.291198 4.124299 8.607369 +v -0.29651 4.127256 8.601488 +v -0.301952 4.129163 8.595297 +v -0.307429 4.129986 8.588902 +v -0.312848 4.129713 8.582413 +v -0.318116 4.128347 8.57594 +v -0.323143 4.125912 8.569594 +v -0.327843 4.12245 8.563484 +v -0.332136 4.11802 8.557715 +v -0.335948 4.112697 8.552384 +v -0.339214 4.106574 8.547584 +v -0.341878 4.099754 8.543396 +v -0.343895 4.092354 8.539892 +v -0.34523 4.084501 8.537133 +v -0.345859 4.076329 8.535164 +v -0.345774 4.067979 8.534021 +v -0.344974 4.059592 8.533722 +v -0.343473 4.051313 8.534272 +v -0.341298 4.043283 8.535663 +v -0.338485 4.035639 8.53787 +v -0.335083 4.028513 8.540856 +v -0.331149 4.022026 8.544569 +v -0.326752 4.016289 8.548946 +v -0.321966 4.0114 8.553912 +v -0.316873 4.007444 8.559383 +v -0.311561 4.004487 8.565264 +v -0.119918 4.025284 8.449601 +v -0.124086 4.026261 8.442746 +v -0.115779 4.025358 8.456542 +v -0.11174 4.026481 8.4634495 +v -0.107872 4.028633 8.470205 +v -0.104238 4.031779 8.476694 +v -0.100903 4.035863 8.482805 +v -0.097922 4.040817 8.488433 +v -0.095348 4.046555 8.493482 +v -0.093223 4.052979 8.497867 +v -0.091585 4.05998 8.501511 +v -0.090461 4.067437 8.504352 +v -0.08987 4.075224 8.506342 +v -0.089824 4.083206 8.507447 +v -0.090321 4.091247 8.507648 +v -0.091355 4.09921 8.506941 +v -0.092907 4.106958 8.505338 +v -0.09495 4.114359 8.502868 +v -0.097451 4.121286 8.499571 +v -0.100365 4.12762 8.495506 +v -0.103644 4.133254 8.49074 +v -0.10723 4.138091 8.485356 +v -0.111063 4.142047 8.479446 +v -0.115077 4.145056 8.47311 +v -0.119204 4.147066 8.466458 +v -0.123372 4.148043 8.459603 +v -0.127511 4.147969 8.452663 +v -0.131549 4.146846 8.445756 +v -0.135418 4.144694 8.439 +v -0.139052 4.141548 8.432511 +v -0.142387 4.137464 8.4264 +v -0.145368 4.13251 8.420771 +v -0.147942 4.126772 8.415722 +v -0.150067 4.120348 8.411338 +v -0.151705 4.113347 8.407694 +v -0.152829 4.105889 8.404852 +v -0.15342 4.098103 8.402862 +v -0.153466 4.090121 8.401757 +v -0.152969 4.08208 8.401557 +v -0.151935 4.074117 8.402263 +v -0.150383 4.066369 8.403866 +v -0.14834 4.058968 8.406337 +v -0.145839 4.052041 8.409633 +v -0.142925 4.045707 8.413699 +v -0.139646 4.040073 8.418465 +v -0.13606 4.035236 8.423849 +v -0.132227 4.03128 8.429759 +v -0.128212 4.02827 8.436094 +v 0.087804 4.042051 8.345351 +v 0.084821 4.043127 8.338247 +v 0.090779 4.041986 8.352538 +v 0.093697 4.042935 8.359684 +v 0.096508 4.044879 8.366668 +v 0.099162 4.047787 8.373371 +v 0.101616 4.051609 8.379676 +v 0.103826 4.056278 8.385478 +v 0.105755 4.061716 8.390675 +v 0.10737 4.067829 8.39518 +v 0.108644 4.074512 8.398915 +v 0.109554 4.081652 8.401817 +v 0.110086 4.089125 8.403835 +v 0.110229 4.096805 8.404935 +v 0.109982 4.104559 8.405099 +v 0.109348 4.112256 8.404323 +v 0.108339 4.119763 8.402621 +v 0.106972 4.126952 8.400022 +v 0.10527 4.1337 8.39657 +v 0.103263 4.139891 8.392325 +v 0.100984 4.14542 8.387359 +v 0.098472 4.150192 8.381757 +v 0.095772 4.154125 8.375615 +v 0.092928 4.157152 8.369038 +v 0.08999 4.159221 8.362139 +v 0.087007 4.160298 8.355035 +v 0.084031 4.160362 8.347848 +v 0.081113 4.159414 8.340702 +v 0.078303 4.157469 8.333717 +v 0.075649 4.154561 8.327015 +v 0.073195 4.15074 8.320709 +v 0.070985 4.14607 8.314908 +v 0.069056 4.140633 8.309711 +v 0.06744 4.13452 8.305206 +v 0.066167 4.127836 8.301471 +v 0.065256 4.120697 8.298569 +v 0.064725 4.113223 8.296551 +v 0.064582 4.105543 8.295451 +v 0.064829 4.097789 8.295287 +v 0.065462 4.090092 8.296063 +v 0.066471 4.082585 8.297765 +v 0.067839 4.075396 8.300364 +v 0.06954 4.068649 8.303815 +v 0.071548 4.062457 8.308061 +v 0.073827 4.056928 8.313027 +v 0.076338 4.052157 8.318629 +v 0.079039 4.048223 8.324771 +v 0.081883 4.045196 8.331348 +v 0.320043 4.051523 8.267502 +v 0.318144 4.052653 8.260276 +v 0.321952 4.051376 8.274811 +v 0.323841 4.052214 8.282077 +v 0.325676 4.054022 8.289176 +v 0.327426 4.056771 8.295988 +v 0.329061 4.060412 8.302395 +v 0.330553 4.064884 8.308287 +v 0.331877 4.07011 8.313564 +v 0.333009 4.076 8.318136 +v 0.333931 4.082454 8.321925 +v 0.334627 4.089362 8.324865 +v 0.335085 4.096604 8.326906 +v 0.335297 4.104058 8.328013 +v 0.335259 4.111596 8.328168 +v 0.334972 4.119088 8.327368 +v 0.334442 4.126407 8.325626 +v 0.333676 4.133427 8.322972 +v 0.332688 4.140028 8.319452 +v 0.331496 4.146098 8.315125 +v 0.330119 4.151532 8.310067 +v 0.328581 4.156237 8.304363 +v 0.326908 4.160134 8.298111 +v 0.325129 4.163154 8.291418 +v 0.323274 4.165247 8.284399 +v 0.321376 4.166377 8.277173 +v 0.319466 4.166524 8.269865 +v 0.317578 4.165686 8.262598 +v 0.315743 4.163878 8.255499 +v 0.313993 4.161129 8.248687 +v 0.312358 4.157488 8.242281 +v 0.310866 4.153016 8.236388 +v 0.309542 4.14779 8.231111 +v 0.30841 4.1419 8.226539 +v 0.307488 4.135446 8.22275 +v 0.306792 4.128538 8.219811 +v 0.306334 4.121296 8.217769 +v 0.306122 4.113842 8.216662 +v 0.30616 4.106304 8.216507 +v 0.306446 4.098812 8.217308 +v 0.306977 4.091493 8.21905 +v 0.307743 4.084473 8.221703 +v 0.308731 4.077872 8.225224 +v 0.309923 4.071802 8.22955 +v 0.3113 4.066368 8.234608 +v 0.312838 4.061663 8.240312 +v 0.314511 4.057766 8.246564 +v 0.31629 4.054746 8.253257 +v 0.576544 4.052986 8.218156 +v 0.575632 4.054134 8.210886 +v 0.577482 4.052801 8.22551 +v 0.578432 4.053584 8.232822 +v 0.579375 4.055321 8.239967 +v 0.580297 4.057983 8.246823 +v 0.581182 4.061523 8.253272 +v 0.582014 4.065881 8.259205 +v 0.582779 4.070983 8.264519 +v 0.583464 4.076741 8.269124 +v 0.584058 4.083056 8.272941 +v 0.58455 4.089822 8.275904 +v 0.584932 4.096921 8.277963 +v 0.585197 4.104233 8.279083 +v 0.585341 4.111632 8.279244 +v 0.585361 4.118992 8.278445 +v 0.585257 4.126186 8.276697 +v 0.58503 4.133093 8.274032 +v 0.584686 4.139593 8.270495 +v 0.584229 4.145575 8.266146 +v 0.583667 4.150937 8.26106 +v 0.58301 4.155588 8.255324 +v 0.582269 4.159447 8.249036 +v 0.581457 4.162449 8.242304 +v 0.580588 4.164542 8.235242 +v 0.579676 4.16569 8.227972 +v 0.578738 4.165875 8.220618 +v 0.577789 4.165091 8.213306 +v 0.576845 4.163354 8.206161 +v 0.575923 4.160693 8.199305 +v 0.575039 4.157153 8.192855 +v 0.574207 4.152795 8.186923 +v 0.573442 4.147693 8.181609 +v 0.572756 4.141935 8.177004 +v 0.572163 4.13562 8.173187 +v 0.571671 4.128854 8.170224 +v 0.571289 4.121755 8.168165 +v 0.571024 4.114443 8.167045 +v 0.57088 4.107044 8.1668825 +v 0.57086 4.099684 8.167683 +v 0.570964 4.092489 8.169431 +v 0.57119 4.085583 8.172096 +v 0.571535 4.079083 8.175633 +v 0.571992 4.073101 8.179982 +v 0.572554 4.067738 8.185068 +v 0.573211 4.063088 8.190804 +v 0.573951 4.059229 8.197092 +v 0.574763 4.056227 8.203824 +v 0.806299 4.046904 8.202943 +v 0.809128 4.04796 8.195466 +v 0.803504 4.046807 8.210507 +v 0.800734 4.047672 8.21803 +v 0.797981 4.049487 8.225389 +v 0.795236 4.052222 8.23246 +v 0.79249 4.055832 8.239127 +v 0.789733 4.060257 8.245279 +v 0.786958 4.065423 8.250814 +v 0.786337 4.071182 8.255495 +v 0.790043 4.077377 8.259095 +v 0.793706 4.084018 8.261842 +v 0.797319 4.09099 8.263687 +v 0.800877 4.098172 8.264593 +v 0.804375 4.10544 8.264541 +v 0.807808 4.112667 8.26353 +v 0.811174 4.11973 8.261572 +v 0.814472 4.126504 8.258699 +v 0.817701 4.132874 8.254954 +v 0.820861 4.138728 8.250399 +v 0.823956 4.143965 8.245108 +v 0.826987 4.148494 8.239169 +v 0.829959 4.152236 8.232678 +v 0.832876 4.155126 8.225744 +v 0.835747 4.157113 8.218481 +v 0.838576 4.158161 8.21101 +v 0.841371 4.158251 8.203455 +v 0.844142 4.15738 8.195941 +v 0.846895 4.155561 8.188594 +v 0.849641 4.152825 8.181536 +v 0.852388 4.149217 8.174882 +v 0.855146 4.144796 8.168744 +v 0.857922 4.139638 8.163222 +v 0.858544 4.13389 8.158549 +v 0.854838 4.127709 8.1549425 +v 0.851175 4.121081 8.152187 +v 0.847561 4.11412 8.150333 +v 0.844003 4.106946 8.149417 +v 0.840505 4.099683 8.149457 +v 0.837071 4.092459 8.150457 +v 0.833704 4.085397 8.152404 +v 0.830405 4.07862 8.155268 +v 0.827176 4.072247 8.159004 +v 0.824015 4.066387 8.163552 +v 0.82092 4.061142 8.168837 +v 0.817888 4.056605 8.174774 +v 0.814916 4.052854 8.181264 +v 0.811998 4.049955 8.1882 +v -0.701895 -3.99856 9.10068 +v -0.690193 -4.00532 9.066791 +v -0.690692 -4.005032 9.068234 +v -0.699097 -4.003656 9.102234 +v -0.685025 -4.008306 9.051823 +v -0.69603 -4.008321 9.103656 +v -0.67984 -4.011301 9.036808 +v -0.672973 -4.015268 9.016918 +v -0.691976 -4.013487 9.105231 +v -0.666083 -4.019249 8.996964 +v -0.687915 -4.017838 9.106558 +v -0.686028 -4.019638 9.107107 +v -0.662878 -4.0211 8.987684 +v -0.652225 -4.027254 8.956833 +v -0.679762 -4.024811 9.108684 +v -0.6619085 -4.028527 9.025613 +v -0.673715 -4.028842 9.109913 +v -0.641932 -4.0332 8.927023 +v -0.65374 -4.033324 9.011264 +v -0.667674 -4.032107 9.110909 +v -0.631639 -4.039146 8.897213 +v -0.6476033 -4.036722 9.000419 +v -0.664638 -4.033496 9.111332 +v -0.626462 -4.042137 8.882221 +v -0.658622 -4.035811 9.112038 +v -0.618782 -4.044196 8.871021 +v -0.640656 -4.040652 9.113514 +v -0.618377 -4.044305 8.870431 +v -0.658305 -4.035926 9.112073 +v -0.595824 -4.050351 8.837542 +v -0.617412 -4.046266 9.115226 +v -0.566116 -4.058316 8.79422 +v -0.502492 -4.075375 8.701437 +v -0.567667 -4.053754 9.117509 +v -0.563485 -4.054314 9.11768 +v -0.498028 -4.076114 8.697104 +v -0.498017 -4.059205 9.119171 +v -0.428122 -4.087686 8.629239 +v -0.416516 -4.06123 9.119789 +v -0.34106 -4.102098 8.544719 +v -0.40729 -4.061364 9.119829 +v -0.332269 -4.103036 8.538664 +v -0.215474 -4.054602 9.117767 +v -0.149411 -4.122559 8.41272 +v -0.201741 -4.053954 9.11757 +v -0.137334 -4.12334 8.406825 +v 0.000713 -4.037531 9.112562 +v 0.040747 -4.134866 8.3199 +v 0.031631 -4.035022 9.111798 +v 0.067942 -4.136626 8.306625 +v 0.256671 -4.016767 9.106232 +v 0.255238 -4.142308 8.24546 +v 0.320984 -4.01155 9.104641 +v 0.308765 -4.143931 8.227979 +v 0.512628 -3.996003 9.099901 +v 0.463357 -4.143926 8.199002 +v 0.648518 -3.98498 9.096539 +v 0.572975 -4.143922 8.178455 +v 0.853905 -3.968318 9.091459 +v 0.735106 -4.139348 8.167983 +v 0.939224 -3.961397 9.089349 +v 0.802456 -4.137448 8.163632 +v 0.859788 -4.135831 8.159929 +v -0.77914 -3.84026 9.531516 +v -0.782678 -3.834772 9.528066 +v -0.7756 -3.845026 9.5345125 +v -0.770928 -3.849773 9.5374975 +v -0.766244 -3.854261 9.540319 +v -0.764068 -3.856197 9.541536 +v -0.756855 -3.86057 9.544285 +v -0.749891 -3.864407 9.546697 +v -0.742928 -3.868107 9.549024 +v -0.735967 -3.871607 9.551224 +v -0.661638 -4.034718 9.111705 +v -0.732121 -3.87348 9.552402 +v -0.711779 -3.880366 9.556731 +v -0.684987 -3.888981 9.562147 +v -0.622872 -3.901321 9.569905 +v -0.547501 -3.908942 9.574697 +v -0.443086 -3.912634 9.577017 +v -0.222406 -3.904747 9.572059 +v -0.206607 -3.904051 9.571621 +v 0.026273 -3.884897 9.559579 +v 0.320698 -3.860682 9.544356 +v 0.615122 -3.836467 9.529132 +v 0.768586 -3.97524 9.09357 +v 0.909547 -3.812252 9.513908 +v 1.090087 -3.797404 9.504573 +v -0.855374 -3.525409 9.86807 +v -0.85157 -3.530104 9.87348 +v -0.847758 -3.534619 9.878681 +v -0.842737 -3.538972 9.883696 +v -0.837701 -3.543224 9.888595 +v -0.835361 -3.545098 9.890755 +v -0.827626 -3.54873 9.894938 +v -0.820152 -3.552238 9.89898 +v -0.812678 -3.555747 9.903023 +v -0.805206 -3.559118 9.906907 +v -0.801079 -3.560939 9.909005 +v -0.77926 -3.567468 9.916526 +v -0.750525 -3.575755 9.926075 +v -0.683936 -3.587592 9.9397135 +v -0.60317 -3.594942 9.94818 +v -0.491308 -3.598637 9.952437 +v -0.25496 -3.591404 9.944103 +v -0.238038 -3.5908 9.943408 +v 0.011337 -3.573233 9.923169 +v 0.326617 -3.551024 9.897582 +v 0.641896 -3.528815 9.871995 +v 0.957175 -3.506606 9.846407 +v 1.167362 -3.4918 9.8293495 +v 1.187564 -3.490377 9.82771 +v -0.919903 -3.158167 10.126996 +v -0.855808 -3.524824 9.867396 +v -0.920468 -3.157458 10.126088 +v -0.915867 -3.163192 10.133428 +v -0.911821 -3.168126 10.139743 +v -0.906499 -3.172841 10.145779 +v -0.901162 -3.177483 10.151719 +v -0.898681 -3.179561 10.15438 +v -0.890496 -3.183494 10.159414 +v -0.882587 -3.187294 10.164278 +v -0.874678 -3.191094 10.169142 +v -0.866771 -3.194788 10.173869 +v -0.862403 -3.196796 10.17644 +v -0.839331 -3.203865 10.185487 +v -0.808943 -3.212934 10.197094 +v -0.738559 -3.225859 10.213638 +v -0.65322 -3.233911 10.223944 +v -0.535052 -3.238057 10.229252 +v -0.285446 -3.2303 10.219322 +v -0.267574 -3.229679 10.218528 +v -0.00425 -3.210841 10.194416 +v 0.328665 -3.187023 10.163931 +v 0.661579 -3.163206 10.133446 +v 0.994494 -3.139389 10.102962 +v 1.216437 -3.123511 10.082638 +v -0.97841 -2.817996 10.422821 +v -0.976293 -2.82051 10.426628 +v -0.972057 -2.825539 10.434243 +v -0.967809 -2.830509 10.441767 +v -0.96223 -2.835227 10.448912 +v -0.956635 -2.839898 10.455984 +v -0.954034 -2.842015 10.459189 +v -0.945466 -2.845949 10.465147 +v -0.937187 -2.849751 10.470903 +v -0.928908 -2.853553 10.47666 +v -0.920631 -2.85728 10.482303 +v -0.916059 -2.859317 10.485386 +v -0.891922 -2.866387 10.496092 +v -0.860132 -2.87553 10.509936 +v -0.786531 -2.888541 10.529636 +v -0.69732 -2.896666 10.541938 +v -0.573818 -2.900923 10.548383 +v -0.313009 -2.893206 10.5367 +v -0.294335 -2.892609 10.535795 +v -0.019231 -2.873871 10.507423 +v 0.328577 -2.850181 10.471553 +v 0.676385 -2.826491 10.435683 +v 1.024193 -2.802801 10.399813 +v 1.256065 -2.787007 10.3759 +v 1.325016 -2.782311 10.368789 +v -1.02677 -2.405729 10.623359 +v -1.024567 -2.40742 10.62804 +v -1.020162 -2.410802 10.637403 +v -1.015744 -2.414161 10.646698 +v -1.009948 -2.417334 10.655482 +v -1.004135 -2.420489 10.664215 +v -1.001432 -2.421931 10.668206 +v -0.992543 -2.424577 10.6755295 +v -0.983953 -2.427134 10.682606 +v -0.975363 -2.42969 10.689682 +v -0.966775 -2.432213 10.696664 +v -0.962031 -2.433596 10.700492 +v -0.904035 -2.444533 10.730767 +v -0.82774 -2.453322 10.755093 +v -0.735291 -2.458821 10.770312 +v -0.607327 -2.461738 10.778387 +v -0.33716 -2.456564 10.764066 +v -0.317816 -2.456173 10.762984 +v -0.032876 -2.443608 10.728206 +v 0.327368 -2.427723 10.6842375 +v 0.687612 -2.411838 10.640269 +v 1.047856 -2.395952 10.5963 +v 1.288018 -2.385362 10.566988 +v 1.359524 -2.382209 10.55826 +v -1.064755 -1.974106 10.739314 +v -1.067028 -1.97233 10.73429 +v -1.06021 -1.977658 10.749361 +v -1.055651 -1.981198 10.759375 +v -1.049676 -1.98453 10.768802 +v -1.043683 -1.987854 10.778205 +v -1.040897 -1.989383 10.782529 +v -1.031743 -1.992161 10.790388 +v -1.022898 -1.994846 10.797981 +v -1.014053 -1.99753 10.805574 +v -1.005209 -2.000191 10.813103 +v -1.000323 -2.001655 10.817242 +v -0.94063 -2.013167 10.849807 +v -0.862127 -2.022427 10.876001 +v -0.767026 -2.028229 10.892411 +v -0.635414 -2.031336 10.901201 +v -0.357596 -2.025914 10.885863 +v -0.337704 -2.025512 10.884727 +v -0.044726 -2.012345 10.847483 +v 0.32568 -1.9957 10.800397 +v 0.696085 -1.979054 10.75331 +v 1.066491 -1.962408 10.706224 +v 1.313428 -1.951311 10.674833 +v -1.096879 -1.567236 10.929441 +v -1.099208 -1.565523 10.924096 +v -1.092222 -1.570662 10.940132 +v -1.08755 -1.574086 10.950817 +v -1.081434 -1.5773 10.960848 +v -1.075298 -1.580514 10.970877 +v -1.072445 -1.581999 10.975511 +v -1.063081 -1.584679 10.983872 +v -1.054034 -1.587268 10.991951 +v -1.044987 -1.589857 11.0000305 +v -1.03594 -1.592433 11.008069 +v -1.030942 -1.593852 11.012498 +v -0.969906 -1.604976 11.047208 +v -0.88966 -1.61393 11.07515 +v -0.792465 -1.619545 11.092671 +v -0.657972 -1.622573 11.102121 +v -0.374121 -1.617351 11.085825 +v -0.353797 -1.61697 11.084635 +v -0.054482 -1.604289 11.045066 +v 0.323934 -1.588258 10.99504 +v 0.702351 -1.572226 10.945014 +v 1.080768 -1.556194 10.894988 +v 1.333046 -1.545507 10.861637 +v 1.413727 -1.542089 10.850971 +v -1.123326 -1.114308 11.010704 +v -1.125696 -1.113851 11.004894 +v -1.118585 -1.115223 11.022324 +v -1.094551 -1.568949 10.934787 +v -1.113844 -1.116137 11.03394 +v -1.089893 -1.572373 10.945471 +v -1.111459 -1.116596 11.03977 +v -1.105236 -1.117454 11.050673 +v -1.098994 -1.118313 11.061591 +v -1.096091 -1.118711 11.066654 +v -1.086571 -1.119426 11.075741 +v -1.077374 -1.120117 11.084521 +v -1.068176 -1.120808 11.093302 +v -1.058978 -1.121498 11.102061 +v -1.053897 -1.121878 11.1068945 +v -0.991862 -1.12485 11.144665 +v -0.910319 -1.127244 11.175088 +v -0.811568 -1.128747 11.1941805 +v -0.674937 -1.129561 11.204525 +v -0.386608 -1.128168 11.186829 +v -0.365963 -1.128068 11.185549 +v -0.061946 -1.124686 11.142577 +v 0.322416 -1.120411 11.088248 +v 0.706777 -1.116135 11.03392 +v 1.091138 -1.11186 10.979592 +v 1.347379 -1.10901 10.943373 +v 1.429188 -1.1081 10.931809 +v -1.139396 -0.667346 10.998285 +v -1.141794 -0.666879 10.992333 +v -1.134599 -0.668279 11.010189 +v -1.129803 -0.669213 11.022093 +v -1.12739 -0.669682 11.028077 +v -1.121096 -0.670558 11.039246 +v -1.114783 -0.671436 11.050445 +v -1.111847 -0.671844 11.055648 +v -1.102224 -0.672574 11.064957 +v -1.092927 -0.673279 11.073952 +v -1.083629 -0.673985 11.082946 +v -1.074331 -0.674689 11.091934 +v -1.069194 -0.675079 11.096898 +v -1.006497 -0.678115 11.135623 +v -0.924095 -0.680562 11.166825 +v -0.824314 -0.682098 11.186414 +v -0.686267 -0.682933 11.1970625 +v -0.394973 -0.681511 11.178936 +v -0.374116 -0.681409 11.177634 +v -0.066987 -0.677958 11.13362 +v 0.321309 -0.673595 11.077975 +v 0.709605 -0.669231 11.022329 +v 1.097901 -0.664868 10.966684 +v 1.356765 -0.661959 10.929587 +v -1.147429 -0.228713 11.081459 +v -1.149841 -0.228151 11.075443 +v -1.142604 -0.229837 11.093491 +v -1.13778 -0.23096 11.105522 +v -1.135353 -0.231526 11.111577 +v -1.129024 -0.23258 11.122865 +v -1.122676 -0.233638 11.13419 +v -1.119723 -0.23413 11.139457 +v -1.110049 -0.235008 11.148866 +v -1.100701 -0.235857 11.157956 +v -1.091354 -0.236706 11.1670475 +v -1.082006 -0.237555 11.176138 +v -1.076841 -0.238024 11.181161 +v -1.013815 -0.241681 11.220316 +v -0.930984 -0.244628 11.251869 +v -0.83069 -0.246478 11.271683 +v -0.691937 -0.247485 11.282469 +v -0.399167 -0.245775 11.264151 +v -0.378204 -0.245652 11.262839 +v -0.069525 -0.241498 11.21836 +v 0.320729 -0.236247 11.162125 +v 0.710984 -0.230995 11.10589 +v 1.101239 -0.225743 11.049656 +v 1.361409 -0.222242 11.012166 +v 1.443195 -0.221141 11.000381 +v -1.147429 0.228713 11.081459 +v -1.149841 0.228151 11.075443 +v -1.142604 0.229837 11.093491 +v -1.13778 0.23096 11.105522 +v -1.135353 0.231526 11.111577 +v -1.129024 0.23258 11.122865 +v -1.122676 0.233638 11.13419 +v -1.119723 0.23413 11.139457 +v -1.110049 0.235008 11.148866 +v -1.100701 0.235857 11.157956 +v -1.091354 0.236706 11.1670475 +v -1.082006 0.237555 11.176138 +v -1.076841 0.238024 11.181161 +v -1.013815 0.241681 11.220316 +v -0.930984 0.244628 11.251869 +v -0.83069 0.246478 11.271683 +v -0.691937 0.247485 11.282469 +v -0.399167 0.245775 11.264151 +v -0.378204 0.245652 11.262839 +v -0.069525 0.241498 11.21836 +v 0.320729 0.236247 11.162125 +v 0.710984 0.230995 11.10589 +v 1.101239 0.225743 11.049656 +v 1.361409 0.222242 11.012166 +v 1.443195 0.221141 11.000381 +v -1.139396 0.667346 10.998285 +v -1.141794 0.666879 10.992333 +v -1.134599 0.668279 11.010189 +v -1.129803 0.669213 11.022093 +v -1.12739 0.669682 11.028077 +v -1.121096 0.670558 11.039246 +v -1.114783 0.671436 11.050445 +v -1.111847 0.671844 11.055648 +v -1.102224 0.672574 11.064957 +v -1.092927 0.673279 11.073952 +v -1.083629 0.673985 11.082946 +v -1.074331 0.674689 11.091934 +v -1.069194 0.675079 11.096898 +v -1.006497 0.678115 11.135623 +v -0.924095 0.680562 11.166825 +v -0.824314 0.682098 11.186414 +v -0.686267 0.682933 11.1970625 +v -0.394973 0.681511 11.178936 +v -0.374116 0.681409 11.177634 +v -0.066987 0.677958 11.13362 +v 0.321309 0.673595 11.077975 +v 0.709605 0.669231 11.022329 +v 1.097901 0.664868 10.966684 +v 1.356765 0.661959 10.929587 +v -1.123326 1.114308 11.010704 +v -1.125696 1.113851 11.004894 +v -1.118585 1.115223 11.022324 +v -1.113844 1.116137 11.03394 +v -1.111459 1.116596 11.03977 +v -1.105236 1.117454 11.050673 +v -1.098994 1.118313 11.061591 +v -1.096091 1.118711 11.066654 +v -1.086571 1.119426 11.075741 +v -1.077374 1.120117 11.084521 +v -1.068176 1.120808 11.093302 +v -1.058978 1.121498 11.102061 +v -1.053897 1.121878 11.1068945 +v -0.991862 1.12485 11.144665 +v -0.910319 1.127244 11.175088 +v -0.811568 1.128747 11.1941805 +v -0.674937 1.129561 11.204525 +v -0.386608 1.128168 11.186829 +v -0.365963 1.128068 11.185549 +v -0.061946 1.124686 11.142577 +v 0.322416 1.120411 11.088248 +v 0.706777 1.116135 11.03392 +v 1.091138 1.11186 10.979592 +v 1.347379 1.10901 10.943373 +v 1.429188 1.1081 10.931809 +v -1.099208 1.565523 10.924096 +v -1.094551 1.568949 10.934787 +v -1.089893 1.572373 10.945471 +v -1.08755 1.574086 10.950817 +v -1.081434 1.5773 10.960848 +v -1.075298 1.580514 10.970877 +v -1.072445 1.581999 10.975511 +v -1.063081 1.584679 10.983872 +v -1.054034 1.587268 10.991951 +v -1.044987 1.589857 11.0000305 +v -1.03594 1.592433 11.008069 +v -1.030942 1.593852 11.012498 +v -0.969906 1.604976 11.047208 +v -0.88966 1.61393 11.07515 +v -0.792465 1.619545 11.092671 +v -0.657972 1.622573 11.102121 +v -0.374121 1.617351 11.085825 +v -0.353797 1.61697 11.084635 +v -0.054482 1.604289 11.045066 +v 0.323934 1.588258 10.99504 +v 0.702351 1.572226 10.945014 +v 1.080768 1.556194 10.894988 +v 1.333046 1.545507 10.861637 +v 1.413727 1.542089 10.850971 +v -1.064755 1.974106 10.739314 +v -1.067028 1.97233 10.73429 +v -1.096879 1.567236 10.929441 +v -1.06021 1.977658 10.749361 +v -1.092222 1.570662 10.940132 +v -1.055651 1.981198 10.759375 +v -1.049676 1.98453 10.768802 +v -1.043683 1.987854 10.778205 +v -1.040897 1.989383 10.782529 +v -1.031743 1.992161 10.790388 +v -1.022898 1.994846 10.797981 +v -1.014053 1.99753 10.805574 +v -1.005209 2.000191 10.813103 +v -1.000323 2.001655 10.817242 +v -0.94063 2.013167 10.849807 +v -0.862127 2.022427 10.876001 +v -0.767026 2.028229 10.892411 +v -0.635414 2.031336 10.901201 +v -0.357596 2.025914 10.885863 +v -0.337704 2.025512 10.884727 +v -0.044726 2.012345 10.847483 +v 0.32568 1.9957 10.800397 +v 0.696085 1.979054 10.75331 +v 1.066491 1.962408 10.706224 +v 1.313428 1.951311 10.674833 +v -1.024567 2.40742 10.62804 +v -1.02677 2.405729 10.623359 +v -1.020162 2.410802 10.637403 +v -1.015744 2.414161 10.646698 +v -1.009948 2.417334 10.655482 +v -1.004135 2.420489 10.664215 +v -1.001432 2.421931 10.668206 +v -0.992543 2.424577 10.6755295 +v -0.983953 2.427134 10.682606 +v -0.975363 2.42969 10.689682 +v -0.966775 2.432213 10.696664 +v -0.962031 2.433596 10.700492 +v -0.904035 2.444533 10.730767 +v -0.82774 2.453322 10.755093 +v -0.735291 2.458821 10.770312 +v -0.607327 2.461738 10.778387 +v -0.33716 2.456564 10.764066 +v -0.317816 2.456173 10.762984 +v -0.032876 2.443608 10.728206 +v 0.327368 2.427723 10.6842375 +v 0.687612 2.411838 10.640269 +v 1.047856 2.395952 10.5963 +v 1.288018 2.385362 10.566988 +v 1.359524 2.382209 10.55826 +v -0.976293 2.82051 10.426628 +v -0.97841 2.817996 10.422821 +v -0.972057 2.825539 10.434243 +v -0.967809 2.830509 10.441767 +v -0.96223 2.835227 10.448912 +v -0.956635 2.839898 10.455984 +v -0.954034 2.842015 10.459189 +v -0.945466 2.845949 10.465147 +v -0.937187 2.849751 10.470903 +v -0.928908 2.853553 10.47666 +v -0.920631 2.85728 10.482303 +v -0.916059 2.859317 10.485386 +v -0.860132 2.87553 10.509936 +v -0.786531 2.888541 10.529636 +v -0.69732 2.896666 10.541938 +v -0.573818 2.900923 10.548383 +v -0.313009 2.893206 10.5367 +v -0.294335 2.892609 10.535795 +v -0.019231 2.873871 10.507423 +v 0.328577 2.850181 10.471553 +v 0.676385 2.826491 10.435683 +v 1.024193 2.802801 10.399813 +v 1.256065 2.787007 10.3759 +v 1.325016 2.782311 10.368789 +v -0.919903 3.158167 10.126996 +v -0.920468 3.157458 10.126088 +v -0.915867 3.163192 10.133428 +v -0.911821 3.168126 10.139743 +v -0.906499 3.172841 10.145779 +v -0.901162 3.177483 10.151719 +v -0.898681 3.179561 10.15438 +v -0.890496 3.183494 10.159414 +v -0.882587 3.187294 10.164278 +v -0.874678 3.191094 10.169142 +v -0.866771 3.194788 10.173869 +v -0.862403 3.196796 10.17644 +v -0.808943 3.212934 10.197094 +v -0.738559 3.225859 10.213638 +v -0.65322 3.233911 10.223944 +v -0.535052 3.238057 10.229252 +v -0.285446 3.2303 10.219322 +v -0.267574 3.229679 10.218528 +v -0.00425 3.210841 10.194416 +v 0.328665 3.187023 10.163931 +v 0.661579 3.163206 10.133446 +v 0.994494 3.139389 10.102962 +v 1.216437 3.123511 10.082638 +v -0.855808 3.524824 9.867396 +v -0.85157 3.530104 9.87348 +v -0.855374 3.525409 9.86807 +v -0.847758 3.534619 9.878681 +v -0.842737 3.538972 9.883696 +v -0.837701 3.543224 9.888595 +v -0.835361 3.545098 9.890755 +v -0.827626 3.54873 9.894938 +v -0.820152 3.552238 9.89898 +v -0.812678 3.555747 9.903023 +v -0.805206 3.559118 9.906907 +v -0.801079 3.560939 9.909005 +v -0.77926 3.567468 9.916526 +v -0.839331 3.203865 10.185487 +v -0.750525 3.575755 9.926075 +v -0.683936 3.587592 9.9397135 +v -0.60317 3.594942 9.94818 +v -0.491308 3.598637 9.952437 +v -0.25496 3.591404 9.944103 +v -0.238038 3.5908 9.943408 +v 0.011337 3.573233 9.923169 +v 0.326617 3.551024 9.897582 +v 0.641896 3.528815 9.871995 +v 0.957175 3.506606 9.846407 +v 1.167362 3.4918 9.8293495 +v 1.187564 3.490377 9.82771 +v -0.77914 3.84026 9.531516 +v -0.782678 3.834772 9.528066 +v -0.7756 3.845026 9.5345125 +v -0.770928 3.849773 9.5374975 +v -0.766244 3.854261 9.540319 +v -0.764068 3.856197 9.541536 +v -0.756855 3.86057 9.544285 +v -0.749891 3.864407 9.546697 +v -0.742928 3.868107 9.549024 +v -0.735967 3.871607 9.551224 +v -0.732121 3.87348 9.552402 +v -0.711779 3.880366 9.556731 +v -0.684987 3.888981 9.562147 +v -0.622872 3.901321 9.569905 +v -0.547501 3.908942 9.574697 +v -0.443086 3.912634 9.577017 +v -0.222406 3.904747 9.572059 +v -0.206607 3.904051 9.571621 +v 0.026273 3.884897 9.559579 +v 0.320698 3.860682 9.544356 +v 0.615122 3.836467 9.529132 +v 0.909547 3.812252 9.513908 +v 1.090087 3.797404 9.504573 +v -0.701895 3.99856 9.10068 +v -0.699097 4.003656 9.102234 +v -0.69603 4.008321 9.103656 +v -0.691976 4.013487 9.105231 +v -0.687915 4.017838 9.106558 +v -0.686028 4.019638 9.107107 +v -0.679762 4.024811 9.108684 +v -0.673715 4.028842 9.109913 +v -0.667674 4.032107 9.110909 +v -0.661638 4.034718 9.111705 +v -0.658305 4.035926 9.112073 +v -0.640656 4.040652 9.113514 +v -0.617412 4.046266 9.115226 +v -0.563485 4.054314 9.11768 +v -0.498017 4.059205 9.119171 +v -0.40729 4.061364 9.119829 +v -0.215474 4.054602 9.117767 +v -0.201741 4.053954 9.11757 +v 0.000713 4.037531 9.112562 +v 0.256671 4.016767 9.106232 +v 0.512628 3.996003 9.099901 +v 0.768586 3.97524 9.09357 +v 0.939224 3.961397 9.089349 +v -0.690193 4.00532 9.066791 +v -0.690692 4.005032 9.068234 +v -0.685025 4.008306 9.051823 +v -0.67984 4.011301 9.036808 +v -0.672973 4.015268 9.016918 +v -0.666083 4.019249 8.996964 +v -0.662878 4.0211 8.987684 +v -0.652225 4.027254 8.956833 +v -0.6619085 4.028527 9.025613 +v -0.641932 4.0332 8.927023 +v -0.65374 4.033324 9.011264 +v -0.631639 4.039146 8.897213 +v -0.622633 4.043164 8.876637 +v -0.618377 4.044305 8.870431 +v -0.595824 4.050351 8.837542 +v -0.566116 4.058316 8.79422 +v -0.498028 4.076114 8.697104 +v -0.428122 4.087686 8.629239 +v -0.332269 4.103036 8.538664 +v -0.149411 4.122559 8.41272 +v -0.137334 4.12334 8.406825 +v 0.040747 4.134866 8.3199 +v 0.255238 4.142308 8.24546 +v 0.463357 4.143926 8.199002 +v 0.667756 4.141248 8.172333 +v 0.802456 4.137448 8.163632 +v 0.859788 4.135831 8.159929 +v 0.842652 -4.11353 8.147958 +v 0.847372 -4.113403 8.15008 +v 0.842379 -4.112207 8.150737 +v 0.838897 -4.111231 8.145236 +v 0.838424 -4.108939 8.15005 +v 0.837113 -4.107121 8.142643 +v 0.836567 -4.104474 8.148201 +v 0.837779 -4.102302 8.140874 +v 0.837306 -4.10001 8.145688 +v 0.840715 -4.098065 8.140403 +v 0.840442 -4.096742 8.143182 +v 0.845135 -4.095546 8.1413555 +v 0.844671 -4.114348 8.145766 +v 0.842394 -4.112648 8.14144 +v 0.841151 -4.108757 8.13826 +v 0.841276 -4.103719 8.137078 +v 0.842734 -4.098883 8.138211 +v 0.847664 -4.114348 8.144999 +v 0.847579 -4.112648 8.140111 +v 0.847138 -4.108757 8.136725 +v 0.84646 -4.103719 8.135748 +v 0.845727 -4.098883 8.137444 +v 0.850489 -4.11353 8.145949 +v 0.852471 -4.111231 8.141756 +v 0.852787 -4.107121 8.138625 +v 0.851352 -4.102302 8.137394 +v 0.848552 -4.098065 8.138394 +v 0.852066 -4.112207 8.148254 +v 0.855202 -4.108939 8.145748 +v 0.85594 -4.104474 8.143234 +v 0.854083 -4.10001 8.141386 +v 0.850128 -4.096742 8.140698 +v 0.851792 -4.110883 8.151033 +v 0.854728 -4.106646 8.150561 +v 0.855394 -4.101827 8.148792 +v 0.85361 -4.097718 8.146199 +v 0.849855 -4.095418 8.143477 +v 0.849773 -4.110065 8.153224 +v 0.851232 -4.10523 8.154358 +v 0.851356 -4.100191 8.153176 +v 0.850113 -4.096301 8.149996 +v 0.847836 -4.0946 8.145669 +v 0.84678 -4.110065 8.153992 +v 0.846047 -4.10523 8.155687 +v 0.845369 -4.100191 8.154711 +v 0.844929 -4.096301 8.151325 +v 0.844843 -4.0946 8.146437 +v 0.843956 -4.110883 8.153042 +v 0.841155 -4.106646 8.154042 +v 0.83972 -4.101827 8.152811 +v 0.840036 -4.097718 8.14968 +v 0.842018 -4.095418 8.145487 +v 0.844889 -4.131388 8.156682 +v 0.849609 -4.13126 8.158804 +v 0.844616 -4.130064 8.159461 +v 0.841134 -4.129088 8.15396 +v 0.840661 -4.126796 8.158774 +v 0.83935 -4.124979 8.151368 +v 0.838804 -4.122332 8.156926 +v 0.840016 -4.12016 8.149598 +v 0.839542 -4.117867 8.154412 +v 0.842952 -4.115923 8.149127 +v 0.842679 -4.114599 8.151906 +v 0.846908 -4.132205 8.1544895 +v 0.844631 -4.130505 8.150164 +v 0.843388 -4.126614 8.146984 +v 0.843512 -4.121576 8.145802 +v 0.844971 -4.116741 8.1469345 +v 0.849901 -4.132205 8.153723 +v 0.849816 -4.130505 8.148835 +v 0.849375 -4.126614 8.145449 +v 0.848697 -4.121576 8.144473 +v 0.847964 -4.116741 8.146168 +v 0.852726 -4.131388 8.154673 +v 0.854708 -4.129088 8.15048 +v 0.855024 -4.124979 8.147349 +v 0.853589 -4.12016 8.146118 +v 0.850789 -4.115923 8.147118 +v 0.854302 -4.130064 8.156978 +v 0.857439 -4.126796 8.154472 +v 0.858177 -4.122332 8.1519575 +v 0.85632 -4.117867 8.15011 +v 0.852365 -4.114599 8.149422 +v 0.854029 -4.128741 8.159757 +v 0.856965 -4.124504 8.159285 +v 0.857631 -4.119685 8.157516 +v 0.855847 -4.115575 8.154923 +v 0.852092 -4.113276 8.152201 +v 0.85201 -4.127923 8.161949 +v 0.853469 -4.123087 8.163082 +v 0.853593 -4.118049 8.1619 +v 0.85235 -4.114158 8.15872 +v 0.850073 -4.112458 8.154393 +v 0.849017 -4.127923 8.162716 +v 0.848284 -4.123087 8.164411 +v 0.847606 -4.118049 8.163435 +v 0.847166 -4.114158 8.160049 +v 0.84708 -4.112458 8.155161 +v 0.846193 -4.128741 8.161766 +v 0.843392 -4.124504 8.162766 +v 0.841957 -4.119685 8.161535 +v 0.842273 -4.115575 8.158404 +v 0.844255 -4.113276 8.154211 +v 0.850489 4.11353 8.145949 +v 0.847372 4.113403 8.15008 +v 0.852066 4.112207 8.148254 +v 0.855202 4.108939 8.145748 +v 0.852471 4.111231 8.141756 +v 0.852787 4.107121 8.138625 +v 0.85594 4.104474 8.143234 +v 0.851352 4.102302 8.137394 +v 0.854083 4.10001 8.141386 +v 0.848552 4.098065 8.138394 +v 0.850128 4.096742 8.140698 +v 0.845135 4.095546 8.1413555 +v 0.847664 4.114348 8.144999 +v 0.847579 4.112648 8.140111 +v 0.847138 4.108757 8.136725 +v 0.84646 4.103719 8.135748 +v 0.845727 4.098883 8.137444 +v 0.844671 4.114348 8.145766 +v 0.842394 4.112648 8.14144 +v 0.841151 4.108757 8.13826 +v 0.841276 4.103719 8.137078 +v 0.842734 4.098883 8.138211 +v 0.842652 4.11353 8.147958 +v 0.838897 4.111231 8.145236 +v 0.837113 4.107121 8.142643 +v 0.837779 4.102302 8.140874 +v 0.840715 4.098065 8.140403 +v 0.842379 4.112207 8.150737 +v 0.838424 4.108939 8.15005 +v 0.836567 4.104474 8.148201 +v 0.837306 4.10001 8.145688 +v 0.840442 4.096742 8.143182 +v 0.843956 4.110883 8.153042 +v 0.841155 4.106646 8.154042 +v 0.83972 4.101827 8.152811 +v 0.840036 4.097718 8.14968 +v 0.842018 4.095418 8.145487 +v 0.84678 4.110065 8.153992 +v 0.846047 4.10523 8.155687 +v 0.845369 4.100191 8.154711 +v 0.844929 4.096301 8.151325 +v 0.844843 4.0946 8.146437 +v 0.849773 4.110065 8.153224 +v 0.851232 4.10523 8.154358 +v 0.851356 4.100191 8.153176 +v 0.850113 4.096301 8.149996 +v 0.847836 4.0946 8.145669 +v 0.851792 4.110883 8.151033 +v 0.854728 4.106646 8.150561 +v 0.855394 4.101827 8.148792 +v 0.85361 4.097718 8.146199 +v 0.849855 4.095418 8.143477 +v 0.852726 4.131388 8.154673 +v 0.849609 4.13126 8.158804 +v 0.854302 4.130064 8.156978 +v 0.857439 4.126796 8.154472 +v 0.854708 4.129088 8.15048 +v 0.855024 4.124979 8.147349 +v 0.858177 4.122332 8.1519575 +v 0.853589 4.12016 8.146118 +v 0.85632 4.117867 8.15011 +v 0.850789 4.115923 8.147118 +v 0.852365 4.114599 8.149422 +v 0.849901 4.132205 8.153723 +v 0.849816 4.130505 8.148835 +v 0.849375 4.126614 8.145449 +v 0.848697 4.121576 8.144473 +v 0.847964 4.116741 8.146168 +v 0.846908 4.132205 8.1544895 +v 0.844631 4.130505 8.150164 +v 0.843388 4.126614 8.146984 +v 0.843512 4.121576 8.145802 +v 0.844971 4.116741 8.1469345 +v 0.844889 4.131388 8.156682 +v 0.841134 4.129088 8.15396 +v 0.83935 4.124979 8.151368 +v 0.840016 4.12016 8.149598 +v 0.842952 4.115923 8.149127 +v 0.844616 4.130064 8.159461 +v 0.840661 4.126796 8.158774 +v 0.838804 4.122332 8.156926 +v 0.839542 4.117867 8.154412 +v 0.842679 4.114599 8.151906 +v 0.846193 4.128741 8.161766 +v 0.843392 4.124504 8.162766 +v 0.841957 4.119685 8.161535 +v 0.842273 4.115575 8.158404 +v 0.844255 4.113276 8.154211 +v 0.849017 4.127923 8.162716 +v 0.848284 4.123087 8.164411 +v 0.847606 4.118049 8.163435 +v 0.847166 4.114158 8.160049 +v 0.84708 4.112458 8.155161 +v 0.85201 4.127923 8.161949 +v 0.853469 4.123087 8.163082 +v 0.853593 4.118049 8.1619 +v 0.85235 4.114158 8.15872 +v 0.850073 4.112458 8.154393 +v 0.854029 4.128741 8.159757 +v 0.856965 4.124504 8.159285 +v 0.857631 4.119685 8.157516 +v 0.855847 4.115575 8.154923 +v 0.852092 4.113276 8.152201 +f 1 2 3 +f 1 4 2 +f 5 3 6 +f 5 1 3 +f 7 6 8 +f 7 5 6 +f 9 8 10 +f 9 7 8 +f 11 10 12 +f 11 9 10 +f 11 12 13 +f 14 11 13 +f 14 13 15 +f 16 14 15 +f 17 15 18 +f 17 16 15 +f 19 18 20 +f 19 17 18 +f 21 20 22 +f 21 19 20 +f 23 22 24 +f 23 21 22 +f 25 24 26 +f 25 23 24 +f 27 26 28 +f 27 25 26 +f 29 28 30 +f 29 27 28 +f 31 30 32 +f 31 29 30 +f 33 32 34 +f 33 31 32 +f 35 34 36 +f 35 33 34 +f 37 36 38 +f 37 35 36 +f 39 38 40 +f 39 37 38 +f 41 40 42 +f 41 39 40 +f 43 42 44 +f 43 41 42 +f 45 44 46 +f 45 43 44 +f 47 46 48 +f 47 45 46 +f 49 48 50 +f 49 47 48 +f 49 50 51 +f 52 49 51 +f 53 51 54 +f 53 52 51 +f 55 54 56 +f 55 53 54 +f 57 56 58 +f 57 55 56 +f 59 58 60 +f 59 57 58 +f 59 60 61 +f 62 59 61 +f 62 61 63 +f 64 62 63 +f 65 63 66 +f 65 64 63 +f 67 66 68 +f 67 65 66 +f 69 68 70 +f 69 67 68 +f 71 70 72 +f 71 69 70 +f 73 72 74 +f 73 71 72 +f 75 74 76 +f 75 73 74 +f 77 76 78 +f 77 75 76 +f 79 78 80 +f 79 77 78 +f 81 80 82 +f 81 79 80 +f 83 82 84 +f 83 81 82 +f 85 84 86 +f 85 83 84 +f 87 86 88 +f 87 85 86 +f 89 88 90 +f 89 87 88 +f 91 90 92 +f 91 89 90 +f 93 92 94 +f 93 91 92 +f 95 94 96 +f 95 93 94 +f 4 96 2 +f 4 95 96 +f 97 4 1 +f 97 98 4 +f 99 1 5 +f 99 97 1 +f 100 5 7 +f 100 99 5 +f 101 7 9 +f 101 100 7 +f 102 9 11 +f 102 101 9 +f 103 11 14 +f 103 102 11 +f 104 14 16 +f 104 103 14 +f 105 16 17 +f 105 104 16 +f 106 17 19 +f 106 105 17 +f 107 19 21 +f 107 106 19 +f 107 21 23 +f 108 107 23 +f 109 23 25 +f 109 108 23 +f 110 25 27 +f 110 109 25 +f 111 27 29 +f 111 110 27 +f 112 29 31 +f 112 111 29 +f 113 31 33 +f 113 112 31 +f 113 33 35 +f 114 113 35 +f 115 35 37 +f 115 114 35 +f 116 37 39 +f 116 115 37 +f 117 39 41 +f 117 116 39 +f 118 41 43 +f 118 117 41 +f 119 43 45 +f 119 118 43 +f 120 45 47 +f 120 119 45 +f 121 47 49 +f 121 120 47 +f 121 49 52 +f 122 121 52 +f 123 52 53 +f 123 122 52 +f 124 53 55 +f 124 123 53 +f 124 55 57 +f 125 124 57 +f 126 57 59 +f 126 125 57 +f 127 59 62 +f 127 126 59 +f 128 62 64 +f 128 127 62 +f 129 64 65 +f 129 128 64 +f 130 65 67 +f 130 129 65 +f 131 67 69 +f 131 130 67 +f 132 69 71 +f 132 131 69 +f 133 71 73 +f 133 132 71 +f 134 73 75 +f 134 133 73 +f 135 75 77 +f 135 134 75 +f 136 77 79 +f 136 135 77 +f 137 79 81 +f 137 136 79 +f 138 81 83 +f 138 137 81 +f 139 83 85 +f 139 138 83 +f 140 85 87 +f 140 139 85 +f 140 87 89 +f 141 140 89 +f 142 89 91 +f 142 141 89 +f 143 91 93 +f 143 142 91 +f 144 93 95 +f 144 143 93 +f 98 95 4 +f 98 144 95 +f 145 98 97 +f 145 146 98 +f 147 97 99 +f 147 145 97 +f 148 99 100 +f 148 147 99 +f 149 100 101 +f 149 148 100 +f 150 101 102 +f 150 149 101 +f 151 102 103 +f 151 150 102 +f 152 103 104 +f 152 151 103 +f 153 104 105 +f 153 152 104 +f 154 105 106 +f 154 153 105 +f 155 106 107 +f 155 154 106 +f 156 107 108 +f 156 155 107 +f 157 108 109 +f 157 156 108 +f 157 109 110 +f 158 157 110 +f 158 110 111 +f 159 158 111 +f 160 111 112 +f 160 159 111 +f 161 112 113 +f 161 160 112 +f 162 113 114 +f 162 161 113 +f 163 114 115 +f 163 162 114 +f 164 115 116 +f 164 163 115 +f 165 116 117 +f 165 164 116 +f 166 117 118 +f 166 165 117 +f 167 118 119 +f 167 166 118 +f 168 119 120 +f 168 167 119 +f 169 120 121 +f 169 168 120 +f 170 121 122 +f 170 169 121 +f 170 122 123 +f 171 170 123 +f 172 123 124 +f 172 171 123 +f 173 124 125 +f 173 172 124 +f 174 125 126 +f 174 173 125 +f 175 126 127 +f 175 174 126 +f 176 127 128 +f 176 175 127 +f 177 128 129 +f 177 176 128 +f 178 129 130 +f 178 177 129 +f 179 130 131 +f 179 178 130 +f 180 131 132 +f 180 179 131 +f 180 132 133 +f 181 180 133 +f 182 133 134 +f 182 181 133 +f 183 134 135 +f 183 182 134 +f 184 135 136 +f 184 183 135 +f 185 136 137 +f 185 184 136 +f 186 137 138 +f 186 185 137 +f 187 138 139 +f 187 186 138 +f 188 139 140 +f 188 187 139 +f 188 140 141 +f 189 188 141 +f 190 141 142 +f 190 189 141 +f 191 142 143 +f 191 190 142 +f 192 143 144 +f 192 191 143 +f 146 144 98 +f 146 192 144 +f 193 146 145 +f 193 194 146 +f 195 145 147 +f 195 193 145 +f 196 147 148 +f 196 195 147 +f 197 148 149 +f 197 196 148 +f 198 149 150 +f 198 197 149 +f 199 150 151 +f 199 198 150 +f 200 151 152 +f 200 199 151 +f 201 152 153 +f 201 200 152 +f 202 153 154 +f 202 201 153 +f 202 154 155 +f 203 202 155 +f 203 155 156 +f 204 203 156 +f 205 156 157 +f 205 204 156 +f 205 157 158 +f 206 205 158 +f 207 158 159 +f 207 206 158 +f 208 159 160 +f 208 207 159 +f 209 160 161 +f 209 208 160 +f 210 161 162 +f 210 209 161 +f 211 162 163 +f 211 210 162 +f 212 163 164 +f 212 211 163 +f 213 164 165 +f 213 212 164 +f 213 165 166 +f 214 213 166 +f 215 166 167 +f 215 214 166 +f 216 167 168 +f 216 215 167 +f 217 168 169 +f 217 216 168 +f 218 169 170 +f 218 217 169 +f 219 170 171 +f 219 218 170 +f 220 171 172 +f 220 219 171 +f 221 172 173 +f 221 220 172 +f 221 173 174 +f 222 221 174 +f 223 174 175 +f 223 222 174 +f 224 175 176 +f 224 223 175 +f 224 176 177 +f 225 224 177 +f 226 177 178 +f 226 225 177 +f 227 178 179 +f 227 226 178 +f 227 179 180 +f 228 227 180 +f 229 180 181 +f 229 228 180 +f 230 181 182 +f 230 229 181 +f 231 182 183 +f 231 230 182 +f 232 183 184 +f 232 231 183 +f 232 184 185 +f 233 232 185 +f 234 185 186 +f 234 233 185 +f 234 186 187 +f 235 234 187 +f 236 187 188 +f 236 235 187 +f 237 188 189 +f 237 236 188 +f 237 189 190 +f 238 237 190 +f 239 190 191 +f 239 238 190 +f 240 191 192 +f 240 239 191 +f 194 192 146 +f 194 240 192 +f 241 194 193 +f 241 242 194 +f 243 193 195 +f 243 241 193 +f 244 195 196 +f 244 243 195 +f 245 196 197 +f 245 244 196 +f 245 197 198 +f 246 245 198 +f 247 198 199 +f 247 246 198 +f 248 199 200 +f 248 247 199 +f 249 200 201 +f 249 248 200 +f 249 201 202 +f 250 249 202 +f 251 202 203 +f 251 250 202 +f 252 203 204 +f 252 251 203 +f 253 204 205 +f 253 252 204 +f 254 205 206 +f 254 253 205 +f 255 206 207 +f 255 254 206 +f 256 207 208 +f 256 255 207 +f 256 208 209 +f 257 256 209 +f 258 209 210 +f 258 257 209 +f 258 210 211 +f 259 258 211 +f 260 211 212 +f 260 259 211 +f 261 212 213 +f 261 260 212 +f 262 213 214 +f 262 261 213 +f 262 214 215 +f 263 262 215 +f 264 215 216 +f 264 263 215 +f 265 216 217 +f 265 264 216 +f 266 217 218 +f 266 265 217 +f 266 218 219 +f 267 266 219 +f 268 219 220 +f 268 267 219 +f 268 220 221 +f 269 268 221 +f 270 221 222 +f 270 269 221 +f 271 222 223 +f 271 270 222 +f 272 223 224 +f 272 271 223 +f 273 224 225 +f 273 272 224 +f 273 225 226 +f 274 273 226 +f 275 226 227 +f 275 274 226 +f 276 227 228 +f 276 275 227 +f 277 228 229 +f 277 276 228 +f 278 229 230 +f 278 277 229 +f 279 230 231 +f 279 278 230 +f 280 231 232 +f 280 279 231 +f 281 232 233 +f 281 280 232 +f 282 233 234 +f 282 281 233 +f 283 234 235 +f 283 282 234 +f 284 235 236 +f 284 283 235 +f 284 236 237 +f 285 284 237 +f 286 237 238 +f 286 285 237 +f 287 238 239 +f 287 286 238 +f 288 239 240 +f 288 287 239 +f 242 240 194 +f 242 288 240 +f 289 242 241 +f 289 290 242 +f 289 241 243 +f 291 289 243 +f 292 243 244 +f 292 291 243 +f 293 244 245 +f 293 292 244 +f 294 245 246 +f 294 293 245 +f 295 246 247 +f 295 294 246 +f 296 247 248 +f 296 295 247 +f 296 248 249 +f 297 296 249 +f 298 249 250 +f 298 297 249 +f 299 250 251 +f 299 298 250 +f 300 251 252 +f 300 299 251 +f 301 252 253 +f 301 300 252 +f 302 253 254 +f 302 301 253 +f 303 254 255 +f 303 302 254 +f 304 255 256 +f 304 303 255 +f 305 256 257 +f 305 304 256 +f 306 257 258 +f 306 305 257 +f 306 258 259 +f 307 306 259 +f 308 259 260 +f 308 307 259 +f 309 260 261 +f 309 308 260 +f 310 261 262 +f 310 309 261 +f 310 262 263 +f 311 310 263 +f 312 263 264 +f 312 311 263 +f 313 264 265 +f 313 312 264 +f 314 265 266 +f 314 313 265 +f 315 266 267 +f 315 314 266 +f 316 267 268 +f 316 315 267 +f 317 268 269 +f 317 316 268 +f 317 269 270 +f 318 317 270 +f 319 270 271 +f 319 318 270 +f 320 271 272 +f 320 319 271 +f 321 272 273 +f 321 320 272 +f 322 273 274 +f 322 321 273 +f 323 274 275 +f 323 322 274 +f 324 275 276 +f 324 323 275 +f 325 276 277 +f 325 324 276 +f 326 277 278 +f 326 325 277 +f 327 278 279 +f 327 326 278 +f 328 279 280 +f 328 327 279 +f 329 280 281 +f 329 328 280 +f 330 281 282 +f 330 329 281 +f 331 282 283 +f 331 330 282 +f 332 283 284 +f 332 331 283 +f 333 284 285 +f 333 332 284 +f 334 285 286 +f 334 333 285 +f 335 286 287 +f 335 334 286 +f 335 287 288 +f 336 335 288 +f 290 288 242 +f 290 336 288 +f 337 290 289 +f 337 338 290 +f 339 289 291 +f 339 337 289 +f 340 291 292 +f 340 339 291 +f 341 292 293 +f 341 340 292 +f 342 293 294 +f 342 341 293 +f 343 294 295 +f 343 342 294 +f 344 295 296 +f 344 343 295 +f 345 296 297 +f 345 344 296 +f 345 297 298 +f 346 345 298 +f 347 298 299 +f 347 346 298 +f 348 299 300 +f 348 347 299 +f 349 300 301 +f 349 348 300 +f 350 301 302 +f 350 349 301 +f 351 302 303 +f 351 350 302 +f 352 303 304 +f 352 351 303 +f 353 304 305 +f 353 352 304 +f 354 305 306 +f 354 353 305 +f 355 306 307 +f 355 354 306 +f 356 307 308 +f 356 355 307 +f 357 308 309 +f 357 356 308 +f 358 309 310 +f 358 357 309 +f 359 310 311 +f 359 358 310 +f 360 311 312 +f 360 359 311 +f 361 312 313 +f 361 360 312 +f 361 313 314 +f 362 361 314 +f 363 314 315 +f 363 362 314 +f 364 315 316 +f 364 363 315 +f 365 316 317 +f 365 364 316 +f 366 317 318 +f 366 365 317 +f 366 318 319 +f 367 366 319 +f 368 319 320 +f 368 367 319 +f 369 320 321 +f 369 368 320 +f 370 321 322 +f 370 369 321 +f 371 322 323 +f 371 370 322 +f 372 323 324 +f 372 371 323 +f 373 324 325 +f 373 372 324 +f 374 325 326 +f 374 373 325 +f 375 326 327 +f 375 374 326 +f 376 327 328 +f 376 375 327 +f 377 328 329 +f 377 376 328 +f 378 329 330 +f 378 377 329 +f 379 330 331 +f 379 378 330 +f 380 331 332 +f 380 379 331 +f 380 332 333 +f 381 380 333 +f 382 333 334 +f 382 381 333 +f 383 334 335 +f 383 382 334 +f 384 335 336 +f 384 383 335 +f 338 336 290 +f 338 384 336 +f 385 338 337 +f 385 386 338 +f 387 337 339 +f 387 385 337 +f 388 339 340 +f 388 387 339 +f 389 340 341 +f 389 388 340 +f 390 341 342 +f 390 389 341 +f 391 342 343 +f 391 390 342 +f 391 343 344 +f 392 391 344 +f 393 344 345 +f 393 392 344 +f 394 345 346 +f 394 393 345 +f 395 346 347 +f 395 394 346 +f 396 347 348 +f 396 395 347 +f 397 348 349 +f 397 396 348 +f 398 349 350 +f 398 397 349 +f 399 350 351 +f 399 398 350 +f 400 351 352 +f 400 399 351 +f 401 352 353 +f 401 400 352 +f 402 353 354 +f 402 401 353 +f 403 354 355 +f 403 402 354 +f 404 355 356 +f 404 403 355 +f 405 356 357 +f 405 404 356 +f 406 357 358 +f 406 405 357 +f 407 358 359 +f 407 406 358 +f 408 359 360 +f 408 407 359 +f 409 360 361 +f 409 408 360 +f 410 361 362 +f 410 409 361 +f 411 362 363 +f 411 410 362 +f 412 363 364 +f 412 411 363 +f 413 364 365 +f 413 412 364 +f 414 365 366 +f 414 413 365 +f 415 366 367 +f 415 414 366 +f 416 367 368 +f 416 415 367 +f 417 368 369 +f 417 416 368 +f 418 369 370 +f 418 417 369 +f 419 370 371 +f 419 418 370 +f 420 371 372 +f 420 419 371 +f 421 372 373 +f 421 420 372 +f 422 373 374 +f 422 421 373 +f 423 374 375 +f 423 422 374 +f 424 375 376 +f 424 423 375 +f 425 376 377 +f 425 424 376 +f 426 377 378 +f 426 425 377 +f 427 378 379 +f 427 426 378 +f 428 379 380 +f 428 427 379 +f 429 380 381 +f 429 428 380 +f 430 381 382 +f 430 429 381 +f 430 382 383 +f 431 430 383 +f 432 383 384 +f 432 431 383 +f 386 384 338 +f 386 432 384 +f 433 386 385 +f 433 434 386 +f 435 385 387 +f 435 433 385 +f 435 387 388 +f 436 435 388 +f 437 388 389 +f 437 436 388 +f 438 389 390 +f 438 437 389 +f 439 390 391 +f 439 438 390 +f 440 391 392 +f 440 439 391 +f 441 392 393 +f 441 440 392 +f 442 393 394 +f 442 441 393 +f 443 394 395 +f 443 442 394 +f 444 395 396 +f 444 443 395 +f 445 396 397 +f 445 444 396 +f 446 397 398 +f 446 445 397 +f 447 398 399 +f 447 446 398 +f 448 399 400 +f 448 447 399 +f 449 400 401 +f 449 448 400 +f 450 401 402 +f 450 449 401 +f 451 402 403 +f 451 450 402 +f 452 403 404 +f 452 451 403 +f 453 404 405 +f 453 452 404 +f 454 405 406 +f 454 453 405 +f 455 406 407 +f 455 454 406 +f 456 407 408 +f 456 455 407 +f 457 408 409 +f 457 456 408 +f 458 409 410 +f 458 457 409 +f 459 410 411 +f 459 458 410 +f 460 411 412 +f 460 459 411 +f 461 412 413 +f 461 460 412 +f 462 413 414 +f 462 461 413 +f 463 414 415 +f 463 462 414 +f 464 415 416 +f 464 463 415 +f 465 416 417 +f 465 464 416 +f 466 417 418 +f 466 465 417 +f 467 418 419 +f 467 466 418 +f 468 419 420 +f 468 467 419 +f 469 420 421 +f 469 468 420 +f 470 421 422 +f 470 469 421 +f 471 422 423 +f 471 470 422 +f 472 423 424 +f 472 471 423 +f 473 424 425 +f 473 472 424 +f 474 425 426 +f 474 473 425 +f 475 426 427 +f 475 474 426 +f 476 427 428 +f 476 475 427 +f 477 428 429 +f 477 476 428 +f 478 429 430 +f 478 477 429 +f 479 430 431 +f 479 478 430 +f 480 431 432 +f 480 479 431 +f 434 432 386 +f 434 480 432 +f 481 434 433 +f 481 482 434 +f 483 433 435 +f 483 481 433 +f 484 435 436 +f 484 483 435 +f 485 436 437 +f 485 484 436 +f 486 437 438 +f 486 485 437 +f 487 438 439 +f 487 486 438 +f 488 439 440 +f 488 487 439 +f 489 440 441 +f 489 488 440 +f 490 441 442 +f 490 489 441 +f 491 442 443 +f 491 490 442 +f 492 443 444 +f 492 491 443 +f 493 444 445 +f 493 492 444 +f 494 445 446 +f 494 493 445 +f 495 446 447 +f 495 494 446 +f 496 447 448 +f 496 495 447 +f 497 448 449 +f 497 496 448 +f 498 449 450 +f 498 497 449 +f 499 450 451 +f 499 498 450 +f 500 451 452 +f 500 499 451 +f 501 452 453 +f 501 500 452 +f 502 453 454 +f 502 501 453 +f 503 454 455 +f 503 502 454 +f 504 455 456 +f 504 503 455 +f 505 456 457 +f 505 504 456 +f 506 457 458 +f 506 505 457 +f 507 458 459 +f 507 506 458 +f 508 459 460 +f 508 507 459 +f 509 460 461 +f 509 508 460 +f 510 461 462 +f 510 509 461 +f 511 462 463 +f 511 510 462 +f 512 463 464 +f 512 511 463 +f 513 464 465 +f 513 512 464 +f 514 465 466 +f 514 513 465 +f 515 466 467 +f 515 514 466 +f 516 467 468 +f 516 515 467 +f 517 468 469 +f 517 516 468 +f 518 469 470 +f 518 517 469 +f 519 470 471 +f 519 518 470 +f 520 471 472 +f 520 519 471 +f 521 472 473 +f 521 520 472 +f 522 473 474 +f 522 521 473 +f 523 474 475 +f 523 522 474 +f 524 475 476 +f 524 523 475 +f 525 476 477 +f 525 524 476 +f 526 477 478 +f 526 525 477 +f 527 478 479 +f 527 526 478 +f 528 479 480 +f 528 527 479 +f 482 480 434 +f 482 528 480 +f 529 482 481 +f 529 530 482 +f 531 481 483 +f 531 529 481 +f 532 483 484 +f 532 531 483 +f 533 484 485 +f 533 532 484 +f 534 485 486 +f 534 533 485 +f 535 486 487 +f 535 534 486 +f 536 487 488 +f 536 535 487 +f 537 488 489 +f 537 536 488 +f 538 489 490 +f 538 537 489 +f 539 490 491 +f 539 538 490 +f 540 491 492 +f 540 539 491 +f 541 492 493 +f 541 540 492 +f 542 493 494 +f 542 541 493 +f 543 494 495 +f 543 542 494 +f 544 495 496 +f 544 543 495 +f 545 496 497 +f 545 544 496 +f 546 497 498 +f 546 545 497 +f 547 498 499 +f 547 546 498 +f 548 499 500 +f 548 547 499 +f 549 500 501 +f 549 548 500 +f 550 501 502 +f 550 549 501 +f 551 502 503 +f 551 550 502 +f 552 503 504 +f 552 551 503 +f 553 504 505 +f 553 552 504 +f 554 505 506 +f 554 553 505 +f 555 506 507 +f 555 554 506 +f 556 507 508 +f 556 555 507 +f 557 508 509 +f 557 556 508 +f 558 509 510 +f 558 557 509 +f 559 510 511 +f 559 558 510 +f 560 511 512 +f 560 559 511 +f 561 512 513 +f 561 560 512 +f 562 513 514 +f 562 561 513 +f 563 514 515 +f 563 562 514 +f 564 515 516 +f 564 563 515 +f 565 516 517 +f 565 564 516 +f 566 517 518 +f 566 565 517 +f 567 518 519 +f 567 566 518 +f 568 519 520 +f 568 567 519 +f 569 520 521 +f 569 568 520 +f 570 521 522 +f 570 569 521 +f 571 522 523 +f 571 570 522 +f 572 523 524 +f 572 571 523 +f 573 524 525 +f 573 572 524 +f 574 525 526 +f 574 573 525 +f 575 526 527 +f 575 574 526 +f 576 527 528 +f 576 575 527 +f 530 528 482 +f 530 576 528 +f 577 530 529 +f 577 578 530 +f 579 529 531 +f 579 577 529 +f 580 531 532 +f 580 579 531 +f 581 532 533 +f 581 580 532 +f 582 533 534 +f 582 581 533 +f 583 534 535 +f 583 582 534 +f 584 535 536 +f 584 583 535 +f 585 536 537 +f 585 584 536 +f 586 537 538 +f 586 585 537 +f 587 538 539 +f 587 586 538 +f 588 539 540 +f 588 587 539 +f 589 540 541 +f 589 588 540 +f 590 541 542 +f 590 589 541 +f 591 542 543 +f 591 590 542 +f 592 543 544 +f 592 591 543 +f 593 544 545 +f 593 592 544 +f 594 545 546 +f 594 593 545 +f 595 546 547 +f 595 594 546 +f 596 547 548 +f 596 595 547 +f 597 548 549 +f 597 596 548 +f 598 549 550 +f 598 597 549 +f 599 550 551 +f 599 598 550 +f 600 551 552 +f 600 599 551 +f 601 552 553 +f 601 600 552 +f 602 553 554 +f 602 601 553 +f 603 554 555 +f 603 602 554 +f 604 555 556 +f 604 603 555 +f 605 556 557 +f 605 604 556 +f 606 557 558 +f 606 605 557 +f 607 558 559 +f 607 606 558 +f 608 559 560 +f 608 607 559 +f 609 560 561 +f 609 608 560 +f 610 561 562 +f 610 609 561 +f 611 562 563 +f 611 610 562 +f 612 563 564 +f 612 611 563 +f 613 564 565 +f 613 612 564 +f 614 565 566 +f 614 613 565 +f 615 566 567 +f 615 614 566 +f 616 567 568 +f 616 615 567 +f 617 568 569 +f 617 616 568 +f 618 569 570 +f 618 617 569 +f 619 570 571 +f 619 618 570 +f 620 571 572 +f 620 619 571 +f 621 572 573 +f 621 620 572 +f 622 573 574 +f 622 621 573 +f 623 574 575 +f 623 622 574 +f 624 575 576 +f 624 623 575 +f 578 576 530 +f 578 624 576 +f 625 578 577 +f 625 626 578 +f 627 577 579 +f 627 625 577 +f 628 579 580 +f 628 627 579 +f 629 580 581 +f 629 628 580 +f 630 581 582 +f 630 629 581 +f 631 582 583 +f 631 630 582 +f 632 583 584 +f 632 631 583 +f 633 584 585 +f 633 632 584 +f 634 585 586 +f 634 633 585 +f 635 586 587 +f 635 634 586 +f 636 587 588 +f 636 635 587 +f 637 588 589 +f 637 636 588 +f 638 589 590 +f 638 637 589 +f 639 590 591 +f 639 638 590 +f 640 591 592 +f 640 639 591 +f 641 592 593 +f 641 640 592 +f 642 593 594 +f 642 641 593 +f 643 594 595 +f 643 642 594 +f 644 595 596 +f 644 643 595 +f 645 596 597 +f 645 644 596 +f 646 597 598 +f 646 645 597 +f 647 598 599 +f 647 646 598 +f 648 599 600 +f 648 647 599 +f 649 600 601 +f 649 648 600 +f 650 601 602 +f 650 649 601 +f 651 602 603 +f 651 650 602 +f 652 603 604 +f 652 651 603 +f 653 604 605 +f 653 652 604 +f 654 605 606 +f 654 653 605 +f 655 606 607 +f 655 654 606 +f 656 607 608 +f 656 655 607 +f 657 608 609 +f 657 656 608 +f 658 609 610 +f 658 657 609 +f 659 610 611 +f 659 658 610 +f 660 611 612 +f 660 659 611 +f 661 612 613 +f 661 660 612 +f 662 613 614 +f 662 661 613 +f 663 614 615 +f 663 662 614 +f 664 615 616 +f 664 663 615 +f 665 616 617 +f 665 664 616 +f 666 617 618 +f 666 665 617 +f 667 618 619 +f 667 666 618 +f 668 619 620 +f 668 667 619 +f 668 620 621 +f 669 668 621 +f 670 621 622 +f 670 669 621 +f 671 622 623 +f 671 670 622 +f 672 623 624 +f 672 671 623 +f 626 624 578 +f 626 672 624 +f 673 626 625 +f 673 674 626 +f 675 625 627 +f 675 673 625 +f 676 627 628 +f 676 675 627 +f 677 628 629 +f 677 676 628 +f 678 629 630 +f 678 677 629 +f 679 630 631 +f 679 678 630 +f 679 631 632 +f 680 679 632 +f 681 632 633 +f 681 680 632 +f 682 633 634 +f 682 681 633 +f 683 634 635 +f 683 682 634 +f 684 635 636 +f 684 683 635 +f 685 636 637 +f 685 684 636 +f 685 637 638 +f 686 685 638 +f 687 638 639 +f 687 686 638 +f 688 639 640 +f 688 687 639 +f 689 640 641 +f 689 688 640 +f 690 641 642 +f 690 689 641 +f 691 642 643 +f 691 690 642 +f 692 643 644 +f 692 691 643 +f 693 644 645 +f 693 692 644 +f 694 645 646 +f 694 693 645 +f 695 646 647 +f 695 694 646 +f 696 647 648 +f 696 695 647 +f 697 648 649 +f 697 696 648 +f 698 649 650 +f 698 697 649 +f 699 650 651 +f 699 698 650 +f 700 651 652 +f 700 699 651 +f 701 652 653 +f 701 700 652 +f 702 653 654 +f 702 701 653 +f 703 654 655 +f 703 702 654 +f 703 655 656 +f 704 703 656 +f 705 656 657 +f 705 704 656 +f 706 657 658 +f 706 705 657 +f 707 658 659 +f 707 706 658 +f 708 659 660 +f 708 707 659 +f 709 660 661 +f 709 708 660 +f 710 661 662 +f 710 709 661 +f 711 662 663 +f 711 710 662 +f 712 663 664 +f 712 711 663 +f 713 664 665 +f 713 712 664 +f 714 665 666 +f 714 713 665 +f 715 666 667 +f 715 714 666 +f 716 667 668 +f 716 715 667 +f 717 668 669 +f 717 716 668 +f 718 669 670 +f 718 717 669 +f 719 670 671 +f 719 718 670 +f 720 671 672 +f 720 719 671 +f 674 672 626 +f 674 720 672 +f 721 674 673 +f 721 722 674 +f 723 673 675 +f 723 721 673 +f 723 675 676 +f 724 723 676 +f 725 676 677 +f 725 724 676 +f 726 677 678 +f 726 725 677 +f 727 678 679 +f 727 726 678 +f 728 679 680 +f 728 727 679 +f 729 680 681 +f 729 728 680 +f 729 681 682 +f 730 729 682 +f 731 682 683 +f 731 730 682 +f 732 683 684 +f 732 731 683 +f 733 684 685 +f 733 732 684 +f 734 685 686 +f 734 733 685 +f 735 686 687 +f 735 734 686 +f 736 687 688 +f 736 735 687 +f 737 688 689 +f 737 736 688 +f 738 689 690 +f 738 737 689 +f 739 690 691 +f 739 738 690 +f 740 691 692 +f 740 739 691 +f 741 692 693 +f 741 740 692 +f 742 693 694 +f 742 741 693 +f 743 694 695 +f 743 742 694 +f 744 695 696 +f 744 743 695 +f 745 696 697 +f 745 744 696 +f 746 697 698 +f 746 745 697 +f 747 698 699 +f 747 746 698 +f 748 699 700 +f 748 747 699 +f 749 700 701 +f 749 748 700 +f 750 701 702 +f 750 749 701 +f 751 702 703 +f 751 750 702 +f 752 703 704 +f 752 751 703 +f 753 704 705 +f 753 752 704 +f 754 705 706 +f 754 753 705 +f 755 706 707 +f 755 754 706 +f 756 707 708 +f 756 755 707 +f 757 708 709 +f 757 756 708 +f 758 709 710 +f 758 757 709 +f 759 710 711 +f 759 758 710 +f 760 711 712 +f 760 759 711 +f 761 712 713 +f 761 760 712 +f 762 713 714 +f 762 761 713 +f 763 714 715 +f 763 762 714 +f 764 715 716 +f 764 763 715 +f 765 716 717 +f 765 764 716 +f 766 717 718 +f 766 765 717 +f 767 718 719 +f 767 766 718 +f 768 719 720 +f 768 767 719 +f 722 720 674 +f 722 768 720 +f 769 722 721 +f 769 770 722 +f 771 721 723 +f 771 769 721 +f 772 723 724 +f 772 771 723 +f 773 724 725 +f 773 772 724 +f 774 725 726 +f 774 773 725 +f 775 726 727 +f 775 774 726 +f 776 727 728 +f 776 775 727 +f 777 728 729 +f 777 776 728 +f 778 729 730 +f 778 777 729 +f 779 730 731 +f 779 778 730 +f 780 731 732 +f 780 779 731 +f 781 732 733 +f 781 780 732 +f 782 733 734 +f 782 781 733 +f 783 734 735 +f 783 782 734 +f 783 735 736 +f 784 783 736 +f 785 736 737 +f 785 784 736 +f 786 737 738 +f 786 785 737 +f 787 738 739 +f 787 786 738 +f 788 739 740 +f 788 787 739 +f 788 740 741 +f 789 788 741 +f 790 741 742 +f 790 789 741 +f 791 742 743 +f 791 790 742 +f 792 743 744 +f 792 791 743 +f 793 744 745 +f 793 792 744 +f 794 745 746 +f 794 793 745 +f 795 746 747 +f 795 794 746 +f 796 747 748 +f 796 795 747 +f 797 748 749 +f 797 796 748 +f 798 749 750 +f 798 797 749 +f 799 750 751 +f 799 798 750 +f 800 751 752 +f 800 799 751 +f 801 752 753 +f 801 800 752 +f 802 753 754 +f 802 801 753 +f 803 754 755 +f 803 802 754 +f 804 755 756 +f 804 803 755 +f 805 756 757 +f 805 804 756 +f 806 757 758 +f 806 805 757 +f 807 758 759 +f 807 806 758 +f 807 759 760 +f 808 807 760 +f 809 760 761 +f 809 808 760 +f 809 761 762 +f 810 809 762 +f 811 762 763 +f 811 810 762 +f 812 763 764 +f 812 811 763 +f 813 764 765 +f 813 812 764 +f 814 765 766 +f 814 813 765 +f 815 766 767 +f 815 814 766 +f 816 767 768 +f 816 815 767 +f 770 768 722 +f 770 816 768 +f 817 770 769 +f 817 818 770 +f 819 769 771 +f 819 817 769 +f 819 771 772 +f 820 819 772 +f 821 772 773 +f 821 820 772 +f 822 773 774 +f 822 821 773 +f 823 774 775 +f 823 822 774 +f 824 775 776 +f 824 823 775 +f 825 776 777 +f 825 824 776 +f 826 777 778 +f 826 825 777 +f 827 778 779 +f 827 826 778 +f 828 779 780 +f 828 827 779 +f 829 780 781 +f 829 828 780 +f 829 781 782 +f 830 829 782 +f 831 782 783 +f 831 830 782 +f 832 783 784 +f 832 831 783 +f 832 784 785 +f 833 832 785 +f 833 785 786 +f 834 833 786 +f 835 786 787 +f 835 834 786 +f 836 787 788 +f 836 835 787 +f 837 788 789 +f 837 836 788 +f 838 789 790 +f 838 837 789 +f 838 790 791 +f 839 838 791 +f 840 791 792 +f 840 839 791 +f 841 792 793 +f 841 840 792 +f 842 793 794 +f 842 841 793 +f 842 794 795 +f 843 842 795 +f 844 795 796 +f 844 843 795 +f 845 796 797 +f 845 844 796 +f 846 797 798 +f 846 845 797 +f 847 798 799 +f 847 846 798 +f 848 799 800 +f 848 847 799 +f 849 800 801 +f 849 848 800 +f 850 801 802 +f 850 849 801 +f 851 802 803 +f 851 850 802 +f 852 803 804 +f 852 851 803 +f 853 804 805 +f 853 852 804 +f 853 805 806 +f 854 853 806 +f 854 806 807 +f 855 854 807 +f 856 807 808 +f 856 855 807 +f 857 808 809 +f 857 856 808 +f 858 809 810 +f 858 857 809 +f 859 810 811 +f 859 858 810 +f 860 811 812 +f 860 859 811 +f 860 812 813 +f 861 860 813 +f 862 813 814 +f 862 861 813 +f 863 814 815 +f 863 862 814 +f 864 815 816 +f 864 863 815 +f 818 816 770 +f 818 864 816 +f 865 818 817 +f 865 866 818 +f 865 817 819 +f 867 865 819 +f 868 819 820 +f 868 867 819 +f 868 820 821 +f 869 868 821 +f 869 821 822 +f 870 869 822 +f 871 822 823 +f 871 870 822 +f 872 823 824 +f 872 871 823 +f 873 824 825 +f 873 872 824 +f 873 825 826 +f 874 873 826 +f 875 826 827 +f 875 874 826 +f 876 827 828 +f 876 875 827 +f 877 828 829 +f 877 876 828 +f 877 829 830 +f 878 877 830 +f 878 830 831 +f 879 878 831 +f 880 831 832 +f 880 879 831 +f 881 832 833 +f 881 880 832 +f 882 833 834 +f 882 881 833 +f 883 834 835 +f 883 882 834 +f 884 835 836 +f 884 883 835 +f 885 836 837 +f 885 884 836 +f 886 837 838 +f 886 885 837 +f 887 838 839 +f 887 886 838 +f 888 839 840 +f 888 887 839 +f 889 840 841 +f 889 888 840 +f 890 841 842 +f 890 889 841 +f 891 842 843 +f 891 890 842 +f 892 843 844 +f 892 891 843 +f 893 844 845 +f 893 892 844 +f 894 845 846 +f 894 893 845 +f 895 846 847 +f 895 894 846 +f 895 847 848 +f 896 895 848 +f 897 848 849 +f 897 896 848 +f 898 849 850 +f 898 897 849 +f 899 850 851 +f 899 898 850 +f 900 851 852 +f 900 899 851 +f 900 852 853 +f 901 900 853 +f 902 853 854 +f 902 901 853 +f 902 854 855 +f 903 902 855 +f 904 855 856 +f 904 903 855 +f 905 856 857 +f 905 904 856 +f 906 857 858 +f 906 905 857 +f 907 858 859 +f 907 906 858 +f 907 859 860 +f 908 907 860 +f 909 860 861 +f 909 908 860 +f 910 861 862 +f 910 909 861 +f 910 862 863 +f 911 910 863 +f 912 863 864 +f 912 911 863 +f 866 864 818 +f 866 912 864 +f 913 866 865 +f 913 914 866 +f 915 865 867 +f 915 913 865 +f 916 867 868 +f 916 915 867 +f 917 868 869 +f 917 916 868 +f 917 869 870 +f 918 917 870 +f 919 870 871 +f 919 918 870 +f 920 871 872 +f 920 919 871 +f 921 872 873 +f 921 920 872 +f 922 873 874 +f 922 921 873 +f 923 874 875 +f 923 922 874 +f 924 875 876 +f 924 923 875 +f 925 876 877 +f 925 924 876 +f 926 877 878 +f 926 925 877 +f 927 878 879 +f 927 926 878 +f 928 879 880 +f 928 927 879 +f 929 880 881 +f 929 928 880 +f 930 881 882 +f 930 929 881 +f 931 882 883 +f 931 930 882 +f 932 883 884 +f 932 931 883 +f 933 884 885 +f 933 932 884 +f 934 885 886 +f 934 933 885 +f 935 886 887 +f 935 934 886 +f 936 887 888 +f 936 935 887 +f 937 888 889 +f 937 936 888 +f 938 889 890 +f 938 937 889 +f 939 890 891 +f 939 938 890 +f 940 891 892 +f 940 939 891 +f 941 892 893 +f 941 940 892 +f 942 893 894 +f 942 941 893 +f 943 894 895 +f 943 942 894 +f 944 895 896 +f 944 943 895 +f 945 896 897 +f 945 944 896 +f 946 897 898 +f 946 945 897 +f 947 898 899 +f 947 946 898 +f 948 899 900 +f 948 947 899 +f 948 900 901 +f 949 948 901 +f 949 901 902 +f 950 949 902 +f 951 902 903 +f 951 950 902 +f 952 903 904 +f 952 951 903 +f 952 904 905 +f 953 952 905 +f 954 905 906 +f 954 953 905 +f 955 906 907 +f 955 954 906 +f 956 907 908 +f 956 955 907 +f 957 908 909 +f 957 956 908 +f 958 909 910 +f 958 957 909 +f 959 910 911 +f 959 958 910 +f 960 911 912 +f 960 959 911 +f 914 912 866 +f 914 960 912 +f 961 914 913 +f 961 962 914 +f 963 913 915 +f 963 961 913 +f 964 915 916 +f 964 963 915 +f 965 916 917 +f 965 964 916 +f 966 917 918 +f 966 965 917 +f 967 918 919 +f 967 966 918 +f 968 919 920 +f 968 967 919 +f 969 920 921 +f 969 968 920 +f 970 921 922 +f 970 969 921 +f 971 922 923 +f 971 970 922 +f 972 923 924 +f 972 971 923 +f 973 924 925 +f 973 972 924 +f 974 925 926 +f 974 973 925 +f 975 926 927 +f 975 974 926 +f 976 927 928 +f 976 975 927 +f 977 928 929 +f 977 976 928 +f 978 929 930 +f 978 977 929 +f 979 930 931 +f 979 978 930 +f 980 931 932 +f 980 979 931 +f 981 932 933 +f 981 980 932 +f 982 933 934 +f 982 981 933 +f 983 934 935 +f 983 982 934 +f 984 935 936 +f 984 983 935 +f 985 936 937 +f 985 984 936 +f 986 937 938 +f 986 985 937 +f 987 938 939 +f 987 986 938 +f 988 939 940 +f 988 987 939 +f 989 940 941 +f 989 988 940 +f 989 941 942 +f 990 989 942 +f 991 942 943 +f 991 990 942 +f 992 943 944 +f 992 991 943 +f 993 944 945 +f 993 992 944 +f 994 945 946 +f 994 993 945 +f 995 946 947 +f 995 994 946 +f 996 947 948 +f 996 995 947 +f 997 948 949 +f 997 996 948 +f 997 949 950 +f 998 997 950 +f 999 950 951 +f 999 998 950 +f 999 951 952 +f 1000 999 952 +f 1001 952 953 +f 1001 1000 952 +f 1002 953 954 +f 1002 1001 953 +f 1003 954 955 +f 1003 1002 954 +f 1004 955 956 +f 1004 1003 955 +f 1005 956 957 +f 1005 1004 956 +f 1006 957 958 +f 1006 1005 957 +f 1007 958 959 +f 1007 1006 958 +f 1008 959 960 +f 1008 1007 959 +f 962 960 914 +f 962 1008 960 +f 1009 962 961 +f 1009 1010 962 +f 1009 961 963 +f 1011 1009 963 +f 1012 963 964 +f 1012 1011 963 +f 1013 964 965 +f 1013 1012 964 +f 1014 965 966 +f 1014 1013 965 +f 1014 966 967 +f 1015 1014 967 +f 1016 967 968 +f 1016 1015 967 +f 1017 968 969 +f 1017 1016 968 +f 1017 969 970 +f 1018 1017 970 +f 1019 970 971 +f 1019 1018 970 +f 1020 971 972 +f 1020 1019 971 +f 1021 972 973 +f 1021 1020 972 +f 1022 973 974 +f 1022 1021 973 +f 1023 974 975 +f 1023 1022 974 +f 1024 975 976 +f 1024 1023 975 +f 1025 976 977 +f 1025 1024 976 +f 1026 977 978 +f 1026 1025 977 +f 1027 978 979 +f 1027 1026 978 +f 1028 979 980 +f 1028 1027 979 +f 1029 980 981 +f 1029 1028 980 +f 1030 981 982 +f 1030 1029 981 +f 1031 982 983 +f 1031 1030 982 +f 1032 983 984 +f 1032 1031 983 +f 1033 984 985 +f 1033 1032 984 +f 1033 985 986 +f 1034 1033 986 +f 1035 986 987 +f 1035 1034 986 +f 1036 987 988 +f 1036 1035 987 +f 1037 988 989 +f 1037 1036 988 +f 1038 989 990 +f 1038 1037 989 +f 1038 990 991 +f 1039 1038 991 +f 1040 991 992 +f 1040 1039 991 +f 1041 992 993 +f 1041 1040 992 +f 1042 993 994 +f 1042 1041 993 +f 1043 994 995 +f 1043 1042 994 +f 1044 995 996 +f 1044 1043 995 +f 1045 996 997 +f 1045 1044 996 +f 1046 997 998 +f 1046 1045 997 +f 1047 998 999 +f 1047 1046 998 +f 1048 999 1000 +f 1048 1047 999 +f 1049 1000 1001 +f 1049 1048 1000 +f 1050 1001 1002 +f 1050 1049 1001 +f 1051 1002 1003 +f 1051 1050 1002 +f 1052 1003 1004 +f 1052 1051 1003 +f 1053 1004 1005 +f 1053 1052 1004 +f 1054 1005 1006 +f 1054 1053 1005 +f 1055 1006 1007 +f 1055 1054 1006 +f 1056 1007 1008 +f 1056 1055 1007 +f 1010 1008 962 +f 1010 1056 1008 +f 1057 2 1058 +f 1057 3 2 +f 1059 3 1057 +f 1059 6 3 +f 1060 6 1059 +f 1060 8 6 +f 1061 8 1060 +f 1061 10 8 +f 1062 10 1061 +f 1062 12 10 +f 1063 12 1062 +f 1063 13 12 +f 1064 13 1063 +f 1064 15 13 +f 1065 15 1064 +f 1065 18 15 +f 1066 18 1065 +f 1066 20 18 +f 1067 20 1066 +f 1067 22 20 +f 1068 22 1067 +f 1068 24 22 +f 1069 24 1068 +f 1069 26 24 +f 1070 26 1069 +f 1070 28 26 +f 1070 30 28 +f 1071 30 1070 +f 1072 30 1071 +f 1072 32 30 +f 1073 32 1072 +f 1073 34 32 +f 1073 36 34 +f 1074 36 1073 +f 1075 36 1074 +f 1075 38 36 +f 1076 38 1075 +f 1076 40 38 +f 1077 40 1076 +f 1077 42 40 +f 1078 42 1077 +f 1078 44 42 +f 1079 44 1078 +f 1079 46 44 +f 1080 46 1079 +f 1080 48 46 +f 1081 48 1080 +f 1081 50 48 +f 1082 50 1081 +f 1082 51 50 +f 1083 51 1082 +f 1083 54 51 +f 1084 54 1083 +f 1084 56 54 +f 1085 56 1084 +f 1085 58 56 +f 1086 58 1085 +f 1086 60 58 +f 1087 60 1086 +f 1087 61 60 +f 1088 61 1087 +f 1088 63 61 +f 1089 63 1088 +f 1089 66 63 +f 1090 66 1089 +f 1090 68 66 +f 1091 68 1090 +f 1091 70 68 +f 1092 70 1091 +f 1092 72 70 +f 1093 72 1092 +f 1093 74 72 +f 1094 74 1093 +f 1094 76 74 +f 1095 76 1094 +f 1095 78 76 +f 1095 80 78 +f 1096 80 1095 +f 1097 80 1096 +f 1097 82 80 +f 1098 82 1097 +f 1098 84 82 +f 1099 84 1098 +f 1099 86 84 +f 1100 86 1099 +f 1100 88 86 +f 1101 88 1100 +f 1101 90 88 +f 1102 90 1101 +f 1102 92 90 +f 1103 92 1102 +f 1103 94 92 +f 1104 94 1103 +f 1104 96 94 +f 1058 96 1104 +f 1058 2 96 +f 1105 1058 1106 +f 1105 1057 1058 +f 1107 1057 1105 +f 1107 1059 1057 +f 1108 1059 1107 +f 1108 1060 1059 +f 1109 1060 1108 +f 1109 1061 1060 +f 1110 1061 1109 +f 1110 1062 1061 +f 1111 1062 1110 +f 1111 1063 1062 +f 1112 1063 1111 +f 1112 1064 1063 +f 1113 1064 1112 +f 1113 1065 1064 +f 1114 1065 1113 +f 1114 1066 1065 +f 1115 1066 1114 +f 1115 1067 1066 +f 1116 1067 1115 +f 1116 1068 1067 +f 1117 1068 1116 +f 1117 1069 1068 +f 1118 1069 1117 +f 1118 1070 1069 +f 1119 1070 1118 +f 1119 1071 1070 +f 1120 1071 1119 +f 1120 1072 1071 +f 1121 1072 1120 +f 1121 1073 1072 +f 1122 1073 1121 +f 1122 1074 1073 +f 1123 1074 1122 +f 1123 1075 1074 +f 1124 1075 1123 +f 1124 1076 1075 +f 1124 1077 1076 +f 1125 1077 1124 +f 1126 1077 1125 +f 1126 1078 1077 +f 1127 1078 1126 +f 1127 1079 1078 +f 1128 1079 1127 +f 1128 1080 1079 +f 1129 1080 1128 +f 1129 1081 1080 +f 1130 1081 1129 +f 1130 1082 1081 +f 1131 1082 1130 +f 1131 1083 1082 +f 1132 1083 1131 +f 1132 1084 1083 +f 1133 1084 1132 +f 1133 1085 1084 +f 1134 1085 1133 +f 1134 1086 1085 +f 1135 1086 1134 +f 1135 1087 1086 +f 1136 1087 1135 +f 1136 1088 1087 +f 1136 1089 1088 +f 1137 1089 1136 +f 1138 1089 1137 +f 1138 1090 1089 +f 1139 1090 1138 +f 1139 1091 1090 +f 1140 1091 1139 +f 1140 1092 1091 +f 1141 1092 1140 +f 1141 1093 1092 +f 1142 1093 1141 +f 1142 1094 1093 +f 1143 1094 1142 +f 1143 1095 1094 +f 1144 1095 1143 +f 1144 1096 1095 +f 1145 1096 1144 +f 1145 1097 1096 +f 1146 1097 1145 +f 1146 1098 1097 +f 1147 1098 1146 +f 1147 1099 1098 +f 1148 1099 1147 +f 1148 1100 1099 +f 1149 1100 1148 +f 1149 1101 1100 +f 1150 1101 1149 +f 1150 1102 1101 +f 1151 1102 1150 +f 1151 1103 1102 +f 1152 1103 1151 +f 1152 1104 1103 +f 1106 1104 1152 +f 1106 1058 1104 +f 1153 1106 1154 +f 1153 1105 1106 +f 1155 1105 1153 +f 1155 1107 1105 +f 1156 1107 1155 +f 1156 1108 1107 +f 1157 1108 1156 +f 1157 1109 1108 +f 1158 1109 1157 +f 1158 1110 1109 +f 1159 1110 1158 +f 1159 1111 1110 +f 1160 1111 1159 +f 1160 1112 1111 +f 1161 1112 1160 +f 1161 1113 1112 +f 1162 1113 1161 +f 1162 1114 1113 +f 1163 1114 1162 +f 1163 1115 1114 +f 1164 1115 1163 +f 1164 1116 1115 +f 1165 1116 1164 +f 1165 1117 1116 +f 1166 1117 1165 +f 1166 1118 1117 +f 1167 1118 1166 +f 1167 1119 1118 +f 1168 1119 1167 +f 1168 1120 1119 +f 1169 1120 1168 +f 1169 1121 1120 +f 1170 1121 1169 +f 1170 1122 1121 +f 1171 1122 1170 +f 1171 1123 1122 +f 1172 1123 1171 +f 1172 1124 1123 +f 1173 1124 1172 +f 1173 1125 1124 +f 1174 1125 1173 +f 1174 1126 1125 +f 1175 1126 1174 +f 1175 1127 1126 +f 1176 1127 1175 +f 1176 1128 1127 +f 1177 1128 1176 +f 1177 1129 1128 +f 1178 1129 1177 +f 1178 1130 1129 +f 1179 1130 1178 +f 1179 1131 1130 +f 1180 1131 1179 +f 1180 1132 1131 +f 1181 1132 1180 +f 1181 1133 1132 +f 1182 1133 1181 +f 1182 1134 1133 +f 1183 1134 1182 +f 1183 1135 1134 +f 1184 1135 1183 +f 1184 1136 1135 +f 1185 1136 1184 +f 1185 1137 1136 +f 1186 1137 1185 +f 1186 1138 1137 +f 1187 1138 1186 +f 1187 1139 1138 +f 1188 1139 1187 +f 1188 1140 1139 +f 1189 1140 1188 +f 1189 1141 1140 +f 1190 1141 1189 +f 1190 1142 1141 +f 1191 1142 1190 +f 1191 1143 1142 +f 1192 1143 1191 +f 1192 1144 1143 +f 1193 1144 1192 +f 1193 1145 1144 +f 1194 1145 1193 +f 1194 1146 1145 +f 1195 1146 1194 +f 1195 1147 1146 +f 1196 1147 1195 +f 1196 1148 1147 +f 1197 1148 1196 +f 1197 1149 1148 +f 1198 1149 1197 +f 1198 1150 1149 +f 1199 1150 1198 +f 1199 1151 1150 +f 1200 1151 1199 +f 1200 1152 1151 +f 1154 1152 1200 +f 1154 1106 1152 +f 1201 1154 1202 +f 1201 1153 1154 +f 1203 1153 1201 +f 1203 1155 1153 +f 1204 1155 1203 +f 1204 1156 1155 +f 1205 1156 1204 +f 1205 1157 1156 +f 1206 1157 1205 +f 1206 1158 1157 +f 1207 1158 1206 +f 1207 1159 1158 +f 1208 1159 1207 +f 1208 1160 1159 +f 1209 1160 1208 +f 1209 1161 1160 +f 1210 1161 1209 +f 1210 1162 1161 +f 1211 1162 1210 +f 1211 1163 1162 +f 1212 1163 1211 +f 1212 1164 1163 +f 1213 1164 1212 +f 1213 1165 1164 +f 1214 1165 1213 +f 1214 1166 1165 +f 1215 1166 1214 +f 1215 1167 1166 +f 1216 1167 1215 +f 1216 1168 1167 +f 1217 1168 1216 +f 1217 1169 1168 +f 1218 1169 1217 +f 1218 1170 1169 +f 1219 1170 1218 +f 1219 1171 1170 +f 1220 1171 1219 +f 1220 1172 1171 +f 1221 1172 1220 +f 1221 1173 1172 +f 1222 1173 1221 +f 1222 1174 1173 +f 1223 1174 1222 +f 1223 1175 1174 +f 1224 1175 1223 +f 1224 1176 1175 +f 1225 1176 1224 +f 1225 1177 1176 +f 1226 1177 1225 +f 1226 1178 1177 +f 1227 1178 1226 +f 1227 1179 1178 +f 1228 1179 1227 +f 1228 1180 1179 +f 1229 1180 1228 +f 1229 1181 1180 +f 1230 1181 1229 +f 1230 1182 1181 +f 1231 1182 1230 +f 1231 1183 1182 +f 1232 1183 1231 +f 1232 1184 1183 +f 1233 1184 1232 +f 1233 1185 1184 +f 1234 1185 1233 +f 1234 1186 1185 +f 1235 1186 1234 +f 1235 1187 1186 +f 1236 1187 1235 +f 1236 1188 1187 +f 1237 1188 1236 +f 1237 1189 1188 +f 1238 1189 1237 +f 1238 1190 1189 +f 1239 1190 1238 +f 1239 1191 1190 +f 1240 1191 1239 +f 1240 1192 1191 +f 1241 1192 1240 +f 1241 1193 1192 +f 1242 1193 1241 +f 1242 1194 1193 +f 1243 1194 1242 +f 1243 1195 1194 +f 1244 1195 1243 +f 1244 1196 1195 +f 1245 1196 1244 +f 1245 1197 1196 +f 1246 1197 1245 +f 1246 1198 1197 +f 1247 1198 1246 +f 1247 1199 1198 +f 1248 1199 1247 +f 1248 1200 1199 +f 1202 1200 1248 +f 1202 1154 1200 +f 1249 1202 1250 +f 1249 1201 1202 +f 1251 1201 1249 +f 1251 1203 1201 +f 1252 1203 1251 +f 1252 1204 1203 +f 1253 1204 1252 +f 1253 1205 1204 +f 1254 1205 1253 +f 1254 1206 1205 +f 1255 1206 1254 +f 1255 1207 1206 +f 1256 1207 1255 +f 1256 1208 1207 +f 1257 1208 1256 +f 1257 1209 1208 +f 1258 1209 1257 +f 1258 1210 1209 +f 1259 1210 1258 +f 1259 1211 1210 +f 1260 1211 1259 +f 1260 1212 1211 +f 1261 1212 1260 +f 1261 1213 1212 +f 1262 1213 1261 +f 1262 1214 1213 +f 1263 1214 1262 +f 1263 1215 1214 +f 1264 1215 1263 +f 1264 1216 1215 +f 1265 1216 1264 +f 1265 1217 1216 +f 1266 1217 1265 +f 1266 1218 1217 +f 1267 1218 1266 +f 1267 1219 1218 +f 1268 1219 1267 +f 1268 1220 1219 +f 1269 1220 1268 +f 1269 1221 1220 +f 1270 1221 1269 +f 1270 1222 1221 +f 1271 1222 1270 +f 1271 1223 1222 +f 1272 1223 1271 +f 1272 1224 1223 +f 1273 1224 1272 +f 1273 1225 1224 +f 1274 1225 1273 +f 1274 1226 1225 +f 1275 1226 1274 +f 1275 1227 1226 +f 1276 1227 1275 +f 1276 1228 1227 +f 1277 1228 1276 +f 1277 1229 1228 +f 1278 1229 1277 +f 1278 1230 1229 +f 1279 1230 1278 +f 1279 1231 1230 +f 1280 1231 1279 +f 1280 1232 1231 +f 1281 1232 1280 +f 1281 1233 1232 +f 1282 1233 1281 +f 1282 1234 1233 +f 1283 1234 1282 +f 1283 1235 1234 +f 1284 1235 1283 +f 1284 1236 1235 +f 1285 1236 1284 +f 1285 1237 1236 +f 1286 1237 1285 +f 1286 1238 1237 +f 1287 1238 1286 +f 1287 1239 1238 +f 1288 1239 1287 +f 1288 1240 1239 +f 1289 1240 1288 +f 1289 1241 1240 +f 1290 1241 1289 +f 1290 1242 1241 +f 1291 1242 1290 +f 1291 1243 1242 +f 1292 1243 1291 +f 1292 1244 1243 +f 1293 1244 1292 +f 1293 1245 1244 +f 1294 1245 1293 +f 1294 1246 1245 +f 1295 1246 1294 +f 1295 1247 1246 +f 1296 1247 1295 +f 1296 1248 1247 +f 1250 1248 1296 +f 1250 1202 1248 +f 1297 1250 1298 +f 1297 1249 1250 +f 1299 1249 1297 +f 1299 1251 1249 +f 1300 1251 1299 +f 1300 1252 1251 +f 1301 1252 1300 +f 1301 1253 1252 +f 1302 1253 1301 +f 1302 1254 1253 +f 1303 1254 1302 +f 1303 1255 1254 +f 1304 1255 1303 +f 1304 1256 1255 +f 1305 1256 1304 +f 1305 1257 1256 +f 1306 1257 1305 +f 1306 1258 1257 +f 1307 1258 1306 +f 1307 1259 1258 +f 1308 1259 1307 +f 1308 1260 1259 +f 1309 1260 1308 +f 1309 1261 1260 +f 1310 1261 1309 +f 1310 1262 1261 +f 1311 1262 1310 +f 1311 1263 1262 +f 1312 1263 1311 +f 1312 1264 1263 +f 1313 1264 1312 +f 1313 1265 1264 +f 1314 1265 1313 +f 1314 1266 1265 +f 1315 1266 1314 +f 1315 1267 1266 +f 1316 1267 1315 +f 1316 1268 1267 +f 1317 1268 1316 +f 1317 1269 1268 +f 1318 1269 1317 +f 1318 1270 1269 +f 1319 1270 1318 +f 1319 1271 1270 +f 1320 1271 1319 +f 1320 1272 1271 +f 1321 1272 1320 +f 1321 1273 1272 +f 1322 1273 1321 +f 1322 1274 1273 +f 1323 1274 1322 +f 1323 1275 1274 +f 1324 1275 1323 +f 1324 1276 1275 +f 1325 1276 1324 +f 1325 1277 1276 +f 1326 1277 1325 +f 1326 1278 1277 +f 1327 1278 1326 +f 1327 1279 1278 +f 1328 1279 1327 +f 1328 1280 1279 +f 1329 1280 1328 +f 1329 1281 1280 +f 1330 1281 1329 +f 1330 1282 1281 +f 1331 1282 1330 +f 1331 1283 1282 +f 1332 1283 1331 +f 1332 1284 1283 +f 1333 1284 1332 +f 1333 1285 1284 +f 1334 1285 1333 +f 1334 1286 1285 +f 1335 1286 1334 +f 1335 1287 1286 +f 1336 1287 1335 +f 1336 1288 1287 +f 1337 1288 1336 +f 1337 1289 1288 +f 1338 1289 1337 +f 1338 1290 1289 +f 1339 1290 1338 +f 1339 1291 1290 +f 1340 1291 1339 +f 1340 1292 1291 +f 1341 1292 1340 +f 1341 1293 1292 +f 1342 1293 1341 +f 1342 1294 1293 +f 1343 1294 1342 +f 1343 1295 1294 +f 1344 1295 1343 +f 1344 1296 1295 +f 1298 1296 1344 +f 1298 1250 1296 +f 1345 1298 1346 +f 1345 1297 1298 +f 1347 1297 1345 +f 1347 1299 1297 +f 1348 1299 1347 +f 1348 1300 1299 +f 1349 1300 1348 +f 1349 1301 1300 +f 1350 1301 1349 +f 1350 1302 1301 +f 1351 1302 1350 +f 1351 1303 1302 +f 1352 1303 1351 +f 1352 1304 1303 +f 1353 1304 1352 +f 1353 1305 1304 +f 1354 1305 1353 +f 1354 1306 1305 +f 1355 1306 1354 +f 1355 1307 1306 +f 1356 1307 1355 +f 1356 1308 1307 +f 1357 1308 1356 +f 1357 1309 1308 +f 1358 1309 1357 +f 1358 1310 1309 +f 1359 1310 1358 +f 1359 1311 1310 +f 1360 1311 1359 +f 1360 1312 1311 +f 1361 1312 1360 +f 1361 1313 1312 +f 1362 1313 1361 +f 1362 1314 1313 +f 1363 1314 1362 +f 1363 1315 1314 +f 1364 1315 1363 +f 1364 1316 1315 +f 1365 1316 1364 +f 1365 1317 1316 +f 1366 1317 1365 +f 1366 1318 1317 +f 1367 1318 1366 +f 1367 1319 1318 +f 1368 1319 1367 +f 1368 1320 1319 +f 1369 1320 1368 +f 1369 1321 1320 +f 1370 1321 1369 +f 1370 1322 1321 +f 1371 1322 1370 +f 1371 1323 1322 +f 1372 1323 1371 +f 1372 1324 1323 +f 1373 1324 1372 +f 1373 1325 1324 +f 1374 1325 1373 +f 1374 1326 1325 +f 1375 1326 1374 +f 1375 1327 1326 +f 1376 1327 1375 +f 1376 1328 1327 +f 1377 1328 1376 +f 1377 1329 1328 +f 1378 1329 1377 +f 1378 1330 1329 +f 1379 1330 1378 +f 1379 1331 1330 +f 1380 1331 1379 +f 1380 1332 1331 +f 1381 1332 1380 +f 1381 1333 1332 +f 1382 1333 1381 +f 1382 1334 1333 +f 1383 1334 1382 +f 1383 1335 1334 +f 1384 1335 1383 +f 1384 1336 1335 +f 1385 1336 1384 +f 1385 1337 1336 +f 1386 1337 1385 +f 1386 1338 1337 +f 1387 1338 1386 +f 1387 1339 1338 +f 1388 1339 1387 +f 1388 1340 1339 +f 1389 1340 1388 +f 1389 1341 1340 +f 1390 1341 1389 +f 1390 1342 1341 +f 1391 1342 1390 +f 1391 1343 1342 +f 1392 1343 1391 +f 1392 1344 1343 +f 1346 1344 1392 +f 1346 1298 1344 +f 1393 1346 1394 +f 1393 1345 1346 +f 1395 1345 1393 +f 1395 1347 1345 +f 1396 1347 1395 +f 1396 1348 1347 +f 1397 1348 1396 +f 1397 1349 1348 +f 1398 1349 1397 +f 1398 1350 1349 +f 1399 1350 1398 +f 1399 1351 1350 +f 1400 1351 1399 +f 1400 1352 1351 +f 1401 1352 1400 +f 1401 1353 1352 +f 1402 1353 1401 +f 1402 1354 1353 +f 1403 1354 1402 +f 1403 1355 1354 +f 1404 1355 1403 +f 1404 1356 1355 +f 1404 1357 1356 +f 1405 1357 1404 +f 1406 1357 1405 +f 1406 1358 1357 +f 1407 1358 1406 +f 1407 1359 1358 +f 1408 1359 1407 +f 1408 1360 1359 +f 1409 1360 1408 +f 1409 1361 1360 +f 1410 1361 1409 +f 1410 1362 1361 +f 1411 1362 1410 +f 1411 1363 1362 +f 1412 1363 1411 +f 1412 1364 1363 +f 1413 1364 1412 +f 1413 1365 1364 +f 1414 1365 1413 +f 1414 1366 1365 +f 1415 1366 1414 +f 1415 1367 1366 +f 1416 1367 1415 +f 1416 1368 1367 +f 1417 1368 1416 +f 1417 1369 1368 +f 1418 1369 1417 +f 1418 1370 1369 +f 1419 1370 1418 +f 1419 1371 1370 +f 1420 1371 1419 +f 1420 1372 1371 +f 1421 1372 1420 +f 1421 1373 1372 +f 1422 1373 1421 +f 1422 1374 1373 +f 1423 1374 1422 +f 1423 1375 1374 +f 1424 1375 1423 +f 1424 1376 1375 +f 1425 1376 1424 +f 1425 1377 1376 +f 1426 1377 1425 +f 1426 1378 1377 +f 1427 1378 1426 +f 1427 1379 1378 +f 1428 1379 1427 +f 1428 1380 1379 +f 1429 1380 1428 +f 1429 1381 1380 +f 1430 1381 1429 +f 1430 1382 1381 +f 1431 1382 1430 +f 1431 1383 1382 +f 1432 1383 1431 +f 1432 1384 1383 +f 1433 1384 1432 +f 1433 1385 1384 +f 1434 1385 1433 +f 1434 1386 1385 +f 1435 1386 1434 +f 1435 1387 1386 +f 1436 1387 1435 +f 1436 1388 1387 +f 1437 1388 1436 +f 1437 1389 1388 +f 1438 1389 1437 +f 1438 1390 1389 +f 1439 1390 1438 +f 1439 1391 1390 +f 1440 1391 1439 +f 1440 1392 1391 +f 1394 1392 1440 +f 1394 1346 1392 +f 1441 1442 42 +f 1443 1442 1441 +f 1444 1442 1443 +f 1444 1445 1442 +f 1446 1445 1444 +f 1446 1447 1445 +f 1448 1447 1446 +f 1448 1449 1447 +f 1450 1449 1448 +f 1450 1451 1449 +f 1452 1451 1450 +f 1452 1453 1451 +f 1454 1453 1452 +f 1454 1455 1453 +f 1456 1455 1454 +f 1456 1457 1455 +f 1458 1457 1456 +f 1458 1459 1457 +f 1460 1459 1458 +f 1460 1461 1459 +f 1462 1461 1460 +f 1462 1463 1461 +f 1464 1463 1462 +f 1464 1465 1463 +f 1466 1465 1464 +f 1466 1467 1465 +f 1468 1467 1466 +f 1468 1469 1467 +f 1470 1469 1468 +f 1470 1471 1469 +f 1472 1471 1470 +f 1472 1473 1471 +f 1474 1473 1472 +f 1474 1475 1473 +f 1476 1475 1474 +f 1476 1477 1475 +f 1478 1477 1476 +f 1478 1479 1477 +f 1480 1479 1478 +f 1480 1481 1479 +f 1482 1481 1480 +f 1482 1483 1481 +f 1484 1483 1482 +f 1484 1485 1483 +f 1486 1485 1484 +f 1486 1487 1485 +f 1488 1487 1486 +f 1488 1489 1487 +f 1490 1489 1488 +f 1490 1491 1489 +f 1492 1491 1490 +f 1492 1493 1491 +f 1494 1493 1492 +f 1494 1495 1493 +f 1496 1495 1494 +f 1496 1497 1495 +f 1498 1497 1496 +f 1498 1499 1497 +f 1500 1499 1498 +f 1500 1501 1499 +f 1502 1501 1500 +f 1502 1503 1501 +f 1504 1503 1502 +f 1504 1505 1503 +f 1506 1505 1504 +f 1506 1507 1505 +f 1508 1507 1506 +f 1508 1509 1507 +f 1510 1509 1508 +f 1510 1511 1509 +f 1512 1511 1510 +f 1512 1513 1511 +f 1514 1513 1512 +f 1514 1515 1513 +f 1516 1515 1514 +f 1516 1517 1515 +f 1518 1517 1516 +f 1518 1519 1517 +f 1518 1520 1519 +f 1521 1520 1518 +f 1522 1520 1521 +f 1522 1523 1520 +f 1524 1523 1522 +f 1524 1525 1523 +f 1526 1525 1524 +f 1526 1527 1525 +f 1528 1527 1526 +f 1528 1529 1527 +f 1530 1529 1528 +f 1530 1531 1529 +f 1532 1531 1530 +f 1532 1533 1531 +f 1534 1533 1532 +f 1534 1535 1533 +f 1534 42 1535 +f 1441 42 1534 +f 1536 1441 1537 +f 1536 1443 1441 +f 1538 1443 1536 +f 1538 1444 1443 +f 1539 1444 1538 +f 1539 1446 1444 +f 1540 1446 1539 +f 1540 1448 1446 +f 1541 1448 1540 +f 1541 1450 1448 +f 1542 1450 1541 +f 1542 1452 1450 +f 1543 1452 1542 +f 1543 1454 1452 +f 1544 1454 1543 +f 1544 1456 1454 +f 1545 1456 1544 +f 1545 1458 1456 +f 1546 1458 1545 +f 1546 1460 1458 +f 1547 1460 1546 +f 1547 1462 1460 +f 1548 1462 1547 +f 1548 1464 1462 +f 1549 1464 1548 +f 1549 1466 1464 +f 1550 1466 1549 +f 1550 1468 1466 +f 1551 1468 1550 +f 1551 1470 1468 +f 1552 1470 1551 +f 1552 1472 1470 +f 1553 1472 1552 +f 1553 1474 1472 +f 1554 1474 1553 +f 1554 1476 1474 +f 1555 1476 1554 +f 1555 1478 1476 +f 1556 1478 1555 +f 1556 1480 1478 +f 1557 1480 1556 +f 1557 1482 1480 +f 1558 1482 1557 +f 1558 1484 1482 +f 1559 1484 1558 +f 1559 1486 1484 +f 1560 1486 1559 +f 1560 1488 1486 +f 1561 1488 1560 +f 1561 1490 1488 +f 1562 1490 1561 +f 1562 1492 1490 +f 1563 1492 1562 +f 1563 1494 1492 +f 1564 1494 1563 +f 1564 1496 1494 +f 1565 1496 1564 +f 1565 1498 1496 +f 1566 1498 1565 +f 1566 1500 1498 +f 1567 1500 1566 +f 1567 1502 1500 +f 1568 1502 1567 +f 1568 1504 1502 +f 1569 1504 1568 +f 1569 1506 1504 +f 1570 1506 1569 +f 1570 1508 1506 +f 1571 1508 1570 +f 1571 1510 1508 +f 1572 1510 1571 +f 1572 1512 1510 +f 1573 1512 1572 +f 1573 1514 1512 +f 1574 1514 1573 +f 1574 1516 1514 +f 1575 1516 1574 +f 1575 1518 1516 +f 1576 1518 1575 +f 1576 1521 1518 +f 1577 1521 1576 +f 1577 1522 1521 +f 1578 1522 1577 +f 1578 1524 1522 +f 1579 1524 1578 +f 1579 1526 1524 +f 1580 1526 1579 +f 1580 1528 1526 +f 1581 1528 1580 +f 1581 1530 1528 +f 1582 1530 1581 +f 1582 1532 1530 +f 1583 1532 1582 +f 1583 1534 1532 +f 1537 1534 1583 +f 1537 1441 1534 +f 1584 1537 1585 +f 1584 1536 1537 +f 1586 1536 1584 +f 1586 1538 1536 +f 1587 1538 1586 +f 1587 1539 1538 +f 1588 1539 1587 +f 1588 1540 1539 +f 1589 1540 1588 +f 1589 1541 1540 +f 1590 1541 1589 +f 1590 1542 1541 +f 1591 1542 1590 +f 1591 1543 1542 +f 1592 1543 1591 +f 1592 1544 1543 +f 1593 1544 1592 +f 1593 1545 1544 +f 1594 1545 1593 +f 1594 1546 1545 +f 1595 1546 1594 +f 1595 1547 1546 +f 1596 1547 1595 +f 1596 1548 1547 +f 1597 1548 1596 +f 1597 1549 1548 +f 1598 1549 1597 +f 1598 1550 1549 +f 1599 1550 1598 +f 1599 1551 1550 +f 1600 1551 1599 +f 1600 1552 1551 +f 1601 1552 1600 +f 1601 1553 1552 +f 1602 1553 1601 +f 1602 1554 1553 +f 1603 1554 1602 +f 1603 1555 1554 +f 1604 1555 1603 +f 1604 1556 1555 +f 1605 1556 1604 +f 1605 1557 1556 +f 1606 1557 1605 +f 1606 1558 1557 +f 1607 1558 1606 +f 1607 1559 1558 +f 1608 1559 1607 +f 1608 1560 1559 +f 1609 1560 1608 +f 1609 1561 1560 +f 1610 1561 1609 +f 1610 1562 1561 +f 1611 1562 1610 +f 1611 1563 1562 +f 1612 1563 1611 +f 1612 1564 1563 +f 1613 1564 1612 +f 1613 1565 1564 +f 1614 1565 1613 +f 1614 1566 1565 +f 1615 1566 1614 +f 1615 1567 1566 +f 1616 1567 1615 +f 1616 1568 1567 +f 1617 1568 1616 +f 1617 1569 1568 +f 1618 1569 1617 +f 1618 1570 1569 +f 1619 1570 1618 +f 1619 1571 1570 +f 1620 1571 1619 +f 1620 1572 1571 +f 1621 1572 1620 +f 1621 1573 1572 +f 1622 1573 1621 +f 1622 1574 1573 +f 1623 1574 1622 +f 1623 1575 1574 +f 1624 1575 1623 +f 1624 1576 1575 +f 1625 1576 1624 +f 1625 1577 1576 +f 1626 1577 1625 +f 1626 1578 1577 +f 1627 1578 1626 +f 1627 1579 1578 +f 1628 1579 1627 +f 1628 1580 1579 +f 1629 1580 1628 +f 1629 1581 1580 +f 1630 1581 1629 +f 1630 1582 1581 +f 1631 1582 1630 +f 1631 1583 1582 +f 1585 1583 1631 +f 1585 1537 1583 +f 1632 1585 1633 +f 1632 1584 1585 +f 1634 1584 1632 +f 1634 1586 1584 +f 1635 1586 1634 +f 1635 1587 1586 +f 1636 1587 1635 +f 1636 1588 1587 +f 1637 1588 1636 +f 1637 1589 1588 +f 1638 1589 1637 +f 1638 1590 1589 +f 1639 1590 1638 +f 1639 1591 1590 +f 1640 1591 1639 +f 1640 1592 1591 +f 1641 1592 1640 +f 1641 1593 1592 +f 1642 1593 1641 +f 1642 1594 1593 +f 1643 1594 1642 +f 1643 1595 1594 +f 1644 1595 1643 +f 1644 1596 1595 +f 1645 1596 1644 +f 1645 1597 1596 +f 1646 1597 1645 +f 1646 1598 1597 +f 1647 1598 1646 +f 1647 1599 1598 +f 1648 1599 1647 +f 1648 1600 1599 +f 1649 1600 1648 +f 1649 1601 1600 +f 1650 1601 1649 +f 1650 1602 1601 +f 1651 1602 1650 +f 1651 1603 1602 +f 1652 1603 1651 +f 1652 1604 1603 +f 1653 1604 1652 +f 1653 1605 1604 +f 1654 1605 1653 +f 1654 1606 1605 +f 1655 1606 1654 +f 1655 1607 1606 +f 1656 1607 1655 +f 1656 1608 1607 +f 1657 1608 1656 +f 1657 1609 1608 +f 1658 1609 1657 +f 1658 1610 1609 +f 1659 1610 1658 +f 1659 1611 1610 +f 1660 1611 1659 +f 1660 1612 1611 +f 1661 1612 1660 +f 1661 1613 1612 +f 1662 1613 1661 +f 1662 1614 1613 +f 1663 1614 1662 +f 1663 1615 1614 +f 1664 1615 1663 +f 1664 1616 1615 +f 1665 1616 1664 +f 1665 1617 1616 +f 1666 1617 1665 +f 1666 1618 1617 +f 1667 1618 1666 +f 1667 1619 1618 +f 1668 1619 1667 +f 1668 1620 1619 +f 1669 1620 1668 +f 1669 1621 1620 +f 1670 1621 1669 +f 1670 1622 1621 +f 1671 1622 1670 +f 1671 1623 1622 +f 1672 1623 1671 +f 1672 1624 1623 +f 1673 1624 1672 +f 1673 1625 1624 +f 1674 1625 1673 +f 1674 1626 1625 +f 1675 1626 1674 +f 1675 1627 1626 +f 1676 1627 1675 +f 1676 1628 1627 +f 1677 1628 1676 +f 1677 1629 1628 +f 1678 1629 1677 +f 1678 1630 1629 +f 1679 1630 1678 +f 1679 1631 1630 +f 1633 1631 1679 +f 1633 1585 1631 +f 1680 1633 1681 +f 1680 1632 1633 +f 1682 1632 1680 +f 1682 1634 1632 +f 1683 1634 1682 +f 1683 1635 1634 +f 1684 1635 1683 +f 1684 1636 1635 +f 1685 1636 1684 +f 1685 1637 1636 +f 1686 1637 1685 +f 1686 1638 1637 +f 1687 1638 1686 +f 1687 1639 1638 +f 1688 1639 1687 +f 1688 1640 1639 +f 1689 1640 1688 +f 1689 1641 1640 +f 1690 1641 1689 +f 1690 1642 1641 +f 1691 1642 1690 +f 1691 1643 1642 +f 1692 1643 1691 +f 1692 1644 1643 +f 1693 1644 1692 +f 1693 1645 1644 +f 1694 1645 1693 +f 1694 1646 1645 +f 1695 1646 1694 +f 1695 1647 1646 +f 1696 1647 1695 +f 1696 1648 1647 +f 1697 1648 1696 +f 1697 1649 1648 +f 1698 1649 1697 +f 1698 1650 1649 +f 1699 1650 1698 +f 1699 1651 1650 +f 1700 1651 1699 +f 1700 1652 1651 +f 1701 1652 1700 +f 1701 1653 1652 +f 1702 1653 1701 +f 1702 1654 1653 +f 1703 1654 1702 +f 1703 1655 1654 +f 1704 1655 1703 +f 1704 1656 1655 +f 1705 1656 1704 +f 1705 1657 1656 +f 1706 1657 1705 +f 1706 1658 1657 +f 1707 1658 1706 +f 1707 1659 1658 +f 1708 1659 1707 +f 1708 1660 1659 +f 1709 1660 1708 +f 1709 1661 1660 +f 1710 1661 1709 +f 1710 1662 1661 +f 1711 1662 1710 +f 1711 1663 1662 +f 1712 1663 1711 +f 1712 1664 1663 +f 1713 1664 1712 +f 1713 1665 1664 +f 1714 1665 1713 +f 1714 1666 1665 +f 1715 1666 1714 +f 1715 1667 1666 +f 1716 1667 1715 +f 1716 1668 1667 +f 1717 1668 1716 +f 1717 1669 1668 +f 1718 1669 1717 +f 1718 1670 1669 +f 1719 1670 1718 +f 1719 1671 1670 +f 1720 1671 1719 +f 1720 1672 1671 +f 1721 1672 1720 +f 1721 1673 1672 +f 1722 1673 1721 +f 1722 1674 1673 +f 1723 1674 1722 +f 1723 1675 1674 +f 1724 1675 1723 +f 1724 1676 1675 +f 1725 1676 1724 +f 1725 1677 1676 +f 1726 1677 1725 +f 1726 1678 1677 +f 1727 1678 1726 +f 1727 1679 1678 +f 1681 1679 1727 +f 1681 1633 1679 +f 1728 1681 1729 +f 1728 1680 1681 +f 1730 1680 1728 +f 1730 1682 1680 +f 1731 1682 1730 +f 1731 1683 1682 +f 1732 1683 1731 +f 1732 1684 1683 +f 1733 1684 1732 +f 1733 1685 1684 +f 1734 1685 1733 +f 1734 1686 1685 +f 1735 1686 1734 +f 1735 1687 1686 +f 1736 1687 1735 +f 1736 1688 1687 +f 1737 1688 1736 +f 1737 1689 1688 +f 1738 1689 1737 +f 1738 1690 1689 +f 1739 1690 1738 +f 1739 1691 1690 +f 1740 1691 1739 +f 1740 1692 1691 +f 1741 1692 1740 +f 1741 1693 1692 +f 1742 1693 1741 +f 1742 1694 1693 +f 1743 1694 1742 +f 1743 1695 1694 +f 1744 1695 1743 +f 1744 1696 1695 +f 1745 1696 1744 +f 1745 1697 1696 +f 1746 1697 1745 +f 1746 1698 1697 +f 1747 1698 1746 +f 1747 1699 1698 +f 1748 1699 1747 +f 1748 1700 1699 +f 1749 1700 1748 +f 1749 1701 1700 +f 1750 1701 1749 +f 1750 1702 1701 +f 1751 1702 1750 +f 1751 1703 1702 +f 1752 1703 1751 +f 1752 1704 1703 +f 1753 1704 1752 +f 1753 1705 1704 +f 1754 1705 1753 +f 1754 1706 1705 +f 1755 1706 1754 +f 1755 1707 1706 +f 1756 1707 1755 +f 1756 1708 1707 +f 1757 1708 1756 +f 1757 1709 1708 +f 1758 1709 1757 +f 1758 1710 1709 +f 1759 1710 1758 +f 1759 1711 1710 +f 1760 1711 1759 +f 1760 1712 1711 +f 1761 1712 1760 +f 1761 1713 1712 +f 1762 1713 1761 +f 1762 1714 1713 +f 1763 1714 1762 +f 1763 1715 1714 +f 1764 1715 1763 +f 1764 1716 1715 +f 1765 1716 1764 +f 1765 1717 1716 +f 1766 1717 1765 +f 1766 1718 1717 +f 1767 1718 1766 +f 1767 1719 1718 +f 1768 1719 1767 +f 1768 1720 1719 +f 1769 1720 1768 +f 1769 1721 1720 +f 1770 1721 1769 +f 1770 1722 1721 +f 1771 1722 1770 +f 1771 1723 1722 +f 1772 1723 1771 +f 1772 1724 1723 +f 1773 1724 1772 +f 1773 1725 1724 +f 1774 1725 1773 +f 1774 1726 1725 +f 1775 1726 1774 +f 1775 1727 1726 +f 1729 1727 1775 +f 1729 1681 1727 +f 1776 1777 165 +f 1778 1777 1776 +f 1779 1777 1778 +f 1779 1780 1777 +f 1781 1780 1779 +f 1781 1782 1780 +f 1783 1782 1781 +f 1783 1784 1782 +f 1785 1784 1783 +f 1785 1786 1784 +f 1787 1786 1785 +f 1787 1788 1786 +f 1789 1788 1787 +f 1789 1790 1788 +f 1791 1790 1789 +f 1791 1792 1790 +f 1793 1792 1791 +f 1793 1794 1792 +f 1795 1794 1793 +f 1795 1796 1794 +f 1795 1797 1796 +f 1798 1797 1795 +f 1799 1797 1798 +f 1799 1800 1797 +f 1801 1800 1799 +f 1801 1802 1800 +f 1801 1803 1802 +f 1804 1803 1801 +f 1805 1803 1804 +f 1805 1806 1803 +f 1807 1806 1805 +f 1807 1808 1806 +f 1809 1808 1807 +f 1809 1810 1808 +f 1811 1810 1809 +f 1811 1812 1810 +f 1813 1812 1811 +f 1813 1814 1812 +f 1815 1814 1813 +f 1815 1816 1814 +f 1817 1816 1815 +f 1817 1818 1816 +f 1819 1818 1817 +f 1819 1820 1818 +f 1821 1820 1819 +f 1821 1822 1820 +f 1823 1822 1821 +f 1823 181 1822 +f 1824 181 1823 +f 1824 1825 181 +f 1826 1825 1824 +f 1826 1827 1825 +f 1828 1827 1826 +f 1828 1829 1827 +f 1830 1829 1828 +f 1830 1831 1829 +f 1832 1831 1830 +f 1832 1833 1831 +f 1834 1833 1832 +f 1834 1835 1833 +f 1836 1835 1834 +f 1836 1837 1835 +f 1838 1837 1836 +f 1838 1839 1837 +f 1840 1839 1838 +f 1840 1841 1839 +f 1842 1841 1840 +f 1842 1843 1841 +f 1844 1843 1842 +f 1844 1845 1843 +f 1846 1845 1844 +f 1846 1847 1845 +f 1846 1848 1847 +f 1849 1848 1846 +f 1850 1848 1849 +f 1850 1851 1848 +f 1852 1851 1850 +f 1852 1853 1851 +f 1854 1853 1852 +f 1854 1855 1853 +f 1854 1856 1855 +f 1857 1856 1854 +f 1858 1856 1857 +f 1858 1859 1856 +f 1860 1859 1858 +f 1860 1861 1859 +f 1862 1861 1860 +f 1862 1863 1861 +f 1862 1864 1863 +f 1865 1864 1862 +f 1866 1864 1865 +f 1866 1867 1864 +f 1868 1867 1866 +f 1868 1869 1867 +f 1868 165 1869 +f 1776 165 1868 +f 1870 1776 1871 +f 1870 1778 1776 +f 1872 1778 1870 +f 1872 1779 1778 +f 1873 1779 1872 +f 1873 1781 1779 +f 1874 1781 1873 +f 1874 1783 1781 +f 1875 1783 1874 +f 1875 1785 1783 +f 1876 1785 1875 +f 1876 1787 1785 +f 1877 1787 1876 +f 1877 1789 1787 +f 1878 1789 1877 +f 1878 1791 1789 +f 1879 1791 1878 +f 1879 1793 1791 +f 1880 1793 1879 +f 1880 1795 1793 +f 1881 1795 1880 +f 1881 1798 1795 +f 1882 1798 1881 +f 1882 1799 1798 +f 1883 1799 1882 +f 1883 1801 1799 +f 1884 1801 1883 +f 1884 1804 1801 +f 1885 1804 1884 +f 1885 1805 1804 +f 1886 1805 1885 +f 1886 1807 1805 +f 1887 1807 1886 +f 1887 1809 1807 +f 1888 1809 1887 +f 1888 1811 1809 +f 1889 1811 1888 +f 1889 1813 1811 +f 1890 1813 1889 +f 1890 1815 1813 +f 1891 1815 1890 +f 1891 1817 1815 +f 1892 1817 1891 +f 1892 1819 1817 +f 1893 1819 1892 +f 1893 1821 1819 +f 1894 1821 1893 +f 1894 1823 1821 +f 1895 1823 1894 +f 1895 1824 1823 +f 1896 1824 1895 +f 1896 1826 1824 +f 1897 1826 1896 +f 1897 1828 1826 +f 1898 1828 1897 +f 1898 1830 1828 +f 1899 1830 1898 +f 1899 1832 1830 +f 1900 1832 1899 +f 1900 1834 1832 +f 1901 1834 1900 +f 1901 1836 1834 +f 1902 1836 1901 +f 1902 1838 1836 +f 1903 1838 1902 +f 1903 1840 1838 +f 1904 1840 1903 +f 1904 1842 1840 +f 1905 1842 1904 +f 1905 1844 1842 +f 1906 1844 1905 +f 1906 1846 1844 +f 1907 1846 1906 +f 1907 1849 1846 +f 1908 1849 1907 +f 1908 1850 1849 +f 1909 1850 1908 +f 1909 1852 1850 +f 1910 1852 1909 +f 1910 1854 1852 +f 1911 1854 1910 +f 1911 1857 1854 +f 1912 1857 1911 +f 1912 1858 1857 +f 1913 1858 1912 +f 1913 1860 1858 +f 1914 1860 1913 +f 1914 1862 1860 +f 1915 1862 1914 +f 1915 1865 1862 +f 1916 1865 1915 +f 1916 1866 1865 +f 1917 1866 1916 +f 1917 1868 1866 +f 1871 1868 1917 +f 1871 1776 1868 +f 1918 1871 1919 +f 1918 1870 1871 +f 1920 1870 1918 +f 1920 1872 1870 +f 1921 1872 1920 +f 1921 1873 1872 +f 1922 1873 1921 +f 1922 1874 1873 +f 1923 1874 1922 +f 1923 1875 1874 +f 1924 1875 1923 +f 1924 1876 1875 +f 1925 1876 1924 +f 1925 1877 1876 +f 1926 1877 1925 +f 1926 1878 1877 +f 1927 1878 1926 +f 1927 1879 1878 +f 1928 1879 1927 +f 1928 1880 1879 +f 1929 1880 1928 +f 1929 1881 1880 +f 1930 1881 1929 +f 1930 1882 1881 +f 1931 1882 1930 +f 1931 1883 1882 +f 1932 1883 1931 +f 1932 1884 1883 +f 1933 1884 1932 +f 1933 1885 1884 +f 1934 1885 1933 +f 1934 1886 1885 +f 1935 1886 1934 +f 1935 1887 1886 +f 1936 1887 1935 +f 1936 1888 1887 +f 1937 1888 1936 +f 1937 1889 1888 +f 1938 1889 1937 +f 1938 1890 1889 +f 1939 1890 1938 +f 1939 1891 1890 +f 1940 1891 1939 +f 1940 1892 1891 +f 1941 1892 1940 +f 1941 1893 1892 +f 1942 1893 1941 +f 1942 1894 1893 +f 1943 1894 1942 +f 1943 1895 1894 +f 1944 1895 1943 +f 1944 1896 1895 +f 1945 1896 1944 +f 1945 1897 1896 +f 1946 1897 1945 +f 1946 1898 1897 +f 1947 1898 1946 +f 1947 1899 1898 +f 1948 1899 1947 +f 1948 1900 1899 +f 1949 1900 1948 +f 1949 1901 1900 +f 1950 1901 1949 +f 1950 1902 1901 +f 1951 1902 1950 +f 1951 1903 1902 +f 1952 1903 1951 +f 1952 1904 1903 +f 1953 1904 1952 +f 1953 1905 1904 +f 1954 1905 1953 +f 1954 1906 1905 +f 1955 1906 1954 +f 1955 1907 1906 +f 1956 1907 1955 +f 1956 1908 1907 +f 1957 1908 1956 +f 1957 1909 1908 +f 1958 1909 1957 +f 1958 1910 1909 +f 1959 1910 1958 +f 1959 1911 1910 +f 1960 1911 1959 +f 1960 1912 1911 +f 1961 1912 1960 +f 1961 1913 1912 +f 1962 1913 1961 +f 1962 1914 1913 +f 1963 1914 1962 +f 1963 1915 1914 +f 1964 1915 1963 +f 1964 1916 1915 +f 1965 1916 1964 +f 1965 1917 1916 +f 1919 1917 1965 +f 1919 1871 1917 +f 1966 1919 1967 +f 1966 1918 1919 +f 1968 1918 1966 +f 1968 1920 1918 +f 1969 1920 1968 +f 1969 1921 1920 +f 1970 1921 1969 +f 1970 1922 1921 +f 1971 1922 1970 +f 1971 1923 1922 +f 1972 1923 1971 +f 1972 1924 1923 +f 1973 1924 1972 +f 1973 1925 1924 +f 1974 1925 1973 +f 1974 1926 1925 +f 1975 1926 1974 +f 1975 1927 1926 +f 1976 1927 1975 +f 1976 1928 1927 +f 1977 1928 1976 +f 1977 1929 1928 +f 1978 1929 1977 +f 1978 1930 1929 +f 1979 1930 1978 +f 1979 1931 1930 +f 1980 1931 1979 +f 1980 1932 1931 +f 1981 1932 1980 +f 1981 1933 1932 +f 1982 1933 1981 +f 1982 1934 1933 +f 1983 1934 1982 +f 1983 1935 1934 +f 1984 1935 1983 +f 1984 1936 1935 +f 1985 1936 1984 +f 1985 1937 1936 +f 1986 1937 1985 +f 1986 1938 1937 +f 1987 1938 1986 +f 1987 1939 1938 +f 1988 1939 1987 +f 1988 1940 1939 +f 1989 1940 1988 +f 1989 1941 1940 +f 1990 1941 1989 +f 1990 1942 1941 +f 1991 1942 1990 +f 1991 1943 1942 +f 1992 1943 1991 +f 1992 1944 1943 +f 1993 1944 1992 +f 1993 1945 1944 +f 1994 1945 1993 +f 1994 1946 1945 +f 1995 1946 1994 +f 1995 1947 1946 +f 1996 1947 1995 +f 1996 1948 1947 +f 1997 1948 1996 +f 1997 1949 1948 +f 1998 1949 1997 +f 1998 1950 1949 +f 1999 1950 1998 +f 1999 1951 1950 +f 2000 1951 1999 +f 2000 1952 1951 +f 2001 1952 2000 +f 2001 1953 1952 +f 2002 1953 2001 +f 2002 1954 1953 +f 2003 1954 2002 +f 2003 1955 1954 +f 2004 1955 2003 +f 2004 1956 1955 +f 2005 1956 2004 +f 2005 1957 1956 +f 2006 1957 2005 +f 2006 1958 1957 +f 2007 1958 2006 +f 2007 1959 1958 +f 2008 1959 2007 +f 2008 1960 1959 +f 2009 1960 2008 +f 2009 1961 1960 +f 2010 1961 2009 +f 2010 1962 1961 +f 2011 1962 2010 +f 2011 1963 1962 +f 2012 1963 2011 +f 2012 1964 1963 +f 2013 1964 2012 +f 2013 1965 1964 +f 1967 1965 2013 +f 1967 1919 1965 +f 2014 1967 2015 +f 2014 1966 1967 +f 2016 1966 2014 +f 2016 1968 1966 +f 2017 1968 2016 +f 2017 1969 1968 +f 2018 1969 2017 +f 2018 1970 1969 +f 2019 1970 2018 +f 2019 1971 1970 +f 2020 1971 2019 +f 2020 1972 1971 +f 2021 1972 2020 +f 2021 1973 1972 +f 2022 1973 2021 +f 2022 1974 1973 +f 2023 1974 2022 +f 2023 1975 1974 +f 2024 1975 2023 +f 2024 1976 1975 +f 2025 1976 2024 +f 2025 1977 1976 +f 2026 1977 2025 +f 2026 1978 1977 +f 2027 1978 2026 +f 2027 1979 1978 +f 2028 1979 2027 +f 2028 1980 1979 +f 2029 1980 2028 +f 2029 1981 1980 +f 2030 1981 2029 +f 2030 1982 1981 +f 2031 1982 2030 +f 2031 1983 1982 +f 2032 1983 2031 +f 2032 1984 1983 +f 2033 1984 2032 +f 2033 1985 1984 +f 2034 1985 2033 +f 2034 1986 1985 +f 2035 1986 2034 +f 2035 1987 1986 +f 2036 1987 2035 +f 2036 1988 1987 +f 2037 1988 2036 +f 2037 1989 1988 +f 2038 1989 2037 +f 2038 1990 1989 +f 2039 1990 2038 +f 2039 1991 1990 +f 2040 1991 2039 +f 2040 1992 1991 +f 2041 1992 2040 +f 2041 1993 1992 +f 2042 1993 2041 +f 2042 1994 1993 +f 2043 1994 2042 +f 2043 1995 1994 +f 2044 1995 2043 +f 2044 1996 1995 +f 2045 1996 2044 +f 2045 1997 1996 +f 2046 1997 2045 +f 2046 1998 1997 +f 2047 1998 2046 +f 2047 1999 1998 +f 2048 1999 2047 +f 2048 2000 1999 +f 2049 2000 2048 +f 2049 2001 2000 +f 2050 2001 2049 +f 2050 2002 2001 +f 2051 2002 2050 +f 2051 2003 2002 +f 2052 2003 2051 +f 2052 2004 2003 +f 2053 2004 2052 +f 2053 2005 2004 +f 2054 2005 2053 +f 2054 2006 2005 +f 2055 2006 2054 +f 2055 2007 2006 +f 2056 2007 2055 +f 2056 2008 2007 +f 2057 2008 2056 +f 2057 2009 2008 +f 2058 2009 2057 +f 2058 2010 2009 +f 2059 2010 2058 +f 2059 2011 2010 +f 2060 2011 2059 +f 2060 2012 2011 +f 2061 2012 2060 +f 2061 2013 2012 +f 2015 2013 2061 +f 2015 1967 2013 +f 2062 2015 2063 +f 2062 2014 2015 +f 2064 2014 2062 +f 2064 2016 2014 +f 2065 2016 2064 +f 2065 2017 2016 +f 2066 2017 2065 +f 2066 2018 2017 +f 2067 2018 2066 +f 2067 2019 2018 +f 2068 2019 2067 +f 2068 2020 2019 +f 2069 2020 2068 +f 2069 2021 2020 +f 2070 2021 2069 +f 2070 2022 2021 +f 2071 2022 2070 +f 2071 2023 2022 +f 2072 2023 2071 +f 2072 2024 2023 +f 2073 2024 2072 +f 2073 2025 2024 +f 2074 2025 2073 +f 2074 2026 2025 +f 2075 2026 2074 +f 2075 2027 2026 +f 2076 2027 2075 +f 2076 2028 2027 +f 2077 2028 2076 +f 2077 2029 2028 +f 2078 2029 2077 +f 2078 2030 2029 +f 2079 2030 2078 +f 2079 2031 2030 +f 2080 2031 2079 +f 2080 2032 2031 +f 2081 2032 2080 +f 2081 2033 2032 +f 2082 2033 2081 +f 2082 2034 2033 +f 2083 2034 2082 +f 2083 2035 2034 +f 2084 2035 2083 +f 2084 2036 2035 +f 2085 2036 2084 +f 2085 2037 2036 +f 2086 2037 2085 +f 2086 2038 2037 +f 2087 2038 2086 +f 2087 2039 2038 +f 2088 2039 2087 +f 2088 2040 2039 +f 2089 2040 2088 +f 2089 2041 2040 +f 2090 2041 2089 +f 2090 2042 2041 +f 2091 2042 2090 +f 2091 2043 2042 +f 2092 2043 2091 +f 2092 2044 2043 +f 2093 2044 2092 +f 2093 2045 2044 +f 2094 2045 2093 +f 2094 2046 2045 +f 2095 2046 2094 +f 2095 2047 2046 +f 2096 2047 2095 +f 2096 2048 2047 +f 2097 2048 2096 +f 2097 2049 2048 +f 2098 2049 2097 +f 2098 2050 2049 +f 2099 2050 2098 +f 2099 2051 2050 +f 2100 2051 2099 +f 2100 2052 2051 +f 2101 2052 2100 +f 2101 2053 2052 +f 2102 2053 2101 +f 2102 2054 2053 +f 2103 2054 2102 +f 2103 2055 2054 +f 2104 2055 2103 +f 2104 2056 2055 +f 2105 2056 2104 +f 2105 2057 2056 +f 2106 2057 2105 +f 2106 2058 2057 +f 2107 2058 2106 +f 2107 2059 2058 +f 2108 2059 2107 +f 2108 2060 2059 +f 2109 2060 2108 +f 2109 2061 2060 +f 2063 2061 2109 +f 2063 2015 2061 +f 2110 2111 309 +f 2112 2111 2110 +f 2113 2111 2112 +f 2113 2114 2111 +f 2115 2114 2113 +f 2115 2116 2114 +f 2117 2116 2115 +f 2117 2118 2116 +f 2119 2118 2117 +f 2119 2120 2118 +f 2121 2120 2119 +f 2121 2122 2120 +f 2123 2122 2121 +f 2123 2124 2122 +f 2125 2124 2123 +f 2125 2126 2124 +f 2127 2126 2125 +f 2127 2128 2126 +f 2127 2129 2128 +f 2130 2129 2127 +f 2131 2129 2130 +f 2131 2132 2129 +f 2133 2132 2131 +f 2133 2134 2132 +f 2135 2134 2133 +f 2135 2136 2134 +f 2137 2136 2135 +f 2137 2138 2136 +f 2139 2138 2137 +f 2139 2140 2138 +f 2141 2140 2139 +f 2141 2142 2140 +f 2143 2142 2141 +f 2143 2144 2142 +f 2145 2144 2143 +f 2145 2146 2144 +f 2147 2146 2145 +f 2147 2148 2146 +f 2149 2148 2147 +f 2149 2150 2148 +f 2151 2150 2149 +f 2151 2152 2150 +f 2153 2152 2151 +f 2153 2154 2152 +f 2155 2154 2153 +f 2155 2156 2154 +f 2157 2156 2155 +f 2157 2158 2156 +f 2159 2158 2157 +f 2159 2160 2158 +f 2161 2160 2159 +f 2161 2162 2160 +f 2163 2162 2161 +f 2163 2164 2162 +f 2165 2164 2163 +f 2165 2166 2164 +f 2167 2166 2165 +f 2167 2168 2166 +f 2169 2168 2167 +f 2169 2170 2168 +f 2171 2170 2169 +f 2171 2172 2170 +f 2173 2172 2171 +f 2173 2174 2172 +f 2175 2174 2173 +f 2175 2176 2174 +f 2177 2176 2175 +f 2177 2178 2176 +f 2179 2178 2177 +f 2179 2180 2178 +f 2181 2180 2179 +f 2181 2182 2180 +f 2183 2182 2181 +f 2183 2184 2182 +f 2185 2184 2183 +f 2185 2186 2184 +f 2187 2186 2185 +f 2187 2188 2186 +f 2187 2189 2188 +f 2190 2189 2187 +f 2190 2191 2189 +f 2192 2191 2190 +f 2193 2191 2192 +f 2193 2194 2191 +f 2195 2194 2193 +f 2195 2196 2194 +f 2197 2196 2195 +f 2197 2198 2196 +f 2199 2198 2197 +f 2199 2200 2198 +f 2199 2201 2200 +f 2202 2201 2199 +f 2202 2203 2201 +f 2204 2203 2202 +f 2110 2203 2204 +f 2110 309 2203 +f 2205 2110 2206 +f 2205 2112 2110 +f 2207 2112 2205 +f 2207 2113 2112 +f 2208 2113 2207 +f 2208 2115 2113 +f 2209 2115 2208 +f 2209 2117 2115 +f 2210 2117 2209 +f 2210 2119 2117 +f 2211 2119 2210 +f 2211 2121 2119 +f 2212 2121 2211 +f 2212 2123 2121 +f 2213 2123 2212 +f 2213 2125 2123 +f 2214 2125 2213 +f 2214 2127 2125 +f 2215 2127 2214 +f 2215 2130 2127 +f 2216 2130 2215 +f 2216 2131 2130 +f 2217 2131 2216 +f 2217 2133 2131 +f 2218 2133 2217 +f 2218 2135 2133 +f 2219 2135 2218 +f 2219 2137 2135 +f 2220 2137 2219 +f 2220 2139 2137 +f 2221 2139 2220 +f 2221 2141 2139 +f 2222 2141 2221 +f 2222 2143 2141 +f 2223 2143 2222 +f 2223 2145 2143 +f 2224 2145 2223 +f 2224 2147 2145 +f 2225 2147 2224 +f 2225 2149 2147 +f 2226 2149 2225 +f 2226 2151 2149 +f 2227 2151 2226 +f 2227 2153 2151 +f 2228 2153 2227 +f 2228 2155 2153 +f 2229 2155 2228 +f 2229 2157 2155 +f 2230 2157 2229 +f 2230 2159 2157 +f 2231 2159 2230 +f 2231 2161 2159 +f 2232 2161 2231 +f 2232 2163 2161 +f 2233 2163 2232 +f 2233 2165 2163 +f 2234 2165 2233 +f 2234 2167 2165 +f 2235 2167 2234 +f 2235 2169 2167 +f 2236 2169 2235 +f 2236 2171 2169 +f 2237 2171 2236 +f 2237 2173 2171 +f 2238 2173 2237 +f 2238 2175 2173 +f 2239 2175 2238 +f 2239 2177 2175 +f 2240 2177 2239 +f 2240 2179 2177 +f 2241 2179 2240 +f 2241 2181 2179 +f 2242 2181 2241 +f 2242 2183 2181 +f 2243 2183 2242 +f 2243 2185 2183 +f 2244 2185 2243 +f 2244 2187 2185 +f 2245 2187 2244 +f 2245 2190 2187 +f 2246 2190 2245 +f 2246 2192 2190 +f 2247 2192 2246 +f 2247 2193 2192 +f 2248 2193 2247 +f 2248 2195 2193 +f 2249 2195 2248 +f 2249 2197 2195 +f 2250 2197 2249 +f 2250 2199 2197 +f 2251 2199 2250 +f 2251 2202 2199 +f 2252 2202 2251 +f 2252 2204 2202 +f 2206 2204 2252 +f 2206 2110 2204 +f 2253 2206 2254 +f 2253 2205 2206 +f 2255 2205 2253 +f 2255 2207 2205 +f 2256 2207 2255 +f 2256 2208 2207 +f 2257 2208 2256 +f 2257 2209 2208 +f 2258 2209 2257 +f 2258 2210 2209 +f 2259 2210 2258 +f 2259 2211 2210 +f 2260 2211 2259 +f 2260 2212 2211 +f 2261 2212 2260 +f 2261 2213 2212 +f 2262 2213 2261 +f 2262 2214 2213 +f 2263 2214 2262 +f 2263 2215 2214 +f 2264 2215 2263 +f 2264 2216 2215 +f 2265 2216 2264 +f 2265 2217 2216 +f 2266 2217 2265 +f 2266 2218 2217 +f 2267 2218 2266 +f 2267 2219 2218 +f 2268 2219 2267 +f 2268 2220 2219 +f 2269 2220 2268 +f 2269 2221 2220 +f 2270 2221 2269 +f 2270 2222 2221 +f 2271 2222 2270 +f 2271 2223 2222 +f 2272 2223 2271 +f 2272 2224 2223 +f 2273 2224 2272 +f 2273 2225 2224 +f 2274 2225 2273 +f 2274 2226 2225 +f 2275 2226 2274 +f 2275 2227 2226 +f 2276 2227 2275 +f 2276 2228 2227 +f 2277 2228 2276 +f 2277 2229 2228 +f 2278 2229 2277 +f 2278 2230 2229 +f 2279 2230 2278 +f 2279 2231 2230 +f 2280 2231 2279 +f 2280 2232 2231 +f 2281 2232 2280 +f 2281 2233 2232 +f 2282 2233 2281 +f 2282 2234 2233 +f 2283 2234 2282 +f 2283 2235 2234 +f 2284 2235 2283 +f 2284 2236 2235 +f 2285 2236 2284 +f 2285 2237 2236 +f 2286 2237 2285 +f 2286 2238 2237 +f 2287 2238 2286 +f 2287 2239 2238 +f 2288 2239 2287 +f 2288 2240 2239 +f 2289 2240 2288 +f 2289 2241 2240 +f 2290 2241 2289 +f 2290 2242 2241 +f 2291 2242 2290 +f 2291 2243 2242 +f 2292 2243 2291 +f 2292 2244 2243 +f 2293 2244 2292 +f 2293 2245 2244 +f 2294 2245 2293 +f 2294 2246 2245 +f 2295 2246 2294 +f 2295 2247 2246 +f 2296 2247 2295 +f 2296 2248 2247 +f 2297 2248 2296 +f 2297 2249 2248 +f 2298 2249 2297 +f 2298 2250 2249 +f 2299 2250 2298 +f 2299 2251 2250 +f 2300 2251 2299 +f 2300 2252 2251 +f 2254 2252 2300 +f 2254 2206 2252 +f 2301 2254 2302 +f 2301 2253 2254 +f 2303 2253 2301 +f 2303 2255 2253 +f 2304 2255 2303 +f 2304 2256 2255 +f 2305 2256 2304 +f 2305 2257 2256 +f 2306 2257 2305 +f 2306 2258 2257 +f 2307 2258 2306 +f 2307 2259 2258 +f 2308 2259 2307 +f 2308 2260 2259 +f 2309 2260 2308 +f 2309 2261 2260 +f 2310 2261 2309 +f 2310 2262 2261 +f 2311 2262 2310 +f 2311 2263 2262 +f 2312 2263 2311 +f 2312 2264 2263 +f 2313 2264 2312 +f 2313 2265 2264 +f 2314 2265 2313 +f 2314 2266 2265 +f 2315 2266 2314 +f 2315 2267 2266 +f 2316 2267 2315 +f 2316 2268 2267 +f 2317 2268 2316 +f 2317 2269 2268 +f 2318 2269 2317 +f 2318 2270 2269 +f 2319 2270 2318 +f 2319 2271 2270 +f 2320 2271 2319 +f 2320 2272 2271 +f 2321 2272 2320 +f 2321 2273 2272 +f 2322 2273 2321 +f 2322 2274 2273 +f 2323 2274 2322 +f 2323 2275 2274 +f 2324 2275 2323 +f 2324 2276 2275 +f 2325 2276 2324 +f 2325 2277 2276 +f 2326 2277 2325 +f 2326 2278 2277 +f 2327 2278 2326 +f 2327 2279 2278 +f 2328 2279 2327 +f 2328 2280 2279 +f 2329 2280 2328 +f 2329 2281 2280 +f 2330 2281 2329 +f 2330 2282 2281 +f 2331 2282 2330 +f 2331 2283 2282 +f 2332 2283 2331 +f 2332 2284 2283 +f 2333 2284 2332 +f 2333 2285 2284 +f 2334 2285 2333 +f 2334 2286 2285 +f 2335 2286 2334 +f 2335 2287 2286 +f 2336 2287 2335 +f 2336 2288 2287 +f 2337 2288 2336 +f 2337 2289 2288 +f 2338 2289 2337 +f 2338 2290 2289 +f 2339 2290 2338 +f 2339 2291 2290 +f 2340 2291 2339 +f 2340 2292 2291 +f 2341 2292 2340 +f 2341 2293 2292 +f 2342 2293 2341 +f 2342 2294 2293 +f 2343 2294 2342 +f 2343 2295 2294 +f 2344 2295 2343 +f 2344 2296 2295 +f 2345 2296 2344 +f 2345 2297 2296 +f 2346 2297 2345 +f 2346 2298 2297 +f 2347 2298 2346 +f 2347 2299 2298 +f 2348 2299 2347 +f 2348 2300 2299 +f 2302 2300 2348 +f 2302 2254 2300 +f 2349 2302 2350 +f 2349 2301 2302 +f 2351 2301 2349 +f 2351 2303 2301 +f 2352 2303 2351 +f 2352 2304 2303 +f 2353 2304 2352 +f 2353 2305 2304 +f 2354 2305 2353 +f 2354 2306 2305 +f 2355 2306 2354 +f 2355 2307 2306 +f 2356 2307 2355 +f 2356 2308 2307 +f 2357 2308 2356 +f 2357 2309 2308 +f 2358 2309 2357 +f 2358 2310 2309 +f 2359 2310 2358 +f 2359 2311 2310 +f 2360 2311 2359 +f 2360 2312 2311 +f 2361 2312 2360 +f 2361 2313 2312 +f 2362 2313 2361 +f 2362 2314 2313 +f 2363 2314 2362 +f 2363 2315 2314 +f 2364 2315 2363 +f 2364 2316 2315 +f 2365 2316 2364 +f 2365 2317 2316 +f 2366 2317 2365 +f 2366 2318 2317 +f 2367 2318 2366 +f 2367 2319 2318 +f 2368 2319 2367 +f 2368 2320 2319 +f 2369 2320 2368 +f 2369 2321 2320 +f 2370 2321 2369 +f 2370 2322 2321 +f 2371 2322 2370 +f 2371 2323 2322 +f 2372 2323 2371 +f 2372 2324 2323 +f 2373 2324 2372 +f 2373 2325 2324 +f 2374 2325 2373 +f 2374 2326 2325 +f 2375 2326 2374 +f 2375 2327 2326 +f 2376 2327 2375 +f 2376 2328 2327 +f 2377 2328 2376 +f 2377 2329 2328 +f 2378 2329 2377 +f 2378 2330 2329 +f 2379 2330 2378 +f 2379 2331 2330 +f 2380 2331 2379 +f 2380 2332 2331 +f 2381 2332 2380 +f 2381 2333 2332 +f 2382 2333 2381 +f 2382 2334 2333 +f 2383 2334 2382 +f 2383 2335 2334 +f 2384 2335 2383 +f 2384 2336 2335 +f 2385 2336 2384 +f 2385 2337 2336 +f 2386 2337 2385 +f 2386 2338 2337 +f 2387 2338 2386 +f 2387 2339 2338 +f 2388 2339 2387 +f 2388 2340 2339 +f 2389 2340 2388 +f 2389 2341 2340 +f 2390 2341 2389 +f 2390 2342 2341 +f 2391 2342 2390 +f 2391 2343 2342 +f 2392 2343 2391 +f 2392 2344 2343 +f 2393 2344 2392 +f 2393 2345 2344 +f 2394 2345 2393 +f 2394 2346 2345 +f 2395 2346 2394 +f 2395 2347 2346 +f 2396 2347 2395 +f 2396 2348 2347 +f 2350 2348 2396 +f 2350 2302 2348 +f 2397 2350 2398 +f 2397 2349 2350 +f 2399 2349 2397 +f 2399 2351 2349 +f 2400 2351 2399 +f 2400 2352 2351 +f 2401 2352 2400 +f 2401 2353 2352 +f 2402 2353 2401 +f 2402 2354 2353 +f 2403 2354 2402 +f 2403 2355 2354 +f 2404 2355 2403 +f 2404 2356 2355 +f 2405 2356 2404 +f 2405 2357 2356 +f 2406 2357 2405 +f 2406 2358 2357 +f 2407 2358 2406 +f 2407 2359 2358 +f 2408 2359 2407 +f 2408 2360 2359 +f 2409 2360 2408 +f 2409 2361 2360 +f 2410 2361 2409 +f 2410 2362 2361 +f 2411 2362 2410 +f 2411 2363 2362 +f 2412 2363 2411 +f 2412 2364 2363 +f 2413 2364 2412 +f 2413 2365 2364 +f 2414 2365 2413 +f 2414 2366 2365 +f 2415 2366 2414 +f 2415 2367 2366 +f 2416 2367 2415 +f 2416 2368 2367 +f 2417 2368 2416 +f 2417 2369 2368 +f 2418 2369 2417 +f 2418 2370 2369 +f 2419 2370 2418 +f 2419 2371 2370 +f 2420 2371 2419 +f 2420 2372 2371 +f 2421 2372 2420 +f 2421 2373 2372 +f 2422 2373 2421 +f 2422 2374 2373 +f 2423 2374 2422 +f 2423 2375 2374 +f 2424 2375 2423 +f 2424 2376 2375 +f 2425 2376 2424 +f 2425 2377 2376 +f 2426 2377 2425 +f 2426 2378 2377 +f 2427 2378 2426 +f 2427 2379 2378 +f 2428 2379 2427 +f 2428 2380 2379 +f 2429 2380 2428 +f 2429 2381 2380 +f 2430 2381 2429 +f 2430 2382 2381 +f 2431 2382 2430 +f 2431 2383 2382 +f 2432 2383 2431 +f 2432 2384 2383 +f 2433 2384 2432 +f 2433 2385 2384 +f 2434 2385 2433 +f 2434 2386 2385 +f 2435 2386 2434 +f 2435 2387 2386 +f 2436 2387 2435 +f 2436 2388 2387 +f 2437 2388 2436 +f 2437 2389 2388 +f 2438 2389 2437 +f 2438 2390 2389 +f 2439 2390 2438 +f 2439 2391 2390 +f 2440 2391 2439 +f 2440 2392 2391 +f 2441 2392 2440 +f 2441 2393 2392 +f 2442 2393 2441 +f 2442 2394 2393 +f 2443 2394 2442 +f 2443 2395 2394 +f 2444 2395 2443 +f 2444 2396 2395 +f 2398 2396 2444 +f 2398 2350 2396 +f 2445 2398 2446 +f 2445 2397 2398 +f 2447 2397 2445 +f 2447 2399 2397 +f 2448 2399 2447 +f 2448 2400 2399 +f 2449 2400 2448 +f 2449 2401 2400 +f 2450 2401 2449 +f 2450 2402 2401 +f 2451 2402 2450 +f 2451 2403 2402 +f 2452 2403 2451 +f 2452 2404 2403 +f 2453 2404 2452 +f 2453 2405 2404 +f 2454 2405 2453 +f 2454 2406 2405 +f 2455 2406 2454 +f 2455 2407 2406 +f 2456 2407 2455 +f 2456 2408 2407 +f 2457 2408 2456 +f 2457 2409 2408 +f 2458 2409 2457 +f 2458 2410 2409 +f 2459 2410 2458 +f 2459 2411 2410 +f 2460 2411 2459 +f 2460 2412 2411 +f 2461 2412 2460 +f 2461 2413 2412 +f 2462 2413 2461 +f 2462 2414 2413 +f 2463 2414 2462 +f 2463 2415 2414 +f 2464 2415 2463 +f 2464 2416 2415 +f 2465 2416 2464 +f 2465 2417 2416 +f 2465 2418 2417 +f 2466 2418 2465 +f 2467 2418 2466 +f 2467 2419 2418 +f 2468 2419 2467 +f 2468 2420 2419 +f 2469 2420 2468 +f 2469 2421 2420 +f 2470 2421 2469 +f 2470 2422 2421 +f 2471 2422 2470 +f 2471 2423 2422 +f 2471 2424 2423 +f 2472 2424 2471 +f 2473 2424 2472 +f 2473 2425 2424 +f 2474 2425 2473 +f 2474 2426 2425 +f 2475 2426 2474 +f 2475 2427 2426 +f 2476 2427 2475 +f 2476 2428 2427 +f 2477 2428 2476 +f 2477 2429 2428 +f 2478 2429 2477 +f 2478 2430 2429 +f 2478 2431 2430 +f 2479 2431 2478 +f 2480 2431 2479 +f 2480 2432 2431 +f 2481 2432 2480 +f 2481 2433 2432 +f 2482 2433 2481 +f 2482 2434 2433 +f 2483 2434 2482 +f 2483 2435 2434 +f 2484 2435 2483 +f 2484 2436 2435 +f 2485 2436 2484 +f 2485 2437 2436 +f 2486 2437 2485 +f 2486 2438 2437 +f 2486 2439 2438 +f 2487 2439 2486 +f 2488 2439 2487 +f 2488 2440 2439 +f 2489 2440 2488 +f 2489 2441 2440 +f 2490 2441 2489 +f 2490 2442 2441 +f 2491 2442 2490 +f 2491 2443 2442 +f 2492 2443 2491 +f 2492 2444 2443 +f 2492 2398 2444 +f 2446 2398 2492 +f 2493 453 2494 +f 2493 2495 453 +f 2496 2495 2493 +f 2496 2497 2495 +f 2498 2497 2496 +f 2498 2499 2497 +f 2500 2499 2498 +f 2500 2501 2499 +f 2502 2501 2500 +f 2502 2503 2501 +f 2504 2503 2502 +f 2504 2505 2503 +f 2504 2506 2505 +f 2507 2506 2504 +f 2507 2508 2506 +f 2509 2508 2507 +f 2510 2508 2509 +f 2510 2511 2508 +f 2512 2511 2510 +f 2512 2513 2511 +f 2514 2513 2512 +f 2514 2515 2513 +f 2516 2515 2514 +f 2516 2517 2515 +f 2518 2517 2516 +f 2518 2519 2517 +f 2520 2519 2518 +f 2520 2521 2519 +f 2522 2521 2520 +f 2522 2523 2521 +f 2524 2523 2522 +f 2524 2525 2523 +f 2526 2525 2524 +f 2526 2527 2525 +f 2528 2527 2526 +f 2528 2529 2527 +f 2530 2529 2528 +f 2530 2531 2529 +f 2532 2531 2530 +f 2532 2533 2531 +f 2534 2533 2532 +f 2534 2535 2533 +f 2536 2535 2534 +f 2536 2537 2535 +f 2538 2537 2536 +f 2538 2539 2537 +f 2540 2539 2538 +f 2540 2541 2539 +f 2542 2541 2540 +f 2542 2543 2541 +f 2544 2543 2542 +f 2544 2545 2543 +f 2546 2545 2544 +f 2546 2547 2545 +f 2548 2547 2546 +f 2548 2549 2547 +f 2550 2549 2548 +f 2550 2551 2549 +f 2552 2551 2550 +f 2552 2553 2551 +f 2554 2553 2552 +f 2554 2555 2553 +f 2556 2555 2554 +f 2556 2557 2555 +f 2558 2557 2556 +f 2558 2559 2557 +f 2560 2559 2558 +f 2560 2561 2559 +f 2562 2561 2560 +f 2562 2563 2561 +f 2564 2563 2562 +f 2564 2565 2563 +f 2566 2565 2564 +f 2566 2567 2565 +f 2568 2567 2566 +f 2568 2569 2567 +f 2570 2569 2568 +f 2570 2571 2569 +f 2572 2571 2570 +f 2572 2573 2571 +f 2574 2573 2572 +f 2574 2575 2573 +f 2576 2575 2574 +f 2576 2577 2575 +f 2576 2578 2577 +f 2579 2578 2576 +f 2580 2578 2579 +f 2580 2581 2578 +f 2580 2582 2581 +f 2583 2582 2580 +f 2584 2582 2583 +f 2584 2585 2582 +f 2586 2585 2584 +f 2586 2587 2585 +f 2494 2587 2586 +f 2494 453 2587 +f 2588 2494 2589 +f 2588 2493 2494 +f 2590 2493 2588 +f 2590 2496 2493 +f 2591 2496 2590 +f 2591 2498 2496 +f 2592 2498 2591 +f 2592 2500 2498 +f 2593 2500 2592 +f 2593 2502 2500 +f 2594 2502 2593 +f 2594 2504 2502 +f 2595 2504 2594 +f 2595 2507 2504 +f 2596 2507 2595 +f 2596 2509 2507 +f 2597 2509 2596 +f 2597 2510 2509 +f 2598 2510 2597 +f 2598 2512 2510 +f 2599 2512 2598 +f 2599 2514 2512 +f 2600 2514 2599 +f 2600 2516 2514 +f 2601 2516 2600 +f 2601 2518 2516 +f 2602 2518 2601 +f 2602 2520 2518 +f 2603 2520 2602 +f 2603 2522 2520 +f 2604 2522 2603 +f 2604 2524 2522 +f 2605 2524 2604 +f 2605 2526 2524 +f 2606 2526 2605 +f 2606 2528 2526 +f 2607 2528 2606 +f 2607 2530 2528 +f 2608 2530 2607 +f 2608 2532 2530 +f 2609 2532 2608 +f 2609 2534 2532 +f 2610 2534 2609 +f 2610 2536 2534 +f 2611 2536 2610 +f 2611 2538 2536 +f 2612 2538 2611 +f 2612 2540 2538 +f 2613 2540 2612 +f 2613 2542 2540 +f 2614 2542 2613 +f 2614 2544 2542 +f 2615 2544 2614 +f 2615 2546 2544 +f 2616 2546 2615 +f 2616 2548 2546 +f 2617 2548 2616 +f 2617 2550 2548 +f 2618 2550 2617 +f 2618 2552 2550 +f 2619 2552 2618 +f 2619 2554 2552 +f 2620 2554 2619 +f 2620 2556 2554 +f 2621 2556 2620 +f 2621 2558 2556 +f 2622 2558 2621 +f 2622 2560 2558 +f 2623 2560 2622 +f 2623 2562 2560 +f 2624 2562 2623 +f 2624 2564 2562 +f 2625 2564 2624 +f 2625 2566 2564 +f 2626 2566 2625 +f 2626 2568 2566 +f 2627 2568 2626 +f 2627 2570 2568 +f 2628 2570 2627 +f 2628 2572 2570 +f 2629 2572 2628 +f 2629 2574 2572 +f 2630 2574 2629 +f 2630 2576 2574 +f 2631 2576 2630 +f 2631 2579 2576 +f 2632 2579 2631 +f 2632 2580 2579 +f 2633 2580 2632 +f 2633 2583 2580 +f 2634 2583 2633 +f 2634 2584 2583 +f 2635 2584 2634 +f 2635 2586 2584 +f 2589 2586 2635 +f 2589 2494 2586 +f 2636 2589 2637 +f 2636 2588 2589 +f 2638 2588 2636 +f 2638 2590 2588 +f 2639 2590 2638 +f 2639 2591 2590 +f 2640 2591 2639 +f 2640 2592 2591 +f 2641 2592 2640 +f 2641 2593 2592 +f 2642 2593 2641 +f 2642 2594 2593 +f 2643 2594 2642 +f 2643 2595 2594 +f 2644 2595 2643 +f 2644 2596 2595 +f 2645 2596 2644 +f 2645 2597 2596 +f 2646 2597 2645 +f 2646 2598 2597 +f 2647 2598 2646 +f 2647 2599 2598 +f 2648 2599 2647 +f 2648 2600 2599 +f 2649 2600 2648 +f 2649 2601 2600 +f 2650 2601 2649 +f 2650 2602 2601 +f 2651 2602 2650 +f 2651 2603 2602 +f 2652 2603 2651 +f 2652 2604 2603 +f 2653 2604 2652 +f 2653 2605 2604 +f 2654 2605 2653 +f 2654 2606 2605 +f 2655 2606 2654 +f 2655 2607 2606 +f 2656 2607 2655 +f 2656 2608 2607 +f 2657 2608 2656 +f 2657 2609 2608 +f 2658 2609 2657 +f 2658 2610 2609 +f 2659 2610 2658 +f 2659 2611 2610 +f 2660 2611 2659 +f 2660 2612 2611 +f 2661 2612 2660 +f 2661 2613 2612 +f 2662 2613 2661 +f 2662 2614 2613 +f 2663 2614 2662 +f 2663 2615 2614 +f 2664 2615 2663 +f 2664 2616 2615 +f 2665 2616 2664 +f 2665 2617 2616 +f 2666 2617 2665 +f 2666 2618 2617 +f 2667 2618 2666 +f 2667 2619 2618 +f 2668 2619 2667 +f 2668 2620 2619 +f 2669 2620 2668 +f 2669 2621 2620 +f 2670 2621 2669 +f 2670 2622 2621 +f 2671 2622 2670 +f 2671 2623 2622 +f 2672 2623 2671 +f 2672 2624 2623 +f 2673 2624 2672 +f 2673 2625 2624 +f 2674 2625 2673 +f 2674 2626 2625 +f 2675 2626 2674 +f 2675 2627 2626 +f 2676 2627 2675 +f 2676 2628 2627 +f 2677 2628 2676 +f 2677 2629 2628 +f 2678 2629 2677 +f 2678 2630 2629 +f 2679 2630 2678 +f 2679 2631 2630 +f 2680 2631 2679 +f 2680 2632 2631 +f 2681 2632 2680 +f 2681 2633 2632 +f 2682 2633 2681 +f 2682 2634 2633 +f 2683 2634 2682 +f 2683 2635 2634 +f 2637 2635 2683 +f 2637 2589 2635 +f 2684 2637 2685 +f 2684 2636 2637 +f 2686 2636 2684 +f 2686 2638 2636 +f 2687 2638 2686 +f 2687 2639 2638 +f 2688 2639 2687 +f 2688 2640 2639 +f 2689 2640 2688 +f 2689 2641 2640 +f 2690 2641 2689 +f 2690 2642 2641 +f 2691 2642 2690 +f 2691 2643 2642 +f 2692 2643 2691 +f 2692 2644 2643 +f 2693 2644 2692 +f 2693 2645 2644 +f 2694 2645 2693 +f 2694 2646 2645 +f 2695 2646 2694 +f 2695 2647 2646 +f 2696 2647 2695 +f 2696 2648 2647 +f 2697 2648 2696 +f 2697 2649 2648 +f 2698 2649 2697 +f 2698 2650 2649 +f 2699 2650 2698 +f 2699 2651 2650 +f 2700 2651 2699 +f 2700 2652 2651 +f 2701 2652 2700 +f 2701 2653 2652 +f 2702 2653 2701 +f 2702 2654 2653 +f 2703 2654 2702 +f 2703 2655 2654 +f 2704 2655 2703 +f 2704 2656 2655 +f 2705 2656 2704 +f 2705 2657 2656 +f 2706 2657 2705 +f 2706 2658 2657 +f 2707 2658 2706 +f 2707 2659 2658 +f 2708 2659 2707 +f 2708 2660 2659 +f 2709 2660 2708 +f 2709 2661 2660 +f 2710 2661 2709 +f 2710 2662 2661 +f 2711 2662 2710 +f 2711 2663 2662 +f 2712 2663 2711 +f 2712 2664 2663 +f 2713 2664 2712 +f 2713 2665 2664 +f 2714 2665 2713 +f 2714 2666 2665 +f 2715 2666 2714 +f 2715 2667 2666 +f 2716 2667 2715 +f 2716 2668 2667 +f 2717 2668 2716 +f 2717 2669 2668 +f 2718 2669 2717 +f 2718 2670 2669 +f 2719 2670 2718 +f 2719 2671 2670 +f 2720 2671 2719 +f 2720 2672 2671 +f 2721 2672 2720 +f 2721 2673 2672 +f 2722 2673 2721 +f 2722 2674 2673 +f 2723 2674 2722 +f 2723 2675 2674 +f 2724 2675 2723 +f 2724 2676 2675 +f 2725 2676 2724 +f 2725 2677 2676 +f 2726 2677 2725 +f 2726 2678 2677 +f 2727 2678 2726 +f 2727 2679 2678 +f 2728 2679 2727 +f 2728 2680 2679 +f 2729 2680 2728 +f 2729 2681 2680 +f 2730 2681 2729 +f 2730 2682 2681 +f 2731 2682 2730 +f 2731 2683 2682 +f 2685 2683 2731 +f 2685 2637 2683 +f 2732 2685 2733 +f 2732 2684 2685 +f 2734 2684 2732 +f 2734 2686 2684 +f 2735 2686 2734 +f 2735 2687 2686 +f 2736 2687 2735 +f 2736 2688 2687 +f 2737 2688 2736 +f 2737 2689 2688 +f 2738 2689 2737 +f 2738 2690 2689 +f 2739 2690 2738 +f 2739 2691 2690 +f 2740 2691 2739 +f 2740 2692 2691 +f 2741 2692 2740 +f 2741 2693 2692 +f 2742 2693 2741 +f 2742 2694 2693 +f 2743 2694 2742 +f 2743 2695 2694 +f 2744 2695 2743 +f 2744 2696 2695 +f 2745 2696 2744 +f 2745 2697 2696 +f 2746 2697 2745 +f 2746 2698 2697 +f 2747 2698 2746 +f 2747 2699 2698 +f 2748 2699 2747 +f 2748 2700 2699 +f 2749 2700 2748 +f 2749 2701 2700 +f 2750 2701 2749 +f 2750 2702 2701 +f 2751 2702 2750 +f 2751 2703 2702 +f 2752 2703 2751 +f 2752 2704 2703 +f 2753 2704 2752 +f 2753 2705 2704 +f 2754 2705 2753 +f 2754 2706 2705 +f 2755 2706 2754 +f 2755 2707 2706 +f 2756 2707 2755 +f 2756 2708 2707 +f 2757 2708 2756 +f 2757 2709 2708 +f 2758 2709 2757 +f 2758 2710 2709 +f 2759 2710 2758 +f 2759 2711 2710 +f 2760 2711 2759 +f 2760 2712 2711 +f 2761 2712 2760 +f 2761 2713 2712 +f 2762 2713 2761 +f 2762 2714 2713 +f 2763 2714 2762 +f 2763 2715 2714 +f 2764 2715 2763 +f 2764 2716 2715 +f 2765 2716 2764 +f 2765 2717 2716 +f 2766 2717 2765 +f 2766 2718 2717 +f 2767 2718 2766 +f 2767 2719 2718 +f 2768 2719 2767 +f 2768 2720 2719 +f 2769 2720 2768 +f 2769 2721 2720 +f 2770 2721 2769 +f 2770 2722 2721 +f 2771 2722 2770 +f 2771 2723 2722 +f 2772 2723 2771 +f 2772 2724 2723 +f 2773 2724 2772 +f 2773 2725 2724 +f 2774 2725 2773 +f 2774 2726 2725 +f 2775 2726 2774 +f 2775 2727 2726 +f 2776 2727 2775 +f 2776 2728 2727 +f 2777 2728 2776 +f 2777 2729 2728 +f 2778 2729 2777 +f 2778 2730 2729 +f 2779 2730 2778 +f 2779 2731 2730 +f 2733 2731 2779 +f 2733 2685 2731 +f 2780 2733 2781 +f 2780 2732 2733 +f 2782 2732 2780 +f 2782 2734 2732 +f 2783 2734 2782 +f 2783 2735 2734 +f 2784 2735 2783 +f 2784 2736 2735 +f 2785 2736 2784 +f 2785 2737 2736 +f 2786 2737 2785 +f 2786 2738 2737 +f 2787 2738 2786 +f 2787 2739 2738 +f 2788 2739 2787 +f 2788 2740 2739 +f 2789 2740 2788 +f 2789 2741 2740 +f 2790 2741 2789 +f 2790 2742 2741 +f 2791 2742 2790 +f 2791 2743 2742 +f 2792 2743 2791 +f 2792 2744 2743 +f 2793 2744 2792 +f 2793 2745 2744 +f 2794 2745 2793 +f 2794 2746 2745 +f 2795 2746 2794 +f 2795 2747 2746 +f 2796 2747 2795 +f 2796 2748 2747 +f 2797 2748 2796 +f 2797 2749 2748 +f 2798 2749 2797 +f 2798 2750 2749 +f 2799 2750 2798 +f 2799 2751 2750 +f 2800 2751 2799 +f 2800 2752 2751 +f 2801 2752 2800 +f 2801 2753 2752 +f 2802 2753 2801 +f 2802 2754 2753 +f 2803 2754 2802 +f 2803 2755 2754 +f 2804 2755 2803 +f 2804 2756 2755 +f 2805 2756 2804 +f 2805 2757 2756 +f 2806 2757 2805 +f 2806 2758 2757 +f 2807 2758 2806 +f 2807 2759 2758 +f 2808 2759 2807 +f 2808 2760 2759 +f 2809 2760 2808 +f 2809 2761 2760 +f 2810 2761 2809 +f 2810 2762 2761 +f 2811 2762 2810 +f 2811 2763 2762 +f 2812 2763 2811 +f 2812 2764 2763 +f 2813 2764 2812 +f 2813 2765 2764 +f 2814 2765 2813 +f 2814 2766 2765 +f 2815 2766 2814 +f 2815 2767 2766 +f 2816 2767 2815 +f 2816 2768 2767 +f 2817 2768 2816 +f 2817 2769 2768 +f 2818 2769 2817 +f 2818 2770 2769 +f 2819 2770 2818 +f 2819 2771 2770 +f 2820 2771 2819 +f 2820 2772 2771 +f 2821 2772 2820 +f 2821 2773 2772 +f 2822 2773 2821 +f 2822 2774 2773 +f 2823 2774 2822 +f 2823 2775 2774 +f 2824 2775 2823 +f 2824 2776 2775 +f 2825 2776 2824 +f 2825 2777 2776 +f 2826 2777 2825 +f 2826 2778 2777 +f 2827 2778 2826 +f 2827 2779 2778 +f 2781 2779 2827 +f 2781 2733 2779 +f 2828 2781 2829 +f 2828 2780 2781 +f 2830 2780 2828 +f 2830 2782 2780 +f 2831 2782 2830 +f 2831 2783 2782 +f 2832 2783 2831 +f 2832 2784 2783 +f 2833 2784 2832 +f 2833 2785 2784 +f 2834 2785 2833 +f 2834 2786 2785 +f 2835 2786 2834 +f 2835 2787 2786 +f 2836 2787 2835 +f 2836 2788 2787 +f 2837 2788 2836 +f 2837 2789 2788 +f 2838 2789 2837 +f 2838 2790 2789 +f 2839 2790 2838 +f 2839 2791 2790 +f 2840 2791 2839 +f 2840 2792 2791 +f 2841 2792 2840 +f 2841 2793 2792 +f 2842 2793 2841 +f 2842 2794 2793 +f 2843 2794 2842 +f 2843 2795 2794 +f 2844 2795 2843 +f 2844 2796 2795 +f 2845 2796 2844 +f 2845 2797 2796 +f 2846 2797 2845 +f 2846 2798 2797 +f 2847 2798 2846 +f 2847 2799 2798 +f 2848 2799 2847 +f 2848 2800 2799 +f 2849 2800 2848 +f 2849 2801 2800 +f 2850 2801 2849 +f 2850 2802 2801 +f 2851 2802 2850 +f 2851 2803 2802 +f 2852 2803 2851 +f 2852 2804 2803 +f 2853 2804 2852 +f 2853 2805 2804 +f 2854 2805 2853 +f 2854 2806 2805 +f 2855 2806 2854 +f 2855 2807 2806 +f 2856 2807 2855 +f 2856 2808 2807 +f 2857 2808 2856 +f 2857 2809 2808 +f 2858 2809 2857 +f 2858 2810 2809 +f 2859 2810 2858 +f 2859 2811 2810 +f 2860 2811 2859 +f 2860 2812 2811 +f 2861 2812 2860 +f 2861 2813 2812 +f 2861 2814 2813 +f 2862 2814 2861 +f 2863 2814 2862 +f 2863 2815 2814 +f 2864 2815 2863 +f 2864 2816 2815 +f 2865 2816 2864 +f 2865 2817 2816 +f 2866 2817 2865 +f 2866 2818 2817 +f 2867 2818 2866 +f 2867 2819 2818 +f 2868 2819 2867 +f 2868 2820 2819 +f 2869 2820 2868 +f 2869 2821 2820 +f 2870 2821 2869 +f 2870 2822 2821 +f 2871 2822 2870 +f 2871 2823 2822 +f 2872 2823 2871 +f 2872 2824 2823 +f 2873 2824 2872 +f 2873 2825 2824 +f 2874 2825 2873 +f 2874 2826 2825 +f 2875 2826 2874 +f 2875 2827 2826 +f 2829 2827 2875 +f 2829 2781 2827 +f 2876 597 2877 +f 2876 2878 597 +f 2879 2878 2876 +f 2879 2880 2878 +f 2881 2880 2879 +f 2881 2882 2880 +f 2883 2882 2881 +f 2883 2884 2882 +f 2885 2884 2883 +f 2885 2886 2884 +f 2887 2886 2885 +f 2887 2888 2886 +f 2889 2888 2887 +f 2889 2890 2888 +f 2891 2890 2889 +f 2891 2892 2890 +f 2893 2892 2891 +f 2893 2894 2892 +f 2895 2894 2893 +f 2895 2896 2894 +f 2895 2897 2896 +f 2898 2897 2895 +f 2899 2897 2898 +f 2899 2900 2897 +f 2901 2900 2899 +f 2901 2902 2900 +f 2903 2902 2901 +f 2903 2904 2902 +f 2905 2904 2903 +f 2905 2906 2904 +f 2907 2906 2905 +f 2907 2908 2906 +f 2909 2908 2907 +f 2909 2910 2908 +f 2911 2910 2909 +f 2911 2912 2910 +f 2913 2912 2911 +f 2913 2914 2912 +f 2915 2914 2913 +f 2915 2916 2914 +f 2917 2916 2915 +f 2917 2918 2916 +f 2919 2918 2917 +f 2919 2920 2918 +f 2921 2920 2919 +f 2921 2922 2920 +f 2923 2922 2921 +f 2923 2924 2922 +f 2925 2924 2923 +f 2925 2926 2924 +f 2927 2926 2925 +f 2927 2928 2926 +f 2929 2928 2927 +f 2929 2930 2928 +f 2931 2930 2929 +f 2931 2932 2930 +f 2933 2932 2931 +f 2933 2934 2932 +f 2935 2934 2933 +f 2935 2936 2934 +f 2937 2936 2935 +f 2937 2938 2936 +f 2939 2938 2937 +f 2939 2940 2938 +f 2941 2940 2939 +f 2941 2942 2940 +f 2943 2942 2941 +f 2943 2944 2942 +f 2945 2944 2943 +f 2945 2946 2944 +f 2947 2946 2945 +f 2947 2948 2946 +f 2949 2948 2947 +f 2949 2950 2948 +f 2951 2950 2949 +f 2951 2952 2950 +f 2953 2952 2951 +f 2953 2954 2952 +f 2955 2954 2953 +f 2955 2956 2954 +f 2957 2956 2955 +f 2957 2958 2956 +f 2959 2958 2957 +f 2959 2960 2958 +f 2961 2960 2959 +f 2961 2962 2960 +f 2963 2962 2961 +f 2963 2964 2962 +f 2965 2964 2963 +f 2965 2966 2964 +f 2967 2966 2965 +f 2967 2968 2966 +f 2969 2968 2967 +f 2969 2970 2968 +f 2969 597 2970 +f 2877 597 2969 +f 2971 2877 2972 +f 2971 2876 2877 +f 2973 2876 2971 +f 2973 2879 2876 +f 2974 2879 2973 +f 2974 2881 2879 +f 2975 2881 2974 +f 2975 2883 2881 +f 2976 2883 2975 +f 2976 2885 2883 +f 2977 2885 2976 +f 2977 2887 2885 +f 2978 2887 2977 +f 2978 2889 2887 +f 2979 2889 2978 +f 2979 2891 2889 +f 2980 2891 2979 +f 2980 2893 2891 +f 2981 2893 2980 +f 2981 2895 2893 +f 2982 2895 2981 +f 2982 2898 2895 +f 2983 2898 2982 +f 2983 2899 2898 +f 2984 2899 2983 +f 2984 2901 2899 +f 2985 2901 2984 +f 2985 2903 2901 +f 2986 2903 2985 +f 2986 2905 2903 +f 2987 2905 2986 +f 2987 2907 2905 +f 2988 2907 2987 +f 2988 2909 2907 +f 2989 2909 2988 +f 2989 2911 2909 +f 2990 2911 2989 +f 2990 2913 2911 +f 2991 2913 2990 +f 2991 2915 2913 +f 2992 2915 2991 +f 2992 2917 2915 +f 2993 2917 2992 +f 2993 2919 2917 +f 2994 2919 2993 +f 2994 2921 2919 +f 2995 2921 2994 +f 2995 2923 2921 +f 2996 2923 2995 +f 2996 2925 2923 +f 2997 2925 2996 +f 2997 2927 2925 +f 2998 2927 2997 +f 2998 2929 2927 +f 2999 2929 2998 +f 2999 2931 2929 +f 3000 2931 2999 +f 3000 2933 2931 +f 3001 2933 3000 +f 3001 2935 2933 +f 3002 2935 3001 +f 3002 2937 2935 +f 3003 2937 3002 +f 3003 2939 2937 +f 3004 2939 3003 +f 3004 2941 2939 +f 3005 2941 3004 +f 3005 2943 2941 +f 3006 2943 3005 +f 3006 2945 2943 +f 3007 2945 3006 +f 3007 2947 2945 +f 3008 2947 3007 +f 3008 2949 2947 +f 3009 2949 3008 +f 3009 2951 2949 +f 3010 2951 3009 +f 3010 2953 2951 +f 3011 2953 3010 +f 3011 2955 2953 +f 3012 2955 3011 +f 3012 2957 2955 +f 3013 2957 3012 +f 3013 2959 2957 +f 3014 2959 3013 +f 3014 2961 2959 +f 3015 2961 3014 +f 3015 2963 2961 +f 3016 2963 3015 +f 3016 2965 2963 +f 3017 2965 3016 +f 3017 2967 2965 +f 3018 2967 3017 +f 3018 2969 2967 +f 2972 2969 3018 +f 2972 2877 2969 +f 3019 2972 3020 +f 3019 2971 2972 +f 3021 2971 3019 +f 3021 2973 2971 +f 3022 2973 3021 +f 3022 2974 2973 +f 3023 2974 3022 +f 3023 2975 2974 +f 3024 2975 3023 +f 3024 2976 2975 +f 3025 2976 3024 +f 3025 2977 2976 +f 3026 2977 3025 +f 3026 2978 2977 +f 3027 2978 3026 +f 3027 2979 2978 +f 3028 2979 3027 +f 3028 2980 2979 +f 3029 2980 3028 +f 3029 2981 2980 +f 3030 2981 3029 +f 3030 2982 2981 +f 3031 2982 3030 +f 3031 2983 2982 +f 3032 2983 3031 +f 3032 2984 2983 +f 3033 2984 3032 +f 3033 2985 2984 +f 3034 2985 3033 +f 3034 2986 2985 +f 3035 2986 3034 +f 3035 2987 2986 +f 3036 2987 3035 +f 3036 2988 2987 +f 3037 2988 3036 +f 3037 2989 2988 +f 3038 2989 3037 +f 3038 2990 2989 +f 3039 2990 3038 +f 3039 2991 2990 +f 3040 2991 3039 +f 3040 2992 2991 +f 3041 2992 3040 +f 3041 2993 2992 +f 3042 2993 3041 +f 3042 2994 2993 +f 3043 2994 3042 +f 3043 2995 2994 +f 3044 2995 3043 +f 3044 2996 2995 +f 3045 2996 3044 +f 3045 2997 2996 +f 3046 2997 3045 +f 3046 2998 2997 +f 3047 2998 3046 +f 3047 2999 2998 +f 3048 2999 3047 +f 3048 3000 2999 +f 3049 3000 3048 +f 3049 3001 3000 +f 3050 3001 3049 +f 3050 3002 3001 +f 3051 3002 3050 +f 3051 3003 3002 +f 3052 3003 3051 +f 3052 3004 3003 +f 3053 3004 3052 +f 3053 3005 3004 +f 3054 3005 3053 +f 3054 3006 3005 +f 3055 3006 3054 +f 3055 3007 3006 +f 3056 3007 3055 +f 3056 3008 3007 +f 3057 3008 3056 +f 3057 3009 3008 +f 3058 3009 3057 +f 3058 3010 3009 +f 3059 3010 3058 +f 3059 3011 3010 +f 3060 3011 3059 +f 3060 3012 3011 +f 3061 3012 3060 +f 3061 3013 3012 +f 3062 3013 3061 +f 3062 3014 3013 +f 3063 3014 3062 +f 3063 3015 3014 +f 3064 3015 3063 +f 3064 3016 3015 +f 3065 3016 3064 +f 3065 3017 3016 +f 3066 3017 3065 +f 3066 3018 3017 +f 3020 3018 3066 +f 3020 2972 3018 +f 3067 3020 3068 +f 3067 3019 3020 +f 3069 3019 3067 +f 3069 3021 3019 +f 3070 3021 3069 +f 3070 3022 3021 +f 3071 3022 3070 +f 3071 3023 3022 +f 3072 3023 3071 +f 3072 3024 3023 +f 3073 3024 3072 +f 3073 3025 3024 +f 3074 3025 3073 +f 3074 3026 3025 +f 3075 3026 3074 +f 3075 3027 3026 +f 3076 3027 3075 +f 3076 3028 3027 +f 3077 3028 3076 +f 3077 3029 3028 +f 3078 3029 3077 +f 3078 3030 3029 +f 3079 3030 3078 +f 3079 3031 3030 +f 3080 3031 3079 +f 3080 3032 3031 +f 3081 3032 3080 +f 3081 3033 3032 +f 3082 3033 3081 +f 3082 3034 3033 +f 3083 3034 3082 +f 3083 3035 3034 +f 3084 3035 3083 +f 3084 3036 3035 +f 3085 3036 3084 +f 3085 3037 3036 +f 3086 3037 3085 +f 3086 3038 3037 +f 3087 3038 3086 +f 3087 3039 3038 +f 3088 3039 3087 +f 3088 3040 3039 +f 3089 3040 3088 +f 3089 3041 3040 +f 3090 3041 3089 +f 3090 3042 3041 +f 3091 3042 3090 +f 3091 3043 3042 +f 3092 3043 3091 +f 3092 3044 3043 +f 3093 3044 3092 +f 3093 3045 3044 +f 3094 3045 3093 +f 3094 3046 3045 +f 3095 3046 3094 +f 3095 3047 3046 +f 3096 3047 3095 +f 3096 3048 3047 +f 3097 3048 3096 +f 3097 3049 3048 +f 3098 3049 3097 +f 3098 3050 3049 +f 3099 3050 3098 +f 3099 3051 3050 +f 3100 3051 3099 +f 3100 3052 3051 +f 3101 3052 3100 +f 3101 3053 3052 +f 3102 3053 3101 +f 3102 3054 3053 +f 3103 3054 3102 +f 3103 3055 3054 +f 3104 3055 3103 +f 3104 3056 3055 +f 3105 3056 3104 +f 3105 3057 3056 +f 3106 3057 3105 +f 3106 3058 3057 +f 3107 3058 3106 +f 3107 3059 3058 +f 3108 3059 3107 +f 3108 3060 3059 +f 3109 3060 3108 +f 3109 3061 3060 +f 3110 3061 3109 +f 3110 3062 3061 +f 3111 3062 3110 +f 3111 3063 3062 +f 3112 3063 3111 +f 3112 3064 3063 +f 3113 3064 3112 +f 3113 3065 3064 +f 3114 3065 3113 +f 3114 3066 3065 +f 3068 3066 3114 +f 3068 3020 3066 +f 3115 3068 3116 +f 3115 3067 3068 +f 3117 3067 3115 +f 3117 3069 3067 +f 3118 3069 3117 +f 3118 3070 3069 +f 3119 3070 3118 +f 3119 3071 3070 +f 3120 3071 3119 +f 3120 3072 3071 +f 3121 3072 3120 +f 3121 3073 3072 +f 3122 3073 3121 +f 3122 3074 3073 +f 3123 3074 3122 +f 3123 3075 3074 +f 3124 3075 3123 +f 3124 3076 3075 +f 3125 3076 3124 +f 3125 3077 3076 +f 3126 3077 3125 +f 3126 3078 3077 +f 3127 3078 3126 +f 3127 3079 3078 +f 3128 3079 3127 +f 3128 3080 3079 +f 3129 3080 3128 +f 3129 3081 3080 +f 3130 3081 3129 +f 3130 3082 3081 +f 3131 3082 3130 +f 3131 3083 3082 +f 3132 3083 3131 +f 3132 3084 3083 +f 3133 3084 3132 +f 3133 3085 3084 +f 3134 3085 3133 +f 3134 3086 3085 +f 3135 3086 3134 +f 3135 3087 3086 +f 3136 3087 3135 +f 3136 3088 3087 +f 3137 3088 3136 +f 3137 3089 3088 +f 3138 3089 3137 +f 3138 3090 3089 +f 3139 3090 3138 +f 3139 3091 3090 +f 3140 3091 3139 +f 3140 3092 3091 +f 3141 3092 3140 +f 3141 3093 3092 +f 3142 3093 3141 +f 3142 3094 3093 +f 3143 3094 3142 +f 3143 3095 3094 +f 3144 3095 3143 +f 3144 3096 3095 +f 3145 3096 3144 +f 3145 3097 3096 +f 3146 3097 3145 +f 3146 3098 3097 +f 3147 3098 3146 +f 3147 3099 3098 +f 3148 3099 3147 +f 3148 3100 3099 +f 3149 3100 3148 +f 3149 3101 3100 +f 3150 3101 3149 +f 3150 3102 3101 +f 3151 3102 3150 +f 3151 3103 3102 +f 3152 3103 3151 +f 3152 3104 3103 +f 3153 3104 3152 +f 3153 3105 3104 +f 3154 3105 3153 +f 3154 3106 3105 +f 3155 3106 3154 +f 3155 3107 3106 +f 3156 3107 3155 +f 3156 3108 3107 +f 3157 3108 3156 +f 3157 3109 3108 +f 3158 3109 3157 +f 3158 3110 3109 +f 3159 3110 3158 +f 3159 3111 3110 +f 3160 3111 3159 +f 3160 3112 3111 +f 3161 3112 3160 +f 3161 3113 3112 +f 3162 3113 3161 +f 3162 3114 3113 +f 3116 3114 3162 +f 3116 3068 3114 +f 3163 3116 3164 +f 3163 3115 3116 +f 3165 3115 3163 +f 3165 3117 3115 +f 3166 3117 3165 +f 3166 3118 3117 +f 3167 3118 3166 +f 3167 3119 3118 +f 3168 3119 3167 +f 3168 3120 3119 +f 3169 3120 3168 +f 3169 3121 3120 +f 3170 3121 3169 +f 3170 3122 3121 +f 3171 3122 3170 +f 3171 3123 3122 +f 3172 3123 3171 +f 3172 3124 3123 +f 3173 3124 3172 +f 3173 3125 3124 +f 3174 3125 3173 +f 3174 3126 3125 +f 3175 3126 3174 +f 3175 3127 3126 +f 3176 3127 3175 +f 3176 3128 3127 +f 3177 3128 3176 +f 3177 3129 3128 +f 3178 3129 3177 +f 3178 3130 3129 +f 3179 3130 3178 +f 3179 3131 3130 +f 3180 3131 3179 +f 3180 3132 3131 +f 3181 3132 3180 +f 3181 3133 3132 +f 3182 3133 3181 +f 3182 3134 3133 +f 3183 3134 3182 +f 3183 3135 3134 +f 3184 3135 3183 +f 3184 3136 3135 +f 3185 3136 3184 +f 3185 3137 3136 +f 3186 3137 3185 +f 3186 3138 3137 +f 3187 3138 3186 +f 3187 3139 3138 +f 3188 3139 3187 +f 3188 3140 3139 +f 3189 3140 3188 +f 3189 3141 3140 +f 3190 3141 3189 +f 3190 3142 3141 +f 3191 3142 3190 +f 3191 3143 3142 +f 3192 3143 3191 +f 3192 3144 3143 +f 3193 3144 3192 +f 3193 3145 3144 +f 3194 3145 3193 +f 3194 3146 3145 +f 3195 3146 3194 +f 3195 3147 3146 +f 3196 3147 3195 +f 3196 3148 3147 +f 3197 3148 3196 +f 3197 3149 3148 +f 3198 3149 3197 +f 3198 3150 3149 +f 3199 3150 3198 +f 3199 3151 3150 +f 3200 3151 3199 +f 3200 3152 3151 +f 3201 3152 3200 +f 3201 3153 3152 +f 3202 3153 3201 +f 3202 3154 3153 +f 3203 3154 3202 +f 3203 3155 3154 +f 3204 3155 3203 +f 3204 3156 3155 +f 3205 3156 3204 +f 3205 3157 3156 +f 3206 3157 3205 +f 3206 3158 3157 +f 3207 3158 3206 +f 3207 3159 3158 +f 3208 3159 3207 +f 3208 3160 3159 +f 3209 3160 3208 +f 3209 3161 3160 +f 3210 3161 3209 +f 3210 3162 3161 +f 3164 3162 3210 +f 3164 3116 3162 +f 3211 3164 3212 +f 3211 3163 3164 +f 3213 3163 3211 +f 3213 3165 3163 +f 3214 3165 3213 +f 3214 3166 3165 +f 3215 3166 3214 +f 3215 3167 3166 +f 3216 3167 3215 +f 3216 3168 3167 +f 3217 3168 3216 +f 3217 3169 3168 +f 3218 3169 3217 +f 3218 3170 3169 +f 3219 3170 3218 +f 3219 3171 3170 +f 3220 3171 3219 +f 3220 3172 3171 +f 3221 3172 3220 +f 3221 3173 3172 +f 3222 3173 3221 +f 3222 3174 3173 +f 3223 3174 3222 +f 3223 3175 3174 +f 3224 3175 3223 +f 3224 3176 3175 +f 3225 3176 3224 +f 3225 3177 3176 +f 3226 3177 3225 +f 3226 3178 3177 +f 3227 3178 3226 +f 3227 3179 3178 +f 3228 3179 3227 +f 3228 3180 3179 +f 3229 3180 3228 +f 3229 3181 3180 +f 3230 3181 3229 +f 3230 3182 3181 +f 3231 3182 3230 +f 3231 3183 3182 +f 3232 3183 3231 +f 3232 3184 3183 +f 3233 3184 3232 +f 3233 3185 3184 +f 3234 3185 3233 +f 3234 3186 3185 +f 3235 3186 3234 +f 3235 3187 3186 +f 3236 3187 3235 +f 3236 3188 3187 +f 3237 3188 3236 +f 3237 3189 3188 +f 3238 3189 3237 +f 3238 3190 3189 +f 3239 3190 3238 +f 3239 3191 3190 +f 3240 3191 3239 +f 3240 3192 3191 +f 3241 3192 3240 +f 3241 3193 3192 +f 3242 3193 3241 +f 3242 3194 3193 +f 3243 3194 3242 +f 3243 3195 3194 +f 3244 3195 3243 +f 3244 3196 3195 +f 3245 3196 3244 +f 3245 3197 3196 +f 3246 3197 3245 +f 3246 3198 3197 +f 3247 3198 3246 +f 3247 3199 3198 +f 3248 3199 3247 +f 3248 3200 3199 +f 3248 3201 3200 +f 3249 3201 3248 +f 3250 3201 3249 +f 3250 3202 3201 +f 3251 3202 3250 +f 3251 3203 3202 +f 3252 3203 3251 +f 3252 3204 3203 +f 3253 3204 3252 +f 3253 3205 3204 +f 3254 3205 3253 +f 3254 3206 3205 +f 3255 3206 3254 +f 3255 3207 3206 +f 3256 3207 3255 +f 3256 3208 3207 +f 3257 3208 3256 +f 3257 3209 3208 +f 3258 3209 3257 +f 3258 3210 3209 +f 3212 3210 3258 +f 3212 3164 3210 +f 3259 741 3260 +f 3259 3261 741 +f 3262 3261 3259 +f 3262 3263 3261 +f 3264 3263 3262 +f 3264 3265 3263 +f 3266 3265 3264 +f 3266 3267 3265 +f 3268 3267 3266 +f 3268 3269 3267 +f 3270 3269 3268 +f 3270 3271 3269 +f 3272 3271 3270 +f 3272 3273 3271 +f 3274 3273 3272 +f 3274 3275 3273 +f 3276 3275 3274 +f 3276 3277 3275 +f 3278 3277 3276 +f 3278 3279 3277 +f 3278 3280 3279 +f 3281 3280 3278 +f 3282 3280 3281 +f 3282 3283 3280 +f 3284 3283 3282 +f 3284 3285 3283 +f 3286 3285 3284 +f 3286 3287 3285 +f 3288 3287 3286 +f 3288 3289 3287 +f 3290 3289 3288 +f 3290 3291 3289 +f 3292 3291 3290 +f 3292 3293 3291 +f 3294 3293 3292 +f 3294 3295 3293 +f 3296 3295 3294 +f 3296 3297 3295 +f 3298 3297 3296 +f 3298 3299 3297 +f 3300 3299 3298 +f 3300 3301 3299 +f 3302 3301 3300 +f 3302 3303 3301 +f 3304 3303 3302 +f 3304 3305 3303 +f 3306 3305 3304 +f 3306 3307 3305 +f 3308 3307 3306 +f 3308 3309 3307 +f 3310 3309 3308 +f 3310 3311 3309 +f 3312 3311 3310 +f 3312 3313 3311 +f 3314 3313 3312 +f 3314 3315 3313 +f 3316 3315 3314 +f 3316 3317 3315 +f 3318 3317 3316 +f 3318 3319 3317 +f 3320 3319 3318 +f 3320 3321 3319 +f 3322 3321 3320 +f 3322 3323 3321 +f 3324 3323 3322 +f 3324 3325 3323 +f 3326 3325 3324 +f 3326 3327 3325 +f 3328 3327 3326 +f 3328 3329 3327 +f 3330 3329 3328 +f 3330 3331 3329 +f 3332 3331 3330 +f 3332 3333 3331 +f 3334 3333 3332 +f 3334 3335 3333 +f 3336 3335 3334 +f 3336 3337 3335 +f 3338 3337 3336 +f 3338 3339 3337 +f 3340 3339 3338 +f 3340 3341 3339 +f 3342 3341 3340 +f 3342 3343 3341 +f 3344 3343 3342 +f 3344 3345 3343 +f 3346 3345 3344 +f 3346 3347 3345 +f 3348 3347 3346 +f 3348 3349 3347 +f 3350 3349 3348 +f 3350 3351 3349 +f 3352 3351 3350 +f 3352 3353 3351 +f 3260 3353 3352 +f 3260 741 3353 +f 3354 3260 3355 +f 3354 3259 3260 +f 3356 3259 3354 +f 3356 3262 3259 +f 3357 3262 3356 +f 3357 3264 3262 +f 3358 3264 3357 +f 3358 3266 3264 +f 3359 3266 3358 +f 3359 3268 3266 +f 3360 3268 3359 +f 3360 3270 3268 +f 3361 3270 3360 +f 3361 3272 3270 +f 3362 3272 3361 +f 3362 3274 3272 +f 3363 3274 3362 +f 3363 3276 3274 +f 3364 3276 3363 +f 3364 3278 3276 +f 3365 3278 3364 +f 3365 3281 3278 +f 3366 3281 3365 +f 3366 3282 3281 +f 3367 3282 3366 +f 3367 3284 3282 +f 3368 3284 3367 +f 3368 3286 3284 +f 3369 3286 3368 +f 3369 3288 3286 +f 3370 3288 3369 +f 3370 3290 3288 +f 3371 3290 3370 +f 3371 3292 3290 +f 3372 3292 3371 +f 3372 3294 3292 +f 3373 3294 3372 +f 3373 3296 3294 +f 3374 3296 3373 +f 3374 3298 3296 +f 3375 3298 3374 +f 3375 3300 3298 +f 3376 3300 3375 +f 3376 3302 3300 +f 3377 3302 3376 +f 3377 3304 3302 +f 3378 3304 3377 +f 3378 3306 3304 +f 3379 3306 3378 +f 3379 3308 3306 +f 3380 3308 3379 +f 3380 3310 3308 +f 3381 3310 3380 +f 3381 3312 3310 +f 3382 3312 3381 +f 3382 3314 3312 +f 3383 3314 3382 +f 3383 3316 3314 +f 3384 3316 3383 +f 3384 3318 3316 +f 3385 3318 3384 +f 3385 3320 3318 +f 3386 3320 3385 +f 3386 3322 3320 +f 3387 3322 3386 +f 3387 3324 3322 +f 3388 3324 3387 +f 3388 3326 3324 +f 3389 3326 3388 +f 3389 3328 3326 +f 3390 3328 3389 +f 3390 3330 3328 +f 3391 3330 3390 +f 3391 3332 3330 +f 3392 3332 3391 +f 3392 3334 3332 +f 3393 3334 3392 +f 3393 3336 3334 +f 3394 3336 3393 +f 3394 3338 3336 +f 3395 3338 3394 +f 3395 3340 3338 +f 3396 3340 3395 +f 3396 3342 3340 +f 3397 3342 3396 +f 3397 3344 3342 +f 3398 3344 3397 +f 3398 3346 3344 +f 3399 3346 3398 +f 3399 3348 3346 +f 3400 3348 3399 +f 3400 3350 3348 +f 3401 3350 3400 +f 3401 3352 3350 +f 3355 3352 3401 +f 3355 3260 3352 +f 3402 3355 3403 +f 3402 3354 3355 +f 3404 3354 3402 +f 3404 3356 3354 +f 3405 3356 3404 +f 3405 3357 3356 +f 3406 3357 3405 +f 3406 3358 3357 +f 3407 3358 3406 +f 3407 3359 3358 +f 3408 3359 3407 +f 3408 3360 3359 +f 3409 3360 3408 +f 3409 3361 3360 +f 3410 3361 3409 +f 3410 3362 3361 +f 3411 3362 3410 +f 3411 3363 3362 +f 3412 3363 3411 +f 3412 3364 3363 +f 3413 3364 3412 +f 3413 3365 3364 +f 3414 3365 3413 +f 3414 3366 3365 +f 3415 3366 3414 +f 3415 3367 3366 +f 3416 3367 3415 +f 3416 3368 3367 +f 3417 3368 3416 +f 3417 3369 3368 +f 3418 3369 3417 +f 3418 3370 3369 +f 3419 3370 3418 +f 3419 3371 3370 +f 3420 3371 3419 +f 3420 3372 3371 +f 3421 3372 3420 +f 3421 3373 3372 +f 3422 3373 3421 +f 3422 3374 3373 +f 3423 3374 3422 +f 3423 3375 3374 +f 3424 3375 3423 +f 3424 3376 3375 +f 3425 3376 3424 +f 3425 3377 3376 +f 3426 3377 3425 +f 3426 3378 3377 +f 3427 3378 3426 +f 3427 3379 3378 +f 3428 3379 3427 +f 3428 3380 3379 +f 3429 3380 3428 +f 3429 3381 3380 +f 3430 3381 3429 +f 3430 3382 3381 +f 3431 3382 3430 +f 3431 3383 3382 +f 3432 3383 3431 +f 3432 3384 3383 +f 3433 3384 3432 +f 3433 3385 3384 +f 3434 3385 3433 +f 3434 3386 3385 +f 3435 3386 3434 +f 3435 3387 3386 +f 3436 3387 3435 +f 3436 3388 3387 +f 3437 3388 3436 +f 3437 3389 3388 +f 3438 3389 3437 +f 3438 3390 3389 +f 3439 3390 3438 +f 3439 3391 3390 +f 3440 3391 3439 +f 3440 3392 3391 +f 3441 3392 3440 +f 3441 3393 3392 +f 3442 3393 3441 +f 3442 3394 3393 +f 3443 3394 3442 +f 3443 3395 3394 +f 3444 3395 3443 +f 3444 3396 3395 +f 3445 3396 3444 +f 3445 3397 3396 +f 3446 3397 3445 +f 3446 3398 3397 +f 3447 3398 3446 +f 3447 3399 3398 +f 3448 3399 3447 +f 3448 3400 3399 +f 3449 3400 3448 +f 3449 3401 3400 +f 3403 3401 3449 +f 3403 3355 3401 +f 3450 3403 3451 +f 3450 3402 3403 +f 3452 3402 3450 +f 3452 3404 3402 +f 3453 3404 3452 +f 3453 3405 3404 +f 3454 3405 3453 +f 3454 3406 3405 +f 3455 3406 3454 +f 3455 3407 3406 +f 3456 3407 3455 +f 3456 3408 3407 +f 3457 3408 3456 +f 3457 3409 3408 +f 3458 3409 3457 +f 3458 3410 3409 +f 3459 3410 3458 +f 3459 3411 3410 +f 3460 3411 3459 +f 3460 3412 3411 +f 3461 3412 3460 +f 3461 3413 3412 +f 3462 3413 3461 +f 3462 3414 3413 +f 3463 3414 3462 +f 3463 3415 3414 +f 3464 3415 3463 +f 3464 3416 3415 +f 3465 3416 3464 +f 3465 3417 3416 +f 3466 3417 3465 +f 3466 3418 3417 +f 3467 3418 3466 +f 3467 3419 3418 +f 3468 3419 3467 +f 3468 3420 3419 +f 3469 3420 3468 +f 3469 3421 3420 +f 3470 3421 3469 +f 3470 3422 3421 +f 3471 3422 3470 +f 3471 3423 3422 +f 3472 3423 3471 +f 3472 3424 3423 +f 3473 3424 3472 +f 3473 3425 3424 +f 3474 3425 3473 +f 3474 3426 3425 +f 3475 3426 3474 +f 3475 3427 3426 +f 3476 3427 3475 +f 3476 3428 3427 +f 3477 3428 3476 +f 3477 3429 3428 +f 3478 3429 3477 +f 3478 3430 3429 +f 3479 3430 3478 +f 3479 3431 3430 +f 3480 3431 3479 +f 3480 3432 3431 +f 3481 3432 3480 +f 3481 3433 3432 +f 3482 3433 3481 +f 3482 3434 3433 +f 3483 3434 3482 +f 3483 3435 3434 +f 3484 3435 3483 +f 3484 3436 3435 +f 3485 3436 3484 +f 3485 3437 3436 +f 3486 3437 3485 +f 3486 3438 3437 +f 3487 3438 3486 +f 3487 3439 3438 +f 3488 3439 3487 +f 3488 3440 3439 +f 3489 3440 3488 +f 3489 3441 3440 +f 3490 3441 3489 +f 3490 3442 3441 +f 3491 3442 3490 +f 3491 3443 3442 +f 3492 3443 3491 +f 3492 3444 3443 +f 3493 3444 3492 +f 3493 3445 3444 +f 3494 3445 3493 +f 3494 3446 3445 +f 3495 3446 3494 +f 3495 3447 3446 +f 3496 3447 3495 +f 3496 3448 3447 +f 3497 3448 3496 +f 3497 3449 3448 +f 3451 3449 3497 +f 3451 3403 3449 +f 3498 3451 3499 +f 3498 3450 3451 +f 3500 3450 3498 +f 3500 3452 3450 +f 3501 3452 3500 +f 3501 3453 3452 +f 3502 3453 3501 +f 3502 3454 3453 +f 3503 3454 3502 +f 3503 3455 3454 +f 3504 3455 3503 +f 3504 3456 3455 +f 3505 3456 3504 +f 3505 3457 3456 +f 3506 3457 3505 +f 3506 3458 3457 +f 3507 3458 3506 +f 3507 3459 3458 +f 3508 3459 3507 +f 3508 3460 3459 +f 3509 3460 3508 +f 3509 3461 3460 +f 3510 3461 3509 +f 3510 3462 3461 +f 3511 3462 3510 +f 3511 3463 3462 +f 3512 3463 3511 +f 3512 3464 3463 +f 3513 3464 3512 +f 3513 3465 3464 +f 3514 3465 3513 +f 3514 3466 3465 +f 3515 3466 3514 +f 3515 3467 3466 +f 3516 3467 3515 +f 3516 3468 3467 +f 3517 3468 3516 +f 3517 3469 3468 +f 3518 3469 3517 +f 3518 3470 3469 +f 3519 3470 3518 +f 3519 3471 3470 +f 3520 3471 3519 +f 3520 3472 3471 +f 3521 3472 3520 +f 3521 3473 3472 +f 3522 3473 3521 +f 3522 3474 3473 +f 3523 3474 3522 +f 3523 3475 3474 +f 3524 3475 3523 +f 3524 3476 3475 +f 3525 3476 3524 +f 3525 3477 3476 +f 3526 3477 3525 +f 3526 3478 3477 +f 3527 3478 3526 +f 3527 3479 3478 +f 3528 3479 3527 +f 3528 3480 3479 +f 3529 3480 3528 +f 3529 3481 3480 +f 3530 3481 3529 +f 3530 3482 3481 +f 3531 3482 3530 +f 3531 3483 3482 +f 3532 3483 3531 +f 3532 3484 3483 +f 3533 3484 3532 +f 3533 3485 3484 +f 3534 3485 3533 +f 3534 3486 3485 +f 3535 3486 3534 +f 3535 3487 3486 +f 3536 3487 3535 +f 3536 3488 3487 +f 3537 3488 3536 +f 3537 3489 3488 +f 3538 3489 3537 +f 3538 3490 3489 +f 3539 3490 3538 +f 3539 3491 3490 +f 3540 3491 3539 +f 3540 3492 3491 +f 3541 3492 3540 +f 3541 3493 3492 +f 3542 3493 3541 +f 3542 3494 3493 +f 3543 3494 3542 +f 3543 3495 3494 +f 3544 3495 3543 +f 3544 3496 3495 +f 3545 3496 3544 +f 3545 3497 3496 +f 3499 3497 3545 +f 3499 3451 3497 +f 3546 3499 3547 +f 3546 3498 3499 +f 3548 3498 3546 +f 3548 3500 3498 +f 3549 3500 3548 +f 3549 3501 3500 +f 3550 3501 3549 +f 3550 3502 3501 +f 3551 3502 3550 +f 3551 3503 3502 +f 3552 3503 3551 +f 3552 3504 3503 +f 3553 3504 3552 +f 3553 3505 3504 +f 3554 3505 3553 +f 3554 3506 3505 +f 3555 3506 3554 +f 3555 3507 3506 +f 3556 3507 3555 +f 3556 3508 3507 +f 3557 3508 3556 +f 3557 3509 3508 +f 3558 3509 3557 +f 3558 3510 3509 +f 3559 3510 3558 +f 3559 3511 3510 +f 3560 3511 3559 +f 3560 3512 3511 +f 3561 3512 3560 +f 3561 3513 3512 +f 3562 3513 3561 +f 3562 3514 3513 +f 3563 3514 3562 +f 3563 3515 3514 +f 3564 3515 3563 +f 3564 3516 3515 +f 3565 3516 3564 +f 3565 3517 3516 +f 3566 3517 3565 +f 3566 3518 3517 +f 3567 3518 3566 +f 3567 3519 3518 +f 3568 3519 3567 +f 3568 3520 3519 +f 3569 3520 3568 +f 3569 3521 3520 +f 3570 3521 3569 +f 3570 3522 3521 +f 3571 3522 3570 +f 3571 3523 3522 +f 3572 3523 3571 +f 3572 3524 3523 +f 3573 3524 3572 +f 3573 3525 3524 +f 3574 3525 3573 +f 3574 3526 3525 +f 3575 3526 3574 +f 3575 3527 3526 +f 3576 3527 3575 +f 3576 3528 3527 +f 3577 3528 3576 +f 3577 3529 3528 +f 3578 3529 3577 +f 3578 3530 3529 +f 3579 3530 3578 +f 3579 3531 3530 +f 3580 3531 3579 +f 3580 3532 3531 +f 3581 3532 3580 +f 3581 3533 3532 +f 3582 3533 3581 +f 3582 3534 3533 +f 3583 3534 3582 +f 3583 3535 3534 +f 3584 3535 3583 +f 3584 3536 3535 +f 3585 3536 3584 +f 3585 3537 3536 +f 3586 3537 3585 +f 3586 3538 3537 +f 3587 3538 3586 +f 3587 3539 3538 +f 3588 3539 3587 +f 3588 3540 3539 +f 3589 3540 3588 +f 3589 3541 3540 +f 3590 3541 3589 +f 3590 3542 3541 +f 3591 3542 3590 +f 3591 3543 3542 +f 3592 3543 3591 +f 3592 3544 3543 +f 3593 3544 3592 +f 3593 3545 3544 +f 3547 3545 3593 +f 3547 3499 3545 +f 3594 3547 3595 +f 3594 3546 3547 +f 3596 3546 3594 +f 3596 3548 3546 +f 3597 3548 3596 +f 3597 3549 3548 +f 3598 3549 3597 +f 3598 3550 3549 +f 3599 3550 3598 +f 3599 3551 3550 +f 3600 3551 3599 +f 3600 3552 3551 +f 3601 3552 3600 +f 3601 3553 3552 +f 3602 3553 3601 +f 3602 3554 3553 +f 3603 3554 3602 +f 3603 3555 3554 +f 3604 3555 3603 +f 3604 3556 3555 +f 3605 3556 3604 +f 3605 3557 3556 +f 3606 3557 3605 +f 3606 3558 3557 +f 3607 3558 3606 +f 3607 3559 3558 +f 3608 3559 3607 +f 3608 3560 3559 +f 3609 3560 3608 +f 3609 3561 3560 +f 3610 3561 3609 +f 3610 3562 3561 +f 3611 3562 3610 +f 3611 3563 3562 +f 3612 3563 3611 +f 3612 3564 3563 +f 3613 3564 3612 +f 3613 3565 3564 +f 3614 3565 3613 +f 3614 3566 3565 +f 3615 3566 3614 +f 3615 3567 3566 +f 3616 3567 3615 +f 3616 3568 3567 +f 3617 3568 3616 +f 3617 3569 3568 +f 3618 3569 3617 +f 3618 3570 3569 +f 3619 3570 3618 +f 3619 3571 3570 +f 3620 3571 3619 +f 3620 3572 3571 +f 3620 3573 3572 +f 3621 3573 3620 +f 3622 3573 3621 +f 3622 3574 3573 +f 3623 3574 3622 +f 3623 3575 3574 +f 3623 3576 3575 +f 3624 3576 3623 +f 3625 3576 3624 +f 3625 3577 3576 +f 3626 3577 3625 +f 3626 3578 3577 +f 3627 3578 3626 +f 3627 3579 3578 +f 3628 3579 3627 +f 3628 3580 3579 +f 3629 3580 3628 +f 3629 3581 3580 +f 3630 3581 3629 +f 3630 3582 3581 +f 3631 3582 3630 +f 3631 3583 3582 +f 3632 3583 3631 +f 3632 3584 3583 +f 3633 3584 3632 +f 3633 3585 3584 +f 3634 3585 3633 +f 3634 3586 3585 +f 3635 3586 3634 +f 3635 3587 3586 +f 3635 3588 3587 +f 3636 3588 3635 +f 3637 3588 3636 +f 3637 3589 3588 +f 3638 3589 3637 +f 3638 3590 3589 +f 3639 3590 3638 +f 3639 3591 3590 +f 3640 3591 3639 +f 3640 3592 3591 +f 3641 3592 3640 +f 3641 3593 3592 +f 3595 3593 3641 +f 3595 3547 3593 +f 3642 885 3643 +f 3642 3644 885 +f 3645 3644 3642 +f 3645 3646 3644 +f 3647 3646 3645 +f 3647 3648 3646 +f 3649 3648 3647 +f 3649 3650 3648 +f 3649 3651 3650 +f 3652 3651 3649 +f 3653 3651 3652 +f 3653 3654 3651 +f 3655 3654 3653 +f 3655 3656 3654 +f 3657 3656 3655 +f 3657 3658 3656 +f 3659 3658 3657 +f 3659 3660 3658 +f 3659 3661 3660 +f 3662 3661 3659 +f 3663 3661 3662 +f 3663 3664 3661 +f 3665 3664 3663 +f 3665 3666 3664 +f 3667 3666 3665 +f 3667 3668 3666 +f 3669 3668 3667 +f 3669 3670 3668 +f 3671 3670 3669 +f 3671 3672 3670 +f 3673 3672 3671 +f 3673 3674 3672 +f 3675 3674 3673 +f 3675 3676 3674 +f 3677 3676 3675 +f 3677 3678 3676 +f 3679 3678 3677 +f 3679 3680 3678 +f 3681 3680 3679 +f 3681 3682 3680 +f 3683 3682 3681 +f 3683 3684 3682 +f 3685 3684 3683 +f 3685 3686 3684 +f 3687 3686 3685 +f 3687 3688 3686 +f 3689 3688 3687 +f 3689 901 3688 +f 3690 901 3689 +f 3690 3691 901 +f 3692 3691 3690 +f 3692 3693 3691 +f 3694 3693 3692 +f 3694 3695 3693 +f 3696 3695 3694 +f 3696 3697 3695 +f 3698 3697 3696 +f 3698 3699 3697 +f 3700 3699 3698 +f 3700 3701 3699 +f 3702 3701 3700 +f 3702 3703 3701 +f 3704 3703 3702 +f 3704 3705 3703 +f 3706 3705 3704 +f 3706 3707 3705 +f 3706 3708 3707 +f 3709 3708 3706 +f 3710 3708 3709 +f 3710 3711 3708 +f 3712 3711 3710 +f 3712 3713 3711 +f 3714 3713 3712 +f 3714 3715 3713 +f 3716 3715 3714 +f 3716 3717 3715 +f 3718 3717 3716 +f 3718 3719 3717 +f 3720 3719 3718 +f 3720 3721 3719 +f 3720 3722 3721 +f 3723 3722 3720 +f 3724 3722 3723 +f 3724 3725 3722 +f 3724 3726 3725 +f 3727 3726 3724 +f 3728 3726 3727 +f 3728 3729 3726 +f 3730 3729 3728 +f 3730 3731 3729 +f 3732 3731 3730 +f 3732 3733 3731 +f 3734 3733 3732 +f 3734 3735 3733 +f 3643 3735 3734 +f 3643 885 3735 +f 3736 3643 3737 +f 3736 3642 3643 +f 3738 3642 3736 +f 3738 3645 3642 +f 3739 3645 3738 +f 3739 3647 3645 +f 3740 3647 3739 +f 3740 3649 3647 +f 3741 3649 3740 +f 3741 3652 3649 +f 3742 3652 3741 +f 3742 3653 3652 +f 3743 3653 3742 +f 3743 3655 3653 +f 3744 3655 3743 +f 3744 3657 3655 +f 3745 3657 3744 +f 3745 3659 3657 +f 3746 3659 3745 +f 3746 3662 3659 +f 3747 3662 3746 +f 3747 3663 3662 +f 3748 3663 3747 +f 3748 3665 3663 +f 3749 3665 3748 +f 3749 3667 3665 +f 3750 3667 3749 +f 3750 3669 3667 +f 3751 3669 3750 +f 3751 3671 3669 +f 3752 3671 3751 +f 3752 3673 3671 +f 3753 3673 3752 +f 3753 3675 3673 +f 3754 3675 3753 +f 3754 3677 3675 +f 3755 3677 3754 +f 3755 3679 3677 +f 3756 3679 3755 +f 3756 3681 3679 +f 3757 3681 3756 +f 3757 3683 3681 +f 3758 3683 3757 +f 3758 3685 3683 +f 3759 3685 3758 +f 3759 3687 3685 +f 3760 3687 3759 +f 3760 3689 3687 +f 3761 3689 3760 +f 3761 3690 3689 +f 3762 3690 3761 +f 3762 3692 3690 +f 3763 3692 3762 +f 3763 3694 3692 +f 3764 3694 3763 +f 3764 3696 3694 +f 3765 3696 3764 +f 3765 3698 3696 +f 3766 3698 3765 +f 3766 3700 3698 +f 3767 3700 3766 +f 3767 3702 3700 +f 3768 3702 3767 +f 3768 3704 3702 +f 3769 3704 3768 +f 3769 3706 3704 +f 3770 3706 3769 +f 3770 3709 3706 +f 3771 3709 3770 +f 3771 3710 3709 +f 3772 3710 3771 +f 3772 3712 3710 +f 3773 3712 3772 +f 3773 3714 3712 +f 3774 3714 3773 +f 3774 3716 3714 +f 3775 3716 3774 +f 3775 3718 3716 +f 3776 3718 3775 +f 3776 3720 3718 +f 3777 3720 3776 +f 3777 3723 3720 +f 3778 3723 3777 +f 3778 3724 3723 +f 3779 3724 3778 +f 3779 3727 3724 +f 3780 3727 3779 +f 3780 3728 3727 +f 3781 3728 3780 +f 3781 3730 3728 +f 3782 3730 3781 +f 3782 3732 3730 +f 3783 3732 3782 +f 3783 3734 3732 +f 3737 3734 3783 +f 3737 3643 3734 +f 3784 3737 3785 +f 3784 3736 3737 +f 3786 3736 3784 +f 3786 3738 3736 +f 3787 3738 3786 +f 3787 3739 3738 +f 3788 3739 3787 +f 3788 3740 3739 +f 3789 3740 3788 +f 3789 3741 3740 +f 3790 3741 3789 +f 3790 3742 3741 +f 3791 3742 3790 +f 3791 3743 3742 +f 3792 3743 3791 +f 3792 3744 3743 +f 3793 3744 3792 +f 3793 3745 3744 +f 3794 3745 3793 +f 3794 3746 3745 +f 3795 3746 3794 +f 3795 3747 3746 +f 3796 3747 3795 +f 3796 3748 3747 +f 3797 3748 3796 +f 3797 3749 3748 +f 3798 3749 3797 +f 3798 3750 3749 +f 3799 3750 3798 +f 3799 3751 3750 +f 3800 3751 3799 +f 3800 3752 3751 +f 3801 3752 3800 +f 3801 3753 3752 +f 3802 3753 3801 +f 3802 3754 3753 +f 3803 3754 3802 +f 3803 3755 3754 +f 3804 3755 3803 +f 3804 3756 3755 +f 3805 3756 3804 +f 3805 3757 3756 +f 3806 3757 3805 +f 3806 3758 3757 +f 3807 3758 3806 +f 3807 3759 3758 +f 3808 3759 3807 +f 3808 3760 3759 +f 3809 3760 3808 +f 3809 3761 3760 +f 3810 3761 3809 +f 3810 3762 3761 +f 3811 3762 3810 +f 3811 3763 3762 +f 3812 3763 3811 +f 3812 3764 3763 +f 3813 3764 3812 +f 3813 3765 3764 +f 3814 3765 3813 +f 3814 3766 3765 +f 3815 3766 3814 +f 3815 3767 3766 +f 3816 3767 3815 +f 3816 3768 3767 +f 3817 3768 3816 +f 3817 3769 3768 +f 3818 3769 3817 +f 3818 3770 3769 +f 3819 3770 3818 +f 3819 3771 3770 +f 3820 3771 3819 +f 3820 3772 3771 +f 3821 3772 3820 +f 3821 3773 3772 +f 3822 3773 3821 +f 3822 3774 3773 +f 3823 3774 3822 +f 3823 3775 3774 +f 3824 3775 3823 +f 3824 3776 3775 +f 3825 3776 3824 +f 3825 3777 3776 +f 3826 3777 3825 +f 3826 3778 3777 +f 3827 3778 3826 +f 3827 3779 3778 +f 3828 3779 3827 +f 3828 3780 3779 +f 3829 3780 3828 +f 3829 3781 3780 +f 3830 3781 3829 +f 3830 3782 3781 +f 3831 3782 3830 +f 3831 3783 3782 +f 3785 3783 3831 +f 3785 3737 3783 +f 3832 3785 3833 +f 3832 3784 3785 +f 3834 3784 3832 +f 3834 3786 3784 +f 3835 3786 3834 +f 3835 3787 3786 +f 3836 3787 3835 +f 3836 3788 3787 +f 3837 3788 3836 +f 3837 3789 3788 +f 3838 3789 3837 +f 3838 3790 3789 +f 3839 3790 3838 +f 3839 3791 3790 +f 3840 3791 3839 +f 3840 3792 3791 +f 3841 3792 3840 +f 3841 3793 3792 +f 3842 3793 3841 +f 3842 3794 3793 +f 3843 3794 3842 +f 3843 3795 3794 +f 3844 3795 3843 +f 3844 3796 3795 +f 3845 3796 3844 +f 3845 3797 3796 +f 3846 3797 3845 +f 3846 3798 3797 +f 3847 3798 3846 +f 3847 3799 3798 +f 3848 3799 3847 +f 3848 3800 3799 +f 3849 3800 3848 +f 3849 3801 3800 +f 3850 3801 3849 +f 3850 3802 3801 +f 3851 3802 3850 +f 3851 3803 3802 +f 3852 3803 3851 +f 3852 3804 3803 +f 3853 3804 3852 +f 3853 3805 3804 +f 3854 3805 3853 +f 3854 3806 3805 +f 3855 3806 3854 +f 3855 3807 3806 +f 3856 3807 3855 +f 3856 3808 3807 +f 3857 3808 3856 +f 3857 3809 3808 +f 3858 3809 3857 +f 3858 3810 3809 +f 3859 3810 3858 +f 3859 3811 3810 +f 3860 3811 3859 +f 3860 3812 3811 +f 3861 3812 3860 +f 3861 3813 3812 +f 3862 3813 3861 +f 3862 3814 3813 +f 3863 3814 3862 +f 3863 3815 3814 +f 3864 3815 3863 +f 3864 3816 3815 +f 3865 3816 3864 +f 3865 3817 3816 +f 3866 3817 3865 +f 3866 3818 3817 +f 3867 3818 3866 +f 3867 3819 3818 +f 3868 3819 3867 +f 3868 3820 3819 +f 3869 3820 3868 +f 3869 3821 3820 +f 3870 3821 3869 +f 3870 3822 3821 +f 3871 3822 3870 +f 3871 3823 3822 +f 3872 3823 3871 +f 3872 3824 3823 +f 3873 3824 3872 +f 3873 3825 3824 +f 3874 3825 3873 +f 3874 3826 3825 +f 3875 3826 3874 +f 3875 3827 3826 +f 3876 3827 3875 +f 3876 3828 3827 +f 3877 3828 3876 +f 3877 3829 3828 +f 3878 3829 3877 +f 3878 3830 3829 +f 3879 3830 3878 +f 3879 3831 3830 +f 3833 3831 3879 +f 3833 3785 3831 +f 3880 3833 3881 +f 3880 3832 3833 +f 3882 3832 3880 +f 3882 3834 3832 +f 3883 3834 3882 +f 3883 3835 3834 +f 3884 3835 3883 +f 3884 3836 3835 +f 3885 3836 3884 +f 3885 3837 3836 +f 3886 3837 3885 +f 3886 3838 3837 +f 3887 3838 3886 +f 3887 3839 3838 +f 3888 3839 3887 +f 3888 3840 3839 +f 3889 3840 3888 +f 3889 3841 3840 +f 3890 3841 3889 +f 3890 3842 3841 +f 3891 3842 3890 +f 3891 3843 3842 +f 3892 3843 3891 +f 3892 3844 3843 +f 3893 3844 3892 +f 3893 3845 3844 +f 3894 3845 3893 +f 3894 3846 3845 +f 3895 3846 3894 +f 3895 3847 3846 +f 3896 3847 3895 +f 3896 3848 3847 +f 3897 3848 3896 +f 3897 3849 3848 +f 3898 3849 3897 +f 3898 3850 3849 +f 3899 3850 3898 +f 3899 3851 3850 +f 3900 3851 3899 +f 3900 3852 3851 +f 3901 3852 3900 +f 3901 3853 3852 +f 3902 3853 3901 +f 3902 3854 3853 +f 3903 3854 3902 +f 3903 3855 3854 +f 3904 3855 3903 +f 3904 3856 3855 +f 3905 3856 3904 +f 3905 3857 3856 +f 3906 3857 3905 +f 3906 3858 3857 +f 3907 3858 3906 +f 3907 3859 3858 +f 3908 3859 3907 +f 3908 3860 3859 +f 3909 3860 3908 +f 3909 3861 3860 +f 3910 3861 3909 +f 3910 3862 3861 +f 3911 3862 3910 +f 3911 3863 3862 +f 3912 3863 3911 +f 3912 3864 3863 +f 3913 3864 3912 +f 3913 3865 3864 +f 3914 3865 3913 +f 3914 3866 3865 +f 3915 3866 3914 +f 3915 3867 3866 +f 3916 3867 3915 +f 3916 3868 3867 +f 3917 3868 3916 +f 3917 3869 3868 +f 3918 3869 3917 +f 3918 3870 3869 +f 3919 3870 3918 +f 3919 3871 3870 +f 3920 3871 3919 +f 3920 3872 3871 +f 3921 3872 3920 +f 3921 3873 3872 +f 3922 3873 3921 +f 3922 3874 3873 +f 3923 3874 3922 +f 3923 3875 3874 +f 3924 3875 3923 +f 3924 3876 3875 +f 3925 3876 3924 +f 3925 3877 3876 +f 3926 3877 3925 +f 3926 3878 3877 +f 3927 3878 3926 +f 3927 3879 3878 +f 3881 3879 3927 +f 3881 3833 3879 +f 3928 3881 3929 +f 3928 3880 3881 +f 3930 3880 3928 +f 3930 3882 3880 +f 3931 3882 3930 +f 3931 3883 3882 +f 3932 3883 3931 +f 3932 3884 3883 +f 3933 3884 3932 +f 3933 3885 3884 +f 3934 3885 3933 +f 3934 3886 3885 +f 3935 3886 3934 +f 3935 3887 3886 +f 3936 3887 3935 +f 3936 3888 3887 +f 3937 3888 3936 +f 3937 3889 3888 +f 3938 3889 3937 +f 3938 3890 3889 +f 3939 3890 3938 +f 3939 3891 3890 +f 3940 3891 3939 +f 3940 3892 3891 +f 3941 3892 3940 +f 3941 3893 3892 +f 3942 3893 3941 +f 3942 3894 3893 +f 3943 3894 3942 +f 3943 3895 3894 +f 3944 3895 3943 +f 3944 3896 3895 +f 3945 3896 3944 +f 3945 3897 3896 +f 3946 3897 3945 +f 3946 3898 3897 +f 3947 3898 3946 +f 3947 3899 3898 +f 3948 3899 3947 +f 3948 3900 3899 +f 3949 3900 3948 +f 3949 3901 3900 +f 3950 3901 3949 +f 3950 3902 3901 +f 3951 3902 3950 +f 3951 3903 3902 +f 3951 3904 3903 +f 3952 3904 3951 +f 3953 3904 3952 +f 3953 3905 3904 +f 3954 3905 3953 +f 3954 3906 3905 +f 3955 3906 3954 +f 3955 3907 3906 +f 3956 3907 3955 +f 3956 3908 3907 +f 3957 3908 3956 +f 3957 3909 3908 +f 3958 3909 3957 +f 3958 3910 3909 +f 3959 3910 3958 +f 3959 3911 3910 +f 3960 3911 3959 +f 3960 3912 3911 +f 3961 3912 3960 +f 3961 3913 3912 +f 3962 3913 3961 +f 3962 3914 3913 +f 3963 3914 3962 +f 3963 3915 3914 +f 3964 3915 3963 +f 3964 3916 3915 +f 3965 3916 3964 +f 3965 3917 3916 +f 3966 3917 3965 +f 3966 3918 3917 +f 3967 3918 3966 +f 3967 3919 3918 +f 3968 3919 3967 +f 3968 3920 3919 +f 3969 3920 3968 +f 3969 3921 3920 +f 3970 3921 3969 +f 3970 3922 3921 +f 3971 3922 3970 +f 3971 3923 3922 +f 3972 3923 3971 +f 3972 3924 3923 +f 3973 3924 3972 +f 3973 3925 3924 +f 3974 3925 3973 +f 3974 3926 3925 +f 3975 3926 3974 +f 3975 3927 3926 +f 3929 3927 3975 +f 3929 3881 3927 +f 3976 3977 1029 +f 3978 3977 3976 +f 3979 3977 3978 +f 3979 3980 3977 +f 3981 3980 3979 +f 3981 3982 3980 +f 3983 3982 3981 +f 3983 3984 3982 +f 3985 3984 3983 +f 3985 3986 3984 +f 3987 3986 3985 +f 3987 3988 3986 +f 3989 3988 3987 +f 3989 3990 3988 +f 3991 3990 3989 +f 3991 3992 3990 +f 3993 3992 3991 +f 3993 3994 3992 +f 3993 3995 3994 +f 3996 3995 3993 +f 3997 3995 3996 +f 3997 3998 3995 +f 3999 3998 3997 +f 3999 4000 3998 +f 4001 4000 3999 +f 4001 4002 4000 +f 4003 4002 4001 +f 4003 4004 4002 +f 4005 4004 4003 +f 4005 4006 4004 +f 4007 4006 4005 +f 4007 4008 4006 +f 4009 4008 4007 +f 4009 4010 4008 +f 4011 4010 4009 +f 4011 4012 4010 +f 4013 4012 4011 +f 4013 4014 4012 +f 4015 4014 4013 +f 4015 4016 4014 +f 4017 4016 4015 +f 4017 4018 4016 +f 4019 4018 4017 +f 4019 4020 4018 +f 4021 4020 4019 +f 4021 4022 4020 +f 4023 4022 4021 +f 4023 4024 4022 +f 4025 4024 4023 +f 4025 4026 4024 +f 4027 4026 4025 +f 4027 4028 4026 +f 4029 4028 4027 +f 4029 4030 4028 +f 4031 4030 4029 +f 4031 4032 4030 +f 4033 4032 4031 +f 4033 4034 4032 +f 4035 4034 4033 +f 4035 4036 4034 +f 4037 4036 4035 +f 4037 4038 4036 +f 4039 4038 4037 +f 4039 4040 4038 +f 4041 4040 4039 +f 4041 4042 4040 +f 4043 4042 4041 +f 4043 4044 4042 +f 4045 4044 4043 +f 4045 4046 4044 +f 4047 4046 4045 +f 4047 4048 4046 +f 4049 4048 4047 +f 4049 4050 4048 +f 4051 4050 4049 +f 4051 4052 4050 +f 4053 4052 4051 +f 4053 4054 4052 +f 4053 4055 4054 +f 4056 4055 4053 +f 4056 4057 4055 +f 4058 4057 4056 +f 4059 4057 4058 +f 4059 4060 4057 +f 4059 4061 4060 +f 4062 4061 4059 +f 4063 4061 4062 +f 4063 4064 4061 +f 4065 4064 4063 +f 4065 4066 4064 +f 4067 4066 4065 +f 4067 4068 4066 +f 4069 4068 4067 +f 4069 4070 4068 +f 3976 4070 4069 +f 3976 1029 4070 +f 4071 3976 4072 +f 4071 3978 3976 +f 4073 3978 4071 +f 4073 3979 3978 +f 4074 3979 4073 +f 4074 3981 3979 +f 4075 3981 4074 +f 4075 3983 3981 +f 4076 3983 4075 +f 4076 3985 3983 +f 4077 3985 4076 +f 4077 3987 3985 +f 4078 3987 4077 +f 4078 3989 3987 +f 4079 3989 4078 +f 4079 3991 3989 +f 4080 3991 4079 +f 4080 3993 3991 +f 4081 3993 4080 +f 4081 3996 3993 +f 4082 3996 4081 +f 4082 3997 3996 +f 4083 3997 4082 +f 4083 3999 3997 +f 4084 3999 4083 +f 4084 4001 3999 +f 4085 4001 4084 +f 4085 4003 4001 +f 4086 4003 4085 +f 4086 4005 4003 +f 4087 4005 4086 +f 4087 4007 4005 +f 4088 4007 4087 +f 4088 4009 4007 +f 4089 4009 4088 +f 4089 4011 4009 +f 4090 4011 4089 +f 4090 4013 4011 +f 4091 4013 4090 +f 4091 4015 4013 +f 4092 4015 4091 +f 4092 4017 4015 +f 4093 4017 4092 +f 4093 4019 4017 +f 4094 4019 4093 +f 4094 4021 4019 +f 4095 4021 4094 +f 4095 4023 4021 +f 4096 4023 4095 +f 4096 4025 4023 +f 4097 4025 4096 +f 4097 4027 4025 +f 4098 4027 4097 +f 4098 4029 4027 +f 4099 4029 4098 +f 4099 4031 4029 +f 4100 4031 4099 +f 4100 4033 4031 +f 4101 4033 4100 +f 4101 4035 4033 +f 4102 4035 4101 +f 4102 4037 4035 +f 4103 4037 4102 +f 4103 4039 4037 +f 4104 4039 4103 +f 4104 4041 4039 +f 4105 4041 4104 +f 4105 4043 4041 +f 4106 4043 4105 +f 4106 4045 4043 +f 4107 4045 4106 +f 4107 4047 4045 +f 4108 4047 4107 +f 4108 4049 4047 +f 4109 4049 4108 +f 4109 4051 4049 +f 4110 4051 4109 +f 4110 4053 4051 +f 4111 4053 4110 +f 4111 4056 4053 +f 4112 4056 4111 +f 4112 4058 4056 +f 4113 4058 4112 +f 4113 4059 4058 +f 4114 4059 4113 +f 4114 4062 4059 +f 4115 4062 4114 +f 4115 4063 4062 +f 4116 4063 4115 +f 4116 4065 4063 +f 4117 4065 4116 +f 4117 4067 4065 +f 4118 4067 4117 +f 4118 4069 4067 +f 4072 4069 4118 +f 4072 3976 4069 +f 4119 4072 4120 +f 4119 4071 4072 +f 4121 4071 4119 +f 4121 4073 4071 +f 4122 4073 4121 +f 4122 4074 4073 +f 4123 4074 4122 +f 4123 4075 4074 +f 4124 4075 4123 +f 4124 4076 4075 +f 4125 4076 4124 +f 4125 4077 4076 +f 4126 4077 4125 +f 4126 4078 4077 +f 4127 4078 4126 +f 4127 4079 4078 +f 4128 4079 4127 +f 4128 4080 4079 +f 4129 4080 4128 +f 4129 4081 4080 +f 4130 4081 4129 +f 4130 4082 4081 +f 4131 4082 4130 +f 4131 4083 4082 +f 4132 4083 4131 +f 4132 4084 4083 +f 4133 4084 4132 +f 4133 4085 4084 +f 4134 4085 4133 +f 4134 4086 4085 +f 4135 4086 4134 +f 4135 4087 4086 +f 4136 4087 4135 +f 4136 4088 4087 +f 4137 4088 4136 +f 4137 4089 4088 +f 4138 4089 4137 +f 4138 4090 4089 +f 4139 4090 4138 +f 4139 4091 4090 +f 4140 4091 4139 +f 4140 4092 4091 +f 4141 4092 4140 +f 4141 4093 4092 +f 4142 4093 4141 +f 4142 4094 4093 +f 4143 4094 4142 +f 4143 4095 4094 +f 4144 4095 4143 +f 4144 4096 4095 +f 4145 4096 4144 +f 4145 4097 4096 +f 4146 4097 4145 +f 4146 4098 4097 +f 4147 4098 4146 +f 4147 4099 4098 +f 4148 4099 4147 +f 4148 4100 4099 +f 4149 4100 4148 +f 4149 4101 4100 +f 4150 4101 4149 +f 4150 4102 4101 +f 4151 4102 4150 +f 4151 4103 4102 +f 4152 4103 4151 +f 4152 4104 4103 +f 4153 4104 4152 +f 4153 4105 4104 +f 4154 4105 4153 +f 4154 4106 4105 +f 4155 4106 4154 +f 4155 4107 4106 +f 4156 4107 4155 +f 4156 4108 4107 +f 4157 4108 4156 +f 4157 4109 4108 +f 4158 4109 4157 +f 4158 4110 4109 +f 4159 4110 4158 +f 4159 4111 4110 +f 4160 4111 4159 +f 4160 4112 4111 +f 4161 4112 4160 +f 4161 4113 4112 +f 4162 4113 4161 +f 4162 4114 4113 +f 4163 4114 4162 +f 4163 4115 4114 +f 4164 4115 4163 +f 4164 4116 4115 +f 4165 4116 4164 +f 4165 4117 4116 +f 4166 4117 4165 +f 4166 4118 4117 +f 4120 4118 4166 +f 4120 4072 4118 +f 4167 4120 4168 +f 4167 4119 4120 +f 4169 4119 4167 +f 4169 4121 4119 +f 4170 4121 4169 +f 4170 4122 4121 +f 4171 4122 4170 +f 4171 4123 4122 +f 4172 4123 4171 +f 4172 4124 4123 +f 4173 4124 4172 +f 4173 4125 4124 +f 4174 4125 4173 +f 4174 4126 4125 +f 4175 4126 4174 +f 4175 4127 4126 +f 4176 4127 4175 +f 4176 4128 4127 +f 4177 4128 4176 +f 4177 4129 4128 +f 4178 4129 4177 +f 4178 4130 4129 +f 4179 4130 4178 +f 4179 4131 4130 +f 4180 4131 4179 +f 4180 4132 4131 +f 4181 4132 4180 +f 4181 4133 4132 +f 4182 4133 4181 +f 4182 4134 4133 +f 4183 4134 4182 +f 4183 4135 4134 +f 4184 4135 4183 +f 4184 4136 4135 +f 4185 4136 4184 +f 4185 4137 4136 +f 4186 4137 4185 +f 4186 4138 4137 +f 4187 4138 4186 +f 4187 4139 4138 +f 4188 4139 4187 +f 4188 4140 4139 +f 4189 4140 4188 +f 4189 4141 4140 +f 4190 4141 4189 +f 4190 4142 4141 +f 4191 4142 4190 +f 4191 4143 4142 +f 4192 4143 4191 +f 4192 4144 4143 +f 4193 4144 4192 +f 4193 4145 4144 +f 4194 4145 4193 +f 4194 4146 4145 +f 4195 4146 4194 +f 4195 4147 4146 +f 4196 4147 4195 +f 4196 4148 4147 +f 4197 4148 4196 +f 4197 4149 4148 +f 4198 4149 4197 +f 4198 4150 4149 +f 4199 4150 4198 +f 4199 4151 4150 +f 4200 4151 4199 +f 4200 4152 4151 +f 4201 4152 4200 +f 4201 4153 4152 +f 4202 4153 4201 +f 4202 4154 4153 +f 4203 4154 4202 +f 4203 4155 4154 +f 4204 4155 4203 +f 4204 4156 4155 +f 4205 4156 4204 +f 4205 4157 4156 +f 4206 4157 4205 +f 4206 4158 4157 +f 4207 4158 4206 +f 4207 4159 4158 +f 4208 4159 4207 +f 4208 4160 4159 +f 4209 4160 4208 +f 4209 4161 4160 +f 4210 4161 4209 +f 4210 4162 4161 +f 4211 4162 4210 +f 4211 4163 4162 +f 4212 4163 4211 +f 4212 4164 4163 +f 4213 4164 4212 +f 4213 4165 4164 +f 4214 4165 4213 +f 4214 4166 4165 +f 4168 4166 4214 +f 4168 4120 4166 +f 4215 4168 4216 +f 4215 4167 4168 +f 4217 4167 4215 +f 4217 4169 4167 +f 4218 4169 4217 +f 4218 4170 4169 +f 4219 4170 4218 +f 4219 4171 4170 +f 4220 4171 4219 +f 4220 4172 4171 +f 4221 4172 4220 +f 4221 4173 4172 +f 4222 4173 4221 +f 4222 4174 4173 +f 4223 4174 4222 +f 4223 4175 4174 +f 4224 4175 4223 +f 4224 4176 4175 +f 4225 4176 4224 +f 4225 4177 4176 +f 4226 4177 4225 +f 4226 4178 4177 +f 4227 4178 4226 +f 4227 4179 4178 +f 4228 4179 4227 +f 4228 4180 4179 +f 4229 4180 4228 +f 4229 4181 4180 +f 4230 4181 4229 +f 4230 4182 4181 +f 4231 4182 4230 +f 4231 4183 4182 +f 4232 4183 4231 +f 4232 4184 4183 +f 4233 4184 4232 +f 4233 4185 4184 +f 4234 4185 4233 +f 4234 4186 4185 +f 4235 4186 4234 +f 4235 4187 4186 +f 4236 4187 4235 +f 4236 4188 4187 +f 4237 4188 4236 +f 4237 4189 4188 +f 4238 4189 4237 +f 4238 4190 4189 +f 4239 4190 4238 +f 4239 4191 4190 +f 4240 4191 4239 +f 4240 4192 4191 +f 4241 4192 4240 +f 4241 4193 4192 +f 4242 4193 4241 +f 4242 4194 4193 +f 4243 4194 4242 +f 4243 4195 4194 +f 4244 4195 4243 +f 4244 4196 4195 +f 4245 4196 4244 +f 4245 4197 4196 +f 4246 4197 4245 +f 4246 4198 4197 +f 4247 4198 4246 +f 4247 4199 4198 +f 4248 4199 4247 +f 4248 4200 4199 +f 4249 4200 4248 +f 4249 4201 4200 +f 4250 4201 4249 +f 4250 4202 4201 +f 4251 4202 4250 +f 4251 4203 4202 +f 4252 4203 4251 +f 4252 4204 4203 +f 4253 4204 4252 +f 4253 4205 4204 +f 4254 4205 4253 +f 4254 4206 4205 +f 4255 4206 4254 +f 4255 4207 4206 +f 4256 4207 4255 +f 4256 4208 4207 +f 4257 4208 4256 +f 4257 4209 4208 +f 4258 4209 4257 +f 4258 4210 4209 +f 4259 4210 4258 +f 4259 4211 4210 +f 4260 4211 4259 +f 4260 4212 4211 +f 4261 4212 4260 +f 4261 4213 4212 +f 4262 4213 4261 +f 4262 4214 4213 +f 4216 4214 4262 +f 4216 4168 4214 +f 4263 4216 4264 +f 4263 4215 4216 +f 4265 4215 4263 +f 4265 4217 4215 +f 4266 4217 4265 +f 4266 4218 4217 +f 4267 4218 4266 +f 4267 4219 4218 +f 4268 4219 4267 +f 4268 4220 4219 +f 4269 4220 4268 +f 4269 4221 4220 +f 4270 4221 4269 +f 4270 4222 4221 +f 4271 4222 4270 +f 4271 4223 4222 +f 4272 4223 4271 +f 4272 4224 4223 +f 4273 4224 4272 +f 4273 4225 4224 +f 4274 4225 4273 +f 4274 4226 4225 +f 4275 4226 4274 +f 4275 4227 4226 +f 4276 4227 4275 +f 4276 4228 4227 +f 4277 4228 4276 +f 4277 4229 4228 +f 4278 4229 4277 +f 4278 4230 4229 +f 4279 4230 4278 +f 4279 4231 4230 +f 4280 4231 4279 +f 4280 4232 4231 +f 4281 4232 4280 +f 4281 4233 4232 +f 4282 4233 4281 +f 4282 4234 4233 +f 4283 4234 4282 +f 4283 4235 4234 +f 4284 4235 4283 +f 4284 4236 4235 +f 4285 4236 4284 +f 4285 4237 4236 +f 4286 4237 4285 +f 4286 4238 4237 +f 4287 4238 4286 +f 4287 4239 4238 +f 4288 4239 4287 +f 4288 4240 4239 +f 4289 4240 4288 +f 4289 4241 4240 +f 4290 4241 4289 +f 4290 4242 4241 +f 4291 4242 4290 +f 4291 4243 4242 +f 4292 4243 4291 +f 4292 4244 4243 +f 4293 4244 4292 +f 4293 4245 4244 +f 4294 4245 4293 +f 4294 4246 4245 +f 4295 4246 4294 +f 4295 4247 4246 +f 4296 4247 4295 +f 4296 4248 4247 +f 4297 4248 4296 +f 4297 4249 4248 +f 4298 4249 4297 +f 4298 4250 4249 +f 4299 4250 4298 +f 4299 4251 4250 +f 4300 4251 4299 +f 4300 4252 4251 +f 4301 4252 4300 +f 4301 4253 4252 +f 4302 4253 4301 +f 4302 4254 4253 +f 4303 4254 4302 +f 4303 4255 4254 +f 4304 4255 4303 +f 4304 4256 4255 +f 4305 4256 4304 +f 4305 4257 4256 +f 4306 4257 4305 +f 4306 4258 4257 +f 4307 4258 4306 +f 4307 4259 4258 +f 4308 4259 4307 +f 4308 4260 4259 +f 4309 4260 4308 +f 4309 4261 4260 +f 4310 4261 4309 +f 4310 4262 4261 +f 4264 4262 4310 +f 4264 4216 4262 +f 4311 1056 1010 +f 4312 1056 4311 +f 4313 1056 4312 +f 4313 1055 1056 +f 4314 1055 4313 +f 4314 1054 1055 +f 4315 1054 4314 +f 4315 1053 1054 +f 4316 1053 4315 +f 4316 1052 1053 +f 4317 1052 4316 +f 4317 1051 1052 +f 4318 1051 4317 +f 4318 1050 1051 +f 4319 1050 4318 +f 4319 1049 1050 +f 4320 1049 4319 +f 4320 1048 1049 +f 4321 1048 4320 +f 4321 1047 1048 +f 4322 1047 4321 +f 4322 1046 1047 +f 4322 1045 1046 +f 4323 1045 4322 +f 4324 1045 4323 +f 4324 1044 1045 +f 4325 1044 4324 +f 4325 1043 1044 +f 4326 1043 4325 +f 4326 1042 1043 +f 4327 1042 4326 +f 4327 1041 1042 +f 4328 1041 4327 +f 4328 1040 1041 +f 4329 1040 4328 +f 4329 1039 1040 +f 4330 1039 4329 +f 4330 1038 1039 +f 4331 1038 4330 +f 4331 1037 1038 +f 4332 1037 4331 +f 4332 1036 1037 +f 4333 1036 4332 +f 4333 1035 1036 +f 4334 1035 4333 +f 4334 1034 1035 +f 4335 1034 4334 +f 4335 1033 1034 +f 4336 1033 4335 +f 4336 1032 1033 +f 4337 1032 4336 +f 4337 1031 1032 +f 4337 1030 1031 +f 4338 1030 4337 +f 4339 1030 4338 +f 4339 1029 1030 +f 4340 1029 4339 +f 4340 1028 1029 +f 4341 1028 4340 +f 4341 1027 1028 +f 4342 1027 4341 +f 4342 1026 1027 +f 4343 1026 4342 +f 4343 1025 1026 +f 4344 1025 4343 +f 4344 1024 1025 +f 4345 1024 4344 +f 4345 1023 1024 +f 4346 1023 4345 +f 4346 1022 1023 +f 4347 1022 4346 +f 4347 1021 1022 +f 4348 1021 4347 +f 4348 1020 1021 +f 4349 1020 4348 +f 4349 1019 1020 +f 4350 1019 4349 +f 4350 1018 1019 +f 4351 1018 4350 +f 4351 1017 1018 +f 4352 1017 4351 +f 4352 1016 1017 +f 4352 1015 1016 +f 4353 1015 4352 +f 4354 1015 4353 +f 4354 1014 1015 +f 4355 1014 4354 +f 4355 1013 1014 +f 4356 1013 4355 +f 4356 1012 1013 +f 4357 1012 4356 +f 4357 1011 1012 +f 4358 1011 4357 +f 4358 1009 1011 +f 4311 1009 4358 +f 4311 1010 1009 +f 4359 4311 4360 +f 4359 4312 4311 +f 4361 4312 4359 +f 4361 4313 4312 +f 4362 4313 4361 +f 4362 4314 4313 +f 4363 4314 4362 +f 4363 4315 4314 +f 4364 4315 4363 +f 4364 4316 4315 +f 4365 4316 4364 +f 4365 4317 4316 +f 4366 4317 4365 +f 4366 4318 4317 +f 4367 4318 4366 +f 4367 4319 4318 +f 4368 4319 4367 +f 4368 4320 4319 +f 4369 4320 4368 +f 4369 4321 4320 +f 4370 4321 4369 +f 4370 4322 4321 +f 4371 4322 4370 +f 4371 4323 4322 +f 4372 4323 4371 +f 4372 4324 4323 +f 4373 4324 4372 +f 4373 4325 4324 +f 4373 4326 4325 +f 4374 4326 4373 +f 4375 4326 4374 +f 4375 4327 4326 +f 4376 4327 4375 +f 4376 4328 4327 +f 4376 4329 4328 +f 4377 4329 4376 +f 4378 4329 4377 +f 4378 4330 4329 +f 4379 4330 4378 +f 4379 4331 4330 +f 4380 4331 4379 +f 4380 4332 4331 +f 4381 4332 4380 +f 4381 4333 4332 +f 4382 4333 4381 +f 4382 4334 4333 +f 4383 4334 4382 +f 4383 4335 4334 +f 4384 4335 4383 +f 4384 4336 4335 +f 4385 4336 4384 +f 4385 4337 4336 +f 4386 4337 4385 +f 4386 4338 4337 +f 4387 4338 4386 +f 4387 4339 4338 +f 4388 4339 4387 +f 4388 4340 4339 +f 4389 4340 4388 +f 4389 4341 4340 +f 4390 4341 4389 +f 4390 4342 4341 +f 4391 4342 4390 +f 4391 4343 4342 +f 4392 4343 4391 +f 4392 4344 4343 +f 4393 4344 4392 +f 4393 4345 4344 +f 4394 4345 4393 +f 4394 4346 4345 +f 4395 4346 4394 +f 4395 4347 4346 +f 4396 4347 4395 +f 4396 4348 4347 +f 4397 4348 4396 +f 4397 4349 4348 +f 4398 4349 4397 +f 4398 4350 4349 +f 4399 4350 4398 +f 4399 4351 4350 +f 4400 4351 4399 +f 4400 4352 4351 +f 4401 4352 4400 +f 4401 4353 4352 +f 4402 4353 4401 +f 4402 4354 4353 +f 4403 4354 4402 +f 4403 4355 4354 +f 4404 4355 4403 +f 4404 4356 4355 +f 4405 4356 4404 +f 4405 4357 4356 +f 4406 4357 4405 +f 4406 4358 4357 +f 4360 4358 4406 +f 4360 4311 4358 +f 4407 4360 4408 +f 4407 4359 4360 +f 4409 4359 4407 +f 4409 4361 4359 +f 4410 4361 4409 +f 4410 4362 4361 +f 4411 4362 4410 +f 4411 4363 4362 +f 4412 4363 4411 +f 4412 4364 4363 +f 4413 4364 4412 +f 4413 4365 4364 +f 4414 4365 4413 +f 4414 4366 4365 +f 4415 4366 4414 +f 4415 4367 4366 +f 4416 4367 4415 +f 4416 4368 4367 +f 4417 4368 4416 +f 4417 4369 4368 +f 4418 4369 4417 +f 4418 4370 4369 +f 4419 4370 4418 +f 4419 4371 4370 +f 4420 4371 4419 +f 4420 4372 4371 +f 4421 4372 4420 +f 4421 4373 4372 +f 4422 4373 4421 +f 4422 4374 4373 +f 4422 4375 4374 +f 4423 4375 4422 +f 4424 4375 4423 +f 4424 4376 4375 +f 4425 4376 4424 +f 4425 4377 4376 +f 4426 4377 4425 +f 4426 4378 4377 +f 4427 4378 4426 +f 4427 4379 4378 +f 4428 4379 4427 +f 4428 4380 4379 +f 4429 4380 4428 +f 4429 4381 4380 +f 4430 4381 4429 +f 4430 4382 4381 +f 4431 4382 4430 +f 4431 4383 4382 +f 4432 4383 4431 +f 4432 4384 4383 +f 4433 4384 4432 +f 4433 4385 4384 +f 4434 4385 4433 +f 4434 4386 4385 +f 4435 4386 4434 +f 4435 4387 4386 +f 4436 4387 4435 +f 4436 4388 4387 +f 4437 4388 4436 +f 4437 4389 4388 +f 4438 4389 4437 +f 4438 4390 4389 +f 4439 4390 4438 +f 4439 4391 4390 +f 4440 4391 4439 +f 4440 4392 4391 +f 4441 4392 4440 +f 4441 4393 4392 +f 4442 4393 4441 +f 4442 4394 4393 +f 4443 4394 4442 +f 4443 4395 4394 +f 4444 4395 4443 +f 4444 4396 4395 +f 4445 4396 4444 +f 4445 4397 4396 +f 4446 4397 4445 +f 4446 4398 4397 +f 4447 4398 4446 +f 4447 4399 4398 +f 4448 4399 4447 +f 4448 4400 4399 +f 4449 4400 4448 +f 4449 4401 4400 +f 4450 4401 4449 +f 4450 4402 4401 +f 4451 4402 4450 +f 4451 4403 4402 +f 4452 4403 4451 +f 4452 4404 4403 +f 4453 4404 4452 +f 4453 4405 4404 +f 4454 4405 4453 +f 4454 4406 4405 +f 4408 4406 4454 +f 4408 4360 4406 +f 4455 4408 4456 +f 4455 4407 4408 +f 4457 4407 4455 +f 4457 4409 4407 +f 4458 4409 4457 +f 4458 4410 4409 +f 4459 4410 4458 +f 4459 4411 4410 +f 4460 4411 4459 +f 4460 4412 4411 +f 4461 4412 4460 +f 4461 4413 4412 +f 4462 4413 4461 +f 4462 4414 4413 +f 4463 4414 4462 +f 4463 4415 4414 +f 4464 4415 4463 +f 4464 4416 4415 +f 4465 4416 4464 +f 4465 4417 4416 +f 4466 4417 4465 +f 4466 4418 4417 +f 4467 4418 4466 +f 4467 4419 4418 +f 4468 4419 4467 +f 4468 4420 4419 +f 4469 4420 4468 +f 4469 4421 4420 +f 4470 4421 4469 +f 4470 4422 4421 +f 4471 4422 4470 +f 4471 4423 4422 +f 4472 4423 4471 +f 4472 4424 4423 +f 4473 4424 4472 +f 4473 4425 4424 +f 4474 4425 4473 +f 4474 4426 4425 +f 4475 4426 4474 +f 4475 4427 4426 +f 4476 4427 4475 +f 4476 4428 4427 +f 4477 4428 4476 +f 4477 4429 4428 +f 4478 4429 4477 +f 4478 4430 4429 +f 4479 4430 4478 +f 4479 4431 4430 +f 4480 4431 4479 +f 4480 4432 4431 +f 4481 4432 4480 +f 4481 4433 4432 +f 4482 4433 4481 +f 4482 4434 4433 +f 4483 4434 4482 +f 4483 4435 4434 +f 4484 4435 4483 +f 4484 4436 4435 +f 4485 4436 4484 +f 4485 4437 4436 +f 4486 4437 4485 +f 4486 4438 4437 +f 4486 4439 4438 +f 4487 4439 4486 +f 4488 4439 4487 +f 4488 4440 4439 +f 4489 4440 4488 +f 4489 4441 4440 +f 4490 4441 4489 +f 4490 4442 4441 +f 4491 4442 4490 +f 4491 4443 4442 +f 4492 4443 4491 +f 4492 4444 4443 +f 4493 4444 4492 +f 4493 4445 4444 +f 4494 4445 4493 +f 4494 4446 4445 +f 4495 4446 4494 +f 4495 4447 4446 +f 4496 4447 4495 +f 4496 4448 4447 +f 4497 4448 4496 +f 4497 4449 4448 +f 4498 4449 4497 +f 4498 4450 4449 +f 4499 4450 4498 +f 4499 4451 4450 +f 4500 4451 4499 +f 4500 4452 4451 +f 4501 4452 4500 +f 4501 4453 4452 +f 4502 4453 4501 +f 4502 4454 4453 +f 4456 4454 4502 +f 4456 4408 4454 +f 4503 4456 4504 +f 4503 4455 4456 +f 4505 4455 4503 +f 4505 4457 4455 +f 4506 4457 4505 +f 4506 4458 4457 +f 4507 4458 4506 +f 4507 4459 4458 +f 4508 4459 4507 +f 4508 4460 4459 +f 4509 4460 4508 +f 4509 4461 4460 +f 4510 4461 4509 +f 4510 4462 4461 +f 4511 4462 4510 +f 4511 4463 4462 +f 4512 4463 4511 +f 4512 4464 4463 +f 4513 4464 4512 +f 4513 4465 4464 +f 4514 4465 4513 +f 4514 4466 4465 +f 4515 4466 4514 +f 4515 4467 4466 +f 4516 4467 4515 +f 4516 4468 4467 +f 4517 4468 4516 +f 4517 4469 4468 +f 4518 4469 4517 +f 4518 4470 4469 +f 4519 4470 4518 +f 4519 4471 4470 +f 4520 4471 4519 +f 4520 4472 4471 +f 4521 4472 4520 +f 4521 4473 4472 +f 4522 4473 4521 +f 4522 4474 4473 +f 4523 4474 4522 +f 4523 4475 4474 +f 4524 4475 4523 +f 4524 4476 4475 +f 4525 4476 4524 +f 4525 4477 4476 +f 4526 4477 4525 +f 4526 4478 4477 +f 4527 4478 4526 +f 4527 4479 4478 +f 4528 4479 4527 +f 4528 4480 4479 +f 4529 4480 4528 +f 4529 4481 4480 +f 4530 4481 4529 +f 4530 4482 4481 +f 4531 4482 4530 +f 4531 4483 4482 +f 4532 4483 4531 +f 4532 4484 4483 +f 4533 4484 4532 +f 4533 4485 4484 +f 4534 4485 4533 +f 4534 4486 4485 +f 4535 4486 4534 +f 4535 4487 4486 +f 4536 4487 4535 +f 4536 4488 4487 +f 4537 4488 4536 +f 4537 4489 4488 +f 4538 4489 4537 +f 4538 4490 4489 +f 4539 4490 4538 +f 4539 4491 4490 +f 4540 4491 4539 +f 4540 4492 4491 +f 4541 4492 4540 +f 4541 4493 4492 +f 4542 4493 4541 +f 4542 4494 4493 +f 4543 4494 4542 +f 4543 4495 4494 +f 4544 4495 4543 +f 4544 4496 4495 +f 4545 4496 4544 +f 4545 4497 4496 +f 4546 4497 4545 +f 4546 4498 4497 +f 4547 4498 4546 +f 4547 4499 4498 +f 4548 4499 4547 +f 4548 4500 4499 +f 4549 4500 4548 +f 4549 4501 4500 +f 4550 4501 4549 +f 4550 4502 4501 +f 4504 4502 4550 +f 4504 4456 4502 +f 4551 4504 4552 +f 4551 4503 4504 +f 4553 4503 4551 +f 4553 4505 4503 +f 4554 4505 4553 +f 4554 4506 4505 +f 4555 4506 4554 +f 4555 4507 4506 +f 4556 4507 4555 +f 4556 4508 4507 +f 4557 4508 4556 +f 4557 4509 4508 +f 4558 4509 4557 +f 4558 4510 4509 +f 4559 4510 4558 +f 4559 4511 4510 +f 4560 4511 4559 +f 4560 4512 4511 +f 4561 4512 4560 +f 4561 4513 4512 +f 4562 4513 4561 +f 4562 4514 4513 +f 4563 4514 4562 +f 4563 4515 4514 +f 4564 4515 4563 +f 4564 4516 4515 +f 4565 4516 4564 +f 4565 4517 4516 +f 4566 4517 4565 +f 4566 4518 4517 +f 4567 4518 4566 +f 4567 4519 4518 +f 4568 4519 4567 +f 4568 4520 4519 +f 4569 4520 4568 +f 4569 4521 4520 +f 4570 4521 4569 +f 4570 4522 4521 +f 4571 4522 4570 +f 4571 4523 4522 +f 4572 4523 4571 +f 4572 4524 4523 +f 4573 4524 4572 +f 4573 4525 4524 +f 4574 4525 4573 +f 4574 4526 4525 +f 4575 4526 4574 +f 4575 4527 4526 +f 4576 4527 4575 +f 4576 4528 4527 +f 4577 4528 4576 +f 4577 4529 4528 +f 4578 4529 4577 +f 4578 4530 4529 +f 4579 4530 4578 +f 4579 4531 4530 +f 4580 4531 4579 +f 4580 4532 4531 +f 4581 4532 4580 +f 4581 4533 4532 +f 4582 4533 4581 +f 4582 4534 4533 +f 4583 4534 4582 +f 4583 4535 4534 +f 4584 4535 4583 +f 4584 4536 4535 +f 4585 4536 4584 +f 4585 4537 4536 +f 4586 4537 4585 +f 4586 4538 4537 +f 4587 4538 4586 +f 4587 4539 4538 +f 4588 4539 4587 +f 4588 4540 4539 +f 4589 4540 4588 +f 4589 4541 4540 +f 4590 4541 4589 +f 4590 4542 4541 +f 4591 4542 4590 +f 4591 4543 4542 +f 4592 4543 4591 +f 4592 4544 4543 +f 4593 4544 4592 +f 4593 4545 4544 +f 4594 4545 4593 +f 4594 4546 4545 +f 4595 4546 4594 +f 4595 4547 4546 +f 4596 4547 4595 +f 4596 4548 4547 +f 4597 4548 4596 +f 4597 4549 4548 +f 4598 4549 4597 +f 4598 4550 4549 +f 4552 4550 4598 +f 4552 4504 4550 +f 4599 4552 4600 +f 4599 4551 4552 +f 4601 4551 4599 +f 4601 4553 4551 +f 4602 4553 4601 +f 4602 4554 4553 +f 4603 4554 4602 +f 4603 4555 4554 +f 4604 4555 4603 +f 4604 4556 4555 +f 4605 4556 4604 +f 4605 4557 4556 +f 4606 4557 4605 +f 4606 4558 4557 +f 4607 4558 4606 +f 4607 4559 4558 +f 4608 4559 4607 +f 4608 4560 4559 +f 4609 4560 4608 +f 4609 4561 4560 +f 4610 4561 4609 +f 4610 4562 4561 +f 4611 4562 4610 +f 4611 4563 4562 +f 4612 4563 4611 +f 4612 4564 4563 +f 4613 4564 4612 +f 4613 4565 4564 +f 4614 4565 4613 +f 4614 4566 4565 +f 4615 4566 4614 +f 4615 4567 4566 +f 4616 4567 4615 +f 4616 4568 4567 +f 4617 4568 4616 +f 4617 4569 4568 +f 4618 4569 4617 +f 4618 4570 4569 +f 4619 4570 4618 +f 4619 4571 4570 +f 4620 4571 4619 +f 4620 4572 4571 +f 4621 4572 4620 +f 4621 4573 4572 +f 4622 4573 4621 +f 4622 4574 4573 +f 4623 4574 4622 +f 4623 4575 4574 +f 4624 4575 4623 +f 4624 4576 4575 +f 4625 4576 4624 +f 4625 4577 4576 +f 4626 4577 4625 +f 4626 4578 4577 +f 4627 4578 4626 +f 4627 4579 4578 +f 4628 4579 4627 +f 4628 4580 4579 +f 4629 4580 4628 +f 4629 4581 4580 +f 4630 4581 4629 +f 4630 4582 4581 +f 4631 4582 4630 +f 4631 4583 4582 +f 4632 4583 4631 +f 4632 4584 4583 +f 4633 4584 4632 +f 4633 4585 4584 +f 4634 4585 4633 +f 4634 4586 4585 +f 4635 4586 4634 +f 4635 4587 4586 +f 4636 4587 4635 +f 4636 4588 4587 +f 4637 4588 4636 +f 4637 4589 4588 +f 4638 4589 4637 +f 4638 4590 4589 +f 4639 4590 4638 +f 4639 4591 4590 +f 4640 4591 4639 +f 4640 4592 4591 +f 4641 4592 4640 +f 4641 4593 4592 +f 4642 4593 4641 +f 4642 4594 4593 +f 4643 4594 4642 +f 4643 4595 4594 +f 4644 4595 4643 +f 4644 4596 4595 +f 4645 4596 4644 +f 4645 4597 4596 +f 4646 4597 4645 +f 4646 4598 4597 +f 4600 4598 4646 +f 4600 4552 4598 +f 4647 4600 4648 +f 4647 4599 4600 +f 4649 4599 4647 +f 4649 4601 4599 +f 4650 4601 4649 +f 4650 4602 4601 +f 4651 4602 4650 +f 4651 4603 4602 +f 4652 4603 4651 +f 4652 4604 4603 +f 4653 4604 4652 +f 4653 4605 4604 +f 4654 4605 4653 +f 4654 4606 4605 +f 4655 4606 4654 +f 4655 4607 4606 +f 4656 4607 4655 +f 4656 4608 4607 +f 4657 4608 4656 +f 4657 4609 4608 +f 4658 4609 4657 +f 4658 4610 4609 +f 4659 4610 4658 +f 4659 4611 4610 +f 4660 4611 4659 +f 4660 4612 4611 +f 4661 4612 4660 +f 4661 4613 4612 +f 4662 4613 4661 +f 4662 4614 4613 +f 4663 4614 4662 +f 4663 4615 4614 +f 4664 4615 4663 +f 4664 4616 4615 +f 4665 4616 4664 +f 4665 4617 4616 +f 4666 4617 4665 +f 4666 4618 4617 +f 4667 4618 4666 +f 4667 4619 4618 +f 4668 4619 4667 +f 4668 4620 4619 +f 4669 4620 4668 +f 4669 4621 4620 +f 4670 4621 4669 +f 4670 4622 4621 +f 4671 4622 4670 +f 4671 4623 4622 +f 4672 4623 4671 +f 4672 4624 4623 +f 4673 4624 4672 +f 4673 4625 4624 +f 4674 4625 4673 +f 4674 4626 4625 +f 4675 4626 4674 +f 4675 4627 4626 +f 4676 4627 4675 +f 4676 4628 4627 +f 4676 4629 4628 +f 4677 4629 4676 +f 4678 4629 4677 +f 4678 4630 4629 +f 4679 4630 4678 +f 4679 4631 4630 +f 4680 4631 4679 +f 4680 4632 4631 +f 4680 4633 4632 +f 4681 4633 4680 +f 4682 4633 4681 +f 4682 4634 4633 +f 4683 4634 4682 +f 4683 4635 4634 +f 4684 4635 4683 +f 4684 4636 4635 +f 4685 4636 4684 +f 4685 4637 4636 +f 4686 4637 4685 +f 4686 4638 4637 +f 4687 4638 4686 +f 4687 4639 4638 +f 4688 4639 4687 +f 4688 4640 4639 +f 4689 4640 4688 +f 4689 4641 4640 +f 4690 4641 4689 +f 4690 4642 4641 +f 4691 4642 4690 +f 4691 4643 4642 +f 4692 4643 4691 +f 4692 4644 4643 +f 4693 4644 4692 +f 4693 4645 4644 +f 4694 4645 4693 +f 4694 4646 4645 +f 4648 4646 4694 +f 4648 4600 4646 +f 4695 4696 4697 +f 4698 4696 4695 +f 4698 4699 4696 +f 4700 4699 4698 +f 4700 4701 4699 +f 4700 4702 4701 +f 4703 4702 4700 +f 4703 4704 4702 +f 4705 4704 4703 +f 4706 4704 4705 +f 4706 4707 4704 +f 4706 4708 4707 +f 4709 4708 4706 +f 4710 4708 4709 +f 4710 4709 4711 +f 4710 4711 4712 +f 4710 4712 4708 +f 4713 4712 4711 +f 4713 4711 4714 +f 4713 4714 4715 +f 4713 4715 4712 +f 4716 4715 4714 +f 4716 4714 4717 +f 4716 4717 4718 +f 4716 4718 4715 +f 4719 4718 4717 +f 4719 4720 4718 +f 4721 4722 4723 +f 4721 4724 4722 +f 4725 4724 4721 +f 4725 4726 4724 +f 4725 4727 4726 +f 4728 4727 4725 +f 4729 4727 4728 +f 4729 4730 4727 +f 4731 4730 4729 +f 4731 4732 4730 +f 4733 4732 4731 +f 4733 4734 4732 +f 4735 4734 4733 +f 4735 4736 4734 +f 4737 4736 4735 +f 4737 4738 4736 +f 4739 4738 4737 +f 4739 4740 4738 +f 4741 4740 4739 +f 4741 4742 4740 +f 4743 4742 4741 +f 4743 4744 4742 +f 4745 4744 4743 +f 4745 4746 4744 +f 4747 4746 4745 +f 4747 4748 4746 +f 4749 4748 4747 +f 4749 4750 4748 +f 4751 4750 4749 +f 4751 4752 4750 +f 4753 4752 4751 +f 4753 4754 4752 +f 4755 4754 4753 +f 4755 4756 4754 +f 1729 4756 4755 +f 1729 4757 4756 +f 4758 4695 4759 +f 4758 4698 4695 +f 4760 4698 4758 +f 4760 4700 4698 +f 4761 4700 4760 +f 4761 4703 4700 +f 4762 4703 4761 +f 4762 4705 4703 +f 4763 4705 4762 +f 4763 4706 4705 +f 4764 4706 4763 +f 4764 4709 4706 +f 4765 4709 4764 +f 4765 4711 4709 +f 4766 4711 4765 +f 4766 4714 4711 +f 4767 4714 4766 +f 4767 4768 4714 +f 4769 4768 4767 +f 4769 4723 4768 +f 4770 4723 4769 +f 4770 4721 4723 +f 4770 4725 4721 +f 4771 4725 4770 +f 4772 4725 4771 +f 4772 4729 4725 +f 4773 4729 4772 +f 4773 4731 4729 +f 4774 4731 4773 +f 4774 4735 4731 +f 4775 4735 4774 +f 4775 4737 4735 +f 4775 4739 4737 +f 4776 4739 4775 +f 4777 4739 4776 +f 4777 4741 4739 +f 4777 4745 4741 +f 4778 4745 4777 +f 4779 4745 4778 +f 4779 4749 4745 +f 4779 4780 4749 +f 4781 4780 4779 +f 4782 4780 4781 +f 4782 4755 4780 +f 4782 1729 4755 +f 4783 4758 4759 +f 4784 4758 4783 +f 4785 4758 4784 +f 4785 4760 4758 +f 4786 4760 4785 +f 4786 4761 4760 +f 4787 4761 4786 +f 4787 4762 4761 +f 4787 4763 4762 +f 4788 4763 4787 +f 4789 4763 4788 +f 4789 4764 4763 +f 4789 4765 4764 +f 4790 4765 4789 +f 4791 4765 4790 +f 4791 4766 4765 +f 4792 4766 4791 +f 4792 4767 4766 +f 4793 4767 4792 +f 4793 4769 4767 +f 4794 4769 4793 +f 4794 4770 4769 +f 4795 4770 4794 +f 4795 4771 4770 +f 4796 4771 4795 +f 4796 4772 4771 +f 4797 4772 4796 +f 4797 4773 4772 +f 4797 4774 4773 +f 4798 4774 4797 +f 4799 4774 4798 +f 4799 4775 4774 +f 4800 4775 4799 +f 4800 4776 4775 +f 4800 4777 4776 +f 4801 4777 4800 +f 4802 4777 4801 +f 4802 4778 4777 +f 4803 4778 4802 +f 4803 4779 4778 +f 4804 4779 4803 +f 4804 4781 4779 +f 4805 4781 4804 +f 4805 4782 4781 +f 4806 4782 4805 +f 4807 4808 4809 +f 4810 4783 4807 +f 4810 4784 4783 +f 4811 4784 4810 +f 4811 4785 4784 +f 4812 4785 4811 +f 4812 4786 4785 +f 4813 4786 4812 +f 4813 4787 4786 +f 4814 4787 4813 +f 4814 4788 4787 +f 4814 4789 4788 +f 4815 4789 4814 +f 4816 4789 4815 +f 4816 4790 4789 +f 4817 4790 4816 +f 4817 4791 4790 +f 4818 4791 4817 +f 4818 4792 4791 +f 4819 4792 4818 +f 4819 4793 4792 +f 4820 4793 4819 +f 4820 4794 4793 +f 4821 4794 4820 +f 4821 4795 4794 +f 4822 4795 4821 +f 4822 4796 4795 +f 4823 4796 4822 +f 4823 4797 4796 +f 4824 4797 4823 +f 4824 4798 4797 +f 4824 4799 4798 +f 4825 4799 4824 +f 4825 4800 4799 +f 4826 4800 4825 +f 4827 4800 4826 +f 4827 4801 4800 +f 4827 4802 4801 +f 4828 4802 4827 +f 4829 4802 4828 +f 4829 4803 4802 +f 4830 4803 4829 +f 4830 4804 4803 +f 4831 4804 4830 +f 4831 4805 4804 +f 2063 4805 4831 +f 2063 4806 4805 +f 4832 4807 4809 +f 4833 4807 4832 +f 4834 4807 4833 +f 4834 4810 4807 +f 4835 4810 4834 +f 4835 4811 4810 +f 4835 4812 4811 +f 4836 4812 4835 +f 4837 4812 4836 +f 4837 4813 4812 +f 4838 4813 4837 +f 4838 4814 4813 +f 4839 4814 4838 +f 4839 4815 4814 +f 4839 4816 4815 +f 4840 4816 4839 +f 4841 4816 4840 +f 4841 4817 4816 +f 4841 4818 4817 +f 4842 4818 4841 +f 4843 4818 4842 +f 4843 4819 4818 +f 4844 4819 4843 +f 4844 4820 4819 +f 4845 4820 4844 +f 4845 4821 4820 +f 4845 4822 4821 +f 4846 4822 4845 +f 4847 4822 4846 +f 4847 4823 4822 +f 4848 4823 4847 +f 4848 4824 4823 +f 4848 4825 4824 +f 4849 4825 4848 +f 4850 4825 4849 +f 4850 4826 4825 +f 4851 4826 4850 +f 4851 4827 4826 +f 4852 4827 4851 +f 4852 4828 4827 +f 4853 4828 4852 +f 4853 4829 4828 +f 4854 4829 4853 +f 4854 4830 4829 +f 4855 4830 4854 +f 4855 4831 4830 +f 4856 4831 4855 +f 4856 2063 4831 +f 4857 4833 4832 +f 4858 4833 4857 +f 4859 4833 4858 +f 4859 4834 4833 +f 4859 4835 4834 +f 4860 4835 4859 +f 4861 4835 4860 +f 4861 4836 4835 +f 4861 4837 4836 +f 4862 4837 4861 +f 4863 4837 4862 +f 4863 4838 4837 +f 4864 4838 4863 +f 4864 4839 4838 +f 4865 4839 4864 +f 4865 4840 4839 +f 4866 4840 4865 +f 4866 4841 4840 +f 4867 4841 4866 +f 4867 4842 4841 +f 4868 4842 4867 +f 4868 4843 4842 +f 4869 4843 4868 +f 4869 4845 4843 +f 4869 4846 4845 +f 4870 4846 4869 +f 4871 4846 4870 +f 4871 4847 4846 +f 4872 4847 4871 +f 4872 4848 4847 +f 4873 4848 4872 +f 4873 4849 4848 +f 4874 4849 4873 +f 4874 4850 4849 +f 4875 4850 4874 +f 4875 4851 4850 +f 4876 4851 4875 +f 4876 4852 4851 +f 4876 4853 4852 +f 4877 4853 4876 +f 4877 4854 4853 +f 4878 4854 4877 +f 4879 4854 4878 +f 4879 4855 4854 +f 4880 4855 4879 +f 4880 4856 4855 +f 4881 4857 4882 +f 4881 4858 4857 +f 4881 4859 4858 +f 4883 4859 4881 +f 4884 4859 4883 +f 4884 4860 4859 +f 4885 4860 4884 +f 4885 4861 4860 +f 4886 4861 4885 +f 4886 4862 4861 +f 4886 4863 4862 +f 4887 4863 4886 +f 4887 4864 4863 +f 4888 4864 4887 +f 4889 4864 4888 +f 4889 4865 4864 +f 4890 4865 4889 +f 4890 4866 4865 +f 4891 4866 4890 +f 4891 4867 4866 +f 4891 4868 4867 +f 4892 4868 4891 +f 4893 4868 4892 +f 4893 4869 4868 +f 4893 4870 4869 +f 4894 4870 4893 +f 4895 4870 4894 +f 4895 4871 4870 +f 4896 4871 4895 +f 4896 4872 4871 +f 4897 4872 4896 +f 4897 4873 4872 +f 4898 4873 4897 +f 4898 4874 4873 +f 4899 4874 4898 +f 4899 4875 4874 +f 4900 4875 4899 +f 4900 4876 4875 +f 4901 4876 4900 +f 4901 4877 4876 +f 4902 4877 4901 +f 4902 4878 4877 +f 4903 4878 4902 +f 4903 4879 4878 +f 4903 4880 4879 +f 2446 4880 4903 +f 4904 4882 4905 +f 4904 4881 4882 +f 4906 4881 4904 +f 4906 4883 4881 +f 4907 4883 4906 +f 4907 4884 4883 +f 4908 4884 4907 +f 4908 4885 4884 +f 4909 4885 4908 +f 4909 4886 4885 +f 4910 4886 4909 +f 4910 4887 4886 +f 4911 4887 4910 +f 4911 4888 4887 +f 4911 4889 4888 +f 4912 4889 4911 +f 4913 4889 4912 +f 4913 4890 4889 +f 4914 4890 4913 +f 4914 4891 4890 +f 4914 4892 4891 +f 4915 4892 4914 +f 4915 4893 4892 +f 4916 4893 4915 +f 4917 4893 4916 +f 4917 4894 4893 +f 4918 4894 4917 +f 4918 4895 4894 +f 4919 4895 4918 +f 4919 4896 4895 +f 4920 4896 4919 +f 4920 4897 4896 +f 4921 4897 4920 +f 4921 4898 4897 +f 4922 4898 4921 +f 4922 4899 4898 +f 4923 4899 4922 +f 4923 4900 4899 +f 4924 4900 4923 +f 4924 4901 4900 +f 4925 4901 4924 +f 4925 4902 4901 +f 4926 4902 4925 +f 4926 4903 4902 +f 4927 4903 4926 +f 4927 2446 4903 +f 4928 4905 4929 +f 4930 4905 4928 +f 4930 4931 4905 +f 4932 4931 4930 +f 4932 4933 4931 +f 4934 4933 4932 +f 4934 4907 4933 +f 4935 4907 4934 +f 4935 4908 4907 +f 4936 4908 4935 +f 4936 4909 4908 +f 4937 4909 4936 +f 4937 4910 4909 +f 4938 4910 4937 +f 4938 4911 4910 +f 4939 4911 4938 +f 4939 4912 4911 +f 4940 4912 4939 +f 4940 4913 4912 +f 4941 4913 4940 +f 4941 4914 4913 +f 4942 4914 4941 +f 4942 4915 4914 +f 4943 4915 4942 +f 4943 4916 4915 +f 4944 4916 4943 +f 4944 4917 4916 +f 4945 4917 4944 +f 4945 4918 4917 +f 4946 4918 4945 +f 4946 4919 4918 +f 4947 4919 4946 +f 4947 4920 4919 +f 4948 4920 4947 +f 4948 4921 4920 +f 4949 4921 4948 +f 4949 4922 4921 +f 4950 4922 4949 +f 4950 4923 4922 +f 4951 4923 4950 +f 4951 4924 4923 +f 4952 4924 4951 +f 4952 4925 4924 +f 4953 4925 4952 +f 4953 4926 4925 +f 4954 4926 4953 +f 4954 4927 4926 +f 4955 4929 4956 +f 4955 4928 4929 +f 4957 4928 4955 +f 4957 4930 4928 +f 4958 4930 4957 +f 4958 4932 4930 +f 4959 4932 4958 +f 4959 4934 4932 +f 4960 4934 4959 +f 4960 4935 4934 +f 4961 4935 4960 +f 4961 4936 4935 +f 4962 4936 4961 +f 4962 4937 4936 +f 4963 4937 4962 +f 4963 4938 4937 +f 4964 4938 4963 +f 4964 4939 4938 +f 4965 4939 4964 +f 4965 4940 4939 +f 4966 4940 4965 +f 4966 4941 4940 +f 4967 4941 4966 +f 4967 4942 4941 +f 4968 4942 4967 +f 4968 4943 4942 +f 4969 4943 4968 +f 4969 4944 4943 +f 4970 4944 4969 +f 4970 4945 4944 +f 4971 4945 4970 +f 4971 4946 4945 +f 4972 4946 4971 +f 4972 4947 4946 +f 4973 4947 4972 +f 4973 4948 4947 +f 4974 4948 4973 +f 4974 4949 4948 +f 4975 4949 4974 +f 4975 4950 4949 +f 4976 4950 4975 +f 4976 4951 4950 +f 4977 4951 4976 +f 4977 4952 4951 +f 4978 4952 4977 +f 4978 4953 4952 +f 2829 4953 4978 +f 2829 4954 4953 +f 4979 4956 4980 +f 4979 4955 4956 +f 4981 4955 4979 +f 4981 4957 4955 +f 4982 4957 4981 +f 4982 4958 4957 +f 4983 4958 4982 +f 4983 4959 4958 +f 4984 4959 4983 +f 4984 4960 4959 +f 4985 4960 4984 +f 4985 4961 4960 +f 4986 4961 4985 +f 4986 4962 4961 +f 4987 4962 4986 +f 4987 4963 4962 +f 4988 4963 4987 +f 4988 4964 4963 +f 4989 4964 4988 +f 4989 4965 4964 +f 4990 4965 4989 +f 4990 4966 4965 +f 4991 4966 4990 +f 4991 4967 4966 +f 4992 4967 4991 +f 4992 4968 4967 +f 4993 4968 4992 +f 4993 4969 4968 +f 4994 4969 4993 +f 4994 4970 4969 +f 4995 4970 4994 +f 4995 4971 4970 +f 4996 4971 4995 +f 4996 4972 4971 +f 4997 4972 4996 +f 4997 4973 4972 +f 4998 4973 4997 +f 4998 4974 4973 +f 4999 4974 4998 +f 4999 4975 4974 +f 5000 4975 4999 +f 5000 4976 4975 +f 5001 4976 5000 +f 5001 4977 4976 +f 5002 4977 5001 +f 5002 4978 4977 +f 5003 4978 5002 +f 5003 2829 4978 +f 5004 4980 5005 +f 5004 4979 4980 +f 5006 4979 5004 +f 5006 4981 4979 +f 5007 4981 5006 +f 5007 4982 4981 +f 5008 4982 5007 +f 5008 4983 4982 +f 5009 4983 5008 +f 5009 4984 4983 +f 5010 4984 5009 +f 5010 4985 4984 +f 5011 4985 5010 +f 5011 4986 4985 +f 5012 4986 5011 +f 5012 4987 4986 +f 5013 4987 5012 +f 5013 4988 4987 +f 5014 4988 5013 +f 5014 4989 4988 +f 5015 4989 5014 +f 5015 4990 4989 +f 5016 4990 5015 +f 5016 4991 4990 +f 5017 4991 5016 +f 5017 4992 4991 +f 5018 4992 5017 +f 5018 4993 4992 +f 5019 4993 5018 +f 5019 4994 4993 +f 5020 4994 5019 +f 5020 4995 4994 +f 5021 4995 5020 +f 5021 4996 4995 +f 5022 4996 5021 +f 5022 4997 4996 +f 5023 4997 5022 +f 5023 4998 4997 +f 5024 4998 5023 +f 5024 4999 4998 +f 5025 4999 5024 +f 5025 5000 4999 +f 5026 5000 5025 +f 5026 5001 5000 +f 5027 5001 5026 +f 5027 5002 5001 +f 5028 5002 5027 +f 5028 5003 5002 +f 5029 5005 5030 +f 5029 5004 5005 +f 5031 5004 5029 +f 5031 5006 5004 +f 5032 5006 5031 +f 5032 5007 5006 +f 5033 5007 5032 +f 5033 5008 5007 +f 5034 5008 5033 +f 5034 5009 5008 +f 5035 5009 5034 +f 5035 5010 5009 +f 5036 5010 5035 +f 5036 5011 5010 +f 5037 5011 5036 +f 5037 5012 5011 +f 5038 5012 5037 +f 5038 5013 5012 +f 5039 5013 5038 +f 5039 5014 5013 +f 5040 5014 5039 +f 5040 5015 5014 +f 5041 5015 5040 +f 5041 5016 5015 +f 5042 5016 5041 +f 5042 5017 5016 +f 5043 5017 5042 +f 5043 5018 5017 +f 5044 5018 5043 +f 5044 5019 5018 +f 5045 5019 5044 +f 5045 5020 5019 +f 5046 5020 5045 +f 5046 5021 5020 +f 5047 5021 5046 +f 5047 5022 5021 +f 5048 5022 5047 +f 5048 5023 5022 +f 5049 5023 5048 +f 5049 5024 5023 +f 5050 5024 5049 +f 5050 5025 5024 +f 5051 5025 5050 +f 5051 5026 5025 +f 5052 5026 5051 +f 5052 5027 5026 +f 3212 5027 5052 +f 3212 5028 5027 +f 5053 5030 5054 +f 5053 5029 5030 +f 5055 5029 5053 +f 5055 5031 5029 +f 5056 5031 5055 +f 5056 5032 5031 +f 5057 5032 5056 +f 5057 5033 5032 +f 5058 5033 5057 +f 5058 5034 5033 +f 5059 5034 5058 +f 5059 5035 5034 +f 5060 5035 5059 +f 5060 5036 5035 +f 5061 5036 5060 +f 5061 5037 5036 +f 5062 5037 5061 +f 5062 5038 5037 +f 5063 5038 5062 +f 5063 5039 5038 +f 5064 5039 5063 +f 5064 5040 5039 +f 5065 5040 5064 +f 5065 5041 5040 +f 5066 5041 5065 +f 5066 5042 5041 +f 5067 5042 5066 +f 5067 5043 5042 +f 5068 5043 5067 +f 5068 5044 5043 +f 5069 5044 5068 +f 5069 5045 5044 +f 5070 5045 5069 +f 5070 5046 5045 +f 5071 5046 5070 +f 5071 5047 5046 +f 5072 5047 5071 +f 5072 5048 5047 +f 5073 5048 5072 +f 5073 5049 5048 +f 5074 5049 5073 +f 5074 5050 5049 +f 5075 5050 5074 +f 5075 5051 5050 +f 5076 5051 5075 +f 5076 5052 5051 +f 5077 5052 5076 +f 5077 3212 5052 +f 5078 5053 5054 +f 5079 5053 5078 +f 5079 5055 5053 +f 5080 5055 5079 +f 5080 5056 5055 +f 5081 5056 5080 +f 5081 5057 5056 +f 5082 5057 5081 +f 5082 5058 5057 +f 5083 5058 5082 +f 5083 5059 5058 +f 5084 5059 5083 +f 5084 5060 5059 +f 5085 5060 5084 +f 5085 5061 5060 +f 5085 5062 5061 +f 5086 5062 5085 +f 5087 5062 5086 +f 5087 5063 5062 +f 5088 5063 5087 +f 5088 5064 5063 +f 5089 5064 5088 +f 5089 5065 5064 +f 5090 5065 5089 +f 5090 5066 5065 +f 5091 5066 5090 +f 5091 5067 5066 +f 5092 5067 5091 +f 5092 5068 5067 +f 5093 5068 5092 +f 5093 5069 5068 +f 5094 5069 5093 +f 5094 5070 5069 +f 5095 5070 5094 +f 5095 5071 5070 +f 5096 5071 5095 +f 5096 5072 5071 +f 5097 5072 5096 +f 5097 5073 5072 +f 5098 5073 5097 +f 5098 5074 5073 +f 5098 5075 5074 +f 5099 5075 5098 +f 5100 5075 5099 +f 5100 5076 5075 +f 5101 5076 5100 +f 5101 5077 5076 +f 5102 5078 5103 +f 5102 5104 5078 +f 5105 5104 5102 +f 5105 5106 5104 +f 5107 5106 5105 +f 5107 5081 5106 +f 5108 5081 5107 +f 5108 5082 5081 +f 5109 5082 5108 +f 5109 5083 5082 +f 5110 5083 5109 +f 5110 5084 5083 +f 5110 5085 5084 +f 5111 5085 5110 +f 5112 5085 5111 +f 5112 5086 5085 +f 5113 5086 5112 +f 5113 5087 5086 +f 5113 5088 5087 +f 5114 5088 5113 +f 5115 5088 5114 +f 5115 5089 5088 +f 5116 5089 5115 +f 5116 5090 5089 +f 5117 5090 5116 +f 5117 5091 5090 +f 5118 5091 5117 +f 5118 5092 5091 +f 5119 5092 5118 +f 5119 5093 5092 +f 5120 5093 5119 +f 5120 5094 5093 +f 5121 5094 5120 +f 5121 5095 5094 +f 5122 5095 5121 +f 5122 5096 5095 +f 5123 5096 5122 +f 5123 5097 5096 +f 5124 5097 5123 +f 5124 5098 5097 +f 5125 5098 5124 +f 5125 5099 5098 +f 5126 5099 5125 +f 5126 5100 5099 +f 3595 5100 5126 +f 3595 5101 5100 +f 5127 5103 5128 +f 5127 5102 5103 +f 5129 5102 5127 +f 5129 5105 5102 +f 5130 5105 5129 +f 5130 5107 5105 +f 5131 5107 5130 +f 5131 5108 5107 +f 5132 5108 5131 +f 5132 5109 5108 +f 5133 5109 5132 +f 5133 5110 5109 +f 5134 5110 5133 +f 5134 5111 5110 +f 5134 5112 5111 +f 5135 5112 5134 +f 5136 5112 5135 +f 5136 5113 5112 +f 5137 5113 5136 +f 5137 5114 5113 +f 5138 5114 5137 +f 5138 5115 5114 +f 5138 5116 5115 +f 5139 5116 5138 +f 5140 5116 5139 +f 5140 5117 5116 +f 5141 5117 5140 +f 5141 5118 5117 +f 5142 5118 5141 +f 5142 5119 5118 +f 5143 5119 5142 +f 5143 5120 5119 +f 5144 5120 5143 +f 5144 5121 5120 +f 5144 5122 5121 +f 5145 5122 5144 +f 5146 5122 5145 +f 5146 5123 5122 +f 5147 5123 5146 +f 5147 5124 5123 +f 5148 5124 5147 +f 5148 5125 5124 +f 5149 5125 5148 +f 5149 5126 5125 +f 5150 5126 5149 +f 5150 3595 5126 +f 5151 5128 5152 +f 5151 5127 5128 +f 5151 5129 5127 +f 5153 5129 5151 +f 5154 5129 5153 +f 5154 5130 5129 +f 5155 5130 5154 +f 5155 5131 5130 +f 5156 5131 5155 +f 5156 5132 5131 +f 5157 5132 5156 +f 5157 5133 5132 +f 5158 5133 5157 +f 5158 5134 5133 +f 5159 5134 5158 +f 5159 5135 5134 +f 5159 5136 5135 +f 5160 5136 5159 +f 5161 5136 5160 +f 5161 5137 5136 +f 5162 5137 5161 +f 5162 5138 5137 +f 5162 5139 5138 +f 5163 5139 5162 +f 5164 5139 5163 +f 5164 5140 5139 +f 5164 5141 5140 +f 5165 5141 5164 +f 5166 5141 5165 +f 5166 5142 5141 +f 5167 5142 5166 +f 5167 5143 5142 +f 5167 5144 5143 +f 5168 5144 5167 +f 5169 5144 5168 +f 5169 5145 5144 +f 5170 5145 5169 +f 5170 5146 5145 +f 5171 5146 5170 +f 5171 5147 5146 +f 5171 5148 5147 +f 5172 5148 5171 +f 5173 5148 5172 +f 5173 5149 5148 +f 5174 5149 5173 +f 5174 5150 5149 +f 5175 5152 5176 +f 5175 5151 5152 +f 5175 5153 5151 +f 5177 5153 5175 +f 5178 5153 5177 +f 5178 5154 5153 +f 5179 5154 5178 +f 5179 5155 5154 +f 5179 5156 5155 +f 5180 5156 5179 +f 5180 5157 5156 +f 5181 5157 5180 +f 5182 5157 5181 +f 5182 5158 5157 +f 5183 5158 5182 +f 5183 5159 5158 +f 5183 5160 5159 +f 5184 5160 5183 +f 5185 5160 5184 +f 5185 5161 5160 +f 5185 5162 5161 +f 5186 5162 5185 +f 5187 5162 5186 +f 5187 5163 5162 +f 5188 5163 5187 +f 5188 5164 5163 +f 5189 5164 5188 +f 5189 5165 5164 +f 5189 5166 5165 +f 5190 5166 5189 +f 5191 5166 5190 +f 5191 5167 5166 +f 5192 5167 5191 +f 5192 5168 5167 +f 5193 5168 5192 +f 5193 5169 5168 +f 5193 5170 5169 +f 5194 5170 5193 +f 5195 5170 5194 +f 5195 5171 5170 +f 5196 5171 5195 +f 5196 5172 5171 +f 5197 5172 5196 +f 5197 5173 5172 +f 3929 5173 5197 +f 3929 5174 5173 +f 5198 5175 5176 +f 5199 5175 5200 +f 5199 5177 5175 +f 5201 5177 5199 +f 5201 5178 5177 +f 5201 5179 5178 +f 5202 5179 5201 +f 5203 5179 5202 +f 5203 5180 5179 +f 5204 5180 5203 +f 5204 5181 5180 +f 5205 5181 5204 +f 5205 5182 5181 +f 5206 5182 5205 +f 5206 5183 5182 +f 5206 5184 5183 +f 5207 5184 5206 +f 5208 5184 5207 +f 5208 5185 5184 +f 5209 5185 5208 +f 5209 5186 5185 +f 5210 5186 5209 +f 5210 5211 5186 +f 5210 5187 5211 +f 5212 5187 5210 +f 5213 5187 5212 +f 5213 5188 5187 +f 5214 5188 5213 +f 5214 5189 5188 +f 5215 5189 5214 +f 5215 5190 5189 +f 5216 5190 5215 +f 5216 5191 5190 +f 5217 5191 5216 +f 5217 5192 5191 +f 5218 5192 5217 +f 5218 5193 5192 +f 5219 5193 5218 +f 5219 5194 5193 +f 5220 5194 5219 +f 5220 5195 5194 +f 5220 5196 5195 +f 5221 5196 5220 +f 5222 5196 5221 +f 5222 5197 5196 +f 5223 5197 5222 +f 5223 3929 5197 +f 5224 5200 5225 +f 5224 5199 5200 +f 5226 5199 5224 +f 5226 5201 5199 +f 5227 5201 5226 +f 5227 5202 5201 +f 5228 5202 5227 +f 5228 5203 5202 +f 5229 5203 5228 +f 5229 5204 5203 +f 5229 5205 5204 +f 5230 5205 5229 +f 5231 5205 5230 +f 5231 5206 5205 +f 5232 5206 5231 +f 5232 5207 5206 +f 5233 5207 5232 +f 5233 5208 5207 +f 5234 5208 5233 +f 5234 5209 5208 +f 5234 5210 5209 +f 5235 5210 5234 +f 5235 5212 5210 +f 5236 5212 5235 +f 5237 5212 5236 +f 5237 5213 5212 +f 5238 5213 5237 +f 5238 5214 5213 +f 5239 5214 5238 +f 5239 5215 5214 +f 5240 5215 5239 +f 5240 5216 5215 +f 5241 5216 5240 +f 5241 5217 5216 +f 5242 5217 5241 +f 5242 5218 5217 +f 5243 5218 5242 +f 5243 5219 5218 +f 5244 5219 5243 +f 5244 5220 5219 +f 5245 5220 5244 +f 5245 5221 5220 +f 5246 5221 5245 +f 5246 5222 5221 +f 5246 5223 5222 +f 5247 5224 5225 +f 5248 5224 5247 +f 5249 5224 5248 +f 5249 5226 5224 +f 5250 5226 5249 +f 5250 5227 5226 +f 5251 5227 5250 +f 5251 5228 5227 +f 5252 5228 5251 +f 5252 5229 5228 +f 5253 5229 5252 +f 5253 5230 5229 +f 5254 5230 5253 +f 5254 5231 5230 +f 5255 5231 5254 +f 5255 5232 5231 +f 5255 5233 5232 +f 5256 5233 5255 +f 5257 5233 5256 +f 5257 5234 5233 +f 5258 5234 5257 +f 5258 5235 5234 +f 5259 5235 5258 +f 5259 5236 5235 +f 5259 5237 5236 +f 5260 5237 5259 +f 5261 5237 5260 +f 5261 5238 5237 +f 5262 5238 5261 +f 5262 5239 5238 +f 5263 5239 5262 +f 5263 5240 5239 +f 5264 5240 5263 +f 5264 5241 5240 +f 5264 5242 5241 +f 5265 5242 5264 +f 5266 5242 5265 +f 5266 5243 5242 +f 5267 5243 5266 +f 5267 5244 5243 +f 5268 5244 5267 +f 5268 5245 5244 +f 5269 5245 5268 +f 5269 5246 5245 +f 4264 5246 5269 +f 5270 5247 5271 +f 5270 5248 5247 +f 5272 5248 5270 +f 5273 5248 5272 +f 5273 5249 5248 +f 5274 5249 5273 +f 5274 5250 5249 +f 5275 5250 5274 +f 5275 5251 5250 +f 5275 5252 5251 +f 5276 5252 5275 +f 5277 5252 5276 +f 5277 5253 5252 +f 5278 5253 5277 +f 5278 5277 5279 +f 5278 5279 5254 +f 5278 5254 5253 +f 5280 5254 5279 +f 5280 5279 5281 +f 5280 5281 5255 +f 5280 5255 5254 +f 5282 5255 5281 +f 5282 5256 5255 +f 5283 5256 5282 +f 5283 5257 5256 +f 5284 5257 5283 +f 5284 5258 5257 +f 5285 5258 5284 +f 5285 5259 5258 +f 5286 5259 5285 +f 5286 5260 5259 +f 5287 5260 5286 +f 5287 5261 5260 +f 5288 5261 5287 +f 5288 5262 5261 +f 5289 5262 5288 +f 5289 5263 5262 +f 5290 5263 5289 +f 5290 5264 5263 +f 5290 5265 5264 +f 5291 5265 5290 +f 5292 5265 5291 +f 5292 5266 5265 +f 5293 5266 5292 +f 5293 5267 5266 +f 5293 5268 5267 +f 5294 5268 5293 +f 5295 5268 5294 +f 5295 5269 5268 +f 5295 4264 5269 +f 5296 4264 5295 +f 5297 5298 5299 +f 5300 5299 5301 +f 5300 5297 5299 +f 5302 5301 5303 +f 5302 5300 5301 +f 5304 5303 5305 +f 5304 5302 5303 +f 5306 5305 5307 +f 5306 5304 5305 +f 5308 5306 5307 +f 5309 5298 5297 +f 5310 5297 5300 +f 5310 5309 5297 +f 5310 5300 5302 +f 5311 5310 5302 +f 5312 5302 5304 +f 5312 5311 5302 +f 5313 5304 5306 +f 5313 5312 5304 +f 5308 5313 5306 +f 5314 5298 5309 +f 5315 5309 5310 +f 5315 5314 5309 +f 5316 5310 5311 +f 5316 5315 5310 +f 5317 5311 5312 +f 5317 5316 5311 +f 5318 5312 5313 +f 5318 5317 5312 +f 5308 5318 5313 +f 5319 5298 5314 +f 5315 5319 5314 +f 5320 5319 5315 +f 5321 5315 5316 +f 5321 5320 5315 +f 5321 5316 5317 +f 5322 5321 5317 +f 5323 5317 5318 +f 5323 5322 5317 +f 5308 5323 5318 +f 5324 5298 5319 +f 5325 5319 5320 +f 5325 5324 5319 +f 5326 5320 5321 +f 5326 5325 5320 +f 5327 5321 5322 +f 5327 5326 5321 +f 5328 5322 5323 +f 5328 5327 5322 +f 5308 5328 5323 +f 5329 5298 5324 +f 5330 5324 5325 +f 5330 5329 5324 +f 5330 5325 5326 +f 5331 5330 5326 +f 5332 5326 5327 +f 5332 5331 5326 +f 5333 5327 5328 +f 5333 5332 5327 +f 5308 5333 5328 +f 5334 5298 5329 +f 5330 5334 5329 +f 5335 5334 5330 +f 5336 5330 5331 +f 5336 5335 5330 +f 5337 5331 5332 +f 5337 5336 5331 +f 5338 5332 5333 +f 5338 5337 5332 +f 5308 5338 5333 +f 5339 5298 5334 +f 5335 5339 5334 +f 5340 5339 5335 +f 5340 5335 5336 +f 5341 5340 5336 +f 5342 5336 5337 +f 5342 5341 5336 +f 5343 5337 5338 +f 5343 5342 5337 +f 5308 5343 5338 +f 5344 5298 5339 +f 5345 5339 5340 +f 5345 5344 5339 +f 5346 5340 5341 +f 5346 5345 5340 +f 5347 5341 5342 +f 5347 5346 5341 +f 5348 5342 5343 +f 5348 5347 5342 +f 5308 5348 5343 +f 5299 5298 5344 +f 5345 5299 5344 +f 5301 5299 5345 +f 5303 5345 5346 +f 5303 5301 5345 +f 5305 5346 5347 +f 5305 5303 5346 +f 5307 5347 5348 +f 5307 5305 5347 +f 5308 5307 5348 +f 5349 5350 5351 +f 5352 5351 5353 +f 5352 5349 5351 +f 5354 5353 5355 +f 5354 5352 5353 +f 5356 5355 5357 +f 5356 5354 5355 +f 5358 5357 5359 +f 5358 5356 5357 +f 5298 5358 5359 +f 5360 5350 5349 +f 5352 5360 5349 +f 5361 5360 5352 +f 5362 5352 5354 +f 5362 5361 5352 +f 5363 5354 5356 +f 5363 5362 5354 +f 5358 5363 5356 +f 5364 5363 5358 +f 5298 5364 5358 +f 5365 5350 5360 +f 5366 5360 5361 +f 5366 5365 5360 +f 5367 5361 5362 +f 5367 5366 5361 +f 5368 5362 5363 +f 5368 5367 5362 +f 5364 5368 5363 +f 5369 5368 5364 +f 5298 5369 5364 +f 5370 5350 5365 +f 5371 5365 5366 +f 5371 5370 5365 +f 5372 5366 5367 +f 5372 5371 5366 +f 5373 5367 5368 +f 5373 5372 5367 +f 5374 5368 5369 +f 5374 5373 5368 +f 5298 5374 5369 +f 5375 5350 5370 +f 5376 5370 5371 +f 5376 5375 5370 +f 5377 5371 5372 +f 5377 5376 5371 +f 5378 5372 5373 +f 5378 5377 5372 +f 5379 5373 5374 +f 5379 5378 5373 +f 5298 5379 5374 +f 5380 5350 5375 +f 5381 5375 5376 +f 5381 5380 5375 +f 5382 5376 5377 +f 5382 5381 5376 +f 5382 5377 5378 +f 5383 5382 5378 +f 5384 5378 5379 +f 5384 5383 5378 +f 5298 5384 5379 +f 5385 5350 5380 +f 5381 5385 5380 +f 5386 5385 5381 +f 5386 5381 5382 +f 5387 5386 5382 +f 5388 5382 5383 +f 5388 5387 5382 +f 5389 5383 5384 +f 5389 5388 5383 +f 5298 5389 5384 +f 5390 5350 5385 +f 5391 5385 5386 +f 5391 5390 5385 +f 5392 5386 5387 +f 5392 5391 5386 +f 5393 5387 5388 +f 5393 5392 5387 +f 5394 5388 5389 +f 5394 5393 5388 +f 5298 5394 5389 +f 5395 5350 5390 +f 5396 5390 5391 +f 5396 5395 5390 +f 5397 5391 5392 +f 5397 5396 5391 +f 5397 5392 5393 +f 5398 5397 5393 +f 5399 5393 5394 +f 5399 5398 5393 +f 5298 5399 5394 +f 5351 5350 5395 +f 5353 5395 5396 +f 5353 5351 5395 +f 5355 5396 5397 +f 5355 5353 5396 +f 5357 5397 5398 +f 5357 5355 5397 +f 5359 5398 5399 +f 5359 5357 5398 +f 5298 5359 5399 +f 5397 5303 5355 +f 5397 5346 5303 +f 5392 5346 5397 +f 5392 5341 5346 +f 5387 5341 5392 +f 5387 5336 5341 +f 5382 5336 5387 +f 5382 5331 5336 +f 5382 5326 5331 +f 5377 5326 5382 +f 5377 5321 5326 +f 5372 5321 5377 +f 5367 5321 5372 +f 5367 5316 5321 +f 5367 5311 5316 +f 5362 5311 5367 +f 5362 5302 5311 +f 5354 5302 5362 +f 5355 5302 5354 +f 5355 5303 5302 +f 5400 5401 5402 +f 5403 5400 5402 +f 5404 5400 5403 +f 5405 5403 5406 +f 5405 5404 5403 +f 5407 5406 5408 +f 5407 5405 5406 +f 5409 5408 5410 +f 5409 5407 5408 +f 5411 5409 5410 +f 5412 5401 5400 +f 5413 5400 5404 +f 5413 5412 5400 +f 5413 5404 5405 +f 5414 5413 5405 +f 5415 5405 5407 +f 5415 5414 5405 +f 5416 5407 5409 +f 5416 5415 5407 +f 5411 5416 5409 +f 5417 5401 5412 +f 5418 5412 5413 +f 5418 5417 5412 +f 5419 5413 5414 +f 5419 5418 5413 +f 5420 5414 5415 +f 5420 5419 5414 +f 5421 5415 5416 +f 5421 5420 5415 +f 5411 5421 5416 +f 5422 5401 5417 +f 5423 5417 5418 +f 5423 5422 5417 +f 5424 5418 5419 +f 5424 5423 5418 +f 5424 5419 5420 +f 5425 5424 5420 +f 5426 5420 5421 +f 5426 5425 5420 +f 5411 5426 5421 +f 5427 5401 5422 +f 5428 5422 5423 +f 5428 5427 5422 +f 5429 5423 5424 +f 5429 5428 5423 +f 5430 5424 5425 +f 5430 5429 5424 +f 5431 5425 5426 +f 5431 5430 5425 +f 5411 5431 5426 +f 5432 5401 5427 +f 5433 5427 5428 +f 5433 5432 5427 +f 5433 5428 5429 +f 5434 5433 5429 +f 5435 5429 5430 +f 5435 5434 5429 +f 5436 5430 5431 +f 5436 5435 5430 +f 5411 5436 5431 +f 5437 5401 5432 +f 5433 5437 5432 +f 5438 5437 5433 +f 5439 5433 5434 +f 5439 5438 5433 +f 5440 5434 5435 +f 5440 5439 5434 +f 5441 5435 5436 +f 5441 5440 5435 +f 5411 5441 5436 +f 5442 5401 5437 +f 5443 5437 5438 +f 5443 5442 5437 +f 5444 5438 5439 +f 5444 5443 5438 +f 5445 5439 5440 +f 5445 5444 5439 +f 5446 5440 5441 +f 5446 5445 5440 +f 5411 5446 5441 +f 5447 5401 5442 +f 5448 5442 5443 +f 5448 5447 5442 +f 5449 5443 5444 +f 5449 5448 5443 +f 5450 5444 5445 +f 5450 5449 5444 +f 5451 5445 5446 +f 5451 5450 5445 +f 5411 5451 5446 +f 5402 5401 5447 +f 5448 5402 5447 +f 5403 5402 5448 +f 5406 5448 5449 +f 5406 5403 5448 +f 5406 5449 5450 +f 5408 5406 5450 +f 5410 5450 5451 +f 5410 5408 5450 +f 5411 5410 5451 +f 5452 5453 5454 +f 5455 5452 5454 +f 5456 5452 5455 +f 5457 5455 5458 +f 5457 5456 5455 +f 5459 5458 5460 +f 5459 5457 5458 +f 5461 5460 5462 +f 5461 5459 5460 +f 5401 5461 5462 +f 5463 5453 5452 +f 5464 5452 5456 +f 5464 5463 5452 +f 5465 5456 5457 +f 5465 5464 5456 +f 5466 5457 5459 +f 5466 5465 5457 +f 5461 5466 5459 +f 5467 5466 5461 +f 5401 5467 5461 +f 5468 5453 5463 +f 5469 5463 5464 +f 5469 5468 5463 +f 5470 5464 5465 +f 5470 5469 5464 +f 5470 5465 5466 +f 5471 5470 5466 +f 5472 5466 5467 +f 5472 5471 5466 +f 5401 5472 5467 +f 5473 5453 5468 +f 5474 5468 5469 +f 5474 5473 5468 +f 5475 5469 5470 +f 5475 5474 5469 +f 5476 5470 5471 +f 5476 5475 5470 +f 5472 5476 5471 +f 5477 5476 5472 +f 5401 5477 5472 +f 5478 5453 5473 +f 5479 5473 5474 +f 5479 5478 5473 +f 5480 5474 5475 +f 5480 5479 5474 +f 5481 5475 5476 +f 5481 5480 5475 +f 5482 5476 5477 +f 5482 5481 5476 +f 5401 5482 5477 +f 5483 5453 5478 +f 5484 5478 5479 +f 5484 5483 5478 +f 5484 5479 5480 +f 5485 5484 5480 +f 5486 5480 5481 +f 5486 5485 5480 +f 5487 5481 5482 +f 5487 5486 5481 +f 5401 5487 5482 +f 5488 5453 5483 +f 5489 5483 5484 +f 5489 5488 5483 +f 5489 5484 5485 +f 5490 5489 5485 +f 5491 5485 5486 +f 5491 5490 5485 +f 5492 5486 5487 +f 5492 5491 5486 +f 5401 5492 5487 +f 5493 5453 5488 +f 5494 5488 5489 +f 5494 5493 5488 +f 5495 5489 5490 +f 5495 5494 5489 +f 5496 5490 5491 +f 5496 5495 5490 +f 5497 5491 5492 +f 5497 5496 5491 +f 5401 5497 5492 +f 5498 5453 5493 +f 5499 5493 5494 +f 5499 5498 5493 +f 5500 5494 5495 +f 5500 5499 5494 +f 5501 5495 5496 +f 5501 5500 5495 +f 5502 5496 5497 +f 5502 5501 5496 +f 5401 5502 5497 +f 5454 5453 5498 +f 5455 5498 5499 +f 5455 5454 5498 +f 5458 5499 5500 +f 5458 5455 5499 +f 5460 5500 5501 +f 5460 5458 5500 +f 5502 5460 5501 +f 5462 5460 5502 +f 5401 5462 5502 +f 5500 5406 5458 +f 5500 5449 5406 +f 5495 5449 5500 +f 5495 5444 5449 +f 5490 5444 5495 +f 5490 5439 5444 +f 5485 5439 5490 +f 5485 5434 5439 +f 5480 5434 5485 +f 5480 5429 5434 +f 5480 5424 5429 +f 5475 5424 5480 +f 5470 5424 5475 +f 5470 5419 5424 +f 5465 5419 5470 +f 5465 5414 5419 +f 5465 5405 5414 +f 5457 5405 5465 +f 5458 5405 5457 +f 5458 5406 5405 diff --git a/data/neuralfoil_weights/nn-large.npz b/data/neuralfoil_weights/nn-large.npz new file mode 100644 index 00000000..58817d3c Binary files /dev/null and b/data/neuralfoil_weights/nn-large.npz differ diff --git a/data/neuralfoil_weights/nn-medium.npz b/data/neuralfoil_weights/nn-medium.npz new file mode 100644 index 00000000..9e5aa10c Binary files /dev/null and b/data/neuralfoil_weights/nn-medium.npz differ diff --git a/data/neuralfoil_weights/nn-small.npz b/data/neuralfoil_weights/nn-small.npz new file mode 100644 index 00000000..8e28f1d6 Binary files /dev/null and b/data/neuralfoil_weights/nn-small.npz differ diff --git a/data/neuralfoil_weights/nn-xlarge.npz b/data/neuralfoil_weights/nn-xlarge.npz new file mode 100644 index 00000000..def69359 Binary files /dev/null and b/data/neuralfoil_weights/nn-xlarge.npz differ diff --git a/data/neuralfoil_weights/nn-xsmall.npz b/data/neuralfoil_weights/nn-xsmall.npz new file mode 100644 index 00000000..29a131a3 Binary files /dev/null and b/data/neuralfoil_weights/nn-xsmall.npz differ diff --git a/data/neuralfoil_weights/nn-xxlarge.npz b/data/neuralfoil_weights/nn-xxlarge.npz new file mode 100644 index 00000000..f0eab992 Binary files /dev/null and b/data/neuralfoil_weights/nn-xxlarge.npz differ diff --git a/data/neuralfoil_weights/nn-xxsmall.npz b/data/neuralfoil_weights/nn-xxsmall.npz new file mode 100644 index 00000000..d1f3dcf7 Binary files /dev/null and b/data/neuralfoil_weights/nn-xxsmall.npz differ diff --git a/data/neuralfoil_weights/nn-xxxlarge.npz b/data/neuralfoil_weights/nn-xxxlarge.npz new file mode 100644 index 00000000..46b809f4 Binary files /dev/null and b/data/neuralfoil_weights/nn-xxxlarge.npz differ diff --git a/data/neuralfoil_weights/scaled_input_distribution.npz b/data/neuralfoil_weights/scaled_input_distribution.npz new file mode 100644 index 00000000..3ffc8c39 Binary files /dev/null and b/data/neuralfoil_weights/scaled_input_distribution.npz differ diff --git a/data/ram_air_kite/polars_neuralfoil/1.csv b/data/ram_air_kite/polars_neuralfoil/1.csv new file mode 100644 index 00000000..985737a5 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/1.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.1208257973194122,0,0.01838015019893646,0.04887852072715759 +-179,0.1254909038543701,0,-0.07597555220127106,0.05240623280405998 +-178,0.1282451897859573,0,-0.1616989076137543,0.05546374246478081 +-177,0.1275335550308228,0,-0.2363370358943939,0.05735260248184204 +-176,0.1237455755472183,0,-0.3012917339801788,0.05757979676127434 +-175,0.1183398589491844,0,-0.3578768670558929,0.05625436455011368 +-174,0.112596333026886,0,-0.4058749973773956,0.05392835289239883 +-173,0.1072932630777359,0,-0.4448603093624115,0.05118117481470108 +-172,0.102908082306385,0,-0.4755010306835175,0.04831539466977119 +-171,0.09965749830007553,0,-0.4996452629566193,0.04541755467653275 +-170,0.09757177531719208,0,-0.5194590091705322,0.04250788688659668 +-169,0.09667022526264191,0,-0.5359475612640381,0.03936288878321648 +-168,0.09699951857328415,0,-0.5477632284164429,0.03531501814723015 +-167,0.09853070229291916,0,-0.5516399145126343,0.02947496809065342 +-166,0.1009832173585892,0,-0.5459533929824829,0.02160189114511013 +-165,0.1037617698311806,0,-0.5353807210922241,0.01303878426551819 +-164,0.1064039245247841,0,-0.5260248184204102,0.005512356758117676 +-163,0.1089677363634109,0,-0.5164742469787598,-0.0009310484165325761 +-162,0.1116998568177223,0,-0.502067506313324,-0.007238453719764948 +-161,0.1146780923008919,0,-0.4808802008628845,-0.01402572356164455 +-160,0.117772676050663,0,-0.4536506235599518,-0.02140578627586365 +-159,0.1207346543669701,0,-0.4221808314323425,-0.02923369966447353 +-158,0.1233138740062714,0,-0.3882060050964355,-0.03729953616857529 +-157,0.1253717094659805,0,-0.3527576923370361,-0.04542379826307297 +-156,0.1269386559724808,0,-0.3160432577133179,-0.05348299816250801 +-155,0.1282019913196564,0,-0.27771857380867,-0.06140066310763359 +-154,0.1294385492801666,0,-0.2373055219650269,-0.06912738829851151 +-153,0.1309349238872528,0,-0.1945230662822723,-0.07662903517484665 +-152,0.1329154223203659,0,-0.1494587063789368,-0.08388136327266693 +-151,0.1355046331882477,0,-0.1026059687137604,-0.09085831791162491 +-150,0.1387293338775635,0,-0.05481690168380737,-0.09750906378030777 +-149,0.1425440609455109,0,-0.007256835699081421,-0.1037178039550781 +-148,0.1468613594770432,0,0.0386137068271637,-0.1092737466096878 +-147,0.1515607386827469,0,0.08108028769493103,-0.113882839679718 +-146,0.1564838588237762,0,0.1183072626590729,-0.1172497719526291 +-145,0.1614410728216171,0,0.1486573219299316,-0.1191989332437515 +-144,0.1662449538707733,0,0.1711157858371735,-0.1197559833526611 +-143,0.1707588881254196,0,0.185644805431366,-0.1191367506980896 +-142,0.1749242097139359,0,0.1932418644428253,-0.117671325802803 +-141,0.178744912147522,0,0.1955887973308563,-0.1157132834196091 +-140,0.1822530478239059,0,0.1945409178733826,-0.1135767921805382 +-139,0.1854762732982635,0,0.1917264461517334,-0.1115056499838829 +-138,0.1884189397096634,0,0.1883614957332611,-0.1096667274832726 +-137,0.1910592615604401,0,0.1852551102638245,-0.1081624254584312 +-136,0.193358838558197,0,0.1828858852386475,-0.1070468872785568 +-135,0.1952696293592453,0,0.1814902126789093,-0.1063432916998863 +-134,0.1967388987541199,0,0.1811367273330688,-0.1060587391257286 +-133,0.1977121978998184,0,0.1817713975906372,-0.1061923503875732 +-132,0.1981319934129715,0,0.1832185685634613,-0.1067406684160233 +-131,0.19793501496315,0,0.1851628422737122,-0.1076958179473877 +-130,0.1970520913600922,0,0.1870937943458557,-0.1090405583381653 +-129,0.195415586233139,0,0.1882545650005341,-0.1107408553361893 +-128,0.1929794400930405,0,0.1876029074192047,-0.1127305775880814 +-127,0.189758226275444,0,0.1838784217834473,-0.1148972362279892 +-126,0.1858876794576645,0,0.1758117973804474,-0.1170656234025955 +-125,0.1816825419664383,0,0.1625233292579651,-0.1189822927117348 +-124,0.1776355803012848,0,0.1439644396305084,-0.1203197464346886 +-123,0.1743016690015793,0,0.1210764646530151,-0.1207117810845375 +-122,0.1720690727233887,0,0.09537374973297119,-0.1198337525129318 +-121,0.1709689944982529,0,0.06816336512565613,-0.1174938455224037 +-120,0.1706807315349579,0,0.04006591439247131,-0.1136902347207069 +-119,0.1707342565059662,0,0.01120984554290771,-0.1086028218269348 +-118,0.1707033216953278,0,-0.01832181215286255,-0.1025224551558495 +-117,0.1702639609575272,0,-0.04836329817771912,-0.09574408829212189 +-116,0.1691782623529434,0,-0.07886871695518494,-0.08846889436244965 +-115,0.1672948896884918,0,-0.1101049482822418,-0.08076273649930954 +-114,0.1645786315202713,0,-0.1426336765289307,-0.07258037477731705 +-113,0.1611093133687973,0,-0.17708520591259,-0.06382761895656586 +-112,0.1570403873920441,0,-0.2139287441968918,-0.05442015454173088 +-111,0.1525337100028992,0,-0.2532736361026764,-0.04431188106536865 +-110,0.1476934850215912,0,-0.2946207523345947,-0.03348446637392044 +-109,0.1424772888422012,0,-0.3364195823669434,-0.02188714221119881 +-108,0.136547178030014,0,-0.3758659362792969,-0.009366357699036598 +-107,0.1292973458766937,0,-0.4107878804206848,0.004222196526825428 +-106,0.1210244670510292,0,-0.4443548321723938,0.01851576007902622 +-105,0.1139408871531487,0,-0.4839504957199097,0.03253056854009628 +-104,0.1085070818662643,0,-0.5303716659545898,0.04540417343378067 +-103,0.1029607504606247,0,-0.5755155086517334,0.05699977278709412 +-102,0.09659486263990402,0,-0.6118820905685425,0.06737912446260452 +-101,0.09006538242101669,0,-0.6386985778808594,0.07630321383476257 +-100,0.08444377034902573,0,-0.6592516899108887,0.08355399966239929 +-99,0.08038302510976791,0,-0.6762769222259521,0.08914005756378174 +-98,0.07809146493673325,0,-0.6907916069030762,0.09312142431735992 +-97,0.07740363478660583,0,-0.701509416103363,0.09525302797555923 +-96,0.07649447023868561,0,-0.6954141855239868,0.09454119205474854 +-95,0.07019943743944168,0,-0.6340796947479248,0.08962203562259674 +-94,0.05792243778705597,0,-0.4975128769874573,0.08038763701915741 +-93,0.04644623398780823,0,-0.3324044346809387,0.06823410838842392 +-92,0.03932113200426102,0,-0.1774617433547974,0.05630659312009811 +-91,0.03683358803391457,0,-0.04335731267929077,0.04558443278074265 +-90,0.03831765055656433,0,0.06109273433685303,0.03518936038017273 +-89,0.04176829755306244,0,0.1235653758049011,0.02656549215316772 +-88,0.04495076090097427,0,0.1459887027740479,0.02136912383139133 +-87,0.04772100225090981,0,0.1433516442775726,0.01852148771286011 +-86,0.05092845112085342,0,0.127225250005722,0.01643432304263115 +-85,0.05513902753591537,0,0.1048668920993805,0.01401240844279528 +-84,0.06070204824209213,0,0.08253514766693115,0.01055810414254665 +-83,0.06807588040828705,0,0.06412246823310852,0.005918634124100208 +-82,0.07757312059402466,0,0.04969802498817444,0.0005247712251730263 +-81,0.08822416514158249,0,0.03380126506090164,-0.004653775598853827 +-80,0.09794513881206512,0,0.007363066077232361,-0.008505928330123425 +-79,0.105386309325695,0,-0.03576863929629326,-0.01042595505714417 +-78,0.110531859099865,0,-0.09482426196336746,-0.01050040125846863 +-77,0.1141923069953918,0,-0.1645572483539581,-0.009161966852843761 +-76,0.1173514574766159,0,-0.2393325716257095,-0.006896525621414185 +-75,0.1207641363143921,0,-0.3148896396160126,-0.004164838697761297 +-74,0.1248248815536499,0,-0.3884522616863251,-0.001355171203613281 +-73,0.1296292245388031,0,-0.4584514796733856,0.001259028911590576 +-72,0.13507479429245,0,-0.524121105670929,0.003499692771583796 +-71,0.1408948600292206,0,-0.5850734114646912,0.00522729754447937 +-70,0.1467161923646927,0,-0.6410710215568542,0.006328552961349487 +-69,0.1522863656282425,0,-0.6919952630996704,0.006803488824516535 +-68,0.1577554047107697,0,-0.7384230494499207,0.006994581315666437 +-67,0.1636393219232559,0,-0.7857505083084106,0.008335888385772705 +-66,0.1707584708929062,0,-0.8474744558334351,0.01378684677183628 +-65,0.1794771105051041,0,-0.9278736710548401,0.02417389675974846 +-64,0.1888311952352524,0,-1.01035487651825,0.03588305786252022 +-63,0.1974611580371857,0,-1.075924873352051,0.04487386345863342 +-62,0.2044907361268997,0,-1.11723530292511,0.0496070459485054 +-61,0.2096255868673325,0,-1.138294458389282,0.05090227723121643 +-60,0.212849959731102,0,-1.146708488464355,0.05023464560508728 +-59,0.2143728286027908,0,-1.148619055747986,0.04864354804158211 +-58,0.2148726582527161,0,-1.148442625999451,0.04672040417790413 +-57,0.2154571563005447,0,-1.149608373641968,0.0448666512966156 +-56,0.2171239256858826,0,-1.154329061508179,0.04335768148303032 +-55,0.2202600091695786,0,-1.163154482841492,0.04228643327951431 +-54,0.2246327847242355,0,-1.175335764884949,0.04158360883593559 +-53,0.2297234535217285,0,-1.189746618270874,0.0411190576851368 +-52,0.2350037097930908,0,-1.205497145652771,0.04078326746821404 +-51,0.2400608211755753,0,-1.222074866294861,0.0405101403594017 +-50,0.2446082681417465,0,-1.239202737808228,0.04026349633932114 +-49,0.2484623640775681,0,-1.256665110588074,0.04001361876726151 +-48,0.2515124976634979,0,-1.274168848991394,0.03971384838223457 +-47,0.2537006735801697,0,-1.29126238822937,0.03928639367222786 +-46,0.2550111711025238,0,-1.307310819625854,0.03861687704920769 +-45,0.2554770708084106,0,-1.321546673774719,0.03756342455744743 +-44,0.2551969885826111,0,-1.333171129226685,0.03598006442189217 +-43,0.2543588280677795,0,-1.34149956703186,0.03374780341982841 +-42,0.253246396780014,0,-1.346078991889954,0.03080498613417149 +-41,0.2521993815898895,0,-1.34671950340271,0.02716366574168205 +-40,0.2514921724796295,0,-1.34342360496521,0.02289965189993382 +-39,0.251131534576416,0,-1.336292862892151,0.01813002303242683 +-38,0.2506630122661591,0,-1.325473070144653,0.01297903619706631 +-37,0.2491747736930847,0,-1.311190843582153,0.007553326897323132 +-36,0.2456272393465042,0,-1.293750047683716,0.001925802207551897 +-35,0.2393819987773895,0,-1.273393154144287,-0.003874981310218573 +-34,0.2305377870798111,0,-1.250081419944763,-0.009874475188553333 +-33,0.219849094748497,0,-1.223376750946045,-0.01615003310143948 +-32,0.2083449512720108,0,-1.19270122051239,-0.0227795597165823 +-31,0.1969744116067886,0,-1.158008337020874,-0.02971844747662544 +-30,0.1864554286003113,0,-1.120517015457153,-0.03665713220834732 +-29,0.1771952956914902,0,-1.082690358161926,-0.04304592683911324 +-28,0.169217512011528,0,-1.047036647796631,-0.04834248870611191 +-27,0.1622581332921982,0,-1.014761328697205,-0.05224068090319633 +-26,0.155998557806015,0,-0.9854616522789001,-0.05472787469625473 +-25,0.1502079665660858,0,-0.9576942920684814,-0.05605875328183174 +-24,0.1447692662477493,0,-0.9298039674758911,-0.05664762109518051 +-23,0.1396467983722687,0,-0.9006144404411316,-0.05689768865704536 +-22,0.1348255276679993,0,-0.8696336150169373,-0.05709285661578178 +-21,0.1302552819252014,0,-0.8368711471557617,-0.05738931894302368 +-20,0.1258176118135452,0,-0.8025761842727661,-0.05786217376589775 +-19,0.1213098913431168,0,-0.7672573328018188,-0.05852507427334785 +-18,0.1164542660117149,0,-0.7319808602333069,-0.05930447578430176 +-17,0.1109372228384018,0,-0.69865483045578,-0.06002367660403252 +-16,0.1044736355543137,0,-0.670244574546814,-0.06040548160672188 +-15,0.09684120863676071,0,-0.6509827375411987,-0.06004757806658745 +-14,0.08774379640817642,0,-0.6460900902748108,-0.05844991281628609 +-13,0.07675229012966156,0,-0.6595907807350159,-0.05520572513341904 +-12,0.06427416950464249,0,-0.6893335580825806,-0.05000665038824081 +-11,0.05214767158031464,0,-0.7237377166748047,-0.04274605587124825 +-10,0.04244055971503258,0,-0.7405829429626465,-0.0348413810133934 +-9,0.03636945784091949,0,-0.717430055141449,-0.02883356809616089 +-8,0.03293036296963692,0,-0.6569068431854248,-0.02518582344055176 +-7,0.03072884492576122,0,-0.5759484767913818,-0.02287360467016697 +-6,0.02912547998130322,0,-0.486014187335968,-0.02118390798568726 +-5,0.0279048252850771,0,-0.3920938372612,-0.0198058970272541 +-4,0.02699314430356026,0,-0.2963198721408844,-0.01857641898095608 +-3,0.02633672393858433,0,-0.2002567499876022,-0.01731609180569649 +-2,0.02588932774960995,0,-0.1052153408527374,-0.01583484373986721 +-1,0.02561924792826176,0,-0.01179963350296021,-0.01398504991084337 +0,0.02549316547811031,0,0.0797627866268158,-0.01158887147903442 +1,0.02546600997447968,0,0.1676792204380035,-0.008143091574311256 +2,0.02558349259197712,0,0.2466132044792175,-0.002672803355380893 +3,0.02610810473561287,0,0.3104036450386047,0.005531215574592352 +4,0.02719601429998875,0,0.3569877445697784,0.01631861925125122 +5,0.02856225892901421,0,0.3884740769863129,0.02908703126013279 +6,0.02981011569499969,0,0.4097754657268524,0.04273675754666328 +7,0.03092247992753983,0,0.4225897192955017,0.0567295178771019 +8,0.0320235975086689,0,0.4233077764511108,0.07181540876626968 +9,0.03349145874381065,0,0.4025137722492218,0.08916356414556503 +10,0.03705547749996185,0,0.3434990346431732,0.108174704015255 +11,0.04538989067077637,0,0.2298459112644196,0.1258758455514908 +12,0.05825426802039146,0,0.06638665497303009,0.1418329030275345 +13,0.06950291246175766,0,-0.08127939701080322,0.1568619906902313 +14,0.07544293254613876,0,-0.1680531948804855,0.1695867627859116 +15,0.07828785479068756,0,-0.2052114605903625,0.1785421371459961 +16,0.07995954900979996,0,-0.20942422747612,0.1839845180511475 +17,0.08111943304538727,0,-0.1914184987545013,0.1866684705018997 +18,0.08207638561725616,0,-0.15826116502285,0.1871713697910309 +19,0.08305893093347549,0,-0.1149357855319977,0.1859830319881439 +20,0.08425223827362061,0,-0.06556464731693268,0.1835651993751526 +21,0.08580866456031799,0,-0.01373045146465302,0.1803427934646606 +22,0.08787152171134949,0,0.03756017982959747,0.1766500920057297 +23,0.09060165286064148,0,0.08568240702152252,0.1726796627044678 +24,0.09419796615839005,0,0.1280811578035355,0.1684716939926147 +25,0.0989706888794899,0,0.1619039177894592,0.1639285832643509 +26,0.1055392846465111,0,0.1833221614360809,0.1587729007005692 +27,0.1151251420378685,0,0.1863845884799957,0.1523119211196899 +28,0.1297295838594437,0,0.1606082022190094,0.1428461372852325 +29,0.1538573950529099,0,0.08903694152832031,0.1284478753805161 +30,0.1864083558320999,0,-0.00643998384475708,0.1115420684218407 +31,0.204116016626358,0,-0.04648411273956299,0.09894347190856934 +32,0.213114470243454,0,-0.04503160715103149,0.08995310217142105 +33,0.2238626182079315,0,-0.03605121374130249,0.08189533650875092 +34,0.2348466515541077,0,-0.02414780855178833,0.07440105825662613 +35,0.2446695119142532,0,-0.009420096874237061,0.06749186664819717 +36,0.2530500590801239,0,0.007575929164886475,0.06112868711352348 +37,0.2601892352104187,0,0.02601128816604614,0.05522501468658447 +38,0.2663688957691193,0,0.04509902000427246,0.04968727752566338 +39,0.2717914879322052,0,0.0641971230506897,0.04444222524762154 +40,0.2765632569789886,0,0.08281570672988892,0.03944156318902969 +41,0.2807295918464661,0,0.1005828976631165,0.03466161340475082 +42,0.2843080163002014,0,0.117218554019928,0.03009257279336452 +43,0.2873038947582245,0,0.1325084567070007,0.02573686838150024 +44,0.2897233963012695,0,0.1462867856025696,0.02160211838781834 +45,0.2915727496147156,0,0.1584171652793884,0.01770010031759739 +46,0.2928621172904968,0,0.1688038110733032,0.01404032669961452 +47,0.2935994267463684,0,0.1773666143417358,0.01063394546508789 +48,0.293794572353363,0,0.1840524077415466,0.007487595081329346 +49,0.293452113866806,0,0.1888249516487122,0.004605567548424006 +50,0.2925719320774078,0,0.1916700005531311,0.00198862561956048 +51,0.2911469340324402,0,0.1925951242446899,-0.0003684997500386089 +52,0.289158970117569,0,0.1916278004646301,-0.002474915934726596 +53,0.2865817248821259,0,0.1888138651847839,-0.00434489268809557 +54,0.2833749353885651,0,0.1842193603515625,-0.005996763706207275 +55,0.2794962227344513,0,0.1779208779335022,-0.00745160598307848 +56,0.274900496006012,0,0.1699907183647156,-0.008729433640837669 +57,0.2695574164390564,0,0.1604883074760437,-0.009844708256423473 +58,0.263463020324707,0,0.149419367313385,-0.01079599838703871 +59,0.2566564679145813,0,0.1367235779762268,-0.01155760325491428 +60,0.2492129653692245,0,0.1222745180130005,-0.01206809282302856 +61,0.2412190139293671,0,0.1058735847473145,-0.01221851073205471 +62,0.2327041029930115,0,0.08731985092163086,-0.01184334792196751 +63,0.223592609167099,0,0.06646043062210083,-0.01071897707879543 +64,0.213763952255249,0,0.04328805208206177,-0.008591258898377419 +65,0.2032890766859055,0,0.01810801029205322,-0.005250883288681507 +66,0.1926316469907761,0,-0.008333086967468262,-0.0005940079572610557 +67,0.1824034601449966,0,-0.03461834788322449,0.005461394786834717 +68,0.1724178045988083,0,-0.05725598335266113,0.01317869406193495 +69,0.1603976637125015,0,-0.06911414861679077,0.02290970645844936 +70,0.1446289569139481,0,-0.06808766722679138,0.03417359665036201 +71,0.1290888786315918,0,-0.06980551779270172,0.04517100378870964 +72,0.1172798499464989,0,-0.08837582170963287,0.05475147813558578 +73,0.1088689789175987,0,-0.123141773045063,0.06320530921220779 +74,0.1027969494462013,0,-0.1699891090393066,0.07103124260902405 +75,0.09832634776830673,0,-0.2266898453235626,0.07836008816957474 +76,0.09485912322998047,0,-0.2909827828407288,0.0850580558180809 +77,0.09192077815532684,0,-0.359258621931076,0.09087730944156647 +78,0.08925431966781616,0,-0.4272927045822144,0.09554947912693024 +79,0.08682376891374588,0,-0.4916814863681793,0.09890619665384293 +80,0.08472470939159393,0,-0.5506794452667236,0.1010076254606247 +81,0.08302225917577744,0,-0.6034195423126221,0.1021030992269516 +82,0.08144354820251465,0,-0.6463847160339355,0.1022540554404259 +83,0.07874874770641327,0,-0.6667884588241577,0.1007596477866173 +84,0.07225822657346725,0,-0.6397895812988281,0.09602396935224533 +85,0.06107067689299583,0,-0.5540398359298706,0.08734690397977829 +86,0.0490175262093544,0,-0.4296776354312897,0.07629077136516571 +87,0.03969747945666313,0,-0.2889301776885986,0.06457777321338654 +88,0.03469794243574142,0,-0.1512426435947418,0.05355212837457657 +89,0.03442999720573425,0,-0.03212946653366089,0.04356188699603081 +90,0.03831765055656433,0,0.06109273433685303,0.03518936038017273 +91,0.04410265013575554,0,0.124523252248764,0.02951241098344326 +92,0.04945782572031021,0,0.1589576303958893,0.02641381695866585 +93,0.0543307363986969,0,0.1762458980083466,0.02490769699215889 +94,0.0596591904759407,0,0.1851466298103333,0.02419838309288025 +95,0.06579780578613281,0,0.1922521740198135,0.02329754829406738 +96,0.07283346354961395,0,0.2035395503044128,0.02124731615185738 +97,0.08100245147943497,0,0.2182187587022781,0.01789448782801628 +98,0.08997195959091187,0,0.2278706133365631,0.01415375433862209 +99,0.09840238094329834,0,0.2232981026172638,0.01161434035748243 +100,0.1050598248839378,0,0.2014236301183701,0.01149539370089769 +101,0.1099416390061378,0,0.1652213633060455,0.01385342516005039 +102,0.1139835193753242,0,0.1198551952838898,0.01793164014816284 +103,0.1175587400794029,0,0.06823737919330597,0.02290948107838631 +104,0.1197187155485153,0,0.00961751863360405,0.02819566801190376 +105,0.12000422924757,0,-0.05590464174747467,0.03341008350253105 +106,0.1207313761115074,0,-0.1216110363602638,0.03843604773283005 +107,0.1245543584227562,0,-0.1782388240098953,0.04337192699313164 +108,0.1314497441053391,0,-0.2227917611598969,0.048260398209095 +109,0.140061229467392,0,-0.2572890818119049,0.05310393497347832 +110,0.1494325548410416,0,-0.2841482162475586,0.05802487581968307 +111,0.15935418009758,0,-0.3056638538837433,0.06341073662042618 +112,0.1702707409858704,0,-0.3259565234184265,0.07012765854597092 +113,0.1829952448606491,0,-0.3525222539901733,0.07959817349910736 +114,0.1979628950357437,0,-0.3929952383041382,0.09298745542764664 +115,0.2141891717910767,0,-0.4445236921310425,0.1090636625885963 +116,0.2292578220367432,0,-0.4918614029884338,0.1240688115358353 +117,0.2412310838699341,0,-0.5253432989120483,0.1357156783342361 +118,0.2498504370450974,0,-0.548003077507019,0.1446323245763779 +119,0.255770355463028,0,-0.5655596852302551,0.15208600461483 +120,0.2597160339355469,0,-0.5809836387634277,0.1587533503770828 +121,0.2622292339801788,0,-0.5951442718505859,0.1648505181074142 +122,0.2636685073375702,0,-0.6081087589263916,0.1704108417034149 +123,0.2642749547958374,0,-0.6197415590286255,0.1754173785448074 +124,0.2642321586608887,0,-0.6298943758010864,0.1798478066921234 +125,0.2637114524841309,0,-0.6384445428848267,0.1836881190538406 +126,0.2628848850727081,0,-0.6452882289886475,0.1869356483221054 +127,0.2619211673736572,0,-0.650338888168335,0.1895970404148102 +128,0.2609738409519196,0,-0.6535314321517944,0.1916855275630951 +129,0.2601670622825623,0,-0.6548389792442322,0.1932157129049301 +130,0.2595902383327484,0,-0.6542852520942688,0.194202646613121 +131,0.2592974603176117,0,-0.651948094367981,0.194661483168602 +132,0.2593128681182861,0,-0.6479525566101074,0.1946112811565399 +133,0.2596351802349091,0,-0.6424562931060791,0.1940770894289017 +134,0.260239839553833,0,-0.6356330513954163,0.1930918842554092 +135,0.2610814273357391,0,-0.6276679635047913,0.1916981637477875 +136,0.2620891630649567,0,-0.61874920129776,0.1899470835924149 +137,0.2631718516349792,0,-0.6090685725212097,0.1878964751958847 +138,0.2642139494419098,0,-0.598816454410553,0.1856095939874649 +139,0.2650887370109558,0,-0.5881868004798889,0.1831540763378143 +140,0.2656728625297546,0,-0.577375054359436,0.1806000769138336 +141,0.2658545970916748,0,-0.5665792226791382,0.1780171692371368 +142,0.2655429244041443,0,-0.5559971332550049,0.1754703968763351 +143,0.2646576166152954,0,-0.5458212494850159,0.1730155646800995 +144,0.2630949318408966,0,-0.5361968874931335,0.1706870198249817 +145,0.2606877088546753,0,-0.5271626114845276,0.1684847772121429 +146,0.2571614682674408,0,-0.5185216069221497,0.1663536876440048 +147,0.2521451413631439,0,-0.509645938873291,0.1641563177108765 +148,0.2452888041734695,0,-0.4992131590843201,0.1616336554288864 +149,0.2365163117647171,0,-0.4849061667919159,0.1583508998155594 +150,0.2263085246086121,0,-0.4636361300945282,0.1537279337644577 +151,0.215793177485466,0,-0.4337959587574005,0.1474794745445251 +152,0.2063437104225159,0,-0.3982774615287781,0.1402174830436707 +153,0.1987345814704895,0,-0.3622953295707703,0.1329743713140488 +154,0.1928011327981949,0,-0.3288315236568451,0.1262342631816864 +155,0.1880365014076233,0,-0.2987695336341858,0.119998000562191 +156,0.18417888879776,0,-0.2726900577545166,0.1142251491546631 +157,0.1811881959438324,0,-0.2509110569953918,0.1089198365807533 +158,0.1789349913597107,0,-0.2328275591135025,0.1040593385696411 +159,0.1769991666078568,0,-0.2168653458356857,0.09956537187099457 +160,0.1747573018074036,0,-0.201318621635437,0.09531258046627045 +161,0.1716658174991608,0,-0.185326486825943,0.09115312993526459 +162,0.1674604564905167,0,-0.1690451949834824,0.086952805519104 +163,0.1621540635824203,0,-0.1530939936637878,0.08261334896087646 +164,0.1559638679027557,0,-0.1378903090953827,0.0780649408698082 +165,0.1492573022842407,0,-0.1231917589902878,0.07324045896530151 +166,0.1425157934427261,0,-0.1078780815005302,0.06806018203496933 +167,0.1363105773925781,0,-0.08986706286668777,0.06243526935577393 +168,0.1312837153673172,0,-0.06576858460903168,0.05630087852478027 +169,0.1278424561023712,0,-0.02984016388654709,0.04969540610909462 +170,0.1248756647109985,0,0.02812353894114494,0.0429823026061058 +171,0.1188965663313866,0,0.1232606768608093,0.03721635043621063 +172,0.1104544103145599,0,0.249540239572525,0.03342149779200554 +173,0.1081176027655602,0,0.3447596430778503,0.0309879295527935 +174,0.1117187142372131,0,0.3717561662197113,0.03009911812841892 +175,0.1149221286177635,0,0.3555034399032593,0.03154963999986649 +176,0.116194985806942,0,0.3190431296825409,0.03452578186988831 +177,0.1159064248204231,0,0.2675382792949677,0.03802207112312317 +178,0.11544219404459,0,0.1987877488136292,0.04164251685142517 +179,0.1168959513306618,0,0.113397479057312,0.0452689602971077 +180,0.1208257973194122,0,0.01838015019893646,0.04887852072715759 diff --git a/data/ram_air_kite/polars_neuralfoil/10.csv b/data/ram_air_kite/polars_neuralfoil/10.csv new file mode 100644 index 00000000..c0c2a841 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/10.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.1192935779690742,0,0.02316361665725708,0.04754942655563354 +-179,0.1240232214331627,0,-0.07185445725917816,0.05093354731798172 +-178,0.126819372177124,0,-0.1580865383148193,0.05397885292768478 +-177,0.1260654181241989,0,-0.2335471510887146,0.0559854730963707 +-176,0.1222822070121765,0,-0.3001344203948975,0.0563945360481739 +-175,0.1169975250959396,0,-0.3586688339710236,0.05526316910982132 +-174,0.1114627718925476,0,-0.4081333875656128,0.05310743302106857 +-173,0.1064872369170189,0,-0.4479586482048035,0.05044032260775566 +-172,0.1025610268115997,0,-0.4794136881828308,0.04756264016032219 +-171,0.09982622414827347,0,-0.5050320625305176,0.04466574266552925 +-170,0.09825855493545532,0,-0.5270715355873108,0.04178228974342346 +-169,0.09786896407604218,0,-0.5458232760429382,0.03851547092199326 +-168,0.09868654608726501,0,-0.5587883591651917,0.03400326520204544 +-167,0.1005982756614685,0,-0.5622060298919678,0.02743759751319885 +-166,0.1031787171959877,0,-0.5559297204017639,0.01913354359567165 +-165,0.105831578373909,0,-0.5461150407791138,0.01083328761160374 +-164,0.1083101779222488,0,-0.5370109081268311,0.003746551228687167 +-163,0.1108069866895676,0,-0.5257439613342285,-0.002622246742248535 +-162,0.1135448217391968,0,-0.5084375143051147,-0.009213435463607311 +-161,0.1165508776903152,0,-0.4840763211250305,-0.01648039184510708 +-160,0.1196669787168503,0,-0.4538463354110718,-0.02442123368382454 +-159,0.1226367726922035,0,-0.4197484850883484,-0.03282472491264343 +-158,0.1252135634422302,0,-0.3835667371749878,-0.04144326597452164 +-157,0.1272551566362381,0,-0.3463228642940521,-0.05007688328623772 +-156,0.1287641376256943,0,-0.3082186579704285,-0.05859477445483208 +-155,0.1298815160989761,0,-0.2689244747161865,-0.0669221431016922 +-154,0.1308483332395554,0,-0.227935403585434,-0.07501373440027237 +-153,0.1319492161273956,0,-0.1848619133234024,-0.08283495157957077 +-152,0.1334472745656967,0,-0.1396171450614929,-0.09034983068704605 +-151,0.1355344504117966,0,-0.09252205491065979,-0.09750735759735107 +-150,0.1383132040500641,0,-0.04433846473693848,-0.1042186766862869 +-149,0.1418083906173706,0,0.003729164600372314,-0.1103214249014854 +-148,0.1459829211235046,0,0.0500703752040863,-0.1155602782964706 +-147,0.1507429480552673,0,0.09275665879249573,-0.1196204051375389 +-146,0.1559216231107712,0,0.1297398209571838,-0.1222328990697861 +-145,0.1612852662801743,0,0.1592094898223877,-0.1232939958572388 +-144,0.1665714830160141,0,0.1801171600818634,-0.1229232400655746 +-143,0.1715671271085739,0,0.1926058828830719,-0.1214252114295959 +-142,0.1761685460805893,0,0.1980072855949402,-0.1191978231072426 +-141,0.1803727149963379,0,0.1983412504196167,-0.116638720035553 +-140,0.1842231452465057,0,0.1956716775894165,-0.1140744835138321 +-139,0.1877533793449402,0,0.1916899681091309,-0.1117309778928757 +-138,0.1909656226634979,0,0.1875826418399811,-0.1097426190972328 +-137,0.1938372105360031,0,0.1840713918209076,-0.1081725731492043 +-136,0.1963298320770264,0,0.1815392673015594,-0.1070427522063255 +-135,0.1984022855758667,0,0.1801413893699646,-0.106352187693119 +-134,0.2000087648630142,0,0.179894894361496,-0.1060913577675819 +-133,0.2011004984378815,0,0.180726170539856,-0.1062521487474442 +-132,0.2016246020793915,0,0.1824830770492554,-0.1068298071622849 +-131,0.2015165239572525,0,0.1849107146263123,-0.1078235954046249 +-130,0.2007046192884445,0,0.1875969469547272,-0.1092305928468704 +-129,0.1991106271743774,0,0.1899014115333557,-0.1110353246331215 +-128,0.1966725289821625,0,0.1908970773220062,-0.1131963729858398 +-127,0.1933834552764893,0,0.189369797706604,-0.1156278401613235 +-126,0.1893613338470459,0,0.1839751899242401,-0.1181774958968163 +-125,0.1849242895841599,0,0.1735919713973999,-0.120607040822506 +-124,0.1806127578020096,0,0.157831996679306,-0.1225858554244041 +-123,0.1770711243152618,0,0.1373657286167145,-0.1237146630883217 +-122,0.1747817248106003,0,0.1136614680290222,-0.1236040219664574 +-121,0.1737996339797974,0,0.08815291523933411,-0.1219846978783607 +-120,0.1737308651208878,0,0.06154078245162964,-0.1187935024499893 +-119,0.1739763617515564,0,0.0338725745677948,-0.1141772121191025 +-118,0.1740088909864426,0,0.005095005035400391,-0.1084232553839684 +-117,0.1734785437583923,0,-0.02467483282089233,-0.1018480509519577 +-116,0.172181025147438,0,-0.05533158779144287,-0.09468404203653336 +-115,0.170025035738945,0,-0.08705151081085205,-0.08702115714550018 +-114,0.1670271009206772,0,-0.1203137636184692,-0.0788252130150795 +-113,0.1633011847734451,0,-0.1557035446166992,-0.07000624388456345 +-112,0.1590165048837662,0,-0.1936791092157364,-0.06048332527279854 +-111,0.1543413698673248,0,-0.234411433339119,-0.0502164363861084 +-110,0.1493867784738541,0,-0.2775976657867432,-0.03920131921768188 +-109,0.1441423743963242,0,-0.3220694363117218,-0.02742456831037998 +-108,0.1383548974990845,0,-0.3653547465801239,-0.0147815765812993 +-107,0.1314519345760345,0,-0.4045132994651794,-0.001087927841581404 +-106,0.1232919469475746,0,-0.4401427507400513,0.01353808678686619 +-105,0.1156676933169365,0,-0.4785261154174805,0.0282655842602253 +-104,0.1098584681749344,0,-0.5233277082443237,0.04197081178426743 +-103,0.1043020337820053,0,-0.5689902305603027,0.05414946004748344 +-102,0.09793894737958908,0,-0.6069142818450928,0.06491494178771973 +-101,0.09122956544160843,0,-0.6345401406288147,0.07413829118013382 +-100,0.08532638847827911,0,-0.6550184488296509,0.08156441897153854 +-99,0.08099474757909775,0,-0.6715626120567322,0.08714424073696136 +-98,0.07840048521757126,0,-0.6847357153892517,0.09094510972499847 +-97,0.07740850746631622,0,-0.6933161020278931,0.09283821284770966 +-96,0.07691977918148041,0,-0.6894382238388062,0.0921042338013649 +-95,0.07279292494058609,0,-0.642106294631958,0.08740849047899246 +-94,0.06228077039122581,0,-0.5201929211616516,0.07837009429931641 +-93,0.05086113139986992,0,-0.3595982789993286,0.06656934320926666 +-92,0.04281523823738098,0,-0.2042604684829712,0.05514026433229446 +-91,0.0391581803560257,0,-0.07047423720359802,0.04573772102594376 +-90,0.03966321051120758,0,0.03027406334877014,0.03769933059811592 +-89,0.04271630197763443,0,0.08789381384849548,0.03143482655286789 +-88,0.04606419056653976,0,0.106432318687439,0.02807321026921272 +-87,0.04909535497426987,0,0.1000130474567413,0.02689936757087708 +-86,0.05232637748122215,0,0.07977625727653503,0.02645255252718925 +-85,0.05624837800860405,0,0.05229029059410095,0.02566921152174473 +-84,0.06124057248234749,0,0.02249637246131897,0.02390700578689575 +-83,0.06776179373264313,0,-0.005729943513870239,0.02090521529316902 +-82,0.07631390541791916,0,-0.03006495535373688,0.01681050658226013 +-81,0.08669169992208481,0,-0.0515068843960762,0.01218322478234768 +-80,0.09723411500453949,0,-0.07566000521183014,0.007919806055724621 +-79,0.10601906478405,0,-0.1097352057695389,0.004848199896514416 +-78,0.1123080402612686,0,-0.1569161713123322,0.003251016139984131 +-77,0.1165980696678162,0,-0.2148219347000122,0.00286018243059516 +-76,0.1199442744255066,0,-0.2786899507045746,0.003228503512218595 +-75,0.1232831552624702,0,-0.3443927466869354,0.003972619771957397 +-74,0.1271397024393082,0,-0.4093013405799866,0.004833430051803589 +-73,0.1316644102334976,0,-0.4720244109630585,0.005657845642417669 +-72,0.1367511302232742,0,-0.531924843788147,0.00635301461443305 +-71,0.142097681760788,0,-0.5886868834495544,0.006832432933151722 +-70,0.1472920030355453,0,-0.642039954662323,0.006997841410338879 +-69,0.1520810723304749,0,-0.6916490197181702,0.006798923015594482 +-68,0.1566954404115677,0,-0.7376730442047119,0.006459742784500122 +-67,0.1617387235164642,0,-0.7846482396125793,0.007220149040222168 +-66,0.168070912361145,0,-0.8462144732475281,0.01212261896580458 +-65,0.1763354986906052,0,-0.9299222230911255,0.02279939129948616 +-64,0.1857063770294189,0,-1.017556548118591,0.03535113483667374 +-63,0.1946528553962708,0,-1.084457397460938,0.04451639205217361 +-62,0.2023046612739563,0,-1.123406291007996,0.04875063896179199 +-61,0.2084560990333557,0,-1.142299294471741,0.04966265708208084 +-60,0.2130154669284821,0,-1.150634288787842,0.04908359795808792 +-59,0.2160641700029373,0,-1.154373288154602,0.04797650128602982 +-58,0.2182202935218811,0,-1.157192707061768,0.04676107689738274 +-57,0.220536395907402,0,-1.161684155464172,0.04567517712712288 +-56,0.223884180188179,0,-1.169214844703674,0.0448404848575592 +-55,0.2284789532423019,0,-1.179676413536072,0.04422580450773239 +-54,0.2339454591274261,0,-1.192017555236816,0.04369226843118668 +-53,0.2396744042634964,0,-1.205119848251343,0.04309355095028877 +-52,0.245099812746048,0,-1.218287467956543,0.04234246537089348 +-51,0.2498180270195007,0,-1.231294274330139,0.04142184183001518 +-50,0.2535977363586426,0,-1.244231820106506,0.0403682179749012 +-49,0.2563517689704895,0,-1.257339477539062,0.03924830630421638 +-48,0.2580948173999786,0,-1.270879983901978,0.03813565894961357 +-47,0.2589073479175568,0,-1.285024642944336,0.03708907961845398 +-46,0.2588992714881897,0,-1.299766898155212,0.03613371402025223 +-45,0.2581921219825745,0,-1.314858675003052,0.03524462133646011 +-44,0.2569179534912109,0,-1.32977294921875,0.03433685377240181 +-43,0.2552386522293091,0,-1.343711376190186,0.03326692059636116 +-42,0.2533765435218811,0,-1.355671882629395,0.0318470373749733 +-41,0.2516399621963501,0,-1.364562153816223,0.02987813949584961 +-40,0.2503803372383118,0,-1.369339108467102,0.02719351090490818 +-39,0.2498290538787842,0,-1.369134068489075,0.02369713224470615 +-38,0.2498077303171158,0,-1.363356471061707,0.01938255503773689 +-37,0.2495045214891434,0,-1.351822733879089,0.01432022452354431 +-36,0.2476333379745483,0,-1.334804177284241,0.008623111061751842 +-35,0.2430552840232849,0,-1.312852025032043,0.002406561281532049 +-34,0.2354238033294678,0,-1.286432385444641,-0.004247951321303844 +-33,0.2253118902444839,0,-1.255622029304504,-0.01130986213684082 +-32,0.2138205319643021,0,-1.220274209976196,-0.0187559612095356 +-31,0.2020753026008606,0,-1.180704116821289,-0.02644853666424751 +-30,0.1909419596195221,0,-1.138437628746033,-0.0340067632496357 +-29,0.1809174567461014,0,-1.096098303794861,-0.04086631536483765 +-28,0.1720795780420303,0,-1.056082844734192,-0.04656567424535751 +-27,0.164225161075592,0,-1.019431233406067,-0.050909124314785 +-26,0.1571206450462341,0,-0.9858805537223816,-0.0539037212729454 +-25,0.1506189256906509,0,-0.9544222354888916,-0.05572343990206718 +-24,0.1446496844291687,0,-0.9237661361694336,-0.05669355392456055 +-23,0.1391808241605759,0,-0.8927803635597229,-0.05718350410461426 +-22,0.134167343378067,0,-0.8607253432273865,-0.05750118568539619 +-21,0.1295095533132553,0,-0.8271648287773132,-0.05786901712417603 +-20,0.1250266432762146,0,-0.7918701767921448,-0.05845037847757339 +-19,0.1204486414790154,0,-0.7550308704376221,-0.0593426451086998 +-18,0.1154412850737572,0,-0.7178030610084534,-0.06050101667642593 +-17,0.1096495017409325,0,-0.6827160120010376,-0.06169576570391655 +-16,0.102744072675705,0,-0.6538410782814026,-0.06253385543823242 +-15,0.09443133324384689,0,-0.636724591255188,-0.06247378513216972 +-14,0.08434636145830154,0,-0.6375105977058411,-0.06089559942483902 +-13,0.07222405076026917,0,-0.6595087647438049,-0.05734087154269218 +-12,0.05909023806452751,0,-0.6967036724090576,-0.05163326114416122 +-11,0.04737043380737305,0,-0.7292348742485046,-0.04447004944086075 +-10,0.03919168189167976,0,-0.7282820343971252,-0.03828942775726318 +-9,0.03453335911035538,0,-0.6825919151306152,-0.03474459797143936 +-8,0.03177870437502861,0,-0.6071716547012329,-0.0329614169895649 +-7,0.02988683059811592,0,-0.5186619758605957,-0.03176697343587875 +-6,0.02844968996942043,0,-0.4254938662052155,-0.03062461689114571 +-5,0.02733887545764446,0,-0.3306386470794678,-0.02940881252288818 +-4,0.0264973733574152,0,-0.2352701127529144,-0.02807878330349922 +-3,0.0258752815425396,0,-0.1404243260622025,-0.02654020860791206 +-2,0.02543382719159126,0,-0.04696077108383179,-0.02466422319412231 +-1,0.02514375373721123,0,0.04454773664474487,-0.02227795124053955 +0,0.02497600764036179,0,0.1327179223299026,-0.01897165738046169 +1,0.02495974488556385,0,0.2133570164442062,-0.01386324129998684 +2,0.0252947099506855,0,0.2803621888160706,-0.006019568536430597 +3,0.02613518945872784,0,0.3304488062858582,0.004756009671837091 +4,0.02730024419724941,0,0.3641025424003601,0.01813902892172337 +5,0.0285002812743187,0,0.3854964077472687,0.03300235420465469 +6,0.02964672073721886,0,0.4011855721473694,0.04754707962274551 +7,0.03076072409749031,0,0.411409854888916,0.06162474304437637 +8,0.03189822286367416,0,0.409017950296402,0.0766974538564682 +9,0.03372890874743462,0,0.3798519968986511,0.09404139965772629 +10,0.03845798224210739,0,0.303859144449234,0.1127153411507607 +11,0.04831622913479805,0,0.1671760380268097,0.1302484124898911 +12,0.06108934804797173,0,-0.001883760443888605,0.1462861597537994 +13,0.07031793147325516,0,-0.1287737190723419,0.16047003865242 +14,0.07484530657529831,0,-0.1915006935596466,0.1711485534906387 +15,0.07731784880161285,0,-0.2083882540464401,0.1776722371578217 +16,0.07911935448646545,0,-0.1954666078090668,0.1807124465703964 +17,0.08067233860492706,0,-0.1630514413118362,0.1810627281665802 +18,0.08214098960161209,0,-0.1177183240652084,0.1793704926967621 +19,0.08363852649927139,0,-0.06423874944448471,0.1761805862188339 +20,0.08530496805906296,0,-0.006730407476425171,0.1719921678304672 +21,0.08731565624475479,0,0.05128265917301178,0.1672588884830475 +22,0.08986225724220276,0,0.1069520860910416,0.1623151749372482 +23,0.09313663095235825,0,0.1578161865472794,0.1573235541582108 +24,0.0973687618970871,0,0.2013798952102661,0.1522647887468338 +25,0.1029783263802528,0,0.2345275431871414,0.1469197571277618 +26,0.1109179928898811,0,0.2522993683815002,0.1407418102025986 +27,0.1229516938328743,0,0.2465420961380005,0.1324799358844757 +28,0.1421652883291245,0,0.2019068598747253,0.1198909729719162 +29,0.1736405938863754,0,0.1081365942955017,0.1025231704115868 +30,0.2020883113145828,0,0.03330934047698975,0.08646706491708755 +31,0.2126702815294266,0,0.02398449182510376,0.07575179636478424 +32,0.2232987582683563,0,0.0325392484664917,0.06683371216058731 +33,0.2353386729955673,0,0.04448246955871582,0.05859500169754028 +34,0.2465453296899796,0,0.05944341421127319,0.05105571821331978 +35,0.2562155723571777,0,0.07700866460800171,0.04419304057955742 +36,0.2644651830196381,0,0.09630334377288818,0.03790508583188057 +37,0.2716227471828461,0,0.1164388656616211,0.03207148239016533 +38,0.2779484391212463,0,0.1366958618164062,0.02659028768539429 +39,0.2835870981216431,0,0.1565519571304321,0.02138810232281685 +40,0.2885950207710266,0,0.1756152510643005,0.01642521657049656 +41,0.2929881811141968,0,0.1936041116714478,0.01168131828308105 +42,0.2967672646045685,0,0.2103013396263123,0.0071521638892591 +43,0.2999299168586731,0,0.2255306243896484,0.002844524336978793 +44,0.3024766445159912,0,0.2391551733016968,-0.001231014728546143 +45,0.3044122755527496,0,0.2510530352592468,-0.005059731192886829 +46,0.3057427108287811,0,0.2611265182495117,-0.008627021685242653 +47,0.3064755797386169,0,0.2692882418632507,-0.01191856898367405 +48,0.3066207468509674,0,0.2754778265953064,-0.01492389477789402 +49,0.3061797916889191,0,0.279638409614563,-0.01763281784951687 +50,0.3051554560661316,0,0.2817397713661194,-0.02004208602011204 +51,0.3035409450531006,0,0.2817667126655579,-0.02214956283569336 +52,0.3013216853141785,0,0.2797307968139648,-0.02396166324615479 +53,0.298476368188858,0,0.2756556868553162,-0.02548689767718315 +54,0.2949740588665009,0,0.2695915699005127,-0.02674057520925999 +55,0.2907816171646118,0,0.2615982890129089,-0.02773988246917725 +56,0.2858687341213226,0,0.2517403364181519,-0.0285026915371418 +57,0.2802174389362335,0,0.2400602102279663,-0.02904201671481133 +58,0.2738364636898041,0,0.2265689373016357,-0.02935942448675632 +59,0.2667699158191681,0,0.211203932762146,-0.0294350627809763 +60,0.2590931057929993,0,0.1938426494598389,-0.02922207117080688 +61,0.250887542963028,0,0.1743089556694031,-0.02863624133169651 +62,0.2421814799308777,0,0.1524295806884766,-0.02755129337310791 +63,0.232885330915451,0,0.1280964016914368,-0.0257946141064167 +64,0.2228029072284698,0,0.101349413394928,-0.02315319702029228 +65,0.2118176370859146,0,0.07244539260864258,-0.01940715312957764 +66,0.2002114951610565,0,0.04197156429290771,-0.01440269965678453 +67,0.188746839761734,0,0.01093006134033203,-0.008073007687926292 +68,0.1780245751142502,0,-0.01854038238525391,-0.0002708077372517437 +69,0.1669023036956787,0,-0.04067409038543701,0.009413778781890869 +70,0.1522320955991745,0,-0.04774829745292664,0.02113062143325806 +71,0.1352821439504623,0,-0.04738479852676392,0.03351107239723206 +72,0.1213277354836464,0,-0.06016117334365845,0.04463698714971542 +73,0.1115017086267471,0,-0.09230136871337891,0.05425629764795303 +74,0.1045783013105392,0,-0.1393339037895203,0.06302662938833237 +75,0.09955975413322449,0,-0.1975712478160858,0.07130751758813858 +76,0.09575191140174866,0,-0.2644412815570831,0.07904551923274994 +77,0.09260815382003784,0,-0.3363323509693146,0.08596907556056976 +78,0.08979145437479019,0,-0.4085496068000793,0.0917104035615921 +79,0.087208092212677,0,-0.4766369462013245,0.09593310952186584 +80,0.08493379503488541,0,-0.5376884937286377,0.09852509200572968 +81,0.08307161927223206,0,-0.5904695987701416,0.0996866375207901 +82,0.08152037858963013,0,-0.6331557035446167,0.0996621698141098 +83,0.07951327413320541,0,-0.6580731868743896,0.09815405309200287 +84,0.07496867328882217,0,-0.6457961797714233,0.09391771256923676 +85,0.06582107394933701,0,-0.5763737559318542,0.08572250604629517 +86,0.05436363816261292,0,-0.4613019526004791,0.07482464611530304 +87,0.04442416504025459,0,-0.3237056136131287,0.06328293681144714 +88,0.03820958361029625,0,-0.1830114424228668,0.05263062193989754 +89,0.03671532869338989,0,-0.06058555841445923,0.04397791624069214 +90,0.03966321051120758,0,0.03027406334877014,0.03769933059811592 +91,0.04510875791311264,0,0.08914309740066528,0.03391202539205551 +92,0.05082425475120544,0,0.1217529475688934,0.03222198039293289 +93,0.05622762069106102,0,0.1369209289550781,0.03195195272564888 +94,0.06177697703242302,0,0.1422649323940277,0.03248342871665955 +95,0.06776241213083267,0,0.1443382501602173,0.03299990296363831 +96,0.07430883496999741,0,0.1483303606510162,0.03265201300382614 +97,0.08167325705289841,0,0.155212014913559,0.03098723851144314 +98,0.08991155028343201,0,0.160318911075592,0.02831493690609932 +99,0.09829869121313095,0,0.1567608118057251,0.02578405104577541 +100,0.1056524068117142,0,0.1406927555799484,0.02477139234542847 +101,0.1113924533128738,0,0.1120872050523758,0.02590901218354702 +102,0.1157886534929276,0,0.07297530770301819,0.02887272834777832 +103,0.1188228279352188,0,0.02471517771482468,0.03296691179275513 +104,0.1196748837828636,0,-0.03309394419193268,0.03755643963813782 +105,0.1187600418925285,0,-0.09835949540138245,0.04218597337603569 +106,0.119055300951004,0,-0.162206619977951,0.04669936373829842 +107,0.122767798602581,0,-0.2151552885770798,0.05112672969698906 +108,0.1293847411870956,0,-0.2548867166042328,0.05544812232255936 +109,0.1376083642244339,0,-0.2835564315319061,0.0596998929977417 +110,0.1467393785715103,0,-0.3039053380489349,0.06413920223712921 +111,0.1567221432924271,0,-0.3194621503353119,0.06933602690696716 +112,0.167870357632637,0,-0.3361466526985168,0.07624940574169159 +113,0.1805373281240463,0,-0.3624979257583618,0.08617213368415833 +114,0.1945526301860809,0,-0.4046064019203186,0.09979644417762756 +115,0.208540067076683,0,-0.4557017087936401,0.1151866689324379 +116,0.2205021232366562,0,-0.5004856586456299,0.1287908405065536 +117,0.2296098917722702,0,-0.533332347869873,0.139330580830574 +118,0.2363592535257339,0,-0.5580648183822632,0.1476816236972809 +119,0.2415212541818619,0,-0.5787473917007446,0.1548177599906921 +120,0.2456280589103699,0,-0.5972331762313843,0.1612303704023361 +121,0.2489599883556366,0,-0.61407071352005,0.1670975983142853 +122,0.2516535222530365,0,-0.6293269395828247,0.1724595129489899 +123,0.2537844777107239,0,-0.6429390907287598,0.1773037165403366 +124,0.2554176449775696,0,-0.6548153758049011,0.1816036999225616 +125,0.2566292881965637,0,-0.6648713350296021,0.1853338927030563 +126,0.2575135231018066,0,-0.6730144619941711,0.1884794235229492 +127,0.258175790309906,0,-0.6791524887084961,0.1910357773303986 +128,0.258715957403183,0,-0.6831968426704407,0.1930090188980103 +129,0.2592190206050873,0,-0.6850885152816772,0.1944102942943573 +130,0.2597481608390808,0,-0.6848160028457642,0.1952546834945679 +131,0.2603449821472168,0,-0.682437539100647,0.1955599039793015 +132,0.2610297203063965,0,-0.6780754327774048,0.1953476220369339 +133,0.2618110477924347,0,-0.671907901763916,0.1946451663970947 +134,0.262683629989624,0,-0.6641557216644287,0.1934891194105148 +135,0.2636281549930573,0,-0.655062198638916,0.1919259428977966 +136,0.2646045684814453,0,-0.6448800563812256,0.1900111436843872 +137,0.2655467987060547,0,-0.6338587403297424,0.1878080517053604 +138,0.2663630545139313,0,-0.6222337484359741,0.1853852421045303 +139,0.266936868429184,0,-0.610220193862915,0.1828148365020752 +140,0.2671433389186859,0,-0.5980089902877808,0.1801685690879822 +141,0.2668643891811371,0,-0.5857664346694946,0.1775140464305878 +142,0.2660056352615356,0,-0.5736454725265503,0.1749124675989151 +143,0.2644924223423004,0,-0.5617798566818237,0.1724106669425964 +144,0.2622581720352173,0,-0.550275444984436,0.1700358092784882 +145,0.2592077851295471,0,-0.5391514301300049,0.167781800031662 +146,0.2551796436309814,0,-0.528229832649231,0.1655912697315216 +147,0.2499218136072159,0,-0.5169508457183838,0.1633270978927612 +148,0.2431285977363586,0,-0.5041177868843079,0.1607358604669571 +149,0.2345967292785645,0,-0.4876719415187836,0.1574116051197052 +150,0.2245136052370071,0,-0.4649125933647156,0.1528414785861969 +151,0.21371890604496,0,-0.4342198669910431,0.1467440873384476 +152,0.2035423368215561,0,-0.3977430760860443,0.1395982503890991 +153,0.1949911862611771,0,-0.3602854609489441,0.1323636025190353 +154,0.1881509870290756,0,-0.3250342309474945,0.12554532289505 +155,0.1826006472110748,0,-0.2930341958999634,0.1191327348351479 +156,0.178058922290802,0,-0.2649145722389221,0.1130785495042801 +157,0.1744522899389267,0,-0.2411251068115234,0.1074371114373207 +158,0.1716403663158417,0,-0.221340224146843,0.10227020829916 +159,0.1692424118518829,0,-0.2043361961841583,0.09757009893655777 +160,0.1667165011167526,0,-0.1886183619499207,0.09323589503765106 +161,0.1635898947715759,0,-0.1732020974159241,0.08909539878368378 +162,0.1596171110868454,0,-0.1578585356473923,0.08496008068323135 +163,0.1547850519418716,0,-0.1427766531705856,0.08067317306995392 +164,0.1492561250925064,0,-0.128098651766777,0.07612291723489761 +165,0.1433187127113342,0,-0.1135633811354637,0.07122848927974701 +166,0.1373425424098969,0,-0.09835054725408554,0.06591777503490448 +167,0.1317443251609802,0,-0.08102626353502274,0.0601201057434082 +168,0.1269655525684357,0,-0.0591132715344429,0.05379731580615044 +169,0.1232712492346764,0,-0.02754281461238861,0.04705584794282913 +170,0.1198225393891335,0,0.02443929761648178,0.04042201489210129 +171,0.1138937100768089,0,0.1135844513773918,0.03516016900539398 +172,0.1062540709972382,0,0.2351317405700684,0.03232906386256218 +173,0.1049579530954361,0,0.3276971876621246,0.03099765256047249 +174,0.1096489503979683,0,0.3546780049800873,0.03081868216395378 +175,0.113696277141571,0,0.3414774537086487,0.03231431171298027 +176,0.115312434732914,0,0.3103934228420258,0.03483946993947029 +177,0.1149744987487793,0,0.2649385333061218,0.03774569556117058 +178,0.1142676919698715,0,0.2010778486728668,0.04087970405817032 +179,0.1154603287577629,0,0.1180765777826309,0.04417211934924126 +180,0.1192935779690742,0,0.02316361665725708,0.04754942655563354 diff --git a/data/ram_air_kite/polars_neuralfoil/11.csv b/data/ram_air_kite/polars_neuralfoil/11.csv new file mode 100644 index 00000000..29677aac --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/11.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03434468060731888,0,-0.07291767001152039,-0.007122221402823925 +-179,0.03596784174442291,0,-0.1133196130394936,-0.008263510651886463 +-178,0.03692910820245743,0,-0.149960845708847,-0.006577166728675365 +-177,0.03765115886926651,0,-0.1720829904079437,-0.006461971905082464 +-176,0.03834882378578186,0,-0.1800749450922012,-0.008546968922019005 +-175,0.03922681510448456,0,-0.1779282838106155,-0.01218290627002716 +-174,0.04037389531731606,0,-0.1686252653598785,-0.01675546914339066 +-173,0.04183754324913025,0,-0.1538285762071609,-0.02196179702877998 +-172,0.04376956447958946,0,-0.1342644989490509,-0.0277552492916584 +-171,0.04644365236163139,0,-0.1108162701129913,-0.03403386101126671 +-170,0.05016027018427849,0,-0.08675113320350647,-0.04014816135168076 +-169,0.055207759141922,0,-0.06950527429580688,-0.04491142556071281 +-168,0.06184603646397591,0,-0.06598538160324097,-0.04784011468291283 +-167,0.06920671463012695,0,-0.07399198412895203,-0.04906969144940376 +-166,0.07461452484130859,0,-0.08206933736801147,-0.04961126670241356 +-165,0.07648409157991409,0,-0.0724492073059082,-0.05256640166044235 +-164,0.07789675146341324,0,-0.03423771262168884,-0.06054769828915596 +-163,0.08261597901582718,0,0.02323839068412781,-0.07192403078079224 +-162,0.09057124704122543,0,0.08409056067466736,-0.08311357349157333 +-161,0.1003044471144676,0,0.1427348554134369,-0.09320355951786041 +-160,0.11061991751194,0,0.2000961601734161,-0.1032833680510521 +-159,0.1206751987338066,0,0.2573201358318329,-0.1143759861588478 +-158,0.1301269680261612,0,0.3147955238819122,-0.1264539659023285 +-157,0.1391045302152634,0,0.3720938563346863,-0.1386885344982147 +-156,0.147833451628685,0,0.4279548227787018,-0.1502691507339478 +-155,0.1563678085803986,0,0.4810465574264526,-0.1608395278453827 +-154,0.16460782289505,0,0.5304492115974426,-0.1704300194978714 +-153,0.1724272221326828,0,0.5756734609603882,-0.179236963391304 +-152,0.1797559708356857,0,0.6166096329689026,-0.1874561607837677 +-151,0.1865918636322021,0,0.6534894704818726,-0.1952264010906219 +-150,0.1929678916931152,0,0.6867804527282715,-0.2026293277740479 +-149,0.1989266574382782,0,0.7170398235321045,-0.2097095549106598 +-148,0.2045034170150757,0,0.7448172569274902,-0.2164912223815918 +-147,0.2097219675779343,0,0.770590603351593,-0.2229859381914139 +-146,0.214597225189209,0,0.7947374582290649,-0.2291973829269409 +-145,0.219134196639061,0,0.8175395727157593,-0.2351242005825043 +-144,0.2233314961194992,0,0.8391852378845215,-0.2407596409320831 +-143,0.2271845191717148,0,0.8597921133041382,-0.2460931986570358 +-142,0.2306877225637436,0,0.8794217109680176,-0.2511127591133118 +-141,0.2338390052318573,0,0.8980935215950012,-0.2558043897151947 +-140,0.2366392612457275,0,0.9158023595809937,-0.2601544260978699 +-139,0.239092081785202,0,0.9325193762779236,-0.2641484141349792 +-138,0.241207629442215,0,0.948215663433075,-0.267775297164917 +-137,0.2429980337619781,0,0.9628510475158691,-0.2710234522819519 +-136,0.2444778978824615,0,0.9763948321342468,-0.2738838195800781 +-135,0.2456620186567307,0,0.9888122081756592,-0.2763476967811584 +-134,0.2465681284666061,0,1.000081419944763,-0.2784099578857422 +-133,0.2472105026245117,0,1.010188817977905,-0.2800672352313995 +-132,0.2476029396057129,0,1.019124150276184,-0.2813153862953186 +-131,0.2477582991123199,0,1.026891231536865,-0.2821549773216248 +-130,0.2476845383644104,0,1.033495426177979,-0.2825857698917389 +-129,0.2473913431167603,0,1.038956880569458,-0.2826106548309326 +-128,0.2468818426132202,0,1.043287396430969,-0.2822323441505432 +-127,0.2461593151092529,0,1.046513915061951,-0.2814573645591736 +-126,0.245223194360733,0,1.048653841018677,-0.2802931666374207 +-125,0.2440707981586456,0,1.049716234207153,-0.2787497639656067 +-124,0.2426981180906296,0,1.049697160720825,-0.2768414616584778 +-123,0.2410981506109238,0,1.0485680103302,-0.2745849192142487 +-122,0.2392642349004745,0,1.046272039413452,-0.2720003426074982 +-121,0.2371896505355835,0,1.042714953422546,-0.2691079378128052 +-120,0.2348712980747223,0,1.037778973579407,-0.2659247517585754 +-119,0.2323135733604431,0,1.031338214874268,-0.2624532282352448 +-118,0.2295330464839935,0,1.023313403129578,-0.2586628794670105 +-117,0.226558044552803,0,1.013782143592834,-0.2544589936733246 +-116,0.2234020680189133,0,1.00308620929718,-0.2496438920497894 +-115,0.2199984788894653,0,0.9918638467788696,-0.2439193278551102 +-114,0.2160714864730835,0,0.9807143211364746,-0.2369891405105591 +-113,0.211102083325386,0,0.9694972038269043,-0.228778600692749 +-112,0.2045912891626358,0,0.9567971229553223,-0.2195985019207001 +-111,0.1963813155889511,0,0.9404253959655762,-0.2099791765213013 +-110,0.1864695698022842,0,0.918785035610199,-0.2001022547483444 +-109,0.1749372184276581,0,0.8907556533813477,-0.189464196562767 +-108,0.162369892001152,0,0.8542476892471313,-0.1773217469453812 +-107,0.1497892141342163,0,0.8071097731590271,-0.1632503122091293 +-106,0.1385317146778107,0,0.7488622069358826,-0.1473109275102615 +-105,0.1303541958332062,0,0.6825318336486816,-0.1304203122854233 +-104,0.126262441277504,0,0.616122305393219,-0.1146965771913528 +-103,0.1240393370389938,0,0.5571991801261902,-0.1019104942679405 +-102,0.1196020022034645,0,0.5073089599609375,-0.09200906753540039 +-101,0.1115230619907379,0,0.4635114073753357,-0.0840742439031601 +-100,0.1023222133517265,0,0.4183783531188965,-0.07687409967184067 +-99,0.09443806111812592,0,0.3650903105735779,-0.06918095797300339 +-98,0.08774350583553314,0,0.3059975504875183,-0.06098467856645584 +-97,0.08178326487541199,0,0.2491067498922348,-0.05350511148571968 +-96,0.07591834664344788,0,0.2048086225986481,-0.04781732335686684 +-95,0.06645699590444565,0,0.1902806013822556,-0.04220514744520187 +-94,0.04667631536722183,0,0.2280911803245544,-0.02847255393862724 +-93,0.02566002868115902,0,0.3024085462093353,-0.001551264547742903 +-92,0.02039224654436111,0,0.1841516345739365,0.01595469005405903 +-91,0.01838031969964504,0,0.0606318861246109,0.02325928583741188 +-90,0.01753451861441135,0,-0.05237170308828354,0.02475076355040073 +-89,0.01708078943192959,0,-0.1693083643913269,0.02438895031809807 +-88,0.0167364776134491,0,-0.2963050603866577,0.02400876954197884 +-87,0.01665641739964485,0,-0.4315644502639771,0.0248927678912878 +-86,0.01779484935104847,0,-0.560427188873291,0.02846818789839745 +-85,0.02160779200494289,0,-0.6581614017486572,0.035041444003582 +-84,0.02883763611316681,0,-0.7144767045974731,0.04150853306055069 +-83,0.0390552282333374,0,-0.7444005012512207,0.04618961364030838 +-82,0.05130206048488617,0,-0.7686898708343506,0.05066359788179398 +-81,0.06450285762548447,0,-0.7990313172340393,0.05646142363548279 +-80,0.07759073376655579,0,-0.8377997875213623,0.06412322074174881 +-79,0.08872288465499878,0,-0.8804875016212463,0.07277535647153854 +-78,0.09890247136354446,0,-0.9259212613105774,0.08146920055150986 +-77,0.1088666170835495,0,-0.9727464914321899,0.0892646461725235 +-76,0.1144571676850319,0,-1.018828392028809,0.09583468735218048 +-75,0.1246824115514755,0,-1.066264510154724,0.1064173579216003 +-74,0.14049032330513,0,-1.107782602310181,0.1200824975967407 +-73,0.1601695716381073,0,-1.132327556610107,0.1349552124738693 +-72,0.1830455511808395,0,-1.13991391658783,0.1508591175079346 +-71,0.2060156762599945,0,-1.141722559928894,0.1667223274707794 +-70,0.2274570763111115,0,-1.146506428718567,0.1813598871231079 +-69,0.2484759241342545,0,-1.155869364738464,0.1943366825580597 +-68,0.2691689431667328,0,-1.169986963272095,0.2056255787611008 +-67,0.2885108292102814,0,-1.188592910766602,0.2153208553791046 +-66,0.3058629333972931,0,-1.210554122924805,0.2235906571149826 +-65,0.3213726878166199,0,-1.234254121780396,0.2306820452213287 +-64,0.3354688882827759,0,-1.258128881454468,0.2368675172328949 +-63,0.3484338223934174,0,-1.280990123748779,0.2423563897609711 +-62,0.3603485524654388,0,-1.302111625671387,0.2472665309906006 +-61,0.3711797297000885,0,-1.321122050285339,0.2516396641731262 +-60,0.3808808624744415,0,-1.337879776954651,0.2554802298545837 +-59,0.3894455134868622,0,-1.352368831634521,0.258781373500824 +-58,0.3969218134880066,0,-1.3646559715271,0.261542022228241 +-57,0.4033931791782379,0,-1.374863028526306,0.2637705206871033 +-56,0.4089576900005341,0,-1.383158683776855,0.2654854357242584 +-55,0.4137051701545715,0,-1.38973081111908,0.2667101323604584 +-54,0.41770339012146,0,-1.394773483276367,0.2674692273139954 +-53,0.4209934175014496,0,-1.398467659950256,0.2677838504314423 +-52,0.4235938489437103,0,-1.400959134101868,0.2676708400249481 +-51,0.4255040884017944,0,-1.402371048927307,0.2671433091163635 +-50,0.4267146587371826,0,-1.402793049812317,0.2662101984024048 +-49,0.427210807800293,0,-1.402286529541016,0.2648778259754181 +-48,0.4269765913486481,0,-1.40088963508606,0.2631503939628601 +-47,0.4260029792785645,0,-1.39862585067749,0.2610290944576263 +-46,0.4242860078811646,0,-1.395503044128418,0.2585158348083496 +-45,0.4218325912952423,0,-1.391519784927368,0.2556093037128448 +-44,0.4186558425426483,0,-1.38666832447052,0.2523074448108673 +-43,0.4147792160511017,0,-1.380932927131653,0.2486075460910797 +-42,0.4102340340614319,0,-1.374298334121704,0.244505450129509 +-41,0.4050569832324982,0,-1.366745352745056,0.239995926618576 +-40,0.3992879390716553,0,-1.358255863189697,0.2350741326808929 +-39,0.3929676711559296,0,-1.348818778991699,0.2297347486019135 +-38,0.3861272037029266,0,-1.338437676429749,0.2239724695682526 +-37,0.3787888586521149,0,-1.327141761779785,0.2177797853946686 +-36,0.3709603250026703,0,-1.315035820007324,0.2111369073390961 +-35,0.3626178503036499,0,-1.302383899688721,0.2039848566055298 +-34,0.3536484837532043,0,-1.289813637733459,0.1961708962917328 +-33,0.3436611890792847,0,-1.278602600097656,0.1873673647642136 +-32,0.3316109180450439,0,-1.271007776260376,0.1770239025354385 +-31,0.3158762454986572,0,-1.270437955856323,0.1644499152898788 +-30,0.2960715889930725,0,-1.280946731567383,0.1491100341081619 +-29,0.2732196748256683,0,-1.306188941001892,0.1310377568006516 +-28,0.2446236610412598,0,-1.348384857177734,0.1114100441336632 +-27,0.2136152386665344,0,-1.39189088344574,0.09354893863201141 +-26,0.1900595128536224,0,-1.412423133850098,0.07992568612098694 +-25,0.1729698926210403,0,-1.414085507392883,0.06913013756275177 +-24,0.1590211689472198,0,-1.409297347068787,0.05932234600186348 +-23,0.146721825003624,0,-1.403856873512268,0.04957624524831772 +-22,0.1331747025251389,0,-1.408553600311279,0.03940404206514359 +-21,0.1165784150362015,0,-1.431338667869568,0.02927764132618904 +-20,0.09798836708068848,0,-1.465700745582581,0.02017249166965485 +-19,0.07927681505680084,0,-1.500663876533508,0.01272404752671719 +-18,0.06181065738201141,0,-1.531519174575806,0.006607168819755316 +-17,0.04696115851402283,0,-1.549970626831055,0.002148744417354465 +-16,0.03587221726775169,0,-1.5459965467453,0.0004640936967916787 +-15,0.0282734353095293,0,-1.520883321762085,0.001449251198209822 +-14,0.02321807295084,0,-1.478470325469971,0.004430550150573254 +-13,0.01995314285159111,0,-1.420891761779785,0.00921863317489624 +-12,0.01775329373776913,0,-1.349161744117737,0.01458861865103245 +-11,0.01610424928367138,0,-1.263663053512573,0.01913607120513916 +-10,0.01520280260592699,0,-1.168956756591797,0.02329306676983833 +-9,0.0143952751532197,0,-1.070716619491577,0.02598234452307224 +-8,0.01328728627413511,0,-0.9651260375976562,0.0277937538921833 +-7,0.01230533048510551,0,-0.856960654258728,0.02948310971260071 +-6,0.0114847868680954,0,-0.7479210495948792,0.03094938397407532 +-5,0.01075277104973793,0,-0.6368952393531799,0.03203205391764641 +-4,0.01007776241749525,0,-0.5240311026573181,0.03290199488401413 +-3,0.009586787782609463,0,-0.4089207947254181,0.03353077918291092 +-2,0.009356162510812283,0,-0.2916353344917297,0.03376187011599541 +-1,0.009158256463706493,0,-0.1743515133857727,0.033733069896698 +0,0.00898855272680521,0,-0.0569206178188324,0.03378916904330254 +1,0.008892877027392387,0,0.06160587072372437,0.03384743258357048 +2,0.008897491730749607,0,0.1801966577768326,0.03388252109289169 +3,0.009042887948453426,0,0.2984389960765839,0.03389264270663261 +4,0.009351350367069244,0,0.4163565039634705,0.0338323786854744 +5,0.009726184420287609,0,0.5332111716270447,0.03385186940431595 +6,0.01008601207286119,0,0.6496856212615967,0.03399037569761276 +7,0.01045997999608517,0,0.7655484676361084,0.03434793278574944 +8,0.01090843416750431,0,0.8774647116661072,0.03552689030766487 +9,0.01161614339798689,0,1.008801460266113,0.03209297731518745 +10,0.01250286679714918,0,1.137508630752563,0.02841598354279995 +11,0.01356402132660151,0,1.238567113876343,0.02990615926682949 +12,0.01501820608973503,0,1.330342292785645,0.03268011286854744 +13,0.01667594350874424,0,1.424734592437744,0.03502871841192245 +14,0.01789472810924053,0,1.530412793159485,0.03687816485762596 +15,0.01919764466583729,0,1.633282542228699,0.03877832740545273 +16,0.02411233820021152,0,1.686600685119629,0.03710902854800224 +17,0.03553702682256699,0,1.671772241592407,0.03016689419746399 +18,0.05200681090354919,0,1.623960494995117,0.02199731208384037 +19,0.07125036418437958,0,1.571129322052002,0.01365319825708866 +20,0.09506478905677795,0,1.496420383453369,0.002748316619545221 +21,0.1200292631983757,0,1.418513178825378,-0.01015249453485012 +22,0.1322831958532333,0,1.403918147087097,-0.02067540213465691 +23,0.1417243629693985,0,1.404739141464233,-0.03070300444960594 +24,0.1554860025644302,0,1.398815989494324,-0.04155205935239792 +25,0.1719635426998138,0,1.392494559288025,-0.0528898723423481 +26,0.188983291387558,0,1.386794805526733,-0.06402893364429474 +27,0.2061668783426285,0,1.377053260803223,-0.0744335800409317 +28,0.2234339118003845,0,1.363348007202148,-0.08407285064458847 +29,0.2399015873670578,0,1.351349115371704,-0.09322755038738251 +30,0.2549380958080292,0,1.344900369644165,-0.1020953804254532 +31,0.2686047852039337,0,1.344338774681091,-0.1106931418180466 +32,0.2812145948410034,0,1.34836745262146,-0.1189550906419754 +33,0.2930149435997009,0,1.355475902557373,-0.1268225163221359 +34,0.304124653339386,0,1.36447548866272,-0.1342780888080597 +35,0.3145793378353119,0,1.374507904052734,-0.1413417458534241 +36,0.3244019448757172,0,1.384875535964966,-0.1480581313371658 +37,0.333640068769455,0,1.39493727684021,-0.1544796824455261 +38,0.3423685431480408,0,1.404110431671143,-0.1606582701206207 +39,0.3506684601306915,0,1.411949038505554,-0.1666278839111328 +40,0.3585909307003021,0,1.418228626251221,-0.1723939627408981 +41,0.366130918264389,0,1.422970294952393,-0.17792709171772 +42,0.373211145401001,0,1.426393389701843,-0.1831751465797424 +43,0.3797016441822052,0,1.428782939910889,-0.1880796700716019 +44,0.3854489624500275,0,1.430392265319824,-0.1925906240940094 +45,0.390313059091568,0,1.431399822235107,-0.1966746151447296 +46,0.3941892385482788,0,1.431896924972534,-0.2003131806850433 +47,0.3970143496990204,0,1.431921005249023,-0.2034997493028641 +48,0.3987554907798767,0,1.431469678878784,-0.2062341868877411 +49,0.399411141872406,0,1.430529832839966,-0.2085204124450684 +50,0.3989914059638977,0,1.429075717926025,-0.2103619128465652 +51,0.3975193798542023,0,1.427078366279602,-0.2117617130279541 +52,0.3950207233428955,0,1.424506187438965,-0.2127201110124588 +53,0.3915247917175293,0,1.421308517456055,-0.2132362425327301 +54,0.3870592415332794,0,1.417403697967529,-0.2133061587810516 +55,0.3816550076007843,0,1.412662386894226,-0.2129254788160324 +56,0.3753429353237152,0,1.406891345977783,-0.2120897769927979 +57,0.3681511878967285,0,1.399832963943481,-0.2107969224452972 +58,0.3601007759571075,0,1.391183376312256,-0.20904640853405 +59,0.3511963486671448,0,1.380643844604492,-0.206838846206665 +60,0.3414142727851868,0,1.368007898330688,-0.2041721642017365 +61,0.3307028710842133,0,1.353235006332397,-0.2010337859392166 +62,0.3189911246299744,0,1.336503982543945,-0.1973954141139984 +63,0.3061967194080353,0,1.318238615989685,-0.1932156383991241 +64,0.2922065854072571,0,1.29914391040802,-0.1884562224149704 +65,0.2767935991287231,0,1.280245065689087,-0.1831079125404358 +66,0.2595389783382416,0,1.262733817100525,-0.1771966218948364 +67,0.2402166128158569,0,1.247000932693481,-0.1707499027252197 +68,0.2198949605226517,0,1.230325222015381,-0.1637192964553833 +69,0.2008268237113953,0,1.207005143165588,-0.155985563993454 +70,0.1841818243265152,0,1.174026608467102,-0.1475151032209396 +71,0.1695783734321594,0,1.132669925689697,-0.1383680403232574 +72,0.1564259678125381,0,1.084627389907837,-0.1285664588212967 +73,0.1444427073001862,0,1.030823230743408,-0.118176557123661 +74,0.1335424035787582,0,0.9719462394714355,-0.1073691099882126 +75,0.123787596821785,0,0.9088482856750488,-0.09641586244106293 +76,0.1156499907374382,0,0.8437177538871765,-0.08591916412115097 +77,0.1101303920149803,0,0.7804308533668518,-0.07697430998086929 +78,0.1070680096745491,0,0.7213119268417358,-0.07035799324512482 +79,0.103530079126358,0,0.6674078106880188,-0.06564364582300186 +80,0.09713461995124817,0,0.6212267875671387,-0.06209902837872505 +81,0.08914764225482941,0,0.5760521292686462,-0.05799062177538872 +82,0.07988258451223373,0,0.5292397737503052,-0.05216158553957939 +83,0.06677362322807312,0,0.4949992299079895,-0.04384912177920341 +84,0.04590243846178055,0,0.5258074998855591,-0.02933179214596748 +85,0.03008843399584293,0,0.5442156791687012,-0.01096094399690628 +86,0.02357017435133457,0,0.4464114904403687,0.004340396728366613 +87,0.02031326293945312,0,0.315129816532135,0.01524639688432217 +88,0.018635343760252,0,0.1860103160142899,0.0215015634894371 +89,0.01784946769475937,0,0.06407494097948074,0.02423643693327904 +90,0.01753451861441135,0,-0.05237170308828354,0.02475076355040073 +91,0.01735103875398636,0,-0.1676133573055267,0.02406305447220802 +92,0.01703367941081524,0,-0.2869651317596436,0.0234047994017601 +93,0.0170923750847578,0,-0.406718373298645,0.02468088082969189 +94,0.01944032311439514,0,-0.5004643797874451,0.0297915730625391 +95,0.02607673220336437,0,-0.5415897369384766,0.03664859011769295 +96,0.03733139112591743,0,-0.5423846840858459,0.04184907674789429 +97,0.05139881744980812,0,-0.5421774387359619,0.04788725823163986 +98,0.06562264263629913,0,-0.5700267553329468,0.0588386170566082 +99,0.07697737216949463,0,-0.6214057803153992,0.07289993762969971 +100,0.0851161926984787,0,-0.6701596975326538,0.08660011738538742 +101,0.09463627636432648,0,-0.7005059719085693,0.09916599839925766 +102,0.1072230190038681,0,-0.709741473197937,0.1114822030067444 +103,0.1254979968070984,0,-0.7029783725738525,0.1244173273444176 +104,0.1410530656576157,0,-0.694423496723175,0.1382708251476288 +105,0.1521006524562836,0,-0.7068560123443604,0.1557821333408356 +106,0.1709260791540146,0,-0.7520651817321777,0.1792164146900177 +107,0.1912372261285782,0,-0.8057057857513428,0.2007618397474289 +108,0.204696387052536,0,-0.8583755493164062,0.2176655977964401 +109,0.2120132595300674,0,-0.9066606760025024,0.2308018654584885 +110,0.2159853726625443,0,-0.948580265045166,0.2414936721324921 +111,0.2184701263904572,0,-0.9838978052139282,0.250640332698822 +112,0.2203968912363052,0,-1.013357281684875,0.2587041556835175 +113,0.2221941351890564,0,-1.03783917427063,0.2659295499324799 +114,0.2240528762340546,0,-1.058014869689941,0.2724754512310028 +115,0.2260448336601257,0,-1.074408292770386,0.2784586250782013 +116,0.2281682193279266,0,-1.087507128715515,0.2839611172676086 +117,0.2303759753704071,0,-1.097818851470947,0.2890349626541138 +118,0.2325999885797501,0,-1.105845212936401,0.2937058508396149 +119,0.23476542532444,0,-1.112033605575562,0.2979832589626312 +120,0.236802265048027,0,-1.116750955581665,0.3018679916858673 +121,0.2386512160301208,0,-1.120263338088989,0.3053557276725769 +122,0.2402644902467728,0,-1.122752904891968,0.3084420561790466 +123,0.24160435795784,0,-1.12432861328125,0.3111240565776825 +124,0.242646336555481,0,-1.125049591064453,0.3134007453918457 +125,0.2433757781982422,0,-1.124933958053589,0.3152717053890228 +126,0.2437868267297745,0,-1.123978614807129,0.31673863530159 +127,0.2438822835683823,0,-1.122165441513062,0.3178039491176605 +128,0.2436720579862595,0,-1.119473814964294,0.3184708058834076 +129,0.2431711405515671,0,-1.11587655544281,0.3187421560287476 +130,0.2423967719078064,0,-1.111349940299988,0.3186210989952087 +131,0.2413686364889145,0,-1.105876445770264,0.3181112706661224 +132,0.2401038706302643,0,-1.099445104598999,0.3172159194946289 +133,0.2386209517717361,0,-1.092047929763794,0.3159380555152893 +134,0.2369343042373657,0,-1.083683490753174,0.3142797946929932 +135,0.2350574433803558,0,-1.074359536170959,0.3122445344924927 +136,0.2330015152692795,0,-1.064085006713867,0.3098342716693878 +137,0.2307742685079575,0,-1.05287230014801,0.3070505857467651 +138,0.2283835858106613,0,-1.040736436843872,0.3038958609104156 +139,0.2258330285549164,0,-1.027691125869751,0.3003707826137543 +140,0.2231272906064987,0,-1.013750076293945,0.2964767813682556 +141,0.220269188284874,0,-0.9989193677902222,0.2922151982784271 +142,0.2172589749097824,0,-0.9832013845443726,0.2875877916812897 +143,0.2140981405973434,0,-0.9665904641151428,0.2825974822044373 +144,0.2107872366905212,0,-0.9490677118301392,0.2772490680217743 +145,0.2073278576135635,0,-0.9306011199951172,0.271550178527832 +146,0.2037203162908554,0,-0.9111404418945312,0.2655125260353088 +147,0.1999655663967133,0,-0.8906161785125732,0.2591527104377747 +148,0.1960640847682953,0,-0.8689363598823547,0.2524939775466919 +149,0.1920144557952881,0,-0.845980167388916,0.2455662190914154 +150,0.1878165900707245,0,-0.8216054439544678,0.238406777381897 +151,0.183467835187912,0,-0.7956408262252808,0.2310597449541092 +152,0.1789670437574387,0,-0.7678914070129395,0.2235746383666992 +153,0.1743166148662567,0,-0.7381432056427002,0.2160049378871918 +154,0.1695198118686676,0,-0.7061498165130615,0.2084040641784668 +155,0.164588987827301,0,-0.6716347932815552,0.2008218765258789 +156,0.1595474034547806,0,-0.6342601776123047,0.19329933822155 +157,0.1544460654258728,0,-0.5936430096626282,0.1858654767274857 +158,0.1493894457817078,0,-0.5494058132171631,0.178527906537056 +159,0.1445697247982025,0,-0.5013356804847717,0.171246662735939 +160,0.1402529776096344,0,-0.4494850933551788,0.163836881518364 +161,0.1365817040205002,0,-0.3934225738048553,0.1556762456893921 +162,0.1333452761173248,0,-0.3293653726577759,0.1451047658920288 +163,0.1315378993749619,0,-0.2510706782341003,0.1298523247241974 +164,0.1363928318023682,0,-0.1864135563373566,0.1152283698320389 +165,0.1389813721179962,0,-0.178329735994339,0.1086883544921875 +166,0.1264680624008179,0,-0.1690289378166199,0.09806500375270844 +167,0.1095491573214531,0,-0.1185400485992432,0.08102943748235703 +168,0.09514142572879791,0,-0.05864375829696655,0.06625108420848846 +169,0.08443372696638107,0,-0.03050379455089569,0.0571373924612999 +170,0.07716770470142365,0,-0.02517762780189514,0.05143051594495773 +171,0.0715506374835968,0,-0.02413512766361237,0.04732883721590042 +172,0.06675639748573303,0,-0.02436871081590652,0.04433248192071915 +173,0.06232273206114769,0,-0.03688887134194374,0.04351655766367912 +174,0.0576293095946312,0,-0.06474846601486206,0.0443536564707756 +175,0.05191712826490402,0,-0.09916688501834869,0.04425792023539543 +176,0.04346559569239616,0,-0.1181486845016479,0.03977666050195694 +177,0.03485813736915588,0,-0.07563034445047379,0.02906132861971855 +178,0.03023896738886833,0,-0.01647140830755234,0.01276723109185696 +179,0.03153565526008606,0,-0.03313007950782776,-0.000198248031665571 +180,0.03434468060731888,0,-0.07291767001152039,-0.007122221402823925 diff --git a/data/ram_air_kite/polars_neuralfoil/12.csv b/data/ram_air_kite/polars_neuralfoil/12.csv new file mode 100644 index 00000000..e0566c93 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/12.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03539307788014412,0,-0.09682987630367279,-0.006836297921836376 +-179,0.03635562211275101,0,-0.1419173926115036,-0.006072089076042175 +-178,0.0370778813958168,0,-0.178286612033844,-0.004361480474472046 +-177,0.03764656186103821,0,-0.1970446109771729,-0.00484957080334425 +-176,0.03817259520292282,0,-0.2014086842536926,-0.007406428456306458 +-175,0.0388302318751812,0,-0.1962163299322128,-0.01122874580323696 +-174,0.03972311690449715,0,-0.1844866126775742,-0.01576560363173485 +-173,0.04094121977686882,0,-0.1675360649824142,-0.0208435095846653 +-172,0.04265702143311501,0,-0.1456190943717957,-0.02652775123715401 +-171,0.04511817172169685,0,-0.1192540228366852,-0.03277387097477913 +-170,0.04858164861798286,0,-0.09154573082923889,-0.03895864635705948 +-169,0.05330564081668854,0,-0.07045328617095947,-0.04384257644414902 +-168,0.05944486707448959,0,-0.06398311257362366,-0.04666183888912201 +-167,0.06594129651784897,0,-0.06869992613792419,-0.04758961498737335 +-166,0.07027249783277512,0,-0.07098522782325745,-0.04822706058621407 +-165,0.0715419203042984,0,-0.054168701171875,-0.05181770399212837 +-164,0.07307669520378113,0,-0.01276418566703796,-0.06010395288467407 +-163,0.07773463428020477,0,0.04216709733009338,-0.07093200087547302 +-162,0.08519227057695389,0,0.09739020466804504,-0.08112076669931412 +-161,0.09444691240787506,0,0.1490592360496521,-0.08984337747097015 +-160,0.1047851070761681,0,0.1984476447105408,-0.09778130054473877 +-159,0.1155474632978439,0,0.2467172741889954,-0.1059193387627602 +-158,0.1260412186384201,0,0.2940433025360107,-0.115078404545784 +-157,0.1358050853013992,0,0.3409608602523804,-0.1255379617214203 +-156,0.1448208689689636,0,0.3886867761611938,-0.1368911266326904 +-155,0.1533241868019104,0,0.4375706911087036,-0.148405596613884 +-154,0.1614836901426315,0,0.4864981174468994,-0.1594606935977936 +-153,0.169310986995697,0,0.533919632434845,-0.1697316765785217 +-152,0.1767307221889496,0,0.5786752104759216,-0.179156094789505 +-151,0.1836717426776886,0,0.6200757026672363,-0.1878138482570648 +-150,0.1901070475578308,0,0.6577969193458557,-0.1958191096782684 +-149,0.1960604786872864,0,0.6918522119522095,-0.2032692432403564 +-148,0.201579675078392,0,0.7225272655487061,-0.2102351933717728 +-147,0.2067136019468307,0,0.7502696514129639,-0.2167673856019974 +-146,0.2115008234977722,0,0.7755669355392456,-0.2229026257991791 +-145,0.2159663736820221,0,0.7988669872283936,-0.2286691665649414 +-144,0.2201246023178101,0,0.820536732673645,-0.2340869903564453 +-143,0.223979651927948,0,0.840856671333313,-0.2391702681779861 +-142,0.2275311201810837,0,0.8600209951400757,-0.2439262419939041 +-141,0.2307752519845963,0,0.8781610131263733,-0.248357892036438 +-140,0.2337087541818619,0,0.8953559398651123,-0.2524642944335938 +-139,0.2363283783197403,0,0.9116455316543579,-0.2562416791915894 +-138,0.2386337518692017,0,0.9270378351211548,-0.2596826553344727 +-137,0.24062679708004,0,0.9415291547775269,-0.2627809643745422 +-136,0.2423123568296432,0,0.9550986289978027,-0.2655286192893982 +-135,0.2436976730823517,0,0.9677200317382812,-0.2679174542427063 +-134,0.2447919249534607,0,0.9793675541877747,-0.2699410915374756 +-133,0.2456050366163254,0,0.9900174140930176,-0.2715938687324524 +-132,0.2461485266685486,0,0.9996464848518372,-0.2728717625141144 +-131,0.2464308440685272,0,1.008236885070801,-0.2737719416618347 +-130,0.2464635223150253,0,1.015778422355652,-0.2742945551872253 +-129,0.2462539374828339,0,1.022261142730713,-0.2744418680667877 +-128,0.2458083182573318,0,1.027678370475769,-0.2742182612419128 +-127,0.2451324760913849,0,1.032020330429077,-0.2736306190490723 +-126,0.2442290186882019,0,1.035272717475891,-0.2726884484291077 +-125,0.2431000173091888,0,1.037408590316772,-0.2714027762413025 +-124,0.2417456954717636,0,1.038389682769775,-0.2697864770889282 +-123,0.2401670217514038,0,1.038160920143127,-0.2678524851799011 +-122,0.238364115357399,0,1.036656141281128,-0.265610933303833 +-121,0.2363415658473969,0,1.033807873725891,-0.2630635797977448 +-120,0.2341081649065018,0,1.029577016830444,-0.2601912021636963 +-119,0.2316813468933105,0,1.024018049240112,-0.2569380402565002 +-118,0.2290783375501633,0,1.017347455024719,-0.2531844079494476 +-117,0.2262887209653854,0,1.009999632835388,-0.2487381398677826 +-116,0.2232067734003067,0,1.002509117126465,-0.2433723658323288 +-115,0.2195443511009216,0,0.9950618147850037,-0.2369401454925537 +-114,0.2148657888174057,0,0.9869228601455688,-0.2295303791761398 +-113,0.208822563290596,0,0.9762839078903198,-0.2215036451816559 +-112,0.2013090699911118,0,0.9611008167266846,-0.2132194489240646 +-111,0.192426323890686,0,0.9401322603225708,-0.2045980989933014 +-110,0.1824623942375183,0,0.912664532661438,-0.1951374113559723 +-109,0.1718063354492188,0,0.8779195547103882,-0.1843581944704056 +-108,0.1608726531267166,0,0.8350331783294678,-0.1719991266727448 +-107,0.1501310169696808,0,0.7832503318786621,-0.1579423397779465 +-106,0.1403031349182129,0,0.7224358320236206,-0.1422739326953888 +-105,0.1326579004526138,0,0.6547032594680786,-0.1257583647966385 +-104,0.128335565328598,0,0.5866098403930664,-0.1103456169366837 +-103,0.1259338408708572,0,0.525877833366394,-0.09795559942722321 +-102,0.1217117682099342,0,0.4753326773643494,-0.08869012445211411 +-101,0.1138329803943634,0,0.4324225783348083,-0.08142334967851639 +-100,0.1043911203742027,0,0.3892427980899811,-0.07468739151954651 +-99,0.09612999856472015,0,0.3379265069961548,-0.06714044511318207 +-98,0.08917336165904999,0,0.2804076075553894,-0.05882079526782036 +-97,0.08303990215063095,0,0.2243041098117828,-0.05104225128889084 +-96,0.07756191492080688,0,0.1773195862770081,-0.0451628714799881 +-95,0.07008343189954758,0,0.1541052162647247,-0.0406213216483593 +-94,0.05484354868531227,0,0.1665582954883575,-0.03143209964036942 +-93,0.02972577139735222,0,0.2769128382205963,-0.008102485910058022 +-92,0.02166182920336723,0,0.2049542963504791,0.01160163711756468 +-91,0.01903619430959225,0,0.07895489782094955,0.02170258946716785 +-90,0.01802054047584534,0,-0.03707263618707657,0.02491753362119198 +-89,0.01753399148583412,0,-0.1531525105237961,0.02536838874220848 +-88,0.0171863529831171,0,-0.277233898639679,0.02525410428643227 +-87,0.01701649464666843,0,-0.4088678956031799,0.02568621002137661 +-86,0.01762705110013485,0,-0.537959098815918,0.0276819858700037 +-85,0.02009749226272106,0,-0.6456840634346008,0.03199163824319839 +-84,0.02535195089876652,0,-0.7181909084320068,0.03731288760900497 +-83,0.03374466672539711,0,-0.7584762573242188,0.04167843610048294 +-82,0.0451202355325222,0,-0.781982421875,0.04567492380738258 +-81,0.05850071832537651,0,-0.8051868677139282,0.05093855783343315 +-80,0.07251402735710144,0,-0.8358742594718933,0.05841193348169327 +-79,0.0855352059006691,0,-0.8712077736854553,0.06761658936738968 +-78,0.09617490321397781,0,-0.9110720157623291,0.07720686495304108 +-77,0.1074024736881256,0,-0.954211413860321,0.08577032387256622 +-76,0.1148146316409111,0,-0.9964532256126404,0.0927092581987381 +-75,0.1224630698561668,0,-1.035917282104492,0.1003993302583694 +-74,0.1360414326190948,0,-1.079333424568176,0.1124417334794998 +-73,0.1524562984704971,0,-1.117602705955505,0.1253867894411087 +-72,0.1704691350460052,0,-1.146320462226868,0.1383285820484161 +-71,0.1896023452281952,0,-1.164984464645386,0.1513399630784988 +-70,0.2090286910533905,0,-1.176428318023682,0.1644246280193329 +-69,0.2282886356115341,0,-1.18461275100708,0.177256166934967 +-68,0.2479368150234222,0,-1.192438244819641,0.1893897950649261 +-67,0.2682886123657227,0,-1.201981782913208,0.2004960775375366 +-66,0.2886036336421967,0,-1.21461009979248,0.2104262858629227 +-65,0.3077748715877533,0,-1.230600476264954,0.2191606760025024 +-64,0.3251738846302032,0,-1.24921441078186,0.2267611026763916 +-63,0.3407931327819824,0,-1.269156098365784,0.2333615124225616 +-62,0.3548719882965088,0,-1.289083003997803,0.2391236275434494 +-61,0.3675867021083832,0,-1.307933807373047,0.2441768944263458 +-60,0.3789860606193542,0,-1.325041055679321,0.2485941350460052 +-59,0.3890629708766937,0,-1.340067267417908,0.2524034678936005 +-58,0.3978172838687897,0,-1.352905035018921,0.2556121051311493 +-57,0.4052983820438385,0,-1.363589525222778,0.2582258582115173 +-56,0.4115913212299347,0,-1.372238755226135,0.2602559626102448 +-55,0.4168041944503784,0,-1.379024982452393,0.261725127696991 +-54,0.4210426211357117,0,-1.384140729904175,0.2626599967479706 +-53,0.42439204454422,0,-1.387773990631104,0.2630893588066101 +-52,0.4269165396690369,0,-1.390096426010132,0.263040691614151 +-51,0.4286549091339111,0,-1.391250371932983,0.2625368237495422 +-50,0.4296282231807709,0,-1.391344785690308,0.2615963816642761 +-49,0.4298455417156219,0,-1.390462875366211,0.2602340281009674 +-48,0.4293105900287628,0,-1.388657093048096,0.2584589123725891 +-47,0.428026020526886,0,-1.385962009429932,0.2562789022922516 +-46,0.4259980022907257,0,-1.382395505905151,0.2536971569061279 +-45,0.4232383072376251,0,-1.377963066101074,0.2507149875164032 +-44,0.4197644591331482,0,-1.372668027877808,0.2473311722278595 +-43,0.4156016111373901,0,-1.366505861282349,0.2435419112443924 +-42,0.4107808470726013,0,-1.359478712081909,0.2393414229154587 +-41,0.4053362607955933,0,-1.351592063903809,0.2347212582826614 +-40,0.3992986083030701,0,-1.342875242233276,0.2296704351902008 +-39,0.3926939070224762,0,-1.333384990692139,0.2241708487272263 +-38,0.3855307698249817,0,-1.323253393173218,0.2181931287050247 +-37,0.3777775764465332,0,-1.312747836112976,0.2116757929325104 +-36,0.3693106472492218,0,-1.302407264709473,0.2044963091611862 +-35,0.3597549498081207,0,-1.293230533599854,0.1964190453290939 +-34,0.3482203781604767,0,-1.28681755065918,0.1870777308940887 +-33,0.3333149552345276,0,-1.285217761993408,0.1760480850934982 +-32,0.3145325481891632,0,-1.290407419204712,0.1630443334579468 +-31,0.2939620912075043,0,-1.30353307723999,0.1481046676635742 +-30,0.2739332318305969,0,-1.323587417602539,0.131851464509964 +-29,0.2534218728542328,0,-1.346052408218384,0.1157908663153648 +-28,0.2322931885719299,0,-1.363187909126282,0.1014873161911964 +-27,0.2122832536697388,0,-1.37179172039032,0.08897203207015991 +-26,0.1937571913003922,0,-1.37444269657135,0.07759252935647964 +-25,0.1766452938318253,0,-1.374565362930298,0.06699070334434509 +-24,0.1611819416284561,0,-1.374364614486694,0.05681674927473068 +-23,0.1477534621953964,0,-1.373251557350159,0.04667755216360092 +-22,0.1331252753734589,0,-1.382640838623047,0.0360514335334301 +-21,0.1145296394824982,0,-1.41653311252594,0.02526247501373291 +-20,0.09382325410842896,0,-1.465665698051453,0.0155917527154088 +-19,0.07416161149740219,0,-1.51007091999054,0.008074626326560974 +-18,0.05716379731893539,0,-1.541887640953064,0.00259452173486352 +-17,0.0435992144048214,0,-1.554157972335815,-0.0005174338584765792 +-16,0.03379090130329132,0,-1.542900085449219,-0.0006669193389825523 +-15,0.02703719399869442,0,-1.512037992477417,0.00138497946318239 +-14,0.02248491533100605,0,-1.465291976928711,0.00518379220739007 +-13,0.01947337947785854,0,-1.406203627586365,0.01079105120152235 +-12,0.01737909205257893,0,-1.336277961730957,0.01721438765525818 +-11,0.01599703915417194,0,-1.253875970840454,0.023140549659729 +-10,0.01522773131728172,0,-1.163731455802917,0.02810468710958958 +-9,0.0140930162742734,0,-1.063301682472229,0.03034532070159912 +-8,0.01305079460144043,0,-0.9566003680229187,0.03215916082262993 +-7,0.0122006069868803,0,-0.8489164710044861,0.03363038972020149 +-6,0.0114840641617775,0,-0.7388010025024414,0.03475477546453476 +-5,0.01084078010171652,0,-0.626062273979187,0.03558472543954849 +-4,0.01027399580925703,0,-0.5113450884819031,0.03618209809064865 +-3,0.009868557564914227,0,-0.3945296108722687,0.03647627308964729 +-2,0.009622005745768547,0,-0.2764884233474731,0.03639786317944527 +-1,0.009399408474564552,0,-0.1586204618215561,0.03614456206560135 +0,0.009240301325917244,0,-0.04040467739105225,0.03594176098704338 +1,0.009164057672023773,0,0.07882276177406311,0.03570591285824776 +2,0.009168047457933426,0,0.1977060735225677,0.03544355556368828 +3,0.009318255819380283,0,0.3163483440876007,0.03512724488973618 +4,0.009628206491470337,0,0.4344361424446106,0.03473902866244316 +5,0.009969761595129967,0,0.5514177680015564,0.03449106961488724 +6,0.01032077986747026,0,0.6686643958091736,0.03426308557391167 +7,0.01071892213076353,0,0.7838408946990967,0.03456250950694084 +8,0.01125888153910637,0,0.9001405239105225,0.03456316515803337 +9,0.01207888405770063,0,1.037985563278198,0.02939934097230434 +10,0.01302792597562075,0,1.169404029846191,0.02475250884890556 +11,0.01411576196551323,0,1.270790815353394,0.02562310174107552 +12,0.01556743122637272,0,1.357980132102966,0.028760040178895 +13,0.0171594861894846,0,1.447246909141541,0.03172188252210617 +14,0.01831115037202835,0,1.547653675079346,0.03410135582089424 +15,0.01979743130505085,0,1.638896346092224,0.0371219776570797 +16,0.02509583532810211,0,1.678011178970337,0.03751371055841446 +17,0.03664901107549667,0,1.659544229507446,0.03227933868765831 +18,0.05277233570814133,0,1.615296483039856,0.02508393302559853 +19,0.07093596458435059,0,1.57034707069397,0.01771304570138454 +20,0.09299517422914505,0,1.504876375198364,0.007800376508384943 +21,0.1196046844124794,0,1.412624478340149,-0.005563360638916492 +22,0.1350903511047363,0,1.379913806915283,-0.01680824160575867 +23,0.1429888755083084,0,1.383324027061462,-0.02635073103010654 +24,0.1534602642059326,0,1.383686542510986,-0.0361633189022541 +25,0.1672665774822235,0,1.381849765777588,-0.04644827172160149 +26,0.182070329785347,0,1.384001970291138,-0.05692783743143082 +27,0.1960581988096237,0,1.391523838043213,-0.06731631606817245 +28,0.209383025765419,0,1.400269269943237,-0.07741016894578934 +29,0.2236024737358093,0,1.403245806694031,-0.08700968325138092 +30,0.2397266328334808,0,1.396862268447876,-0.09600727260112762 +31,0.2567490041255951,0,1.385390758514404,-0.1045229062438011 +32,0.2728855013847351,0,1.375584840774536,-0.1127369627356529 +33,0.2873406708240509,0,1.370700240135193,-0.1207101196050644 +34,0.3002497851848602,0,1.370720386505127,-0.1283960491418839 +35,0.3119703531265259,0,1.374396920204163,-0.1357245743274689 +36,0.3227614760398865,0,1.380401492118835,-0.1426535546779633 +37,0.3327516913414001,0,1.387673377990723,-0.1491739451885223 +38,0.3419968783855438,0,1.39543890953064,-0.1553030014038086 +39,0.3505249321460724,0,1.403130888938904,-0.1610695421695709 +40,0.358356237411499,0,1.410327911376953,-0.166502445936203 +41,0.3655100166797638,0,1.416724801063538,-0.1716239154338837 +42,0.371990978717804,0,1.422135591506958,-0.1764440089464188 +43,0.3777867555618286,0,1.426481962203979,-0.1809598654508591 +44,0.3828589022159576,0,1.429779291152954,-0.1851567178964615 +45,0.3871545791625977,0,1.432105660438538,-0.1890149414539337 +46,0.3906117975711823,0,1.433557271957397,-0.1925124675035477 +47,0.3931731879711151,0,1.434225797653198,-0.1956301480531693 +48,0.3947925865650177,0,1.434183716773987,-0.1983540058135986 +49,0.3954405188560486,0,1.433472633361816,-0.2006746828556061 +50,0.3951079547405243,0,1.432106375694275,-0.2025877684354782 +51,0.393799215555191,0,1.43007230758667,-0.2040917575359344 +52,0.3915294408798218,0,1.427322387695312,-0.2051872462034225 +53,0.3883227109909058,0,1.423780918121338,-0.2058755159378052 +54,0.3842045664787292,0,1.419335126876831,-0.2061566114425659 +55,0.3791956603527069,0,1.413842558860779,-0.2060278654098511 +56,0.3733057379722595,0,1.407139897346497,-0.2054817229509354 +57,0.3665223717689514,0,1.39908242225647,-0.2045054137706757 +58,0.358806699514389,0,1.389580726623535,-0.2030820101499557 +59,0.3500818908214569,0,1.378673076629639,-0.2011932134628296 +60,0.3402338325977325,0,1.366584062576294,-0.1988244950771332 +61,0.3290860950946808,0,1.353769659996033,-0.195967435836792 +62,0.3163435161113739,0,1.340936899185181,-0.1926181763410568 +63,0.3015265166759491,0,1.328961491584778,-0.1887661665678024 +64,0.2841074466705322,0,1.318487286567688,-0.1843791157007217 +65,0.2642488777637482,0,1.308677911758423,-0.1793768852949142 +66,0.2435985207557678,0,1.295934200286865,-0.1736340075731277 +67,0.2242560088634491,0,1.275896906852722,-0.1670578420162201 +68,0.2069821208715439,0,1.247285604476929,-0.1596761047840118 +69,0.1914953738451004,0,1.211090803146362,-0.1515364646911621 +70,0.1774784773588181,0,1.167963862419128,-0.142616868019104 +71,0.1648137271404266,0,1.11802339553833,-0.1329282969236374 +72,0.15342777967453,0,1.061635613441467,-0.1226030960679054 +73,0.143146738409996,0,0.999898374080658,-0.1118992790579796 +74,0.1336992830038071,0,0.9347488880157471,-0.1012009605765343 +75,0.1249047294259071,0,0.8680828809738159,-0.09086724370718002 +76,0.1170704662799835,0,0.8014028072357178,-0.08121608942747116 +77,0.1112822145223618,0,0.7368102073669434,-0.07288838177919388 +78,0.1081887260079384,0,0.6762765645980835,-0.06671435385942459 +79,0.1056471616029739,0,0.620570182800293,-0.06259472668170929 +80,0.1005392000079155,0,0.5725202560424805,-0.05973003432154655 +81,0.09314793348312378,0,0.5277686715126038,-0.0564289502799511 +82,0.08434592187404633,0,0.4832018911838531,-0.05137903615832329 +83,0.07289603352546692,0,0.4452496767044067,-0.04448539763689041 +84,0.05491982027888298,0,0.4468787610530853,-0.03328996896743774 +85,0.03500720113515854,0,0.5011733174324036,-0.01612664759159088 +86,0.02580984868109226,0,0.4514129161834717,-0.0007659614202566445 +87,0.02161494828760624,0,0.3324567377567291,0.01118993572890759 +88,0.01944532059133053,0,0.2039908170700073,0.01916247047483921 +89,0.01842819154262543,0,0.08039343357086182,0.02336406335234642 +90,0.01802054047584534,0,-0.03707263618707657,0.02491753362119198 +91,0.01780781894922256,0,-0.1518085598945618,0.024916622787714 +92,0.01748372241854668,0,-0.2682638764381409,0.0243920125067234 +93,0.01734049245715141,0,-0.3838992118835449,0.0246648546308279 +94,0.01877673715353012,0,-0.4798295497894287,0.02740330435335636 +95,0.02361146360635757,0,-0.5337655544281006,0.03253740444779396 +96,0.03294570744037628,0,-0.5462037920951843,0.03756145015358925 +97,0.04638473689556122,0,-0.5427777171134949,0.0432208776473999 +98,0.06162113696336746,0,-0.5553362369537354,0.05359382554888725 +99,0.07497160881757736,0,-0.5958688259124756,0.06816109269857407 +100,0.08332733064889908,0,-0.6450186371803284,0.08260200917720795 +101,0.09237907826900482,0,-0.6807237863540649,0.09591144323348999 +102,0.1032353118062019,0,-0.7000241279602051,0.1083943396806717 +103,0.1187239140272141,0,-0.7059911489486694,0.1205060034990311 +104,0.1348560154438019,0,-0.7064173817634583,0.1320389211177826 +105,0.1445308923721313,0,-0.7125661373138428,0.1447000801563263 +106,0.1582784056663513,0,-0.7455506324768066,0.1646211892366409 +107,0.179858610033989,0,-0.7909975051879883,0.1873041391372681 +108,0.1979692727327347,0,-0.8342656493186951,0.2063544988632202 +109,0.2083929479122162,0,-0.8752837777137756,0.2210921943187714 +110,0.2134582698345184,0,-0.9133731126785278,0.2324869185686111 +111,0.2160877734422684,0,-0.9470628499984741,0.2417295873165131 +112,0.2178784310817719,0,-0.975905179977417,0.2496418654918671 +113,0.2194858938455582,0,-1.000308752059937,0.2566449642181396 +114,0.221150130033493,0,-1.020809173583984,0.2629462778568268 +115,0.2229508459568024,0,-1.037768006324768,0.268670380115509 +116,0.2248969227075577,0,-1.051457166671753,0.2739051878452301 +117,0.2269506454467773,0,-1.062190055847168,0.2787123322486877 +118,0.2290462851524353,0,-1.070349812507629,0.2831276655197144 +119,0.2311072647571564,0,-1.076359629631042,0.2871683239936829 +120,0.2330598533153534,0,-1.080614447593689,0.2908381223678589 +121,0.234841451048851,0,-1.083442211151123,0.2941340804100037 +122,0.2364015281200409,0,-1.085091590881348,0.2970507144927979 +123,0.2377031743526459,0,-1.085731983184814,0.2995814383029938 +124,0.2387214452028275,0,-1.085475206375122,0.3017235696315765 +125,0.2394397705793381,0,-1.084377527236938,0.3034727275371552 +126,0.2398503422737122,0,-1.082468271255493,0.3048293590545654 +127,0.2399540543556213,0,-1.079751014709473,0.3057927489280701 +128,0.2397564649581909,0,-1.076216459274292,0.3063646852970123 +129,0.2392683476209641,0,-1.071850776672363,0.3065466284751892 +130,0.2385038882493973,0,-1.066636562347412,0.3063414096832275 +131,0.2374800443649292,0,-1.060559153556824,0.305751621723175 +132,0.236212894320488,0,-1.053609371185303,0.3047802448272705 +133,0.234718918800354,0,-1.045778512954712,0.3034297823905945 +134,0.2330126762390137,0,-1.037068128585815,0.3017039895057678 +135,0.2311081439256668,0,-1.027481317520142,0.2996051609516144 +136,0.2290166914463043,0,-1.017024517059326,0.2971354126930237 +137,0.226748526096344,0,-1.005707025527954,0.2942980229854584 +138,0.2243115603923798,0,-0.9935415983200073,0.2910949289798737 +139,0.2217121571302414,0,-0.9805359840393066,0.2875280976295471 +140,0.2189569026231766,0,-0.9666956663131714,0.2835996150970459 +141,0.2160509824752808,0,-0.9520225524902344,0.2793128490447998 +142,0.2129984498023987,0,-0.9365046620368958,0.274670273065567 +143,0.2098035365343094,0,-0.9201234579086304,0.2696769237518311 +144,0.2064705193042755,0,-0.9028489589691162,0.2643410861492157 +145,0.2030028253793716,0,-0.8846254348754883,0.2586720287799835 +146,0.1994066834449768,0,-0.865386962890625,0.252685159444809 +147,0.1956838071346283,0,-0.8450382947921753,0.2464005947113037 +148,0.1918383240699768,0,-0.8234668970108032,0.2398439645767212 +149,0.1878738254308701,0,-0.8005331158638,0.2330477684736252 +150,0.1837917268276215,0,-0.776079535484314,0.2260507643222809 +151,0.179594948887825,0,-0.7499280571937561,0.2188967913389206 +152,0.1752864271402359,0,-0.72188401222229,0.211633175611496 +153,0.1708685606718063,0,-0.6917368769645691,0.2043090164661407 +154,0.1663436889648438,0,-0.6592512130737305,0.1969718486070633 +155,0.1617161333560944,0,-0.6241540908813477,0.1896656006574631 +156,0.1569963544607162,0,-0.5861218571662903,0.1824274659156799 +157,0.1522205471992493,0,-0.544812798500061,0.1752866953611374 +158,0.1474879831075668,0,-0.4999693334102631,0.168254166841507 +159,0.1430026739835739,0,-0.4516272842884064,0.1612713783979416 +160,0.1390378475189209,0,-0.4001173675060272,0.1540491878986359 +161,0.1356960833072662,0,-0.3446983397006989,0.1456478536128998 +162,0.1329210251569748,0,-0.2800627052783966,0.1338710486888885 +163,0.1331320255994797,0,-0.2051154673099518,0.1176612228155136 +164,0.139817476272583,0,-0.1687974631786346,0.1071823388338089 +165,0.137095183134079,0,-0.1732973456382751,0.1017080545425415 +166,0.1213650852441788,0,-0.1480752527713776,0.08885672688484192 +167,0.105203852057457,0,-0.08212140202522278,0.07173703610897064 +168,0.09182380884885788,0,-0.03223079442977905,0.06025625392794609 +169,0.08231713622808456,0,-0.01673318445682526,0.05409324169158936 +170,0.0754888504743576,0,-0.007860139012336731,0.04877592995762825 +171,0.06993907690048218,0,0.004118770360946655,0.04351313039660454 +172,0.065338134765625,0,0.005649730563163757,0.04058460146188736 +173,0.06139408797025681,0,-0.01025725528597832,0.04078797250986099 +174,0.05745809152722359,0,-0.03925205767154694,0.04227814823389053 +175,0.05247937515377998,0,-0.07092501223087311,0.04134386777877808 +176,0.0439256951212883,0,-0.08632712066173553,0.03432660549879074 +177,0.03479542955756187,0,-0.04626798629760742,0.02155757322907448 +178,0.03188788890838623,0,-0.02070025354623795,0.007061958312988281 +179,0.03372106701135635,0,-0.05638860166072845,-0.002014368772506714 +180,0.03539307788014412,0,-0.09682987630367279,-0.006836297921836376 diff --git a/data/ram_air_kite/polars_neuralfoil/13.csv b/data/ram_air_kite/polars_neuralfoil/13.csv new file mode 100644 index 00000000..0e489588 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/13.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03580158948898315,0,-0.1151138320565224,-0.004783353302627802 +-179,0.03643872961401939,0,-0.1618968844413757,-0.00369010865688324 +-178,0.03706640750169754,0,-0.1983025372028351,-0.002161615993827581 +-177,0.03764710947871208,0,-0.2164768874645233,-0.002868094947189093 +-176,0.03824808076024055,0,-0.2200428247451782,-0.00557877728715539 +-175,0.03899875655770302,0,-0.2138068228960037,-0.009507104754447937 +-174,0.0399649366736412,0,-0.2009036540985107,-0.01410863362252712 +-173,0.04121594876050949,0,-0.1828864067792892,-0.01920513436198235 +-172,0.04291313886642456,0,-0.1601808220148087,-0.02486540377140045 +-171,0.04530017822980881,0,-0.1331465989351273,-0.0311047974973917 +-170,0.04863676801323891,0,-0.1041053533554077,-0.03746328875422478 +-169,0.05317506194114685,0,-0.08016552031040192,-0.04280490800738335 +-168,0.05908471345901489,0,-0.0705675482749939,-0.04612835496664047 +-167,0.06544698774814606,0,-0.07288721203804016,-0.04748224467039108 +-166,0.06981158256530762,0,-0.072133868932724,-0.04861121624708176 +-165,0.07113040238618851,0,-0.05177804827690125,-0.05271933600306511 +-164,0.07265853136777878,0,-0.00773128867149353,-0.06138249486684799 +-163,0.07727857679128647,0,0.04925334453582764,-0.07259596139192581 +-162,0.08462033420801163,0,0.1064398884773254,-0.08321622759103775 +-161,0.09368927031755447,0,0.1599234938621521,-0.09234122931957245 +-160,0.1038413867354393,0,0.2108052670955658,-0.1005511432886124 +-159,0.1144972294569016,0,0.2600280344486237,-0.1087180599570274 +-158,0.125006765127182,0,0.3072579503059387,-0.1175942048430443 +-157,0.1348816007375717,0,0.3523125052452087,-0.1275034844875336 +-156,0.1440526992082596,0,0.3964677453041077,-0.1382101476192474 +-155,0.1527329832315445,0,0.4413379430770874,-0.1492169201374054 +-154,0.1610862016677856,0,0.487205445766449,-0.160076305270195 +-153,0.1691174060106277,0,0.5330032110214233,-0.1704702079296112 +-152,0.1767501085996628,0,0.5773106813430786,-0.1802160292863846 +-151,0.183913454413414,0,0.6190788745880127,-0.1892591863870621 +-150,0.1905752867460251,0,0.6577316522598267,-0.1976258456707001 +-149,0.1967473328113556,0,0.6930667161941528,-0.2053754776716232 +-148,0.2024703174829483,0,0.7251461148262024,-0.2125691920518875 +-147,0.2077920287847519,0,0.7542120218276978,-0.2192588746547699 +-146,0.2127563059329987,0,0.7806226015090942,-0.2254878580570221 +-145,0.2173940092325211,0,0.8047659397125244,-0.2312926948070526 +-144,0.2217233628034592,0,0.8270086050033569,-0.2367030829191208 +-143,0.2257537841796875,0,0.8476638197898865,-0.2417434453964233 +-142,0.2294856011867523,0,0.8669742345809937,-0.2464303076267242 +-141,0.2329176366329193,0,0.8851274251937866,-0.2507762312889099 +-140,0.2360445111989975,0,0.9022501707077026,-0.2547878324985504 +-139,0.2388608157634735,0,0.9184260368347168,-0.2584674954414368 +-138,0.2413631230592728,0,0.9337043762207031,-0.2618153393268585 +-137,0.2435479909181595,0,0.9481086730957031,-0.2648290693759918 +-136,0.2454148679971695,0,0.9616373777389526,-0.2675034403800964 +-135,0.2469664961099625,0,0.9742805361747742,-0.2698342204093933 +-134,0.2482057511806488,0,0.9860174655914307,-0.2718161642551422 +-133,0.2491393089294434,0,0.9968222379684448,-0.2734440565109253 +-132,0.2497737854719162,0,1.006667137145996,-0.2747144103050232 +-131,0.250117152929306,0,1.015523076057434,-0.2756234705448151 +-130,0.2501779198646545,0,1.023360371589661,-0.2761696875095367 +-129,0.2499661445617676,0,1.030153036117554,-0.2763536870479584 +-128,0.2494891136884689,0,1.035868406295776,-0.2761773467063904 +-127,0.2487553507089615,0,1.04047155380249,-0.275643527507782 +-126,0.2477731853723526,0,1.043923497200012,-0.2747580111026764 +-125,0.2465520203113556,0,1.046172738075256,-0.2735271453857422 +-124,0.2450977563858032,0,1.047156691551208,-0.2719574868679047 +-123,0.2434210926294327,0,1.046800017356873,-0.2700539231300354 +-122,0.2415300011634827,0,1.045017600059509,-0.2678169310092926 +-121,0.2394385188817978,0,1.041731715202332,-0.2652365267276764 +-120,0.2371616065502167,0,1.036902189254761,-0.2622796595096588 +-119,0.2347170114517212,0,1.030591726303101,-0.2588748037815094 +-118,0.2321112751960754,0,1.023040533065796,-0.254894495010376 +-117,0.2293025404214859,0,1.014700651168823,-0.2501559853553772 +-116,0.2261200845241547,0,1.006089568138123,-0.2444659173488617 +-115,0.2221762239933014,0,0.9974046945571899,-0.2377180755138397 +-114,0.2169016450643539,0,0.9880372285842896,-0.2300013303756714 +-113,0.2098643630743027,0,0.9762547612190247,-0.2216200083494186 +-112,0.2012554705142975,0,0.9595367908477783,-0.2128779888153076 +-111,0.1917422562837601,0,0.9359596967697144,-0.203728586435318 +-110,0.1817722767591476,0,0.905001163482666,-0.1937872320413589 +-109,0.1714813411235809,0,0.866602897644043,-0.1826488375663757 +-108,0.160962775349617,0,0.8203506469726562,-0.1700316518545151 +-107,0.1504393070936203,0,0.765619158744812,-0.1557616591453552 +-106,0.1405243873596191,0,0.7022596597671509,-0.1398834884166718 +-105,0.1325522810220718,0,0.6324179172515869,-0.123151458799839 +-104,0.1279256641864777,0,0.5628620386123657,-0.1075624004006386 +-103,0.1254684776067734,0,0.5014818906784058,-0.09510700404644012 +-102,0.1213172897696495,0,0.4509718418121338,-0.08587868511676788 +-101,0.113458663225174,0,0.4082205295562744,-0.0786140114068985 +-100,0.1040644943714142,0,0.36446213722229,-0.07168985903263092 +-99,0.09594187885522842,0,0.3120382726192474,-0.06381113827228546 +-98,0.0891202911734581,0,0.2541491091251373,-0.05525390431284904 +-97,0.08310618996620178,0,0.1983387172222137,-0.04734718054533005 +-96,0.07783374190330505,0,0.151047945022583,-0.04134486243128777 +-95,0.07125203311443329,0,0.1243377327919006,-0.03707035630941391 +-94,0.05800684913992882,0,0.1292663067579269,-0.02958031930029392 +-93,0.03281808644533157,0,0.2351195961236954,-0.008934753946959972 +-92,0.0225505568087101,0,0.1986047476530075,0.01177287381142378 +-91,0.01949663646519184,0,0.07432235777378082,0.02315114438533783 +-90,0.01835193298757076,0,-0.04176904261112213,0.0271171685308218 +-89,0.01782204769551754,0,-0.1564062833786011,0.02781262993812561 +-88,0.01741715520620346,0,-0.2788087129592896,0.02775023318827152 +-87,0.01712184026837349,0,-0.4094196557998657,0.02811678126454353 +-86,0.01748431473970413,0,-0.5389119982719421,0.02985091134905815 +-85,0.01958389021456242,0,-0.6485381126403809,0.03366189450025558 +-84,0.02437132969498634,0,-0.7236301898956299,0.03857401758432388 +-83,0.0322340652346611,0,-0.7660095691680908,0.04266959801316261 +-82,0.04321330785751343,0,-0.7893427014350891,0.04629176110029221 +-81,0.0565403439104557,0,-0.8099706768989563,0.0510777048766613 +-80,0.07067570090293884,0,-0.8378193974494934,0.05803913623094559 +-79,0.08391650766134262,0,-0.8713479042053223,0.06682099401950836 +-78,0.0949513241648674,0,-0.9092244505882263,0.07633750140666962 +-77,0.1064992025494576,0,-0.9528682231903076,0.08502938598394394 +-76,0.1139125302433968,0,-0.9976956844329834,0.09206335991621017 +-75,0.1206502616405487,0,-1.038377285003662,0.09933122992515564 +-74,0.133247584104538,0,-1.082990765571594,0.1109431758522987 +-73,0.1486331820487976,0,-1.123938918113708,0.1233686432242393 +-72,0.1652745753526688,0,-1.157539963722229,0.1354461461305618 +-71,0.182789608836174,0,-1.182611465454102,0.1471825987100601 +-70,0.2009024918079376,0,-1.199702978134155,0.158867359161377 +-69,0.219234436750412,0,-1.210843682289124,0.1706580221652985 +-68,0.237752377986908,0,-1.218718290328979,0.182378962635994 +-67,0.2569809854030609,0,-1.225752711296082,0.1936466693878174 +-66,0.2770840525627136,0,-1.233999490737915,0.2041143625974655 +-65,0.2973334193229675,0,-1.2448410987854,0.2135940343141556 +-64,0.316654771566391,0,-1.25863242149353,0.2220217287540436 +-63,0.3343207240104675,0,-1.274813890457153,0.2294020652770996 +-62,0.3501487374305725,0,-1.292293667793274,0.2357984483242035 +-61,0.3642629981040955,0,-1.309868097305298,0.2413158416748047 +-60,0.3768144249916077,0,-1.326534986495972,0.2460577934980392 +-59,0.3878851234912872,0,-1.341615200042725,0.2500985562801361 +-58,0.397514283657074,0,-1.354756355285645,0.2534818053245544 +-57,0.4057453572750092,0,-1.365834951400757,0.2562344670295715 +-56,0.4126478731632233,0,-1.374886035919189,0.2583783268928528 +-55,0.418323278427124,0,-1.382038235664368,0.2599389553070068 +-54,0.4228796362876892,0,-1.387457013130188,0.2609444856643677 +-53,0.4264211356639862,0,-1.391325354576111,0.2614252865314484 +-52,0.4290325939655304,0,-1.393812894821167,0.2614100575447083 +-51,0.4307828545570374,0,-1.395063757896423,0.2609251141548157 +-50,0.4317139685153961,0,-1.395195245742798,0.2599905133247375 +-49,0.4318561255931854,0,-1.394298076629639,0.2586230337619781 +-48,0.4312291145324707,0,-1.392431974411011,0.2568342089653015 +-47,0.4298474788665771,0,-1.389641284942627,0.2546322047710419 +-46,0.4277242720127106,0,-1.385951995849609,0.2520209848880768 +-45,0.4248755574226379,0,-1.381380796432495,0.2490024566650391 +-44,0.4213188588619232,0,-1.375939607620239,0.2455744296312332 +-43,0.4170771539211273,0,-1.369640827178955,0.2417334616184235 +-42,0.4121728539466858,0,-1.362504720687866,0.2374711930751801 +-41,0.4066276848316193,0,-1.354576349258423,0.2327751368284225 +-40,0.4004556238651276,0,-1.345940232276917,0.22762331366539 +-39,0.3936479091644287,0,-1.336766719818115,0.2219768464565277 +-38,0.3861472904682159,0,-1.327380895614624,0.215760201215744 +-37,0.3777728676795959,0,-1.318384408950806,0.2088352739810944 +-36,0.3680700957775116,0,-1.310779094696045,0.2009707242250443 +-35,0.356128603219986,0,-1.306003093719482,0.1918462514877319 +-34,0.3408196866512299,0,-1.305683374404907,0.1811446994543076 +-33,0.3221124112606049,0,-1.311182498931885,0.1686969697475433 +-32,0.3021023273468018,0,-1.323155999183655,0.1545805931091309 +-31,0.2829889357089996,0,-1.340449690818787,0.1393148005008698 +-30,0.2642742693424225,0,-1.358776807785034,0.1241631284356117 +-29,0.2452636510133743,0,-1.371889114379883,0.1104643121361732 +-28,0.2266642600297928,0,-1.377809762954712,0.09823010861873627 +-27,0.2085359394550323,0,-1.379267454147339,0.08680252730846405 +-26,0.1910706013441086,0,-1.378529071807861,0.07598626613616943 +-25,0.1745573431253433,0,-1.377746820449829,0.0656651109457016 +-24,0.1597727984189987,0,-1.376795172691345,0.0556238517165184 +-23,0.1466174423694611,0,-1.375661611557007,0.04554736614227295 +-22,0.1315131634473801,0,-1.388066053390503,0.03509043902158737 +-21,0.1129841879010201,0,-1.42328405380249,0.02471579983830452 +-20,0.0927763357758522,0,-1.470999360084534,0.01561776362359524 +-19,0.07368117570877075,0,-1.512897968292236,0.008648139424622059 +-18,0.0570632740855217,0,-1.543259978294373,0.003672650549560785 +-17,0.04371606186032295,0,-1.554763555526733,0.001051297760568559 +-16,0.03398522362112999,0,-1.543217778205872,0.00123568472918123 +-15,0.02721717394888401,0,-1.512172222137451,0.003434202168136835 +-14,0.02261243388056755,0,-1.465396881103516,0.007267892360687256 +-13,0.0195363461971283,0,-1.40699577331543,0.01297479867935181 +-12,0.01738176122307777,0,-1.33925199508667,0.01982937380671501 +-11,0.01602822169661522,0,-1.261655330657959,0.0269324891269207 +-10,0.01518088951706886,0,-1.173580288887024,0.0320354625582695 +-9,0.01402982883155346,0,-1.072747468948364,0.03447447344660759 +-8,0.01303109433501959,0,-0.9665999412536621,0.0363633818924427 +-7,0.01221687253564596,0,-0.859312891960144,0.0378400906920433 +-6,0.01151741202920675,0,-0.7490714192390442,0.038951076567173 +-5,0.01088381744921207,0,-0.6360399127006531,0.039804358035326 +-4,0.01034868136048317,0,-0.5207366943359375,0.04036962985992432 +-3,0.01000219769775867,0,-0.4031365513801575,0.04058293253183365 +-2,0.009783551096916199,0,-0.2846870720386505,0.04043496400117874 +-1,0.00958669651299715,0,-0.1663938462734222,0.04015452787280083 +0,0.009465385228395462,0,-0.04771459102630615,0.03988788276910782 +1,0.009427741169929504,0,0.0718756765127182,0.03957035019993782 +2,0.009436641819775105,0,0.1910349428653717,0.03923731297254562 +3,0.009544176980853081,0,0.3095651268959045,0.03890610486268997 +4,0.009820789098739624,0,0.4275114238262177,0.03850746154785156 +5,0.01015227567404509,0,0.5442243218421936,0.03825842216610909 +6,0.01050362829118967,0,0.6612213850021362,0.03803854063153267 +7,0.01091388240456581,0,0.776505172252655,0.03828910738229752 +8,0.01148973312228918,0,0.8946200013160706,0.03786326199769974 +9,0.01236369274556637,0,1.034478425979614,0.03220799565315247 +10,0.01338211540132761,0,1.171115875244141,0.0263148657977581 +11,0.01451383251696825,0,1.274788379669189,0.02643240056931973 +12,0.01596619747579098,0,1.359200477600098,0.02995659783482552 +13,0.01747591234743595,0,1.4449223279953,0.03374252840876579 +14,0.0185923483222723,0,1.540435075759888,0.03701724857091904 +15,0.02046378888189793,0,1.621134757995605,0.04078826680779457 +16,0.0266275480389595,0,1.649246454238892,0.0410471074283123 +17,0.03887201845645905,0,1.627196431159973,0.03575991094112396 +18,0.05519925802946091,0,1.584847211837769,0.0287408921867609 +19,0.07313703745603561,0,1.543896675109863,0.02163956500589848 +20,0.094644695520401,0,1.483002066612244,0.01202696561813354 +21,0.1213906109333038,0,1.389380693435669,-0.001396375941112638 +22,0.138039767742157,0,1.350927948951721,-0.01291732210665941 +23,0.145868107676506,0,1.354528307914734,-0.02235789969563484 +24,0.1552844941616058,0,1.357415676116943,-0.03178998455405235 +25,0.1680536419153214,0,1.356566548347473,-0.04157772660255432 +26,0.1824693977832794,0,1.357700347900391,-0.0515420213341713 +27,0.196448802947998,0,1.36420202255249,-0.06142227724194527 +28,0.2091939151287079,0,1.3752760887146,-0.07105885446071625 +29,0.2213171720504761,0,1.387443065643311,-0.080398328602314 +30,0.2339840084314346,0,1.396622896194458,-0.08941610902547836 +31,0.2481461614370346,0,1.399730443954468,-0.09808714687824249 +32,0.2638491094112396,0,1.396613597869873,-0.106415793299675 +33,0.2799957394599915,0,1.390558242797852,-0.1144465953111649 +34,0.2952375411987305,0,1.385460376739502,-0.1222132444381714 +35,0.308929830789566,0,1.38327157497406,-0.1297054141759872 +36,0.3211067914962769,0,1.384089469909668,-0.1368802040815353 +37,0.3320276141166687,0,1.387216091156006,-0.143694132566452 +38,0.3419149219989777,0,1.391803026199341,-0.1501233875751495 +39,0.3509056568145752,0,1.39708423614502,-0.1561672389507294 +40,0.3590805530548096,0,1.402451753616333,-0.1618385165929794 +41,0.3664852380752563,0,1.407456874847412,-0.1671560108661652 +42,0.3731369376182556,0,1.411813974380493,-0.1721309572458267 +43,0.379028707742691,0,1.415369510650635,-0.1767649501562119 +44,0.3841327428817749,0,1.418087482452393,-0.1810507029294968 +45,0.3884036242961884,0,1.419997692108154,-0.1849739104509354 +46,0.3917894065380096,0,1.421161890029907,-0.188518688082695 +47,0.3942430913448334,0,1.421642065048218,-0.1916696131229401 +48,0.3957279026508331,0,1.42149293422699,-0.194415494799614 +49,0.3962194919586182,0,1.420747756958008,-0.1967485398054123 +50,0.3957087397575378,0,1.419420480728149,-0.1986630409955978 +51,0.3941978812217712,0,1.417505979537964,-0.2001568377017975 +52,0.3916960060596466,0,1.41497814655304,-0.2012277096509933 +53,0.3882182836532593,0,1.411787748336792,-0.2018740624189377 +54,0.3837791085243225,0,1.407865762710571,-0.2020925730466843 +55,0.3783884644508362,0,1.403125762939453,-0.2018790543079376 +56,0.3720420002937317,0,1.397478103637695,-0.2012265026569366 +57,0.3647098541259766,0,1.390861511230469,-0.2001294642686844 +58,0.3563232719898224,0,1.383284687995911,-0.1985852718353271 +59,0.3467384576797485,0,1.374877333641052,-0.1965982019901276 +60,0.3357015550136566,0,1.36592173576355,-0.1941769272089005 +61,0.3228230178356171,0,1.356821537017822,-0.1913259327411652 +62,0.307706356048584,0,1.347873091697693,-0.1880280077457428 +63,0.2903760671615601,0,1.338680624961853,-0.184229701757431 +64,0.2717355191707611,0,1.327514171600342,-0.1798444390296936 +65,0.253210186958313,0,1.311853170394897,-0.1747876852750778 +66,0.2357264161109924,0,1.290158629417419,-0.1690245121717453 +67,0.2194483280181885,0,1.262385010719299,-0.1625574082136154 +68,0.2042711228132248,0,1.228834867477417,-0.1553565114736557 +69,0.1901417821645737,0,1.189398646354675,-0.147346094250679 +70,0.1770839989185333,0,1.143722772598267,-0.1384808123111725 +71,0.1651250720024109,0,1.091742634773254,-0.1288273632526398 +72,0.1542024165391922,0,1.034043669700623,-0.1185777932405472 +73,0.144123300909996,0,0.9720225930213928,-0.1080430150032043 +74,0.1346348524093628,0,0.9074681997299194,-0.09757642447948456 +75,0.1256314367055893,0,0.8417730331420898,-0.08743986487388611 +76,0.1174969002604485,0,0.7760473489761353,-0.07789009809494019 +77,0.1113857850432396,0,0.7121810913085938,-0.06955856084823608 +78,0.1081161871552467,0,0.6521272659301758,-0.06334318965673447 +79,0.1056201905012131,0,0.5966206192970276,-0.05925063416361809 +80,0.1005797386169434,0,0.54802405834198,-0.0563894584774971 +81,0.09332641214132309,0,0.5012637376785278,-0.05296208709478378 +82,0.08498514443635941,0,0.4541869461536407,-0.04790552332997322 +83,0.07453687489032745,0,0.4132185578346252,-0.04145398736000061 +84,0.05903962627053261,0,0.3980992138385773,-0.03185947239398956 +85,0.03862791135907173,0,0.4502977430820465,-0.01608666405081749 +86,0.02746591344475746,0,0.4310778379440308,-0.0006150781991891563 +87,0.02256523445248604,0,0.3235428631305695,0.01167100109159946 +88,0.02002890594303608,0,0.1976283639669418,0.02037687785923481 +89,0.01883308216929436,0,0.07475195825099945,0.02521663345396519 +90,0.01835193298757076,0,-0.04176904261112213,0.0271171685308218 +91,0.01808884553611279,0,-0.155009925365448,0.02724789083003998 +92,0.01769027858972549,0,-0.2695882022380829,0.02670601569116116 +93,0.01739255525171757,0,-0.3835741579532623,0.02677202224731445 +94,0.01849980652332306,0,-0.480073481798172,0.02908911183476448 +95,0.02285036258399487,0,-0.5371333360671997,0.03391724079847336 +96,0.0316905751824379,0,-0.5518813133239746,0.03886141628026962 +97,0.0448480136692524,0,-0.5462710857391357,0.04410891234874725 +98,0.06010391563177109,0,-0.5517749786376953,0.0534503348171711 +99,0.07398165762424469,0,-0.5863107442855835,0.06735316663980484 +100,0.08257964253425598,0,-0.637088418006897,0.0817529708147049 +101,0.09107198566198349,0,-0.6778550148010254,0.09518442302942276 +102,0.1013096421957016,0,-0.7025946974754333,0.1077317222952843 +103,0.116098091006279,0,-0.7131029367446899,0.1197774261236191 +104,0.1321715265512466,0,-0.7170606851577759,0.1307539343833923 +105,0.1411796361207962,0,-0.7260866165161133,0.1420604437589645 +106,0.1528838574886322,0,-0.7600694894790649,0.1606365442276001 +107,0.173700213432312,0,-0.8038454651832581,0.1833214461803436 +108,0.1933310925960541,0,-0.8410419821739197,0.2030688971281052 +109,0.2057316899299622,0,-0.8746703863143921,0.2186488211154938 +110,0.2118692547082901,0,-0.9075345396995544,0.2306137979030609 +111,0.2149280458688736,0,-0.9385998249053955,0.2400095760822296 +112,0.2169664055109024,0,-0.96629798412323,0.2478125989437103 +113,0.218794971704483,0,-0.9901912212371826,0.2546219527721405 +114,0.2206482142210007,0,-1.010511517524719,0.2607247233390808 +115,0.2225789576768875,0,-1.027558088302612,0.2662623822689056 +116,0.2245888113975525,0,-1.041533231735229,0.2713201642036438 +117,0.2266548573970795,0,-1.052639126777649,0.2759572565555573 +118,0.2287305295467377,0,-1.061146974563599,0.2802117466926575 +119,0.2307552248239517,0,-1.067396879196167,0.2841036319732666 +120,0.2326660007238388,0,-1.071748733520508,0.2876397967338562 +121,0.2344064116477966,0,-1.074527263641357,0.2908173203468323 +122,0.2359299063682556,0,-1.076000928878784,0.293630838394165 +123,0.237201988697052,0,-1.076364994049072,0.2960730195045471 +124,0.238198384642601,0,-1.07576060295105,0.2981390953063965 +125,0.2389027327299118,0,-1.074270129203796,0.2998224198818207 +126,0.2393077611923218,0,-1.071945786476135,0.3011221289634705 +127,0.2394120246171951,0,-1.068811893463135,0.3020355105400085 +128,0.2392202019691467,0,-1.064873695373535,0.3025631010532379 +129,0.2387398332357407,0,-1.060126185417175,0.3027053773403168 +130,0.2379831373691559,0,-1.054560422897339,0.3024635314941406 +131,0.236963614821434,0,-1.048169255256653,0.301840215921402 +132,0.2356966882944107,0,-1.040939331054688,0.3008365035057068 +133,0.2341976016759872,0,-1.032869100570679,0.2994560599327087 +134,0.2324803024530411,0,-1.023951292037964,0.2976996600627899 +135,0.2305591702461243,0,-1.014189958572388,0.2955710887908936 +136,0.2284449636936188,0,-1.003587484359741,0.293072521686554 +137,0.2261504828929901,0,-0.9921464920043945,0.2902054190635681 +138,0.2236844301223755,0,-0.9798717498779297,0.2869722247123718 +139,0.2210551351308823,0,-0.9667677283287048,0.2833757698535919 +140,0.2182702571153641,0,-0.9528288841247559,0.2794178128242493 +141,0.2153363227844238,0,-0.9380518198013306,0.2751027345657349 +142,0.2122594714164734,0,-0.9224191904067993,0.2704342007637024 +143,0.2090462297201157,0,-0.9059045314788818,0.2654191851615906 +144,0.2057017087936401,0,-0.8884717226028442,0.2600670456886292 +145,0.2022303491830826,0,-0.8700646162033081,0.2543906569480896 +146,0.1986387073993683,0,-0.8506115674972534,0.2484077513217926 +147,0.1949295550584793,0,-0.8300228118896484,0.2421412169933319 +148,0.1911081820726395,0,-0.8081860542297363,0.2356199473142624 +149,0.1871775686740875,0,-0.7849684357643127,0.2288789451122284 +150,0.1831409335136414,0,-0.7602249979972839,0.2219590246677399 +151,0.1790018975734711,0,-0.7337883710861206,0.2149045467376709 +152,0.1747626811265945,0,-0.7054866552352905,0.2077645808458328 +153,0.1704237461090088,0,-0.6751296520233154,0.2005873173475266 +154,0.1659831702709198,0,-0.642513632774353,0.1934210062026978 +155,0.1614371091127396,0,-0.6073957681655884,0.1863089799880981 +156,0.156786173582077,0,-0.5694880485534668,0.17928846180439 +157,0.1520603001117706,0,-0.5284821391105652,0.1723851710557938 +158,0.1473623216152191,0,-0.4841656982898712,0.1655946522951126 +159,0.14292012155056,0,-0.4366440773010254,0.1588154137134552 +160,0.1390517354011536,0,-0.3863435387611389,0.1516653001308441 +161,0.1358910501003265,0,-0.3324917256832123,0.1430472582578659 +162,0.1333853453397751,0,-0.2693663537502289,0.1305942088365555 +163,0.1340753436088562,0,-0.1975623965263367,0.1138384938240051 +164,0.1402363181114197,0,-0.1703704595565796,0.1044378504157066 +165,0.1350679248571396,0,-0.1735600233078003,0.09876458346843719 +166,0.1184324100613594,0,-0.1387910842895508,0.08512207865715027 +167,0.1029212325811386,0,-0.07360795140266418,0.06921016424894333 +168,0.09032399207353592,0,-0.03564062714576721,0.06025109440088272 +169,0.08145036548376083,0,-0.0225728303194046,0.05483629181981087 +170,0.07488330453634262,0,-0.006236240267753601,0.04868543148040771 +171,0.06952822208404541,0,0.01062837243080139,0.04296335950493813 +172,0.0651717409491539,0,0.01333284378051758,0.04020907357335091 +173,0.06159655004739761,0,-0.0004432722926139832,0.04053734615445137 +174,0.05824515596032143,0,-0.02464457228779793,0.04188185185194016 +175,0.0539512000977993,0,-0.05048248544335365,0.04051367565989494 +176,0.04573379456996918,0,-0.06563292443752289,0.03287567943334579 +177,0.03564536198973656,0,-0.04088204354047775,0.01991301216185093 +178,0.03337046504020691,0,-0.03371481597423553,0.007185724563896656 +179,0.03479043766856194,0,-0.07382539659738541,-0.0005587280029430985 +180,0.03580158948898315,0,-0.1151138320565224,-0.004783353302627802 diff --git a/data/ram_air_kite/polars_neuralfoil/14.csv b/data/ram_air_kite/polars_neuralfoil/14.csv new file mode 100644 index 00000000..658cd5c3 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/14.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03702103719115257,0,-0.1098275631666183,-0.002108031418174505 +-179,0.03714789822697639,0,-0.1595191359519958,-0.002105900552123785 +-178,0.03746318072080612,0,-0.2006990909576416,-0.000595307326875627 +-177,0.03805916383862495,0,-0.2232971787452698,-0.0009695052867755294 +-176,0.03892038017511368,0,-0.2298309504985809,-0.003467479255050421 +-175,0.04007403180003166,0,-0.2252287864685059,-0.00742830615490675 +-174,0.04147209599614143,0,-0.2131684720516205,-0.01222573220729828 +-173,0.04307955503463745,0,-0.1958341151475906,-0.01754379086196423 +-172,0.04499984905123711,0,-0.1742316633462906,-0.02335510030388832 +-171,0.04746946319937706,0,-0.1489452123641968,-0.02970516122877598 +-170,0.05076905339956284,0,-0.1211927235126495,-0.03641765937209129 +-169,0.05516234040260315,0,-0.09429563581943512,-0.04281612113118172 +-168,0.06092475354671478,0,-0.0748133510351181,-0.04794948548078537 +-167,0.06813780963420868,0,-0.06862950325012207,-0.05136160179972649 +-166,0.07536032795906067,0,-0.07228541374206543,-0.05301752686500549 +-165,0.07981542497873306,0,-0.07255935668945312,-0.0542617067694664 +-164,0.08093081414699554,0,-0.05111241340637207,-0.05849910527467728 +-163,0.0824543833732605,0,-0.002188920974731445,-0.06760092824697495 +-162,0.08741941303014755,0,0.06089681386947632,-0.07924322783946991 +-161,0.09532084316015244,0,0.1243422031402588,-0.09040550887584686 +-160,0.1047069132328033,0,0.1833120882511139,-0.1004419326782227 +-159,0.1144767850637436,0,0.2372848689556122,-0.1101073622703552 +-158,0.1239830702543259,0,0.2866151034832001,-0.1200225129723549 +-157,0.1330753266811371,0,0.3325634002685547,-0.1301501244306564 +-156,0.1419057846069336,0,0.3767711222171783,-0.1401879042387009 +-155,0.1505790054798126,0,0.4204301536083221,-0.149987667798996 +-154,0.1590298861265182,0,0.4640437066555023,-0.1595468819141388 +-153,0.1671148091554642,0,0.5073463320732117,-0.1688512116670609 +-152,0.1747171878814697,0,0.5495370626449585,-0.177835613489151 +-151,0.1817832440137863,0,0.5897247791290283,-0.1864219158887863 +-150,0.1883176267147064,0,0.627288818359375,-0.1945571601390839 +-149,0.1943620443344116,0,0.6619564294815063,-0.2022207081317902 +-148,0.1999689042568207,0,0.6937317848205566,-0.2094146907329559 +-147,0.2051913738250732,0,0.7227984666824341,-0.2161548137664795 +-146,0.2100690603256226,0,0.7494292259216309,-0.2224633395671844 +-145,0.2146299630403519,0,0.7739322185516357,-0.228365033864975 +-144,0.2188906669616699,0,0.7966049909591675,-0.233883410692215 +-143,0.2228589057922363,0,0.8177145719528198,-0.2390387356281281 +-142,0.2265353053808212,0,0.8374816179275513,-0.2438474148511887 +-141,0.2299171388149261,0,0.8560798168182373,-0.2483202517032623 +-140,0.2329992949962616,0,0.8736428618431091,-0.252465158700943 +-139,0.2357749342918396,0,0.8902608156204224,-0.2562857270240784 +-138,0.2382376939058304,0,0.905994713306427,-0.259782612323761 +-137,0.2403835654258728,0,0.9208735227584839,-0.2629536986351013 +-136,0.2422076910734177,0,0.9349087476730347,-0.2657960653305054 +-135,0.2437088936567307,0,0.9480890035629272,-0.2683046460151672 +-134,0.244887188076973,0,0.9603981971740723,-0.2704748809337616 +-133,0.2457462549209595,0,0.9718031883239746,-0.2723013460636139 +-132,0.2462910562753677,0,0.9822678565979004,-0.2737792730331421 +-131,0.2465271651744843,0,0.9917494058609009,-0.2749043703079224 +-130,0.2464644610881805,0,1.00020706653595,-0.2756739258766174 +-129,0.2461127191781998,0,1.007592916488647,-0.276085764169693 +-128,0.2454844415187836,0,1.01385509967804,-0.2761386930942535 +-127,0.2445915788412094,0,1.018941640853882,-0.2758333384990692 +-126,0.2434500008821487,0,1.022785663604736,-0.2751701474189758 +-125,0.2420762330293655,0,1.025315880775452,-0.2741508781909943 +-124,0.2404885739088058,0,1.026444315910339,-0.2727774083614349 +-123,0.23870550096035,0,1.026065826416016,-0.2710500359535217 +-122,0.2367464303970337,0,1.024052143096924,-0.2689662575721741 +-121,0.2346310168504715,0,1.02026355266571,-0.2665184140205383 +-120,0.2323740124702454,0,1.014549732208252,-0.2636840343475342 +-119,0.2299861758947372,0,1.006804466247559,-0.260418176651001 +-118,0.2274601757526398,0,0.9970247745513916,-0.2566308975219727 +-117,0.224748283624649,0,0.9854261875152588,-0.2521689534187317 +-116,0.2217043936252594,0,0.9725444316864014,-0.246804267168045 +-115,0.2179752886295319,0,0.9592235088348389,-0.2402665913105011 +-114,0.2129198014736176,0,0.9462307691574097,-0.2323598861694336 +-113,0.2058178335428238,0,0.933185338973999,-0.2231447249650955 +-112,0.1965366452932358,0,0.9174864888191223,-0.2130058705806732 +-111,0.1859061121940613,0,0.8952335119247437,-0.2023655474185944 +-110,0.1749428957700729,0,0.8639507293701172,-0.1912395507097244 +-109,0.1640664637088776,0,0.8234481811523438,-0.1792275607585907 +-108,0.1534420847892761,0,0.7742768526077271,-0.1658817380666733 +-107,0.1437072604894638,0,0.7169699668884277,-0.1510363817214966 +-106,0.1362846195697784,0,0.6536586284637451,-0.1352484822273254 +-105,0.1323442757129669,0,0.5903090238571167,-0.1201701164245605 +-104,0.1303743422031403,0,0.5336445569992065,-0.1074202433228493 +-103,0.1266781240701675,0,0.4853494465351105,-0.096999891102314 +-102,0.1192806661128998,0,0.4428406357765198,-0.08804789930582047 +-101,0.1099861040711403,0,0.4003717303276062,-0.07973040640354156 +-100,0.1016275510191917,0,0.3513849377632141,-0.0711740180850029 +-99,0.09454498440027237,0,0.2953764200210571,-0.06209142133593559 +-98,0.08815987408161163,0,0.2370918244123459,-0.05311714485287666 +-97,0.08237966895103455,0,0.1818131655454636,-0.04517608880996704 +-96,0.07702828198671341,0,0.1364022493362427,-0.03902049735188484 +-95,0.06950808316469193,0,0.1144581213593483,-0.03377506136894226 +-94,0.05530965328216553,0,0.1223748326301575,-0.02446469105780125 +-93,0.0312068983912468,0,0.2295907437801361,-0.002099212957546115 +-92,0.02281623892486095,0,0.1638051718473434,0.01757633499801159 +-91,0.01991324499249458,0,0.04533293843269348,0.02781928516924381 +-90,0.01879209093749523,0,-0.06097403913736343,0.03048311546444893 +-89,0.01821186393499374,0,-0.1694092154502869,0.03034335747361183 +-88,0.0177502129226923,0,-0.2884733378887177,0.02998848631978035 +-87,0.01748755015432835,0,-0.4154274761676788,0.03044549003243446 +-86,0.01794271171092987,0,-0.5399972200393677,0.03241464868187904 +-85,0.01997161284089088,0,-0.6465551853179932,0.03609452769160271 +-84,0.02426964789628983,0,-0.7238989472389221,0.04037628695368767 +-83,0.03120086528360844,0,-0.7729412913322449,0.04394681379199028 +-82,0.04117042571306229,0,-0.8021833896636963,0.04720531776547432 +-81,0.05402557179331779,0,-0.8238680958747864,0.05157111212611198 +-80,0.06828521192073822,0,-0.8491727113723755,0.05806859210133553 +-79,0.08171540498733521,0,-0.8793039917945862,0.06636849790811539 +-78,0.09393530339002609,0,-0.9138525128364563,0.07556331157684326 +-77,0.105826735496521,0,-0.9582331776618958,0.08392574638128281 +-76,0.1111281141638756,0,-1.0077885389328,0.09036895632743835 +-75,0.1181464418768883,0,-1.057745575904846,0.09921003878116608 +-74,0.1304572373628616,0,-1.106947422027588,0.1111153140664101 +-73,0.1447841376066208,0,-1.150169849395752,0.122869536280632 +-72,0.1600115448236465,0,-1.186673521995544,0.1338058263063431 +-71,0.1758298426866531,0,-1.216387510299683,0.1439808011054993 +-70,0.1922101676464081,0,-1.239467263221741,0.1537243127822876 +-69,0.2091864794492722,0,-1.256308794021606,0.1634474247694016 +-68,0.2266336232423782,0,-1.267873406410217,0.173428937792778 +-67,0.2443705499172211,0,-1.275805354118347,0.1836457252502441 +-66,0.2625497877597809,0,-1.281943559646606,0.1938013732433319 +-65,0.281466543674469,0,-1.287919521331787,0.2035130560398102 +-64,0.3009240925312042,0,-1.295019149780273,0.212483674287796 +-63,0.32015460729599,0,-1.3039231300354,0.2205502688884735 +-62,0.3382576406002045,0,-1.314621925354004,0.2276391983032227 +-61,0.3546034693717957,0,-1.32660448551178,0.233730673789978 +-60,0.3689565062522888,0,-1.33910870552063,0.2388535439968109 +-59,0.3813637495040894,0,-1.35136890411377,0.2430800944566727 +-58,0.3919856250286102,0,-1.362752437591553,0.2465006560087204 +-57,0.4009974300861359,0,-1.37284517288208,0.2492036372423172 +-56,0.4085586071014404,0,-1.381434798240662,0.2512625753879547 +-55,0.4148041307926178,0,-1.388471722602844,0.2527353465557098 +-54,0.4198581278324127,0,-1.394003629684448,0.2536678314208984 +-53,0.4238240718841553,0,-1.398128867149353,0.2540964484214783 +-52,0.4267891347408295,0,-1.400960564613342,0.2540483474731445 +-51,0.4288227558135986,0,-1.402601718902588,0.2535448968410492 +-50,0.4299787878990173,0,-1.403144955635071,0.2526022493839264 +-49,0.4302960932254791,0,-1.402660012245178,0.2512308061122894 +-48,0.4298041462898254,0,-1.401201605796814,0.2494367808103561 +-47,0.4285226762294769,0,-1.398813605308533,0.247223898768425 +-46,0.4264672994613647,0,-1.395533800125122,0.2445919960737228 +-45,0.4236466884613037,0,-1.391402244567871,0.2415364533662796 +-44,0.4200656116008759,0,-1.386468648910522,0.2380498349666595 +-43,0.4157190322875977,0,-1.380809783935547,0.2341171056032181 +-42,0.4105876684188843,0,-1.374547839164734,0.2297110259532928 +-41,0.4046112596988678,0,-1.367897272109985,0.2247855216264725 +-40,0.3976657390594482,0,-1.361203193664551,0.219262883067131 +-39,0.3894984424114227,0,-1.355011940002441,0.2130225449800491 +-38,0.3796660602092743,0,-1.350093483924866,0.205895334482193 +-37,0.3675722479820251,0,-1.347390174865723,0.1976881325244904 +-36,0.3528062403202057,0,-1.347842812538147,0.1882354468107224 +-35,0.3357764184474945,0,-1.352253079414368,0.1774536073207855 +-34,0.3178902864456177,0,-1.361114501953125,0.1653641164302826 +-33,0.3005407154560089,0,-1.373986959457397,0.1522035896778107 +-32,0.2836508452892303,0,-1.388596653938293,0.1386469006538391 +-31,0.2664038240909576,0,-1.40082573890686,0.1256877183914185 +-30,0.2492204010486603,0,-1.407161951065063,0.1138535737991333 +-29,0.2324432134628296,0,-1.40822160243988,0.1028048768639565 +-28,0.2158214747905731,0,-1.406590342521667,0.09210486710071564 +-27,0.1993667036294937,0,-1.404225468635559,0.08168907463550568 +-26,0.1834297031164169,0,-1.402421236038208,0.07159952819347382 +-25,0.1688482761383057,0,-1.400541663169861,0.06181935220956802 +-24,0.1561228036880493,0,-1.396763205528259,0.05222830176353455 +-23,0.1431247591972351,0,-1.397529125213623,0.04255455732345581 +-22,0.1274718195199966,0,-1.414956450462341,0.03275266289710999 +-21,0.1091221943497658,0,-1.451436519622803,0.02332658134400845 +-20,0.08983886986970901,0,-1.494707822799683,0.01533655542880297 +-19,0.07186632603406906,0,-1.531439185142517,0.009274470619857311 +-18,0.05627336725592613,0,-1.557711243629456,0.005132499150931835 +-17,0.04369021207094193,0,-1.566026926040649,0.003256320953369141 +-16,0.03432751446962357,0,-1.552743673324585,0.00381444999948144 +-15,0.02759342454373837,0,-1.520760416984558,0.005931285209953785 +-14,0.02280537970364094,0,-1.473582863807678,0.009196233935654163 +-13,0.01947458647191525,0,-1.415361881256104,0.01409223116934299 +-12,0.01710281148552895,0,-1.349616289138794,0.02055781520903111 +-11,0.01548785902559757,0,-1.272201418876648,0.02697829529643059 +-10,0.01472455449402332,0,-1.186293601989746,0.03304920345544815 +-9,0.01371790375560522,0,-1.087455272674561,0.03558459877967834 +-8,0.01279368903487921,0,-0.9811316132545471,0.03752308338880539 +-7,0.01206149067729712,0,-0.8739516735076904,0.03905690461397171 +-6,0.01144538633525372,0,-0.763945460319519,0.04018291085958481 +-5,0.01088887359946966,0,-0.6507945656776428,0.04103059694170952 +-4,0.01043158303946257,0,-0.5350814461708069,0.04161223769187927 +-3,0.01013423502445221,0,-0.4173433184623718,0.0418647825717926 +-2,0.009924852289259434,0,-0.2990063428878784,0.04180432483553886 +-1,0.009719211608171463,0,-0.1808316111564636,0.04162950441241264 +0,0.009578247554600239,0,-0.06231647729873657,0.04147787019610405 +1,0.009531606920063496,0,0.05720414221286774,0.04127078130841255 +2,0.009581266902387142,0,0.1768393069505692,0.04099229723215103 +3,0.009737386368215084,0,0.2958503663539886,0.04067846015095711 +4,0.01003639120608568,0,0.4145465195178986,0.04031186550855637 +5,0.01045164372771978,0,0.5323812961578369,0.03996429592370987 +6,0.01089196838438511,0,0.6487540602684021,0.03983433917164803 +7,0.01136333215981722,0,0.7649323344230652,0.03979206085205078 +8,0.01190940849483013,0,0.8792851567268372,0.04017811268568039 +9,0.01260676421225071,0,0.9901471138000488,0.04116509482264519 +10,0.0136481299996376,0,1.119480609893799,0.03728014975786209 +11,0.01497963536530733,0,1.245223522186279,0.03267316892743111 +12,0.01646023616194725,0,1.33653998374939,0.03467212244868279 +13,0.01787323690950871,0,1.421877145767212,0.03885681182146072 +14,0.01912466622889042,0,1.512707829475403,0.04279755055904388 +15,0.02189717814326286,0,1.582592606544495,0.04597699642181396 +16,0.02955684252083302,0,1.602337956428528,0.04383933916687965 +17,0.04281027615070343,0,1.579393625259399,0.03744813054800034 +18,0.05945395305752754,0,1.541582942008972,0.03026839718222618 +19,0.07764369249343872,0,1.503882169723511,0.0229643527418375 +20,0.1000977978110313,0,1.440239548683167,0.0126061737537384 +21,0.1273501515388489,0,1.347361922264099,-0.001314908266067505 +22,0.1433636844158173,0,1.313848614692688,-0.01295289397239685 +23,0.1511891186237335,0,1.318938136100769,-0.02255548164248466 +24,0.1607912331819534,0,1.322354912757874,-0.03208745270967484 +25,0.1736291646957397,0,1.321654438972473,-0.04188501089811325 +26,0.1880106329917908,0,1.322501063346863,-0.05177053064107895 +27,0.2018942683935165,0,1.328530669212341,-0.0614674799144268 +28,0.2144235968589783,0,1.339492321014404,-0.07079602777957916 +29,0.2259964942932129,0,1.352841854095459,-0.07972939312458038 +30,0.2373830825090408,0,1.365990281105042,-0.08833896368741989 +31,0.2491482794284821,0,1.377259612083435,-0.09672120213508606 +32,0.2615512609481812,0,1.385887861251831,-0.1049417480826378 +33,0.2745741009712219,0,1.391843795776367,-0.1130157113075256 +34,0.287934273481369,0,1.395702123641968,-0.120921790599823 +35,0.3011760413646698,0,1.398331165313721,-0.1286283433437347 +36,0.313871443271637,0,1.400439262390137,-0.1361101865768433 +37,0.3257776200771332,0,1.402308225631714,-0.143353670835495 +38,0.3368414640426636,0,1.403895974159241,-0.1503479480743408 +39,0.3470967411994934,0,1.405079960823059,-0.1570735275745392 +40,0.3565761148929596,0,1.405805110931396,-0.1634952574968338 +41,0.3652673065662384,0,1.406125664710999,-0.1695697009563446 +42,0.3731144368648529,0,1.406152963638306,-0.1752518713474274 +43,0.3800353705883026,0,1.406001567840576,-0.1805054247379303 +44,0.3859474658966064,0,1.405745387077332,-0.1853040903806686 +45,0.3907818794250488,0,1.405410289764404,-0.1896334141492844 +46,0.3944938480854034,0,1.40498673915863,-0.1934861242771149 +47,0.3970590531826019,0,1.404443979263306,-0.196861132979393 +48,0.3984719812870026,0,1.403749465942383,-0.199759766459465 +49,0.3987376987934113,0,1.402866840362549,-0.2021831572055817 +50,0.3978645205497742,0,1.401771426200867,-0.2041324079036713 +51,0.3958586752414703,0,1.400445938110352,-0.2056057453155518 +52,0.3927201330661774,0,1.398871421813965,-0.2065983265638351 +53,0.3884386420249939,0,1.397019386291504,-0.2071018218994141 +54,0.3829881846904755,0,1.394849300384521,-0.2071044445037842 +55,0.3763268291950226,0,1.392283916473389,-0.2065919935703278 +56,0.3683897256851196,0,1.389212846755981,-0.2055503875017166 +57,0.3590861856937408,0,1.385486245155334,-0.2039705514907837 +58,0.3483141362667084,0,1.380905866622925,-0.2018516957759857 +59,0.3359822928905487,0,1.375215768814087,-0.1992048174142838 +60,0.3220914304256439,0,1.368062973022461,-0.1960499286651611 +61,0.3068521320819855,0,1.358895778656006,-0.1924089789390564 +62,0.2907502949237823,0,1.346903800964355,-0.1882941424846649 +63,0.2744304537773132,0,1.331121921539307,-0.1837004572153091 +64,0.2584235966205597,0,1.310776948928833,-0.1786046028137207 +65,0.2429844737052917,0,1.285597205162048,-0.1729784458875656 +66,0.2281570732593536,0,1.255771160125732,-0.1667979806661606 +67,0.2139164358377457,0,1.221695899963379,-0.1600474566221237 +68,0.2002473473548889,0,1.1837397813797,-0.1527157127857208 +69,0.1871641427278519,0,1.142100811004639,-0.1447899341583252 +70,0.1747052371501923,0,1.09678328037262,-0.1362612992525101 +71,0.1629266738891602,0,1.047718405723572,-0.1271519362926483 +72,0.1518765985965729,0,0.9949358701705933,-0.117534875869751 +73,0.141577422618866,0,0.9386658072471619,-0.107530914247036 +74,0.1320843696594238,0,0.8795102834701538,-0.09732840210199356 +75,0.1237374395132065,0,0.8187780976295471,-0.08729247003793716 +76,0.1174072623252869,0,0.7588325142860413,-0.07815747708082199 +77,0.1134999990463257,0,0.7017843127250671,-0.07077475637197495 +78,0.1101558953523636,0,0.6479030847549438,-0.06509362906217575 +79,0.1047242656350136,0,0.5995091795921326,-0.06054231524467468 +80,0.09754469990730286,0,0.5540216565132141,-0.05616656690835953 +81,0.09014390408992767,0,0.5056756138801575,-0.05082424357533455 +82,0.08190284669399261,0,0.4574964344501495,-0.04463037103414536 +83,0.0715939998626709,0,0.4133981466293335,-0.03731479123234749 +84,0.05570856481790543,0,0.4014306664466858,-0.0264512300491333 +85,0.03720355778932571,0,0.4424437284469604,-0.01031459588557482 +86,0.02761193737387657,0,0.3994303345680237,0.004538750741630793 +87,0.02290437184274197,0,0.2878314256668091,0.01668777316808701 +88,0.0204169936478138,0,0.1657382994890213,0.02511267736554146 +89,0.01927226781845093,0,0.0491577535867691,0.02934543415904045 +90,0.01879209093749523,0,-0.06097403913736343,0.03048311546444893 +91,0.01845607347786427,0,-0.1692066639661789,0.03001091815531254 +92,0.01804544404149055,0,-0.278869241476059,0.02920622751116753 +93,0.0179405827075243,0,-0.3853760659694672,0.02926731109619141 +94,0.0192293543368578,0,-0.4745528697967529,0.03145003691315651 +95,0.02331474237143993,0,-0.5316057205200195,0.03580635786056519 +96,0.03137851133942604,0,-0.5538657307624817,0.04076693207025528 +97,0.04369072243571281,0,-0.5541848540306091,0.04642762988805771 +98,0.05875423178076744,0,-0.5555460453033447,0.0556318573653698 +99,0.07316093146800995,0,-0.5813071131706238,0.06878454983234406 +100,0.08230022341012955,0,-0.6303436756134033,0.08258706331253052 +101,0.09043433517217636,0,-0.6749296188354492,0.09566245973110199 +102,0.1003240346908569,0,-0.7044852375984192,0.1078653112053871 +103,0.1152126789093018,0,-0.7187604904174805,0.1192232742905617 +104,0.1289408653974533,0,-0.7279477119445801,0.1291720271110535 +105,0.1356628239154816,0,-0.7519468665122986,0.1407965570688248 +106,0.1481938511133194,0,-0.8047884702682495,0.1605513989925385 +107,0.167861670255661,0,-0.8531609773635864,0.1821085065603256 +108,0.1870529651641846,0,-0.8851014375686646,0.2011501789093018 +109,0.2016255259513855,0,-0.9074245691299438,0.2170754373073578 +110,0.2104859799146652,0,-0.9283663630485535,0.2298994958400726 +111,0.2153202593326569,0,-0.9511614441871643,0.2399394512176514 +112,0.2184396088123322,0,-0.9745018482208252,0.24790158867836 +113,0.2210806459188461,0,-0.9963420629501343,0.2545666098594666 +114,0.2235876023769379,0,-1.015744686126709,0.2604505717754364 +115,0.2259895950555801,0,-1.032588481903076,0.2657936215400696 +116,0.2282721996307373,0,-1.046974062919617,0.2706932425498962 +117,0.2304360270500183,0,-1.0589679479599,0.2751928269863129 +118,0.2324870526790619,0,-1.06863808631897,0.2793216109275818 +119,0.2344188839197159,0,-1.076102733612061,0.283097118139267 +120,0.2362103015184402,0,-1.081557512283325,0.2865298986434937 +121,0.2378302663564682,0,-1.085233688354492,0.2896212637424469 +122,0.2392474114894867,0,-1.087372422218323,0.2923679351806641 +123,0.240434005856514,0,-1.088184475898743,0.2947639524936676 +124,0.2413677871227264,0,-1.08783757686615,0.296801745891571 +125,0.2420352697372437,0,-1.086467862129211,0.2984763979911804 +126,0.2424269467592239,0,-1.084161520004272,0.2997822165489197 +127,0.2425390332937241,0,-1.080980539321899,0.3007157444953918 +128,0.2423729002475739,0,-1.076961278915405,0.3012747764587402 +129,0.2419330924749374,0,-1.072123527526855,0.3014573156833649 +130,0.2412257939577103,0,-1.066474437713623,0.3012632727622986 +131,0.2402606010437012,0,-1.060019254684448,0.3006927371025085 +132,0.2390477955341339,0,-1.052751779556274,0.2997461259365082 +133,0.2376006841659546,0,-1.044671297073364,0.2984241843223572 +134,0.2359304577112198,0,-1.035770416259766,0.2967280447483063 +135,0.2340485602617264,0,-1.026042699813843,0.2946584820747375 +136,0.2319683730602264,0,-1.015483140945435,0.2922166287899017 +137,0.2296990752220154,0,-1.004084587097168,0.2894041538238525 +138,0.2272520214319229,0,-0.9918360114097595,0.2862221300601959 +139,0.2246373891830444,0,-0.9787298440933228,0.2826730310916901 +140,0.2218629717826843,0,-0.964749813079834,0.2787601351737976 +141,0.218936026096344,0,-0.9498741626739502,0.274487167596817 +142,0.215864434838295,0,-0.9340817928314209,0.2698609232902527 +143,0.2126523852348328,0,-0.9173343777656555,0.2648907601833344 +144,0.2093060612678528,0,-0.899591326713562,0.2595884501934052 +145,0.2058283388614655,0,-0.8807958960533142,0.2539713382720947 +146,0.2022222429513931,0,-0.8608790636062622,0.2480605095624924 +147,0.1984899491071701,0,-0.839754581451416,0.2418821752071381 +148,0.1946339160203934,0,-0.8173198699951172,0.2354687005281448 +149,0.1906556338071823,0,-0.7934607863426208,0.2288572788238525 +150,0.1865567266941071,0,-0.7680497169494629,0.2220894992351532 +151,0.1823371052742004,0,-0.7409617900848389,0.2152118235826492 +152,0.1779965311288834,0,-0.7120779752731323,0.2082737684249878 +153,0.1735299229621887,0,-0.681287944316864,0.2013264149427414 +154,0.1689280122518539,0,-0.6484900116920471,0.1944211721420288 +155,0.1641786843538284,0,-0.6135565042495728,0.1876024007797241 +156,0.1592797189950943,0,-0.5763187408447266,0.1809002608060837 +157,0.154265284538269,0,-0.5365583896636963,0.1743067651987076 +158,0.1492530256509781,0,-0.4940810203552246,0.1677350103855133 +159,0.1444874405860901,0,-0.4488799273967743,0.1609421819448471 +160,0.1402924656867981,0,-0.4010775983333588,0.1533894240856171 +161,0.1367661952972412,0,-0.3496349453926086,0.1439519673585892 +162,0.1334992051124573,0,-0.2887864112854004,0.1304891407489777 +163,0.1316444128751755,0,-0.2126134932041168,0.111711323261261 +164,0.135204017162323,0,-0.1600998044013977,0.09754612296819687 +165,0.1315315663814545,0,-0.1471028327941895,0.09121444076299667 +166,0.1161090508103371,0,-0.1138473153114319,0.07993349432945251 +167,0.1013432219624519,0,-0.06604409217834473,0.06820844858884811 +168,0.08940356969833374,0,-0.03789946436882019,0.06225677207112312 +169,0.0808032751083374,0,-0.01262082159519196,0.05579835176467896 +170,0.07472402602434158,0,0.01933044195175171,0.04741435497999191 +171,0.07016998529434204,0,0.0411912277340889,0.04099583253264427 +172,0.06668484956026077,0,0.04540406167507172,0.03813917562365532 +173,0.06399770826101303,0,0.03257265686988831,0.03852386027574539 +174,0.06166936084628105,0,0.007035531103610992,0.04068911820650101 +175,0.05841127038002014,0,-0.02466703951358795,0.04140634834766388 +176,0.05153867229819298,0,-0.05277589336037636,0.03639983385801315 +177,0.0395493321120739,0,-0.04735536873340607,0.02463111840188503 +178,0.03519744798541069,0,-0.0257868766784668,0.01176344137638807 +179,0.03628416731953621,0,-0.06498916447162628,0.003464818000793457 +180,0.03702103719115257,0,-0.1098275631666183,-0.002108031418174505 diff --git a/data/ram_air_kite/polars_neuralfoil/15.csv b/data/ram_air_kite/polars_neuralfoil/15.csv new file mode 100644 index 00000000..da1b65f3 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/15.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03237342089414597,0,0.007231846451759338,0.002043277025222778 +-179,0.03756166994571686,0,-0.03517612814903259,-0.001041522598825395 +-178,0.0439203642308712,0,-0.08810568600893021,-0.00288963015191257 +-177,0.04825133457779884,0,-0.1308912336826324,-0.003045079065486789 +-176,0.05137374997138977,0,-0.1603290736675262,-0.002939647529274225 +-175,0.0539541058242321,0,-0.1780850887298584,-0.003908815793693066 +-174,0.05644286051392555,0,-0.1879046857357025,-0.006055149249732494 +-173,0.05912639945745468,0,-0.1925197243690491,-0.009012430906295776 +-172,0.06231671571731567,0,-0.1957621574401855,-0.01217964105308056 +-171,0.06635137647390366,0,-0.2077061533927917,-0.01410447247326374 +-170,0.07160893827676773,0,-0.2329710423946381,-0.01433753408491611 +-169,0.07865593582391739,0,-0.2512148320674896,-0.01621368154883385 +-168,0.08800306171178818,0,-0.2380159795284271,-0.02326704561710358 +-167,0.0996352881193161,0,-0.1930071413516998,-0.03546009212732315 +-166,0.1116353794932365,0,-0.1402969062328339,-0.04900922253727913 +-165,0.119228407740593,0,-0.09758245944976807,-0.06060828641057014 +-164,0.1189613565802574,0,-0.05735078454017639,-0.07116081565618515 +-163,0.1140469387173653,0,-0.0004346072673797607,-0.0837273970246315 +-162,0.1116170138120651,0,0.07285201549530029,-0.09834985435009003 +-161,0.1138642802834511,0,0.1463126540184021,-0.1118243709206581 +-160,0.1190343871712685,0,0.2110784649848938,-0.1224147230386734 +-159,0.1255528628826141,0,0.2676068544387817,-0.1306933909654617 +-158,0.1326748877763748,0,0.3185513913631439,-0.1377568542957306 +-157,0.1400541216135025,0,0.36578768491745,-0.144376128911972 +-156,0.1474906504154205,0,0.4103100001811981,-0.1509500294923782 +-155,0.154845654964447,0,0.4526068568229675,-0.1576409786939621 +-154,0.1620171517133713,0,0.4929100871086121,-0.1644859611988068 +-153,0.1689278483390808,0,0.5313182473182678,-0.1714626401662827 +-152,0.1755212396383286,0,0.5678744912147522,-0.1785223484039307 +-151,0.1817586272954941,0,0.6026070117950439,-0.1856083571910858 +-150,0.187616229057312,0,0.6355602741241455,-0.1926654577255249 +-149,0.1930840462446213,0,0.6668020486831665,-0.1996425837278366 +-148,0.1981628835201263,0,0.6964224576950073,-0.206495001912117 +-147,0.202859565615654,0,0.7245224714279175,-0.2131844460964203 +-146,0.2071866244077682,0,0.7511972188949585,-0.2196764647960663 +-145,0.2111593186855316,0,0.7765341997146606,-0.2259408682584763 +-144,0.2147938758134842,0,0.8006001710891724,-0.2319505959749222 +-143,0.2181091010570526,0,0.8234491348266602,-0.2376813888549805 +-142,0.22111976146698,0,0.8451094031333923,-0.2431111633777618 +-141,0.2238430827856064,0,0.8656073212623596,-0.2482211589813232 +-140,0.2262923866510391,0,0.8849486112594604,-0.2529933154582977 +-139,0.2284819930791855,0,0.9031322002410889,-0.2574129700660706 +-138,0.230422168970108,0,0.9201547503471375,-0.2614664435386658 +-137,0.2321221828460693,0,0.9360048770904541,-0.2651411890983582 +-136,0.2335900515317917,0,0.9506688117980957,-0.268426775932312 +-135,0.2348310351371765,0,0.9641296863555908,-0.2713130414485931 +-134,0.2358499318361282,0,0.9763738512992859,-0.2737927436828613 +-133,0.2366501539945602,0,0.9873840808868408,-0.2758581340312958 +-132,0.2372339963912964,0,0.9971364736557007,-0.2775025963783264 +-131,0.2376035153865814,0,1.005612969398499,-0.2787209153175354 +-130,0.2377613931894302,0,1.01278817653656,-0.2795090079307556 +-129,0.2377090156078339,0,1.01863169670105,-0.2798632085323334 +-128,0.2374492436647415,0,1.023100733757019,-0.2797797620296478 +-127,0.2369854897260666,0,1.026152372360229,-0.27925705909729 +-126,0.2363221794366837,0,1.027718544006348,-0.2782916724681854 +-125,0.235464334487915,0,1.027716994285583,-0.2768815755844116 +-124,0.2344208359718323,0,1.026047945022583,-0.2750233113765717 +-123,0.2331983596086502,0,1.022580027580261,-0.2727121710777283 +-122,0.2318078726530075,0,1.01716136932373,-0.2699421048164368 +-121,0.2302559912204742,0,1.009607672691345,-0.2667032480239868 +-120,0.2285490036010742,0,0.9997217655181885,-0.2629827558994293 +-119,0.2266819924116135,0,0.9872860908508301,-0.2587610483169556 +-118,0.2246370166540146,0,0.9720911383628845,-0.2540138363838196 +-117,0.2223710417747498,0,0.9539370536804199,-0.2487096786499023 +-116,0.2198100537061691,0,0.9326516389846802,-0.2428122758865356 +-115,0.2168391942977905,0,0.9080736637115479,-0.2362823933362961 +-114,0.2133024036884308,0,0.8800421357154846,-0.2290784120559692 +-113,0.2090121954679489,0,0.8483922481536865,-0.2211522608995438 +-112,0.2037699669599533,0,0.8130146265029907,-0.2124197483062744 +-111,0.1973987519741058,0,0.7740791440010071,-0.2026906311511993 +-110,0.1897327601909637,0,0.7324709892272949,-0.1915750801563263 +-109,0.1805159747600555,0,0.6900990605354309,-0.1785034835338593 +-108,0.169532984495163,0,0.6493803262710571,-0.1630713492631912 +-107,0.1576654314994812,0,0.612082839012146,-0.1456466615200043 +-106,0.1473914533853531,0,0.5803089141845703,-0.1278972327709198 +-105,0.139981672167778,0,0.5569201707839966,-0.1121919751167297 +-104,0.1331091523170471,0,0.5404248237609863,-0.099469855427742 +-103,0.1236261501908302,0,0.5262836217880249,-0.08881031721830368 +-102,0.1115671247243881,0,0.510811448097229,-0.07891181111335754 +-101,0.09985935688018799,0,0.4889725148677826,-0.06871379911899567 +-100,0.09001175314188004,0,0.4570896625518799,-0.05768781900405884 +-99,0.08184685558080673,0,0.415395587682724,-0.04602709785103798 +-98,0.07474098354578018,0,0.365359365940094,-0.03436043113470078 +-97,0.06627649813890457,0,0.3146113157272339,-0.02309712953865528 +-96,0.05377146974205971,0,0.2841082513332367,-0.01246192120015621 +-95,0.03990131989121437,0,0.2786853015422821,-0.003272229339927435 +-94,0.02842147462069988,0,0.2693249881267548,0.005552953574806452 +-93,0.02090045623481274,0,0.2193934917449951,0.01684700883924961 +-92,0.01740107499063015,0,0.130173072218895,0.02642666175961494 +-91,0.01659383811056614,0,0.02500183880329132,0.02976706065237522 +-90,0.01669408194720745,0,-0.08683851361274719,0.02950190007686615 +-89,0.01671348512172699,0,-0.203702911734581,0.02872626855969429 +-88,0.01653805375099182,0,-0.3261315524578094,0.02876443043351173 +-87,0.01644139364361763,0,-0.4537732601165771,0.03026324510574341 +-86,0.01696167513728142,0,-0.580510675907135,0.03384225443005562 +-85,0.01907400600612164,0,-0.6909248828887939,0.03967039659619331 +-84,0.02394562587141991,0,-0.7666671276092529,0.0460127666592598 +-83,0.03226388990879059,0,-0.8056910037994385,0.05080202221870422 +-82,0.04405969008803368,0,-0.8235816955566406,0.05445226281881332 +-81,0.05838413164019585,0,-0.8377976417541504,0.05856987088918686 +-80,0.07301221042871475,0,-0.8597716689109802,0.06405293941497803 +-79,0.08537907153367996,0,-0.8904065489768982,0.07034789025783539 +-78,0.09688261151313782,0,-0.9286453127861023,0.07719091325998306 +-77,0.1059989705681801,0,-0.978628396987915,0.08364381641149521 +-76,0.1096684783697128,0,-1.037712931632996,0.08994106203317642 +-75,0.1172430589795113,0,-1.099128007888794,0.1000604256987572 +-74,0.1278074532747269,0,-1.154772877693176,0.1109922304749489 +-73,0.1396944522857666,0,-1.202534914016724,0.1212995275855064 +-72,0.1526128351688385,0,-1.242835521697998,0.1309257000684738 +-71,0.1666913032531738,0,-1.275347948074341,0.1401835083961487 +-70,0.1825018972158432,0,-1.29826033115387,0.1496291607618332 +-69,0.2006586343050003,0,-1.310000896453857,0.159826248884201 +-68,0.220678985118866,0,-1.312596201896667,0.1708576679229736 +-67,0.2408616691827774,0,-1.311573386192322,0.1821717321872711 +-66,0.2602722346782684,0,-1.311304807662964,0.1930894255638123 +-65,0.2793810963630676,0,-1.313184499740601,0.2032060325145721 +-64,0.2985835671424866,0,-1.31742787361145,0.2123439311981201 +-63,0.3175080716609955,0,-1.324051737785339,0.2204294204711914 +-62,0.3353846073150635,0,-1.332822918891907,0.227430671453476 +-61,0.351558655500412,0,-1.343198299407959,0.2333453595638275 +-60,0.3657383024692535,0,-1.354454278945923,0.238211989402771 +-59,0.3779570162296295,0,-1.365853905677795,0.2421113699674606 +-58,0.3884176313877106,0,-1.376779079437256,0.245149090886116 +-57,0.3973512947559357,0,-1.386790990829468,0.2474352866411209 +-56,0.4049602150917053,0,-1.395634412765503,0.2490699738264084 +-55,0.4114010632038116,0,-1.403200745582581,0.2501353025436401 +-54,0.4167874753475189,0,-1.409476637840271,0.2506954669952393 +-53,0.421197235584259,0,-1.414499044418335,0.2507963478565216 +-52,0.4246857762336731,0,-1.418321967124939,0.2504711449146271 +-51,0.4272880256175995,0,-1.421000480651855,0.2497417628765106 +-50,0.4290246069431305,0,-1.422581434249878,0.2486214935779572 +-49,0.4299097955226898,0,-1.423097848892212,0.2471164762973785 +-48,0.4299502968788147,0,-1.422576904296875,0.2452290952205658 +-47,0.4291496276855469,0,-1.421046733856201,0.2429577559232712 +-46,0.4275086224079132,0,-1.418532967567444,0.240297719836235 +-45,0.4250245988368988,0,-1.415072202682495,0.2372393161058426 +-44,0.4216859638690948,0,-1.410722494125366,0.2337677031755447 +-43,0.417471319437027,0,-1.405583143234253,0.2298576831817627 +-42,0.4123272597789764,0,-1.399818420410156,0.2254692763090134 +-41,0.4061537086963654,0,-1.393689870834351,0.2205385714769363 +-40,0.3987691700458527,0,-1.387607574462891,0.2149696797132492 +-39,0.3898791670799255,0,-1.382162928581238,0.2086302042007446 +-38,0.3791011869907379,0,-1.378148794174194,0.2013562619686127 +-37,0.3661163449287415,0,-1.376553297042847,0.1929743438959122 +-36,0.3509864807128906,0,-1.378519535064697,0.1833255290985107 +-35,0.3343123495578766,0,-1.385334968566895,0.172281876206398 +-34,0.316642552614212,0,-1.398490786552429,0.1597559005022049 +-33,0.2969582378864288,0,-1.419987082481384,0.1457623839378357 +-32,0.2729746401309967,0,-1.450659871101379,0.130711704492569 +-31,0.2468026280403137,0,-1.482834100723267,0.1159857660531998 +-30,0.2245548665523529,0,-1.502286195755005,0.1032923609018326 +-29,0.2076747566461563,0,-1.505702495574951,0.09280528873205185 +-28,0.1938899904489517,0,-1.500719666481018,0.08351419866085052 +-27,0.1817182302474976,0,-1.493348479270935,0.07471509277820587 +-26,0.1708311587572098,0,-1.484426379203796,0.06621072441339493 +-25,0.1604748666286469,0,-1.474410891532898,0.05793149024248123 +-24,0.1495396941900253,0,-1.466785669326782,0.0498628281056881 +-23,0.1378936618566513,0,-1.464028000831604,0.04198749363422394 +-22,0.1254994124174118,0,-1.467452883720398,0.03436211496591568 +-21,0.1117785051465034,0,-1.477654337882996,0.02734373509883881 +-20,0.09663332998752594,0,-1.49356472492218,0.02120774425566196 +-19,0.08050455152988434,0,-1.5157071352005,0.0158416386693716 +-18,0.06451947242021561,0,-1.541547298431396,0.01141984760761261 +-17,0.0505068302154541,0,-1.559264898300171,0.008670106530189514 +-16,0.03949869051575661,0,-1.558232545852661,0.008023465052247047 +-15,0.03143704682588577,0,-1.537007212638855,0.009196820668876171 +-14,0.02556805871427059,0,-1.498561501502991,0.01137044467031956 +-13,0.02134093642234802,0,-1.44600510597229,0.01456254161894321 +-12,0.01829954050481319,0,-1.383620142936707,0.01925849355757236 +-11,0.01600802689790726,0,-1.314633131027222,0.02527483180165291 +-10,0.01437896862626076,0,-1.233286499977112,0.03039228916168213 +-9,0.01354295294731855,0,-1.143193125724792,0.03535142540931702 +-8,0.01267062779515982,0,-1.045514702796936,0.03798219561576843 +-7,0.01176089700311422,0,-0.9398441314697266,0.03994022682309151 +-6,0.01094435807317495,0,-0.8300942182540894,0.0414375439286232 +-5,0.01029739063233137,0,-0.7175527811050415,0.04248690605163574 +-4,0.009852167218923569,0,-0.6024971604347229,0.04320469498634338 +-3,0.009558851830661297,0,-0.4858987033367157,0.04370437934994698 +-2,0.009320112876594067,0,-0.3688415288925171,0.04399425908923149 +-1,0.009083238430321217,0,-0.2515253126621246,0.04410102963447571 +0,0.008883273229002953,0,-0.1336452811956406,0.04418418556451797 +1,0.008757907897233963,0,-0.01496553421020508,0.04425676912069321 +2,0.008744862861931324,0,0.1043922156095505,0.04426459223031998 +3,0.00892394594848156,0,0.2229897379875183,0.04424552246928215 +4,0.009308241307735443,0,0.3403170704841614,0.04426195099949837 +5,0.009869028814136982,0,0.4571318626403809,0.04428397491574287 +6,0.01056803856045008,0,0.5727400779724121,0.0443442091345787 +7,0.01131937094032764,0,0.6860334873199463,0.04466796666383743 +8,0.01211333554238081,0,0.7978696823120117,0.04516803100705147 +9,0.01299970969557762,0,0.9069635272026062,0.04610692337155342 +10,0.01401880104094744,0,1.009366273880005,0.04833728820085526 +11,0.01528593897819519,0,1.13050389289856,0.04584991186857224 +12,0.01668157428503036,0,1.241696953773499,0.04420239850878716 +13,0.01873819343745708,0,1.306999325752258,0.04961904138326645 +14,0.02344927750527859,0,1.348254442214966,0.05210522562265396 +15,0.03273265436291695,0,1.366398334503174,0.04810588806867599 +16,0.04630433022975922,0,1.35657787322998,0.04170341417193413 +17,0.06201904639601707,0,1.333278894424438,0.0353742241859436 +18,0.07767974585294724,0,1.312834024429321,0.02956116758286953 +19,0.0925634577870369,0,1.29952335357666,0.02377807535231113 +20,0.1065366342663765,0,1.293320775032043,0.01754632592201233 +21,0.119621105492115,0,1.292953252792358,0.01067965663969517 +22,0.1319111287593842,0,1.296282291412354,0.003006762359291315 +23,0.1428235173225403,0,1.30472195148468,-0.00543258199468255 +24,0.1519258916378021,0,1.320176720619202,-0.01408927422016859 +25,0.1610669940710068,0,1.335070490837097,-0.02291158214211464 +26,0.1726096272468567,0,1.340020775794983,-0.03283170238137245 +27,0.1900607794523239,0,1.322587728500366,-0.04557258263230324 +28,0.2161662429571152,0,1.28052806854248,-0.06138475984334946 +29,0.2465339154005051,0,1.23318088054657,-0.07812640070915222 +30,0.2733502984046936,0,1.198898553848267,-0.09388937801122665 +31,0.2943991422653198,0,1.180818796157837,-0.1081391423940659 +32,0.3117215037345886,0,1.175047039985657,-0.120912529528141 +33,0.3269206881523132,0,1.177648305892944,-0.1322774887084961 +34,0.3402667641639709,0,1.185528755187988,-0.142323762178421 +35,0.3517208993434906,0,1.196342468261719,-0.1511834859848022 +36,0.3615172207355499,0,1.208603382110596,-0.1590129435062408 +37,0.3700390160083771,0,1.221404910087585,-0.1659838259220123 +38,0.3775957524776459,0,1.234110593795776,-0.1722672879695892 +39,0.384363055229187,0,1.246255159378052,-0.1779992878437042 +40,0.3904256820678711,0,1.257517337799072,-0.1832719743251801 +41,0.3958132863044739,0,1.267708539962769,-0.1881398111581802 +42,0.4005334377288818,0,1.276723146438599,-0.1926323771476746 +43,0.4045811593532562,0,1.284515380859375,-0.1967647522687912 +44,0.4079508483409882,0,1.291070461273193,-0.2005455940961838 +45,0.4106317162513733,0,1.296387910842896,-0.2039791345596313 +46,0.4126187264919281,0,1.300475835800171,-0.2070695161819458 +47,0.4139068126678467,0,1.303340911865234,-0.2098183184862137 +48,0.4144914448261261,0,1.304987668991089,-0.2122268676757812 +49,0.4143672287464142,0,1.305415391921997,-0.2142944782972336 +50,0.4135286509990692,0,1.30460786819458,-0.2160185128450394 +51,0.4119642674922943,0,1.302534103393555,-0.2173923254013062 +52,0.4096561968326569,0,1.299139022827148,-0.2184054553508759 +53,0.4065739810466766,0,1.294341087341309,-0.2190419733524323 +54,0.4026715457439423,0,1.288028478622437,-0.2192789614200592 +55,0.3978904187679291,0,1.280061483383179,-0.2190895080566406 +56,0.3921516239643097,0,1.270290613174438,-0.2184420078992844 +57,0.3853732347488403,0,1.258565664291382,-0.217303678393364 +58,0.3774701952934265,0,1.244766473770142,-0.2156401127576828 +59,0.3683772683143616,0,1.228807687759399,-0.2134078443050385 +60,0.3580589592456818,0,1.210651874542236,-0.2105474919080734 +61,0.3465130627155304,0,1.190331697463989,-0.2069661170244217 +62,0.3337582945823669,0,1.167979717254639,-0.2025317847728729 +63,0.3198025226593018,0,1.143903493881226,-0.1970835477113724 +64,0.3046277761459351,0,1.118657827377319,-0.1904686242341995 +65,0.288241982460022,0,1.093114852905273,-0.1825923770666122 +66,0.270812064409256,0,1.068408846855164,-0.1734502613544464 +67,0.2527400851249695,0,1.045627355575562,-0.1631271541118622 +68,0.2344903647899628,0,1.025510668754578,-0.1517570465803146 +69,0.2161913365125656,0,1.008627891540527,-0.1394774615764618 +70,0.1974020451307297,0,0.9957051277160645,-0.1264321506023407 +71,0.1778067201375961,0,0.9864283800125122,-0.1129243597388268 +72,0.1586135178804398,0,0.9763377904891968,-0.09965229779481888 +73,0.14190274477005,0,0.9579064846038818,-0.08746740221977234 +74,0.1284627318382263,0,0.9278807640075684,-0.07666467875242233 +75,0.1181600168347359,0,0.8896535038948059,-0.06711051613092422 +76,0.1110385432839394,0,0.8479117751121521,-0.05902625992894173 +77,0.1060274615883827,0,0.8029295206069946,-0.05241184681653976 +78,0.1006665825843811,0,0.7539651393890381,-0.0464993380010128 +79,0.09362174570560455,0,0.7020546197891235,-0.04055143147706985 +80,0.08524440228939056,0,0.6450159549713135,-0.03327732533216476 +81,0.07467882335186005,0,0.5890800356864929,-0.02463989518582821 +82,0.06223242729902267,0,0.54139244556427,-0.01594492234289646 +83,0.04953437671065331,0,0.5013875961303711,-0.00838024914264679 +84,0.03810601681470871,0,0.4631610512733459,-0.00192134384997189 +85,0.02891224250197411,0,0.4157460331916809,0.004998698830604553 +86,0.02225487120449543,0,0.3484756946563721,0.01369641441851854 +87,0.01818054169416428,0,0.2575218081474304,0.02262849174439907 +88,0.01651311293244362,0,0.1470657885074615,0.02843567170202732 +89,0.01638445816934109,0,0.02898472547531128,0.03016756102442741 +90,0.01669408194720745,0,-0.08683851361274719,0.02950190007686615 +91,0.01682704500854015,0,-0.199092835187912,0.02820903062820435 +92,0.01673696376383305,0,-0.3097343444824219,0.02758060023188591 +93,0.01688311249017715,0,-0.4164524674415588,0.02881267294287682 +94,0.0182898323982954,0,-0.5093267560005188,0.03322761505842209 +95,0.02255547046661377,0,-0.571144700050354,0.04045479744672775 +96,0.03138089552521706,0,-0.5897977352142334,0.04751848801970482 +97,0.04506280645728111,0,-0.5814494490623474,0.05390455201268196 +98,0.06109971925616264,0,-0.5800933241844177,0.06238129734992981 +99,0.07530003786087036,0,-0.6079837083816528,0.07357469946146011 +100,0.08444163203239441,0,-0.6580211520195007,0.08557111024856567 +101,0.09176362305879593,0,-0.7040223479270935,0.09679440408945084 +102,0.1008820086717606,0,-0.7333775758743286,0.1068586558103561 +103,0.1151867285370827,0,-0.7485383749008179,0.1166116446256638 +104,0.1267499029636383,0,-0.762277364730835,0.1262786686420441 +105,0.1325266808271408,0,-0.7943227291107178,0.1394308358430862 +106,0.1453454345464706,0,-0.8480578064918518,0.1602415293455124 +107,0.1645366102457047,0,-0.8939534425735474,0.1823580712080002 +108,0.1844941824674606,0,-0.9238662719726562,0.2023863792419434 +109,0.2013113349676132,0,-0.9438817501068115,0.2194319218397141 +110,0.2125159949064255,0,-0.9618215560913086,0.2332063615322113 +111,0.2186953127384186,0,-0.9816749691963196,0.243863970041275 +112,0.2222543209791183,0,-1.002732872962952,0.2520252168178558 +113,0.2249404042959213,0,-1.022892236709595,0.2585335075855255 +114,0.2273986786603928,0,-1.040939927101135,0.2640573978424072 +115,0.2297609150409698,0,-1.056602120399475,0.2689673602581024 +116,0.2320269495248795,0,-1.069971919059753,0.2734309136867523 +117,0.2341848760843277,0,-1.081180691719055,0.2775218486785889 +118,0.2362283915281296,0,-1.090321779251099,0.2812744975090027 +119,0.2381506413221359,0,-1.097492098808289,0.2847070395946503 +120,0.2399366497993469,0,-1.102816820144653,0.2878267168998718 +121,0.2415676712989807,0,-1.106451272964478,0.2906335890293121 +122,0.2430224865674973,0,-1.108568429946899,0.2931225895881653 +123,0.2442785203456879,0,-1.109335660934448,0.2952868938446045 +124,0.2453181594610214,0,-1.108902812004089,0.2971185445785522 +125,0.2461271584033966,0,-1.107392549514771,0.2986096739768982 +126,0.2466929703950882,0,-1.104898571968079,0.2997535467147827 +127,0.2470091283321381,0,-1.101490497589111,0.300544798374176 +128,0.2470700889825821,0,-1.097214102745056,0.3009788393974304 +129,0.2468735426664352,0,-1.092097282409668,0.3010517954826355 +130,0.2464187443256378,0,-1.086156487464905,0.3007613718509674 +131,0.2457083612680435,0,-1.079399585723877,0.3001061677932739 +132,0.2447454184293747,0,-1.071826696395874,0.2990846037864685 +133,0.2435345202684402,0,-1.063435554504395,0.2976963818073273 +134,0.2420809715986252,0,-1.05422043800354,0.2959413528442383 +135,0.2403930127620697,0,-1.044175982475281,0.2938198447227478 +136,0.2384771704673767,0,-1.033290982246399,0.2913315892219543 +137,0.2363411635160446,0,-1.021561145782471,0.2884784340858459 +138,0.233991876244545,0,-1.008976221084595,0.285261332988739 +139,0.231438547372818,0,-0.9955258369445801,0.2816832959651947 +140,0.2286868095397949,0,-0.9811966419219971,0.2777479290962219 +141,0.2257433384656906,0,-0.9659740328788757,0.273459792137146 +142,0.2226153612136841,0,-0.9498436450958252,0.2688273191452026 +143,0.2193061113357544,0,-0.9327834844589233,0.2638610303401947 +144,0.2158203423023224,0,-0.9147621989250183,0.2585740089416504 +145,0.2121611088514328,0,-0.8957459926605225,0.2529847919940948 +146,0.2083316892385483,0,-0.8756870627403259,0.2471165210008621 +147,0.2043335735797882,0,-0.8545272350311279,0.2409978657960892 +148,0.2001684904098511,0,-0.83219313621521,0.2346637696027756 +149,0.1958378255367279,0,-0.80859375,0.228154331445694 +150,0.1913431286811829,0,-0.7836331129074097,0.2215179949998856 +151,0.1866854876279831,0,-0.7572078704833984,0.2148092091083527 +152,0.1818662136793137,0,-0.729225754737854,0.2080909758806229 +153,0.1768850088119507,0,-0.6996015310287476,0.2014326751232147 +154,0.1717432737350464,0,-0.6682674884796143,0.1949097365140915 +155,0.1664500832557678,0,-0.6351510286331177,0.188596099615097 +156,0.1610352843999863,0,-0.6001572608947754,0.1825449764728546 +157,0.1555797755718231,0,-0.5631603598594666,0.1767479330301285 +158,0.1502474993467331,0,-0.5240050554275513,0.1710535138845444 +159,0.1452778428792953,0,-0.4823656976222992,0.1650187075138092 +160,0.1408176124095917,0,-0.4370040893554688,0.1576708853244781 +161,0.1365235149860382,0,-0.3841990828514099,0.1472573578357697 +162,0.1316216588020325,0,-0.3178646564483643,0.1316984593868256 +163,0.1276805996894836,0,-0.241004079580307,0.1120891720056534 +164,0.1283951252698898,0,-0.1859038472175598,0.09739531576633453 +165,0.1240596249699593,0,-0.1576553583145142,0.08830177783966064 +166,0.1112172827124596,0,-0.1301341950893402,0.07824655622243881 +167,0.0980311781167984,0,-0.1013666838407516,0.06972940266132355 +168,0.08729580044746399,0,-0.07766920328140259,0.06524036079645157 +169,0.0794287696480751,0,-0.04348662495613098,0.05863837152719498 +170,0.07425735145807266,0,0.002366319298744202,0.04912681132555008 +171,0.07080761343240738,0,0.04169832170009613,0.04065389186143875 +172,0.06852968037128448,0,0.06750291585922241,0.03467098996043205 +173,0.06701037287712097,0,0.07928875833749771,0.03110208548605442 +174,0.06569387018680573,0,0.07580743730068207,0.02972424402832985 +175,0.06336481869220734,0,0.05327796190977097,0.02994322218000889 +176,0.05787133425474167,0,0.006598629057407379,0.03013808093965054 +177,0.04636073485016823,0,-0.05201973021030426,0.02790703810751438 +178,0.03653693571686745,0,-0.05329503864049911,0.02170534431934357 +179,0.03295592963695526,0,-0.01134616136550903,0.01069985330104828 +180,0.03237342089414597,0,0.007231846451759338,0.002043277025222778 diff --git a/data/ram_air_kite/polars_neuralfoil/16.csv b/data/ram_air_kite/polars_neuralfoil/16.csv new file mode 100644 index 00000000..786e8d2c --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/16.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03573644533753395,0,0.03077393770217896,0.005928537342697382 +-179,0.03518187627196312,0,0.02250367403030396,0.0007963686948642135 +-178,0.03951983898878098,0,-0.02187946438789368,-0.000332304829498753 +-177,0.04550983384251595,0,-0.06938652694225311,-0.0008643626933917403 +-176,0.05045399442315102,0,-0.1017105430364609,-0.001275277114473283 +-175,0.05472895503044128,0,-0.1183739677071571,-0.002326211426407099 +-174,0.05857988074421883,0,-0.124135322868824,-0.004098582081496716 +-173,0.06220037117600441,0,-0.1261659860610962,-0.006198838353157043 +-172,0.06596475839614868,0,-0.1299921721220016,-0.008664662018418312 +-171,0.0702885314822197,0,-0.1363468617200851,-0.01214383542537689 +-170,0.07531292736530304,0,-0.1410801410675049,-0.01729805208742619 +-169,0.08109816163778305,0,-0.1373091638088226,-0.02439163438975811 +-168,0.08817866444587708,0,-0.1207376569509506,-0.03330875560641289 +-167,0.09704906493425369,0,-0.09144499897956848,-0.04381759837269783 +-166,0.1074594631791115,0,-0.05681250989437103,-0.05558228492736816 +-165,0.1169934868812561,0,-0.03306198120117188,-0.06610472500324249 +-164,0.1215720325708389,0,-0.01883745193481445,-0.07362683862447739 +-163,0.1202093213796616,0,0.003534674644470215,-0.07985017448663712 +-162,0.1162518188357353,0,0.04598832130432129,-0.08748439699411392 +-161,0.113894984126091,0,0.1036167144775391,-0.09690843522548676 +-160,0.1145549267530441,0,0.1647666692733765,-0.1066764444112778 +-159,0.1176000908017159,0,0.2228447198867798,-0.1158123388886452 +-158,0.1221519559621811,0,0.2764487564563751,-0.1242613643407822 +-157,0.1276076138019562,0,0.3261113464832306,-0.1323057413101196 +-156,0.1335837692022324,0,0.3726257383823395,-0.1402033269405365 +-155,0.1398223340511322,0,0.4165936708450317,-0.1481058299541473 +-154,0.1461416184902191,0,0.4583796560764313,-0.1560721099376678 +-153,0.1524140387773514,0,0.4981608688831329,-0.1640976518392563 +-152,0.1585552096366882,0,0.5359969139099121,-0.1721400767564774 +-151,0.1645117104053497,0,0.5718855857849121,-0.1801373660564423 +-150,0.1702530086040497,0,0.6058101654052734,-0.188020259141922 +-149,0.1757663041353226,0,0.6377627849578857,-0.1957216858863831 +-148,0.1810472011566162,0,0.6677610278129578,-0.2031810730695724 +-147,0.1860970258712769,0,0.6958491802215576,-0.2103484123945236 +-146,0.1909210681915283,0,0.7220878601074219,-0.2171827852725983 +-145,0.1955226361751556,0,0.7465541362762451,-0.2236545532941818 +-144,0.1999065577983856,0,0.7693318724632263,-0.2297428101301193 +-143,0.2040751427412033,0,0.7905036211013794,-0.2354336529970169 +-142,0.2080306708812714,0,0.8101481199264526,-0.240719199180603 +-141,0.211772695183754,0,0.8283360600471497,-0.2455959767103195 +-140,0.2153008580207825,0,0.8451324701309204,-0.2500636279582977 +-139,0.2186111658811569,0,0.8605831861495972,-0.2541221976280212 +-138,0.2216995805501938,0,0.8747329711914062,-0.2577736973762512 +-137,0.2245602756738663,0,0.8876092433929443,-0.2610191106796265 +-136,0.2271857112646103,0,0.8992374539375305,-0.263859897851944 +-135,0.2295666486024857,0,0.9096312522888184,-0.2662968039512634 +-134,0.2316924035549164,0,0.9187995195388794,-0.2683287858963013 +-133,0.2335500121116638,0,0.926744818687439,-0.2699545621871948 +-132,0.2351271212100983,0,0.9334644079208374,-0.2711707055568695 +-131,0.2364070415496826,0,0.9389538764953613,-0.2719735503196716 +-130,0.2373746484518051,0,0.9432004690170288,-0.2723569869995117 +-129,0.2380129843950272,0,0.9461910128593445,-0.2723145186901093 +-128,0.2383062094449997,0,0.9478992819786072,-0.2718358039855957 +-127,0.2382414937019348,0,0.9482961297035217,-0.2709107995033264 +-126,0.2378070801496506,0,0.9473403692245483,-0.2695267498493195 +-125,0.2369970083236694,0,0.9449728727340698,-0.2676688730716705 +-124,0.2358106225728989,0,0.9411240816116333,-0.2653205096721649 +-123,0.2342521101236343,0,0.9356962442398071,-0.2624642848968506 +-122,0.2323299199342728,0,0.9285696744918823,-0.2590805292129517 +-121,0.2300548255443573,0,0.9195969104766846,-0.2551509737968445 +-120,0.2274373918771744,0,0.9085957407951355,-0.2506566047668457 +-119,0.2244846969842911,0,0.895350456237793,-0.245579719543457 +-118,0.2211968451738358,0,0.8796138763427734,-0.2399056404829025 +-117,0.2175615280866623,0,0.8611096143722534,-0.2336207181215286 +-116,0.2135531008243561,0,0.8395386934280396,-0.2267114222049713 +-115,0.2091321796178818,0,0.8146013021469116,-0.2191642820835114 +-114,0.2042470574378967,0,0.786001443862915,-0.2109594792127609 +-113,0.1988511681556702,0,0.7534516453742981,-0.2020674049854279 +-112,0.1929315477609634,0,0.7166637182235718,-0.1924454122781754 +-111,0.1865715831518173,0,0.6753522157669067,-0.1820356696844101 +-110,0.1800339818000793,0,0.6294208765029907,-0.1707603633403778 +-109,0.1738002896308899,0,0.5796787738800049,-0.158515602350235 +-108,0.1682671308517456,0,0.5294120907783508,-0.1452013403177261 +-107,0.1626981943845749,0,0.485939234495163,-0.1309044361114502 +-106,0.1547443568706512,0,0.4591586589813232,-0.1160104721784592 +-105,0.143514022231102,0,0.4545135200023651,-0.1008102893829346 +-104,0.1294838637113571,0,0.468200147151947,-0.08582563698291779 +-103,0.1125798001885414,0,0.4868392050266266,-0.07245470583438873 +-102,0.09815672039985657,0,0.4859580993652344,-0.06129879876971245 +-101,0.08851873874664307,0,0.4568985402584076,-0.05114895850419998 +-100,0.08221837878227234,0,0.4050504565238953,-0.04083622619509697 +-99,0.0773916020989418,0,0.3370911478996277,-0.03010720945894718 +-98,0.07172023504972458,0,0.2642554640769958,-0.01956232450902462 +-97,0.06329254060983658,0,0.2083104252815247,-0.01081221736967564 +-96,0.05031239241361618,0,0.1955852210521698,-0.005369582679122686 +-95,0.03316672891378403,0,0.2362796068191528,-0.001988148782402277 +-94,0.02117601595818996,0,0.2553415298461914,0.007363495416939259 +-93,0.01689313910901546,0,0.1784487664699554,0.02243682742118835 +-92,0.01641926914453506,0,0.0563109815120697,0.03043858334422112 +-91,0.01681511849164963,0,-0.06050474941730499,0.03123581409454346 +-90,0.01692837662994862,0,-0.1670446544885635,0.02993405982851982 +-89,0.01686282083392143,0,-0.2723658084869385,0.0292561762034893 +-88,0.01703528128564358,0,-0.380648672580719,0.03005831502377987 +-87,0.01780701987445354,0,-0.4893620014190674,0.03251586854457855 +-86,0.01953337900340557,0,-0.5917125940322876,0.03642240166664124 +-85,0.02262241579592228,0,-0.6798924207687378,0.0410480722784996 +-84,0.02742400392889977,0,-0.7495933771133423,0.04540774971246719 +-83,0.03416413813829422,0,-0.8024559020996094,0.0490180030465126 +-82,0.04309798777103424,0,-0.8429247140884399,0.0521736666560173 +-81,0.05440120026469231,0,-0.875394880771637,0.05567257851362228 +-80,0.06751757860183716,0,-0.9043213129043579,0.06039749830961227 +-79,0.08078530430793762,0,-0.9314529299736023,0.06642549484968185 +-78,0.09313111752271652,0,-0.957894504070282,0.07348427921533585 +-77,0.1066261008381844,0,-0.9909472465515137,0.08119139820337296 +-76,0.1152740344405174,0,-1.039945244789124,0.08854363858699799 +-75,0.1187732666730881,0,-1.095710635185242,0.09485343843698502 +-74,0.1253451406955719,0,-1.154044270515442,0.1040656343102455 +-73,0.134932816028595,0,-1.209529757499695,0.1147792711853981 +-72,0.1461497694253922,0,-1.258758902549744,0.1254181861877441 +-71,0.1585901528596878,0,-1.301269292831421,0.1354945451021194 +-70,0.1719979047775269,0,-1.337411642074585,0.1448541581630707 +-69,0.1861698031425476,0,-1.367667198181152,0.1535218358039856 +-68,0.201039656996727,0,-1.392269849777222,0.16165891289711 +-67,0.2167092114686966,0,-1.411030411720276,0.1695202589035034 +-66,0.2333087474107742,0,-1.423656225204468,0.1773714870214462 +-65,0.2506899833679199,0,-1.430474400520325,0.1853577792644501 +-64,0.2682416141033173,0,-1.432877063751221,0.1934091597795486 +-63,0.2851907014846802,0,-1.432835817337036,0.2012856304645538 +-62,0.3011239171028137,0,-1.431946992874146,0.2087105959653854 +-61,0.3160776793956757,0,-1.431077003479004,0.2154745757579803 +-60,0.3302022814750671,0,-1.430585861206055,0.2214525490999222 +-59,0.3435103893280029,0,-1.430623531341553,0.2265880107879639 +-58,0.3558798432350159,0,-1.431223630905151,0.2308715879917145 +-57,0.367142379283905,0,-1.432350039482117,0.2343256175518036 +-56,0.3771648705005646,0,-1.433909058570862,0.2369900047779083 +-55,0.3858781754970551,0,-1.435776710510254,0.2389164865016937 +-54,0.3932750225067139,0,-1.437809586524963,0.2401562929153442 +-53,0.3993829488754272,0,-1.43986701965332,0.2407598793506622 +-52,0.4042452275753021,0,-1.441815614700317,0.2407693415880203 +-51,0.4079013466835022,0,-1.443557024002075,0.2402184903621674 +-50,0.4103704988956451,0,-1.445014238357544,0.2391281127929688 +-49,0.411655992269516,0,-1.446159839630127,0.23751001060009 +-48,0.4117353856563568,0,-1.447004675865173,0.2353626042604446 +-47,0.4105649590492249,0,-1.447609186172485,0.2326734364032745 +-46,0.4080822765827179,0,-1.448091626167297,0.2294188737869263 +-45,0.4042163193225861,0,-1.448628664016724,0.2255649268627167 +-44,0.3989032506942749,0,-1.449463367462158,0.2210680544376373 +-43,0.3921155631542206,0,-1.450903654098511,0.2158778607845306 +-42,0.3838976323604584,0,-1.453320503234863,0.2099387347698212 +-41,0.3743818998336792,0,-1.457133293151855,0.2031932324171066 +-40,0.363756537437439,0,-1.462793588638306,0.1955885589122772 +-39,0.3521189391613007,0,-1.470794916152954,0.1870833188295364 +-38,0.3392369747161865,0,-1.481717109680176,0.1776615679264069 +-37,0.3244155645370483,0,-1.496196269989014,0.1673603653907776 +-36,0.3069809079170227,0,-1.514344692230225,0.1563349068164825 +-35,0.2874139845371246,0,-1.534497976303101,0.1449478566646576 +-34,0.2676397860050201,0,-1.552861571311951,0.1337433606386185 +-33,0.2496029883623123,0,-1.56555187702179,0.1231932193040848 +-32,0.2339484840631485,0,-1.571199893951416,0.1134207621216774 +-31,0.2202313393354416,0,-1.571239233016968,0.1042096614837646 +-30,0.2078677415847778,0,-1.567976236343384,0.09527409076690674 +-29,0.1967520266771317,0,-1.562484502792358,0.08647909015417099 +-28,0.1871560513973236,0,-1.55388331413269,0.07784426212310791 +-27,0.1788484156131744,0,-1.541340589523315,0.0694279670715332 +-26,0.170256495475769,0,-1.528685808181763,0.06124073266983032 +-25,0.1600645929574966,0,-1.521627187728882,0.0533355250954628 +-24,0.1484077721834183,0,-1.521389603614807,0.04575523734092712 +-23,0.1353672295808792,0,-1.528702735900879,0.03845738247036934 +-22,0.1207877472043037,0,-1.543192625045776,0.03159734606742859 +-21,0.1051337420940399,0,-1.561457633972168,0.02549505233764648 +-20,0.08923234045505524,0,-1.58130407333374,0.02029141411185265 +-19,0.07386554032564163,0,-1.60223650932312,0.01607911288738251 +-18,0.05998805537819862,0,-1.619644165039062,0.01324015576392412 +-17,0.04815142229199409,0,-1.625777721405029,0.01191482879221439 +-16,0.03867130354046822,0,-1.615282297134399,0.0120147317647934 +-15,0.03143821284174919,0,-1.5875563621521,0.01322002988308668 +-14,0.02590888924896717,0,-1.545557260513306,0.01515300292521715 +-13,0.02172833122313023,0,-1.492210865020752,0.01792044006288052 +-12,0.0186015497893095,0,-1.429519057273865,0.02159686014056206 +-11,0.01631030440330505,0,-1.356574535369873,0.02535621449351311 +-10,0.01499344874173403,0,-1.274793982505798,0.02935870364308357 +-9,0.0140692200511694,0,-1.188514232635498,0.03324044495820999 +-8,0.0131530836224556,0,-1.094244122505188,0.03594456240534782 +-7,0.01233285758644342,0,-0.9927516579627991,0.03813023120164871 +-6,0.01160820852965117,0,-0.8872799873352051,0.03975281864404678 +-5,0.01095979567617178,0,-0.7791968584060669,0.04098405689001083 +-4,0.01039989106357098,0,-0.6687618494033813,0.0419468991458416 +-3,0.00996164046227932,0,-0.5559535622596741,0.04268280789256096 +-2,0.009612645953893661,0,-0.4417147934436798,0.04325759410858154 +-1,0.009280635043978691,0,-0.3271791040897369,0.04375740140676498 +0,0.008983016945421696,0,-0.2120773792266846,0.04422672837972641 +1,0.008761562407016754,0,-0.09609413146972656,0.04459207132458687 +2,0.008616408333182335,0,0.02108557522296906,0.04479579254984856 +3,0.008515037596225739,0,0.1388223916292191,0.04487962648272514 +4,0.008451218716800213,0,0.2556999623775482,0.04502131789922714 +5,0.008574949577450752,0,0.3707922697067261,0.04550532624125481 +6,0.009407654404640198,0,0.4804918169975281,0.04680744931101799 +7,0.01109612174332142,0,0.5830414295196533,0.04824297502636909 +8,0.01254756469279528,0,0.6868976354598999,0.0495510995388031 +9,0.01376064494252205,0,0.7901147603988647,0.05103455856442451 +10,0.01510118972510099,0,0.8911356329917908,0.05276135355234146 +11,0.01670706272125244,0,0.983698308467865,0.05578303337097168 +12,0.01931455917656422,0,1.059008121490479,0.05886663123965263 +13,0.02479012869298458,0,1.123114585876465,0.05429915711283684 +14,0.03379378467798233,0,1.138329982757568,0.0505417212843895 +15,0.0454920120537281,0,1.132364511489868,0.04749339818954468 +16,0.05832013860344887,0,1.13352370262146,0.0428035669028759 +17,0.07049435377120972,0,1.142592906951904,0.03792450949549675 +18,0.08137043565511703,0,1.156125903129578,0.03341937810182571 +19,0.09118561446666718,0,1.172158241271973,0.02900702878832817 +20,0.100500114262104,0,1.189094424247742,0.02423624321818352 +21,0.1099518612027168,0,1.204961538314819,0.0188576877117157 +22,0.119926430284977,0,1.21891987323761,0.01282997149974108 +23,0.1302799135446548,0,1.231647253036499,0.006051194854080677 +24,0.1408103704452515,0,1.244329452514648,-0.00153101678006351 +25,0.1517587751150131,0,1.258070111274719,-0.009590637870132923 +26,0.1642338037490845,0,1.269831895828247,-0.01803987100720406 +27,0.1818688064813614,0,1.264176249504089,-0.02876967750489712 +28,0.2132444828748703,0,1.214563727378845,-0.04579732567071915 +29,0.2588874101638794,0,1.134009599685669,-0.06811541318893433 +30,0.2933380901813507,0,1.081703305244446,-0.08847855031490326 +31,0.312204509973526,0,1.06490683555603,-0.1043150201439857 +32,0.3250930309295654,0,1.06599223613739,-0.1166422590613365 +33,0.335363894701004,0,1.075486183166504,-0.126628190279007 +34,0.3443343043327332,0,1.088927388191223,-0.1350961178541183 +35,0.3525991141796112,0,1.103952169418335,-0.1425858736038208 +36,0.36033695936203,0,1.119171380996704,-0.1494273245334625 +37,0.3675715327262878,0,1.13380241394043,-0.1557951718568802 +38,0.3742931187152863,0,1.147460699081421,-0.1617663502693176 +39,0.3804820775985718,0,1.159977436065674,-0.16736800968647 +40,0.3861195743083954,0,1.171288967132568,-0.1726046055555344 +41,0.3911874890327454,0,1.181378602981567,-0.1774748265743256 +42,0.3956642150878906,0,1.190254330635071,-0.1819758862257004 +43,0.3995334506034851,0,1.197928667068481,-0.1861054301261902 +44,0.4027783870697021,0,1.204420804977417,-0.1898632496595383 +45,0.4053878784179688,0,1.209750890731812,-0.1932504028081894 +46,0.4073506891727448,0,1.21393084526062,-0.1962672173976898 +47,0.4086632430553436,0,1.216971635818481,-0.198915958404541 +48,0.4093221127986908,0,1.21887218952179,-0.201197624206543 +49,0.4093264043331146,0,1.219617366790771,-0.20311239361763 +50,0.4086730778217316,0,1.21917450428009,-0.2046584784984589 +51,0.4073575735092163,0,1.217488288879395,-0.2058320045471191 +52,0.4053618907928467,0,1.214471578598022,-0.2066226899623871 +53,0.4026581943035126,0,1.210016846656799,-0.2070182859897614 +54,0.3991987407207489,0,1.203983783721924,-0.2070011645555496 +55,0.3949196040630341,0,1.196214079856873,-0.2065503299236298 +56,0.3897399604320526,0,1.186540126800537,-0.2056427001953125 +57,0.3835678994655609,0,1.174790859222412,-0.2042547911405563 +58,0.3763196468353271,0,1.160787343978882,-0.2023608982563019 +59,0.3679350614547729,0,1.144331216812134,-0.1999280899763107 +60,0.358393669128418,0,1.125197887420654,-0.1969132721424103 +61,0.3477322161197662,0,1.103160619735718,-0.193262904882431 +62,0.3360366225242615,0,1.07807183265686,-0.1889157891273499 +63,0.3234213292598724,0,1.049983620643616,-0.1838023364543915 +64,0.3099695146083832,0,1.019309997558594,-0.1778391897678375 +65,0.2956562340259552,0,0.9869474172592163,-0.1709090918302536 +66,0.2802744507789612,0,0.9543216228485107,-0.1628591120243073 +67,0.26346755027771,0,0.9233391880989075,-0.1535274237394333 +68,0.2450362294912338,0,0.8963958621025085,-0.142781525850296 +69,0.2252721935510635,0,0.8765599131584167,-0.1305018961429596 +70,0.204140692949295,0,0.8682546615600586,-0.1165276169776917 +71,0.179810494184494,0,0.8771454095840454,-0.1008291095495224 +72,0.1537726372480392,0,0.8972876667976379,-0.08468856662511826 +73,0.1334151774644852,0,0.9024205803871155,-0.0709364116191864 +74,0.1206253468990326,0,0.8795326352119446,-0.06060972064733505 +75,0.1126702353358269,0,0.8373539447784424,-0.05265005305409431 +76,0.107175886631012,0,0.7856332659721375,-0.04615733772516251 +77,0.102189414203167,0,0.7291151881217957,-0.04055021330714226 +78,0.09622139483690262,0,0.6696593165397644,-0.03517481312155724 +79,0.08949314057826996,0,0.6042271256446838,-0.02902234718203545 +80,0.08204064518213272,0,0.5342488884925842,-0.02207517996430397 +81,0.07363102585077286,0,0.4663352370262146,-0.01523222960531712 +82,0.06394261866807938,0,0.4080656468868256,-0.009335744194686413 +83,0.05186700820922852,0,0.3721916079521179,-0.004980904050171375 +84,0.03642299026250839,0,0.3751314580440521,-0.001815030002035201 +85,0.02266105450689793,0,0.385989248752594,0.004584235139191151 +86,0.01647486537694931,0,0.3186018764972687,0.01858565583825111 +87,0.01530296821147203,0,0.1884928196668625,0.02992943488061428 +88,0.01592022739350796,0,0.05451574921607971,0.03320695832371712 +89,0.01661453396081924,0,-0.06249827146530151,0.03205360472202301 +90,0.01692837662994862,0,-0.1670446544885635,0.02993405982851982 +91,0.01709145493805408,0,-0.2660050988197327,0.02872713841497898 +92,0.01755589433014393,0,-0.3592744171619415,0.02918400429189205 +93,0.01881571300327778,0,-0.4415495693683624,0.03144359588623047 +94,0.02143042534589767,0,-0.5072157382965088,0.03527818992733955 +95,0.02614282444119453,0,-0.5532435774803162,0.04010703042149544 +96,0.03381983563303947,0,-0.5810978412628174,0.04548541083931923 +97,0.04479968920350075,0,-0.5987465381622314,0.05219007655978203 +98,0.05861828848719597,0,-0.6105309724807739,0.06187237054109573 +99,0.07338795810937881,0,-0.6234214305877686,0.07351569086313248 +100,0.08371579647064209,0,-0.6579254269599915,0.08441441506147385 +101,0.09133653342723846,0,-0.6994396448135376,0.09451659023761749 +102,0.09924686700105667,0,-0.732153594493866,0.103802464902401 +103,0.1105572432279587,0,-0.7564314007759094,0.1138699650764465 +104,0.1250245571136475,0,-0.7786586284637451,0.1250973045825958 +105,0.1338338255882263,0,-0.8060064911842346,0.1365561932325363 +106,0.1380276381969452,0,-0.8464431762695312,0.1499307602643967 +107,0.1489488333463669,0,-0.9047329425811768,0.1688474267721176 +108,0.1659651696681976,0,-0.9622809290885925,0.1890782862901688 +109,0.1838281005620956,0,-1.007220268249512,0.2076598405838013 +110,0.2000600844621658,0,-1.036980748176575,0.2242183238267899 +111,0.2130664587020874,0,-1.054536938667297,0.238773301243782 +112,0.2217781394720078,0,-1.065682291984558,0.2512470185756683 +113,0.2265158146619797,0,-1.075543284416199,0.2615492343902588 +114,0.2288203090429306,0,-1.08650279045105,0.2697510123252869 +115,0.2302656620740891,0,-1.098484873771667,0.2761960029602051 +116,0.2316740602254868,0,-1.110496640205383,0.2813955247402191 +117,0.2332309484481812,0,-1.121723413467407,0.2858019471168518 +118,0.2348720282316208,0,-1.131775259971619,0.2896960377693176 +119,0.2365005761384964,0,-1.140530943870544,0.2932085990905762 +120,0.2380533963441849,0,-1.147976636886597,0.2963852286338806 +121,0.2394987493753433,0,-1.154106616973877,0.2992337644100189 +122,0.2408237159252167,0,-1.158904314041138,0.3017471432685852 +123,0.2420220524072647,0,-1.162354230880737,0.3039168417453766 +124,0.2430909723043442,0,-1.164450883865356,0.3057331442832947 +125,0.2440230846405029,0,-1.165201425552368,0.3071873784065247 +126,0.2448115944862366,0,-1.164628624916077,0.3082714080810547 +127,0.2454438805580139,0,-1.16275942325592,0.3089781999588013 +128,0.2459095418453217,0,-1.159624099731445,0.3093013763427734 +129,0.2461960017681122,0,-1.155250668525696,0.3092356622219086 +130,0.2462910562753677,0,-1.149664759635925,0.3087775111198425 +131,0.2461838573217392,0,-1.142889142036438,0.3079238533973694 +132,0.2458635866641998,0,-1.134941697120667,0.3066741824150085 +133,0.245320737361908,0,-1.125838994979858,0.3050284087657928 +134,0.244548499584198,0,-1.115596175193787,0.3029887080192566 +135,0.2435384094715118,0,-1.104229688644409,0.3005589544773102 +136,0.2422846257686615,0,-1.09175431728363,0.2977436482906342 +137,0.2407818585634232,0,-1.078188061714172,0.2945501804351807 +138,0.2390241920948029,0,-1.063549637794495,0.2909875810146332 +139,0.2370071858167648,0,-1.047851920127869,0.2870654761791229 +140,0.2347268611192703,0,-1.031116724014282,0.2827966213226318 +141,0.2321792989969254,0,-1.013355851173401,0.2781943678855896 +142,0.2293602228164673,0,-0.9945836663246155,0.2732745409011841 +143,0.2262658476829529,0,-0.9748111963272095,0.2680552005767822 +144,0.2228928655385971,0,-0.9540471434593201,0.2625570297241211 +145,0.2192376255989075,0,-0.9322993755340576,0.2568030953407288 +146,0.2152967005968094,0,-0.9095697402954102,0.2508204877376556 +147,0.211068406701088,0,-0.8858601450920105,0.2446418106555939 +148,0.2065504789352417,0,-0.8611640930175781,0.2383040189743042 +149,0.2017465978860855,0,-0.8354644775390625,0.2318518161773682 +150,0.1966626346111298,0,-0.8087167739868164,0.2253350764513016 +151,0.1913169473409653,0,-0.7808581590652466,0.2188097685575485 +152,0.1857409030199051,0,-0.7517884969711304,0.2123291045427322 +153,0.1799875050783157,0,-0.7213801741600037,0.2059319019317627 +154,0.174143984913826,0,-0.6894943714141846,0.199619323015213 +155,0.1683416068553925,0,-0.6559725999832153,0.1933196932077408 +156,0.1627743244171143,0,-0.6205578446388245,0.186842605471611 +157,0.1576787382364273,0,-0.5826373696327209,0.179811030626297 +158,0.1532075107097626,0,-0.5406715869903564,0.1715561896562576 +159,0.1491352915763855,0,-0.4912025928497314,0.1610282212495804 +160,0.1446305811405182,0,-0.4281614422798157,0.1469685137271881 +161,0.139105811715126,0,-0.3463803827762604,0.1288454979658127 +162,0.1350157111883163,0,-0.2548760771751404,0.109450601041317 +163,0.1351280361413956,0,-0.1848771572113037,0.09577931463718414 +164,0.1314743459224701,0,-0.1420427262783051,0.08706750720739365 +165,0.1200080066919327,0,-0.1102966964244843,0.07880119979381561 +166,0.1058034226298332,0,-0.0770658552646637,0.07081674039363861 +167,0.09340734779834747,0,-0.03378057479858398,0.06391249597072601 +168,0.08366956561803818,0,0.006224244832992554,0.05787887051701546 +169,0.07731685787439346,0,0.0437852144241333,0.05010552331805229 +170,0.07326419651508331,0,0.07348242402076721,0.04264537245035172 +171,0.07063690572977066,0,0.09363722056150436,0.03666746243834496 +172,0.06909796595573425,0,0.1043030470609665,0.0323273278772831 +173,0.06844108551740646,0,0.1046441495418549,0.02969135902822018 +174,0.06829765439033508,0,0.09245602041482925,0.02881026640534401 +175,0.06749356538057327,0,0.06443300098180771,0.02907365933060646 +176,0.06356995552778244,0,0.01924668624997139,0.02845590375363827 +177,0.0539279468357563,0,-0.03236064314842224,0.02564653381705284 +178,0.04388387501239777,0,-0.03260482102632523,0.02198960818350315 +179,0.03906916826963425,0,0.006117686629295349,0.01532501541078091 +180,0.03573644533753395,0,0.03077393770217896,0.005928537342697382 diff --git a/data/ram_air_kite/polars_neuralfoil/17.csv b/data/ram_air_kite/polars_neuralfoil/17.csv new file mode 100644 index 00000000..603fa51e --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/17.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.04921916127204895,0,0.06663046777248383,0.007809880189597607 +-179,0.04600230976939201,0,0.0336444228887558,0.006358393933624029 +-178,0.04758094623684883,0,-0.025798499584198,0.006186249665915966 +-177,0.05117646232247353,0,-0.08618246763944626,0.005020978860557079 +-176,0.05440212041139603,0,-0.1300760507583618,0.003759315703064203 +-175,0.05740824714303017,0,-0.1550759673118591,0.002391675021499395 +-174,0.06023389846086502,0,-0.1644106656312943,0.0005647212383337319 +-173,0.06295016407966614,0,-0.1637741178274155,-0.001917356275953352 +-172,0.06584057211875916,0,-0.1589887887239456,-0.005250826478004456 +-171,0.06928891688585281,0,-0.1538408696651459,-0.009636029601097107 +-170,0.07356890290975571,0,-0.1489546746015549,-0.01519590336829424 +-169,0.07870617508888245,0,-0.141493171453476,-0.02201637625694275 +-168,0.08469532430171967,0,-0.1266377419233322,-0.03022642433643341 +-167,0.09176754206418991,0,-0.1005656123161316,-0.0399479866027832 +-166,0.1000760123133659,0,-0.06262655556201935,-0.05095525458455086 +-165,0.1094432696700096,0,-0.02201701700687408,-0.06216667219996452 +-164,0.118806965649128,0,0.004211783409118652,-0.07171989977359772 +-163,0.1256237030029297,0,0.01397046446800232,-0.07809600979089737 +-162,0.1272965520620346,0,0.02176955342292786,-0.08185590803623199 +-161,0.1243916377425194,0,0.04265210032463074,-0.08554515242576599 +-160,0.1207037195563316,0,0.08394798636436462,-0.09185013175010681 +-159,0.1194985061883926,0,0.1382164359092712,-0.1006127744913101 +-158,0.1211472824215889,0,0.1940961480140686,-0.1099639385938644 +-157,0.1247016191482544,0,0.2464381456375122,-0.1188552603125572 +-156,0.1293461918830872,0,0.2945971190929413,-0.1271859705448151 +-155,0.1346006393432617,0,0.3392623364925385,-0.1351628601551056 +-154,0.1401828080415726,0,0.3811798691749573,-0.1429806500673294 +-153,0.1459100991487503,0,0.4208748936653137,-0.1507491022348404 +-152,0.1516562104225159,0,0.4586502015590668,-0.1585036963224411 +-151,0.1573352366685867,0,0.4946530163288116,-0.166229248046875 +-150,0.16288922727108,0,0.5289343595504761,-0.1738823354244232 +-149,0.1682817339897156,0,0.5614975690841675,-0.1814062297344208 +-148,0.17349012196064,0,0.5923357605934143,-0.1887436360120773 +-147,0.1785019487142563,0,0.621446967124939,-0.1958411931991577 +-146,0.1833100020885468,0,0.6488445997238159,-0.2026537358760834 +-145,0.1879103779792786,0,0.6745545864105225,-0.2091444730758667 +-144,0.1923022568225861,0,0.6986147165298462,-0.2152861803770065 +-143,0.1964844912290573,0,0.7210698127746582,-0.2210582196712494 +-142,0.2004558891057968,0,0.7419681549072266,-0.226447656750679 +-141,0.2042143493890762,0,0.7613520622253418,-0.2314436733722687 +-140,0.2077589482069016,0,0.7792643308639526,-0.236041933298111 +-139,0.2110862731933594,0,0.7957409620285034,-0.2402384281158447 +-138,0.2141911089420319,0,0.810809850692749,-0.2440315186977386 +-137,0.2170685976743698,0,0.8244912624359131,-0.247419148683548 +-136,0.2197125405073166,0,0.8368033170700073,-0.2504005432128906 +-135,0.2221136838197708,0,0.8477526903152466,-0.252973735332489 +-134,0.2242632806301117,0,0.8573446273803711,-0.2551364898681641 +-133,0.2261489778757095,0,0.8655760288238525,-0.2568852305412292 +-132,0.2277601510286331,0,0.8724412322044373,-0.2582158148288727 +-131,0.2290824353694916,0,0.8779270052909851,-0.2591220736503601 +-130,0.2301017940044403,0,0.8820183873176575,-0.2595968246459961 +-129,0.230803370475769,0,0.8846889138221741,-0.2596304714679718 +-128,0.231174498796463,0,0.885907769203186,-0.259211540222168 +-127,0.2312020659446716,0,0.8856317400932312,-0.2583262026309967 +-126,0.2308759540319443,0,0.8838009834289551,-0.2569571733474731 +-125,0.2301900237798691,0,0.880348801612854,-0.2550864219665527 +-124,0.2291394621133804,0,0.8751825094223022,-0.252692699432373 +-123,0.2277246415615082,0,0.8681919574737549,-0.2497526407241821 +-122,0.2259460091590881,0,0.8592494130134583,-0.2462427914142609 +-121,0.2238016724586487,0,0.8481971621513367,-0.2421390116214752 +-120,0.2212890535593033,0,0.8348604440689087,-0.2374188005924225 +-119,0.2183979898691177,0,0.8190398812294006,-0.2320617884397507 +-118,0.2151129096746445,0,0.8005107641220093,-0.226050540804863 +-117,0.2114083617925644,0,0.7790278792381287,-0.2193706333637238 +-116,0.2072571367025375,0,0.7543172836303711,-0.2120064944028854 +-115,0.2026341706514359,0,0.7260699272155762,-0.2039387673139572 +-114,0.1975349932909012,0,0.693938672542572,-0.1951374262571335 +-113,0.1920073181390762,0,0.6575390696525574,-0.1855584681034088 +-112,0.1862159818410873,0,0.6165017485618591,-0.1751513779163361 +-111,0.1805405914783478,0,0.5707237124443054,-0.1638943403959274 +-110,0.1756147891283035,0,0.5211712121963501,-0.1518772542476654 +-109,0.1719442009925842,0,0.4715428352355957,-0.1394115388393402 +-108,0.1686307936906815,0,0.4294341504573822,-0.1269427388906479 +-107,0.1623684614896774,0,0.4034461081027985,-0.114439345896244 +-106,0.1507316529750824,0,0.3977890908718109,-0.1010459810495377 +-105,0.1354181617498398,0,0.4093508422374725,-0.08655606210231781 +-104,0.1180003955960274,0,0.4248087704181671,-0.0727953165769577 +-103,0.103548027575016,0,0.42064368724823,-0.06119489669799805 +-102,0.09342499077320099,0,0.3924505412578583,-0.05088799074292183 +-101,0.08628134429454803,0,0.3469855189323425,-0.04093059152364731 +-100,0.08121632784605026,0,0.2873029708862305,-0.03103660978376865 +-99,0.0772012323141098,0,0.2166644930839539,-0.02112764678895473 +-98,0.07255388796329498,0,0.1455030739307404,-0.01161249540746212 +-97,0.0646245926618576,0,0.09666034579277039,-0.003765496658161283 +-96,0.0497172474861145,0,0.104472354054451,0.0004605412541422993 +-95,0.03236695379018784,0,0.1624265313148499,0.002442896366119385 +-94,0.02237058058381081,0,0.183377668261528,0.01004199963063002 +-93,0.01822496578097343,0,0.1281250268220901,0.02174858376383781 +-92,0.01731336116790771,0,0.02956490218639374,0.02885538712143898 +-91,0.01767709106206894,0,-0.0728408545255661,0.03033792600035667 +-90,0.01827793940901756,0,-0.1665323674678802,0.03004980459809303 +-89,0.01907348446547985,0,-0.2537758946418762,0.03039954043924809 +-88,0.02035735920071602,0,-0.3393617868423462,0.03221480548381805 +-87,0.0223594531416893,0,-0.4246247112751007,0.03543482720851898 +-86,0.02520460821688175,0,-0.5073796510696411,0.03951264172792435 +-85,0.02898067608475685,0,-0.5848540067672729,0.04376793652772903 +-84,0.03378006815910339,0,-0.6555716991424561,0.0476985014975071 +-83,0.03974577784538269,0,-0.7194015979766846,0.05110659077763557 +-82,0.04710220918059349,0,-0.7769673466682434,0.05410485714673996 +-81,0.05604380741715431,0,-0.8296357393264771,0.05713092535734177 +-80,0.06640042364597321,0,-0.8798609972000122,0.06094059348106384 +-79,0.07736948132514954,0,-0.9289630055427551,0.06629914045333862 +-78,0.08782286942005157,0,-0.9711127877235413,0.07317735254764557 +-77,0.09809734672307968,0,-0.9989476203918457,0.08123352378606796 +-76,0.1110899448394775,0,-1.022178649902344,0.08974000811576843 +-75,0.1203631460666656,0,-1.062370300292969,0.09712775051593781 +-74,0.1262230724096298,0,-1.114260077476501,0.1047931537032127 +-73,0.1345842480659485,0,-1.17176878452301,0.1154327020049095 +-72,0.1447028368711472,0,-1.226632118225098,0.1265504509210587 +-71,0.1557403951883316,0,-1.275724172592163,0.1369570195674896 +-70,0.1673872917890549,0,-1.319418668746948,0.1464656591415405 +-69,0.1793944090604782,0,-1.358609318733215,0.1551067382097244 +-68,0.1915841549634933,0,-1.393828868865967,0.1629509925842285 +-67,0.2038786262273788,0,-1.425140500068665,0.1700564473867416 +-66,0.2162894606590271,0,-1.452334523200989,0.1764701157808304 +-65,0.2288737893104553,0,-1.475208640098572,0.1822420060634613 +-64,0.2416642159223557,0,-1.493785738945007,0.1874350309371948 +-63,0.2546059489250183,0,-1.508442401885986,0.192120760679245 +-62,0.267527163028717,0,-1.519842982292175,0.1963667124509811 +-61,0.2801748216152191,0,-1.52874219417572,0.2002212554216385 +-60,0.2922818958759308,0,-1.535773396492004,0.2037050276994705 +-59,0.3036262691020966,0,-1.541365265846252,0.2068122923374176 +-58,0.3140554428100586,0,-1.54578709602356,0.2095193117856979 +-57,0.3234811425209045,0,-1.54923677444458,0.2117939889431 +-56,0.3318641781806946,0,-1.551901817321777,0.2136044800281525 +-55,0.3391886949539185,0,-1.553988456726074,0.2149211168289185 +-54,0.3454481661319733,0,-1.555706381797791,0.2157205045223236 +-53,0.3506360352039337,0,-1.557252526283264,0.2159819155931473 +-52,0.3547379374504089,0,-1.558802008628845,0.2156893312931061 +-51,0.3577346801757812,0,-1.560496807098389,0.2148283421993256 +-50,0.3595992922782898,0,-1.562450647354126,0.2133869677782059 +-49,0.3603070676326752,0,-1.564754366874695,0.2113560438156128 +-48,0.3598275184631348,0,-1.567476391792297,0.2087291479110718 +-47,0.3581274151802063,0,-1.570667505264282,0.2055048048496246 +-46,0.3551664650440216,0,-1.57436215877533,0.2016867399215698 +-45,0.350897878408432,0,-1.578569173812866,0.1972886025905609 +-44,0.3452796041965485,0,-1.583268642425537,0.192336305975914 +-43,0.3382939398288727,0,-1.58838415145874,0.1868682652711868 +-42,0.3299765586853027,0,-1.593789339065552,0.1809374690055847 +-41,0.3204330205917358,0,-1.599306464195251,0.1746043711900711 +-40,0.3098301589488983,0,-1.604753971099854,0.1679312437772751 +-39,0.2983680963516235,0,-1.609998464584351,0.1609714776277542 +-38,0.2862401008605957,0,-1.614994883537292,0.1537615954875946 +-37,0.2736198008060455,0,-1.619785904884338,0.1463206559419632 +-36,0.2606740295886993,0,-1.624426126480103,0.1386483907699585 +-35,0.2475891262292862,0,-1.628911733627319,0.1307309567928314 +-34,0.234617754817009,0,-1.633053183555603,0.1225481629371643 +-33,0.2221474200487137,0,-1.636316776275635,0.1140989512205124 +-32,0.2107807546854019,0,-1.6375492811203,0.1054461970925331 +-31,0.2013386934995651,0,-1.634633541107178,0.09676782041788101 +-30,0.1945146918296814,0,-1.624807000160217,0.08834092319011688 +-29,0.1897910833358765,0,-1.607990026473999,0.08035455644130707 +-28,0.1843805909156799,0,-1.592949271202087,0.07260210067033768 +-27,0.1759381145238876,0,-1.588885903358459,0.06487192213535309 +-26,0.1651272028684616,0,-1.591691970825195,0.0574597604572773 +-25,0.1526809930801392,0,-1.598234415054321,0.05041239410638809 +-24,0.138691172003746,0,-1.609946846961975,0.04350922256708145 +-23,0.1236755549907684,0,-1.624766826629639,0.03680781647562981 +-22,0.1087642759084702,0,-1.636748313903809,0.03072539530694485 +-21,0.09488829970359802,0,-1.642580151557922,0.02567906118929386 +-20,0.0823381245136261,0,-1.643430948257446,0.02186098694801331 +-19,0.07096829265356064,0,-1.641101837158203,0.01934597827494144 +-18,0.06049241498112679,0,-1.635149836540222,0.01805656589567661 +-17,0.05097018927335739,0,-1.62252950668335,0.01779853738844395 +-16,0.04281682893633842,0,-1.599526286125183,0.01843779161572456 +-15,0.0360480509698391,0,-1.564982652664185,0.01966341771185398 +-14,0.03039908222854137,0,-1.520153999328613,0.02122573927044868 +-13,0.02573825977742672,0,-1.466619372367859,0.02321621216833591 +-12,0.02197494730353355,0,-1.405815839767456,0.02577432431280613 +-11,0.01913437061011791,0,-1.338501334190369,0.02849217131733894 +-10,0.01732809469103813,0,-1.264761090278625,0.03191279247403145 +-9,0.01576118357479572,0,-1.182652354240417,0.03466262295842171 +-8,0.01452690456062555,0,-1.094741940498352,0.03741844743490219 +-7,0.01352352928370237,0,-1.001807928085327,0.04028629139065742 +-6,0.0126941641792655,0,-0.9042210578918457,0.04283520579338074 +-5,0.01196928229182959,0,-0.8026946783065796,0.04491440206766129 +-4,0.01130380947142839,0,-0.697900652885437,0.04656028747558594 +-3,0.01071089040488005,0,-0.5901250839233398,0.04784979671239853 +-2,0.0102075207978487,0,-0.4801474511623383,0.04886853694915771 +-1,0.009753553196787834,0,-0.369260311126709,0.04970727115869522 +0,0.009376541711390018,0,-0.2569700181484222,0.05034878104925156 +1,0.009124887175858021,0,-0.1427825093269348,0.0507524386048317 +2,0.008996331132948399,0,-0.02659529447555542,0.05092868953943253 +3,0.00895684864372015,0,0.09066879004240036,0.05089998245239258 +4,0.008970753289759159,0,0.2078162878751755,0.050819031894207 +5,0.009051921777427197,0,0.3233140408992767,0.05091976374387741 +6,0.009486663155257702,0,0.4330197870731354,0.05201681330800056 +7,0.01107802987098694,0,0.5306046009063721,0.054375059902668 +8,0.01305071916431189,0,0.6282219886779785,0.05600548535585403 +9,0.01442096382379532,0,0.7286306619644165,0.05770748853683472 +10,0.01588757149875164,0,0.8219733238220215,0.06034742668271065 +11,0.01823258772492409,0,0.8993685245513916,0.06364705413579941 +12,0.02299530431628227,0,0.9534980058670044,0.06383820623159409 +13,0.03114404529333115,0,0.9810880422592163,0.06082571297883987 +14,0.04176026955246925,0,0.9966354370117188,0.05586778372526169 +15,0.05326451733708382,0,1.002193689346313,0.05171489715576172 +16,0.06456694751977921,0,1.005140662193298,0.04917369410395622 +17,0.07522937655448914,0,1.022634148597717,0.0450807586312294 +18,0.08480293303728104,0,1.047237873077393,0.0405377633869648 +19,0.09328565746545792,0,1.074288249015808,0.03606285899877548 +20,0.101101890206337,0,1.101936221122742,0.03149140998721123 +21,0.1088956966996193,0,1.128300547599792,0.02661212719976902 +22,0.1172251999378204,0,1.15187656879425,0.02132779359817505 +23,0.1262658089399338,0,1.172248125076294,0.01552816666662693 +24,0.1358428150415421,0,1.189607977867126,0.008999591693282127 +25,0.1459166705608368,0,1.204436898231506,0.001625561737455428 +26,0.1568504422903061,0,1.217760443687439,-0.006301963236182928 +27,0.169455274939537,0,1.22822093963623,-0.01457905769348145 +28,0.1864307075738907,0,1.223630666732788,-0.02482476271688938 +29,0.2157321572303772,0,1.177597522735596,-0.04101363569498062 +30,0.2616121172904968,0,1.094055771827698,-0.06299027055501938 +31,0.2993309795856476,0,1.03317391872406,-0.08358154445886612 +32,0.3177934288978577,0,1.012944221496582,-0.09926119446754456 +33,0.329139918088913,0,1.012969970703125,-0.1111834049224854 +34,0.3381749093532562,0,1.021359443664551,-0.1207718104124069 +35,0.3461577594280243,0,1.033483505249023,-0.1288818418979645 +36,0.353568822145462,0,1.047216057777405,-0.1360132694244385 +37,0.360527902841568,0,1.061270713806152,-0.1424693465232849 +38,0.3670210540294647,0,1.074854373931885,-0.1484228372573853 +39,0.3730106353759766,0,1.087524175643921,-0.1539592891931534 +40,0.3784659504890442,0,1.099064111709595,-0.1591173857450485 +41,0.3833654820919037,0,1.109379768371582,-0.163910299539566 +42,0.3876921832561493,0,1.118445158004761,-0.1683429330587387 +43,0.3914293944835663,0,1.126256823539734,-0.1724146604537964 +44,0.394564688205719,0,1.132827520370483,-0.1761262267827988 +45,0.3970876336097717,0,1.138171434402466,-0.179476797580719 +46,0.3989896178245544,0,1.1423020362854,-0.1824668347835541 +47,0.4002620577812195,0,1.145222306251526,-0.1850962787866592 +48,0.4008966684341431,0,1.146924018859863,-0.1873633414506912 +49,0.4008848369121552,0,1.147382497787476,-0.189265638589859 +50,0.4002058506011963,0,1.146547317504883,-0.1907969415187836 +51,0.3988361060619354,0,1.144345760345459,-0.1919477730989456 +52,0.3967351317405701,0,1.140669345855713,-0.1927041113376617 +53,0.3938485085964203,0,1.135383725166321,-0.1930474638938904 +54,0.3901086747646332,0,1.128328919410706,-0.1929559707641602 +55,0.3854359984397888,0,1.119327068328857,-0.1924044638872147 +56,0.3797557055950165,0,1.108186841011047,-0.1913650035858154 +57,0.3730051219463348,0,1.094710350036621,-0.1898063719272614 +58,0.3651537597179413,0,1.078701496124268,-0.1876929104328156 +59,0.3562163412570953,0,1.059981465339661,-0.1849843561649323 +60,0.3462583720684052,0,1.038437128067017,-0.1816363334655762 +61,0.3353801369667053,0,1.014091014862061,-0.1776006519794464 +62,0.3236908614635468,0,0.9871869683265686,-0.1728205680847168 +63,0.3112502098083496,0,0.958284318447113,-0.1672160178422928 +64,0.297993928194046,0,0.9283170700073242,-0.160670280456543 +65,0.2836597859859467,0,0.8986121416091919,-0.1530312299728394 +66,0.2678371369838715,0,0.8709031343460083,-0.144131138920784 +67,0.2502849400043488,0,0.8475601673126221,-0.133801743388176 +68,0.231164738535881,0,0.8321192264556885,-0.1218467950820923 +69,0.2098058760166168,0,0.8301490545272827,-0.1080466955900192 +70,0.1841519623994827,0,0.8464412689208984,-0.09259963780641556 +71,0.1582043468952179,0,0.8674295544624329,-0.07747678458690643 +72,0.1392522156238556,0,0.8661735057830811,-0.06538280844688416 +73,0.1271954327821732,0,0.8383759260177612,-0.05654399842023849 +74,0.1191078573465347,0,0.7959315776824951,-0.04988101124763489 +75,0.1130171343684196,0,0.7463060617446899,-0.04456109553575516 +76,0.1073615625500679,0,0.6920575499534607,-0.03984970599412918 +77,0.1014614477753639,0,0.6327291131019592,-0.0349656343460083 +78,0.09578234702348709,0,0.5646105408668518,-0.0290636420249939 +79,0.08994508534669876,0,0.490147590637207,-0.02234853431582451 +80,0.08363191038370132,0,0.4147177636623383,-0.01543836295604706 +81,0.07649731636047363,0,0.3433253169059753,-0.00881707388907671 +82,0.0674285814166069,0,0.2853713929653168,-0.003064736723899841 +83,0.05370414257049561,0,0.2642073631286621,0.0007138430955819786 +84,0.03534331172704697,0,0.2988830506801605,0.0019745291210711 +85,0.02268047071993351,0,0.3184977471828461,0.00718960165977478 +86,0.01763668656349182,0,0.2542803287506104,0.0198574922978878 +87,0.01635900139808655,0,0.1403233557939529,0.03008470498025417 +88,0.01674351841211319,0,0.02342458069324493,0.03299184888601303 +89,0.01748177967965603,0,-0.07863345742225647,0.03177293390035629 +90,0.01827793940901756,0,-0.1665323674678802,0.03004980459809303 +91,0.01943988725543022,0,-0.2428535372018814,0.02968673780560493 +92,0.02128099277615547,0,-0.3085275888442993,0.03104296699166298 +93,0.02393654547631741,0,-0.3643936216831207,0.03371588140726089 +94,0.02751072123646736,0,-0.411624401807785,0.03717372566461563 +95,0.03230441361665726,0,-0.451626181602478,0.04105706885457039 +96,0.03887573257088661,0,-0.4876872599124908,0.04548221081495285 +97,0.04759827256202698,0,-0.5273642539978027,0.05150362849235535 +98,0.05790618434548378,0,-0.5729183554649353,0.0611894428730011 +99,0.07117966562509537,0,-0.58987957239151,0.07487846910953522 +100,0.08381457626819611,0,-0.5994158387184143,0.08753678202629089 +101,0.0916765034198761,0,-0.6296985745429993,0.0981241911649704 +102,0.0990448072552681,0,-0.670379638671875,0.1084813922643661 +103,0.1062343418598175,0,-0.7131531834602356,0.1181566119194031 +104,0.1147511675953865,0,-0.751301646232605,0.1277404129505157 +105,0.1274802088737488,0,-0.7864906787872314,0.1382933557033539 +106,0.1375511884689331,0,-0.8268800973892212,0.1496786177158356 +107,0.1426226943731308,0,-0.8788633942604065,0.1629272997379303 +108,0.1520529389381409,0,-0.9452028274536133,0.1814272552728653 +109,0.1681248992681503,0,-1.011728763580322,0.2019969969987869 +110,0.1854684054851532,0,-1.065119385719299,0.220171332359314 +111,0.2011819332838058,0,-1.103256702423096,0.235080674290657 +112,0.2146502882242203,0,-1.128218650817871,0.2473225146532059 +113,0.2259937524795532,0,-1.143141269683838,0.2578747868537903 +114,0.2352249026298523,0,-1.151210069656372,0.2675324082374573 +115,0.2421766221523285,0,-1.155575037002563,0.2765601575374603 +116,0.2469353526830673,0,-1.158984065055847,0.2847972810268402 +117,0.2500283718109131,0,-1.163095712661743,0.2920023500919342 +118,0.2521782219409943,0,-1.168318748474121,0.2980646789073944 +119,0.2539729475975037,0,-1.174269556999207,0.3030362725257874 +120,0.2557208240032196,0,-1.180314183235168,0.3070736825466156 +121,0.2574989199638367,0,-1.185905456542969,0.3103601336479187 +122,0.2592746615409851,0,-1.190669775009155,0.3130497932434082 +123,0.2609853446483612,0,-1.194391012191772,0.3152476251125336 +124,0.2625789940357208,0,-1.196964979171753,0.3170163929462433 +125,0.2640177607536316,0,-1.198345541954041,0.3183869123458862 +126,0.2652772963047028,0,-1.198517084121704,0.3193722665309906 +127,0.2663378417491913,0,-1.197473287582397,0.3199765086174011 +128,0.2671872973442078,0,-1.195210218429565,0.3201987743377686 +129,0.2678101360797882,0,-1.191724061965942,0.3200376927852631 +130,0.2681929469108582,0,-1.187008738517761,0.3194904923439026 +131,0.2683209180831909,0,-1.181059837341309,0.318556159734726 +132,0.2681800127029419,0,-1.173881769180298,0.3172346353530884 +133,0.2677527368068695,0,-1.165475010871887,0.3155263364315033 +134,0.2670258581638336,0,-1.155853748321533,0.3134345412254333 +135,0.2659829258918762,0,-1.145028352737427,0.3109621405601501 +136,0.2646094858646393,0,-1.133021116256714,0.3081151843070984 +137,0.26289302110672,0,-1.119855880737305,0.3049009442329407 +138,0.2608221173286438,0,-1.105555772781372,0.3013272285461426 +139,0.2583877444267273,0,-1.090145945549011,0.2974042892456055 +140,0.2555838227272034,0,-1.073645830154419,0.2931435704231262 +141,0.2524065375328064,0,-1.056065559387207,0.2885568737983704 +142,0.2488569021224976,0,-1.037407398223877,0.2836583256721497 +143,0.2449368238449097,0,-1.01765775680542,0.2784619331359863 +144,0.2406546771526337,0,-0.9967896938323975,0.2729839384555817 +145,0.2360197007656097,0,-0.9747512936592102,0.2672390341758728 +146,0.231043353676796,0,-0.9514738917350769,0.2612414956092834 +147,0.2257419377565384,0,-0.9268760085105896,0.2550021409988403 +148,0.2201329618692398,0,-0.9008529186248779,0.2485227137804031 +149,0.2142395824193954,0,-0.8732880353927612,0.2417907267808914 +150,0.2080920785665512,0,-0.8440425395965576,0.2347715348005295 +151,0.2017380446195602,0,-0.8129323720932007,0.2273982465267181 +152,0.1952469050884247,0,-0.7797000408172607,0.2195710241794586 +153,0.1887098550796509,0,-0.7439700365066528,0.2111615687608719 +154,0.1822247952222824,0,-0.7052123546600342,0.2020439207553864 +155,0.1758729815483093,0,-0.6625974178314209,0.1921536475419998 +156,0.1697032302618027,0,-0.6146000027656555,0.181537389755249 +157,0.1636970639228821,0,-0.5585414171218872,0.1702199429273605 +158,0.1576031595468521,0,-0.4906922578811646,0.1577396094799042 +159,0.1508255153894424,0,-0.4074796140193939,0.1428929716348648 +160,0.1435364633798599,0,-0.3099661469459534,0.1251021474599838 +161,0.1394354701042175,0,-0.2159794270992279,0.1082853525876999 +162,0.1390114575624466,0,-0.154409795999527,0.09833472967147827 +163,0.1329591870307922,0,-0.1141531765460968,0.09040747582912445 +164,0.1207168400287628,0,-0.07675951719284058,0.08136346191167831 +165,0.1086465045809746,0,-0.0318414568901062,0.07302558422088623 +166,0.09808527678251266,0,0.01050713658332825,0.06730892509222031 +167,0.09001866728067398,0,0.04906335473060608,0.06071893498301506 +168,0.08449593186378479,0,0.08410073816776276,0.0529262013733387 +169,0.08036963641643524,0,0.1121846437454224,0.04564740136265755 +170,0.07728170603513718,0,0.1318956017494202,0.03945328295230865 +171,0.07524406164884567,0,0.1421462595462799,0.03456373885273933 +172,0.07431884109973907,0,0.141891822218895,0.03117682039737701 +173,0.07446692883968353,0,0.1300624012947083,0.02940495312213898 +174,0.07514426112174988,0,0.105624333024025,0.02887492813169956 +175,0.07461201399564743,0,0.06853953003883362,0.02810345217585564 +176,0.0706460028886795,0,0.02317838370800018,0.02543450519442558 +177,0.06241089478135109,0,-0.01106880605220795,0.02143853530287743 +178,0.05684079229831696,0,0.01795468479394913,0.01808962784707546 +179,0.0537743903696537,0,0.06124135106801987,0.01314330101013184 +180,0.04921916127204895,0,0.06663046777248383,0.007809880189597607 diff --git a/data/ram_air_kite/polars_neuralfoil/18.csv b/data/ram_air_kite/polars_neuralfoil/18.csv new file mode 100644 index 00000000..daea7ede --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/18.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.06939596682786942,0,0.06547375023365021,0.001884818077087402 +-179,0.07072784006595612,0,-0.0255318284034729,0.009502810426056385 +-178,0.07488662749528885,0,-0.1155467852950096,0.01469604950398207 +-177,0.07500947266817093,0,-0.1860856115818024,0.01602386310696602 +-176,0.0730312392115593,0,-0.2353814840316772,0.01524985395371914 +-175,0.07165055721998215,0,-0.2658252120018005,0.01387720089405775 +-174,0.07181574404239655,0,-0.2808655202388763,0.01260908506810665 +-173,0.07319219410419464,0,-0.2853019237518311,0.01123453676700592 +-172,0.07520625740289688,0,-0.2829967439174652,0.008986952714622021 +-171,0.0777181088924408,0,-0.2761657536029816,0.005327922292053699 +-170,0.0809670016169548,0,-0.266614705324173,0.0003285348357167095 +-169,0.0852222740650177,0,-0.2556681036949158,-0.005663174204528332 +-168,0.09046813100576401,0,-0.2431516647338867,-0.01237584091722965 +-167,0.09641698002815247,0,-0.2267620861530304,-0.01977959275245667 +-166,0.1026759445667267,0,-0.2034978121519089,-0.02803022228181362 +-165,0.1087792366743088,0,-0.1732078194618225,-0.03719077259302139 +-164,0.1146986782550812,0,-0.1422762721776962,-0.04692620038986206 +-163,0.1207290142774582,0,-0.1197579801082611,-0.05606881901621819 +-162,0.1270458251237869,0,-0.1049907207489014,-0.06393171846866608 +-161,0.1317519843578339,0,-0.08472178876399994,-0.07162512093782425 +-160,0.1312718838453293,0,-0.05083665251731873,-0.07966206967830658 +-159,0.1265456676483154,0,-0.002396374940872192,-0.0886525958776474 +-158,0.1242815405130386,0,0.06103131175041199,-0.1002091616392136 +-157,0.1280355453491211,0,0.1337873935699463,-0.1140304356813431 +-156,0.1357949525117874,0,0.2066938579082489,-0.1279942989349365 +-155,0.1447924226522446,0,0.2745551466941833,-0.1407394111156464 +-154,0.1536421030759811,0,0.3360998928546906,-0.1520172655582428 +-153,0.1619591414928436,0,0.3916251957416534,-0.162037581205368 +-152,0.1697497665882111,0,0.4418115317821503,-0.1710836142301559 +-151,0.1771092414855957,0,0.4873306453227997,-0.1793882101774216 +-150,0.1841254532337189,0,0.5287553071975708,-0.1871132105588913 +-149,0.1908617615699768,0,0.5665677785873413,-0.1943645477294922 +-148,0.1973584592342377,0,0.6011712551116943,-0.2012050598859787 +-147,0.2036442756652832,0,0.632909893989563,-0.2076715528964996 +-146,0.2097359597682953,0,0.6620737314224243,-0.213782474398613 +-145,0.215642586350441,0,0.6889019012451172,-0.2195447385311127 +-144,0.2213656157255173,0,0.7135929465293884,-0.2249580174684525 +-143,0.2269005477428436,0,0.7362989187240601,-0.2300175726413727 +-142,0.232237920165062,0,0.7571442127227783,-0.2347166985273361 +-141,0.2373627573251724,0,0.7762192487716675,-0.2390464842319489 +-140,0.242257297039032,0,0.7935906648635864,-0.2429975569248199 +-139,0.2468988597393036,0,0.8093041181564331,-0.2465604841709137 +-138,0.2512651383876801,0,0.8233894109725952,-0.249725729227066 +-137,0.2553300857543945,0,0.8358611464500427,-0.2524834871292114 +-136,0.2590680122375488,0,0.8467261791229248,-0.254824697971344 +-135,0.2624525129795074,0,0.8559795618057251,-0.2567395865917206 +-134,0.2654581665992737,0,0.8636149168014526,-0.258219301700592 +-133,0.2680571675300598,0,0.8696131706237793,-0.2592537105083466 +-132,0.2702248692512512,0,0.8739514350891113,-0.2598323225975037 +-131,0.2719383835792542,0,0.8766022324562073,-0.2599446773529053 +-130,0.2731744050979614,0,0.8775265216827393,-0.2595784664154053 +-129,0.2739133834838867,0,0.8766759634017944,-0.2587203979492188 +-128,0.2741374671459198,0,0.8739869594573975,-0.257354736328125 +-127,0.2738330662250519,0,0.8693755865097046,-0.2554627656936646 +-126,0.2729869484901428,0,0.8627334237098694,-0.2530230581760406 +-125,0.2715891301631927,0,0.8539186716079712,-0.2500092387199402 +-124,0.2696282267570496,0,0.8427461385726929,-0.2463899105787277 +-123,0.2670895159244537,0,0.8289792537689209,-0.2421263158321381 +-122,0.2639505863189697,0,0.8123223781585693,-0.2371724545955658 +-121,0.2601752579212189,0,0.7924109101295471,-0.2314731329679489 +-120,0.2557103335857391,0,0.7688065767288208,-0.2249630689620972 +-119,0.2504760324954987,0,0.7410012483596802,-0.2175658643245697 +-118,0.2443660050630569,0,0.7084298729896545,-0.2091947495937347 +-117,0.2372459322214127,0,0.6705070734024048,-0.1997546553611755 +-116,0.2289700657129288,0,0.6266852021217346,-0.1891488581895828 +-115,0.2194162011146545,0,0.5765683650970459,-0.1772932559251785 +-114,0.2085665762424469,0,0.52008056640625,-0.1641415953636169 +-113,0.1966791450977325,0,0.4577181339263916,-0.1497326046228409 +-112,0.1846027672290802,0,0.3909198939800262,-0.1342777013778687 +-111,0.1741901189088821,0,0.3227627575397491,-0.1183396130800247 +-110,0.1679394841194153,0,0.2592248320579529,-0.1030295267701149 +-109,0.165948674082756,0,0.2085623443126678,-0.08940231800079346 +-108,0.1627724915742874,0,0.1744329631328583,-0.07671354711055756 +-107,0.1534234285354614,0,0.1548566520214081,-0.06308092921972275 +-106,0.1395538002252579,0,0.1497355401515961,-0.04869062826037407 +-105,0.1232942938804626,0,0.1513496488332748,-0.03572558611631393 +-104,0.1088523492217064,0,0.1401707530021667,-0.02501958049833775 +-103,0.09803751111030579,0,0.1116767004132271,-0.01565466448664665 +-102,0.0904569998383522,0,0.07109770923852921,-0.00695334654301405 +-101,0.08594363182783127,0,0.02000001072883606,0.001398712396621704 +-100,0.08383344113826752,0,-0.04098810628056526,0.009534686803817749 +-99,0.08252408355474472,0,-0.1072057485580444,0.01736868545413017 +-98,0.07994763553142548,0,-0.1669649630784988,0.02458558604121208 +-97,0.07276781648397446,0,-0.1977726370096207,0.03014381602406502 +-96,0.05734031647443771,0,-0.1723141074180603,0.03152482956647873 +-95,0.04079242795705795,0,-0.1074210405349731,0.02896277979016304 +-94,0.03002512827515602,0,-0.03703948855400085,0.02510936930775642 +-93,0.02353403344750404,0,0.01913291215896606,0.02045499719679356 +-92,0.02058453112840652,0,0.01994502544403076,0.01890274323523045 +-91,0.02033467590808868,0,-0.03224721550941467,0.01938633248209953 +-90,0.02140497975051403,0,-0.109304815530777,0.02088571153581142 +-89,0.02270243503153324,0,-0.1939789354801178,0.02411841228604317 +-88,0.02393146604299545,0,-0.2800056040287018,0.02880868688225746 +-87,0.02542868629097939,0,-0.3640655279159546,0.03404786437749863 +-86,0.02771088108420372,0,-0.4433124959468842,0.03916927427053452 +-85,0.0312004629522562,0,-0.5152665376663208,0.04385676234960556 +-84,0.03624602034687996,0,-0.5777440667152405,0.04802419990301132 +-83,0.04315795376896858,0,-0.6294987201690674,0.05187534168362617 +-82,0.05204497650265694,0,-0.6703526973724365,0.0558713786303997 +-81,0.06263810396194458,0,-0.7003169059753418,0.06048178672790527 +-80,0.07437341660261154,0,-0.7211921215057373,0.06584370136260986 +-79,0.08637803792953491,0,-0.7404232621192932,0.07165458798408508 +-78,0.0974651500582695,0,-0.767244815826416,0.07760071009397507 +-77,0.1067560091614723,0,-0.804945707321167,0.08367142826318741 +-76,0.1139897927641869,0,-0.8499196767807007,0.08974938839673996 +-75,0.1202452033758163,0,-0.8947126269340515,0.09544640779495239 +-74,0.1293919086456299,0,-0.9347471594810486,0.1001740694046021 +-73,0.1380806863307953,0,-0.9781584143638611,0.1039908975362778 +-72,0.145371600985527,0,-1.027602195739746,0.1094071716070175 +-71,0.1556353569030762,0,-1.076696395874023,0.1174204126000404 +-70,0.1683553010225296,0,-1.124929666519165,0.1260245591402054 +-69,0.1818991154432297,0,-1.170890092849731,0.1340605318546295 +-68,0.1955724358558655,0,-1.212986350059509,0.1411950141191483 +-67,0.209095686674118,0,-1.250463247299194,0.1473925411701202 +-66,0.222383975982666,0,-1.283175110816956,0.1527530252933502 +-65,0.2354969531297684,0,-1.31104576587677,0.1574358195066452 +-64,0.2486521154642105,0,-1.33366060256958,0.1616422683000565 +-63,0.2622057199478149,0,-1.350255250930786,0.1656087636947632 +-62,0.276459664106369,0,-1.360259771347046,0.1695396900177002 +-61,0.2913481593132019,0,-1.364086747169495,0.1735038757324219 +-60,0.3063052296638489,0,-1.363341927528381,0.1773941367864609 +-59,0.3205387592315674,0,-1.360129117965698,0.1810035705566406 +-58,0.3334499299526215,0,-1.356153964996338,0.1841410398483276 +-57,0.3447909653186798,0,-1.352384448051453,0.1866871565580368 +-56,0.3545566499233246,0,-1.349202156066895,0.1885903179645538 +-55,0.3628236949443817,0,-1.34667444229126,0.1898398399353027 +-54,0.3696684837341309,0,-1.344740986824036,0.1904447227716446 +-53,0.375139594078064,0,-1.343302726745605,0.1904201954603195 +-52,0.3792677223682404,0,-1.342266201972961,0.1897826492786407 +-51,0.3820710480213165,0,-1.341556906700134,0.1885464936494827 +-50,0.3835642635822296,0,-1.341134548187256,0.1867224872112274 +-49,0.3837621808052063,0,-1.340999841690063,0.1843178570270538 +-48,0.3826816976070404,0,-1.341201543807983,0.181335836648941 +-47,0.3803378641605377,0,-1.341837167739868,0.1777745187282562 +-46,0.3767370879650116,0,-1.343078851699829,0.1736278235912323 +-45,0.3718622326850891,0,-1.34517228603363,0.1688841134309769 +-44,0.3656445741653442,0,-1.348469614982605,0.16352379322052 +-43,0.3579234182834625,0,-1.353460669517517,0.1575201749801636 +-42,0.3484124839305878,0,-1.360817313194275,0.1508372277021408 +-41,0.3366977572441101,0,-1.37138843536377,0.143430158495903 +-40,0.3223676979541779,0,-1.386065125465393,0.1352626532316208 +-39,0.3053501844406128,0,-1.405336976051331,0.1263460516929626 +-38,0.2863838374614716,0,-1.428445816040039,0.1168182492256165 +-37,0.2671675980091095,0,-1.452608108520508,0.1070225611329079 +-36,0.2496835738420486,0,-1.473416209220886,0.09747771918773651 +-35,0.235091358423233,0,-1.487022519111633,0.08865538984537125 +-34,0.2233302146196365,0,-1.492420196533203,0.08070962876081467 +-33,0.2137317955493927,0,-1.491141319274902,0.07347160577774048 +-32,0.2057416439056396,0,-1.484807968139648,0.06671885401010513 +-31,0.1989972442388535,0,-1.473679065704346,0.06036191061139107 +-30,0.192973405122757,0,-1.457640647888184,0.05441193655133247 +-29,0.1869392842054367,0,-1.43799364566803,0.0488891527056694 +-28,0.1803527623414993,0,-1.416878938674927,0.04379129409790039 +-27,0.1731464862823486,0,-1.395327687263489,0.03907468169927597 +-26,0.1656146794557571,0,-1.373587131500244,0.03464272245764732 +-25,0.1580159366130829,0,-1.352258920669556,0.03038240037858486 +-24,0.1503326743841171,0,-1.33266544342041,0.02619889937341213 +-23,0.142239511013031,0,-1.316671252250671,0.02202430926263332 +-22,0.1331793367862701,0,-1.306228160858154,0.01783197000622749 +-21,0.1225927472114563,0,-1.302881121635437,0.01365575194358826 +-20,0.1101962402462959,0,-1.307885646820068,0.009574377909302711 +-19,0.09609706699848175,0,-1.322553396224976,0.005701661109924316 +-18,0.08094428479671478,0,-1.346614480018616,0.002313905861228704 +-17,0.06617767363786697,0,-1.374104499816895,7.826089859008789e-05 +-16,0.0533004067838192,0,-1.393510580062866,-0.0003659367503132671 +-15,0.04306163638830185,0,-1.395134210586548,0.000812655664049089 +-14,0.03558504581451416,0,-1.372692584991455,0.00257420539855957 +-13,0.03003036230802536,0,-1.306446313858032,-0.000334298616508022 +-12,0.02561916969716549,0,-1.15252161026001,-0.01912978291511536 +-11,0.02261670306324959,0,-1.049532890319824,-0.02532729506492615 +-10,0.02033395878970623,0,-0.9799215197563171,-0.02232314273715019 +-9,0.01846427656710148,0,-0.9083486795425415,-0.01854269579052925 +-8,0.01691442541778088,0,-0.8357380628585815,-0.01411196030676365 +-7,0.01562150567770004,0,-0.7629204392433167,-0.008932364173233509 +-6,0.01453740242868662,0,-0.6888387203216553,-0.003348517464473844 +-5,0.01363185048103333,0,-0.6124134063720703,0.002321851206943393 +-4,0.01288948208093643,0,-0.532939612865448,0.007908415980637074 +-3,0.01229357719421387,0,-0.4501844048500061,0.01332236547023058 +-2,0.01182260643690825,0,-0.3643574118614197,0.01853672228753567 +-1,0.01145743206143379,0,-0.2760492861270905,0.02360130473971367 +0,0.01118559204041958,0,-0.1861366033554077,0.0286263469606638 +1,0.01099877804517746,0,-0.09573653340339661,0.03376192972064018 +2,0.01088100485503674,0,-0.006520606577396393,0.03923968225717545 +3,0.0107932398095727,0,0.07923709601163864,0.04539326578378677 +4,0.01068451814353466,0,0.1609730422496796,0.05232187360525131 +5,0.01046490389853716,0,0.2355777025222778,0.06050397083163261 +6,0.01015479397028685,0,0.2941148579120636,0.07166358083486557 +7,0.01050765533000231,0,0.3403327763080597,0.08526915311813354 +8,0.01215578336268663,0,0.3639110624790192,0.1016547232866287 +9,0.014356161467731,0,0.3696201741695404,0.1201300024986267 +10,0.0167783722281456,0,0.3810700178146362,0.1349333822727203 +11,0.02105025760829449,0,0.3981578350067139,0.1415720582008362 +12,0.02759339101612568,0,0.4183344841003418,0.1416886299848557 +13,0.0365152433514595,0,0.4937733709812164,0.1263802945613861 +14,0.0472419261932373,0,0.5928112864494324,0.105599120259285 +15,0.0579197034239769,0,0.6667054295539856,0.09092439711093903 +16,0.06776534765958786,0,0.7333202362060547,0.0785190612077713 +17,0.0763365626335144,0,0.7908796072006226,0.06892411410808563 +18,0.08323384821414948,0,0.8310616016387939,0.06400160491466522 +19,0.08883220702409744,0,0.8595068454742432,0.06232566758990288 +20,0.09389790892601013,0,0.8832731246948242,0.06185358762741089 +21,0.09910856932401657,0,0.9044883847236633,0.0615508183836937 +22,0.1049299091100693,0,0.9231308698654175,0.06102985143661499 +23,0.111618347465992,0,0.9390494227409363,0.06010985374450684 +24,0.1192630380392075,0,0.9522216320037842,0.05862459540367126 +25,0.1278112530708313,0,0.9627751708030701,0.05638822168111801 +26,0.1371953934431076,0,0.971180260181427,0.05328220129013062 +27,0.1475875973701477,0,0.9783697724342346,0.04944078251719475 +28,0.1593922823667526,0,0.9844881296157837,0.04512368515133858 +29,0.1737448573112488,0,0.9846569299697876,0.03985847160220146 +30,0.1943279355764389,0,0.963601291179657,0.03159232065081596 +31,0.2275410443544388,0,0.9071787595748901,0.01836163364350796 +32,0.2715236246585846,0,0.8348888158798218,0.002159380819648504 +33,0.3085246980190277,0,0.7857124209403992,-0.01272858399897814 +34,0.331696093082428,0,0.7671400904655457,-0.02469508722424507 +35,0.3477708697319031,0,0.7660300731658936,-0.03436923027038574 +36,0.3607938587665558,0,0.7730368971824646,-0.04254952073097229 +37,0.3720435798168182,0,0.7838640213012695,-0.04973863810300827 +38,0.3820694088935852,0,0.7964866161346436,-0.05622781440615654 +39,0.3911653757095337,0,0.8097520470619202,-0.06219934672117233 +40,0.3994742929935455,0,0.8229183554649353,-0.06776946038007736 +41,0.4070568978786469,0,0.8355128169059753,-0.07301123440265656 +42,0.4139271378517151,0,0.8472500443458557,-0.07796542346477509 +43,0.4200746119022369,0,0.8579628467559814,-0.08265417814254761 +44,0.4254714250564575,0,0.8675567507743835,-0.0870867520570755 +45,0.4300762712955475,0,0.8759738802909851,-0.0912664383649826 +46,0.4338384568691254,0,0.8831725120544434,-0.09519128501415253 +47,0.4366957247257233,0,0.8891106247901917,-0.0988561287522316 +48,0.438576877117157,0,0.8937446475028992,-0.1022521257400513 +49,0.439406543970108,0,0.8970129489898682,-0.1053682565689087 +50,0.4390990734100342,0,0.8988392949104309,-0.1081875562667847 +51,0.4375706613063812,0,0.8991302847862244,-0.1106903553009033 +52,0.4347414672374725,0,0.8977680802345276,-0.1128506809473038 +53,0.4305382668972015,0,0.8946165442466736,-0.1146383285522461 +54,0.4249105155467987,0,0.8895213007926941,-0.1160162463784218 +55,0.4178350567817688,0,0.8823156356811523,-0.1169426888227463 +56,0.4093294441699982,0,0.872835636138916,-0.1173706501722336 +57,0.3994483947753906,0,0.8609307408332825,-0.1172481998801231 +58,0.3882868885993958,0,0.8464894890785217,-0.1165160313248634 +59,0.3759559094905853,0,0.8294740915298462,-0.1151067838072777 +60,0.3625515699386597,0,0.8099611401557922,-0.1129372268915176 +61,0.3481089174747467,0,0.7881870269775391,-0.1099044680595398 +62,0.3325563669204712,0,0.7645761370658875,-0.1058825254440308 +63,0.3157092332839966,0,0.7397837042808533,-0.1007267609238625 +64,0.2973659038543701,0,0.7147929072380066,-0.09428347647190094 +65,0.2774898409843445,0,0.691195547580719,-0.08638320863246918 +66,0.2560966908931732,0,0.6717367172241211,-0.07682106643915176 +67,0.2322613000869751,0,0.6608490943908691,-0.06538011878728867 +68,0.204286128282547,0,0.6624544858932495,-0.05211690813302994 +69,0.1748530715703964,0,0.6694240570068359,-0.03817550837993622 +70,0.1503533273935318,0,0.6625248789787292,-0.02560523152351379 +71,0.1326679587364197,0,0.6331288814544678,-0.01530287228524685 +72,0.1209203749895096,0,0.5895099639892578,-0.007027340121567249 +73,0.1149267256259918,0,0.5425429344177246,-0.001108431839384139 +74,0.1111627742648125,0,0.4818212389945984,0.005244689993560314 +75,0.105746828019619,0,0.408191978931427,0.01222156919538975 +76,0.09978486597537994,0,0.3432707190513611,0.01586154662072659 +77,0.09459073096513748,0,0.275262713432312,0.01919705793261528 +78,0.0899953618645668,0,0.201501876115799,0.02313774265348911 +79,0.08559152483940125,0,0.1255727112293243,0.02737913653254509 +80,0.08175856620073318,0,0.05149144679307938,0.03183783963322639 +81,0.07807528227567673,0,-0.01379477605223656,0.03611012175679207 +82,0.0715031772851944,0,-0.05742746591567993,0.03931030631065369 +83,0.05812089145183563,0,-0.05561275407671928,0.03962413221597672 +84,0.04105102270841599,0,-0.007336869835853577,0.03614727780222893 +85,0.02968160808086395,0,0.03622815012931824,0.03309974074363708 +86,0.02335656993091106,0,0.05870521068572998,0.03038599528372288 +87,0.02013226598501205,0,0.0493779182434082,0.02758179977536201 +88,0.01932139508426189,0,0.009839117527008057,0.02446911297738552 +89,0.02002775110304356,0,-0.04590135812759399,0.02162851765751839 +90,0.02140497975051403,0,-0.109304815530777,0.02088571153581142 +91,0.02305184863507748,0,-0.1753799021244049,0.02298537455499172 +92,0.02501139231026173,0,-0.2401489317417145,0.02750156819820404 +93,0.02766463905572891,0,-0.2999498844146729,0.03338951617479324 +94,0.03167273476719856,0,-0.3508998155593872,0.03956448286771774 +95,0.03787730634212494,0,-0.3879626095294952,0.04551810398697853 +96,0.04726957529783249,0,-0.3975227475166321,0.05226548388600349 +97,0.06406567245721817,0,-0.3489436507225037,0.06250952184200287 +98,0.08166628330945969,0,-0.3131089210510254,0.07277225703001022 +99,0.09158005565404892,0,-0.3205671012401581,0.08117734640836716 +100,0.09865330904722214,0,-0.353253960609436,0.08877517282962799 +101,0.1044350564479828,0,-0.4042257368564606,0.09618397057056427 +102,0.1100627258419991,0,-0.4645917415618896,0.1041968241333961 +103,0.1162597462534904,0,-0.5279511213302612,0.1132552400231361 +104,0.1233919262886047,0,-0.5898656845092773,0.123223565518856 +105,0.1312796771526337,0,-0.6462022662162781,0.1331940591335297 +106,0.1400185227394104,0,-0.6918160319328308,0.1424528807401657 +107,0.1537643522024155,0,-0.7291166186332703,0.1523611098527908 +108,0.1709551364183426,0,-0.765274703502655,0.1631454974412918 +109,0.1832025200128555,0,-0.8013691902160645,0.1734605133533478 +110,0.1905364543199539,0,-0.8394001722335815,0.1849818229675293 +111,0.2035631090402603,0,-0.8932350277900696,0.2027398645877838 +112,0.2226317226886749,0,-0.9507144093513489,0.2235137522220612 +113,0.2427501976490021,0,-0.9990021586418152,0.24367356300354 +114,0.2604701519012451,0,-1.036126732826233,0.2621144652366638 +115,0.2734112441539764,0,-1.065503835678101,0.2782517075538635 +116,0.2810576260089874,0,-1.091150403022766,0.2917386591434479 +117,0.2849059402942657,0,-1.114776611328125,0.3026163578033447 +118,0.2870437800884247,0,-1.136180281639099,0.3112276196479797 +119,0.2888574302196503,0,-1.154961109161377,0.3180180788040161 +120,0.2908617556095123,0,-1.171141743659973,0.323396623134613 +121,0.2931115627288818,0,-1.184904098510742,0.3276836276054382 +122,0.2955268621444702,0,-1.196402668952942,0.3311068117618561 +123,0.2980136275291443,0,-1.20576798915863,0.3338192403316498 +124,0.300483763217926,0,-1.213130474090576,0.3359204530715942 +125,0.302857369184494,0,-1.218622922897339,0.33747598528862 +126,0.3050588369369507,0,-1.222371339797974,0.3385316729545593 +127,0.307026594877243,0,-1.22448718547821,0.3391215801239014 +128,0.3087071776390076,0,-1.225061655044556,0.3392712473869324 +129,0.3100570142269135,0,-1.224170804023743,0.3390039801597595 +130,0.3110434710979462,0,-1.22186541557312,0.3383380770683289 +131,0.3116407990455627,0,-1.218194246292114,0.337291806936264 +132,0.3118303120136261,0,-1.213185787200928,0.3358806073665619 +133,0.3115942776203156,0,-1.206856966018677,0.3341190218925476 +134,0.3109241724014282,0,-1.199220538139343,0.3320199847221375 +135,0.3098081648349762,0,-1.190282583236694,0.3295963406562805 +136,0.3082401752471924,0,-1.180040597915649,0.3268592953681946 +137,0.3062146902084351,0,-1.16849160194397,0.323820173740387 +138,0.3037261068820953,0,-1.155626058578491,0.3204899728298187 +139,0.3007714450359344,0,-1.141431093215942,0.316879540681839 +140,0.2973451912403107,0,-1.125892639160156,0.3130001425743103 +141,0.2934453785419464,0,-1.108993291854858,0.3088645339012146 +142,0.2890684604644775,0,-1.09070885181427,0.3044860661029816 +143,0.284209132194519,0,-1.071011304855347,0.2998802661895752 +144,0.2788639068603516,0,-1.049860596656799,0.2950637340545654 +145,0.2730271816253662,0,-1.027206659317017,0.2900546193122864 +146,0.2666933536529541,0,-1.002973198890686,0.2848710417747498 +147,0.2598566114902496,0,-0.9770505428314209,0.2795261740684509 +148,0.2525101900100708,0,-0.9492843151092529,0.2740254700183868 +149,0.2446486204862595,0,-0.9194420576095581,0.2683512568473816 +150,0.2362684905529022,0,-0.8871783018112183,0.2624461054801941 +151,0.2273823618888855,0,-0.8519489765167236,0.2561789453029633 +152,0.2180209159851074,0,-0.8128510117530823,0.2492936104536057 +153,0.2082171887159348,0,-0.7683444023132324,0.241330474615097 +154,0.1979059427976608,0,-0.7158755660057068,0.2315310537815094 +155,0.1867865473031998,0,-0.6518455147743225,0.2188136130571365 +156,0.1744795739650726,0,-0.5733897686004639,0.202166348695755 +157,0.1618070751428604,0,-0.4846505224704742,0.1823266446590424 +158,0.1536366492509842,0,-0.4063241183757782,0.1648777425289154 +159,0.150896742939949,0,-0.352251261472702,0.15364870429039 +160,0.1444112956523895,0,-0.3040241301059723,0.1427424252033234 +161,0.1336907297372818,0,-0.2535731196403503,0.1310379952192307 +162,0.1236908361315727,0,-0.1928877830505371,0.119996502995491 +163,0.1141198575496674,0,-0.1207815706729889,0.1084467321634293 +164,0.105989396572113,0,-0.04821097850799561,0.09545893967151642 +165,0.09976518899202347,0,0.01711523532867432,0.08286388963460922 +166,0.09455794841051102,0,0.07621043920516968,0.0713251605629921 +167,0.09012632071971893,0,0.1295279413461685,0.06084876507520676 +168,0.0864146426320076,0,0.1766884922981262,0.05132611468434334 +169,0.08336055278778076,0,0.2171288728713989,0.04268338158726692 +170,0.0809284970164299,0,0.2502872347831726,0.03490553423762321 +171,0.07912439107894897,0,0.2755654454231262,0.02802672609686852 +172,0.07797519862651825,0,0.292111873626709,0.02213294431567192 +173,0.07750292867422104,0,0.29850172996521,0.01737781800329685 +174,0.07769904285669327,0,0.2926696240901947,0.01397494040429592 +175,0.07852496206760406,0,0.2734304368495941,0.01199274696409702 +176,0.07992369681596756,0,0.2464590072631836,0.01049450971186161 +177,0.08154450356960297,0,0.22561015188694,0.007164394948631525 +178,0.08172857016324997,0,0.2051163911819458,0.001907259225845337 +179,0.07705020904541016,0,0.1518722474575043,-0.00117696519009769 +180,0.06939596682786942,0,0.06547375023365021,0.001884818077087402 diff --git a/data/ram_air_kite/polars_neuralfoil/19.csv b/data/ram_air_kite/polars_neuralfoil/19.csv new file mode 100644 index 00000000..63c42ad7 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/19.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.1285313665866852,0,-0.126994326710701,0.02598868682980537 +-179,0.1241457313299179,0,-0.2680770754814148,0.03851911053061485 +-178,0.1204913780093193,0,-0.3873931169509888,0.04824663698673248 +-177,0.1158396527171135,0,-0.4692745208740234,0.05324480682611465 +-176,0.1100993379950523,0,-0.5175392031669617,0.05341355875134468 +-175,0.1044765785336494,0,-0.5421056151390076,0.05009486153721809 +-174,0.09953597187995911,0,-0.5515824556350708,0.04467461258172989 +-173,0.09536059945821762,0,-0.5516120195388794,0.03801459446549416 +-172,0.09200591593980789,0,-0.5453497767448425,0.0305629875510931 +-171,0.0896076038479805,0,-0.5344233512878418,0.02258165553212166 +-170,0.08828701823949814,0,-0.5194771885871887,0.01420938409864902 +-169,0.08809727430343628,0,-0.5003827810287476,0.00545274605974555 +-168,0.08905251324176788,0,-0.476722240447998,-0.003721487475559115 +-167,0.09113810211420059,0,-0.4485036730766296,-0.01326809544116259 +-166,0.0942477285861969,0,-0.4166451096534729,-0.02310527861118317 +-165,0.0980653315782547,0,-0.3837555348873138,-0.0333109088242054 +-164,0.1021284237504005,0,-0.3543703258037567,-0.04401015490293503 +-163,0.1063012778759003,0,-0.3306542634963989,-0.0546598955988884 +-162,0.1108167618513107,0,-0.3096209764480591,-0.06418623775243759 +-161,0.1158053278923035,0,-0.2870734333992004,-0.07220012694597244 +-160,0.1212215349078178,0,-0.260395348072052,-0.07909556478261948 +-159,0.1269883811473846,0,-0.2289146035909653,-0.0853995680809021 +-158,0.1330504417419434,0,-0.1932867467403412,-0.09146183729171753 +-157,0.1393622905015945,0,-0.154622495174408,-0.09746724367141724 +-156,0.1458723992109299,0,-0.113968551158905,-0.1035061702132225 +-155,0.1525177508592606,0,-0.0721660852432251,-0.1096151471138 +-154,0.1592292189598083,0,-0.02986791729927063,-0.1157960444688797 +-153,0.1659384965896606,0,0.01240301132202148,-0.1220277100801468 +-152,0.1725877821445465,0,0.05421081185340881,-0.1282745003700256 +-151,0.1791326254606247,0,0.09518945217132568,-0.1344923675060272 +-150,0.1855415999889374,0,0.1350226104259491,-0.1406340003013611 +-149,0.1917930543422699,0,0.173440009355545,-0.1466503292322159 +-148,0.1978740990161896,0,0.2102130353450775,-0.1524949818849564 +-147,0.2037751078605652,0,0.2451542019844055,-0.1581264436244965 +-146,0.2094894349575043,0,0.2781152427196503,-0.1635117828845978 +-145,0.2150111794471741,0,0.3089941143989563,-0.1686272323131561 +-144,0.2203360050916672,0,0.3377307653427124,-0.1734589636325836 +-143,0.2254514992237091,0,0.3642987906932831,-0.1779982894659042 +-142,0.2303387373685837,0,0.3886910676956177,-0.1822371482849121 +-141,0.2349674105644226,0,0.4109091758728027,-0.186164379119873 +-140,0.2392950356006622,0,0.4309466779232025,-0.1897618621587753 +-139,0.2432740777730942,0,0.4487890005111694,-0.1930060833692551 +-138,0.2468555271625519,0,0.4644135534763336,-0.1958703100681305 +-137,0.2499918341636658,0,0.4777982532978058,-0.1983277499675751 +-136,0.2526418268680573,0,0.488922655582428,-0.2003544867038727 +-135,0.2547713816165924,0,0.497779905796051,-0.2019313275814056 +-134,0.2563519179821014,0,0.5043736696243286,-0.2030449658632278 +-133,0.2573629021644592,0,0.5087266564369202,-0.2036888897418976 +-132,0.2577888071537018,0,0.5108659267425537,-0.2038599699735641 +-131,0.2576230764389038,0,0.5108330249786377,-0.2035606354475021 +-130,0.2568705976009369,0,0.508674144744873,-0.2027957737445831 +-129,0.2555451691150665,0,0.5044327974319458,-0.2015711516141891 +-128,0.2536758780479431,0,0.4981470108032227,-0.1998914778232574 +-127,0.251304030418396,0,0.4898427724838257,-0.1977594792842865 +-126,0.2484787702560425,0,0.4795295596122742,-0.1951720118522644 +-125,0.2452568709850311,0,0.4671950042247772,-0.192121222615242 +-124,0.2416964769363403,0,0.4528111219406128,-0.1885951906442642 +-123,0.2378524392843246,0,0.4363254308700562,-0.18457892537117 +-122,0.2337739616632462,0,0.417669802904129,-0.1800588369369507 +-121,0.2294989973306656,0,0.3967511653900146,-0.1750259101390839 +-120,0.2250498980283737,0,0.3734543025493622,-0.1694787293672562 +-119,0.2204352617263794,0,0.3476424217224121,-0.1634257882833481 +-118,0.2156477719545364,0,0.3191676735877991,-0.1568860113620758 +-117,0.2106759548187256,0,0.2879007160663605,-0.1498885601758957 +-116,0.2055097967386246,0,0.2537735104560852,-0.142472967505455 +-115,0.2001472413539886,0,0.2168250977993011,-0.1346853673458099 +-114,0.1945915073156357,0,0.1772649884223938,-0.1265704929828644 +-113,0.1888415962457657,0,0.1355714797973633,-0.1181461364030838 +-112,0.1828595250844955,0,0.09267216920852661,-0.1093451753258705 +-111,0.1765062808990479,0,0.05006194114685059,-0.09993529319763184 +-110,0.1694905459880829,0,0.009369969367980957,-0.0895429328083992 +-109,0.1614713668823242,0,-0.0287134051322937,-0.07796074450016022 +-108,0.1523511409759521,0,-0.0645485520362854,-0.06552176177501678 +-107,0.1427191942930222,0,-0.09980104863643646,-0.05306370183825493 +-106,0.1336008161306381,0,-0.1385294497013092,-0.04149143770337105 +-105,0.1251517832279205,0,-0.1822061538696289,-0.03093579411506653 +-104,0.1169368177652359,0,-0.2276484221220016,-0.02087078057229519 +-103,0.1090117022395134,0,-0.2719915807247162,-0.01102042198181152 +-102,0.1021030843257904,0,-0.3139359056949615,-0.00143144722096622 +-101,0.09719344228506088,0,-0.3535175323486328,0.007829832844436169 +-100,0.0948868989944458,0,-0.394720196723938,0.01682712510228157 +-99,0.09482023119926453,0,-0.4447121918201447,0.0258144848048687 +-98,0.0953652411699295,0,-0.502652108669281,0.03517691418528557 +-97,0.09537499397993088,0,-0.5606307983398438,0.04495818167924881 +-96,0.09515435993671417,0,-0.6074881553649902,0.05378156155347824 +-95,0.094875767827034,0,-0.6244063973426819,0.05786503478884697 +-94,0.09395469725131989,0,-0.5973758101463318,0.05418302491307259 +-93,0.09164022654294968,0,-0.5403237342834473,0.04589343816041946 +-92,0.08718819916248322,0,-0.4824551939964294,0.03917620703577995 +-91,0.08000396192073822,0,-0.4267477095127106,0.03306245803833008 +-90,0.07105129957199097,0,-0.3400601446628571,0.02041283249855042 +-89,0.06044432148337364,0,-0.2407645732164383,0.01485266070812941 +-88,0.04847021028399467,0,-0.146042987704277,0.02514398656785488 +-87,0.04159359633922577,0,-0.1106209456920624,0.0419752411544323 +-86,0.04159708693623543,0,-0.180384561419487,0.05771593004465103 +-85,0.04396410658955574,0,-0.2841614484786987,0.07019183784723282 +-84,0.04735442250967026,0,-0.377471536397934,0.07899143546819687 +-83,0.05211657285690308,0,-0.4548452496528625,0.08522637188434601 +-82,0.05861023813486099,0,-0.5182148218154907,0.09039893746376038 +-81,0.06686275452375412,0,-0.5693548917770386,0.09554903209209442 +-80,0.07656235992908478,0,-0.6103113889694214,0.1008996739983559 +-79,0.08751740306615829,0,-0.6423670053482056,0.1060141548514366 +-78,0.1001885011792183,0,-0.6651809811592102,0.1103014349937439 +-77,0.1145332977175713,0,-0.6812660694122314,0.1138565987348557 +-76,0.1281925141811371,0,-0.7018561959266663,0.1176451072096825 +-75,0.1387750208377838,0,-0.739206075668335,0.1217826455831528 +-74,0.1458434909582138,0,-0.7919356226921082,0.1257123053073883 +-73,0.1501240730285645,0,-0.8514401316642761,0.1292649656534195 +-72,0.1531746387481689,0,-0.9127141237258911,0.1325432956218719 +-71,0.1561474502086639,0,-0.9733981490135193,0.135653167963028 +-70,0.1596217602491379,0,-1.031928062438965,0.1386599838733673 +-69,0.1640276610851288,0,-1.087206959724426,0.1416017562150955 +-68,0.1697283238172531,0,-1.138656497001648,0.1445066928863525 +-67,0.1767592132091522,0,-1.186667084693909,0.1474274098873138 +-66,0.1846781373023987,0,-1.232599258422852,0.1504282206296921 +-65,0.1928652673959732,0,-1.277287721633911,0.1534666568040848 +-64,0.2005461007356644,0,-1.319087743759155,0.1561670750379562 +-63,0.206486776471138,0,-1.354521989822388,0.1579446345567703 +-62,0.2106124311685562,0,-1.383497595787048,0.159229189157486 +-61,0.2151007503271103,0,-1.410379528999329,0.1614507585763931 +-60,0.2213558554649353,0,-1.437074184417725,0.1648614704608917 +-59,0.2290511429309845,0,-1.462419748306274,0.1686873733997345 +-58,0.2374174296855927,0,-1.485289812088013,0.1723085939884186 +-57,0.2458783537149429,0,-1.505322933197021,0.1754601001739502 +-56,0.2540850639343262,0,-1.522578716278076,0.1780654937028885 +-55,0.2618150413036346,0,-1.537278771400452,0.1801192313432693 +-54,0.2688892781734467,0,-1.549729585647583,0.1816318482160568 +-53,0.2751362919807434,0,-1.560299634933472,0.1826101243495941 +-52,0.2803806364536285,0,-1.569398164749146,0.1830496788024902 +-51,0.2844554781913757,0,-1.577449083328247,0.1829399615526199 +-50,0.2872194945812225,0,-1.584832310676575,0.1822682917118073 +-49,0.2885819673538208,0,-1.591842889785767,0.1810305565595627 +-48,0.2885158360004425,0,-1.598646879196167,0.1792356222867966 +-47,0.2870658934116364,0,-1.605270743370056,0.1769105046987534 +-46,0.284344881772995,0,-1.61160135269165,0.174097940325737 +-45,0.2805168330669403,0,-1.617424368858337,0.170852392911911 +-44,0.2757740914821625,0,-1.622486591339111,0.1672325879335403 +-43,0.2703130841255188,0,-1.626554131507874,0.16329225897789 +-42,0.2643210589885712,0,-1.629476189613342,0.1590752750635147 +-41,0.2579750418663025,0,-1.631164073944092,0.154617965221405 +-40,0.2514556050300598,0,-1.631536602973938,0.1499564945697784 +-39,0.2449372261762619,0,-1.630429267883301,0.1451376229524612 +-38,0.2385656535625458,0,-1.62753164768219,0.1402235925197601 +-37,0.2324049770832062,0,-1.622415542602539,0.1352865099906921 +-36,0.2264153361320496,0,-1.614632129669189,0.1303947865962982 +-35,0.2204901874065399,0,-1.603869915008545,0.1256014406681061 +-34,0.2145450413227081,0,-1.59003734588623,0.1209345310926437 +-33,0.2085642367601395,0,-1.573241949081421,0.1163970679044724 +-32,0.2025964856147766,0,-1.553642392158508,0.1119736209511757 +-31,0.1967260837554932,0,-1.531342148780823,0.1076470613479614 +-30,0.191026508808136,0,-1.506388783454895,0.1034064516425133 +-29,0.1855335980653763,0,-1.478849649429321,0.09924775362014771 +-28,0.1802395880222321,0,-1.448942065238953,0.09517361223697662 +-27,0.1751066446304321,0,-1.417206168174744,0.09121032059192657 +-26,0.170105367898941,0,-1.384779214859009,0.08746884763240814 +-25,0.1653117388486862,0,-1.353463411331177,0.0841897651553154 +-24,0.1609782427549362,0,-1.324292778968811,0.081488236784935 +-23,0.1570301502943039,0,-1.295145392417908,0.07874263077974319 +-22,0.1519333124160767,0,-1.264918565750122,0.0750170573592186 +-21,0.1440288722515106,0,-1.238269925117493,0.07037695497274399 +-20,0.1336671411991119,0,-1.220194578170776,0.0656437873840332 +-19,0.1216254979372025,0,-1.213910102844238,0.06127766519784927 +-18,0.1082372292876244,0,-1.222983360290527,0.05759212374687195 +-17,0.09366572648286819,0,-1.250480890274048,0.05540319532155991 +-16,0.07859263569116592,0,-1.289141654968262,0.05582059547305107 +-15,0.06531515717506409,0,-1.316467523574829,0.058601014316082 +-14,0.05542667955160141,0,-1.316831588745117,0.06203008443117142 +-13,0.04890728369355202,0,-1.286402702331543,0.06451275944709778 +-12,0.04458555579185486,0,-1.231730461120605,0.06571207195520401 +-11,0.04119816422462463,0,-1.163635730743408,0.06617944687604904 +-10,0.03812424466013908,0,-1.088927388191223,0.06636545062065125 +-9,0.03519921004772186,0,-1.010189414024353,0.06642787158489227 +-8,0.03240157291293144,0,-0.9284066557884216,0.06643969565629959 +-7,0.02971835248172283,0,-0.8444826602935791,0.06651239097118378 +-6,0.02711772918701172,0,-0.7596323490142822,0.06679533421993256 +-5,0.02456415817141533,0,-0.6751453876495361,0.06741585582494736 +-4,0.02204855531454086,0,-0.5919023752212524,0.06840477138757706 +-3,0.01962449215352535,0,-0.5099837779998779,0.06967030465602875 +-2,0.01742938347160816,0,-0.4289974570274353,0.07122892141342163 +-1,0.01564683765172958,0,-0.3500709533691406,0.07387195527553558 +0,0.01437028404325247,0,-0.2769100666046143,0.07918097078800201 +1,0.0134231261909008,0,-0.2115980982780457,0.08750425279140472 +2,0.01249705534428358,0,-0.1518907994031906,0.09723462909460068 +3,0.01184687856584787,0,-0.08082295954227448,0.1049633994698524 +4,0.01192097645252943,0,0.01557725667953491,0.1085018292069435 +5,0.01243768353015184,0,0.125728115439415,0.109337642788887 +6,0.01298427116125822,0,0.2357856929302216,0.1093946099281311 +7,0.0135675985366106,0,0.3349477350711823,0.1105623692274094 +8,0.01459327712655067,0,0.4088136851787567,0.1154686659574509 +9,0.01652259565889835,0,0.4551244378089905,0.1237967163324356 +10,0.01977880485355854,0,0.4936272501945496,0.1295492202043533 +11,0.02546621114015579,0,0.5229296684265137,0.1296297758817673 +12,0.03555407747626305,0,0.5185222029685974,0.1249664276838303 +13,0.05086448788642883,0,0.4709402620792389,0.1179859861731529 +14,0.06811191886663437,0,0.4168553054332733,0.111203670501709 +15,0.08247148245573044,0,0.3949324488639832,0.1055489182472229 +16,0.09269627183675766,0,0.4084393084049225,0.1006055846810341 +17,0.1003822460770607,0,0.4422827959060669,0.09574586898088455 +18,0.1070316135883331,0,0.4845467209815979,0.09070597589015961 +19,0.1133301854133606,0,0.5294104218482971,0.0854768380522728 +20,0.1195283383131027,0,0.573907732963562,0.08008168637752533 +21,0.1257216483354568,0,0.6160987615585327,0.0744805783033371 +22,0.1319243013858795,0,0.6546125411987305,0.06857992708683014 +23,0.1380985677242279,0,0.6883518099784851,0.06230448558926582 +24,0.1443044990301132,0,0.715950608253479,0.05567576363682747 +25,0.1509159952402115,0,0.7361334562301636,0.04879922792315483 +26,0.158564105629921,0,0.7493228912353516,0.041734479367733 +27,0.1679112166166306,0,0.7566870450973511,0.03435941785573959 +28,0.1801095902919769,0,0.7551987171173096,0.02616653963923454 +29,0.1973348408937454,0,0.7369412183761597,0.0162692666053772 +30,0.2191647738218307,0,0.7044270038604736,0.004556381609290838 +31,0.2386398911476135,0,0.6775895357131958,-0.007519102189689875 +32,0.252599835395813,0,0.6665992736816406,-0.0187628623098135 +33,0.2646280229091644,0,0.666580855846405,-0.02904370985925198 +34,0.2768554389476776,0,0.6721047759056091,-0.0385303907096386 +35,0.2891952991485596,0,0.6800681948661804,-0.0473942942917347 +36,0.3009501993656158,0,0.688838005065918,-0.05572234839200974 +37,0.3114937245845795,0,0.6977241635322571,-0.06350884586572647 +38,0.3204663395881653,0,0.7065119743347168,-0.07070578634738922 +39,0.3277973234653473,0,0.7151109576225281,-0.07727047801017761 +40,0.333619087934494,0,0.7233891487121582,-0.08319289982318878 +41,0.338147908449173,0,0.7311339378356934,-0.08849472552537918 +42,0.3415858447551727,0,0.7380823493003845,-0.09321365505456924 +43,0.3440852165222168,0,0.7439687848091125,-0.09739027917385101 +44,0.3457463383674622,0,0.7485581636428833,-0.1010574251413345 +45,0.3466311693191528,0,0.7516523003578186,-0.104236364364624 +46,0.3467771410942078,0,0.7530899047851562,-0.1069376096129417 +47,0.3462063074111938,0,0.7527496814727783,-0.1091627851128578 +48,0.3449285924434662,0,0.7505385279655457,-0.1109086498618126 +49,0.3429445922374725,0,0.7463989853858948,-0.1121705025434494 +50,0.340249240398407,0,0.7403023838996887,-0.1129464134573936 +51,0.3368379473686218,0,0.7322418093681335,-0.1132382154464722 +52,0.3327201902866364,0,0.7222346067428589,-0.1130523830652237 +53,0.3279238045215607,0,0.7103033065795898,-0.1123960465192795 +54,0.3225000202655792,0,0.6964879631996155,-0.111274242401123 +55,0.3165037631988525,0,0.6808487176895142,-0.1096839681267738 +56,0.309971421957016,0,0.6634882092475891,-0.1076117008924484 +57,0.30289426445961,0,0.6445631384849548,-0.1050313711166382 +58,0.2952111661434174,0,0.6242851614952087,-0.1019098535180092 +59,0.2868281602859497,0,0.6028815507888794,-0.09820996224880219 +60,0.2776541411876678,0,0.5805327892303467,-0.0939030721783638 +61,0.2676560580730438,0,0.5572941899299622,-0.08898209035396576 +62,0.2569102942943573,0,0.5330703854560852,-0.08347263187170029 +63,0.2456184476613998,0,0.50767982006073,-0.07742319256067276 +64,0.234057605266571,0,0.4810845255851746,-0.07088292390108109 +65,0.2225095629692078,0,0.4535922408103943,-0.06387452781200409 +66,0.2112031728029251,0,0.4257243573665619,-0.05641710013151169 +67,0.2002819627523422,0,0.3975561857223511,-0.04860922694206238 +68,0.1897798180580139,0,0.367917001247406,-0.04071666672825813 +69,0.1797343343496323,0,0.3343189060688019,-0.03312400728464127 +70,0.1703247874975204,0,0.2944571971893311,-0.0260942280292511 +71,0.1615777313709259,0,0.2484376728534698,-0.01956042088568211 +72,0.1532132774591446,0,0.1984444260597229,-0.01326276082545519 +73,0.144950270652771,0,0.1464547514915466,-0.007024222519248724 +74,0.1366921067237854,0,0.09324666857719421,-0.0008225202327594161 +75,0.1284820586442947,0,0.03880387544631958,0.005288613028824329 +76,0.1203878298401833,0,-0.01701653003692627,0.01125769596546888 +77,0.1123755872249603,0,-0.0740555077791214,0.01707868650555611 +78,0.1043014079332352,0,-0.1322320401668549,0.02282631956040859 +79,0.09637127071619034,0,-0.1938739567995071,0.02868986688554287 +80,0.09003309160470963,0,-0.2655717134475708,0.03482524678111076 +81,0.08731567859649658,0,-0.3480448722839355,0.04092035442590714 +82,0.08790177851915359,0,-0.427270233631134,0.04644180461764336 +83,0.08890740573406219,0,-0.4955179691314697,0.05195099860429764 +84,0.0891401618719101,0,-0.5534682273864746,0.05804559588432312 +85,0.08952301740646362,0,-0.583945631980896,0.06136807054281235 +86,0.08979102969169617,0,-0.5627450942993164,0.05632194876670837 +87,0.08844515681266785,0,-0.5076994895935059,0.04606041312217712 +88,0.08449357002973557,0,-0.4572634696960449,0.0381021611392498 +89,0.07829027622938156,0,-0.4083050787448883,0.03066946193575859 +90,0.07105129957199097,0,-0.3400601446628571,0.02041283249855042 +91,0.06316298991441727,0,-0.2667378783226013,0.01554963551461697 +92,0.05489622801542282,0,-0.1946351826190948,0.02049546875059605 +93,0.04869457334280014,0,-0.1276608556509018,0.03088026121258736 +94,0.04757082834839821,0,-0.08987069129943848,0.04163014888763428 +95,0.05189883708953857,0,-0.0812365859746933,0.0504901185631752 +96,0.06135343760251999,0,-0.06066514551639557,0.05879485607147217 +97,0.07671299576759338,0,-0.02152013033628464,0.06857426464557648 +98,0.0891324058175087,0,-0.0312519483268261,0.0781572014093399 +99,0.0955948606133461,0,-0.08187654614448547,0.08709730952978134 +100,0.09932012856006622,0,-0.1475407779216766,0.09509424865245819 +101,0.1029704213142395,0,-0.2113724946975708,0.1022112220525742 +102,0.108117938041687,0,-0.2627722024917603,0.1095224767923355 +103,0.1144062057137489,0,-0.306128978729248,0.1175635308027267 +104,0.1208034753799438,0,-0.3518690466880798,0.1254556626081467 +105,0.1269014030694962,0,-0.4028330445289612,0.1328048706054688 +106,0.1332153081893921,0,-0.4562794864177704,0.1398779302835464 +107,0.1406341940164566,0,-0.5077352523803711,0.1465183943510056 +108,0.1489718556404114,0,-0.5526989102363586,0.1526800990104675 +109,0.1574394553899765,0,-0.5905097126960754,0.159037858247757 +110,0.1659970283508301,0,-0.6230313777923584,0.1658437848091125 +111,0.1750086396932602,0,-0.6520512104034424,0.1730979233980179 +112,0.1853305846452713,0,-0.6785720586776733,0.180941715836525 +113,0.1976209133863449,0,-0.7029973268508911,0.1896406710147858 +114,0.2114816606044769,0,-0.7253744006156921,0.1994037926197052 +115,0.2257833927869797,0,-0.7451473474502563,0.2102342844009399 +116,0.23915895819664,0,-0.7613429427146912,0.2218294590711594 +117,0.2497147768735886,0,-0.7737616300582886,0.2334944903850555 +118,0.2556580305099487,0,-0.7834765911102295,0.2441990822553635 +119,0.2570159137248993,0,-0.7919057011604309,0.252892017364502 +120,0.255540668964386,0,-0.7997766137123108,0.259030282497406 +121,0.2531758844852448,0,-0.8069798946380615,0.2627885341644287 +122,0.2511022388935089,0,-0.8131493330001831,0.2646899223327637 +123,0.2497711032629013,0,-0.8182549476623535,0.2652959823608398 +124,0.2492174208164215,0,-0.8225555419921875,0.2650970816612244 +125,0.2492643147706985,0,-0.8261739015579224,0.2644257545471191 +126,0.249653160572052,0,-0.8289019465446472,0.2634297013282776 +127,0.2501297295093536,0,-0.8303182125091553,0.2621276080608368 +128,0.2504921555519104,0,-0.8299796581268311,0.2604873776435852 +129,0.2505940198898315,0,-0.8275457620620728,0.2584774494171143 +130,0.2503378391265869,0,-0.8228167295455933,0.256084680557251 +131,0.2496630996465683,0,-0.815724790096283,0.2533157765865326 +132,0.2485371828079224,0,-0.8063136339187622,0.2501921057701111 +133,0.2469552457332611,0,-0.7947164177894592,0.2467454373836517 +134,0.2449319809675217,0,-0.7811405658721924,0.2430159151554108 +135,0.2425017952919006,0,-0.7658646702766418,0.2390543520450592 +136,0.2397173792123795,0,-0.7492375373840332,0.2349240779876709 +137,0.2366485744714737,0,-0.7316962480545044,0.2307095229625702 +138,0.2333799004554749,0,-0.713759183883667,0.2265166491270065 +139,0.230012983083725,0,-0.6960439682006836,0.2224812209606171 +140,0.2266594618558884,0,-0.6792380213737488,0.2187656462192535 +141,0.2234382778406143,0,-0.6640313863754272,0.2155462801456451 +142,0.2204628586769104,0,-0.65101158618927,0.2129901349544525 +143,0.2178287357091904,0,-0.6405316591262817,0.2112216055393219 +144,0.2155808955430984,0,-0.6324928998947144,0.2102680206298828 +145,0.2136538922786713,0,-0.6259720325469971,0.209973931312561 +146,0.2118074297904968,0,-0.6188870668411255,0.2099233418703079 +147,0.2096472680568695,0,-0.6083369255065918,0.2094981968402863 +148,0.2067241966724396,0,-0.5917384028434753,0.2081075012683868 +149,0.2026508897542953,0,-0.5678690671920776,0.2053970396518707 +150,0.1971853822469711,0,-0.5372148752212524,0.2013078629970551 +151,0.1903246939182281,0,-0.5017290115356445,0.1960022747516632 +152,0.1823969334363937,0,-0.4642419219017029,0.1897223293781281 +153,0.1740145832300186,0,-0.4273900389671326,0.1826063394546509 +154,0.1657888144254684,0,-0.3923240602016449,0.1746034324169159 +155,0.158017709851265,0,-0.3582771122455597,0.1656702309846878 +156,0.1506713032722473,0,-0.3232524394989014,0.1560139656066895 +157,0.1435979008674622,0,-0.2852000296115875,0.1460301876068115 +158,0.1366384327411652,0,-0.2431922554969788,0.1360865384340286 +159,0.1296146363019943,0,-0.1976873278617859,0.1264148056507111 +160,0.1226415634155273,0,-0.1497674286365509,0.1169442310929298 +161,0.11677335947752,0,-0.1001337319612503,0.1070128828287125 +162,0.1125258579850197,0,-0.04928880929946899,0.09642034024000168 +163,0.1088450253009796,0,0.002792343497276306,0.08582792431116104 +164,0.1051234155893326,0,0.05617313086986542,0.07554323226213455 +165,0.101491205394268,0,0.1096288934350014,0.0655386745929718 +166,0.09834130853414536,0,0.1607429981231689,0.05581615120172501 +167,0.09609101712703705,0,0.2069588005542755,0.046476811170578 +168,0.09505841881036758,0,0.2464327365159988,0.03765283524990082 +169,0.09539252519607544,0,0.2783688306808472,0.02941409312188625 +170,0.09699799120426178,0,0.303169310092926,0.02171897515654564 +171,0.09947419166564941,0,0.322243869304657,0.01445052307099104 +172,0.1021141111850739,0,0.3373295664787292,0.00750358123332262 +173,0.1039828732609749,0,0.3491001725196838,0.0009053647518157959 +174,0.1042732372879982,0,0.354498416185379,-0.004956471733748913 +175,0.1034495681524277,0,0.3437938690185547,-0.009041940793395042 +176,0.1046190038323402,0,0.3037484884262085,-0.009814923629164696 +177,0.1113053485751152,0,0.2305180728435516,-0.006202036049216986 +178,0.1216927915811539,0,0.1312194764614105,0.001698750304058194 +179,0.1290268450975418,0,0.01035987585783005,0.01297222357243299 +180,0.1285313665866852,0,-0.126994326710701,0.02598868682980537 diff --git a/data/ram_air_kite/polars_neuralfoil/2.csv b/data/ram_air_kite/polars_neuralfoil/2.csv new file mode 100644 index 00000000..c65beefd --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/2.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.04674866050481796,0,-0.2664810717105865,0.01297339517623186 +-179,0.04427330195903778,0,-0.3112302720546722,0.01178412698209286 +-178,0.04375169053673744,0,-0.3445670306682587,0.01048292778432369 +-177,0.04425694420933723,0,-0.3618447184562683,0.008243406191468239 +-176,0.04532740637660027,0,-0.3638973236083984,0.004864776041358709 +-175,0.04676331952214241,0,-0.354599267244339,0.0006050169467926025 +-174,0.04845298454165459,0,-0.3378593921661377,-0.004214835353195667 +-173,0.050332210958004,0,-0.3162145912647247,-0.009429800324141979 +-172,0.05241754278540611,0,-0.290709912776947,-0.01506094913929701 +-171,0.05482098460197449,0,-0.2614411413669586,-0.0212269090116024 +-170,0.05772031098604202,0,-0.2282440662384033,-0.02801693603396416 +-169,0.06132049113512039,0,-0.1911875605583191,-0.03538348525762558 +-168,0.06584718078374863,0,-0.1511487066745758,-0.04302351921796799 +-167,0.07153977453708649,0,-0.1126063019037247,-0.05022593587636948 +-166,0.07839225977659225,0,-0.08767497539520264,-0.05574945360422134 +-165,0.08492866903543472,0,-0.0779595822095871,-0.05869405344128609 +-164,0.08836013823747635,0,-0.062479168176651,-0.061459731310606 +-163,0.08903306722640991,0,-0.01500281691551208,-0.06966319680213928 +-162,0.09286299347877502,0,0.06159964203834534,-0.08374167233705521 +-161,0.1010922938585281,0,0.1438563764095306,-0.09885986149311066 +-160,0.1108939573168755,0,0.2194437980651855,-0.1120630875229836 +-159,0.1207558438181877,0,0.2865173816680908,-0.1230273246765137 +-158,0.1304054260253906,0,0.3465740084648132,-0.1324175894260406 +-157,0.1398439109325409,0,0.400992214679718,-0.1410157233476639 +-156,0.1490062326192856,0,0.4502204060554504,-0.1494027078151703 +-155,0.1578115820884705,0,0.4944659173488617,-0.1578346788883209 +-154,0.1662889122962952,0,0.5345397591590881,-0.1662399023771286 +-153,0.1745659112930298,0,0.5716636180877686,-0.1743974834680557 +-152,0.1827500313520432,0,0.6067380905151367,-0.1821468621492386 +-151,0.1908494681119919,0,0.6401345729827881,-0.1894528567790985 +-150,0.1987839043140411,0,0.6719162464141846,-0.1963586658239365 +-149,0.2064367532730103,0,0.7020364999771118,-0.2029286921024323 +-148,0.2136993408203125,0,0.7304178476333618,-0.2092211544513702 +-147,0.2204908728599548,0,0.7569957971572876,-0.2152786552906036 +-146,0.2267656177282333,0,0.7817448377609253,-0.2211282998323441 +-145,0.2325092852115631,0,0.8047188520431519,-0.2267812192440033 +-144,0.2377315759658813,0,0.8260599374771118,-0.2322357594966888 +-143,0.2424561232328415,0,0.8459873199462891,-0.2374784648418427 +-142,0.2467129677534103,0,0.8647488355636597,-0.2424877882003784 +-141,0.2505281865596771,0,0.8825695514678955,-0.2472368776798248 +-140,0.2539215385913849,0,0.8996015787124634,-0.2516979277133942 +-139,0.256910115480423,0,0.9159208536148071,-0.2558454871177673 +-138,0.2595042288303375,0,0.9315364956855774,-0.2596578001976013 +-137,0.2617155611515045,0,0.9464142322540283,-0.2631188631057739 +-136,0.2635558843612671,0,0.9605063199996948,-0.2662183046340942 +-135,0.2650356590747833,0,0.9737595319747925,-0.2689493596553802 +-134,0.2661674022674561,0,0.9861289858818054,-0.2713096737861633 +-133,0.2669666707515717,0,0.9975680112838745,-0.2732974588871002 +-132,0.267449826002121,0,1.00802481174469,-0.2749117314815521 +-131,0.2676407992839813,0,1.017433762550354,-0.2761512696743011 +-130,0.2675650119781494,0,1.02570366859436,-0.2770149111747742 +-129,0.2672510743141174,0,1.032693028450012,-0.2774989306926727 +-128,0.2667313814163208,0,1.038232326507568,-0.2776008248329163 +-127,0.266033798456192,0,1.042116761207581,-0.2773162722587585 +-126,0.2651764750480652,0,1.044150590896606,-0.2766402363777161 +-125,0.2641636431217194,0,1.044202923774719,-0.2755652964115143 +-124,0.2629799842834473,0,1.042255401611328,-0.2740792334079742 +-123,0.2615905404090881,0,1.038418173789978,-0.2721556425094604 +-122,0.2599494457244873,0,1.032937049865723,-0.2697481513023376 +-121,0.2579970955848694,0,1.026164770126343,-0.2667799890041351 +-120,0.2556560337543488,0,1.018553376197815,-0.2631442546844482 +-119,0.2528145909309387,0,1.010563611984253,-0.258728414773941 +-118,0.2493268996477127,0,1.00233793258667,-0.2534753978252411 +-117,0.2450684905052185,0,0.9931145906448364,-0.2474610805511475 +-116,0.2400371879339218,0,0.9809218049049377,-0.2409046590328217 +-115,0.2343980371952057,0,0.9632821083068848,-0.2340224087238312 +-114,0.2283020913600922,0,0.9386017918586731,-0.2268007546663284 +-113,0.2216329872608185,0,0.9066473245620728,-0.2189347445964813 +-112,0.2139966785907745,0,0.8676921129226685,-0.2099729478359222 +-111,0.2049120664596558,0,0.8216475248336792,-0.1994869560003281 +-110,0.1940108686685562,0,0.7679551839828491,-0.1871541887521744 +-109,0.1812116503715515,0,0.7060494422912598,-0.1727972030639648 +-108,0.1668715924024582,0,0.6359776258468628,-0.1564221680164337 +-107,0.1520085334777832,0,0.5589357614517212,-0.1382980346679688 +-106,0.1390484869480133,0,0.4782786667346954,-0.1193657293915749 +-105,0.1323862671852112,0,0.4028395116329193,-0.1025093346834183 +-104,0.1317044943571091,0,0.3430640995502472,-0.09083129465579987 +-103,0.128114178776741,0,0.298868715763092,-0.0824965164065361 +-102,0.1195370033383369,0,0.2584209442138672,-0.07419418543577194 +-101,0.1115089133381844,0,0.2081159055233002,-0.06474309414625168 +-100,0.1049298569560051,0,0.1498512029647827,-0.054627675563097 +-99,0.09865833818912506,0,0.09080670773983002,-0.04482777044177055 +-98,0.09263098984956741,0,0.03335314989089966,-0.03569694980978966 +-97,0.08707795292139053,0,-0.02130168676376343,-0.02738110721111298 +-96,0.08229827880859375,0,-0.07153632491827011,-0.02017838135361671 +-95,0.07843679189682007,0,-0.1142928451299667,-0.01452510338276625 +-94,0.07395629584789276,0,-0.1415118724107742,-0.01001906394958496 +-93,0.06539525091648102,0,-0.1497212797403336,-0.004062181804329157 +-92,0.04547853022813797,0,-0.0780002549290657,0.009099334478378296 +-91,0.0302397832274437,0,-0.01063834130764008,0.02228054776787758 +-90,0.02388009056448936,0,-0.06486640870571136,0.02955746091902256 +-89,0.02059205062687397,0,-0.1320223063230515,0.03217894583940506 +-88,0.01882144249975681,0,-0.2132229208946228,0.03117482736706734 +-87,0.01772740855813026,0,-0.3162711262702942,0.03088560327887535 +-86,0.0177464634180069,0,-0.4252961575984955,0.03334229439496994 +-85,0.02010472863912582,0,-0.5109673142433167,0.03799067065119743 +-84,0.02601926773786545,0,-0.5543571710586548,0.04201708734035492 +-83,0.03580207750201225,0,-0.5646265745162964,0.04386652633547783 +-82,0.04796696826815605,0,-0.5698342323303223,0.04493865370750427 +-81,0.06047948077321053,0,-0.5885655283927917,0.04688779264688492 +-80,0.07221988588571548,0,-0.6241087317466736,0.05053344368934631 +-79,0.08274657279253006,0,-0.6735246181488037,0.05583764240145683 +-78,0.09191139787435532,0,-0.7322577834129333,0.06213655322790146 +-77,0.09919475764036179,0,-0.7950630187988281,0.06877659261226654 +-76,0.105176642537117,0,-0.8577024340629578,0.07551083713769913 +-75,0.113326407968998,0,-0.9191949963569641,0.08115241676568985 +-74,0.1174022480845451,0,-0.9814308285713196,0.08483041822910309 +-73,0.121616505086422,0,-1.043035984039307,0.09098441898822784 +-72,0.1302227675914764,0,-1.09976601600647,0.1002525687217712 +-71,0.1412635743618011,0,-1.146804809570312,0.1097439303994179 +-70,0.1543648540973663,0,-1.183159589767456,0.1191573515534401 +-69,0.1699467748403549,0,-1.207448482513428,0.1287980377674103 +-68,0.1884959489107132,0,-1.219261765480042,0.1390248090028763 +-67,0.2094942778348923,0,-1.221542239189148,0.1497937142848969 +-66,0.2309700548648834,0,-1.220155596733093,0.1605712324380875 +-65,0.2510244846343994,0,-1.219950079917908,0.1707708090543747 +-64,0.2693923711776733,0,-1.222396969795227,0.1801013946533203 +-63,0.2868309617042542,0,-1.227029085159302,0.1885154992341995 +-62,0.3038980662822723,0,-1.233251810073853,0.196047306060791 +-61,0.3205989897251129,0,-1.240758657455444,0.2027305662631989 +-60,0.3365990221500397,0,-1.249346613883972,0.2085862159729004 +-59,0.351487934589386,0,-1.258734464645386,0.2136251181364059 +-58,0.3649480938911438,0,-1.268540620803833,0.2178570032119751 +-57,0.3768084049224854,0,-1.278332471847534,0.2213018834590912 +-56,0.387024462223053,0,-1.287688970565796,0.2239887267351151 +-55,0.3956381976604462,0,-1.296262741088867,0.2259573042392731 +-54,0.4027276039123535,0,-1.303800344467163,0.227252408862114 +-53,0.4083877801895142,0,-1.310135126113892,0.2279186993837357 +-52,0.4127160608768463,0,-1.315189838409424,0.2279968708753586 +-51,0.4157990217208862,0,-1.318951368331909,0.227523997426033 +-50,0.4177127480506897,0,-1.321452856063843,0.226528599858284 +-49,0.418521523475647,0,-1.322761654853821,0.2250324487686157 +-48,0.4182712137699127,0,-1.322969675064087,0.2230484485626221 +-47,0.4169882535934448,0,-1.322194695472717,0.2205787897109985 +-46,0.4146727025508881,0,-1.320576906204224,0.2176153212785721 +-45,0.411298394203186,0,-1.318299770355225,0.2141365259885788 +-44,0.406800776720047,0,-1.315590858459473,0.2101082503795624 +-43,0.4010724127292633,0,-1.312744855880737,0.2054807841777802 +-42,0.3939664661884308,0,-1.310127854347229,0.2001910209655762 +-41,0.3853286802768707,0,-1.308188319206238,0.1941666156053543 +-40,0.3750567734241486,0,-1.307447075843811,0.1873286515474319 +-39,0.3631976544857025,0,-1.308493971824646,0.1795982420444489 +-38,0.349998265504837,0,-1.311977386474609,0.1708930134773254 +-37,0.3357918560504913,0,-1.318638205528259,0.1611248552799225 +-36,0.3205658197402954,0,-1.329495310783386,0.1501932442188263 +-35,0.3032256960868835,0,-1.346283793449402,0.1379900872707367 +-34,0.2816586792469025,0,-1.371166467666626,0.1245077475905418 +-33,0.2558014392852783,0,-1.402840256690979,0.1102361902594566 +-32,0.2303773462772369,0,-1.431851863861084,0.09650783240795135 +-31,0.2100757211446762,0,-1.447142243385315,0.08467693626880646 +-30,0.1950029581785202,0,-1.447211980819702,0.07485960423946381 +-29,0.1830946654081345,0,-1.438204288482666,0.06624431908130646 +-28,0.1730305254459381,0,-1.425189614295959,0.05820101499557495 +-27,0.1640190631151199,0,-1.410463690757751,0.05052053928375244 +-26,0.1549343913793564,0,-1.397173762321472,0.04315261542797089 +-25,0.1452368348836899,0,-1.387190222740173,0.03617249056696892 +-24,0.1352613121271133,0,-1.37920606136322,0.02963513508439064 +-23,0.1252604126930237,0,-1.371760845184326,0.0235751811414957 +-22,0.1149676144123077,0,-1.363803505897522,0.01812219247221947 +-21,0.1040699034929276,0,-1.355976223945618,0.0133162559941411 +-20,0.09236198663711548,0,-1.351674199104309,0.00902074296027422 +-19,0.07977037131786346,0,-1.353996992111206,0.005165106151252985 +-18,0.06683953106403351,0,-1.361399173736572,0.002012538956478238 +-17,0.05452709272503853,0,-1.367218494415283,-1.745820009091403e-05 +-16,0.04363109543919563,0,-1.363898754119873,-0.0006918728468008339 +-15,0.03486906737089157,0,-1.346593379974365,0.0004317760467529297 +-14,0.02827752754092216,0,-1.314878940582275,0.003593415021896362 +-13,0.02382401935756207,0,-1.272098660469055,0.009531289339065552 +-12,0.02097989246249199,0,-1.215887308120728,0.01584478095173836 +-11,0.01851633191108704,0,-1.144367098808289,0.02121080830693245 +-10,0.0166843980550766,0,-1.071061134338379,0.02754759788513184 +-9,0.01523712277412415,0,-0.9946861267089844,0.03389099985361099 +-8,0.01397257950156927,0,-0.9108570218086243,0.03963887691497803 +-7,0.01282317005097866,0,-0.818755030632019,0.0443936288356781 +-6,0.01187341380864382,0,-0.7180306911468506,0.04787372425198555 +-5,0.01135150995105505,0,-0.6078416705131531,0.04991800338029861 +-4,0.01116672623902559,0,-0.492158830165863,0.05094723775982857 +-3,0.01110576093196869,0,-0.3746651411056519,0.0514901764690876 +-2,0.01113328989595175,0,-0.255835086107254,0.05176737904548645 +-1,0.01125045586377382,0,-0.1362583637237549,0.05187054350972176 +0,0.01143672876060009,0,-0.01679163426160812,0.05187575146555901 +1,0.01167174428701401,0,0.1020016670227051,0.05184491723775864 +2,0.01194876525551081,0,0.2198622971773148,0.05180928856134415 +3,0.01227907184511423,0,0.3368191123008728,0.05178238078951836 +4,0.01266882661730051,0,0.4528210759162903,0.05182834342122078 +5,0.01305146049708128,0,0.5664651989936829,0.05211868137121201 +6,0.01336512714624405,0,0.6759039163589478,0.05283388495445251 +7,0.01370137091726065,0,0.7809049487113953,0.05428794771432877 +8,0.01436519343405962,0,0.8831662535667419,0.05585195496678352 +9,0.01550106145441532,0,0.9821397066116333,0.05761217325925827 +10,0.01708561927080154,0,1.090488195419312,0.05649079754948616 +11,0.01885619759559631,0,1.20829713344574,0.05207552760839462 +12,0.0210220068693161,0,1.310747623443604,0.04848902300000191 +13,0.02483860030770302,0,1.350682973861694,0.05281124636530876 +14,0.03266620635986328,0,1.349628686904907,0.05693171545863152 +15,0.04521562531590462,0,1.332371711730957,0.05588363483548164 +16,0.06139158457517624,0,1.305002450942993,0.05090813711285591 +17,0.0791977122426033,0,1.275661945343018,0.04401025176048279 +18,0.0971144512295723,0,1.250362038612366,0.03639264777302742 +19,0.1179100945591927,0,1.200948715209961,0.02636652067303658 +20,0.1453279107809067,0,1.106454014778137,0.01260041631758213 +21,0.1604450196027756,0,1.076536655426025,0.001555597758851945 +22,0.1674789488315582,0,1.086232542991638,-0.007262838073074818 +23,0.1768087297677994,0,1.093498826026917,-0.01603172346949577 +24,0.18802610039711,0,1.100769281387329,-0.0248307827860117 +25,0.1996333599090576,0,1.111309170722961,-0.03352685645222664 +26,0.210686057806015,0,1.125668525695801,-0.04203686118125916 +27,0.220822885632515,0,1.143077850341797,-0.05031869560480118 +28,0.2300864309072495,0,1.162357330322266,-0.05834988504648209 +29,0.2386964559555054,0,1.182425975799561,-0.06611605733633041 +30,0.2468806654214859,0,1.202502250671387,-0.07360947132110596 +31,0.254804402589798,0,1.222097754478455,-0.08083923161029816 +32,0.26255202293396,0,1.240931034088135,-0.08782879263162613 +33,0.2701386213302612,0,1.258846998214722,-0.09460608661174774 +34,0.2775317132472992,0,1.275753498077393,-0.1011900082230568 +35,0.284676730632782,0,1.291573405265808,-0.1075873598456383 +36,0.2915253341197968,0,1.306209325790405,-0.1137967854738235 +37,0.2980535328388214,0,1.319515585899353,-0.1198165416717529 +38,0.3042633831501007,0,1.331300258636475,-0.1256479918956757 +39,0.310176283121109,0,1.341366648674011,-0.131296381354332 +40,0.3158039450645447,0,1.349578499794006,-0.1367608308792114 +41,0.3211263716220856,0,1.355921268463135,-0.1420266926288605 +42,0.3260771632194519,0,1.360518932342529,-0.1470643579959869 +43,0.3305568993091583,0,1.363597750663757,-0.1518302410840988 +44,0.3344482779502869,0,1.36542284488678,-0.1562760770320892 +45,0.3376355469226837,0,1.366245746612549,-0.1603571623563766 +46,0.3400224149227142,0,1.36626923084259,-0.1640365570783615 +47,0.3415331542491913,0,1.365633964538574,-0.1672858446836472 +48,0.3421167433261871,0,1.364426136016846,-0.1700856983661652 +49,0.3417427241802216,0,1.362675070762634,-0.1724223792552948 +50,0.340398371219635,0,1.360369205474854,-0.174288809299469 +51,0.3380857408046722,0,1.357452034950256,-0.175682470202446 +52,0.3348223865032196,0,1.353819251060486,-0.1766047775745392 +53,0.3306421041488647,0,1.349323034286499,-0.1770648807287216 +54,0.325592964887619,0,1.343768358230591,-0.1770804077386856 +55,0.3197408318519592,0,1.33691930770874,-0.1766780614852905 +56,0.3131611347198486,0,1.328528523445129,-0.1758964508771896 +57,0.3059306740760803,0,1.318362474441528,-0.1747784912586212 +58,0.2981123924255371,0,1.306230902671814,-0.1733622252941132 +59,0.2897501885890961,0,1.292010188102722,-0.1716666519641876 +60,0.2808691263198853,0,1.275616884231567,-0.1696783006191254 +61,0.2715025246143341,0,1.256956815719604,-0.1673464477062225 +62,0.2617123126983643,0,1.235847949981689,-0.1645875573158264 +63,0.2516111433506012,0,1.211966037750244,-0.1612980961799622 +64,0.2413535118103027,0,1.184850692749023,-0.1573740690946579 +65,0.2311088144779205,0,1.153965473175049,-0.152726486325264 +66,0.2210247218608856,0,1.118810534477234,-0.1472988128662109 +67,0.2111958116292953,0,1.079057693481445,-0.1410774290561676 +68,0.2016400843858719,0,1.034672021865845,-0.1341023743152618 +69,0.1922941952943802,0,0.9859514236450195,-0.1264688074588776 +70,0.1830308437347412,0,0.9334691762924194,-0.1183127760887146 +71,0.1737025380134583,0,0.8779274225234985,-0.1097800955176353 +72,0.164189487695694,0,0.8200170397758484,-0.1009970083832741 +73,0.1544249951839447,0,0.7602993249893188,-0.09205256402492523 +74,0.1444104015827179,0,0.6991657614707947,-0.08300379663705826 +75,0.13434137403965,0,0.63686603307724,-0.07391981035470963 +76,0.1253365278244019,0,0.5735953450202942,-0.06508506089448929 +77,0.1201037243008614,0,0.5086523294448853,-0.05741826444864273 +78,0.1168576627969742,0,0.4456949830055237,-0.05222133919596672 +79,0.1102940738201141,0,0.3906604647636414,-0.04766321927309036 +80,0.1042182371020317,0,0.3296353220939636,-0.04151148721575737 +81,0.09924464672803879,0,0.2653971910476685,-0.03513183444738388 +82,0.09407795965671539,0,0.204551175236702,-0.0292799174785614 +83,0.08813044428825378,0,0.1490853428840637,-0.02354744449257851 +84,0.08101294189691544,0,0.09811728447675705,-0.01741086319088936 +85,0.07254756987094879,0,0.04825230315327644,-0.01041534543037415 +86,0.05994726344943047,0,0.0234762504696846,-0.001059800386428833 +87,0.04383965209126472,0,0.05836234986782074,0.0116887865588069 +88,0.03392931818962097,0,0.05136100947856903,0.02115518786013126 +89,0.02797018736600876,0,-0.001640260219573975,0.02643653377890587 +90,0.02388009056448936,0,-0.06486640870571136,0.02955746091902256 +91,0.02102818712592125,0,-0.1321087330579758,0.02992557547986507 +92,0.01899104751646519,0,-0.206927478313446,0.0286196656525135 +93,0.0181160531938076,0,-0.2885357737541199,0.02916033565998077 +94,0.01968193054199219,0,-0.3568072319030762,0.03348366916179657 +95,0.02519386634230614,0,-0.3826704621315002,0.03869878128170967 +96,0.03567156195640564,0,-0.3637681305408478,0.04183564707636833 +97,0.04960597306489944,0,-0.334715873003006,0.04402849078178406 +98,0.06267016381025314,0,-0.3288763463497162,0.04762452095746994 +99,0.07266438752412796,0,-0.3551326394081116,0.05396952480077744 +100,0.07978686690330505,0,-0.4104817509651184,0.06331729143857956 +101,0.08461450785398483,0,-0.4803497195243835,0.07465314865112305 +102,0.08922219276428223,0,-0.5454168915748596,0.0869557112455368 +103,0.09659477323293686,0,-0.5958486199378967,0.099631667137146 +104,0.1069384589791298,0,-0.6279658079147339,0.1123219728469849 +105,0.12150938808918,0,-0.6415820717811584,0.1247248202562332 +106,0.13856540620327,0,-0.6428179144859314,0.1355521380901337 +107,0.1494643688201904,0,-0.648108959197998,0.1467453390359879 +108,0.1611639112234116,0,-0.681633472442627,0.1654485166072845 +109,0.1816349476575851,0,-0.7275282740592957,0.1884335726499557 +110,0.2025321573019028,0,-0.7687059640884399,0.208843857049942 +111,0.2177908718585968,0,-0.8060659170150757,0.2251558601856232 +112,0.227283388376236,0,-0.841998815536499,0.2377213984727859 +113,0.2333328425884247,0,-0.8763152360916138,0.2473666667938232 +114,0.237790584564209,0,-0.9076889753341675,0.2549594044685364 +115,0.2415025979280472,0,-0.9352774024009705,0.2611864805221558 +116,0.244778960943222,0,-0.9589517116546631,0.2664876580238342 +117,0.2477376908063889,0,-0.9789751768112183,0.2711158394813538 +118,0.25043123960495,0,-0.9957033395767212,0.2752148807048798 +119,0.252884566783905,0,-1.009471893310547,0.2788699269294739 +120,0.2551029920578003,0,-1.020570993423462,0.2821321487426758 +121,0.2570802569389343,0,-1.029263496398926,0.2850312292575836 +122,0.2588000893592834,0,-1.035793304443359,0.2875818312168121 +123,0.2602444291114807,0,-1.040380835533142,0.2897888123989105 +124,0.2613969147205353,0,-1.043225884437561,0.2916508316993713 +125,0.2622430920600891,0,-1.044493675231934,0.2931632399559021 +126,0.2627729475498199,0,-1.044324636459351,0.2943204343318939 +127,0.2629819214344025,0,-1.042826890945435,0.2951162755489349 +128,0.262866884469986,0,-1.040081024169922,0.2955441176891327 +129,0.2624324858188629,0,-1.036146521568298,0.2955991625785828 +130,0.2616824805736542,0,-1.031063914299011,0.2952767014503479 +131,0.2606243789196014,0,-1.024858117103577,0.2945728898048401 +132,0.2592682838439941,0,-1.017543196678162,0.2934853136539459 +133,0.2576248645782471,0,-1.009122848510742,0.2920109331607819 +134,0.2557057738304138,0,-0.9995982646942139,0.2901491224765778 +135,0.2535229027271271,0,-0.9889624118804932,0.2879000008106232 +136,0.2510887086391449,0,-0.9772053956985474,0.2852642238140106 +137,0.2484162151813507,0,-0.9643152952194214,0.2822445034980774 +138,0.2455164045095444,0,-0.9502813816070557,0.2788454592227936 +139,0.2424017935991287,0,-0.9350876808166504,0.2750737071037292 +140,0.2390833497047424,0,-0.9187173843383789,0.2709391713142395 +141,0.2355712503194809,0,-0.9011548161506653,0.2664540708065033 +142,0.2318755388259888,0,-0.882379412651062,0.2616353929042816 +143,0.2280051857233047,0,-0.8623645305633545,0.2565037310123444 +144,0.2239690721035004,0,-0.8410828113555908,0.2510841190814972 +145,0.2197740525007248,0,-0.8184928894042969,0.2454057484865189 +146,0.2154273688793182,0,-0.794549822807312,0.2395026981830597 +147,0.2109344899654388,0,-0.7691950798034668,0.2334130257368088 +148,0.2062993794679642,0,-0.7423627376556396,0.2271780073642731 +149,0.2015231549739838,0,-0.7139754295349121,0.2208417952060699 +150,0.1966032832860947,0,-0.6839450001716614,0.2144498825073242 +151,0.1915329992771149,0,-0.652167797088623,0.2080475836992264 +152,0.186302125453949,0,-0.6185179948806763,0.2016775161027908 +153,0.1809022724628448,0,-0.5828302502632141,0.1953740417957306 +154,0.1753437668085098,0,-0.544888973236084,0.1891551911830902 +155,0.1696800887584686,0,-0.50441575050354,0.183000773191452 +156,0.1640463620424271,0,-0.4610868394374847,0.1768097132444382 +157,0.15866918861866,0,-0.4145195782184601,0.1703080832958221 +158,0.1537723541259766,0,-0.3639726936817169,0.1628783643245697 +159,0.149328202009201,0,-0.3072893619537354,0.1533015370368958 +160,0.1453910171985626,0,-0.2404783070087433,0.139918178319931 +161,0.1448183953762054,0,-0.1758399307727814,0.1254476606845856 +162,0.1456838399171829,0,-0.1654099524021149,0.1207320243120193 +163,0.1360472738742828,0,-0.1708483099937439,0.1162513047456741 +164,0.1226894706487656,0,-0.1334384381771088,0.1037226468324661 +165,0.1108636409044266,0,-0.07081012427806854,0.0891522541642189 +166,0.1007715240120888,0,-0.0232054591178894,0.07675818353891373 +167,0.0934252142906189,0,0.004195451736450195,0.06664306670427322 +168,0.08750390261411667,0,0.01463189721107483,0.05992843955755234 +169,0.08234809339046478,0,0.02013922482728958,0.05514327436685562 +170,0.07793702185153961,0,0.03066575527191162,0.05031188577413559 +171,0.07449541240930557,0,0.04485402256250381,0.04527389258146286 +172,0.07217227667570114,0,0.06068084388971329,0.0401829406619072 +173,0.07084622979164124,0,0.08320991694927216,0.03379914164543152 +174,0.06942552328109741,0,0.1129336804151535,0.02444525435566902 +175,0.06785048544406891,0,0.1237734630703926,0.01304154098033905 +176,0.0701594278216362,0,0.0730414092540741,0.006250029895454645 +177,0.0689353421330452,0,-0.04160614311695099,0.009347891435027122 +178,0.05885955691337585,0,-0.1504932790994644,0.01262747962027788 +179,0.05191643536090851,0,-0.2144880294799805,0.0138303879648447 +180,0.04674866050481796,0,-0.2664810717105865,0.01297339517623186 diff --git a/data/ram_air_kite/polars_neuralfoil/20.csv b/data/ram_air_kite/polars_neuralfoil/20.csv new file mode 100644 index 00000000..c8251157 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/20.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,1,0,-3.183364868164062,-2.710425615310669 +-179,1,0,-3.184689521789551,-2.71399450302124 +-178,1,0,-3.186124801635742,-2.717472076416016 +-177,1,0,-3.187509536743164,-2.720910310745239 +-176,1,0,-3.18864917755127,-2.724374294281006 +-175,1,0,-3.189281463623047,-2.727946758270264 +-174,1,0,-3.18909740447998,-2.731710433959961 +-173,1,0,-3.187695503234863,-2.735776901245117 +-172,1,0,-3.184689521789551,-2.740224123001099 +-171,1,0,-3.179865837097168,-2.745104312896729 +-170,1,0,-3.173080444335938,-2.750426530838013 +-169,1,0,-3.164335250854492,-2.756154298782349 +-168,1,0,-3.153745651245117,-2.76226019859314 +-167,1,0,-3.141529083251953,-2.768665790557861 +-166,1,0,-3.127912521362305,-2.775310516357422 +-165,1,0,-3.113240242004395,-2.782121181488037 +-164,1,0,-3.097753524780273,-2.789043188095093 +-163,1,0,-3.081718444824219,-2.796017408370972 +-162,1,0,-3.065454483032227,-2.802968502044678 +-161,1,0,-3.049150466918945,-2.809860944747925 +-160,1,0,-3.033024787902832,-2.816642761230469 +-159,1,0,-3.017230033874512,-2.823290348052979 +-158,1,0,-3.001889228820801,-2.829768419265747 +-157,1,0,-2.987112045288086,-2.836075305938721 +-156,1,0,-2.972982406616211,-2.842188358306885 +-155,1,0,-2.959510803222656,-2.848114013671875 +-154,1,0,-2.94680118560791,-2.853846788406372 +-153,1,0,-2.934779167175293,-2.859401941299438 +-152,1,0,-2.923469543457031,-2.864772319793701 +-151,1,0,-2.912799835205078,-2.869981527328491 +-150,1,0,-2.902721405029297,-2.875026702880859 +-149,1,0,-2.893185615539551,-2.879904270172119 +-148,1,0,-2.884097099304199,-2.884623050689697 +-147,1,0,-2.87539005279541,-2.889175891876221 +-146,1,0,-2.867013931274414,-2.893558502197266 +-145,1,0,-2.858944892883301,-2.897740840911865 +-144,1,0,-2.851154327392578,-2.901718139648438 +-143,1,0,-2.843688011169434,-2.905459880828857 +-142,1,0,-2.836466789245605,-2.908966541290283 +-141,1,0,-2.829656600952148,-2.912189483642578 +-140,1,0,-2.823295593261719,-2.915117263793945 +-139,1,0,-2.817373275756836,-2.917742490768433 +-138,1,0,-2.81202220916748,-2.920035600662231 +-137,1,0,-2.807235717773438,-2.922000885009766 +-136,1,0,-2.803141593933105,-2.923611879348755 +-135,1,0,-2.799659729003906,-2.924890995025635 +-134,1,0,-2.796911239624023,-2.925823211669922 +-133,1,0,-2.79484748840332,-2.926417589187622 +-132,1,0,-2.793472290039062,-2.926684141159058 +-131,1,0,-2.792746543884277,-2.926640033721924 +-130,1,0,-2.792593955993652,-2.926311016082764 +-129,1,0,-2.793010711669922,-2.925702571868896 +-128,1,0,-2.793981552124023,-2.924825429916382 +-127,1,0,-2.795366287231445,-2.92371940612793 +-126,1,0,-2.797172546386719,-2.922380208969116 +-125,1,0,-2.799363136291504,-2.920818328857422 +-124,1,0,-2.80190372467041,-2.91905665397644 +-123,1,0,-2.804800033569336,-2.917081356048584 +-122,1,0,-2.808096885681152,-2.914905071258545 +-121,1,0,-2.811755180358887,-2.912540912628174 +-120,1,0,-2.815840721130371,-2.909983158111572 +-119,1,0,-2.820366859436035,-2.907246112823486 +-118,1,0,-2.825358390808105,-2.904340267181396 +-117,1,0,-2.830870628356934,-2.901258707046509 +-116,1,0,-2.836847305297852,-2.898030757904053 +-115,1,0,-2.843291282653809,-2.89465856552124 +-114,1,0,-2.850083351135254,-2.891163110733032 +-113,1,0,-2.857134819030762,-2.887566804885864 +-112,1,0,-2.864253044128418,-2.883903503417969 +-111,1,0,-2.871231079101562,-2.880207538604736 +-110,1,0,-2.87779712677002,-2.876540899276733 +-109,1,0,-2.883707046508789,-2.872940540313721 +-108,1,0,-2.888715744018555,-2.869466781616211 +-107,1,0,-2.892643928527832,-2.866147994995117 +-106,1,0,-2.895415306091309,-2.863009214401245 +-105,1,0,-2.896940231323242,-2.860074520111084 +-104,1,0,-2.897334098815918,-2.857330799102783 +-103,1,0,-2.896763801574707,-2.854747533798218 +-102,1,0,-2.895323753356934,-2.852319717407227 +-101,1,0,-2.893124580383301,-2.850034236907959 +-100,1,0,-2.890363693237305,-2.847859144210815 +-99,1,0,-2.886983871459961,-2.845817089080811 +-98,1,0,-2.883010864257812,-2.843915224075317 +-97,1,0,-2.878452301025391,-2.842145204544067 +-96,1,0,-2.873429298400879,-2.840471267700195 +-95,1,0,-2.868074417114258,-2.838832855224609 +-94,1,0,-2.862631797790527,-2.837135553359985 +-93,1,0,-2.857263565063477,-2.835294961929321 +-92,1,0,-2.852241516113281,-2.833201169967651 +-91,1,0,-2.84770679473877,-2.830776929855347 +-90,1,0,-2.843785285949707,-2.827940464019775 +-89,1,0,-2.840540885925293,-2.824650526046753 +-88,1,0,-2.838006973266602,-2.820852756500244 +-87,1,0,-2.836169242858887,-2.816528797149658 +-86,1,0,-2.834993362426758,-2.811683177947998 +-85,1,0,-2.834442138671875,-2.806339263916016 +-84,1,0,-2.834238052368164,-2.800646305084229 +-83,1,0,-2.83405876159668,-2.794874668121338 +-82,1,0,-2.833497047424316,-2.789376497268677 +-81,1,0,-2.832248687744141,-2.784383773803711 +-80,1,0,-2.830473899841309,-2.77981424331665 +-79,1,0,-2.828426361083984,-2.775420665740967 +-78,1,0,-2.826457023620605,-2.770975112915039 +-77,1,0,-2.824667930603027,-2.766391277313232 +-76,1,0,-2.823093414306641,-2.761681079864502 +-75,1,0,-2.821741104125977,-2.756874799728394 +-74,1,0,-2.820725440979004,-2.751990079879761 +-73,1,0,-2.820030212402344,-2.747061014175415 +-72,1,0,-2.819724082946777,-2.742106199264526 +-71,1,0,-2.819802284240723,-2.737153291702271 +-70,1,0,-2.820331573486328,-2.732201099395752 +-69,1,0,-2.82122802734375,-2.727294683456421 +-68,1,0,-2.822531700134277,-2.722438812255859 +-67,1,0,-2.824106216430664,-2.717681169509888 +-66,1,0,-2.826020240783691,-2.713022232055664 +-65,1,0,-2.828134536743164,-2.708504438400269 +-64,1,0,-2.830391883850098,-2.704151153564453 +-63,1,0,-2.832768440246582,-2.699977159500122 +-62,1,0,-2.835223197937012,-2.696001768112183 +-61,1,0,-2.837710380554199,-2.692236423492432 +-60,1,0,-2.840180397033691,-2.688703060150146 +-59,1,0,-2.84259033203125,-2.685410737991333 +-58,1,0,-2.844936370849609,-2.682363986968994 +-57,1,0,-2.847162246704102,-2.679580211639404 +-56,1,0,-2.849228858947754,-2.677067518234253 +-55,1,0,-2.851109504699707,-2.674829006195068 +-54,1,0,-2.852761268615723,-2.672882795333862 +-53,1,0,-2.854155540466309,-2.671224117279053 +-52,1,0,-2.855240821838379,-2.669870853424072 +-51,1,0,-2.855964660644531,-2.668835401535034 +-50,1,0,-2.856306076049805,-2.668121814727783 +-49,1,0,-2.856247901916504,-2.667725563049316 +-48,1,0,-2.855716705322266,-2.667667388916016 +-47,1,0,-2.854753494262695,-2.667945861816406 +-46,1,0,-2.853236198425293,-2.668573141098022 +-45,1,0,-2.851229667663574,-2.669540405273438 +-44,1,0,-2.848714828491211,-2.670851469039917 +-43,1,0,-2.845663070678711,-2.672510862350464 +-42,1,0,-2.842114448547363,-2.674504518508911 +-41,1,0,-2.838020324707031,-2.676848411560059 +-40,1,0,-2.833467483520508,-2.67951512336731 +-39,1,0,-2.828450202941895,-2.682512283325195 +-38,1,0,-2.82298755645752,-2.685826063156128 +-37,1,0,-2.817135810852051,-2.68944787979126 +-36,1,0,-2.810914993286133,-2.693367004394531 +-35,1,0,-2.80439567565918,-2.697570085525513 +-34,1,0,-2.797569274902344,-2.702056169509888 +-33,1,0,-2.790605545043945,-2.706782102584839 +-32,1,0,-2.78343391418457,-2.711766004562378 +-31,1,0,-2.776202201843262,-2.716967105865479 +-30,1,0,-2.769023895263672,-2.722357511520386 +-29,1,0,-2.76189136505127,-2.727941513061523 +-28,1,0,-2.754944801330566,-2.733670711517334 +-27,1,0,-2.748266220092773,-2.73952841758728 +-26,1,0,-2.741986274719238,-2.745478391647339 +-25,1,0,-2.73621940612793,-2.751482486724854 +-24,1,0,-2.731046676635742,-2.757522106170654 +-23,1,0,-2.726570129394531,-2.76355242729187 +-22,1,0,-2.722907066345215,-2.769547939300537 +-21,1,0,-2.720041275024414,-2.775496244430542 +-20,1,0,-2.717972755432129,-2.781384944915771 +-19,1,0,-2.716765403747559,-2.787195444107056 +-18,1,0,-2.71627140045166,-2.792949676513672 +-17,1,0,-2.716426849365234,-2.798642635345459 +-16,1,0,-2.717010498046875,-2.804316282272339 +-15,1,0,-2.718040466308594,-2.809956312179565 +-14,1,0,-2.719290733337402,-2.815603733062744 +-13,1,0,-2.720700263977051,-2.821254253387451 +-12,1,0,-2.722111701965332,-2.826935768127441 +-11,1,0,-2.723491668701172,-2.832640171051025 +-10,1,0,-2.724740028381348,-2.838375091552734 +-9,1,0,-2.725836753845215,-2.844127655029297 +-8,1,0,-2.72676944732666,-2.849897384643555 +-7,1,0,-2.727425575256348,-2.855709791183472 +-6,1,0,-2.727831840515137,-2.86160135269165 +-5,1,0,-2.727719306945801,-2.867731809616089 +-4,1,0,-2.72691535949707,-2.874283313751221 +-3,1,0,-2.725228309631348,-2.88142204284668 +-2,1,0,-2.722576141357422,-2.889161825180054 +-1,1,0,-2.719188690185547,-2.897315263748169 +0,1,0,-2.715268135070801,-2.905668258666992 +1,1,0,-2.710949897766113,-2.914071321487427 +2,1,0,-2.70622444152832,-2.922477245330811 +3,1,0,-2.701030731201172,-2.930875778198242 +4,1,0,-2.695537567138672,-2.939207553863525 +5,1,0,-2.68983268737793,-2.947428941726685 +6,1,0,-2.684208869934082,-2.9554443359375 +7,1,0,-2.678946495056152,-2.963160037994385 +8,1,0,-2.674211502075195,-2.970517158508301 +9,1,0,-2.670105934143066,-2.977477073669434 +10,1,0,-2.666525840759277,-2.98405385017395 +11,1,0,-2.663389205932617,-2.99023175239563 +12,1,0,-2.66026782989502,-2.996094703674316 +13,1,0,-2.656650543212891,-3.001712799072266 +14,1,0,-2.651840209960938,-3.007185459136963 +15,1,0,-2.645081520080566,-3.012609958648682 +16,1,0,-2.635528564453125,-3.018119335174561 +17,1,0,-2.622596740722656,-3.023783445358276 +18,1,0,-2.606097221374512,-3.029643535614014 +19,1,0,-2.58617115020752,-3.035681247711182 +20,1,0,-2.563375473022461,-3.041863679885864 +21,1,0,-2.538540840148926,-3.048078060150146 +22,1,0,-2.51243782043457,-3.054242372512817 +23,1,0,-2.485845565795898,-3.060277223587036 +24,1,0,-2.459477424621582,-3.066088438034058 +25,1,0,-2.433829307556152,-3.071620464324951 +26,1,0,-2.409257888793945,-3.07682991027832 +27,1,0,-2.38603687286377,-3.081692218780518 +28,1,0,-2.364351272583008,-3.086190462112427 +29,1,0,-2.344302177429199,-3.090315341949463 +30,1,0,-2.325915336608887,-3.09407114982605 +31,1,0,-2.309242248535156,-3.097464084625244 +32,1,0,-2.294290542602539,-3.100490570068359 +33,1,0,-2.280967712402344,-3.103179454803467 +34,1,0,-2.269381523132324,-3.105493068695068 +35,1,0,-2.259355545043945,-3.10747218132019 +36,1,0,-2.250971794128418,-3.109097957611084 +37,1,0,-2.244135856628418,-3.110362768173218 +38,1,0,-2.238814353942871,-3.111276626586914 +39,1,0,-2.235012054443359,-3.111835479736328 +40,1,0,-2.232725143432617,-3.112014770507812 +41,1,0,-2.231887817382812,-3.11182975769043 +42,1,0,-2.232522010803223,-3.111265897750854 +43,1,0,-2.23460865020752,-3.110320329666138 +44,1,0,-2.238109588623047,-3.108997344970703 +45,1,0,-2.243098258972168,-3.107281446456909 +46,1,0,-2.249543190002441,-3.10517692565918 +47,1,0,-2.257469177246094,-3.102670192718506 +48,1,0,-2.266873359680176,-3.099777936935425 +49,1,0,-2.277779579162598,-3.096485614776611 +50,1,0,-2.29022216796875,-3.092792987823486 +51,1,0,-2.304261207580566,-3.088692188262939 +52,1,0,-2.319907188415527,-3.084181308746338 +53,1,0,-2.33720874786377,-3.079267263412476 +54,1,0,-2.356128692626953,-3.073959350585938 +55,1,0,-2.376789093017578,-3.06824254989624 +56,1,0,-2.399117469787598,-3.062137126922607 +57,1,0,-2.423129081726074,-3.055647373199463 +58,1,0,-2.448680877685547,-3.0487961769104 +59,1,0,-2.475645065307617,-3.041606187820435 +60,1,0,-2.50371265411377,-3.034119844436646 +61,1,0,-2.532443046569824,-3.026393890380859 +62,1,0,-2.561195373535156,-3.018498182296753 +63,1,0,-2.589238166809082,-3.010525941848755 +64,1,0,-2.615655899047852,-3.002581119537354 +65,1,0,-2.639686584472656,-2.994742870330811 +66,1,0,-2.660785675048828,-2.987092971801758 +67,1,0,-2.678729057312012,-2.979669332504272 +68,1,0,-2.693763732910156,-2.97245979309082 +69,1,0,-2.706417083740234,-2.965419769287109 +70,1,0,-2.71727466583252,-2.958510637283325 +71,1,0,-2.726871490478516,-2.951694965362549 +72,1,0,-2.735688209533691,-2.944931268692017 +73,1,0,-2.743969917297363,-2.938206195831299 +74,1,0,-2.751922607421875,-2.931494951248169 +75,1,0,-2.759585380554199,-2.924818515777588 +76,1,0,-2.767083168029785,-2.918138980865479 +77,1,0,-2.774410247802734,-2.911472797393799 +78,1,0,-2.781613349914551,-2.904806137084961 +79,1,0,-2.788628578186035,-2.898152351379395 +80,1,0,-2.795491218566895,-2.891505718231201 +81,1,0,-2.802040100097656,-2.884907960891724 +82,1,0,-2.808195114135742,-2.878382205963135 +83,1,0,-2.813821792602539,-2.871969699859619 +84,1,0,-2.818737983703613,-2.86570930480957 +85,1,0,-2.823136329650879,-2.859551906585693 +86,1,0,-2.827131271362305,-2.853450059890747 +87,1,0,-2.830982208251953,-2.847312450408936 +88,1,0,-2.83495044708252,-2.841055631637573 +89,1,0,-2.839186668395996,-2.834612369537354 +90,1,0,-2.843785285949707,-2.827940464019775 +91,1,0,-2.848806381225586,-2.821012020111084 +92,1,0,-2.85431957244873,-2.813787937164307 +93,1,0,-2.860299110412598,-2.806270599365234 +94,1,0,-2.866732597351074,-2.798452854156494 +95,1,0,-2.873598098754883,-2.790341138839722 +96,1,0,-2.880815505981445,-2.781965732574463 +97,1,0,-2.888286590576172,-2.773415088653564 +98,1,0,-2.895837783813477,-2.764814376831055 +99,1,0,-2.903258323669434,-2.756361961364746 +100,1,0,-2.910340309143066,-2.748233795166016 +101,1,0,-2.917121887207031,-2.740478515625 +102,1,0,-2.923778533935547,-2.732992887496948 +103,1,0,-2.930562973022461,-2.725607395172119 +104,1,0,-2.93773078918457,-2.718165636062622 +105,1,0,-2.945493698120117,-2.710565090179443 +106,1,0,-2.95396900177002,-2.702776670455933 +107,1,0,-2.963172912597656,-2.694803953170776 +108,1,0,-2.973084449768066,-2.686682939529419 +109,1,0,-2.98362922668457,-2.678457736968994 +110,1,0,-2.994733810424805,-2.670171499252319 +111,1,0,-3.0062255859375,-2.661886692047119 +112,1,0,-3.017888069152832,-2.653676509857178 +113,1,0,-3.029706001281738,-2.645558595657349 +114,1,0,-3.041470527648926,-2.637603282928467 +115,1,0,-3.053095817565918,-2.629836559295654 +116,1,0,-3.064532279968262,-2.622292757034302 +117,1,0,-3.075660705566406,-2.615004301071167 +118,1,0,-3.086487770080566,-2.607982635498047 +119,1,0,-3.096950531005859,-2.60124659538269 +120,1,0,-3.107077598571777,-2.594802141189575 +121,1,0,-3.1168212890625,-2.588663578033447 +122,1,0,-3.126205444335938,-2.582834959030151 +123,1,0,-3.135173797607422,-2.577328443527222 +124,1,0,-3.143753051757812,-2.572151660919189 +125,1,0,-3.152009010314941,-2.567288637161255 +126,1,0,-3.159820556640625,-2.562772512435913 +127,1,0,-3.167261123657227,-2.558589458465576 +128,1,0,-3.174339294433594,-2.554744005203247 +129,1,0,-3.181031227111816,-2.551240921020508 +130,1,0,-3.187352180480957,-2.54808783531189 +131,1,0,-3.193291664123535,-2.545276641845703 +132,1,0,-3.198869705200195,-2.542813777923584 +133,1,0,-3.204057693481445,-2.54070520401001 +134,1,0,-3.20888614654541,-2.538949251174927 +135,1,0,-3.213297843933105,-2.537550687789917 +136,1,0,-3.21737003326416,-2.536503314971924 +137,1,0,-3.221063613891602,-2.535807132720947 +138,1,0,-3.224385261535645,-2.535462856292725 +139,1,0,-3.227338790893555,-2.535466909408569 +140,1,0,-3.22992992401123,-2.535818338394165 +141,1,0,-3.232123374938965,-2.536529064178467 +142,1,0,-3.233912467956543,-2.537586450576782 +143,1,0,-3.235329627990723,-2.538985013961792 +144,1,0,-3.236373901367188,-2.540714025497437 +145,1,0,-3.237018585205078,-2.542786359786987 +146,1,0,-3.23725700378418,-2.545189142227173 +147,1,0,-3.237075805664062,-2.547926425933838 +148,1,0,-3.236495018005371,-2.550982236862183 +149,1,0,-3.235516548156738,-2.554344415664673 +150,1,0,-3.234100341796875,-2.5580153465271 +151,1,0,-3.232281684875488,-2.561978578567505 +152,1,0,-3.230064392089844,-2.566225528717041 +153,1,0,-3.227459907531738,-2.570733547210693 +154,1,0,-3.22447395324707,-2.57549786567688 +155,1,0,-3.22120475769043,-2.580479145050049 +156,1,0,-3.217670440673828,-2.585646867752075 +157,1,0,-3.213966369628906,-2.590969562530518 +158,1,0,-3.210136413574219,-2.596408128738403 +159,1,0,-3.206323623657227,-2.601912021636963 +160,1,0,-3.202676773071289,-2.607414960861206 +161,1,0,-3.199284553527832,-2.612871170043945 +162,1,0,-3.196291923522949,-2.618234395980835 +163,1,0,-3.193761825561523,-2.623500347137451 +164,1,0,-3.19167423248291,-2.628727436065674 +165,1,0,-3.189863204956055,-2.634057283401489 +166,1,0,-3.188124656677246,-2.639649868011475 +167,1,0,-3.186327934265137,-2.645573616027832 +168,1,0,-3.184551239013672,-2.651724338531494 +169,1,0,-3.182879447937012,-2.657916307449341 +170,1,0,-3.181517601013184,-2.663962125778198 +171,1,0,-3.180511474609375,-2.669762134552002 +172,1,0,-3.179812431335449,-2.675284862518311 +173,1,0,-3.179442405700684,-2.680511474609375 +174,1,0,-3.179346084594727,-2.685460567474365 +175,1,0,-3.179474830627441,-2.690161228179932 +176,1,0,-3.179818153381348,-2.694616794586182 +177,1,0,-3.180374145507812,-2.698853731155396 +178,1,0,-3.181163787841797,-2.702884197235107 +179,1,0,-3.182161331176758,-2.70673131942749 +180,1,0,-3.183364868164062,-2.710425615310669 diff --git a/data/ram_air_kite/polars_neuralfoil/3.csv b/data/ram_air_kite/polars_neuralfoil/3.csv new file mode 100644 index 00000000..e55608cd --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/3.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03863669186830521,0,-0.1604330390691757,-0.001181295490823686 +-179,0.03818284720182419,0,-0.2102593332529068,6.593465514015406e-05 +-178,0.03838234022259712,0,-0.2438185214996338,0.0005469441530294716 +-177,0.0388835035264492,0,-0.257723331451416,-0.00111688079778105 +-176,0.03958342224359512,0,-0.2568333148956299,-0.004491686820983887 +-175,0.0404895544052124,0,-0.2463300973176956,-0.008844452910125256 +-174,0.04159348458051682,0,-0.2297311127185822,-0.01371627487242222 +-173,0.04291386529803276,0,-0.2087372541427612,-0.01900769397616386 +-172,0.04456506669521332,0,-0.1836347430944443,-0.02484387531876564 +-171,0.0467553474009037,0,-0.1543080657720566,-0.03131569549441338 +-170,0.04973411932587624,0,-0.1218886971473694,-0.03813126310706139 +-169,0.05374652892351151,0,-0.09137275815010071,-0.04432058334350586 +-168,0.05900537222623825,0,-0.07243579626083374,-0.04869025200605392 +-167,0.06495913863182068,0,-0.06786757707595825,-0.05079695582389832 +-166,0.06938516348600388,0,-0.06403383612632751,-0.05194038152694702 +-165,0.07092060893774033,0,-0.04121822118759155,-0.05568397045135498 +-164,0.0724027007818222,0,0.007110744714736938,-0.0642118901014328 +-163,0.07665755599737167,0,0.06808751821517944,-0.07538733631372452 +-162,0.08324401080608368,0,0.1278035938739777,-0.08594037592411041 +-161,0.09121629595756531,0,0.1818606555461884,-0.09490204602479935 +-160,0.1001583859324455,0,0.231393039226532,-0.102756179869175 +-159,0.1098351627588272,0,0.2783698737621307,-0.1101590171456337 +-158,0.1199503391981125,0,0.3239289820194244,-0.1175844892859459 +-157,0.1300962269306183,0,0.3679649531841278,-0.1253577470779419 +-156,0.139846608042717,0,0.4094789326190948,-0.1336544901132584 +-155,0.148968368768692,0,0.4476493299007416,-0.1423730552196503 +-154,0.1575285494327545,0,0.4824588298797607,-0.1511480510234833 +-153,0.1657298505306244,0,0.5142974853515625,-0.1596297919750214 +-152,0.1736781448125839,0,0.5436487197875977,-0.1677009016275406 +-151,0.1813250184059143,0,0.5713201761245728,-0.1754642426967621 +-150,0.188545748591423,0,0.5985165238380432,-0.183107003569603 +-149,0.1952255517244339,0,0.6263576745986938,-0.1907611638307571 +-148,0.201308399438858,0,0.6552173495292664,-0.1984173804521561 +-147,0.2068084925413132,0,0.6846084594726562,-0.2059460580348969 +-146,0.2117865234613419,0,0.7136595249176025,-0.2131856232881546 +-145,0.216316431760788,0,0.7416286468505859,-0.2200132310390472 +-144,0.2204581201076508,0,0.7680876851081848,-0.2263675034046173 +-143,0.2242569774389267,0,0.7928721904754639,-0.2322326600551605 +-142,0.2277389764785767,0,0.8159759044647217,-0.2376182973384857 +-141,0.2309210002422333,0,0.8374769687652588,-0.2425461262464523 +-140,0.2338090687990189,0,0.8574869632720947,-0.2470399886369705 +-139,0.236407607793808,0,0.876126766204834,-0.2511230707168579 +-138,0.2387161999940872,0,0.8935036659240723,-0.2548139095306396 +-137,0.2407338172197342,0,0.9097144603729248,-0.2581286132335663 +-136,0.2424602955579758,0,0.9248262643814087,-0.2610776424407959 +-135,0.2438971102237701,0,0.9388944506645203,-0.2636695504188538 +-134,0.2450464069843292,0,0.9519495368003845,-0.2659100890159607 +-133,0.2459116578102112,0,0.9640016555786133,-0.2678015232086182 +-132,0.2465011775493622,0,0.9750519990921021,-0.2693460881710052 +-131,0.2468241006135941,0,0.9850821495056152,-0.2705437242984772 +-130,0.2468930780887604,0,0.9940623044967651,-0.2713941037654877 +-129,0.2467217892408371,0,1.001951932907104,-0.2718961834907532 +-128,0.2463271021842957,0,1.00869607925415,-0.2720479369163513 +-127,0.2457271665334702,0,1.014226794242859,-0.2718462944030762 +-126,0.2449427843093872,0,1.018465995788574,-0.2712861597537994 +-125,0.2439932525157928,0,1.021323680877686,-0.2703598141670227 +-124,0.2428997904062271,0,1.022713661193848,-0.2690540254116058 +-123,0.2416771203279495,0,1.022565722465515,-0.2673465609550476 +-122,0.240332618355751,0,1.02086341381073,-0.2652008533477783 +-121,0.2388577908277512,0,1.017674922943115,-0.2625557780265808 +-120,0.2372179329395294,0,1.013176918029785,-0.2593147158622742 +-119,0.2353297472000122,0,1.007660031318665,-0.2553432881832123 +-118,0.2330230623483658,0,1.001500010490417,-0.2504965662956238 +-117,0.2299874871969223,0,0.9950190186500549,-0.2447067946195602 +-116,0.2258273214101791,0,0.9879918098449707,-0.2380888909101486 +-115,0.2203457206487656,0,0.9789654016494751,-0.2309639006853104 +-114,0.2138311266899109,0,0.9655658602714539,-0.2236721962690353 +-113,0.2068169713020325,0,0.9461615681648254,-0.2162753790616989 +-112,0.1995667368173599,0,0.920706033706665,-0.2085049152374268 +-111,0.1920104324817657,0,0.8897335529327393,-0.1999923288822174 +-110,0.1839600652456284,0,0.8533390164375305,-0.1904366761445999 +-109,0.1752379536628723,0,0.8110675811767578,-0.1796122789382935 +-108,0.1657485514879227,0,0.7621691226959229,-0.1673324704170227 +-107,0.1556231826543808,0,0.7058743238449097,-0.1534550189971924 +-106,0.1455333530902863,0,0.6419633626937866,-0.1380280405282974 +-105,0.1370360255241394,0,0.5725647211074829,-0.1217831373214722 +-104,0.1318222731351852,0,0.5044043660163879,-0.1066887825727463 +-103,0.1288335025310516,0,0.4451685547828674,-0.09473288804292679 +-102,0.1241444572806358,0,0.3969090580940247,-0.08592131733894348 +-101,0.1158648729324341,0,0.3552447855472565,-0.07878495752811432 +-100,0.10650734603405,0,0.3104509711265564,-0.07157312333583832 +-99,0.09857819229364395,0,0.2563064098358154,-0.06317535787820816 +-98,0.09174883365631104,0,0.1973650604486465,-0.05408107489347458 +-97,0.08555280417203903,0,0.1402955055236816,-0.0454937145113945 +-96,0.08014199137687683,0,0.08995683491230011,-0.0385216623544693 +-95,0.07499042898416519,0,0.05306226015090942,-0.03372958675026894 +-94,0.06612899899482727,0,0.04140371456742287,-0.02863083407282829 +-93,0.04768959805369377,0,0.07741975039243698,-0.01681731082499027 +-92,0.02746754512190819,0,0.1682471334934235,0.004321157932281494 +-91,0.02160388790071011,0,0.07895815372467041,0.01896693371236324 +-90,0.01935658790171146,0,-0.03045195341110229,0.02580912970006466 +-89,0.01841174997389317,0,-0.1372296512126923,0.02727089263498783 +-88,0.01783101633191109,0,-0.2524429261684418,0.02722042240202427 +-87,0.01762179844081402,0,-0.375679075717926,0.02754524908959866 +-86,0.01849199272692204,0,-0.4926865100860596,0.02919148467481136 +-85,0.02133005671203136,0,-0.5859004259109497,0.03232746198773384 +-84,0.02654874697327614,0,-0.6496831178665161,0.03566627204418182 +-83,0.03417140245437622,0,-0.6910266876220703,0.03827439248561859 +-82,0.04417126253247261,0,-0.7204293012619019,0.04087875038385391 +-81,0.05605067685246468,0,-0.7489181756973267,0.04484070092439651 +-80,0.06872820109128952,0,-0.7841513752937317,0.05101419612765312 +-79,0.08126471191644669,0,-0.8261008858680725,0.05936136096715927 +-78,0.09222228080034256,0,-0.8695115447044373,0.06873434782028198 +-77,0.101616844534874,0,-0.916235625743866,0.07788798958063126 +-76,0.1118846461176872,0,-0.9646856188774109,0.08570288121700287 +-75,0.1185260787606239,0,-1.009827017784119,0.091849185526371 +-74,0.1255771070718765,0,-1.050171375274658,0.09863194078207016 +-73,0.1375409811735153,0,-1.092754602432251,0.1092346459627151 +-72,0.1523672044277191,0,-1.13089382648468,0.1209347695112228 +-71,0.1691717654466629,0,-1.16058361530304,0.1328379958868027 +-70,0.1877513974905014,0,-1.180399298667908,0.1449438333511353 +-69,0.2073484659194946,0,-1.192182421684265,0.1572057008743286 +-68,0.2267802655696869,0,-1.199888706207275,0.1692961007356644 +-67,0.2456557005643845,0,-1.206669926643372,0.1808170080184937 +-66,0.2644883692264557,0,-1.214079618453979,0.1914966404438019 +-65,0.283574104309082,0,-1.223055958747864,0.201195552945137 +-64,0.3025174140930176,0,-1.234243750572205,0.2098604440689087 +-63,0.3205953240394592,0,-1.247762322425842,0.2174829989671707 +-62,0.3372390866279602,0,-1.263164162635803,0.224084660410881 +-61,0.3522280156612396,0,-1.279617786407471,0.2297228574752808 +-60,0.3655920922756195,0,-1.296180963516235,0.2344838380813599 +-59,0.3774349093437195,0,-1.312025547027588,0.2384612560272217 +-58,0.3878389894962311,0,-1.326538801193237,0.2417359799146652 +-57,0.3968525230884552,0,-1.339352965354919,0.2443672716617584 +-56,0.4045186638832092,0,-1.350294351577759,0.2463982403278351 +-55,0.4108894765377045,0,-1.359339475631714,0.2478618621826172 +-54,0.4160345494747162,0,-1.366557955741882,0.2487876415252686 +-53,0.4200371503829956,0,-1.372064352035522,0.2492012530565262 +-52,0.4229816794395447,0,-1.375994682312012,0.2491282671689987 +-51,0.4249478876590729,0,-1.378482341766357,0.2485899031162262 +-50,0.426003485918045,0,-1.37964653968811,0.247605562210083 +-49,0.4262032210826874,0,-1.37958836555481,0.246189147233963 +-48,0.4255906343460083,0,-1.378386735916138,0.2443507611751556 +-47,0.4241970181465149,0,-1.376107335090637,0.2420982122421265 +-46,0.4220479726791382,0,-1.372797846794128,0.2394339591264725 +-45,0.4191614091396332,0,-1.368499040603638,0.2363589555025101 +-44,0.4155490100383759,0,-1.363252878189087,0.2328701019287109 +-43,0.4112183749675751,0,-1.357107639312744,0.2289601862430573 +-42,0.4061653316020966,0,-1.350138902664185,0.2246146649122238 +-41,0.400365799665451,0,-1.342474460601807,0.2198051959276199 +-40,0.3937574326992035,0,-1.334341049194336,0.2144809067249298 +-39,0.3862005174160004,0,-1.32611870765686,0.2085535079240799 +-38,0.3774178326129913,0,-1.318409442901611,0.2018840312957764 +-37,0.3669552803039551,0,-1.312068700790405,0.1942799389362335 +-36,0.3542846441268921,0,-1.30816388130188,0.1855254918336868 +-35,0.3392132818698883,0,-1.30787181854248,0.1754300594329834 +-34,0.3223807811737061,0,-1.312373757362366,0.1638710051774979 +-33,0.3049540519714355,0,-1.322632074356079,0.1508263498544693 +-32,0.287105917930603,0,-1.339064836502075,0.1364903002977371 +-31,0.2671546936035156,0,-1.360906958580017,0.1214816719293594 +-30,0.2451083362102509,0,-1.382995247840881,0.1069908291101456 +-29,0.224349170923233,0,-1.396837711334229,0.09413570910692215 +-28,0.2064037322998047,0,-1.40038537979126,0.08290528506040573 +-27,0.1903578191995621,0,-1.398197770118713,0.07261493057012558 +-26,0.1755622923374176,0,-1.394400238990784,0.06280674785375595 +-25,0.1623929738998413,0,-1.389407396316528,0.05331625789403915 +-24,0.1506849527359009,0,-1.383484601974487,0.04396076872944832 +-23,0.1375588923692703,0,-1.387470960617065,0.03441374748945236 +-22,0.1215632557868958,0,-1.409412622451782,0.02488775923848152 +-21,0.1037236303091049,0,-1.443972229957581,0.01607848145067692 +-20,0.0858008861541748,0,-1.478729724884033,0.008767756633460522 +-19,0.06916917115449905,0,-1.507362008094788,0.003075233194977045 +-18,0.05455532297492027,0,-1.527158498764038,-0.0009580909973010421 +-17,0.04263507947325706,0,-1.529813766479492,-0.002843722701072693 +-16,0.03378556668758392,0,-1.511905312538147,-0.002253222512081265 +-15,0.02745798416435719,0,-1.47700572013855,0.00011680721945595 +-14,0.02298908308148384,0,-1.42885959148407,0.004060882143676281 +-13,0.01992300525307655,0,-1.369303584098816,0.00965080875903368 +-12,0.01816342771053314,0,-1.303840517997742,0.01767054758965969 +-11,0.01688202656805515,0,-1.227469801902771,0.02379316091537476 +-10,0.01555513590574265,0,-1.137455940246582,0.02820807136595249 +-9,0.01445233356207609,0,-1.039680957794189,0.03165829926729202 +-8,0.01353439874947071,0,-0.9383544325828552,0.03417975828051567 +-7,0.01275349501520395,0,-0.8326893448829651,0.03605346009135246 +-6,0.01206368207931519,0,-0.7226660847663879,0.03755869343876839 +-5,0.01145225390791893,0,-0.6095412969589233,0.03869970887899399 +-4,0.01091888919472694,0,-0.4945504367351532,0.03942595049738884 +-3,0.01050919387489557,0,-0.377804696559906,0.03979121521115303 +-2,0.01024936325848103,0,-0.2598628103733063,0.03980721160769463 +-1,0.01004937384277582,0,-0.1418547034263611,0.03962748497724533 +0,0.009941719472408295,0,-0.02343913912773132,0.03945009037852287 +1,0.009939728304743767,0,0.09602481126785278,0.03921518474817276 +2,0.009979231283068657,0,0.2151758223772049,0.03894992917776108 +3,0.01007049437612295,0,0.3332143127918243,0.03873471543192863 +4,0.01032794732600451,0,0.4506628513336182,0.03849013522267342 +5,0.01068013720214367,0,0.5667016506195068,0.03839175030589104 +6,0.01109250821173191,0,0.6829369068145752,0.03830332309007645 +7,0.0116015300154686,0,0.7988051176071167,0.0383988544344902 +8,0.01223799679428339,0,0.9107339382171631,0.03933083266019821 +9,0.01313399989157915,0,1.031503558158875,0.03778946399688721 +10,0.01435508672147989,0,1.169008016586304,0.03133517503738403 +11,0.01577426493167877,0,1.289865255355835,0.02692778781056404 +12,0.01721701398491859,0,1.375248432159424,0.0297220591455698 +13,0.01848453469574451,0,1.453492164611816,0.03508727997541428 +14,0.02011074498295784,0,1.526975989341736,0.04067764431238174 +15,0.02465744130313396,0,1.568769693374634,0.04402093589305878 +16,0.0348379984498024,0,1.568929195404053,0.04098381102085114 +17,0.0499674417078495,0,1.539945125579834,0.03445941209793091 +18,0.06731286644935608,0,1.504738569259644,0.02751314267516136 +19,0.08509598672389984,0,1.473989248275757,0.02054718695580959 +20,0.1066214740276337,0,1.414096832275391,0.0103821037337184 +21,0.1337365061044693,0,1.315971374511719,-0.003723281668499112 +22,0.1489678472280502,0,1.282490730285645,-0.01517492532730103 +23,0.1557871103286743,0,1.290356874465942,-0.02436705864965916 +24,0.1640253663063049,0,1.298146963119507,-0.03338705748319626 +25,0.1748619079589844,0,1.303037405014038,-0.04256877303123474 +26,0.1872664391994476,0,1.308365106582642,-0.05182207748293877 +27,0.1998703330755234,0,1.316669821739197,-0.06097672134637833 +28,0.21168152987957,0,1.328715562820435,-0.06989113986492157 +29,0.222482830286026,0,1.343578457832336,-0.07850383222103119 +30,0.2326247841119766,0,1.35958468914032,-0.08681467920541763 +31,0.2425725758075714,0,1.375238180160522,-0.09485229849815369 +32,0.2526443004608154,0,1.389594197273254,-0.1026584878563881 +33,0.2629710137844086,0,1.402224779129028,-0.1102722734212875 +34,0.2735526859760284,0,1.413039565086365,-0.1177154183387756 +35,0.2843241989612579,0,1.42210578918457,-0.1249843016266823 +36,0.2951995432376862,0,1.429524302482605,-0.1320497244596481 +37,0.3060882091522217,0,1.435378551483154,-0.1388665288686752 +38,0.3168717622756958,0,1.439778566360474,-0.1453847140073776 +39,0.3273693919181824,0,1.442911624908447,-0.1515618711709976 +40,0.3373392820358276,0,1.445066094398499,-0.1573715209960938 +41,0.3465234041213989,0,1.446545124053955,-0.1628018319606781 +42,0.3547127246856689,0,1.447599053382874,-0.1678528785705566 +43,0.3617779910564423,0,1.448364615440369,-0.1725272983312607 +44,0.3676628768444061,0,1.448897123336792,-0.1768274009227753 +45,0.3723562955856323,0,1.449206471443176,-0.1807532757520676 +46,0.3758600056171417,0,1.44928514957428,-0.1843018233776093 +47,0.378178596496582,0,1.44913125038147,-0.1874688565731049 +48,0.3793084919452667,0,1.448740005493164,-0.1902484595775604 +49,0.3792382478713989,0,1.448111295700073,-0.1926361173391342 +50,0.3779444992542267,0,1.447238326072693,-0.1946270763874054 +51,0.3753957450389862,0,1.446099996566772,-0.1962172985076904 +52,0.3715528547763824,0,1.44465446472168,-0.1974019259214401 +53,0.3663765490055084,0,1.442817807197571,-0.1981739103794098 +54,0.3598436415195465,0,1.440455555915833,-0.1985244303941727 +55,0.3519759774208069,0,1.437352180480957,-0.1984430849552155 +56,0.3428630828857422,0,1.433201551437378,-0.1979179084300995 +57,0.3326708674430847,0,1.427620768547058,-0.1969404816627502 +58,0.3216080069541931,0,1.420194864273071,-0.1955073177814484 +59,0.3098689615726471,0,1.410552978515625,-0.1936198174953461 +60,0.2975910007953644,0,1.398425102233887,-0.1912802457809448 +61,0.2848662734031677,0,1.383611440658569,-0.1884802132844925 +62,0.2717813849449158,0,1.365910530090332,-0.1851876527070999 +63,0.2584602236747742,0,1.345046997070312,-0.1813409775495529 +64,0.2450766116380692,0,1.32063090801239,-0.1768536865711212 +65,0.2318472862243652,0,1.292166709899902,-0.1716276705265045 +66,0.2190041989088058,0,1.259101390838623,-0.1655731946229935 +67,0.206763282418251,0,1.220980882644653,-0.1586405336856842 +68,0.1952856034040451,0,1.177638530731201,-0.1508495658636093 +69,0.1846374571323395,0,1.12937593460083,-0.1423155963420868 +70,0.174747422337532,0,1.076971173286438,-0.1332462280988693 +71,0.165398046374321,0,1.021451473236084,-0.123890720307827 +72,0.1562987416982651,0,0.9637487530708313,-0.1144548654556274 +73,0.1472252905368805,0,0.9044960141181946,-0.1050603166222572 +74,0.1381308734416962,0,0.8439678549766541,-0.0957648903131485 +75,0.1292066276073456,0,0.7821519374847412,-0.0866134837269783 +76,0.1210287660360336,0,0.7191307544708252,-0.07775046676397324 +77,0.1147740706801414,0,0.6559697389602661,-0.06969808042049408 +78,0.1112443283200264,0,0.5946094393730164,-0.06339900195598602 +79,0.1084839254617691,0,0.5372077226638794,-0.05922390148043633 +80,0.1034141108393669,0,0.4857165515422821,-0.05625157430768013 +81,0.09683522582054138,0,0.4331873059272766,-0.05252525210380554 +82,0.0898611843585968,0,0.3789610266685486,-0.04740499332547188 +83,0.08137731999158859,0,0.3312649130821228,-0.04147108644247055 +84,0.07058719545602798,0,0.2905087172985077,-0.03422654420137405 +85,0.05441352352499962,0,0.2847932875156403,-0.02338539063930511 +86,0.03647775948047638,0,0.3306082785129547,-0.008092230185866356 +87,0.02745186537504196,0,0.2920777499675751,0.004943049047142267 +88,0.02293171919882298,0,0.1906934231519699,0.01534776110202074 +89,0.0205183532088995,0,0.07829920947551727,0.0225004181265831 +90,0.01935658790171146,0,-0.03045195341110229,0.02580912970006466 +91,0.01866725273430347,0,-0.1367450207471848,0.02642061188817024 +92,0.01803525909781456,0,-0.2447370439767838,0.02607601322233677 +93,0.01795257069170475,0,-0.3481290936470032,0.02639532089233398 +94,0.01979142799973488,0,-0.4273676872253418,0.02863020822405815 +95,0.02483446709811687,0,-0.4680374264717102,0.03198686987161636 +96,0.0336538664996624,0,-0.4769772887229919,0.03497951105237007 +97,0.0457737073302269,0,-0.4753837883472443,0.03900278732180595 +98,0.05933234468102455,0,-0.4858289957046509,0.04728072509169579 +99,0.07225522398948669,0,-0.5201582908630371,0.06028218194842339 +100,0.08072075247764587,0,-0.5725518465042114,0.0744466558098793 +101,0.08807690441608429,0,-0.6198946833610535,0.08835253119468689 +102,0.0977148562669754,0,-0.6548537611961365,0.1016554459929466 +103,0.1089074835181236,0,-0.6774609088897705,0.1145884171128273 +104,0.1244943290948868,0,-0.6872929334640503,0.1266364753246307 +105,0.1391623169183731,0,-0.690604031085968,0.1376761943101883 +106,0.1483382284641266,0,-0.6986531019210815,0.1498643457889557 +107,0.1625972241163254,0,-0.7325591444969177,0.1690843403339386 +108,0.1838302910327911,0,-0.7778208255767822,0.1908395886421204 +109,0.2021766901016235,0,-0.8206063508987427,0.2094580233097076 +110,0.2135150283575058,0,-0.8602972030639648,0.2240038365125656 +111,0.2194009721279144,0,-0.8969086408615112,0.2351729869842529 +112,0.2224142551422119,0,-0.9295454621315002,0.2440539300441742 +113,0.2241822332143784,0,-0.9578140377998352,0.2515181005001068 +114,0.2254868596792221,0,-0.9820127487182617,0.2580624222755432 +115,0.2266668528318405,0,-1.002639770507812,0.2639307081699371 +116,0.2278604805469513,0,-1.020070910453796,0.2692487835884094 +117,0.2291135191917419,0,-1.034536600112915,0.2740919291973114 +118,0.2304227203130722,0,-1.046230554580688,0.2785101234912872 +119,0.2317513972520828,0,-1.055372595787048,0.2825333476066589 +120,0.233050063252449,0,-1.062241077423096,0.2861787378787994 +121,0.2342634946107864,0,-1.06712281703949,0.2894505560398102 +122,0.2353426516056061,0,-1.0702965259552,0.2923479080200195 +123,0.2362447679042816,0,-1.071998476982117,0.294866144657135 +124,0.2369385957717896,0,-1.072417259216309,0.2970004081726074 +125,0.2374015301465988,0,-1.071693062782288,0.2987464368343353 +126,0.2376194298267365,0,-1.069924235343933,0.3001006245613098 +127,0.2375852167606354,0,-1.067177414894104,0.3010612726211548 +128,0.2372959405183792,0,-1.063493013381958,0.3016276955604553 +129,0.2367538213729858,0,-1.058894038200378,0.3017998337745667 +130,0.2359639853239059,0,-1.053392171859741,0.3015789091587067 +131,0.2349336296319962,0,-1.046990633010864,0.300965815782547 +132,0.2336741536855698,0,-1.039687037467957,0.2999618649482727 +133,0.2321951240301132,0,-1.031477212905884,0.2985687255859375 +134,0.2305096536874771,0,-1.02235472202301,0.296787828207016 +135,0.228628471493721,0,-1.012314200401306,0.2946207523345947 +136,0.2265641987323761,0,-1.001346111297607,0.292069137096405 +137,0.224327877163887,0,-0.9894410371780396,0.2891340851783752 +138,0.2219298928976059,0,-0.976587176322937,0.2858177721500397 +139,0.2193794250488281,0,-0.9627742767333984,0.2821228504180908 +140,0.2166859656572342,0,-0.9479817748069763,0.2780528664588928 +141,0.2138564139604568,0,-0.9321898221969604,0.2736129760742188 +142,0.2108969837427139,0,-0.9153718948364258,0.268810898065567 +143,0.2078122943639755,0,-0.8974938988685608,0.2636570036411285 +144,0.2046067118644714,0,-0.878509521484375,0.2581651508808136 +145,0.2012825906276703,0,-0.8583687543869019,0.2523541450500488 +146,0.1978411674499512,0,-0.8370001912117004,0.2462472468614578 +147,0.1942826807498932,0,-0.8143202662467957,0.2398723810911179 +148,0.1906066983938217,0,-0.790225625038147,0.2332627475261688 +149,0.1868135035037994,0,-0.7645956873893738,0.2264551818370819 +150,0.1829030364751816,0,-0.737287700176239,0.2194900065660477 +151,0.1788766086101532,0,-0.7081469893455505,0.2124102860689163 +152,0.1747357696294785,0,-0.6770048141479492,0.2052600383758545 +153,0.1704820990562439,0,-0.6436786651611328,0.1980841904878616 +154,0.1661194413900375,0,-0.6079776287078857,0.1909285336732864 +155,0.1616608500480652,0,-0.5697085857391357,0.1838397085666656 +156,0.1571447253227234,0,-0.5286978483200073,0.1768610775470734 +157,0.1526600271463394,0,-0.4848386645317078,0.1700117290019989 +158,0.1483719348907471,0,-0.4381110966205597,0.163217693567276 +159,0.144470602273941,0,-0.3882571756839752,0.1561282277107239 +160,0.1410263925790787,0,-0.3335349857807159,0.1477579772472382 +161,0.1381954699754715,0,-0.2692680060863495,0.1362321823835373 +162,0.138337254524231,0,-0.1984215378761292,0.1214918345212936 +163,0.1442497372627258,0,-0.1642414927482605,0.1125616803765297 +164,0.1429579257965088,0,-0.1667545139789581,0.1079164370894432 +165,0.1295380294322968,0,-0.146801769733429,0.09669016301631927 +166,0.1144719570875168,0,-0.08389812707901001,0.08018176257610321 +167,0.1006795018911362,0,-0.01623976230621338,0.06591960042715073 +168,0.09007368981838226,0,0.01467953622341156,0.05765542387962341 +169,0.08242778480052948,0,0.02487166225910187,0.05207623168826103 +170,0.07605548948049545,0,0.0356883630156517,0.04650053009390831 +171,0.07070848345756531,0,0.04313477128744125,0.04185210913419724 +172,0.06656463444232941,0,0.03816820308566093,0.03975678980350494 +173,0.06356080621480942,0,0.02392067015171051,0.03948726132512093 +174,0.06113836169242859,0,0.008865208365023136,0.0383685901761055 +175,0.0575319342315197,0,-0.001639958471059799,0.03288529068231583 +176,0.04912129789590836,0,-0.01142553240060806,0.02176201343536377 +177,0.0414295420050621,0,-0.02786336839199066,0.01088158786296844 +178,0.04101064056158066,0,-0.06919806450605392,0.006467318627983332 +179,0.03988098353147507,0,-0.1128627806901932,0.001147276139818132 +180,0.03863669186830521,0,-0.1604330390691757,-0.001181295490823686 diff --git a/data/ram_air_kite/polars_neuralfoil/4.csv b/data/ram_air_kite/polars_neuralfoil/4.csv new file mode 100644 index 00000000..124cb038 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/4.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03584802895784378,0,-0.08268290758132935,-0.008114335127174854 +-179,0.03690243884921074,0,-0.1267579644918442,-0.00747894961386919 +-178,0.03758322075009346,0,-0.1613723337650299,-0.005853337235748768 +-177,0.03819109499454498,0,-0.1800513565540314,-0.006420189049094915 +-176,0.03885540366172791,0,-0.1858348846435547,-0.0090140700340271 +-175,0.03963837027549744,0,-0.1831477582454681,-0.01271217782050371 +-174,0.04057907313108444,0,-0.1743831634521484,-0.01697086170315742 +-173,0.04178554937243462,0,-0.1601603627204895,-0.02173712663352489 +-172,0.0434565395116806,0,-0.1402333676815033,-0.0271998830139637 +-171,0.04584427550435066,0,-0.1148451268672943,-0.03337986394762993 +-170,0.0492168627679348,0,-0.08722305297851562,-0.03957190737128258 +-169,0.05382920429110527,0,-0.06626079976558685,-0.04427454620599747 +-168,0.05982210487127304,0,-0.05996608734130859,-0.04696057736873627 +-167,0.06609632074832916,0,-0.06231451034545898,-0.04837043955922127 +-166,0.07016970217227936,0,-0.05614867806434631,-0.05061062052845955 +-165,0.07162445783615112,0,-0.02672785520553589,-0.05656918883323669 +-164,0.07397118210792542,0,0.02326402068138123,-0.06639881432056427 +-163,0.07937277108430862,0,0.08103266358375549,-0.0775473564863205 +-162,0.08716680854558945,0,0.1368346512317657,-0.0876176729798317 +-161,0.09651990234851837,0,0.1886689364910126,-0.09625591337680817 +-160,0.106943815946579,0,0.2378560602664948,-0.1041423082351685 +-159,0.1179432421922684,0,0.2856751084327698,-0.1121752858161926 +-158,0.1289035230875015,0,0.3327609896659851,-0.1211829409003258 +-157,0.1393044590950012,0,0.3798233866691589,-0.1315658837556839 +-156,0.1489899754524231,0,0.4278665781021118,-0.1430257558822632 +-155,0.1581136137247086,0,0.4770974218845367,-0.1548008024692535 +-154,0.1668492257595062,0,0.5264945030212402,-0.1661708652973175 +-153,0.1752339005470276,0,0.5746272802352905,-0.1767411530017853 +-152,0.1832004189491272,0,0.6202993392944336,-0.1864291876554489 +-151,0.1906682252883911,0,0.662639856338501,-0.1953185051679611 +-150,0.1976028233766556,0,0.7011432647705078,-0.2035327404737473 +-149,0.2040209025144577,0,0.7357467412948608,-0.2111765593290329 +-148,0.2099682688713074,0,0.7667623162269592,-0.2183252274990082 +-147,0.2154915779829025,0,0.7947049736976624,-0.2250308245420456 +-146,0.2206302136182785,0,0.8201280832290649,-0.2313311398029327 +-145,0.2254070937633514,0,0.8435118198394775,-0.2372517287731171 +-144,0.2298357039690018,0,0.8652346134185791,-0.2428098618984222 +-143,0.2339228838682175,0,0.8855684995651245,-0.2480158060789108 +-142,0.2376657277345657,0,0.9046943187713623,-0.2528732419013977 +-141,0.2410649806261063,0,0.9227232933044434,-0.2573814392089844 +-140,0.2441190481185913,0,0.9397247433662415,-0.26153764128685 +-139,0.246827632188797,0,0.9557220935821533,-0.2653346657752991 +-138,0.2491935342550278,0,0.9707252979278564,-0.2687666714191437 +-137,0.2512218952178955,0,0.9847281575202942,-0.271826446056366 +-136,0.2529207468032837,0,0.9977127909660339,-0.2745067775249481 +-135,0.2542997300624847,0,1.009666323661804,-0.2768020033836365 +-134,0.2553682625293732,0,1.020570278167725,-0.2787071764469147 +-133,0.2561394274234772,0,1.030415773391724,-0.2802192568778992 +-132,0.2566227316856384,0,1.039190888404846,-0.2813357710838318 +-131,0.2568271160125732,0,1.046894907951355,-0.2820566296577454 +-130,0.2567598819732666,0,1.053523659706116,-0.2823826372623444 +-129,0.2564277648925781,0,1.059083700180054,-0.2823173403739929 +-128,0.2558337152004242,0,1.063569784164429,-0.2818653881549835 +-127,0.2549789547920227,0,1.066978931427002,-0.2810336649417877 +-126,0.2538623511791229,0,1.069294929504395,-0.2798317074775696 +-125,0.2524798512458801,0,1.07049298286438,-0.2782705724239349 +-124,0.2508282065391541,0,1.070530652999878,-0.276363730430603 +-123,0.2489011585712433,0,1.069350838661194,-0.274125725030899 +-122,0.2466945499181747,0,1.066890239715576,-0.2715677618980408 +-121,0.2442099153995514,0,1.063097476959229,-0.2686925530433655 +-120,0.2414570450782776,0,1.05797266960144,-0.2654785811901093 +-119,0.238454207777977,0,1.051634073257446,-0.2618589401245117 +-118,0.2352233380079269,0,1.044391632080078,-0.2576965689659119 +-117,0.2317549884319305,0,1.036733508110046,-0.2527808845043182 +-116,0.2279371470212936,0,1.029074907302856,-0.2468872517347336 +-115,0.2234892100095749,0,1.02118456363678,-0.2399237602949142 +-114,0.2180754542350769,0,1.011672258377075,-0.2320918291807175 +-113,0.211583137512207,0,0.9983202219009399,-0.2238659113645554 +-112,0.2039979845285416,0,0.9796477556228638,-0.2155952006578445 +-111,0.195000946521759,0,0.9559168815612793,-0.2070482224225998 +-110,0.1844314187765121,0,0.9272407293319702,-0.1975666880607605 +-109,0.1727571040391922,0,0.8922228813171387,-0.1866056621074677 +-108,0.1607019752264023,0,0.8491185903549194,-0.1739216148853302 +-107,0.1489665955305099,0,0.7967037558555603,-0.159447580575943 +-106,0.1383500546216965,0,0.7347305417060852,-0.1433241963386536 +-105,0.1300462931394577,0,0.6653658747673035,-0.1263289153575897 +-104,0.1252058297395706,0,0.5950736403465271,-0.1103508099913597 +-103,0.1227947920560837,0,0.5316334962844849,-0.09737794101238251 +-102,0.1192209050059319,0,0.4789583683013916,-0.08784447610378265 +-101,0.1121396869421005,0,0.4355404675006866,-0.08075185865163803 +-100,0.1032650470733643,0,0.3931239247322083,-0.07444074004888535 +-99,0.0954713374376297,0,0.3431900143623352,-0.06739606708288193 +-98,0.08899741619825363,0,0.2878719866275787,-0.05966963246464729 +-97,0.08331958204507828,0,0.2343652546405792,-0.05253051593899727 +-96,0.07796047627925873,0,0.1905439347028732,-0.04717213660478592 +-95,0.06970854848623276,0,0.1715176552534103,-0.04249303787946701 +-94,0.05274262651801109,0,0.1899301409721375,-0.03198550641536713 +-93,0.02851724810898304,0,0.290101170539856,-0.007987314835190773 +-92,0.02115723863244057,0,0.2028342187404633,0.01058504264801741 +-91,0.01834883540868759,0,0.08175332099199295,0.01997522637248039 +-90,0.01718171499669552,0,-0.03120067715644836,0.02284945175051689 +-89,0.01677313260734081,0,-0.1481933742761612,0.02342293970286846 +-88,0.01722547225654125,0,-0.2708488702774048,0.02394909225404263 +-87,0.01904970593750477,0,-0.3886582851409912,0.02614766359329224 +-86,0.02282591350376606,0,-0.4875373542308807,0.03089382685720921 +-85,0.02863875962793827,0,-0.5617083311080933,0.03588814660906792 +-84,0.03578061610460281,0,-0.6189702749252319,0.0394711010158062 +-83,0.04388150200247765,0,-0.668277382850647,0.04243255406618118 +-82,0.05303629487752914,0,-0.714587926864624,0.04590567201375961 +-81,0.06334412097930908,0,-0.7609955072402954,0.05064358562231064 +-80,0.07448390126228333,0,-0.8104473948478699,0.05729017406702042 +-79,0.08550345897674561,0,-0.8609766960144043,0.06590022891759872 +-78,0.09486790001392365,0,-0.9067251086235046,0.07510868459939957 +-77,0.1055592447519302,0,-0.9495068788528442,0.0838451012969017 +-76,0.1164076328277588,0,-0.9862343668937683,0.09242265671491623 +-75,0.1272188127040863,0,-1.003187417984009,0.1027439013123512 +-74,0.1487869918346405,0,-1.000241160392761,0.1210130602121353 +-73,0.1767340451478958,0,-0.9931517839431763,0.1424997597932816 +-72,0.2017504572868347,0,-1.000350117683411,0.1619390994310379 +-71,0.2235729992389679,0,-1.020316004753113,0.1781935691833496 +-70,0.2436977922916412,0,-1.04710841178894,0.1915742009878159 +-69,0.2618990838527679,0,-1.077503681182861,0.2025798559188843 +-68,0.2780772745609283,0,-1.109440445899963,0.211718276143074 +-67,0.2927124798297882,0,-1.141435742378235,0.2194845229387283 +-66,0.3063391149044037,0,-1.172399759292603,0.2263088226318359 +-65,0.319240391254425,0,-1.201596856117249,0.2324817180633545 +-64,0.33147332072258,0,-1.228634357452393,0.2381481677293777 +-63,0.3429737091064453,0,-1.253346681594849,0.2433514893054962 +-62,0.3536440134048462,0,-1.275679111480713,0.2480847388505936 +-61,0.3634044826030731,0,-1.295620083808899,0.2523262500762939 +-60,0.3722090423107147,0,-1.313172101974487,0.2560526728630066 +-59,0.3800546824932098,0,-1.328360199928284,0.259249210357666 +-58,0.3869743645191193,0,-1.341252684593201,0.2619134783744812 +-57,0.3930270075798035,0,-1.351964831352234,0.2640529870986938 +-56,0.3982804119586945,0,-1.360661387443542,0.2656847536563873 +-55,0.402797132730484,0,-1.367537498474121,0.2668312191963196 +-54,0.4066244959831238,0,-1.37280011177063,0.2675157487392426 +-53,0.409791111946106,0,-1.37664258480072,0.2677608728408813 +-52,0.4123037755489349,0,-1.379231572151184,0.267583429813385 +-51,0.4141579568386078,0,-1.380703210830688,0.2669976353645325 +-50,0.4153394103050232,0,-1.381153583526611,0.2660123705863953 +-49,0.415828675031662,0,-1.380656003952026,0.2646344006061554 +-48,0.4156076610088348,0,-1.379256248474121,0.2628671526908875 +-47,0.4146668910980225,0,-1.376977920532227,0.2607132792472839 +-46,0.412999153137207,0,-1.373838663101196,0.2581726610660553 +-45,0.4106089174747467,0,-1.369834899902344,0.2552446722984314 +-44,0.4075098037719727,0,-1.364963531494141,0.2519285678863525 +-43,0.40372434258461,0,-1.35921311378479,0.248220682144165 +-42,0.399283766746521,0,-1.352566003799438,0.2441191971302032 +-41,0.394228994846344,0,-1.345001578330994,0.2396208792924881 +-40,0.3886055648326874,0,-1.336490392684937,0.2347229421138763 +-39,0.3824619650840759,0,-1.327001333236694,0.2294243574142456 +-38,0.3758488893508911,0,-1.316500663757324,0.2237246334552765 +-37,0.3688085675239563,0,-1.304951667785645,0.2176279574632645 +-36,0.3613778948783875,0,-1.292321443557739,0.2111410200595856 +-35,0.3535799384117126,0,-1.27859890460968,0.2042726576328278 +-34,0.3454297184944153,0,-1.263833284378052,0.1970214992761612 +-33,0.3369375467300415,0,-1.248249053955078,0.1893442720174789 +-32,0.3280925452709198,0,-1.232454895973206,0.1810807734727859 +-31,0.3187407255172729,0,-1.217783212661743,0.1718374490737915 +-30,0.308201789855957,0,-1.206825852394104,0.1608779728412628 +-29,0.2949949502944946,0,-1.204666614532471,0.1470957100391388 +-28,0.2767226696014404,0,-1.21992826461792,0.1293245851993561 +-27,0.246138721704483,0,-1.26576554775238,0.1071306243538857 +-26,0.203374832868576,0,-1.340065002441406,0.08301474153995514 +-25,0.171829491853714,0,-1.38943612575531,0.0641714483499527 +-24,0.1540328711271286,0,-1.397075414657593,0.0517648383975029 +-23,0.1401952356100082,0,-1.398243427276611,0.04093535616993904 +-22,0.1236108839511871,0,-1.4302818775177,0.02901211939752102 +-21,0.1057194247841835,0,-1.466954350471497,0.01855399832129478 +-20,0.08794189989566803,0,-1.493975400924683,0.01058405078947544 +-19,0.07163579761981964,0,-1.513854622840881,0.00429760804399848 +-18,0.05722253769636154,0,-1.526669383049011,-0.0007707029581069946 +-17,0.04507353901863098,0,-1.526151657104492,-0.00406543305143714 +-16,0.03573065996170044,0,-1.508855104446411,-0.004682689905166626 +-15,0.02894772216677666,0,-1.476879239082336,-0.003109514713287354 +-14,0.0241184551268816,0,-1.43195366859436,5.095601227367297e-05 +-13,0.02076894976198673,0,-1.37528395652771,0.004875850863754749 +-12,0.01843834482133389,0,-1.307035446166992,0.01075092516839504 +-11,0.01710282638669014,0,-1.226324677467346,0.01661955751478672 +-10,0.0162397213280201,0,-1.135658025741577,0.02080948278307915 +-9,0.01510291080921888,0,-1.03542947769165,0.02330527268350124 +-8,0.01406471990048885,0,-0.9305914044380188,0.02545356750488281 +-7,0.01321767270565033,0,-0.8248425126075745,0.02736877277493477 +-6,0.01252459827810526,0,-0.7169462442398071,0.02906398102641106 +-5,0.0119216525927186,0,-0.6061301231384277,0.03044905699789524 +-4,0.01134988106787205,0,-0.4929587543010712,0.03165066242218018 +-3,0.01071956101804972,0,-0.3791317343711853,0.03255481645464897 +-2,0.009858869016170502,0,-0.2669180035591125,0.03352725505828857 +-1,0.009047205559909344,0,-0.1554068028926849,0.03446335718035698 +0,0.008861063048243523,0,-0.03923037648200989,0.03477189689874649 +1,0.008855538442730904,0,0.07880130410194397,0.03489780426025391 +2,0.008899949491024017,0,0.1961012333631516,0.03506243973970413 +3,0.009076895192265511,0,0.3133144676685333,0.03523500636219978 +4,0.009387918747961521,0,0.4297564029693604,0.03545413166284561 +5,0.009736184030771255,0,0.5450942516326904,0.03584166616201401 +6,0.01011667493730783,0,0.6610437035560608,0.03610693663358688 +7,0.01053980179131031,0,0.776012659072876,0.03656827285885811 +8,0.01107776630669832,0,0.8937397003173828,0.03628024458885193 +9,0.01188088394701481,0,1.033698201179504,0.03064715303480625 +10,0.01282202079892159,0,1.163590669631958,0.02634418569505215 +11,0.01390837971121073,0,1.261056542396545,0.02813111618161201 +12,0.01536828372627497,0,1.348520994186401,0.03143095970153809 +13,0.01692977361381054,0,1.440670609474182,0.03416057303547859 +14,0.01807128451764584,0,1.543258190155029,0.03628228604793549 +15,0.01982676982879639,0,1.634113550186157,0.03835238888859749 +16,0.0256948322057724,0,1.671855330467224,0.03686542436480522 +17,0.03744816035032272,0,1.653517603874207,0.03098117932677269 +18,0.05322170257568359,0,1.612212777137756,0.02384261228144169 +19,0.07084687054157257,0,1.570457220077515,0.01649037376046181 +20,0.09281653165817261,0,1.504260659217834,0.006248831748962402 +21,0.119094654917717,0,1.413508176803589,-0.007214212324470282 +22,0.1331109255552292,0,1.387765526771545,-0.01810920797288418 +23,0.1412361264228821,0,1.391500473022461,-0.02763113752007484 +24,0.1527268290519714,0,1.39094066619873,-0.03763391822576523 +25,0.1669738292694092,0,1.390407204627991,-0.0481126680970192 +26,0.1815449744462967,0,1.394622206687927,-0.05873965099453926 +27,0.1955852508544922,0,1.401210188865662,-0.06920578330755234 +28,0.2103447020053864,0,1.401794075965881,-0.07914712280035019 +29,0.2269922643899918,0,1.390974044799805,-0.0883113220334053 +30,0.2443268597126007,0,1.374570369720459,-0.09684272855520248 +31,0.2604269087314606,0,1.361328125,-0.1050028204917908 +32,0.2746618390083313,0,1.354833602905273,-0.1128954738378525 +33,0.2873223721981049,0,1.35460364818573,-0.1205002516508102 +34,0.2988455891609192,0,1.358797192573547,-0.1277656555175781 +35,0.309517115354538,0,1.365667581558228,-0.1346584856510162 +36,0.3194634914398193,0,1.373975038528442,-0.1411714255809784 +37,0.3287194073200226,0,1.382913827896118,-0.1473154574632645 +38,0.3372890949249268,0,1.391939163208008,-0.1531100571155548 +39,0.3451775312423706,0,1.400638103485107,-0.1585751473903656 +40,0.3523939847946167,0,1.408681154251099,-0.1637294590473175 +41,0.3589504361152649,0,1.415810585021973,-0.1685871332883835 +42,0.3648510873317719,0,1.421843528747559,-0.1731542497873306 +43,0.3700900971889496,0,1.426685333251953,-0.177428811788559 +44,0.3746412098407745,0,1.430327415466309,-0.1813994497060776 +45,0.3784629702568054,0,1.432826519012451,-0.1850482076406479 +46,0.3815047144889832,0,1.434268951416016,-0.1883551627397537 +47,0.3837155401706696,0,1.434751033782959,-0.1913013905286789 +48,0.3850541114807129,0,1.434359550476074,-0.1938734799623489 +49,0.3854939043521881,0,1.43314528465271,-0.1960617005825043 +50,0.385028749704361,0,1.431136131286621,-0.1978627145290375 +51,0.3836672306060791,0,1.428323745727539,-0.1992784142494202 +52,0.381437748670578,0,1.424669027328491,-0.2003135681152344 +53,0.378375917673111,0,1.420102596282959,-0.2009756565093994 +54,0.3745253682136536,0,1.414520978927612,-0.2012711018323898 +55,0.3699291050434113,0,1.40779972076416,-0.2012052536010742 +56,0.3646136820316315,0,1.399807095527649,-0.2007763087749481 +57,0.3585899770259857,0,1.390424013137817,-0.1999756395816803 +58,0.3518326878547668,0,1.379592657089233,-0.1987868547439575 +59,0.3442828953266144,0,1.36735999584198,-0.1971891075372696 +60,0.3358392715454102,0,1.353948354721069,-0.1951634436845779 +61,0.3263548314571381,0,1.339812397956848,-0.1926992237567902 +62,0.3156023919582367,0,1.325710296630859,-0.1897956877946854 +63,0.3031930327415466,0,1.312731623649597,-0.1864597648382187 +64,0.2884541451931,0,1.302194356918335,-0.1826840043067932 +65,0.2706197202205658,0,1.294948935508728,-0.1784141957759857 +66,0.2499593496322632,0,1.289260864257812,-0.173499584197998 +67,0.2288067787885666,0,1.2790687084198,-0.167689174413681 +68,0.209632620215416,0,1.258262634277344,-0.1607951372861862 +69,0.1928665637969971,0,1.226043939590454,-0.1528371870517731 +70,0.1779736131429672,0,1.184163093566895,-0.1438912153244019 +71,0.1646305471658707,0,1.133873820304871,-0.1340363025665283 +72,0.152704730629921,0,1.076247692108154,-0.1234374046325684 +73,0.1420364379882812,0,1.012869358062744,-0.1124009639024734 +74,0.1324048638343811,0,0.946048378944397,-0.1014127284288406 +75,0.1236563324928284,0,0.8780208230018616,-0.09094448387622833 +76,0.1160410270094872,0,0.8105592727661133,-0.08136866986751556 +77,0.1104156821966171,0,0.7454563975334167,-0.0731910914182663 +78,0.107210747897625,0,0.6836802959442139,-0.06693951040506363 +79,0.104556068778038,0,0.6267102956771851,-0.06270581483840942 +80,0.09949611127376556,0,0.5784897804260254,-0.05993131920695305 +81,0.09214840829372406,0,0.5344656705856323,-0.05675680190324783 +82,0.08341192454099655,0,0.4910793006420135,-0.05177772045135498 +83,0.07180886715650558,0,0.4558793604373932,-0.04473551362752914 +84,0.05271744355559349,0,0.470223069190979,-0.03268275037407875 +85,0.03402850031852722,0,0.5148577094078064,-0.01559869665652514 +86,0.02559022605419159,0,0.4485905766487122,-0.0009541303152218461 +87,0.0212816409766674,0,0.3284678757190704,0.01044325530529022 +88,0.0188889354467392,0,0.2037072777748108,0.01788277365267277 +89,0.01769872568547726,0,0.08435732126235962,0.02159668877720833 +90,0.01718171499669552,0,-0.03120067715644836,0.02284945175051689 +91,0.01702246628701687,0,-0.1480224281549454,0.02309202402830124 +92,0.01757536828517914,0,-0.2639675438404083,0.02382983639836311 +93,0.02008607238531113,0,-0.3604617416858673,0.02709885314106941 +94,0.02560687065124512,0,-0.4183369874954224,0.03217565268278122 +95,0.03340327739715576,0,-0.4454245567321777,0.03542735427618027 +96,0.04257843643426895,0,-0.4602042436599731,0.03721432015299797 +97,0.05285285785794258,0,-0.4796246886253357,0.04036182537674904 +98,0.06321514397859573,0,-0.5251743793487549,0.04842384159564972 +99,0.07337100058794022,0,-0.5922672152519226,0.0622296929359436 +100,0.08303020149469376,0,-0.647496223449707,0.07765959203243256 +101,0.09435407072305679,0,-0.6693294048309326,0.09342938661575317 +102,0.1098598837852478,0,-0.6522998213768005,0.1107842475175858 +103,0.128744512796402,0,-0.623624324798584,0.129584789276123 +104,0.1510462611913681,0,-0.6056277751922607,0.1462097465991974 +105,0.1669941395521164,0,-0.6080360412597656,0.1597453504800797 +106,0.174602746963501,0,-0.649274468421936,0.1748512089252472 +107,0.1873761713504791,0,-0.7237842679023743,0.194352313876152 +108,0.2015033662319183,0,-0.7984141111373901,0.2121998369693756 +109,0.2115966528654099,0,-0.8618056774139404,0.2269265204668045 +110,0.2175773531198502,0,-0.913288414478302,0.2391998469829559 +111,0.2209394723176956,0,-0.9547919034957886,0.2496573477983475 +112,0.2230263352394104,0,-0.9882875680923462,0.2587240040302277 +113,0.2246790677309036,0,-1.015273571014404,0.2666971385478973 +114,0.2263219058513641,0,-1.036903619766235,0.2738012671470642 +115,0.2281171977519989,0,-1.054150342941284,0.2802044749259949 +116,0.2300830185413361,0,-1.067877292633057,0.2860240042209625 +117,0.2321684956550598,0,-1.078837633132935,0.2913340032100677 +118,0.2342948317527771,0,-1.08765709400177,0.2961779534816742 +119,0.2363788634538651,0,-1.094820737838745,0.300578385591507 +120,0.2383422255516052,0,-1.100665807723999,0.3045450747013092 +121,0.2401177287101746,0,-1.105412364006042,0.30808225274086 +122,0.2416510730981827,0,-1.109186410903931,0.311192125082016 +123,0.2429011762142181,0,-1.112045168876648,0.3138767182826996 +124,0.2438394278287888,0,-1.11400580406189,0.3161384165287018 +125,0.2444517314434052,0,-1.115052103996277,0.3179805874824524 +126,0.2447358965873718,0,-1.115159034729004,0.3194080889225006 +127,0.2446972727775574,0,-1.114287376403809,0.3204239010810852 +128,0.2443524897098541,0,-1.112404346466064,0.321033239364624 +129,0.2437205165624619,0,-1.10947585105896,0.3212405145168304 +130,0.2428223192691803,0,-1.105475306510925,0.3210495114326477 +131,0.2416786700487137,0,-1.100382328033447,0.3204647302627563 +132,0.2403106689453125,0,-1.094187378883362,0.3194893896579742 +133,0.2387365251779556,0,-1.086885452270508,0.3181273937225342 +134,0.236970454454422,0,-1.078479051589966,0.316381424665451 +135,0.2350260615348816,0,-1.06898045539856,0.3142554759979248 +136,0.2329123169183731,0,-1.058401465415955,0.3117512166500092 +137,0.2306390553712845,0,-1.046761274337769,0.3088715970516205 +138,0.2282104343175888,0,-1.03407895565033,0.3056180477142334 +139,0.2256313115358353,0,-1.020377397537231,0.3019930422306061 +140,0.2229037582874298,0,-1.00567626953125,0.2979981005191803 +141,0.2200277000665665,0,-0.9899916052818298,0.2936347424983978 +142,0.2170034497976303,0,-0.9733384847640991,0.2889055907726288 +143,0.2138296067714691,0,-0.9557220935821533,0.2838138937950134 +144,0.2105040401220322,0,-0.9371384382247925,0.2783646583557129 +145,0.2070246636867523,0,-0.917573094367981,0.2725659310817719 +146,0.2033904939889908,0,-0.8969957828521729,0.2664290070533752 +147,0.1996004283428192,0,-0.8753539323806763,0.2599705159664154 +148,0.1956527829170227,0,-0.8525725603103638,0.2532120048999786 +149,0.1915487498044968,0,-0.8285484313964844,0.2461820840835571 +150,0.1872867941856384,0,-0.8031464815139771,0.2389153987169266 +151,0.1828653663396835,0,-0.7761965990066528,0.2314529418945312 +152,0.1782855540513992,0,-0.7474913597106934,0.2238399684429169 +153,0.1735513508319855,0,-0.7167809009552002,0.2161237746477127 +154,0.1686764806509018,0,-0.683763861656189,0.2083508968353271 +155,0.1636917293071747,0,-0.6480830311775208,0.2005622833967209 +156,0.1586601883172989,0,-0.6093295812606812,0.1927895694971085 +157,0.1536992192268372,0,-0.5670948028564453,0.1850486695766449 +158,0.1490001976490021,0,-0.5210758447647095,0.1773204505443573 +159,0.1448018848896027,0,-0.4711175262928009,0.1694888323545456 +160,0.1412208080291748,0,-0.4166171550750732,0.1611541360616684 +161,0.1380596160888672,0,-0.3544706404209137,0.1512457728385925 +162,0.1359304785728455,0,-0.2792780101299286,0.1382473409175873 +163,0.1395904123783112,0,-0.2089918255805969,0.1259450614452362 +164,0.1455435752868652,0,-0.1897534132003784,0.1227110624313354 +165,0.1394079178571701,0,-0.1877464056015015,0.1185228377580643 +166,0.1269956231117249,0,-0.1720500290393829,0.108466312289238 +167,0.1148011088371277,0,-0.1391533464193344,0.09560126066207886 +168,0.1014267653226852,0,-0.08907203376293182,0.07973018288612366 +169,0.09031802415847778,0,-0.03297503292560577,0.06186085194349289 +170,0.0819697305560112,0,-0.02359236776828766,0.05157958716154099 +171,0.07384110242128372,0,-0.05474348366260529,0.04734108597040176 +172,0.06515440344810486,0,-0.1044188141822815,0.04528525099158287 +173,0.05684758350253105,0,-0.153860867023468,0.04379171505570412 +174,0.04924221709370613,0,-0.17880979180336,0.04164166003465652 +175,0.04369993135333061,0,-0.1356658935546875,0.03825102373957634 +176,0.04004558920860291,0,-0.05045933276414871,0.03117073141038418 +177,0.0346628837287426,0,0.01156845688819885,0.01788354851305485 +178,0.03188037127256393,0,0.01764539629220963,0.003790706396102905 +179,0.03390879556536674,0,-0.03506172448396683,-0.003915846347808838 +180,0.03584802895784378,0,-0.08268290758132935,-0.008114335127174854 diff --git a/data/ram_air_kite/polars_neuralfoil/5.csv b/data/ram_air_kite/polars_neuralfoil/5.csv new file mode 100644 index 00000000..f740aac5 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/5.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03504237532615662,0,-0.08731076866388321,-0.006105083040893078 +-179,0.03625882789492607,0,-0.1326380968093872,-0.006101840641349554 +-178,0.03706835955381393,0,-0.1714919656515121,-0.00422552227973938 +-177,0.03772514685988426,0,-0.1930438578128815,-0.00436536967754364 +-176,0.03836855292320251,0,-0.1994615644216537,-0.006700021214783192 +-175,0.03916948661208153,0,-0.1955482810735703,-0.01045810244977474 +-174,0.04021183401346207,0,-0.184540867805481,-0.01503735221922398 +-173,0.04156282544136047,0,-0.1680910587310791,-0.0201931819319725 +-172,0.04338434338569641,0,-0.1468158811330795,-0.02593777701258659 +-171,0.04593038558959961,0,-0.121390625834465,-0.03223162144422531 +-170,0.0494777113199234,0,-0.0945621132850647,-0.03852815181016922 +-169,0.05430535599589348,0,-0.07352326810359955,-0.04363482445478439 +-168,0.06064783036708832,0,-0.06671136617660522,-0.04674938321113586 +-167,0.06764134764671326,0,-0.07288575172424316,-0.04787697643041611 +-166,0.07268744707107544,0,-0.07948789000511169,-0.04823768883943558 +-165,0.07434425503015518,0,-0.06815347075462341,-0.05116140097379684 +-164,0.07563113421201706,0,-0.02980703115463257,-0.05901288241147995 +-163,0.07996540516614914,0,0.02513560652732849,-0.06988342851400375 +-162,0.08728382736444473,0,0.08222287893295288,-0.08036883175373077 +-161,0.09642443060874939,0,0.1363632380962372,-0.08943842351436615 +-160,0.1064701080322266,0,0.1880783140659332,-0.09785215556621552 +-159,0.1166321262717247,0,0.2380181550979614,-0.1067127361893654 +-158,0.1263006776571274,0,0.2866010069847107,-0.1166732162237167 +-157,0.1353006362915039,0,0.3350710868835449,-0.1276047229766846 +-156,0.1438139379024506,0,0.3844471275806427,-0.1388821750879288 +-155,0.152034118771553,0,0.4342072904109955,-0.1498808711767197 +-154,0.1599908769130707,0,0.4828892946243286,-0.1602225005626678 +-153,0.1676038950681686,0,0.5291904211044312,-0.1697895675897598 +-152,0.1747771799564362,0,0.5723167657852173,-0.1786274015903473 +-151,0.1814579516649246,0,0.6118885278701782,-0.1868392378091812 +-150,0.1876519173383713,0,0.6478344798088074,-0.1945190876722336 +-149,0.1933989524841309,0,0.6803455352783203,-0.2017362862825394 +-148,0.1987507790327072,0,0.7097889184951782,-0.2085377424955368 +-147,0.2037509679794312,0,0.7366126775741577,-0.2149570733308792 +-146,0.2084315121173859,0,0.761269748210907,-0.2210203856229782 +-145,0.2128119021654129,0,0.784155547618866,-0.2267473191022873 +-144,0.2169000506401062,0,0.8055891990661621,-0.2321521937847137 +-143,0.2206977754831314,0,0.8258106708526611,-0.2372433692216873 +-142,0.2242016345262527,0,0.8449870347976685,-0.2420249432325363 +-141,0.22740638256073,0,0.863227367401123,-0.2464964836835861 +-140,0.2303060740232468,0,0.8805899620056152,-0.2506536841392517 +-139,0.2328972071409225,0,0.8971006274223328,-0.2544909119606018 +-138,0.2351772487163544,0,0.9127590656280518,-0.2580000758171082 +-137,0.2371473610401154,0,0.9275457859039307,-0.261171817779541 +-136,0.238811269402504,0,0.9414322972297668,-0.2639978229999542 +-135,0.2401754856109619,0,0.9543838500976562,-0.2664684653282166 +-134,0.2412499487400055,0,0.9663676023483276,-0.2685764133930206 +-133,0.2420436292886734,0,0.9773478507995605,-0.270314633846283 +-132,0.2425679564476013,0,0.9872969388961792,-0.2716777324676514 +-131,0.2428326308727264,0,0.9961940050125122,-0.2726628482341766 +-130,0.2428480237722397,0,1.004019260406494,-0.2732687592506409 +-129,0.2426231354475021,0,1.010761022567749,-0.2734971940517426 +-128,0.2421656548976898,0,1.016411781311035,-0.2733517289161682 +-127,0.2414802461862564,0,1.020959138870239,-0.272838681936264 +-126,0.2405710369348526,0,1.024386405944824,-0.2719661295413971 +-125,0.2394421696662903,0,1.02666962146759,-0.2707444429397583 +-124,0.238095223903656,0,1.027772784233093,-0.2691869735717773 +-123,0.2365327179431915,0,1.027637720108032,-0.2673050463199615 +-122,0.2347582131624222,0,1.026193618774414,-0.2651111781597137 +-121,0.2327759116888046,0,1.023345708847046,-0.2626106142997742 +-120,0.2305974960327148,0,1.01901388168335,-0.2597983479499817 +-119,0.2282392233610153,0,1.013155460357666,-0.2566418647766113 +-118,0.2257232069969177,0,1.005841255187988,-0.2530605792999268 +-117,0.223059207201004,0,0.9973504543304443,-0.2489021569490433 +-116,0.2201950997114182,0,0.988214373588562,-0.2439421713352203 +-115,0.216918408870697,0,0.9790395498275757,-0.2379496544599533 +-114,0.2127738445997238,0,0.97003173828125,-0.2308237850666046 +-113,0.2071603983640671,0,0.9604380130767822,-0.222722053527832 +-112,0.1996691524982452,0,0.9483323693275452,-0.2140051424503326 +-111,0.1904692202806473,0,0.9311368465423584,-0.2049020975828171 +-110,0.1802010387182236,0,0.9066848754882812,-0.1951940804719925 +-109,0.1693990081548691,0,0.8738616108894348,-0.1843979358673096 +-108,0.1583884060382843,0,0.8321620225906372,-0.1721177101135254 +-107,0.1475958377122879,0,0.7811920046806335,-0.1581405997276306 +-106,0.1378681212663651,0,0.7211257815361023,-0.1425282210111618 +-105,0.1306355148553848,0,0.6546070575714111,-0.1261076033115387 +-104,0.1268615871667862,0,0.5886312127113342,-0.1108942180871964 +-103,0.1246189922094345,0,0.5303760170936584,-0.09866298735141754 +-102,0.1200775504112244,0,0.481617659330368,-0.08930860459804535 +-101,0.1118714734911919,0,0.4392071664333344,-0.08172531425952911 +-100,0.1025670915842056,0,0.39519402384758,-0.07458271831274033 +-99,0.09465432912111282,0,0.3428022861480713,-0.06671722233295441 +-98,0.0879824161529541,0,0.2850197553634644,-0.0583084411919117 +-97,0.08212258666753769,0,0.2294585853815079,-0.05064309760928154 +-96,0.07669682800769806,0,0.1846785247325897,-0.04487310349941254 +-95,0.06833526492118835,0,0.1670269519090652,-0.0397796630859375 +-94,0.05094608664512634,0,0.1910698115825653,-0.02846083417534828 +-93,0.02755252085626125,0,0.2923437654972076,-0.003260260913521051 +-92,0.02121631801128387,0,0.192265585064888,0.01516071707010269 +-91,0.01895923539996147,0,0.06905719637870789,0.02372176945209503 +-90,0.01806866563856602,0,-0.04287940263748169,0.0258865300565958 +-89,0.01759952120482922,0,-0.1572835892438889,0.02585422061383724 +-88,0.0172168742865324,0,-0.2809464931488037,0.02555024996399879 +-87,0.01694254018366337,0,-0.4130290746688843,0.02596583403646946 +-86,0.01736299879848957,0,-0.5440844893455505,0.02808060869574547 +-85,0.01963836140930653,0,-0.6545740365982056,0.0326266922056675 +-84,0.02478429675102234,0,-0.7286168336868286,0.03827166557312012 +-83,0.03319475054740906,0,-0.7685010433197021,0.04284931346774101 +-82,0.04476037621498108,0,-0.7902709245681763,0.04689310863614082 +-81,0.05844014510512352,0,-0.8113944530487061,0.05209844186902046 +-80,0.072606161236763,0,-0.8404780030250549,0.05937244743108749 +-79,0.0853598564863205,0,-0.874662458896637,0.06818049401044846 +-78,0.09673291444778442,0,-0.9138856530189514,0.07744842767715454 +-77,0.1075064614415169,0,-0.9586546421051025,0.08564530313014984 +-76,0.1130827963352203,0,-1.002689719200134,0.09200508892536163 +-75,0.1222564652562141,0,-1.048383951187134,0.1016785949468613 +-74,0.1365534961223602,0,-1.094447374343872,0.1142556443810463 +-73,0.1527868211269379,0,-1.133739471435547,0.1268058270215988 +-72,0.1702421307563782,0,-1.163525104522705,0.1389781385660172 +-71,0.1886932104825974,0,-1.183476448059082,0.1510413140058517 +-70,0.207641527056694,0,-1.195627331733704,0.1632506847381592 +-69,0.2266040742397308,0,-1.203423380851746,0.1755017787218094 +-68,0.2459183484315872,0,-1.209916353225708,0.1873959600925446 +-67,0.2660925388336182,0,-1.217371582984924,0.1985189616680145 +-66,0.2866672873497009,0,-1.227452874183655,0.2086179256439209 +-65,0.3064956963062286,0,-1.240820169448853,0.2175940573215485 +-64,0.3246520757675171,0,-1.257071018218994,0.2254407852888107 +-63,0.3408647179603577,0,-1.275098443031311,0.2322304248809814 +-62,0.355294942855835,0,-1.293579936027527,0.2380954474210739 +-61,0.3681661784648895,0,-1.311367034912109,0.2431744039058685 +-60,0.3796027004718781,0,-1.327678203582764,0.2475656718015671 +-59,0.3896559774875641,0,-1.342090964317322,0.251324474811554 +-58,0.3983678817749023,0,-1.35444974899292,0.2544763088226318 +-57,0.4058045744895935,0,-1.364766359329224,0.2570371627807617 +-56,0.4120629131793976,0,-1.37314772605896,0.2590252757072449 +-55,0.4172562658786774,0,-1.37975811958313,0.2604632079601288 +-54,0.4214862585067749,0,-1.384776711463928,0.2613776028156281 +-53,0.4248409271240234,0,-1.38838005065918,0.2617968916893005 +-52,0.427379310131073,0,-1.390718340873718,0.261744886636734 +-51,0.4291384816169739,0,-1.391921043395996,0.2612433135509491 +-50,0.430139034986496,0,-1.392086267471313,0.2603092789649963 +-49,0.4303886294364929,0,-1.391280055046082,0.258954644203186 +-48,0.4298879504203796,0,-1.389555096626282,0.2571893334388733 +-47,0.4286398887634277,0,-1.386936783790588,0.2550184726715088 +-46,0.4266500473022461,0,-1.383441925048828,0.2524453699588776 +-45,0.4239272475242615,0,-1.379076719284058,0.2494703084230423 +-44,0.4204896688461304,0,-1.373844027519226,0.2460923492908478 +-43,0.4163604080677032,0,-1.367743372917175,0.2423067539930344 +-42,0.411567360162735,0,-1.360780477523804,0.2381073236465454 +-41,0.4061408340930939,0,-1.35297417640686,0.2334854155778885 +-40,0.4001074731349945,0,-1.344366073608398,0.22842638194561 +-39,0.3934869766235352,0,-1.335045099258423,0.2229085266590118 +-38,0.3862744569778442,0,-1.3251953125,0.2168894559144974 +-37,0.3784075081348419,0,-1.31518542766571,0.2102851867675781 +-36,0.3696841895580292,0,-1.305716514587402,0.2029329538345337 +-35,0.359557569026947,0,-1.298003435134888,0.1945525854825974 +-34,0.3469008505344391,0,-1.293791890144348,0.1847567558288574 +-33,0.3304446935653687,0,-1.295053362846375,0.1731793284416199 +-32,0.3105982542037964,0,-1.303382873535156,0.1596627831459045 +-31,0.2900886237621307,0,-1.319169282913208,0.1444200277328491 +-30,0.2703433930873871,0,-1.340116500854492,0.1283551603555679 +-29,0.2500232458114624,0,-1.360257148742676,0.1131228655576706 +-28,0.2297406494617462,0,-1.373115658760071,0.09974879026412964 +-27,0.2104969173669815,0,-1.378717422485352,0.08777839690446854 +-26,0.1924989968538284,0,-1.379726767539978,0.07673389464616776 +-25,0.175780713558197,0,-1.379125952720642,0.0663784071803093 +-24,0.1607281565666199,0,-1.378299951553345,0.05639958381652832 +-23,0.1475032716989517,0,-1.376727819442749,0.04642998054623604 +-22,0.1329284459352493,0,-1.385647296905518,0.03605438396334648 +-21,0.114897221326828,0,-1.416608333587646,0.02561457827687263 +-20,0.09477606415748596,0,-1.462479710578918,0.01624579168856144 +-19,0.07537425309419632,0,-1.505142331123352,0.008930844254791737 +-18,0.05828908085823059,0,-1.537418723106384,0.003537398530170321 +-17,0.04446851462125778,0,-1.551806330680847,0.0003929495869670063 +-16,0.03436407074332237,0,-1.542909383773804,9.97126116999425e-05 +-15,0.02736925333738327,0,-1.513825654983521,0.001981413457542658 +-14,0.0226338692009449,0,-1.468193531036377,0.005509847309440374 +-13,0.01950561814010143,0,-1.409499406814575,0.0107903778553009 +-12,0.01733772270381451,0,-1.340191602706909,0.01700305938720703 +-11,0.01571870222687721,0,-1.258018016815186,0.02248468995094299 +-10,0.01488053612411022,0,-1.167875528335571,0.02789919450879097 +-9,0.01391357276588678,0,-1.06974995136261,0.03044011071324348 +-8,0.01286494545638561,0,-0.9627336263656616,0.03218690678477287 +-7,0.01201120857149363,0,-0.854425311088562,0.03362252190709114 +-6,0.01130221970379353,0,-0.7445308566093445,0.03473537415266037 +-5,0.01066701207309961,0,-0.6321226954460144,0.03552117943763733 +-4,0.01012623123824596,0,-0.5172941088676453,0.03608363121747971 +-3,0.009785394184291363,0,-0.3999970555305481,0.0363486185669899 +-2,0.009577855467796326,0,-0.2817559838294983,0.03624884411692619 +-1,0.009381747804582119,0,-0.1637032032012939,0.03601450845599174 +0,0.00925156194716692,0,-0.04526269435882568,0.0358109250664711 +1,0.00920507125556469,0,0.0741712749004364,0.03556134551763535 +2,0.009223784320056438,0,0.1933518052101135,0.03528120368719101 +3,0.009352076798677444,0,0.3120293021202087,0.03498497605323792 +4,0.009645075537264347,0,0.4302162230014801,0.03462385386228561 +5,0.009999813511967659,0,0.5470936894416809,0.03439443558454514 +6,0.01036565564572811,0,0.663870632648468,0.03423763066530228 +7,0.01077914703637362,0,0.779575526714325,0.03441421315073967 +8,0.01129599194973707,0,0.8922476768493652,0.03527220338582993 +9,0.01207164581865072,0,1.022563815116882,0.03190146014094353 +10,0.01303619053214788,0,1.156488180160522,0.02685711346566677 +11,0.01414280571043491,0,1.261272788047791,0.02707368135452271 +12,0.0156031921505928,0,1.349611163139343,0.03004401363432407 +13,0.01721571572124958,0,1.43946897983551,0.03295402601361275 +14,0.01842267066240311,0,1.539599418640137,0.03534303233027458 +15,0.01996608078479767,0,1.630725622177124,0.03832845762372017 +16,0.02524672076106071,0,1.671595096588135,0.03850698471069336 +17,0.03674082085490227,0,1.654913783073425,0.03308714181184769 +18,0.05291472747921944,0,1.610973358154297,0.02576128020882607 +19,0.07131564617156982,0,1.56510329246521,0.01825311221182346 +20,0.09356337040662766,0,1.500164389610291,0.008316409774124622 +21,0.1202768608927727,0,1.409613370895386,-0.005048650316894054 +22,0.136131763458252,0,1.376331925392151,-0.01647019945085049 +23,0.1440727561712265,0,1.379893064498901,-0.02613239362835884 +24,0.1546107828617096,0,1.379886388778687,-0.03603311628103256 +25,0.1686428636312485,0,1.376989841461182,-0.0464080236852169 +26,0.1837266236543655,0,1.377917408943176,-0.05696017667651176 +27,0.1979336440563202,0,1.384361863136292,-0.06735533475875854 +28,0.2113906741142273,0,1.392387509346008,-0.07737524807453156 +29,0.2255530059337616,0,1.395772814750671,-0.08688181638717651 +30,0.2413293421268463,0,1.39152717590332,-0.09585992246866226 +31,0.257912665605545,0,1.382982850074768,-0.1044520139694214 +32,0.2737735211849213,0,1.375612139701843,-0.1128086596727371 +33,0.2881467044353485,0,1.372231721878052,-0.1209612935781479 +34,0.3010863661766052,0,1.372959613800049,-0.1288433372974396 +35,0.3128832876682281,0,1.376827955245972,-0.1363716274499893 +36,0.3237643241882324,0,1.382717609405518,-0.143498420715332 +37,0.333856999874115,0,1.389658570289612,-0.1502186954021454 +38,0.343236118555069,0,1.396872758865356,-0.156557634472847 +39,0.351951003074646,0,1.403770089149475,-0.162552997469902 +40,0.3600413799285889,0,1.409926652908325,-0.168236643075943 +41,0.3675242960453033,0,1.415102005004883,-0.1736241728067398 +42,0.3743862807750702,0,1.419221639633179,-0.1787103414535522 +43,0.3805784285068512,0,1.422335267066956,-0.1834747195243835 +44,0.3860238492488861,0,1.424563646316528,-0.1878877431154251 +45,0.3906343281269073,0,1.426039934158325,-0.1919208317995071 +46,0.3943303227424622,0,1.426871776580811,-0.1955514401197433 +47,0.3970449268817902,0,1.427131414413452,-0.1987630426883698 +48,0.3987386524677277,0,1.426861524581909,-0.2015463411808014 +49,0.3993916213512421,0,1.426073789596558,-0.2038957178592682 +50,0.3989973962306976,0,1.424765229225159,-0.2058095037937164 +51,0.3975647985935211,0,1.422917723655701,-0.2072872668504715 +52,0.3951058685779572,0,1.420488238334656,-0.2083273231983185 +53,0.391636073589325,0,1.417416453361511,-0.2089279443025589 +54,0.387172132730484,0,1.413601756095886,-0.2090851366519928 +55,0.3817253410816193,0,1.408914566040039,-0.208793431520462 +56,0.3753005266189575,0,1.403180718421936,-0.2080428600311279 +57,0.367888480424881,0,1.396221280097961,-0.2068230807781219 +58,0.3594671189785004,0,1.387874126434326,-0.2051215469837189 +59,0.3499880731105804,0,1.378068208694458,-0.2029296457767487 +60,0.3393755555152893,0,1.36687159538269,-0.2002395689487457 +61,0.3275051712989807,0,1.354542136192322,-0.1970503777265549 +62,0.314158707857132,0,1.341539263725281,-0.193359375 +63,0.2989779114723206,0,1.328465104103088,-0.1891569197177887 +64,0.2816098630428314,0,1.315751433372498,-0.1844170093536377 +65,0.2622979283332825,0,1.302735447883606,-0.1790855824947357 +66,0.2424441128969193,0,1.286726951599121,-0.1730887144804001 +67,0.2237682789564133,0,1.264456868171692,-0.1663850247859955 +68,0.2069387584924698,0,1.234927535057068,-0.1590190678834915 +69,0.1917385160923004,0,1.199004650115967,-0.151044562458992 +70,0.1778514534235001,0,1.157395362854004,-0.1424387246370316 +71,0.1651145219802856,0,1.110227584838867,-0.1331630051136017 +72,0.153458371758461,0,1.057624340057373,-0.1232733502984047 +73,0.1428028494119644,0,1.000033259391785,-0.112926684319973 +74,0.1330192387104034,0,0.9384104013442993,-0.1023626327514648 +75,0.1240535601973534,0,0.8743175268173218,-0.09192380309104919 +76,0.1162688061594963,0,0.8096968531608582,-0.08206915855407715 +77,0.1106962934136391,0,0.7472084760665894,-0.0735919401049614 +78,0.1076046973466873,0,0.6889669895172119,-0.06731799989938736 +79,0.1044550836086273,0,0.6358992457389832,-0.06298933178186417 +80,0.09849239140748978,0,0.5904467701911926,-0.05974388867616653 +81,0.09065807610750198,0,0.5466918349266052,-0.05582912638783455 +82,0.08161972463130951,0,0.5020291805267334,-0.0501810722053051 +83,0.06957515329122543,0,0.4657817780971527,-0.04248972982168198 +84,0.05011025816202164,0,0.4839290976524353,-0.02955225482583046 +85,0.03251708671450615,0,0.5230420827865601,-0.01201746426522732 +86,0.02491841465234756,0,0.4466844797134399,0.002851200057193637 +87,0.02118259109556675,0,0.3218207061290741,0.01424694806337357 +88,0.01927225850522518,0,0.1941178441047668,0.02139815129339695 +89,0.01840592548251152,0,0.07266351580619812,0.02486280724406242 +90,0.01806866563856602,0,-0.04287940263748169,0.0258865300565958 +91,0.0178728885948658,0,-0.1562264561653137,0.02552447281777859 +92,0.01752247475087643,0,-0.2716591954231262,0.02475796639919281 +93,0.01727731339633465,0,-0.3872781991958618,0.02492991462349892 +94,0.01850834675133228,0,-0.4856559336185455,0.02782291173934937 +95,0.02315536141395569,0,-0.5431497097015381,0.03349114209413528 +96,0.03248440101742744,0,-0.5566308498382568,0.0390598252415657 +97,0.04612050950527191,0,-0.5512173175811768,0.04484432190656662 +98,0.06159738451242447,0,-0.5609041452407837,0.05491339415311813 +99,0.07506502419710159,0,-0.6004671454429626,0.06910315901041031 +100,0.08352689445018768,0,-0.6508291363716125,0.08333240449428558 +101,0.09232480078935623,0,-0.6878925561904907,0.09632603079080582 +102,0.1034112498164177,0,-0.7073200941085815,0.1084448099136353 +103,0.1196009740233421,0,-0.7126752138137817,0.1199651509523392 +104,0.1335430443286896,0,-0.7155206203460693,0.1307760775089264 +105,0.1416367292404175,0,-0.7330012917518616,0.1446104794740677 +106,0.157768502831459,0,-0.7759218215942383,0.1667220294475555 +107,0.1800336092710495,0,-0.8181213140487671,0.1892203092575073 +108,0.1978507936000824,0,-0.8545110821723938,0.2077498435974121 +109,0.2081005126237869,0,-0.8895132541656494,0.2221846133470535 +110,0.2132578492164612,0,-0.9237428903579712,0.2333606779575348 +111,0.2162652760744095,0,-0.9552074670791626,0.2423656433820724 +112,0.2186046093702316,0,-0.9826743006706238,0.2500423491001129 +113,0.2207917720079422,0,-1.006125450134277,0.2568445801734924 +114,0.2229783236980438,0,-1.02594256401062,0.2629861831665039 +115,0.2252132296562195,0,-1.042440295219421,0.2685838639736176 +116,0.2275068163871765,0,-1.055845379829407,0.2737157940864563 +117,0.2298383861780167,0,-1.066418766975403,0.278437614440918 +118,0.2321596443653107,0,-1.074496507644653,0.282783180475235 +119,0.2344088703393936,0,-1.080460429191589,0.2867680490016937 +120,0.2365220636129379,0,-1.08468222618103,0.290395587682724 +121,0.2384421527385712,0,-1.087476015090942,0.29366135597229 +122,0.2401231676340103,0,-1.089087724685669,0.2965589761734009 +123,0.2415314912796021,0,-1.089689493179321,0.2990824580192566 +124,0.2426425665616989,0,-1.089392900466919,0.3012254238128662 +125,0.2434413433074951,0,-1.088262319564819,0.3029844462871552 +126,0.2439211755990982,0,-1.086327433586121,0.3043573498725891 +127,0.2440825551748276,0,-1.083598971366882,0.3053440153598785 +128,0.2439319938421249,0,-1.080069780349731,0.3059444725513458 +129,0.2434794306755066,0,-1.075726985931396,0.3061595857143402 +130,0.2427386194467545,0,-1.07055675983429,0.3059915602207184 +131,0.241727888584137,0,-1.064542770385742,0.3054419159889221 +132,0.2404621988534927,0,-1.057676672935486,0.3045138418674469 +133,0.2389584481716156,0,-1.049951434135437,0.3032094836235046 +134,0.237231507897377,0,-1.041365146636963,0.3015310168266296 +135,0.2352954745292664,0,-1.031919956207275,0.2994816601276398 +136,0.2331618815660477,0,-1.021620512008667,0.2970629930496216 +137,0.2308412790298462,0,-1.010477542877197,0.2942777276039124 +138,0.2283426970243454,0,-0.9984963536262512,0.2911273837089539 +139,0.2256729453802109,0,-0.9856849908828735,0.2876142263412476 +140,0.2228375971317291,0,-0.9720476865768433,0.2837406098842621 +141,0.2198438048362732,0,-0.9575820565223694,0.2795087397098541 +142,0.2166955173015594,0,-0.9422764778137207,0.2749219834804535 +143,0.2133976221084595,0,-0.9261079430580139,0.2699853777885437 +144,0.2099544554948807,0,-0.9090452194213867,0.2647069096565247 +145,0.2063715606927872,0,-0.8910328149795532,0.2590968012809753 +146,0.2026528716087341,0,-0.8720012307167053,0.2531700730323792 +147,0.1988031566143036,0,-0.8518598675727844,0.2469476014375687 +148,0.1948252469301224,0,-0.8304949998855591,0.2404554784297943 +149,0.1907228380441666,0,-0.807770848274231,0.233726903796196 +150,0.186499759554863,0,-0.7835350036621094,0.2268007546663284 +151,0.1821568161249161,0,-0.7576179504394531,0.219721719622612 +152,0.1776978075504303,0,-0.7298456430435181,0.2125392705202103 +153,0.1731229275465012,0,-0.7000277042388916,0.2053034007549286 +154,0.1684321016073227,0,-0.6679671406745911,0.198064774274826 +155,0.1636221557855606,0,-0.6334285736083984,0.1908680200576782 +156,0.1586927175521851,0,-0.5961320400238037,0.1837504804134369 +157,0.1536618173122406,0,-0.5557420253753662,0.1767358034849167 +158,0.1486032754182816,0,-0.5119491219520569,0.1698202639818192 +159,0.1436995267868042,0,-0.4646590352058411,0.1629275977611542 +160,0.1392495334148407,0,-0.4141768515110016,0.1557803303003311 +161,0.1354688405990601,0,-0.3604538440704346,0.1475729644298553 +162,0.1321910172700882,0,-0.299742192029953,0.1363610923290253 +163,0.130434662103653,0,-0.2252022922039032,0.1197398453950882 +164,0.1351040005683899,0,-0.168040931224823,0.1044747829437256 +165,0.135443776845932,0,-0.1643358767032623,0.09806030988693237 +166,0.1210667490959167,0,-0.1432412564754486,0.08670812845230103 +167,0.104626290500164,0,-0.08658489584922791,0.070969358086586 +168,0.09140173345804214,0,-0.04312795400619507,0.0607030987739563 +169,0.08184420317411423,0,-0.02828946709632874,0.05511963367462158 +170,0.07517626881599426,0,-0.01464024186134338,0.04937774315476418 +171,0.0699593722820282,0,0.002868190407752991,0.043538648635149 +172,0.06571532785892487,0,0.008955426514148712,0.04021321982145309 +173,0.0620584674179554,0,-0.003291197121143341,0.04021673649549484 +174,0.05834823101758957,0,-0.03083151765167713,0.04205255955457687 +175,0.05352353677153587,0,-0.06534107029438019,0.04240990802645683 +176,0.04532092064619064,0,-0.09029579162597656,0.03736837953329086 +177,0.03537887334823608,0,-0.06156475841999054,0.02580521628260612 +178,0.03117786534130573,0,-0.01867980509996414,0.0105582233518362 +179,0.03283080458641052,0,-0.04610740393400192,-0.0002263426722493023 +180,0.03504237532615662,0,-0.08731076866388321,-0.006105083040893078 diff --git a/data/ram_air_kite/polars_neuralfoil/6.csv b/data/ram_air_kite/polars_neuralfoil/6.csv new file mode 100644 index 00000000..98430ac0 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/6.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.03504131361842155,0,-0.08702147006988525,-0.006110027432441711 +-179,0.03626386076211929,0,-0.1323384791612625,-0.006121212150901556 +-178,0.03707535937428474,0,-0.1712343245744705,-0.004241061396896839 +-177,0.03773413226008415,0,-0.1928529143333435,-0.004372117109596729 +-176,0.03837925568223,0,-0.1993333101272583,-0.006699347402900457 +-175,0.03918129205703735,0,-0.1954728215932846,-0.01045156084001064 +-174,0.04022417590022087,0,-0.1845138967037201,-0.01502582617104053 +-173,0.04157567769289017,0,-0.1681121289730072,-0.0201770793646574 +-172,0.04339830949902534,0,-0.1468859612941742,-0.02591722086071968 +-171,0.04594641923904419,0,-0.1215135902166367,-0.03220684081315994 +-170,0.04949671775102615,0,-0.09474159777164459,-0.03849983215332031 +-169,0.0543283149600029,0,-0.07376176118850708,-0.04360400885343552 +-168,0.06067579984664917,0,-0.06700873374938965,-0.04671760648488998 +-167,0.06767500191926956,0,-0.07324269413948059,-0.04784559085965157 +-166,0.07272601872682571,0,-0.07989701628684998,-0.0482078343629837 +-165,0.07438640296459198,0,-0.06860214471817017,-0.05113335698843002 +-164,0.07567583024501801,0,-0.03026884794235229,-0.05898788571357727 +-163,0.08001430332660675,0,0.02469417452812195,-0.06986411660909653 +-162,0.0873386412858963,0,0.08183076977729797,-0.08035777509212494 +-161,0.09648341685533524,0,0.1360412240028381,-0.08943911641836166 +-160,0.1065285801887512,0,0.1878316700458527,-0.09786988794803619 +-159,0.1166828870773315,0,0.2378430962562561,-0.1067536026239395 +-158,0.1263402551412582,0,0.2865010499954224,-0.1167373210191727 +-157,0.1353297978639603,0,0.3350539803504944,-0.1276833117008209 +-156,0.1438367962837219,0,0.3845033645629883,-0.1389635056257248 +-155,0.1520533263683319,0,0.4343123733997345,-0.1499561369419098 +-154,0.1600068211555481,0,0.4830141663551331,-0.1602876335382462 +-153,0.1676154732704163,0,0.5293122529983521,-0.1698440611362457 +-152,0.1747837662696838,0,0.5724184513092041,-0.1786730587482452 +-151,0.1814609318971634,0,0.6119571924209595,-0.1868775933980942 +-150,0.1876511573791504,0,0.647868275642395,-0.1945521831512451 +-149,0.1933959573507309,0,0.6803473234176636,-0.2017652243375778 +-148,0.1987458020448685,0,0.7097651958465576,-0.2085637152194977 +-147,0.20374596118927,0,0.7365711331367493,-0.2149806916713715 +-146,0.2084261476993561,0,0.761216938495636,-0.2210427075624466 +-145,0.212806835770607,0,0.7840958833694458,-0.2267687767744064 +-144,0.2168952971696854,0,0.8055281639099121,-0.2321733981370926 +-143,0.2206940948963165,0,0.825751006603241,-0.2372647821903229 +-142,0.2241988629102707,0,0.8449293375015259,-0.2420462071895599 +-141,0.2274046987295151,0,0.8631726503372192,-0.2465181350708008 +-140,0.2303052991628647,0,0.880542516708374,-0.2506762444972992 +-139,0.2328971028327942,0,0.8970602750778198,-0.2545144259929657 +-138,0.2351776957511902,0,0.912726104259491,-0.2580246925354004 +-137,0.237148717045784,0,0.9275206327438354,-0.2611978948116302 +-136,0.2388127446174622,0,0.9414167404174805,-0.2640252709388733 +-135,0.2401779592037201,0,0.9543778896331787,-0.2664976716041565 +-134,0.2412516176700592,0,0.9663693904876709,-0.2686067223548889 +-133,0.2420454770326614,0,0.9773592948913574,-0.2703468799591064 +-132,0.2425695657730103,0,0.9873173236846924,-0.271711528301239 +-131,0.2428334355354309,0,0.996222198009491,-0.2726985514163971 +-130,0.2428487837314606,0,1.004054546356201,-0.2733062505722046 +-129,0.2426232546567917,0,1.010803461074829,-0.2735361158847809 +-128,0.2421643286943436,0,1.016457915306091,-0.2733917832374573 +-127,0.2414779514074326,0,1.021007895469666,-0.2728798091411591 +-126,0.2405675947666168,0,1.024438142776489,-0.2720082700252533 +-125,0.2394374907016754,0,1.02672266960144,-0.2707879245281219 +-124,0.2380894869565964,0,1.027824401855469,-0.2692306041717529 +-123,0.2365256696939468,0,1.027687072753906,-0.2673490643501282 +-122,0.2347503751516342,0,1.026237368583679,-0.2651549875736237 +-121,0.2327671945095062,0,1.023385286331177,-0.2626542448997498 +-120,0.2305876016616821,0,1.019047379493713,-0.2598413825035095 +-119,0.2282290011644363,0,1.013179659843445,-0.2566848993301392 +-118,0.2257119119167328,0,1.005852580070496,-0.2531047463417053 +-117,0.2230472415685654,0,0.9973446130752563,-0.2489494383335114 +-116,0.2201828211545944,0,0.9881854653358459,-0.2439953088760376 +-115,0.2169077545404434,0,0.9789848327636719,-0.2380100041627884 +-114,0.2127669602632523,0,0.9699681997299194,-0.2308905869722366 +-113,0.2071541845798492,0,0.960401177406311,-0.2227894812822342 +-112,0.1996560096740723,0,0.9483685493469238,-0.2140662968158722 +-111,0.1904413849115372,0,0.9312730431556702,-0.2049545347690582 +-110,0.1801598817110062,0,0.9069060683250427,-0.1952414065599442 +-109,0.1693504154682159,0,0.8741313219070435,-0.184444397687912 +-108,0.158336266875267,0,0.8324501514434814,-0.1721649467945099 +-107,0.1475412249565125,0,0.7814753651618958,-0.1581873148679733 +-106,0.1378112286329269,0,0.7213896512985229,-0.1425715386867523 +-105,0.1305790394544601,0,0.6548517346382141,-0.1261442601680756 +-104,0.1268079429864883,0,0.5888670086860657,-0.1109218373894691 +-103,0.1245704218745232,0,0.5306079387664795,-0.09868036955595016 +-102,0.1200345009565353,0,0.4818438291549683,-0.08931560814380646 +-101,0.111834429204464,0,0.4394256174564362,-0.08172406256198883 +-100,0.1025358214974403,0,0.3954083323478699,-0.07457597553730011 +-99,0.09462860226631165,0,0.3430204093456268,-0.06670874357223511 +-98,0.08796282857656479,0,0.2852502167224884,-0.05830231308937073 +-97,0.08211100846529007,0,0.2297187447547913,-0.05064380168914795 +-96,0.07668391615152359,0,0.1850343942642212,-0.04487772658467293 +-95,0.0682874321937561,0,0.1675865650177002,-0.0397585928440094 +-94,0.05082898214459419,0,0.1920364052057266,-0.02836938202381134 +-93,0.02751697413623333,0,0.2926180958747864,-0.0031744628213346 +-92,0.02120845392346382,0,0.1921467781066895,0.01520099770277739 +-91,0.0189544353634119,0,0.06909249722957611,0.02373248711228371 +-90,0.01806499622762203,0,-0.04274667799472809,0.02588184550404549 +-89,0.01759665831923485,0,-0.1571434736251831,0.02584573067724705 +-88,0.01721432060003281,0,-0.2808276116847992,0.02554230019450188 +-87,0.01693960838019848,0,-0.4129309952259064,0.02595866285264492 +-86,0.01735934801399708,0,-0.5440039038658142,0.02807457745075226 +-85,0.0196344330906868,0,-0.6545025706291199,0.03262252360582352 +-84,0.02478066831827164,0,-0.7285428047180176,0.03826907649636269 +-83,0.03319165483117104,0,-0.7684270143508911,0.04284782707691193 +-82,0.04475753754377365,0,-0.7902052998542786,0.04689136892557144 +-81,0.05843671783804893,0,-0.8113349676132202,0.05209339410066605 +-80,0.07260140031576157,0,-0.8404142260551453,0.0593612901866436 +-79,0.08535409718751907,0,-0.8745887875556946,0.06816265732049942 +-78,0.09672807157039642,0,-0.9137970209121704,0.07742514461278915 +-77,0.1075044870376587,0,-0.9585491418838501,0.08562110364437103 +-76,0.113086998462677,0,-1.00255286693573,0.09198030829429626 +-75,0.1222410798072815,0,-1.048195481300354,0.101628839969635 +-74,0.1365258991718292,0,-1.094247817993164,0.1141948476433754 +-73,0.1527557820081711,0,-1.13355541229248,0.1267447769641876 +-72,0.170212060213089,0,-1.163365840911865,0.1389199197292328 +-71,0.1886660903692245,0,-1.183342218399048,0.1509870737791061 +-70,0.207618460059166,0,-1.195514678955078,0.1631999164819717 +-69,0.2265841960906982,0,-1.203322887420654,0.1754540205001831 +-68,0.2459005266427994,0,-1.209820032119751,0.1873503625392914 +-67,0.2660748958587646,0,-1.21727442741394,0.1984749585390091 +-66,0.2866503298282623,0,-1.22735059261322,0.2085750550031662 +-65,0.3064800500869751,0,-1.240712523460388,0.217552587389946 +-64,0.3246365189552307,0,-1.25695538520813,0.2253997325897217 +-63,0.3408494293689728,0,-1.274978041648865,0.2321904599666595 +-62,0.3552787005901337,0,-1.293453454971313,0.2380561083555222 +-61,0.3681473135948181,0,-1.311237096786499,0.2431352436542511 +-60,0.3795821666717529,0,-1.3275465965271,0.2475272864103317 +-59,0.3896326422691345,0,-1.341959834098816,0.2512866854667664 +-58,0.398341566324234,0,-1.354318857192993,0.2544393539428711 +-57,0.4057766199111938,0,-1.364635467529297,0.2570008337497711 +-56,0.4120341241359711,0,-1.373019576072693,0.2589896321296692 +-55,0.4172252416610718,0,-1.379632234573364,0.2604281902313232 +-54,0.421453982591629,0,-1.38465404510498,0.2613435685634613 +-53,0.4248084127902985,0,-1.388257741928101,0.2617632150650024 +-52,0.427346408367157,0,-1.390598058700562,0.2617117762565613 +-51,0.4291052222251892,0,-1.391803026199341,0.2612110078334808 +-50,0.43010613322258,0,-1.391968488693237,0.2602773308753967 +-49,0.4303548634052277,0,-1.391164541244507,0.2589234709739685 +-48,0.429854542016983,0,-1.389440059661865,0.2571587562561035 +-47,0.428606778383255,0,-1.38682222366333,0.2549882233142853 +-46,0.4266164898872375,0,-1.383327960968018,0.2524154782295227 +-45,0.4238938093185425,0,-1.378962874412537,0.2494409084320068 +-44,0.4204569756984711,0,-1.373729944229126,0.2460634410381317 +-43,0.4163274466991425,0,-1.367630243301392,0.2422785758972168 +-42,0.4115347862243652,0,-1.360667705535889,0.2380796670913696 +-41,0.4061080813407898,0,-1.352861642837524,0.2334580421447754 +-40,0.4000761806964874,0,-1.344253897666931,0.2284000813961029 +-39,0.3934562206268311,0,-1.334931612014771,0.2228823900222778 +-38,0.3862433135509491,0,-1.325081706047058,0.216863602399826 +-37,0.3783790767192841,0,-1.315072536468506,0.2102597504854202 +-36,0.3696570098400116,0,-1.305607557296753,0.2029080390930176 +-35,0.3595321774482727,0,-1.297897577285767,0.1945274770259857 +-34,0.3468778431415558,0,-1.293694019317627,0.1847313344478607 +-33,0.3304218351840973,0,-1.294964551925659,0.1731523871421814 +-32,0.3105761706829071,0,-1.303305268287659,0.1596344262361526 +-31,0.290067583322525,0,-1.319107532501221,0.1443895995616913 +-30,0.2703205049037933,0,-1.340068817138672,0.1283225268125534 +-29,0.2499980926513672,0,-1.36022412776947,0.1130897849798203 +-28,0.2297151237726212,0,-1.373087525367737,0.09971719235181808 +-27,0.2104744762182236,0,-1.378682613372803,0.08774887770414352 +-26,0.192480280995369,0,-1.379688024520874,0.07670734822750092 +-25,0.1757656335830688,0,-1.379080891609192,0.06635387986898422 +-24,0.1607159227132797,0,-1.378251075744629,0.05637722089886665 +-23,0.1474922001361847,0,-1.376677393913269,0.0464094802737236 +-22,0.1329171657562256,0,-1.385600090026855,0.03603525832295418 +-21,0.1148877441883087,0,-1.416557788848877,0.02559713087975979 +-20,0.09477028250694275,0,-1.462410569190979,0.01622993871569633 +-19,0.07537224143743515,0,-1.505052208900452,0.008916678838431835 +-18,0.05828933417797089,0,-1.537310481071472,0.003524115774780512 +-17,0.04446977376937866,0,-1.551690101623535,0.0003797322569880635 +-16,0.0343654528260231,0,-1.542791128158569,8.589029312133789e-05 +-15,0.02737039513885975,0,-1.513709306716919,0.001966920448467135 +-14,0.02263474278151989,0,-1.468085408210754,0.005495267920196056 +-13,0.01950638182461262,0,-1.409410238265991,0.01077882666140795 +-12,0.0173384752124548,0,-1.340132474899292,0.0169990174472332 +-11,0.01572194136679173,0,-1.257932901382446,0.02247900888323784 +-10,0.01488651894032955,0,-1.167797923088074,0.02789490297436714 +-9,0.01391468103975058,0,-1.069652080535889,0.03042752109467983 +-8,0.01286513544619083,0,-0.9626451730728149,0.03217773884534836 +-7,0.01201079599559307,0,-0.8543432950973511,0.03361606597900391 +-6,0.01130127161741257,0,-0.7444521188735962,0.03473227098584175 +-5,0.01066575013101101,0,-0.6320531964302063,0.03551975637674332 +-4,0.01012472994625568,0,-0.5172330737113953,0.0360831506550312 +-3,0.009783737361431122,0,-0.3999398350715637,0.03634908050298691 +-2,0.009576138108968735,0,-0.2817028164863586,0.03625087812542915 +-1,0.009380199946463108,0,-0.1636522859334946,0.03601779788732529 +0,0.009250273928046227,0,-0.04521220922470093,0.03581547737121582 +1,0.009203996509313583,0,0.07422181963920593,0.03556695580482483 +2,0.009222843684256077,0,0.1934026181697845,0.03528823330998421 +3,0.009351225569844246,0,0.3120801448822021,0.03499318286776543 +4,0.009644283913075924,0,0.4302680194377899,0.03463321179151535 +5,0.009999116882681847,0,0.5471459627151489,0.0344051793217659 +6,0.01036513689905405,0,0.6639235019683838,0.03424937650561333 +7,0.01077884901314974,0,0.7796280980110168,0.03442679718136787 +8,0.01129597518593073,0,0.8922948837280273,0.03528612107038498 +9,0.01207192800939083,0,1.022594451904297,0.03191826865077019 +10,0.01303705479949713,0,1.156520247459412,0.02687272429466248 +11,0.01414439734071493,0,1.261304378509521,0.02708804607391357 +12,0.01560498587787151,0,1.34964644908905,0.03005915321409702 +13,0.01721617579460144,0,1.439527869224548,0.03297087550163269 +14,0.01842213794589043,0,1.539654135704041,0.03536608815193176 +15,0.019972313195467,0,1.630662441253662,0.0383533388376236 +16,0.02527094073593616,0,1.671360969543457,0.03850686922669411 +17,0.03677954152226448,0,1.654594659805298,0.03307582810521126 +18,0.05296102166175842,0,1.610642075538635,0.02575289644300938 +19,0.07136617600917816,0,1.564780712127686,0.01825001835823059 +20,0.09359484910964966,0,1.500028252601624,0.008332503028213978 +21,0.1202687993645668,0,1.40977931022644,-0.005006289575248957 +22,0.1361639648675919,0,1.376371026039124,-0.01642878726124763 +23,0.144103541970253,0,1.379955768585205,-0.02608913742005825 +24,0.1546048074960709,0,1.380032062530518,-0.03598443791270256 +25,0.1686168909072876,0,1.377123236656189,-0.04635592550039291 +26,0.1837100237607956,0,1.377965211868286,-0.05690817907452583 +27,0.1979390680789948,0,1.38432252407074,-0.06730443239212036 +28,0.2114072442054749,0,1.392317056655884,-0.0773235410451889 +29,0.2255575209856033,0,1.395769238471985,-0.08682968467473984 +30,0.241304486989975,0,1.391665935516357,-0.09580926597118378 +31,0.2578655183315277,0,1.383255004882812,-0.1044044122099876 +32,0.2737239301204681,0,1.375953197479248,-0.1127650290727615 +33,0.2881078124046326,0,1.372585296630859,-0.1209228187799454 +34,0.3010611534118652,0,1.373293876647949,-0.12881138920784 +35,0.312871128320694,0,1.377128839492798,-0.1363477855920792 +36,0.3237629234790802,0,1.382979393005371,-0.1434831023216248 +37,0.3338653445243835,0,1.389875650405884,-0.1502120494842529 +38,0.3432548642158508,0,1.397045135498047,-0.1565603613853455 +39,0.3519810438156128,0,1.403892517089844,-0.162565141916275 +40,0.3600835204124451,0,1.409997224807739,-0.1682581752538681 +41,0.3675795197486877,0,1.415120601654053,-0.1736547499895096 +42,0.3744549453258514,0,1.419192790985107,-0.1787496358156204 +43,0.3806591033935547,0,1.422264575958252,-0.1835208237171173 +44,0.386114776134491,0,1.42445969581604,-0.1879397183656693 +45,0.3907336294651031,0,1.425911426544189,-0.1919775754213333 +46,0.3944337666034698,0,1.426725387573242,-0.1956114023923874 +47,0.3971507847309113,0,1.426973462104797,-0.1988250911235809 +48,0.3988456130027771,0,1.426696538925171,-0.2016093730926514 +49,0.3994967639446259,0,1.425906419754028,-0.2039597481489182 +50,0.3991004526615143,0,1.424598932266235,-0.2058734446763992 +51,0.3976626098155975,0,1.422754526138306,-0.2073502093553543 +52,0.3951981961727142,0,1.420333623886108,-0.2083887159824371 +53,0.3917212188243866,0,1.417273759841919,-0.2089871168136597 +54,0.3872476518154144,0,1.413477540016174,-0.2091412097215652 +55,0.3817893266677856,0,1.4088134765625,-0.2088449448347092 +56,0.3753495812416077,0,1.403112649917603,-0.2080890834331512 +57,0.3679222464561462,0,1.396191716194153,-0.2068627774715424 +58,0.3594821095466614,0,1.387891173362732,-0.2051539421081543 +59,0.3499822318553925,0,1.378136396408081,-0.2029532939195633 +60,0.339349091053009,0,1.366990804672241,-0.2002548277378082 +61,0.3274576961994171,0,1.354710221290588,-0.1970572769641876 +62,0.3140914738178253,0,1.341743946075439,-0.1933584660291672 +63,0.2988959550857544,0,1.32868480682373,-0.1891496479511261 +64,0.2815252840518951,0,1.315946698188782,-0.1844036281108856 +65,0.2622327208518982,0,1.302860856056213,-0.1790672987699509 +66,0.2424164861440659,0,1.286747574806213,-0.1730666756629944 +67,0.2237776666879654,0,1.264386892318726,-0.1663623303174973 +68,0.206972062587738,0,1.234807133674622,-0.1589982807636261 +69,0.1917848736047745,0,1.198872566223145,-0.1510282158851624 +70,0.1779016554355621,0,1.157290935516357,-0.142429456114769 +71,0.1651594787836075,0,1.110188841819763,-0.1331624388694763 +72,0.1534910798072815,0,1.057678699493408,-0.1232817620038986 +73,0.1428194344043732,0,1.000196814537048,-0.1129433736205101 +74,0.1330203860998154,0,0.9386687278747559,-0.1023837476968765 +75,0.1240437403321266,0,0.8746384382247925,-0.09194366633892059 +76,0.1162530109286308,0,0.8100583553314209,-0.08208391815423965 +77,0.1106770560145378,0,0.7476062774658203,-0.07360091805458069 +78,0.1075798943638802,0,0.6894120573997498,-0.06732074916362762 +79,0.1044198498129845,0,0.6364083290100098,-0.06298469007015228 +80,0.09844358265399933,0,0.5910360813140869,-0.05972998216748238 +81,0.090596042573452,0,0.5473536849021912,-0.05580298975110054 +82,0.08154740184545517,0,0.502720832824707,-0.0501389317214489 +83,0.06947425007820129,0,0.4665959477424622,-0.04241829365491867 +84,0.04997444525361061,0,0.4852122962474823,-0.02943499013781548 +85,0.03247037157416344,0,0.5235047936439514,-0.01192992925643921 +86,0.02490447461605072,0,0.4465892910957336,0.002905011177062988 +87,0.02117431536316872,0,0.3217189610004425,0.01428130548447371 +88,0.01926638372242451,0,0.1941089183092117,0.02141556702554226 +89,0.01840141043066978,0,0.07274599373340607,0.02486658655107021 +90,0.01806499622762203,0,-0.04274667799472809,0.02588184550404549 +91,0.01786980405449867,0,-0.1560833752155304,0.02551605366170406 +92,0.01751947402954102,0,-0.271524578332901,0.02474845014512539 +93,0.01727381907403469,0,-0.3871634900569916,0.02492096647620201 +94,0.01850404590368271,0,-0.4855640828609467,0.02781597711145878 +95,0.02315017208456993,0,-0.5430675745010376,0.03348662704229355 +96,0.03247801214456558,0,-0.5565438270568848,0.03905566036701202 +97,0.04611193388700485,0,-0.5511320829391479,0.04483910277485847 +98,0.06158635765314102,0,-0.5608367323875427,0.05490610748529434 +99,0.07505393028259277,0,-0.6004183888435364,0.06909328699111938 +100,0.08351811021566391,0,-0.6507900953292847,0.08331744372844696 +101,0.09231522679328918,0,-0.6878511905670166,0.09630345553159714 +102,0.1034046187996864,0,-0.7072684764862061,0.1084174290299416 +103,0.1195931360125542,0,-0.7125985622406006,0.1199324950575829 +104,0.1335174441337585,0,-0.7154176235198975,0.1307398825883865 +105,0.1416029632091522,0,-0.7328611612319946,0.1445714235305786 +106,0.1577329188585281,0,-0.7757604122161865,0.1666787713766098 +107,0.1800011098384857,0,-0.817976713180542,0.189177930355072 +108,0.1978266388177872,0,-0.8543857336044312,0.2077094614505768 +109,0.2080799639225006,0,-0.8893895149230957,0.2221440821886063 +110,0.213233545422554,0,-0.9236112833023071,0.2333178520202637 +111,0.2162316590547562,0,-0.9550641179084778,0.2423207014799118 +112,0.2185606211423874,0,-0.982526421546936,0.249996230006218 +113,0.2207380831241608,0,-1.005973696708679,0.2567980289459229 +114,0.2229167222976685,0,-1.025791168212891,0.2629400193691254 +115,0.2251445651054382,0,-1.042291164398193,0.2685384154319763 +116,0.2274328470230103,0,-1.055699586868286,0.2736717760562897 +117,0.2297599315643311,0,-1.066277027130127,0.2783949375152588 +118,0.2320774048566818,0,-1.074358463287354,0.2827421724796295 +119,0.2343233823776245,0,-1.080325603485107,0.2867284715175629 +120,0.2364339977502823,0,-1.084550857543945,0.2903572022914886 +121,0.2383516579866409,0,-1.087347984313965,0.2936240136623383 +122,0.2400305420160294,0,-1.088961958885193,0.2965229153633118 +123,0.2414367347955704,0,-1.089564919471741,0.2990467548370361 +124,0.2425460964441299,0,-1.089269042015076,0.3011904656887054 +125,0.2433436214923859,0,-1.088138341903687,0.3029498159885406 +126,0.243821993470192,0,-1.086204290390015,0.3043234348297119 +127,0.2439818531274796,0,-1.083475351333618,0.3053100407123566 +128,0.2438301295042038,0,-1.079943656921387,0.3059101998806 +129,0.2433762401342392,0,-1.075600147247314,0.3061254024505615 +130,0.2426353991031647,0,-1.070426225662231,0.3059567809104919 +131,0.2416237741708755,0,-1.064411401748657,0.3054072260856628 +132,0.2403574883937836,0,-1.057543039321899,0.3044789433479309 +133,0.2388533502817154,0,-1.049816012382507,0.3031743168830872 +134,0.2371258735656738,0,-1.041225671768188,0.3014954030513763 +135,0.2351895719766617,0,-1.031779408454895,0.2994460463523865 +136,0.2330563515424728,0,-1.021478056907654,0.297027200460434 +137,0.2307361960411072,0,-1.010332822799683,0.2942418158054352 +138,0.2282371520996094,0,-0.9983499050140381,0.2910914421081543 +139,0.2255676239728928,0,-0.9855378270149231,0.2875781655311584 +140,0.2227336466312408,0,-0.9719005227088928,0.2837049961090088 +141,0.2197406738996506,0,-0.9574337005615234,0.2794730961322784 +142,0.2165928333997726,0,-0.942126989364624,0.2748864591121674 +143,0.2132959812879562,0,-0.9259599447250366,0.2699503898620605 +144,0.2098546028137207,0,-0.9088979363441467,0.2646724581718445 +145,0.2062730193138123,0,-0.8908853530883789,0.2590625882148743 +146,0.2025556713342667,0,-0.8718562126159668,0.2531370222568512 +147,0.1987076699733734,0,-0.8517158031463623,0.2469149082899094 +148,0.1947319507598877,0,-0.8303513526916504,0.2404234856367111 +149,0.1906321346759796,0,-0.8076289892196655,0.2336952239274979 +150,0.1864116936922073,0,-0.7833962440490723,0.2267701625823975 +151,0.1820720732212067,0,-0.757479727268219,0.2196914702653885 +152,0.1776165217161179,0,-0.7297077178955078,0.2125091552734375 +153,0.1730462461709976,0,-0.6998910903930664,0.2052735090255737 +154,0.1683606803417206,0,-0.6678301692008972,0.1980347484350204 +155,0.1635568588972092,0,-0.6332913041114807,0.1908377110958099 +156,0.1586349159479141,0,-0.5959920883178711,0.1837195158004761 +157,0.1536125838756561,0,-0.5556032657623291,0.1767047494649887 +158,0.1485638916492462,0,-0.5118144750595093,0.1697896718978882 +159,0.1436711996793747,0,-0.4645361304283142,0.1628992855548859 +160,0.1392323672771454,0,-0.4140693545341492,0.1557554453611374 +161,0.135461762547493,0,-0.3603526949882507,0.1475510001182556 +162,0.1321923583745956,0,-0.2996118366718292,0.1363373249769211 +163,0.13044473528862,0,-0.225063681602478,0.1197188720107079 +164,0.1351093500852585,0,-0.1679770052433014,0.1044687181711197 +165,0.1354485601186752,0,-0.1642293930053711,0.09804566204547882 +166,0.1210812106728554,0,-0.1431083977222443,0.0866880863904953 +167,0.104634165763855,0,-0.08649086952209473,0.07094781845808029 +168,0.09140478074550629,0,-0.04303526878356934,0.06067834049463272 +169,0.08184381574392319,0,-0.02823092043399811,0.05510534718632698 +170,0.07517798990011215,0,-0.01460787653923035,0.04936891049146652 +171,0.06996609270572662,0,0.002911150455474854,0.0435272678732872 +172,0.06572721898555756,0,0.009033508598804474,0.04019381105899811 +173,0.06207427009940147,0,-0.003192894160747528,0.04018990322947502 +174,0.05836525931954384,0,-0.03075909987092018,0.04202322661876678 +175,0.05353927239775658,0,-0.06534923613071442,0.04238774254918098 +176,0.04533232375979424,0,-0.0904119685292244,0.03736612945795059 +177,0.035390954464674,0,-0.06173212826251984,0.02582824230194092 +178,0.03117280267179012,0,-0.01860413700342178,0.0105885211378336 +179,0.03281865268945694,0,-0.04582734405994415,-0.0002144128084182739 +180,0.03504131361842155,0,-0.08702147006988525,-0.006110027432441711 diff --git a/data/ram_air_kite/polars_neuralfoil/7.csv b/data/ram_air_kite/polars_neuralfoil/7.csv new file mode 100644 index 00000000..3b3bcbf5 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/7.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.035848218947649,0,-0.08261404931545258,-0.00811234675347805 +-179,0.0369119793176651,0,-0.1266450434923172,-0.007489442825317383 +-178,0.03759589418768883,0,-0.161271944642067,-0.005864930339157581 +-177,0.03820379823446274,0,-0.1799772381782532,-0.006428822875022888 +-176,0.03886666148900986,0,-0.1857759058475494,-0.009019953198730946 +-175,0.0396481417119503,0,-0.1830931603908539,-0.01271687168627977 +-174,0.04058809950947762,0,-0.174328625202179,-0.01697627454996109 +-173,0.04179448634386063,0,-0.1601052284240723,-0.02174468897283077 +-172,0.04346586391329765,0,-0.1401807069778442,-0.02720979414880276 +-171,0.04585469141602516,0,-0.1148074418306351,-0.03338992595672607 +-170,0.04922890290617943,0,-0.08722241222858429,-0.0395781397819519 +-169,0.05384288728237152,0,-0.06629976630210876,-0.04427910223603249 +-168,0.05983753874897957,0,-0.05999648571014404,-0.04697123914957047 +-167,0.06611424684524536,0,-0.06230956315994263,-0.04838793352246284 +-166,0.07019349187612534,0,-0.05618664622306824,-0.05061979219317436 +-165,0.07164811342954636,0,-0.0269070565700531,-0.05654963850975037 +-164,0.0739804208278656,0,0.02297386527061462,-0.06635456532239914 +-163,0.07936705648899078,0,0.08072081208229065,-0.07749778032302856 +-162,0.0871540755033493,0,0.1365450322628021,-0.08757253736257553 +-161,0.09650513529777527,0,0.1884023547172546,-0.09621515870094299 +-160,0.106929175555706,0,0.2376030683517456,-0.1041032448410988 +-159,0.1179290413856506,0,0.2854196429252625,-0.1121343374252319 +-158,0.1288898438215256,0,0.3324854671955109,-0.1211359277367592 +-157,0.1392918676137924,0,0.3795151710510254,-0.131510391831398 +-156,0.1489792466163635,0,0.4275173544883728,-0.1429609209299088 +-155,0.1581036597490311,0,0.4767144620418549,-0.154729038476944 +-154,0.166839525103569,0,0.526089072227478,-0.1660955250263214 +-153,0.1752232909202576,0,0.5742105841636658,-0.176665335893631 +-152,0.1831883192062378,0,0.6198809742927551,-0.1863545179367065 +-151,0.1906539648771286,0,0.6622266173362732,-0.1952455639839172 +-150,0.1975854933261871,0,0.7007431387901306,-0.2034622132778168 +-149,0.2040010541677475,0,0.7353606224060059,-0.2111083567142487 +-148,0.2099449932575226,0,0.7663894891738892,-0.2182588577270508 +-147,0.2154659479856491,0,0.7943432331085205,-0.224966436624527 +-146,0.2206016033887863,0,0.8197742700576782,-0.2312676161527634 +-145,0.2253753393888474,0,0.8431644439697266,-0.2371897250413895 +-144,0.2298015654087067,0,0.8648922443389893,-0.2427490651607513 +-143,0.2338852286338806,0,0.8852295875549316,-0.2479558885097504 +-142,0.2376260012388229,0,0.9043581485748291,-0.2528142929077148 +-141,0.2410235553979874,0,0.9223915934562683,-0.257323831319809 +-140,0.2440747618675232,0,0.939391553401947,-0.2614803910255432 +-139,0.2467809170484543,0,0.9553924202919006,-0.2652786076068878 +-138,0.2491447627544403,0,0.9703987240791321,-0.2687117457389832 +-137,0.2511714100837708,0,0.9844021797180176,-0.2717719972133636 +-136,0.2528681755065918,0,0.997391939163208,-0.27445387840271 +-135,0.2542456388473511,0,1.009347438812256,-0.2767499983310699 +-134,0.2553131580352783,0,1.020255327224731,-0.2786564230918884 +-133,0.2560819089412689,0,1.030103445053101,-0.2801695168018341 +-132,0.2565633952617645,0,1.038881897926331,-0.2812868356704712 +-131,0.2567659616470337,0,1.046589851379395,-0.282008945941925 +-130,0.2566972672939301,0,1.053223609924316,-0.2823361754417419 +-129,0.256363570690155,0,1.058786153793335,-0.2822722792625427 +-128,0.2557685077190399,0,1.063278675079346,-0.2818218767642975 +-127,0.2549119591712952,0,1.066690921783447,-0.2809917330741882 +-126,0.2537938356399536,0,1.069012045860291,-0.2797914147377014 +-125,0.2524118423461914,0,1.070216059684753,-0.2782323956489563 +-124,0.2507594525814056,0,1.07025933265686,-0.2763276994228363 +-123,0.2488322257995605,0,1.069086790084839,-0.2740921378135681 +-122,0.2466269284486771,0,1.066635131835938,-0.2715373933315277 +-121,0.2441440224647522,0,1.062848806381226,-0.268664538860321 +-120,0.24139304459095,0,1.057732462882996,-0.2654537558555603 +-119,0.2383935451507568,0,1.051401019096375,-0.2618368566036224 +-118,0.2351663708686829,0,1.044162511825562,-0.2576771080493927 +-117,0.2317028343677521,0,1.036505818367004,-0.252763420343399 +-116,0.2278906255960464,0,1.028844833374023,-0.2468725889921188 +-115,0.2234488278627396,0,1.020944595336914,-0.2399109899997711 +-114,0.2180420309305191,0,1.011423349380493,-0.2320813238620758 +-113,0.2115551382303238,0,0.9980638027191162,-0.2238567322492599 +-112,0.2039714902639389,0,0.9793919324874878,-0.2155854403972626 +-111,0.194972962141037,0,0.9556674957275391,-0.2070359736680984 +-110,0.1844045072793961,0,0.9269979000091553,-0.1975519359111786 +-109,0.1727351546287537,0,0.8919903039932251,-0.1865901499986649 +-108,0.1606867760419846,0,0.848907470703125,-0.1739079058170319 +-107,0.1489598900079727,0,0.7965284585952759,-0.1594384461641312 +-106,0.1383557170629501,0,0.7346037626266479,-0.1433214843273163 +-105,0.1300715655088425,0,0.6653065085411072,-0.1263368725776672 +-104,0.1252518743276596,0,0.5951034426689148,-0.1103743463754654 +-103,0.1228455975651741,0,0.531754732131958,-0.09741545468568802 +-102,0.1192585155367851,0,0.4791422486305237,-0.08788628876209259 +-101,0.1121628135442734,0,0.435739666223526,-0.08078885078430176 +-100,0.1032810285687447,0,0.3933152854442596,-0.07447167485952377 +-99,0.09548167884349823,0,0.343379408121109,-0.06742493808269501 +-98,0.08900157362222672,0,0.2880456447601318,-0.05969605967402458 +-97,0.08331844955682755,0,0.2345134764909744,-0.05255316570401192 +-96,0.07795332372188568,0,0.1906896531581879,-0.04718941450119019 +-95,0.06968805938959122,0,0.1717150509357452,-0.04249720275402069 +-94,0.0526932030916214,0,0.1903038322925568,-0.03195666894316673 +-93,0.0284952949732542,0,0.2903360426425934,-0.007937798276543617 +-92,0.02115627564489841,0,0.2027571499347687,0.01061868667602539 +-91,0.01835182309150696,0,0.08175028860569,0.01999099925160408 +-90,0.01718496717512608,0,-0.03111997991800308,0.0228508822619915 +-89,0.01676962152123451,0,-0.1481208056211472,0.0234191007912159 +-88,0.01720521971583366,0,-0.2709284722805023,0.02394648268818855 +-87,0.01901582255959511,0,-0.3889060616493225,0.02614113315939903 +-86,0.02278934419155121,0,-0.4878497123718262,0.03089568577706814 +-85,0.02861304953694344,0,-0.5619354248046875,0.03591307252645493 +-84,0.03577133640646935,0,-0.6190536022186279,0.03951253741979599 +-83,0.04388895258307457,0,-0.6682388186454773,0.04248454049229622 +-82,0.05306099727749825,0,-0.714457631111145,0.04596611112356186 +-81,0.06338397413492203,0,-0.7607957124710083,0.05071200057864189 +-80,0.07453125715255737,0,-0.8101875782012939,0.05736317485570908 +-79,0.08554376661777496,0,-0.8607000112533569,0.06596803665161133 +-78,0.09488239884376526,0,-0.906536877155304,0.07516101747751236 +-77,0.105550080537796,0,-0.9494197368621826,0.08388079702854156 +-76,0.1163766905665398,0,-0.9862673878669739,0.09243609756231308 +-75,0.1271625608205795,0,-1.003395438194275,0.1027238741517067 +-74,0.1487128734588623,0,-1.000547170639038,0.1209670305252075 +-73,0.1766820102930069,0,-0.9933710098266602,0.1424531638622284 +-72,0.2017321288585663,0,-1.000448942184448,0.1619037687778473 +-71,0.2235779017210007,0,-1.020342826843262,0.1781675517559052 +-70,0.2437214404344559,0,-1.047096371650696,0.1915539503097534 +-69,0.2619352340698242,0,-1.077470541000366,0.2025622427463531 +-68,0.2781202495098114,0,-1.109397649765015,0.2117012739181519 +-67,0.2927584648132324,0,-1.141388773918152,0.2194678336381912 +-66,0.3063865900039673,0,-1.172350168228149,0.2262925803661346 +-65,0.3192887902259827,0,-1.201544046401978,0.2324663102626801 +-64,0.3315215110778809,0,-1.228577256202698,0.2381340265274048 +-63,0.3430213928222656,0,-1.253282785415649,0.2433387041091919 +-62,0.3536917567253113,0,-1.275607824325562,0.2480738610029221 +-61,0.3634499907493591,0,-1.295538425445557,0.2523165047168732 +-60,0.3722535967826843,0,-1.313077926635742,0.256044328212738 +-59,0.3800989985466003,0,-1.328253984451294,0.2592430710792542 +-58,0.3870190978050232,0,-1.341131210327148,0.2619089782238007 +-57,0.3930734694004059,0,-1.351828098297119,0.2640498578548431 +-56,0.3983290195465088,0,-1.360508322715759,0.265683114528656 +-55,0.4028489887714386,0,-1.367369174957275,0.2668308317661285 +-54,0.4066804349422455,0,-1.372618675231934,0.2675172388553619 +-53,0.4098500311374664,0,-1.376449465751648,0.2677631676197052 +-52,0.4123663902282715,0,-1.379028797149658,0.2675870060920715 +-51,0.4142248034477234,0,-1.380491375923157,0.2670020163059235 +-50,0.4154083430767059,0,-1.380936622619629,0.2660174071788788 +-49,0.4158998727798462,0,-1.380435228347778,0.2646401524543762 +-48,0.4156812727451324,0,-1.379032611846924,0.2628735601902008 +-47,0.4147402346134186,0,-1.376753807067871,0.2607200145721436 +-46,0.413072407245636,0,-1.373613119125366,0.2581800222396851 +-45,0.4106816649436951,0,-1.369609594345093,0.2552525103092194 +-44,0.4075812995433807,0,-1.364739894866943,0.2519367337226868 +-43,0.4037928879261017,0,-1.358992338180542,0.2482295334339142 +-42,0.399349719285965,0,-1.352349162101746,0.2441286742687225 +-41,0.3942914009094238,0,-1.344788193702698,0.2396309822797775 +-40,0.3886637687683105,0,-1.33628249168396,0.2347335517406464 +-39,0.3825156688690186,0,-1.326800465583801,0.2294351160526276 +-38,0.3758971095085144,0,-1.316306233406067,0.2237359285354614 +-37,0.3688526451587677,0,-1.304765939712524,0.2176394909620285 +-36,0.361416757106781,0,-1.292142748832703,0.211152508854866 +-35,0.3536145985126495,0,-1.278427600860596,0.2042839974164963 +-34,0.3454611599445343,0,-1.263669610023499,0.1970331370830536 +-33,0.3369661271572113,0,-1.248090982437134,0.1893559098243713 +-32,0.3281210362911224,0,-1.232298612594604,0.1810933649539948 +-31,0.3187694549560547,0,-1.217626214027405,0.1718515753746033 +-30,0.3082329630851746,0,-1.206670045852661,0.1608939915895462 +-29,0.2950263023376465,0,-1.204526543617249,0.1471082121133804 +-28,0.2767383754253387,0,-1.219862341880798,0.1293197274208069 +-27,0.2460918426513672,0,-1.265875577926636,0.1070958599448204 +-26,0.2032774388790131,0,-1.340328216552734,0.08296631276607513 +-25,0.1717618703842163,0,-1.389618635177612,0.06414807587862015 +-24,0.1539884805679321,0,-1.39715301990509,0.0517665334045887 +-23,0.140177920460701,0,-1.398160815238953,0.04095490276813507 +-22,0.1236522644758224,0,-1.429822206497192,0.02905681729316711 +-21,0.1057966127991676,0,-1.466331839561462,0.01860769093036652 +-20,0.08803078532218933,0,-1.49334192276001,0.0106355007737875 +-19,0.07171826809644699,0,-1.513248205184937,0.004345053341239691 +-18,0.05728711932897568,0,-1.526148319244385,-0.0007312268135137856 +-17,0.0451182909309864,0,-1.525748133659363,-0.004038411192595959 +-16,0.03575936332345009,0,-1.508545875549316,-0.004667735192924738 +-15,0.02896627970039845,0,-1.47662878036499,-0.003102165414020419 +-14,0.02413040213286877,0,-1.431746959686279,5.243122723186389e-05 +-13,0.02077672630548477,0,-1.375118613243103,0.004873520229011774 +-12,0.0184437558054924,0,-1.306905627250671,0.01074865460395813 +-11,0.01710670068860054,0,-1.226213693618774,0.01661691628396511 +-10,0.01624269597232342,0,-1.135564208030701,0.02080866694450378 +-9,0.01510502863675356,0,-1.035350441932678,0.02330521307885647 +-8,0.01406573224812746,0,-0.9305146932601929,0.02545309066772461 +-7,0.01321755908429623,0,-0.8247636556625366,0.02736818790435791 +-6,0.01252319477498531,0,-0.7168701887130737,0.02906343340873718 +-5,0.01191857736557722,0,-0.6060619950294495,0.0304487831890583 +-4,0.01134414598345757,0,-0.4929010272026062,0.03165029361844063 +-3,0.01070921588689089,0,-0.3791005313396454,0.03255372494459152 +-2,0.009844240732491016,0,-0.2669200897216797,0.0335310772061348 +-1,0.009044422768056393,0,-0.1553162932395935,0.03445253521203995 +0,0.008860319852828979,0,-0.03910431265830994,0.03475306183099747 +1,0.008853900246322155,0,0.07893022894859314,0.03487876802682877 +2,0.008898990228772163,0,0.1962421983480453,0.03504183143377304 +3,0.009077432565391064,0,0.3134741187095642,0.03521071746945381 +4,0.009389687329530716,0,0.4299383461475372,0.03542438894510269 +5,0.009738677181303501,0,0.5452998876571655,0.03580556064844131 +6,0.01011917926371098,0,0.6612644791603088,0.03606652095913887 +7,0.0105420583859086,0,0.7762365937232971,0.03652602434158325 +8,0.01107936166226864,0,0.8938760757446289,0.03625641018152237 +9,0.01188207324594259,0,1.03375768661499,0.03063958883285522 +10,0.01282336562871933,0,1.163642883300781,0.02633720636367798 +11,0.01391036901623011,0,1.261114954948425,0.02812219224870205 +12,0.01537109073251486,0,1.348594546318054,0.0314178355038166 +13,0.01693336665630341,0,1.440766215324402,0.03414168208837509 +14,0.01807613670825958,0,1.543357014656067,0.03625842556357384 +15,0.01983437687158585,0,1.634186148643494,0.03832447901368141 +16,0.02570627070963383,0,1.67190945148468,0.03683300688862801 +17,0.03746160864830017,0,1.653595805168152,0.03094744123518467 +18,0.05323478579521179,0,1.612333059310913,0.02380983904004097 +19,0.07085771858692169,0,1.570627331733704,0.01645844243466854 +20,0.09282449632883072,0,1.504477620124817,0.006215495057404041 +21,0.1191142201423645,0,1.413672566413879,-0.007255852222442627 +22,0.1331389248371124,0,1.387892365455627,-0.01815775036811829 +23,0.1412589550018311,0,1.391650795936584,-0.027682239189744 +24,0.1527436226606369,0,1.391114115715027,-0.03768598288297653 +25,0.1669860929250717,0,1.390597105026245,-0.04816565662622452 +26,0.1815525889396667,0,1.39483118057251,-0.05879344791173935 +27,0.1955843567848206,0,1.401467084884644,-0.06926225125789642 +28,0.2103305608034134,0,1.402131080627441,-0.07920871675014496 +29,0.226973369717598,0,1.391362547874451,-0.08837763965129852 +30,0.244319349527359,0,1.374940991401672,-0.09691131114959717 +31,0.2604379653930664,0,1.361641764640808,-0.1050722002983093 +32,0.2746881544589996,0,1.355091571807861,-0.112965501844883 +33,0.2873598635196686,0,1.354822993278503,-0.1205708011984825 +34,0.2988912463188171,0,1.358991384506226,-0.1278378665447235 +35,0.3095690011978149,0,1.36584746837616,-0.1347322762012482 +36,0.3195203840732574,0,1.374145030975342,-0.1412469446659088 +37,0.328780859708786,0,1.383078813552856,-0.1473926454782486 +38,0.3373556137084961,0,1.392100930213928,-0.153189092874527 +39,0.3452481627464294,0,1.400796890258789,-0.1586558073759079 +40,0.3524694442749023,0,1.408839464187622,-0.1638117432594299 +41,0.3590297102928162,0,1.415969848632812,-0.1686706990003586 +42,0.3649348616600037,0,1.422003626823425,-0.1732393205165863 +43,0.3701763153076172,0,1.426849722862244,-0.1775146424770355 +44,0.3747299015522003,0,1.430496454238892,-0.1814860999584198 +45,0.3785534799098969,0,1.432998657226562,-0.1851356327533722 +46,0.3815973997116089,0,1.434446811676025,-0.1884433329105377 +47,0.3838098645210266,0,1.434936285018921,-0.1913911402225494 +48,0.385150134563446,0,1.434549689292908,-0.1939637362957001 +49,0.3855902254581451,0,1.43334174156189,-0.1961528360843658 +50,0.3851253390312195,0,1.43133807182312,-0.1979550719261169 +51,0.3837646543979645,0,1.428531169891357,-0.1993721127510071 +52,0.3815341591835022,0,1.424882888793945,-0.2004086226224899 +53,0.3784713745117188,0,1.420320510864258,-0.2010714560747147 +54,0.3746186196804047,0,1.414743065834045,-0.2013681828975677 +55,0.3700188994407654,0,1.40802800655365,-0.2013030052185059 +56,0.3646997511386871,0,1.400039434432983,-0.2008745223283768 +57,0.3586698472499847,0,1.39065957069397,-0.200073629617691 +58,0.3519056737422943,0,1.379830598831177,-0.1988846808671951 +59,0.344346672296524,0,1.36759877204895,-0.1972858011722565 +60,0.3358927369117737,0,1.354186296463013,-0.1952579468488693 +61,0.3263956010341644,0,1.340050101280212,-0.1927907168865204 +62,0.3156278133392334,0,1.325947284698486,-0.1898840963840485 +63,0.3032000362873077,0,1.312972187995911,-0.1865441501140594 +64,0.2884368300437927,0,1.302441835403442,-0.1827631890773773 +65,0.270574688911438,0,1.29520058631897,-0.1784868538379669 +66,0.2498934417963028,0,1.289496421813965,-0.1735639125108719 +67,0.2287380546331406,0,1.279246687889099,-0.1677433699369431 +68,0.2095730155706406,0,1.258367657661438,-0.1608397960662842 +69,0.1928160339593887,0,1.226095914840698,-0.1528748571872711 +70,0.1779318600893021,0,1.184181928634644,-0.1439246237277985 +71,0.1645987182855606,0,1.133877992630005,-0.1340686529874802 +72,0.1526830345392227,0,1.076253056526184,-0.123470738530159 +73,0.1420234441757202,0,1.012892842292786,-0.1124372705817223 +74,0.1323984563350677,0,0.9461045861244202,-0.1014519706368446 +75,0.1236551851034164,0,0.878111720085144,-0.09098514169454575 +76,0.1160463988780975,0,0.8106886744499207,-0.08140945434570312 +77,0.110432393848896,0,0.7456297874450684,-0.07323397696018219 +78,0.1072359532117844,0,0.683903694152832,-0.06698674708604813 +79,0.1045762822031975,0,0.6269753575325012,-0.06275200843811035 +80,0.09950517117977142,0,0.5787831544876099,-0.05997037142515182 +81,0.09215060621500015,0,0.5347806811332703,-0.05678844451904297 +82,0.08340590447187424,0,0.4914050698280334,-0.05180247500538826 +83,0.07178542762994766,0,0.4562278985977173,-0.04474605247378349 +84,0.05266333743929863,0,0.4708030521869659,-0.03266287222504616 +85,0.03400195762515068,0,0.5152163505554199,-0.01556976698338985 +86,0.02558349259197712,0,0.4486021399497986,-0.0009288698201999068 +87,0.02128034830093384,0,0.3284126222133636,0.01046584080904722 +88,0.01889077760279179,0,0.2036796659231186,0.01789929531514645 +89,0.01770222000777721,0,0.08438460528850555,0.02160567604005337 +90,0.01718496717512608,0,-0.03111997991800308,0.0228508822619915 +91,0.01701897755265236,0,-0.1479490548372269,0.02308892458677292 +92,0.01755303144454956,0,-0.2640722393989563,0.023825753480196 +93,0.02004457451403141,0,-0.3608056902885437,0.02709297835826874 +94,0.02556382864713669,0,-0.4187196493148804,0.0321907177567482 +95,0.03337746858596802,0,-0.4456493258476257,0.03546718508005142 +96,0.04257234558463097,0,-0.4602924585342407,0.03727089613676071 +97,0.05286209657788277,0,-0.4796577394008636,0.04043286293745041 +98,0.06323374807834625,0,-0.5251725912094116,0.04850302264094353 +99,0.07338475435972214,0,-0.5922465920448303,0.06229636073112488 +100,0.08301293849945068,0,-0.6475528478622437,0.07769899070262909 +101,0.09431464225053787,0,-0.6695224046707153,0.0934373140335083 +102,0.1098106056451797,0,-0.6525828242301941,0.1107596755027771 +103,0.1287159472703934,0,-0.6238186359405518,0.1295516490936279 +104,0.1510325819253922,0,-0.6057255268096924,0.1461862027645111 +105,0.1669940203428268,0,-0.6080828905105591,0.1597301512956619 +106,0.1746168732643127,0,-0.6493122577667236,0.1748431175947189 +107,0.1874018609523773,0,-0.7238149642944336,0.194346621632576 +108,0.2015350759029388,0,-0.7984318137168884,0.2121942341327667 +109,0.2116324305534363,0,-0.8618109226226807,0.2269213944673538 +110,0.2176165282726288,0,-0.9132829308509827,0.2391956746578217 +111,0.2209803014993668,0,-0.9547774791717529,0.2496543824672699 +112,0.223067507147789,0,-0.9882608652114868,0.2587217092514038 +113,0.2247197180986404,0,-1.015233635902405,0.2666956186294556 +114,0.2263618856668472,0,-1.036850690841675,0.2738006412982941 +115,0.2281561940908432,0,-1.054084300994873,0.2802044451236725 +116,0.2301212698221207,0,-1.067798733711243,0.286024272441864 +117,0.2322060316801071,0,-1.078752756118774,0.2913349270820618 +118,0.234331876039505,0,-1.087569952011108,0.2961793541908264 +119,0.2364150583744049,0,-1.094732284545898,0.3005795478820801 +120,0.2383781522512436,0,-1.100579738616943,0.3045458197593689 +121,0.2401528209447861,0,-1.105331420898438,0.3080824911594391 +122,0.2416854798793793,0,-1.109111309051514,0.3111919462680817 +123,0.2429350018501282,0,-1.11197817325592,0.3138759136199951 +124,0.2438723295927048,0,-1.113945007324219,0.3161371350288391 +125,0.2444833815097809,0,-1.114998579025269,0.3179784715175629 +126,0.2447651922702789,0,-1.115110278129578,0.3194049298763275 +127,0.2447251081466675,0,-1.114245653152466,0.3204204738140106 +128,0.2443783581256866,0,-1.112367272377014,0.3210293650627136 +129,0.2437443435192108,0,-1.109441995620728,0.3212357461452484 +130,0.2428438514471054,0,-1.105445146560669,0.3210446238517761 +131,0.2416990697383881,0,-1.100354790687561,0.3204591572284698 +132,0.2403295785188675,0,-1.094162225723267,0.3194838166236877 +133,0.238753542304039,0,-1.086862444877625,0.3181218504905701 +134,0.2369860410690308,0,-1.078455924987793,0.316376119852066 +135,0.2350405752658844,0,-1.06895923614502,0.3142505884170532 +136,0.2329254150390625,0,-1.058380126953125,0.3117465972900391 +137,0.2306508272886276,0,-1.046741485595703,0.3088678419589996 +138,0.228220671415329,0,-1.034059762954712,0.3056151568889618 +139,0.225640133023262,0,-1.020360112190247,0.3019916415214539 +140,0.2229107171297073,0,-1.00566029548645,0.2979980707168579 +141,0.2200340926647186,0,-0.9899786710739136,0.2936366200447083 +142,0.2170087248086929,0,-0.9733289480209351,0.288909375667572 +143,0.2138331681489944,0,-0.9557169675827026,0.2838202118873596 +144,0.2105059027671814,0,-0.9371396899223328,0.278373658657074 +145,0.207024872303009,0,-0.9175820350646973,0.2725775539875031 +146,0.2033890336751938,0,-0.897013247013092,0.2664434611797333 +147,0.1995968073606491,0,-0.8753824234008789,0.2599881291389465 +148,0.1956479847431183,0,-0.8526133894920349,0.2532326579093933 +149,0.1915414035320282,0,-0.8286041617393494,0.2462058067321777 +150,0.1872779130935669,0,-0.8032172918319702,0.2389418184757233 +151,0.1828555911779404,0,-0.7762824296951294,0.2314812690019608 +152,0.1782747954130173,0,-0.7475948333740234,0.2238703221082687 +153,0.1735401898622513,0,-0.7168984413146973,0.2161549031734467 +154,0.1686652898788452,0,-0.683897852897644,0.2083826959133148 +155,0.1636805981397629,0,-0.648231029510498,0.2005936205387115 +156,0.1586496382951736,0,-0.6094895601272583,0.1928199082612991 +157,0.1536895483732224,0,-0.5672659873962402,0.1850773990154266 +158,0.1489920318126678,0,-0.5212571620941162,0.1773466318845749 +159,0.1447944343090057,0,-0.4713038504123688,0.1695114225149155 +160,0.1412131637334824,0,-0.4168043732643127,0.1611724346876144 +161,0.1380506306886673,0,-0.3546505868434906,0.1512588560581207 +162,0.1359186172485352,0,-0.2794485092163086,0.138255387544632 +163,0.1395741403102875,0,-0.2091374397277832,0.1259446442127228 +164,0.1455294191837311,0,-0.1898446977138519,0.1226963624358177 +165,0.1393992155790329,0,-0.1878217458724976,0.1185015812516212 +166,0.1269768476486206,0,-0.1721312701702118,0.1084364801645279 +167,0.114755742251873,0,-0.1391338557004929,0.09554207324981689 +168,0.1013595089316368,0,-0.08880211412906647,0.07962468266487122 +169,0.09025637805461884,0,-0.03285777568817139,0.06178649514913559 +170,0.08191707730293274,0,-0.02368728816509247,0.05155078321695328 +171,0.07380182296037674,0,-0.05476091057062149,0.0473208948969841 +172,0.06514031440019608,0,-0.1042175963521004,0.04527132958173752 +173,0.05686070397496223,0,-0.1534947454929352,0.04379316046833992 +174,0.04926978796720505,0,-0.1786516308784485,0.04166189953684807 +175,0.043695367872715,0,-0.136228621006012,0.03828229755163193 +176,0.04002849385142326,0,-0.05120506510138512,0.03122870251536369 +177,0.0346497930586338,0,0.01095535606145859,0.01795037649571896 +178,0.03185860812664032,0,0.01738479733467102,0.003834599163383245 +179,0.0338936485350132,0,-0.03509100526571274,-0.003897914197295904 +180,0.035848218947649,0,-0.08261404931545258,-0.00811234675347805 diff --git a/data/ram_air_kite/polars_neuralfoil/8.csv b/data/ram_air_kite/polars_neuralfoil/8.csv new file mode 100644 index 00000000..b3d46800 --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/8.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.0386354923248291,0,-0.1606903523206711,-0.001163217471912503 +-179,0.03817873075604439,0,-0.210485428571701,8.189678192138672e-05 +-178,0.03837635368108749,0,-0.2439835965633392,0.0005554318195208907 +-177,0.03887636587023735,0,-0.2578365802764893,-0.001113984035328031 +-176,0.03957603499293327,0,-0.2569084763526917,-0.00449217576533556 +-175,0.04048246890306473,0,-0.246379166841507,-0.008846953511238098 +-174,0.04158694297075272,0,-0.2297597974538803,-0.0137199554592371 +-173,0.04290765523910522,0,-0.2087479531764984,-0.01901207305490971 +-172,0.04455888271331787,0,-0.1836285293102264,-0.02484883554279804 +-171,0.04674859344959259,0,-0.1542849838733673,-0.03132116049528122 +-170,0.04972638934850693,0,-0.121847540140152,-0.03813793882727623 +-169,0.05373748019337654,0,-0.09130673110485077,-0.04432927817106247 +-168,0.05899496376514435,0,-0.07233855128288269,-0.0487012006342411 +-167,0.06494894623756409,0,-0.06774866580963135,-0.05080931633710861 +-166,0.0693775862455368,0,-0.06391528248786926,-0.05195115879178047 +-165,0.07091457396745682,0,-0.04111433029174805,-0.05568975210189819 +-164,0.07239455729722977,0,0.007209330797195435,-0.06421388685703278 +-163,0.07664710283279419,0,0.06819695234298706,-0.075389564037323 +-162,0.08323238044977188,0,0.1279281675815582,-0.08594471216201782 +-161,0.09120412170886993,0,0.18199822306633,-0.09490896761417389 +-160,0.1001451835036278,0,0.2315346896648407,-0.1027640700340271 +-159,0.1098216474056244,0,0.2785145938396454,-0.1101680248975754 +-158,0.1199368387460709,0,0.3240754008293152,-0.1175939440727234 +-157,0.1300828605890274,0,0.3681144416332245,-0.1253673583269119 +-156,0.1398339122533798,0,0.409633994102478,-0.1336642801761627 +-155,0.1489556580781937,0,0.4478070139884949,-0.142382949590683 +-154,0.1575155854225159,0,0.4826167523860931,-0.1511584967374802 +-153,0.1657161116600037,0,0.5144554972648621,-0.1596412658691406 +-152,0.1736638098955154,0,0.5438053607940674,-0.1677134931087494 +-151,0.1813097149133682,0,0.5714734792709351,-0.1754777431488037 +-150,0.1885294765233994,0,0.598669171333313,-0.1831223219633102 +-149,0.1952078640460968,0,0.6265088319778442,-0.1907782554626465 +-148,0.2012892514467239,0,0.6553713083267212,-0.1984366476535797 +-147,0.2067876905202866,0,0.684761643409729,-0.2059668749570847 +-146,0.2117649167776108,0,0.7138087749481201,-0.213207334280014 +-145,0.2162934690713882,0,0.7417718768119812,-0.2200354784727097 +-144,0.2204355746507645,0,0.7682251930236816,-0.226390078663826 +-143,0.2242341935634613,0,0.7930005788803101,-0.2322546541690826 +-142,0.2277163863182068,0,0.816096305847168,-0.2376396209001541 +-141,0.230898305773735,0,0.8375884890556335,-0.2425661534070969 +-140,0.2337876707315445,0,0.8575910925865173,-0.2470592260360718 +-139,0.2363859713077545,0,0.8762245774269104,-0.2511411607265472 +-138,0.238695040345192,0,0.8935931324958801,-0.2548306286334991 +-137,0.2407133877277374,0,0.9097945094108582,-0.2581436336040497 +-136,0.2424411624670029,0,0.9249005317687988,-0.2610911726951599 +-135,0.2438783198595047,0,0.9389618635177612,-0.2636820673942566 +-134,0.2450277060270309,0,0.9520085453987122,-0.2659209966659546 +-133,0.2458942979574203,0,0.9640552997589111,-0.2678114771842957 +-132,0.2464850246906281,0,0.9750990867614746,-0.269354522228241 +-131,0.2468095123767853,0,0.9851220846176147,-0.2705507874488831 +-130,0.246879905462265,0,0.9940978288650513,-0.2714000046253204 +-129,0.246709793806076,0,1.001982688903809,-0.2719010710716248 +-128,0.2463160753250122,0,1.008721113204956,-0.2720515727996826 +-127,0.245718315243721,0,1.014248609542847,-0.271848738193512 +-126,0.2449351847171783,0,1.018484950065613,-0.2712875008583069 +-125,0.2439876049757004,0,1.021341681480408,-0.2703602015972137 +-124,0.242896556854248,0,1.022730350494385,-0.2690534889698029 +-123,0.2416759133338928,0,1.022579908370972,-0.2673448622226715 +-122,0.2403338253498077,0,1.020878314971924,-0.2651979327201843 +-121,0.2388612627983093,0,1.01768946647644,-0.2625517249107361 +-120,0.2372241467237473,0,1.013192176818848,-0.259309321641922 +-119,0.2353387773036957,0,1.007676362991333,-0.2553361654281616 +-118,0.2330348938703537,0,1.001518726348877,-0.2504884898662567 +-117,0.2300022393465042,0,0.9950398802757263,-0.2446974813938141 +-116,0.2258448153734207,0,0.9880135059356689,-0.2380789518356323 +-115,0.2203666269779205,0,0.9789835214614868,-0.2309541702270508 +-114,0.213857039809227,0,0.9655767679214478,-0.2236635386943817 +-113,0.2068479508161545,0,0.9461623430252075,-0.2162672728300095 +-112,0.1996018588542938,0,0.9206990003585815,-0.2084970027208328 +-111,0.1920485645532608,0,0.889721155166626,-0.1999844163656235 +-110,0.1839992851018906,0,0.8533181548118591,-0.1904281824827194 +-109,0.1752772182226181,0,0.8110363483428955,-0.1796034723520279 +-108,0.1657855808734894,0,0.7621245980262756,-0.1673229932785034 +-107,0.1556563228368759,0,0.705812931060791,-0.1534447520971298 +-106,0.1455622911453247,0,0.6418853402137756,-0.1380175799131393 +-105,0.1370621770620346,0,0.5724737644195557,-0.121772825717926 +-104,0.1318478882312775,0,0.5043114423751831,-0.1066810637712479 +-103,0.1288581043481827,0,0.4450820684432983,-0.09472926706075668 +-102,0.1241655871272087,0,0.3968304395675659,-0.08592098206281662 +-101,0.115882471203804,0,0.3551678061485291,-0.0787859782576561 +-100,0.1065239086747169,0,0.310370147228241,-0.07157425582408905 +-99,0.09859424084424973,0,0.2562203407287598,-0.06317564100027084 +-98,0.09176348894834518,0,0.1972742080688477,-0.05408016592264175 +-97,0.08556447178125381,0,0.1401924788951874,-0.04549038410186768 +-96,0.08014902472496033,0,0.08982701599597931,-0.03851401060819626 +-95,0.07500007003545761,0,0.05286196619272232,-0.0337211862206459 +-94,0.0661601647734642,0,0.04110272601246834,-0.02864027582108974 +-93,0.04776663705706596,0,0.07676678150892258,-0.01686911284923553 +-92,0.02748863957822323,0,0.1681244224309921,0.004278033971786499 +-91,0.02160952240228653,0,0.07904665172100067,0.01894494332373142 +-90,0.01935895718634129,0,-0.03043894469738007,0.02580662444233894 +-89,0.0184134878218174,0,-0.1372618824243546,0.02727809548377991 +-88,0.01783324405550957,0,-0.2524657845497131,0.02722923457622528 +-87,0.01762485690414906,0,-0.3756676316261292,0.02755115926265717 +-86,0.01849441230297089,0,-0.4926600456237793,0.02919161319732666 +-85,0.02132807299494743,0,-0.5859124660491943,0.03232080861926079 +-84,0.02653851918876171,0,-0.6497793197631836,0.03565623611211777 +-83,0.03415138274431229,0,-0.6911958456039429,0.03826316446065903 +-82,0.04414388909935951,0,-0.7206218242645264,0.04086505621671677 +-81,0.05602173879742622,0,-0.7490860223770142,0.0448244996368885 +-80,0.06870327144861221,0,-0.7842729687690735,0.05099902302026749 +-79,0.08124832063913345,0,-0.8261756300926208,0.05935258790850639 +-78,0.09221813082695007,0,-0.8695468902587891,0.0687343031167984 +-77,0.1016092076897621,0,-0.9162517786026001,0.07789415121078491 +-76,0.1118787750601768,0,-0.9646884202957153,0.08571308851242065 +-75,0.1185222640633583,0,-1.009826183319092,0.09186021238565445 +-74,0.1255829483270645,0,-1.050199747085571,0.09865643829107285 +-73,0.1375643759965897,0,-1.092818737030029,0.1092745661735535 +-72,0.1523976176977158,0,-1.130998730659485,0.1209771856665611 +-71,0.1691948473453522,0,-1.160757660865784,0.1328709870576859 +-70,0.1877559274435043,0,-1.18066668510437,0.1449591815471649 +-69,0.2073353677988052,0,-1.192534565925598,0.1572019755840302 +-68,0.2267590761184692,0,-1.200285792350769,0.1692788153886795 +-67,0.2456304579973221,0,-1.207076668739319,0.1807931214570999 +-66,0.2644581198692322,0,-1.2144695520401,0.1914707869291306 +-65,0.2835408449172974,0,-1.223413586616516,0.2011710107326508 +-64,0.3024862408638,0,-1.234555959701538,0.2098383009433746 +-63,0.320573091506958,0,-1.248027086257935,0.2174642980098724 +-62,0.3372278213500977,0,-1.263378858566284,0.2240692675113678 +-61,0.3522266447544098,0,-1.279787063598633,0.2297101765871048 +-60,0.3655979335308075,0,-1.296313524246216,0.2344727963209152 +-59,0.3774448335170746,0,-1.312128067016602,0.2384515553712845 +-58,0.3878487944602966,0,-1.326616287231445,0.2417260408401489 +-57,0.3968629539012909,0,-1.339410066604614,0.2443573027849197 +-56,0.4045275151729584,0,-1.350335597991943,0.2463877201080322 +-55,0.4108975231647491,0,-1.359368324279785,0.2478512227535248 +-54,0.4160414934158325,0,-1.366576194763184,0.2487764060497284 +-53,0.4200438857078552,0,-1.372074842453003,0.2491898536682129 +-52,0.4229883253574371,0,-1.375998497009277,0.2491165697574615 +-51,0.4249544739723206,0,-1.378482103347778,0.2485787123441696 +-50,0.4260106086730957,0,-1.379643440246582,0.2475943267345428 +-49,0.4262100458145142,0,-1.379583716392517,0.2461781054735184 +-48,0.4255976378917694,0,-1.378380298614502,0.244339793920517 +-47,0.4242042899131775,0,-1.376101493835449,0.2420874387025833 +-46,0.4220553040504456,0,-1.372791290283203,0.239423081278801 +-45,0.4191678166389465,0,-1.368493795394897,0.2363477498292923 +-44,0.415555328130722,0,-1.363251209259033,0.232858806848526 +-43,0.4112234711647034,0,-1.357109665870667,0.2289484292268753 +-42,0.4061672687530518,0,-1.350147724151611,0.2246022522449493 +-41,0.400365024805069,0,-1.342491626739502,0.2197908610105515 +-40,0.3937514424324036,0,-1.334370374679565,0.2144645750522614 +-39,0.3861862421035767,0,-1.32616662979126,0.2085336893796921 +-38,0.3773901164531708,0,-1.318483591079712,0.2018583565950394 +-37,0.366908997297287,0,-1.312180757522583,0.1942480802536011 +-36,0.3542146980762482,0,-1.308318853378296,0.1854850798845291 +-35,0.3391228914260864,0,-1.308075189590454,0.1753815114498138 +-34,0.3222821652889252,0,-1.312625885009766,0.1638156920671463 +-33,0.3048613667488098,0,-1.322922229766846,0.1507677584886551 +-32,0.2870225608348846,0,-1.339362621307373,0.1364352107048035 +-31,0.267088383436203,0,-1.361142992973328,0.1214420646429062 +-30,0.2450903356075287,0,-1.383072376251221,0.1069794446229935 +-29,0.2243853807449341,0,-1.396741032600403,0.09414900839328766 +-28,0.2064626514911652,0,-1.400203227996826,0.08292907476425171 +-27,0.1904137432575226,0,-1.398010611534119,0.07263782620429993 +-26,0.1756049543619156,0,-1.394240736961365,0.06282516568899155 +-25,0.1624217480421066,0,-1.389283895492554,0.05333047360181808 +-24,0.1507059633731842,0,-1.383379220962524,0.04397205635905266 +-23,0.1375767290592194,0,-1.387369155883789,0.03442229703068733 +-22,0.1215701252222061,0,-1.409361243247986,0.02489182725548744 +-21,0.103714756667614,0,-1.444019675254822,0.01607672497630119 +-20,0.0857793316245079,0,-1.47887659072876,0.008762538433074951 +-19,0.06914346665143967,0,-1.507560133934021,0.003070428967475891 +-18,0.05453216284513474,0,-1.527358889579773,-0.0009590595727786422 +-17,0.04261703789234161,0,-1.529988408088684,-0.002838820219039917 +-16,0.03377215936779976,0,-1.51205039024353,-0.002243638038635254 +-15,0.02744788490235806,0,-1.477120161056519,0.0001280009746551514 +-14,0.0229814276099205,0,-1.428945779800415,0.004072356037795544 +-13,0.01991595141589642,0,-1.369382500648499,0.009664202108979225 +-12,0.01815457083284855,0,-1.303886651992798,0.01767824962735176 +-11,0.01687675341963768,0,-1.227521538734436,0.02381324768066406 +-10,0.01555068604648113,0,-1.137495398521423,0.02822467684745789 +-9,0.01444857101887465,0,-1.039707899093628,0.03167227655649185 +-8,0.01353138592094183,0,-0.938376784324646,0.03419139981269836 +-7,0.01275122724473476,0,-0.8327059745788574,0.03606363385915756 +-6,0.01206222176551819,0,-0.722674548625946,0.03756817057728767 +-5,0.01145175658166409,0,-0.6095402836799622,0.03870825096964836 +-4,0.01091931667178869,0,-0.4945409893989563,0.03943368792533875 +-3,0.01051007583737373,0,-0.3777921497821808,0.03979892283678055 +-2,0.01025007199496031,0,-0.2598530650138855,0.03981549292802811 +-1,0.01004980504512787,0,-0.1418495774269104,0.03963606432080269 +0,0.009941965341567993,0,-0.02343946695327759,0.03945945575833321 +1,0.009939870797097683,0,0.09602074325084686,0.03922437503933907 +2,0.009979416616261005,0,0.2151673138141632,0.03895925730466843 +3,0.01007077749818563,0,0.3332031667232513,0.03874392062425613 +4,0.01032823324203491,0,0.4506491422653198,0.03849905729293823 +5,0.01068030577152967,0,0.5666857361793518,0.03840041160583496 +6,0.01109250262379646,0,0.6829168200492859,0.038312166929245 +7,0.01160130836069584,0,0.7987829446792603,0.03840796276926994 +8,0.01223757676780224,0,0.9107130765914917,0.03933956101536751 +9,0.013133455067873,0,1.031488180160522,0.03779745101928711 +10,0.01435443665832281,0,1.168996095657349,0.0313420481979847 +11,0.01577356643974781,0,1.28985595703125,0.02693358063697815 +12,0.01721624098718166,0,1.375236630439758,0.02972722612321377 +13,0.01848353445529938,0,1.453486680984497,0.03509017825126648 +14,0.02010907232761383,0,1.52699089050293,0.04067721962928772 +15,0.02465447224676609,0,1.568800330162048,0.04402144998311996 +16,0.03483442589640617,0,1.568960070610046,0.04098507389426231 +17,0.04996440187096596,0,1.539965867996216,0.03445928543806076 +18,0.06731065362691879,0,1.504747629165649,0.02751178480684757 +19,0.08509525656700134,0,1.473981022834778,0.02054418995976448 +20,0.1066270172595978,0,1.414029002189636,0.01037498097866774 +21,0.1337449997663498,0,1.315872192382812,-0.0037322579883039 +22,0.1489632576704025,0,1.282444953918457,-0.01518034376204014 +23,0.1557805836200714,0,1.290314435958862,-0.02437070570886135 +24,0.1640238016843796,0,1.298089623451233,-0.03339038044214249 +25,0.1748639494180679,0,1.302974939346313,-0.04257185012102127 +26,0.1872688978910446,0,1.308306694030762,-0.05182445049285889 +27,0.1998706310987473,0,1.316622018814087,-0.06097829341888428 +28,0.2116786986589432,0,1.328678369522095,-0.06989191472530365 +29,0.2224774211645126,0,1.343549132347107,-0.07850398868322372 +30,0.2326180189847946,0,1.359558701515198,-0.08681388199329376 +31,0.2425658106803894,0,1.375212669372559,-0.09485125541687012 +32,0.2526381015777588,0,1.389567136764526,-0.1026571616530418 +33,0.2629663646221161,0,1.402194499969482,-0.1102709919214249 +34,0.2735505104064941,0,1.413004159927368,-0.1177142634987831 +35,0.2843248248100281,0,1.422065615653992,-0.1249831095337868 +36,0.2952036261558533,0,1.429476022720337,-0.1320485174655914 +37,0.3060967326164246,0,1.435323357582092,-0.1388652473688126 +38,0.316884309053421,0,1.439714074134827,-0.1453832685947418 +39,0.327386885881424,0,1.44283926486969,-0.1515601128339767 +40,0.3373602032661438,0,1.444984674453735,-0.1573692262172699 +41,0.3465460538864136,0,1.446460604667664,-0.1627989560365677 +42,0.3547351360321045,0,1.447511911392212,-0.167849212884903 +43,0.3618002235889435,0,1.448278069496155,-0.1725228279829025 +44,0.3676847815513611,0,1.448811650276184,-0.1768222153186798 +45,0.3723761141300201,0,1.449123740196228,-0.1807475537061691 +46,0.3758792877197266,0,1.449204564094543,-0.1842956244945526 +47,0.3781964480876923,0,1.44905149936676,-0.1874619424343109 +48,0.3793259561061859,0,1.448662757873535,-0.1902411431074142 +49,0.3792557716369629,0,1.448034524917603,-0.192628413438797 +50,0.3779627978801727,0,1.447162389755249,-0.1946195363998413 +51,0.3754156231880188,0,1.446024537086487,-0.1962096244096756 +52,0.3715731501579285,0,1.444577693939209,-0.197394460439682 +53,0.3663977682590485,0,1.442742228507996,-0.1981667578220367 +54,0.3598667085170746,0,1.440379619598389,-0.1985178738832474 +55,0.3519994914531708,0,1.437277555465698,-0.1984370946884155 +56,0.3428851664066315,0,1.433130621910095,-0.1979127377271652 +57,0.3326911628246307,0,1.427554368972778,-0.1969359815120697 +58,0.3216257989406586,0,1.420132517814636,-0.1955032646656036 +59,0.3098831474781036,0,1.410497784614563,-0.1936163902282715 +60,0.2976019382476807,0,1.398376703262329,-0.1912773102521896 +61,0.2848740220069885,0,1.383569478988647,-0.1884772479534149 +62,0.2717865705490112,0,1.365876078605652,-0.1851848512887955 +63,0.2584631741046906,0,1.345019221305847,-0.1813382804393768 +64,0.2450785934925079,0,1.320607423782349,-0.1768510639667511 +65,0.2318494468927383,0,1.292142391204834,-0.1716239601373672 +66,0.2190067619085312,0,1.259070634841919,-0.1655680239200592 +67,0.2067682594060898,0,1.220937013626099,-0.1586330980062485 +68,0.1952943503856659,0,1.177578687667847,-0.1508400440216064 +69,0.1846503913402557,0,1.129299283027649,-0.1423042863607407 +70,0.174764558672905,0,1.076881170272827,-0.1332343965768814 +71,0.1654181182384491,0,1.021350860595703,-0.1238789707422256 +72,0.1563196778297424,0,0.9636399745941162,-0.1144441142678261 +73,0.1472453773021698,0,0.9043809175491333,-0.1050505265593529 +74,0.1381483674049377,0,0.8438464403152466,-0.09575585275888443 +75,0.1292209178209305,0,0.782023012638092,-0.08660467714071274 +76,0.121040053665638,0,0.718993604183197,-0.07774176448583603 +77,0.1147834584116936,0,0.6558248996734619,-0.06968990713357925 +78,0.1112532988190651,0,0.5944578051567078,-0.06339257210493088 +79,0.1084916368126869,0,0.5370454788208008,-0.05921875685453415 +80,0.1034215539693832,0,0.4855331480503082,-0.05624677613377571 +81,0.09684755653142929,0,0.4329621195793152,-0.05252106115221977 +82,0.08988387882709503,0,0.3786815404891968,-0.04740520939230919 +83,0.08141122758388519,0,0.3309452533721924,-0.04148022457957268 +84,0.07063519209623337,0,0.2901514172554016,-0.03425068035721779 +85,0.05449462682008743,0,0.2841199636459351,-0.02343825437128544 +86,0.0365251712501049,0,0.3300946354866028,-0.008145806379616261 +87,0.02746769599616528,0,0.2920448780059814,0.004908072762191296 +88,0.02293953858315945,0,0.1907739639282227,0.01532283704727888 +89,0.02052253670990467,0,0.07835964858531952,0.02248700894415379 +90,0.01935895718634129,0,-0.03043894469738007,0.02580662444233894 +91,0.01866913959383965,0,-0.1367632150650024,0.02642479538917542 +92,0.0180378220975399,0,-0.244752049446106,0.02608215436339378 +93,0.01795599609613419,0,-0.3481155037879944,0.02639835514128208 +94,0.01979325897991657,0,-0.4273488521575928,0.02862570248544216 +95,0.02483054250478745,0,-0.4680776596069336,0.03197769448161125 +96,0.03364246711134911,0,-0.4771066009998322,0.03497310355305672 +97,0.04575882479548454,0,-0.4755507111549377,0.03900058940052986 +98,0.0593225285410881,0,-0.485939085483551,0.04728111252188683 +99,0.07225538045167923,0,-0.5201650857925415,0.06028303503990173 +100,0.08072392642498016,0,-0.5724946260452271,0.07444683462381363 +101,0.08807885646820068,0,-0.6198121905326843,0.088356614112854 +102,0.09771757572889328,0,-0.6547883152961731,0.1016644984483719 +103,0.1088996157050133,0,-0.6774501204490662,0.1145975589752197 +104,0.1244735792279243,0,-0.6873560547828674,0.1266449391841888 +105,0.1391597837209702,0,-0.6907258033752441,0.1376783549785614 +106,0.1483399868011475,0,-0.698838472366333,0.1498550921678543 +107,0.1625921726226807,0,-0.7328228950500488,0.1690769493579865 +108,0.183844268321991,0,-0.7781208157539368,0.1908457577228546 +109,0.2022215276956558,0,-0.820885181427002,0.2094777077436447 +110,0.2135872691869736,0,-0.8605412244796753,0.2240369319915771 +111,0.2194940000772476,0,-0.8971301317214966,0.2352160960435867 +112,0.22252456843853,0,-0.9297593832015991,0.2441032826900482 +113,0.2243095934391022,0,-0.9580283164978027,0.251570999622345 +114,0.225629910826683,0,-0.9822279214859009,0.258116751909256 +115,0.2268239110708237,0,-1.002857446670532,0.2639857232570648 +116,0.228029876947403,0,-1.020290374755859,0.2693035006523132 +117,0.2292939126491547,0,-1.034759640693665,0.2741459906101227 +118,0.2306123375892639,0,-1.046457171440125,0.2785634994506836 +119,0.2319492995738983,0,-1.055604457855225,0.2825861573219299 +120,0.2332555204629898,0,-1.062476515769958,0.2862309217453003 +121,0.2344760000705719,0,-1.067363977432251,0.2895022630691528 +122,0.2355610281229019,0,-1.070542573928833,0.2923994660377502 +123,0.2364687770605087,0,-1.072248935699463,0.2949178814888 +124,0.2371674329042435,0,-1.072670817375183,0.2970523834228516 +125,0.2376351207494736,0,-1.071950674057007,0.2987986505031586 +126,0.2378570884466171,0,-1.070184946060181,0.3001532554626465 +127,0.2378261387348175,0,-1.067442417144775,0.3011147379875183 +128,0.2375389933586121,0,-1.063763022422791,0.30168217420578 +129,0.2369990944862366,0,-1.059168815612793,0.3018555045127869 +130,0.2362107634544373,0,-1.05367374420166,0.3016359806060791 +131,0.2351812720298767,0,-1.047276496887207,0.3010238409042358 +132,0.233922153711319,0,-1.039978384971619,0.3000211119651794 +133,0.2324436604976654,0,-1.03177547454834,0.2986292839050293 +134,0.2307567596435547,0,-1.022658348083496,0.2968496382236481 +135,0.2288749814033508,0,-1.012621760368347,0.2946833670139313 +136,0.2268095761537552,0,-1.001660108566284,0.2921331524848938 +137,0.2245707213878632,0,-0.9897593855857849,0.289199024438858 +138,0.2221702933311462,0,-0.9769117832183838,0.2858837246894836 +139,0.2196171134710312,0,-0.9631013870239258,0.2821895480155945 +140,0.2169199138879776,0,-0.9483132362365723,0.2781202793121338 +141,0.2140862941741943,0,-0.9325258135795593,0.2736813127994537 +142,0.2111228108406067,0,-0.9157105684280396,0.2688796818256378 +143,0.2080335468053818,0,-0.8978344202041626,0.2637260556221008 +144,0.2048230320215225,0,-0.8788512349128723,0.2582345008850098 +145,0.2014939934015274,0,-0.8587123155593872,0.2524241209030151 +146,0.1980464160442352,0,-0.8373433947563171,0.2463174760341644 +147,0.1944813132286072,0,-0.8146620988845825,0.2399425953626633 +148,0.1907981038093567,0,-0.7905662059783936,0.2333332747220993 +149,0.1869977563619614,0,-0.7649329900741577,0.2265256643295288 +150,0.183078944683075,0,-0.7376227974891663,0.219560831785202 +151,0.1790437251329422,0,-0.7084798812866211,0.2124813795089722 +152,0.1748929768800735,0,-0.6773350238800049,0.2053315937519073 +153,0.1706289798021317,0,-0.644006609916687,0.1981560736894608 +154,0.1662548631429672,0,-0.6083046197891235,0.1910007894039154 +155,0.1617836952209473,0,-0.5700347423553467,0.1839125156402588 +156,0.157253235578537,0,-0.5290203094482422,0.1769334375858307 +157,0.1527544409036636,0,-0.4851571619510651,0.1700832396745682 +158,0.1484512984752655,0,-0.4384185373783112,0.1632864773273468 +159,0.1445355713367462,0,-0.3885495364665985,0.1561914384365082 +160,0.1410771161317825,0,-0.3338123261928558,0.1478127688169479 +161,0.1382288485765457,0,-0.2695180177688599,0.1362718641757965 +162,0.1383541375398636,0,-0.198583722114563,0.1215021163225174 +163,0.1442628055810928,0,-0.1643415987491608,0.1125520095229149 +164,0.1429415643215179,0,-0.166841983795166,0.1079001426696777 +165,0.1295006573200226,0,-0.1467858850955963,0.09666305035352707 +166,0.114443875849247,0,-0.08378675580024719,0.08016107976436615 +167,0.100660465657711,0,-0.01624560356140137,0.06593342870473862 +168,0.09006594121456146,0,0.01462230086326599,0.05767818540334702 +169,0.08242083340883255,0,0.02488821744918823,0.05208810418844223 +170,0.07604486495256424,0,0.03579899668693542,0.04649759456515312 +171,0.07069507986307144,0,0.04325588047504425,0.04184702783823013 +172,0.06655044853687286,0,0.03827356174588203,0.0397551953792572 +173,0.06354834884405136,0,0.02404691651463509,0.03948542103171349 +174,0.0611305795609951,0,0.00905325822532177,0.038359634578228 +175,0.05752603709697723,0,-0.001399785280227661,0.03286206722259521 +176,0.04911846667528152,0,-0.01126581430435181,0.02172501944005489 +177,0.04144388437271118,0,-0.02799324691295624,0.01085268519818783 +178,0.04102702066302299,0,-0.06944245845079422,0.006463476922363043 +179,0.03988659381866455,0,-0.1131008639931679,0.001153093529865146 +180,0.0386354923248291,0,-0.1606903523206711,-0.001163217471912503 diff --git a/data/ram_air_kite/polars_neuralfoil/9.csv b/data/ram_air_kite/polars_neuralfoil/9.csv new file mode 100644 index 00000000..c326d95a --- /dev/null +++ b/data/ram_air_kite/polars_neuralfoil/9.csv @@ -0,0 +1,362 @@ +alpha,Cd,Cs,Cl,Cm +-180,0.04676977545022964,0,-0.2656323909759521,0.01289893127977848 +-179,0.04429663717746735,0,-0.3105949461460114,0.01172786019742489 +-178,0.043771892786026,0,-0.3440960645675659,0.01044209860265255 +-177,0.04427391290664673,0,-0.3614750504493713,0.008213067427277565 +-176,0.04534269869327545,0,-0.3636026382446289,0.004844039678573608 +-175,0.04677819460630417,0,-0.3543688654899597,0.0005938500398769975 +-174,0.048467967659235,0,-0.3376845419406891,-0.004216843750327826 +-173,0.05034774169325829,0,-0.3160847723484039,-0.009423742070794106 +-172,0.05243384093046188,0,-0.2906132936477661,-0.01504894811660051 +-171,0.05483797937631607,0,-0.2613637447357178,-0.0212120171636343 +-170,0.05773773789405823,0,-0.2281689047813416,-0.02800342999398708 +-169,0.06133781746029854,0,-0.1910977512598038,-0.03537657111883163 +-168,0.06586377322673798,0,-0.1510215699672699,-0.04302886873483658 +-167,0.07155603170394897,0,-0.1123474538326263,-0.05025006458163261 +-166,0.07841895520687103,0,-0.08714579045772552,-0.05580637603998184 +-165,0.08499567955732346,0,-0.07735727727413177,-0.05877390503883362 +-164,0.08848164975643158,0,-0.06221231818199158,-0.06148911267518997 +-163,0.08914908766746521,0,-0.01526135206222534,-0.06959067285060883 +-162,0.09293156117200851,0,0.06118229031562805,-0.08363658934831619 +-161,0.1011501103639603,0,0.1435714066028595,-0.09878555685281754 +-160,0.1109642088413239,0,0.2193690836429596,-0.1120350509881973 +-159,0.1208383291959763,0,0.2866284847259521,-0.1230385452508926 +-158,0.1304932236671448,0,0.3468175530433655,-0.1324539482593536 +-157,0.1399318873882294,0,0.4013141989707947,-0.1410629004240036 +-156,0.1490916758775711,0,0.4505763947963715,-0.1494489312171936 +-155,0.1578948944807053,0,0.4948254525661469,-0.157873347401619 +-154,0.1663702130317688,0,0.534875750541687,-0.1662686169147491 +-153,0.1746435165405273,0,0.571955680847168,-0.1744162738323212 +-152,0.1828228980302811,0,0.6069748401641846,-0.1821574419736862 +-151,0.1909176409244537,0,0.6403154134750366,-0.1894560605287552 +-150,0.1988474726676941,0,0.6720488667488098,-0.1963556706905365 +-149,0.2064972519874573,0,0.7021297216415405,-0.2029200494289398 +-148,0.2137575745582581,0,0.7304818034172058,-0.2092064619064331 +-147,0.2205497026443481,0,0.7570438385009766,-0.2152589112520218 +-146,0.2268256843090057,0,0.7817834615707397,-0.2211023271083832 +-145,0.2325712740421295,0,0.8047541379928589,-0.2267492711544037 +-144,0.2377957403659821,0,0.826094388961792,-0.2321979552507401 +-143,0.2425224483013153,0,0.84601891040802,-0.2374352663755417 +-142,0.2467805594205856,0,0.8647713661193848,-0.2424391210079193 +-141,0.2505961656570435,0,0.8825784921646118,-0.2471840381622314 +-140,0.2539899051189423,0,0.8995929956436157,-0.2516418099403381 +-139,0.2569771707057953,0,0.9158945083618164,-0.2557869255542755 +-138,0.2595703601837158,0,0.9314922094345093,-0.2595975995063782 +-137,0.2617804706096649,0,0.9463549852371216,-0.2630580365657806 +-136,0.2636192142963409,0,0.9604352712631226,-0.2661570906639099 +-135,0.2650963962078094,0,0.9736804962158203,-0.2688885927200317 +-134,0.2662259042263031,0,0.9860447645187378,-0.2712493538856506 +-133,0.2670219242572784,0,0.9974806308746338,-0.2732376158237457 +-132,0.2675028741359711,0,1.007935762405396,-0.2748526036739349 +-131,0.2676914036273956,0,1.017343044281006,-0.2760928273200989 +-130,0.2676129639148712,0,1.025605916976929,-0.2769569158554077 +-129,0.267297774553299,0,1.032589197158813,-0.2774421572685242 +-128,0.2667768001556396,0,1.038114905357361,-0.2775446772575378 +-127,0.2660781741142273,0,1.041983723640442,-0.2772611677646637 +-126,0.2652203738689423,0,1.044002294540405,-0.2765870094299316 +-125,0.2642060816287994,0,1.044041037559509,-0.2755149900913239 +-124,0.2630204856395721,0,1.042084097862244,-0.2740318179130554 +-123,0.2616289556026459,0,1.038246393203735,-0.2721119523048401 +-122,0.2599849104881287,0,1.032774209976196,-0.2697088718414307 +-121,0.2580292224884033,0,1.026018500328064,-0.2667456269264221 +-120,0.2556855976581573,0,1.018430709838867,-0.2631163001060486 +-119,0.2528417706489563,0,1.010463833808899,-0.2587082087993622 +-118,0.2493541240692139,0,1.002254247665405,-0.253464937210083 +-117,0.2450990974903107,0,0.9930347204208374,-0.2474626302719116 +-116,0.2400753051042557,0,0.9808300733566284,-0.2409194707870483 +-115,0.2344455420970917,0,0.9631714820861816,-0.2340491116046906 +-114,0.2283572256565094,0,0.9384714365005493,-0.2268360108137131 +-113,0.2216890007257462,0,0.9064927697181702,-0.2189724445343018 +-112,0.2140460759401321,0,0.8675054311752319,-0.2100074738264084 +-111,0.2049462646245956,0,0.8214107751846313,-0.1995124369859695 +-110,0.1940235048532486,0,0.7676517367362976,-0.1871655732393265 +-109,0.1811989098787308,0,0.7056673169136047,-0.1727900058031082 +-108,0.1668339669704437,0,0.6355131268501282,-0.1563933789730072 +-107,0.151956170797348,0,0.5584084987640381,-0.1382475942373276 +-106,0.139017254114151,0,0.4777489900588989,-0.1193056255578995 +-105,0.1324382722377777,0,0.4024678766727448,-0.1024859994649887 +-104,0.1317934542894363,0,0.3430187106132507,-0.09087520837783813 +-103,0.1281327158212662,0,0.2990690767765045,-0.08256052434444427 +-102,0.1195137798786163,0,0.258638471364975,-0.07424482703208923 +-101,0.1114966869354248,0,0.2082703411579132,-0.06478077173233032 +-100,0.1049178019165993,0,0.1500256806612015,-0.05466510728001595 +-99,0.09864194691181183,0,0.09102617204189301,-0.0448698028922081 +-98,0.09261155873537064,0,0.03360995650291443,-0.03574345260858536 +-97,0.08705791831016541,0,-0.02100983262062073,-0.02743191458284855 +-96,0.08228011429309845,0,-0.07120181620121002,-0.02023416757583618 +-95,0.0784195140004158,0,-0.1138901263475418,-0.0145836416631937 +-94,0.07392387837171555,0,-0.1409937143325806,-0.01006552018225193 +-93,0.06533853709697723,0,-0.1491686254739761,-0.004073798656463623 +-92,0.04537619277834892,0,-0.07684318721294403,0.00915486179292202 +-91,0.03022580593824387,0,-0.01065643131732941,0.02230578288435936 +-90,0.02387561649084091,0,-0.06507319211959839,0.02957821264863014 +-89,0.02058735862374306,0,-0.1321326047182083,0.03218177706003189 +-88,0.01881447806954384,0,-0.2133032232522964,0.03117490373551846 +-87,0.017723698168993,0,-0.3163464069366455,0.0309029184281826 +-86,0.01775804348289967,0,-0.4251940846443176,0.03338178619742393 +-85,0.02014445140957832,0,-0.5104580521583557,0.03802327811717987 +-84,0.02609008364379406,0,-0.5534812808036804,0.04200916364789009 +-83,0.03588071838021278,0,-0.5637753009796143,0.04383041337132454 +-82,0.04801906645298004,0,-0.5693024396896362,0.04489829391241074 +-81,0.06049573421478271,0,-0.5883487462997437,0.0468495711684227 +-80,0.07221108675003052,0,-0.6241033673286438,0.05049734190106392 +-79,0.08272572606801987,0,-0.6736373901367188,0.05580043792724609 +-78,0.091886967420578,0,-0.7324191331863403,0.06209404394030571 +-77,0.09917080402374268,0,-0.7952296137809753,0.06872816383838654 +-76,0.1051627993583679,0,-0.8578420877456665,0.07545902580022812 +-75,0.1133175939321518,0,-0.9192956686019897,0.08109961450099945 +-74,0.117387555539608,0,-0.9815258979797363,0.0847790464758873 +-73,0.121605172753334,0,-1.043176174163818,0.09094367176294327 +-72,0.1302097588777542,0,-1.099936008453369,0.1002151146531105 +-71,0.141246035695076,0,-1.14698314666748,0.1097068935632706 +-70,0.1543426960706711,0,-1.183324575424194,0.1191198453307152 +-69,0.1699203252792358,0,-1.207592368125916,0.1287595331668854 +-68,0.1884635984897614,0,-1.219389677047729,0.1389846056699753 +-67,0.2094559222459793,0,-1.221664667129517,0.1497508585453033 +-66,0.2309284210205078,0,-1.220276355743408,0.1605260074138641 +-65,0.2509823143482208,0,-1.220066785812378,0.1707234680652618 +-64,0.269348680973053,0,-1.222507476806641,0.180052787065506 +-63,0.2867825925350189,0,-1.227133750915527,0.1884662210941315 +-62,0.3038420677185059,0,-1.233348369598389,0.1959975957870483 +-61,0.3205357193946838,0,-1.240842342376709,0.2026810646057129 +-60,0.336529552936554,0,-1.249415159225464,0.2085369080305099 +-59,0.3514141738414764,0,-1.258785247802734,0.2135757952928543 +-58,0.3648719787597656,0,-1.268573999404907,0.2178085744380951 +-57,0.3767299950122833,0,-1.278348684310913,0.2212535440921783 +-56,0.3869445621967316,0,-1.287690997123718,0.2239407747983932 +-55,0.3955563306808472,0,-1.29625391960144,0.2259101569652557 +-54,0.402644544839859,0,-1.303780078887939,0.2272055596113205 +-53,0.4083026051521301,0,-1.310107946395874,0.2278718501329422 +-52,0.4126284718513489,0,-1.315157532691956,0.2279501259326935 +-51,0.4157091379165649,0,-1.318919539451599,0.2274771928787231 +-50,0.4176218211650848,0,-1.32141900062561,0.2264815866947174 +-49,0.4184300303459167,0,-1.32273006439209,0.2249857485294342 +-48,0.4181791841983795,0,-1.322940826416016,0.2230010032653809 +-47,0.4168949127197266,0,-1.32217001914978,0.2205312252044678 +-46,0.4145787954330444,0,-1.320559501647949,0.21756711602211 +-45,0.411204069852829,0,-1.318288326263428,0.2140874415636063 +-44,0.4067059457302094,0,-1.315587759017944,0.2100577801465988 +-43,0.4009755551815033,0,-1.312752366065979,0.2054290026426315 +-42,0.3938688039779663,0,-1.310147762298584,0.2001377791166306 +-41,0.3852293789386749,0,-1.308220863342285,0.1941113770008087 +-40,0.3749577105045319,0,-1.307492136955261,0.1872716248035431 +-39,0.3631030917167664,0,-1.308550596237183,0.1795393973588943 +-38,0.3499109148979187,0,-1.3120436668396,0.1708327531814575 +-37,0.3357146084308624,0,-1.318710088729858,0.1610637158155441 +-36,0.3204958140850067,0,-1.329569220542908,0.1501316726207733 +-35,0.3031569719314575,0,-1.346359252929688,0.137929692864418 +-34,0.2815883159637451,0,-1.371234893798828,0.1244496703147888 +-33,0.2557387053966522,0,-1.402886152267456,0.1101825833320618 +-32,0.2303285747766495,0,-1.431871891021729,0.09645815193653107 +-31,0.2100365608930588,0,-1.447156190872192,0.08462861925363541 +-30,0.1949698925018311,0,-1.447230815887451,0.07481157034635544 +-29,0.1830683350563049,0,-1.438218355178833,0.06619704514741898 +-28,0.1730115860700607,0,-1.425190448760986,0.05815388634800911 +-27,0.1640042066574097,0,-1.410465717315674,0.05047205835580826 +-26,0.1549169719219208,0,-1.397224903106689,0.04310012608766556 +-25,0.145212396979332,0,-1.387332558631897,0.03611527755856514 +-24,0.1352281421422958,0,-1.379452466964722,0.02957427129149437 +-23,0.1252147257328033,0,-1.372107148170471,0.023513188585639 +-22,0.1149071902036667,0,-1.364217758178711,0.01806192100048065 +-21,0.1039983183145523,0,-1.356427669525146,0.01326037384569645 +-20,0.09228633344173431,0,-1.352138757705688,0.008970862254500389 +-19,0.07970203459262848,0,-1.354432940483093,0.005125137977302074 +-18,0.06679078936576843,0,-1.36172890663147,0.001986706163734198 +-17,0.05450277402997017,0,-1.367378354072571,-2.739429510256741e-05 +-16,0.04362678900361061,0,-1.363890886306763,-0.0006900072330608964 +-15,0.03487630188465118,0,-1.346475720405579,0.000439012044807896 +-14,0.02828768827021122,0,-1.314707279205322,0.003596442984417081 +-13,0.02383105270564556,0,-1.271872758865356,0.009512072429060936 +-12,0.02098497003316879,0,-1.215679526329041,0.01582096889615059 +-11,0.01852013729512691,0,-1.144160866737366,0.02117835357785225 +-10,0.01668844744563103,0,-1.07083523273468,0.02750959433615208 +-9,0.0152434166520834,0,-0.9944552183151245,0.03384928032755852 +-8,0.01398176979273558,0,-0.9106281995773315,0.03959477692842484 +-7,0.01283392962068319,0,-0.8185404539108276,0.04435063526034355 +-6,0.01188064552843571,0,-0.7178879976272583,0.04783960059285164 +-5,0.01135238632559776,0,-0.6077867746353149,0.04989512637257576 +-4,0.01116452179849148,0,-0.4921349287033081,0.05092761665582657 +-3,0.01110248826444149,0,-0.3746382892131805,0.05146948248147964 +-2,0.01113004051148891,0,-0.2557927072048187,0.0517440028488636 +-1,0.0112477308139205,0,-0.1362015008926392,0.05184367299079895 +0,0.01143443770706654,0,-0.01672309637069702,0.05184623599052429 +1,0.01166974008083344,0,0.1020800992846489,0.05181368440389633 +2,0.01194707863032818,0,0.2199523448944092,0.0517764687538147 +3,0.01227802410721779,0,0.3369210958480835,0.05174840614199638 +4,0.01266851928085089,0,0.4529347121715546,0.05179393291473389 +5,0.01305248681455851,0,0.5665905475616455,0.05208259075880051 +6,0.01336944289505482,0,0.676061749458313,0.05279102921485901 +7,0.01370824594050646,0,0.7810930609703064,0.05423379689455032 +8,0.01437074318528175,0,0.8833516836166382,0.05580126494169235 +9,0.01550603751093149,0,0.9822582006454468,0.05757784843444824 +10,0.01709212362766266,0,1.090573906898499,0.05646248534321785 +11,0.01886416040360928,0,1.208355188369751,0.0520460307598114 +12,0.02103145606815815,0,1.310659885406494,0.04847922921180725 +13,0.02485140599310398,0,1.350458025932312,0.05281956866383553 +14,0.03268170356750488,0,1.349401950836182,0.05693686753511429 +15,0.04522908478975296,0,1.332227230072021,0.05588290840387344 +16,0.06140046939253807,0,1.304988384246826,0.05090049654245377 +17,0.07920604199171066,0,1.275732636451721,0.04399468749761581 +18,0.09712931513786316,0,1.250430226325989,0.03636711835861206 +19,0.1179396659135818,0,1.200934410095215,0.02632922492921352 +20,0.1453907340764999,0,1.106269478797913,0.01254945993423462 +21,0.1605204790830612,0,1.076300978660583,0.001496672630310059 +22,0.1675550192594528,0,1.086008787155151,-0.007327335886657238 +23,0.1768866032361984,0,1.093290090560913,-0.0161014087498188 +24,0.1881004273891449,0,1.100585103034973,-0.02490409091114998 +25,0.1996977180242538,0,1.111160755157471,-0.03360337764024734 +26,0.2107366472482681,0,1.12555193901062,-0.04211537167429924 +27,0.2208582162857056,0,1.142993211746216,-0.05039951205253601 +28,0.2301078140735626,0,1.162299156188965,-0.05843312293291092 +29,0.2387051582336426,0,1.18239152431488,-0.06620112806558609 +30,0.2468790709972382,0,1.202487945556641,-0.07369677722454071 +31,0.2547939717769623,0,1.222100853919983,-0.08092838525772095 +32,0.2625339925289154,0,1.240952134132385,-0.08791981637477875 +33,0.2701130509376526,0,1.258883595466614,-0.09469862282276154 +34,0.2774996161460876,0,1.275803565979004,-0.1012838110327721 +35,0.2846380472183228,0,1.291637063026428,-0.1076822131872177 +36,0.291480153799057,0,1.306287527084351,-0.1138925328850746 +37,0.2980003952980042,0,1.31960928440094,-0.1199124902486801 +38,0.3042030334472656,0,1.331411600112915,-0.125743955373764 +39,0.3101075887680054,0,1.341496706008911,-0.1313918232917786 +40,0.3157266974449158,0,1.349729657173157,-0.1368549019098282 +41,0.3210391104221344,0,1.356095314025879,-0.1421193331480026 +42,0.3259812593460083,0,1.360715508460999,-0.1471555680036545 +43,0.3304519951343536,0,1.363812923431396,-0.1519192457199097 +44,0.3343358039855957,0,1.365656852722168,-0.1563640683889389 +45,0.3375170528888702,0,1.366492867469788,-0.1604440957307816 +46,0.3398989140987396,0,1.366528749465942,-0.1641228795051575 +47,0.3414055705070496,0,1.36590313911438,-0.1673720926046371 +48,0.3419870734214783,0,1.364700794219971,-0.1701721101999283 +49,0.3416110873222351,0,1.362955331802368,-0.1725096255540848 +50,0.3402656316757202,0,1.360651731491089,-0.1743768602609634 +51,0.3379525244235992,0,1.357735633850098,-0.1757715046405792 +52,0.3346893489360809,0,1.354102611541748,-0.1766952127218246 +53,0.3305105566978455,0,1.349603772163391,-0.177157074213028 +54,0.3254636526107788,0,1.344041228294373,-0.1771741807460785 +55,0.3196147084236145,0,1.337183237075806,-0.1767738163471222 +56,0.3130394518375397,0,1.328780055046082,-0.1759940087795258 +57,0.3058122396469116,0,1.318597197532654,-0.1748766005039215 +58,0.2979986965656281,0,1.306446313858032,-0.1734603345394135 +59,0.2896403670310974,0,1.292203783988953,-0.1717639118432999 +60,0.2807649374008179,0,1.275786995887756,-0.1697734296321869 +61,0.2714031636714935,0,1.257098436355591,-0.1674381792545319 +62,0.2616199254989624,0,1.235955476760864,-0.1646744757890701 +63,0.2515273690223694,0,1.212034344673157,-0.161379337310791 +64,0.2412803322076797,0,1.184873700141907,-0.1574486047029495 +65,0.2310474365949631,0,1.153937458992004,-0.1527934819459915 +66,0.2209757715463638,0,1.118732094764709,-0.1473581939935684 +67,0.2111577987670898,0,1.078936457633972,-0.1411300003528595 +68,0.201611191034317,0,1.034521579742432,-0.1341495960950851 +69,0.1922720074653625,0,0.9857854843139648,-0.1265124976634979 +70,0.1830127835273743,0,0.9333003759384155,-0.1183543801307678 +71,0.1736875474452972,0,0.8777657747268677,-0.1098204106092453 +72,0.1641757041215897,0,0.8198647499084473,-0.1010357886552811 +73,0.1544109284877777,0,0.7601535320281982,-0.09208763390779495 +74,0.1443943530321121,0,0.6990201473236084,-0.08303280174732208 +75,0.134322926402092,0,0.636719822883606,-0.07394161820411682 +76,0.1253302246332169,0,0.5734594464302063,-0.06510468572378159 +77,0.1201374605298042,0,0.5085685849189758,-0.05745910480618477 +78,0.1168832704424858,0,0.4458138942718506,-0.05229858681559563 +79,0.1102873161435127,0,0.3908608853816986,-0.04772910848259926 +80,0.1042164266109467,0,0.3298421502113342,-0.04156709089875221 +81,0.09923406690359116,0,0.2656738758087158,-0.03518739342689514 +82,0.09405425190925598,0,0.2049000263214111,-0.02933138236403465 +83,0.08809275925159454,0,0.1494976580142975,-0.02358889579772949 +84,0.08096478134393692,0,0.09855599701404572,-0.01743813790380955 +85,0.07248782366514206,0,0.0487058125436306,-0.01042372547090054 +86,0.05985097959637642,0,0.02428255416452885,-0.001032304717227817 +87,0.04377136006951332,0,0.05918736010789871,0.01173124648630619 +88,0.03390966728329659,0,0.05150564014911652,0.02117572352290154 +89,0.02796261943876743,0,-0.001781031489372253,0.02645650133490562 +90,0.02387561649084091,0,-0.06507319211959839,0.02957821264863014 +91,0.02102274261415005,0,-0.1323094666004181,0.02994035743176937 +92,0.01898503676056862,0,-0.207102358341217,0.02863750420510769 +93,0.01811721175909042,0,-0.2885932922363281,0.02919721975922585 +94,0.01969909854233265,0,-0.3565640449523926,0.0335271880030632 +95,0.02522676810622215,0,-0.3821230828762054,0.03870760276913643 +96,0.03570489212870598,0,-0.3632069826126099,0.04179556295275688 +97,0.04961024597287178,0,-0.3343780636787415,0.04395625740289688 +98,0.06264141947031021,0,-0.3287387490272522,0.04753939807415009 +99,0.07262151688337326,0,-0.3551102876663208,0.05388499051332474 +100,0.07974862307310104,0,-0.4105600714683533,0.06324595212936401 +101,0.08459475636482239,0,-0.4805565774440765,0.07460372149944305 +102,0.08920955657958984,0,-0.5457248687744141,0.08692574501037598 +103,0.09658067673444748,0,-0.5961704254150391,0.09961427748203278 +104,0.1069268360733986,0,-0.6282260417938232,0.1123127490282059 +105,0.1215068101882935,0,-0.6417654752731323,0.1247159987688065 +106,0.1385460793972015,0,-0.6429633498191833,0.1355382651090622 +107,0.1494178473949432,0,-0.6482965350151062,0.1467362493276596 +108,0.1611219197511673,0,-0.6819139122962952,0.1654570251703262 +109,0.1815979182720184,0,-0.7278109192848206,0.1884396076202393 +110,0.20249243080616,0,-0.768948495388031,0.2088413238525391 +111,0.2177488654851913,0,-0.8062544465065002,0.2251473367214203 +112,0.2272399365901947,0,-0.8421367406845093,0.2377096712589264 +113,0.2332873344421387,0,-0.8764166831970215,0.247353121638298 +114,0.2377431988716125,0,-0.9077674150466919,0.2549446523189545 +115,0.2414533048868179,0,-0.9353399276733398,0.2611700296401978 +116,0.2447289526462555,0,-0.9590064287185669,0.2664704322814941 +117,0.2476867288351059,0,-0.97902512550354,0.2710980772972107 +118,0.2503799796104431,0,-0.9957523345947266,0.2751967012882233 +119,0.2528325915336609,0,-1.009520888328552,0.2788518071174622 +120,0.2550514340400696,0,-1.02062201499939,0.2821145057678223 +121,0.2570274174213409,0,-1.029318451881409,0.2850139141082764 +122,0.2587471604347229,0,-1.035850286483765,0.2875648736953735 +123,0.2601915895938873,0,-1.040441989898682,0.2897721827030182 +124,0.26134392619133,0,-1.043289661407471,0.2916348874568939 +125,0.2621902823448181,0,-1.044560670852661,0.2931478917598724 +126,0.2627203464508057,0,-1.044394612312317,0.294305682182312 +127,0.2629297077655792,0,-1.042898535728455,0.2951020300388336 +128,0.2628154456615448,0,-1.040154933929443,0.2955304682254791 +129,0.2623813152313232,0,-1.036222696304321,0.2955861687660217 +130,0.2616317868232727,0,-1.03114116191864,0.2952640056610107 +131,0.2605752348899841,0,-1.024935841560364,0.2945606708526611 +132,0.2592195272445679,0,-1.017621755599976,0.293473094701767 +133,0.2575776278972626,0,-1.009202718734741,0.2919990122318268 +134,0.255659818649292,0,-0.9996775388717651,0.2901374697685242 +135,0.2534778714179993,0,-0.9890425801277161,0.2878887057304382 +136,0.2510456144809723,0,-0.9772844314575195,0.2852526903152466 +137,0.248374342918396,0,-0.9643944501876831,0.2822330594062805 +138,0.2454761266708374,0,-0.9503575563430786,0.2788337469100952 +139,0.2423638850450516,0,-0.935164213180542,0.2750624120235443 +140,0.2390469908714294,0,-0.9187939167022705,0.2709275186061859 +141,0.2355368733406067,0,-0.9012311697006226,0.2664426565170288 +142,0.2318426966667175,0,-0.8824542760848999,0.2616241574287415 +143,0.2279743701219559,0,-0.8624395132064819,0.2564923763275146 +144,0.2239393889904022,0,-0.8411567807197571,0.2510729730129242 +145,0.2197456955909729,0,-0.8185659646987915,0.2453947961330414 +146,0.2154000997543335,0,-0.7946215867996216,0.2394919842481613 +147,0.2109087407588959,0,-0.7692663669586182,0.2334026098251343 +148,0.2062737047672272,0,-0.7424334287643433,0.2271679192781448 +149,0.2014985531568527,0,-0.7140457630157471,0.2208321988582611 +150,0.1965793818235397,0,-0.684015154838562,0.2144405543804169 +151,0.1915092915296555,0,-0.652238130569458,0.2080385237932205 +152,0.1862786710262299,0,-0.6185897588729858,0.2016685903072357 +153,0.1808791160583496,0,-0.5829029083251953,0.1953651010990143 +154,0.1753208637237549,0,-0.5449654459953308,0.1891463249921799 +155,0.1696575284004211,0,-0.5044965744018555,0.1829914003610611 +156,0.164023756980896,0,-0.4611752927303314,0.1767998933792114 +157,0.1586466431617737,0,-0.4146146774291992,0.1702978163957596 +158,0.1537488102912903,0,-0.3640730381011963,0.1628679037094116 +159,0.149303063750267,0,-0.3073891699314117,0.1532911211252213 +160,0.145363837480545,0,-0.2405771613121033,0.1399101912975311 +161,0.1447839289903641,0,-0.1758945882320404,0.1254313141107559 +162,0.145668238401413,0,-0.1653205752372742,0.1206918805837631 +163,0.1360680311918259,0,-0.1707908809185028,0.1162288635969162 +164,0.1227135732769966,0,-0.1334936022758484,0.1037235856056213 +165,0.110885925590992,0,-0.07085146009922028,0.08915518224239349 +166,0.1007897853851318,0,-0.02322930097579956,0.07676845788955688 +167,0.09344454854726791,0,0.004117056727409363,0.06666719913482666 +168,0.08752821385860443,0,0.01446978747844696,0.05996176600456238 +169,0.08237814158201218,0,0.01986883580684662,0.05518124252557755 +170,0.07797174155712128,0,0.03023760393261909,0.05035645887255669 +171,0.07453349977731705,0,0.04423488676548004,0.04532891511917114 +172,0.07221167534589767,0,0.05984969064593315,0.04025480523705482 +173,0.07088497281074524,0,0.08217496424913406,0.03389584273099899 +174,0.06946276128292084,0,0.1118323504924774,0.0245644822716713 +175,0.06784637272357941,0,0.122931107878685,0.01315476559102535 +176,0.07007110118865967,0,0.07257743924856186,0.006298026535660028 +177,0.06877447664737701,0,-0.04185532033443451,0.009335801005363464 +178,0.05881167948246002,0,-0.1500683724880219,0.0126204788684845 +179,0.05193115398287773,0,-0.2136155664920807,0.01377640664577484 +180,0.04676977545022964,0,-0.2656323909759521,0.01289893127977848 diff --git a/docs/Project.toml b/docs/Project.toml index 2039ea48..d7d84381 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -2,6 +2,7 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" LiveServer = "16fef848-5104-11e9-1b77-fb7a48bbb589" Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +MakieControlPlots = "6d616b69-6563-4f6e-8472-6f6c706c6f74" VortexStepMethod = "ed3cd733-9f0f-46a9-93e0-89b8d4998dd9" [sources] diff --git a/docs/make.jl b/docs/make.jl index c173b484..5d8221a1 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,4 +1,5 @@ using Makie +using MakieControlPlots using VortexStepMethod using Documenter diff --git a/docs/src/examples.md b/docs/src/examples.md index 36555701..5c7cf7ea 100644 --- a/docs/src/examples.md +++ b/docs/src/examples.md @@ -132,12 +132,6 @@ more examples by typing: julia> include("examples/menu.jl") ``` -or, you prefer to use the ControlPlots library: - -```julia -julia> include("examples_cp/menu_cp.jl") -``` - You should see the following menu: ```text @@ -161,7 +155,13 @@ Press `` to run the selected example. ## Plotting Backends -The examples in this package support three plotting backends. Here is a comparison to help you choose: +The examples use two Makie backends — `GLMakie` (interactive) and `CairoMakie` +(headless / vector output). For a +[ControlPlots](https://github.com/aenarete/ControlPlots.jl)-style plotting API on +top of Makie, the examples also load +[`MakieControlPlots`](https://github.com/OpenSourceAWE/MakieControlPlots.jl), +which provides `plot`, `plotx`, and `plotxy` helpers. Here is a comparison to +help you choose a backend: ### GLMakie **Advantages:** @@ -172,7 +172,6 @@ The examples in this package support three plotting backends. Here is a comparis **Disadvantages:** - Requires a display server (does not work in headless/server environments without a virtual framebuffer). - Heavier dependency: needs OpenGL drivers and a GPU. -- Longer initial load time compared to ControlPlots ### CairoMakie **Advantages:** @@ -183,29 +182,14 @@ The examples in this package support three plotting backends. Here is a comparis - Plots are static — no interactive zoom or pan. - Slower for very large or complex scenes because rendering is done in software. - 3D support is limited compared to GLMakie. -- Longer initial load time compared to ControlPlots -### ControlPlots (based on PyPlot / Matplotlib) -**Advantages:** -- Simple API, easy to learn for students -- In addition, the Matplotlib API for users coming from Python/Matplotlib is supported. -- Works in headless environments; can save to PNG, SVG, PDF, etc. -- Very lightweight Julia-side dependency (delegates work to Python). - -**Disadvantages:** -- Requires a working Python installation with Matplotlib (via `PyCall`). -- Might crash when multithreading is enabled. Start Julia with `-t 1,0` to avoid problems. -- No native Makie ecosystem integration (e.g. cannot use `Makie.Observable` for live updates). -- Interactivity is limited and depends on the Matplotlib backend in use. -- Extra setup complexity when Python or Matplotlib are not already installed. - -| Feature | GLMakie | CairoMakie | ControlPlots | -|---|---|---|---| -| Interactive (zoom/pan) | yes | no | yes | -| Headless / server | no* | yes | yes | -| Vector output (PDF/SVG) | no | yes | yes | -| GPU required | yes | no | no | -| 3D support | full | limited | limited | -| Load time | slow | medium | fast | +| Feature | GLMakie | CairoMakie | +|---|---|---| +| Interactive (zoom/pan) | yes | no | +| Headless / server | no* | yes | +| Vector output (PDF/SVG) | no | yes | +| GPU required | yes | no | +| 3D support | full | limited | +| Load time | slow | medium | \* GLMakie can run headless with a virtual framebuffer (e.g. `Xvfb`), but this requires additional setup. \ No newline at end of file diff --git a/docs/src/functions.md b/docs/src/functions.md index 9643987c..58c97115 100644 --- a/docs/src/functions.md +++ b/docs/src/functions.md @@ -8,6 +8,11 @@ refine! calculate_span calculate_projected_area load_polar_data +obj_to_yaml +fit_kulfan_parameters +KulfanFitMethod +LeastSquaresFit +EnvelopeFit ``` ## Setting the inflow conditions and solving @@ -21,13 +26,16 @@ calculate_results ``` ## Main Plotting Functions -The plotting functions are implemented as [package extensions](https://pkgdocs.julialang.org/v1.11/creating-packages/#Conditional-loading-of-code-in-packages-(Extensions)). They are available when `GLMakie` (or `ControlPlots`) is loaded before `VortexStepMethod`. The examples use `GLMakie`. +The plotting functions are implemented as [package extensions](https://pkgdocs.julialang.org/v1.11/creating-packages/#Conditional-loading-of-code-in-packages-(Extensions)). They are available when a Makie backend (`GLMakie` or `CairoMakie`) and `MakieControlPlots` are loaded before `VortexStepMethod`. The examples use `GLMakie`. ```@docs plot_geometry plot_distribution plot_polars plot_polar_data plot_combined_analysis +plot_airfoil_slices +plot_airfoils +plot_section_polars ``` ## Helper Functions diff --git a/docs/src/index.md b/docs/src/index.md index 8ef6e3d4..b5f0aa55 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -82,12 +82,6 @@ Then you can display a menu with the available examples using the GLMakie librar menu() ``` -or using the ControlPlots library (faster time-to-first-plot): - -```julia -menu_cp() -``` - To browse the code, it is suggested to use [VSCode](https://code.visualstudio.com/) with the Julia plugin. diff --git a/docs/src/types.md b/docs/src/types.md index 9548a7d4..6fbbd119 100644 --- a/docs/src/types.md +++ b/docs/src/types.md @@ -7,6 +7,7 @@ Model WingType AeroModel PanelDistribution +PanelGroupingMethod InitialGammaDistribution SolverType SolverStatus diff --git a/examples/Project.toml b/examples/Project.toml index e4e6ad0f..d5c71d51 100644 --- a/examples/Project.toml +++ b/examples/Project.toml @@ -1,11 +1,14 @@ [deps] +BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" +Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +MakieControlPlots = "6d616b69-6563-4f6e-8472-6f6c706c6f74" REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" VortexStepMethod = "ed3cd733-9f0f-46a9-93e0-89b8d4998dd9" diff --git a/examples/V3_kite.jl b/examples/V3_kite.jl index 7e4caea5..da5d4875 100644 --- a/examples/V3_kite.jl +++ b/examples/V3_kite.jl @@ -1,3 +1,7 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end using LinearAlgebra using VortexStepMethod @@ -219,4 +223,4 @@ PLOT && plot_polars( use_tex=USE_TEX ) -nothing +nothing \ No newline at end of file diff --git a/examples/V3_neuralfoil.jl b/examples/V3_neuralfoil.jl new file mode 100644 index 00000000..c7342206 --- /dev/null +++ b/examples/V3_neuralfoil.jl @@ -0,0 +1,127 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end +using GLMakie +using MakieControlPlots +using VortexStepMethod +using LinearAlgebra + +# Configuration +OBJ_PATH = joinpath("data", "TUDELFT_V3_KITE", "V3_25.obj") +POLARS_DIR = joinpath("data", "TUDELFT_V3_KITE", "polars_neuralfoil") +N_SLICES = 19 # Match number of CFD polars +RE = 1e6 + +# Generate NeuralFoil polars if they don't exist +if !isdir(POLARS_DIR) || length(readdir(POLARS_DIR)) < N_SLICES + println("Generating NeuralFoil polars from OBJ mesh...") + + # Plot airfoil slices to verify + fig_slices = plot_airfoil_slices(OBJ_PATH; n_slices=N_SLICES, is_show=false) + save("V3_slices.png", fig_slices) + println("Saved V3_slices.png") + + generate_neuralfoil_polars( + OBJ_PATH, + POLARS_DIR; + n_slices=N_SLICES, + Re=RE, + verbose=true + ) +end + +# Flight conditions +v_a = 10.0 +angle_range = range(-5, 25, length=31) + +# Load settings and create wing with CFD polars +println("\nCreating wing with CFD polars...") +settings_cfd = VSMSettings("TUDELFT_V3_KITE/vsm_settings.yaml") +wing_cfd = Wing(settings_cfd) +refine!(wing_cfd) +body_cfd = BodyAerodynamics([wing_cfd]) +VortexStepMethod.reinit!(body_cfd) +solver_cfd = Solver(body_cfd, settings_cfd) + +# Create modified settings for NeuralFoil polars +println("Creating wing with NeuralFoil polars...") + +# Read and modify the YAML to use neuralfoil polars +using YAML +yaml_path = joinpath("data", "TUDELFT_V3_KITE", "aero_geometry.yaml") +geom = YAML.load_file(yaml_path) + +# Update airfoil entries to use neuralfoil polars +for (i, airfoil) in enumerate(geom["wing_airfoils"]["data"]) + airfoil[2] = "polars" + airfoil[3] = Dict("csv_file_path" => "polars_neuralfoil/$i.csv") +end + +# Write temporary modified geometry +temp_yaml = joinpath("data", "TUDELFT_V3_KITE", "aero_geometry_neuralfoil.yaml") +YAML.write_file(temp_yaml, geom) + +# Create settings pointing to modified geometry +settings_nf = VSMSettings("TUDELFT_V3_KITE/vsm_settings.yaml") +# Manually update the geometry file reference in the wing +wing_nf = Wing(settings_nf) +# Replace sections with NeuralFoil polars +for (i, section) in enumerate(wing_nf.unrefined_sections) + polar_path = joinpath(POLARS_DIR, "$i.csv") + if isfile(polar_path) + aero_data, _ = load_polar_data(polar_path) + wing_nf.unrefined_sections[i] = Section( + section.LE_point, section.TE_point, POLAR_VECTORS, aero_data + ) + end +end +refine!(wing_nf) +body_nf = BodyAerodynamics([wing_nf]) +VortexStepMethod.reinit!(body_nf) +solver_nf = Solver(body_nf, settings_nf) + +# Compute polars +function compute_polar(solver, body_aero, angle_range; v_a=10.0) + cl = zeros(length(angle_range)) + cd = zeros(length(angle_range)) + + for (i, aoa_deg) in enumerate(angle_range) + α = deg2rad(aoa_deg) + vel = [cos(α), 0.0, sin(α)] * v_a + set_va!(body_aero, vel) + results = VortexStepMethod.solve(solver, body_aero; log=false) + cl[i] = results["cl"] + cd[i] = results["cd"] + end + return cl, cd +end + +println("\nComputing CFD polar...") +cl_cfd, cd_cfd = compute_polar(solver_cfd, body_cfd, angle_range; v_a) + +println("Computing NeuralFoil polar...") +cl_nf, cd_nf = compute_polar(solver_nf, body_nf, angle_range; v_a) + +# Plot comparison +fig = Figure(size=(1200, 500)) + +ax1 = Axis(fig[1, 1]; xlabel="α [°]", ylabel="CL [-]", title="Lift Coefficient") +lines!(ax1, collect(angle_range), cl_cfd; label="CFD polars", linewidth=2) +lines!(ax1, collect(angle_range), cl_nf; label="NeuralFoil polars", linewidth=2) +axislegend(ax1; position=:rb) + +ax2 = Axis(fig[1, 2]; xlabel="α [°]", ylabel="CD [-]", title="Drag Coefficient") +lines!(ax2, collect(angle_range), cd_cfd; label="CFD polars", linewidth=2) +lines!(ax2, collect(angle_range), cd_nf; label="NeuralFoil polars", linewidth=2) +axislegend(ax2; position=:lt) + +ax3 = Axis(fig[1, 3]; xlabel="CD [-]", ylabel="CL [-]", title="Drag Polar") +lines!(ax3, cd_cfd, cl_cfd; label="CFD polars", linewidth=2) +lines!(ax3, cd_nf, cl_nf; label="NeuralFoil polars", linewidth=2) +axislegend(ax3; position=:rb) + +Label(fig[0, :], "TU Delft V3 Kite: CFD vs NeuralFoil (v=$v_a m/s, Re=$RE)"; fontsize=20) + +display(fig) +nothing \ No newline at end of file diff --git a/examples/bench.jl b/examples/bench.jl index 227e7c2f..ff69617f 100644 --- a/examples/bench.jl +++ b/examples/bench.jl @@ -1,3 +1,7 @@ +using Pkg +if Base.active_project() != joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end using LinearAlgebra using VortexStepMethod using VortexStepMethod: solve_base! diff --git a/examples/billowing.jl b/examples/billowing.jl index abb27b27..46e434e3 100644 --- a/examples/billowing.jl +++ b/examples/billowing.jl @@ -1,3 +1,7 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end using LinearAlgebra using VortexStepMethod @@ -180,4 +184,4 @@ if PLOT ) end -nothing +nothing \ No newline at end of file diff --git a/examples/cleanup.jl b/examples/cleanup.jl index 6742117b..86923bd7 100644 --- a/examples/cleanup.jl +++ b/examples/cleanup.jl @@ -1,3 +1,7 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end # Delete the generated polars. # Useful if you want to benchmark the polar generation or if you have changed parameters. @@ -6,4 +10,4 @@ file2="data/ram_air_kite/ram_air_kite_foil_cd_polar.csv" file3="data/ram_air_kite/ram_air_kite_foil_cm_polar.csv" isfile(file1) && rm(file1) isfile(file2) && rm(file2) -isfile(file3) && rm(file3) +isfile(file3) && rm(file3) \ No newline at end of file diff --git a/examples/linearize_check.jl b/examples/linearize_check.jl index 57023755..d398a020 100644 --- a/examples/linearize_check.jl +++ b/examples/linearize_check.jl @@ -4,6 +4,7 @@ if Base.active_project() != joinpath(@__DIR__, "Project.toml") end using GLMakie +using MakieControlPlots using DifferentiationInterface using LinearAlgebra using VortexStepMethod diff --git a/examples/menu.jl b/examples/menu.jl index 41755fbd..9714dbed 100644 --- a/examples/menu.jl +++ b/examples/menu.jl @@ -3,11 +3,10 @@ Pkg.activate(@__DIR__) using GLMakie using CairoMakie +using MakieControlPlots using VortexStepMethod using REPL.TerminalMenus -set_plot_backend!(MakieBackend()) - url = "https://opensourceawe.github.io/VortexStepMethod.jl/dev" example_files = [ @@ -16,6 +15,7 @@ example_files = [ "pyramid_model.jl", "rectangular_wing.jl", "ram_air_kite.jl", + "obj_to_yaml_kite.jl", "stall_model.jl", "bench.jl", "linearize_check.jl", diff --git a/examples/neuralfoil_benchmark.jl b/examples/neuralfoil_benchmark.jl new file mode 100644 index 00000000..a16450a7 --- /dev/null +++ b/examples/neuralfoil_benchmark.jl @@ -0,0 +1,93 @@ +""" +Benchmark comparing NeuralFoil neural-network evaluation against polar +interpolation evaluation. + +The NeuralFoil timing mirrors the methodology of the upstream Python NeuralFoil +speed benchmark (https://github.com/peterdsharpe/NeuralFoil): a single-case run +and a vectorized batch of 100_000 cases, reported per model size. The +interpolation timing evaluates the linear `Interpolations.jl` lookups that the +VSM solver actually uses at runtime (built exactly as in `panel.jl`). +""" + +using Pkg +if Base.active_project() != joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end +using VortexStepMethod +using VortexStepMethod: load_neuralfoil_model, neuralfoil_aero, fit_kulfan_parameters, + prepare_inputs, nn_forward +using BenchmarkTools +using Interpolations +using Printf +using Statistics: mean + +read_dat(path) = begin + x = Float64[] + y = Float64[] + for line in eachline(path) + s = strip(line) + (isempty(s) || !(isdigit(s[1]) || s[1] == '-' || s[1] == '.')) && continue + parts = split(s) + length(parts) >= 2 || continue + push!(x, parse(Float64, parts[1])) + push!(y, parse(Float64, parts[2])) + end + return x, y +end + +n_batch = 100_000 +reynolds = 5e5 +model_sizes = ["xsmall", "small", "medium", "large", "xlarge"] + +dat_path = joinpath(@__DIR__, "..", "data", "ram_air_kite", "ram_air_kite_foil.dat") +xc, yc = read_dat(dat_path) +params = fit_kulfan_parameters(xc, yc) + +println("Airfoil: $(basename(dat_path)), Re = $(reynolds), batch = $(n_batch)\n") + +alpha_single = 5.0 +alpha_batch = collect(range(-10.0, 20.0, n_batch)) + +println("=== NeuralFoil (CL, CD, CM per case) ===") +@printf("%-9s %14s %16s %14s\n", "model", "single [ms]", "batch 100k [s]", "per-run [µs]") +for ms in model_sizes + load_neuralfoil_model(ms) + t_single = @belapsed neuralfoil_aero($params, $alpha_single, $reynolds; model_size=$ms) + t_batch = @belapsed neuralfoil_aero($params, $alpha_batch, $reynolds; model_size=$ms) + @printf("%-9s %14.3f %16.3f %14.3f\n", + ms, t_single * 1e3, t_batch, t_batch / n_batch * 1e6) +end + +println("\n=== Polar interpolation (Interpolations.jl linear lookup) ===") +nf = neuralfoil_aero(params, collect(-180.0:1.0:180.0), reynolds; model_size="xlarge") +alphas_rad = deg2rad.(nf.alpha) +extrap_flat = Interpolations.Flat() +extrap_line = Interpolations.Line() +cl_interp = linear_interpolation(alphas_rad, nf.CL; extrapolation_bc=extrap_flat) +cd_interp = linear_interpolation(alphas_rad, nf.CD; extrapolation_bc=extrap_line) +cm_interp = linear_interpolation(alphas_rad, nf.CM; extrapolation_bc=extrap_flat) + +eval_interp(a) = (cl_interp(a), cd_interp(a), cm_interp(a)) +function eval_interp_batch(as) + s = 0.0 + for a in as + cl, cd, cm = eval_interp(a) + s += cl + cd + cm + end + return s +end + +alpha_single_rad = deg2rad(alpha_single) +alpha_batch_rad = deg2rad.(alpha_batch) + +t_single = @belapsed eval_interp($alpha_single_rad) +t_batch = @belapsed eval_interp_batch($alpha_batch_rad) +@printf("%-9s %14s %16s %14s\n", "", "single [ns]", "batch 100k [ms]", "per-run [ns]") +@printf("%-9s %14.1f %16.3f %14.1f\n", + "linear", t_single * 1e9, t_batch * 1e3, t_batch / n_batch * 1e9) + +println("\n=== Speed ratio (NeuralFoil xlarge / interpolation, single case) ===") +t_nf = @belapsed neuralfoil_aero($params, $alpha_single, $reynolds; model_size="xlarge") +@printf("NeuralFoil is ~%.0fx slower per single evaluation than linear interpolation\n", + t_nf / t_single) +nothing diff --git a/examples/neuralfoil_polars.jl b/examples/neuralfoil_polars.jl new file mode 100644 index 00000000..8163560e --- /dev/null +++ b/examples/neuralfoil_polars.jl @@ -0,0 +1,31 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end +using GLMakie +using MakieControlPlots +using VortexStepMethod + +# Configuration +OBJ_PATH = joinpath("data", "ram_air_kite", "ram_air_kite_body.obj") +OUTPUT_DIR = joinpath("data", "ram_air_kite", "polars_neuralfoil") +N_SLICES = 10 +RE = 1e6 # Reynolds number + +# Plot airfoil slices with Kulfan CST fits +println("Plotting airfoil slices from OBJ mesh...") +fig = plot_airfoil_slices(OBJ_PATH; n_slices=N_SLICES) +display(fig) + +# Generate polars using NeuralFoil (default alpha_range is -180:1:180) +println("\nGenerating NeuralFoil polars...") +generate_neuralfoil_polars( + OBJ_PATH, + OUTPUT_DIR; + n_slices=N_SLICES, + Re=RE, + verbose=true +) + +println("\nPolars written to: $OUTPUT_DIR") +nothing \ No newline at end of file diff --git a/examples/obj_to_yaml_kite.jl b/examples/obj_to_yaml_kite.jl new file mode 100644 index 00000000..5d3c5478 --- /dev/null +++ b/examples/obj_to_yaml_kite.jl @@ -0,0 +1,59 @@ +""" +Convert a 3D wing `.obj` mesh to the native YAML geometry route with the +NeuralFoil adapter, then load and solve it like any other YAML wing. + +The adapter slices the mesh, fits each section to Kulfan parameters, evaluates +NeuralFoil, and writes `airfoils/*.dat`, `polars/*.csv`, and a `geometry.yaml`. + +This example fits each section with `EnvelopeFit`, which wraps tightly around the +slice points with clearance `min_distance` instead of least-squaring through +them. The envelope is robust to the noisy interior-structure points (ribs, spars) +of a ram-air kite slice that otherwise pull the default `LeastSquaresFit` inward. +""" + +using Pkg +if Base.active_project() != joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end +using GLMakie +using VortexStepMethod +using LinearAlgebra + +PLOT = true +USE_TEX = false +v_a = 15.0 +project_dir = dirname(@__DIR__) +obj_path = joinpath(project_dir, "data", "ram_air_kite", "ram_air_kite_body.obj") +output_dir = joinpath(project_dir, "output", "ram_air_kite_converted") + +# --- Convert the .obj mesh to the YAML route --- +println("Converting $(basename(obj_path)) to YAML...") +geometry_file = obj_to_yaml(obj_path, output_dir; + n_sections=10, Re=5e5, alpha_range=-20:1:20, model_size="xlarge", + fit_method=EnvelopeFit(min_distance=0.0001)) + +# --- Everything below is the standard YAML wing route --- +wing = Wing(geometry_file; n_panels=20, spanwise_distribution=LINEAR) +refine!(wing) +body_aero = BodyAerodynamics([wing]) +VortexStepMethod.reinit!(body_aero) + +solver = Solver(body_aero; aerodynamic_model_type=VSM, rtol=1e-5, solver_type=NONLIN) +set_va!(body_aero, [cos(deg2rad(8)) * v_a, 0.0, sin(deg2rad(8)) * v_a]) +results = VortexStepMethod.solve(solver, body_aero; log=true) + +if PLOT + plot_geometry(body_aero, "Ram air kite (converted from .obj)"; is_show=true, + view_elevation=15, view_azimuth=-120, use_tex=USE_TEX) + + # Airfoils and per-section polars recovered from the converted geometry + plot_airfoils(geometry_file; is_show=true) + plot_section_polars(body_aero, :cl; is_show=true) + plot_section_polars(body_aero, :cd; is_show=true) + + plot_polars([solver], [body_aero], ["VSM (NeuralFoil polars from .obj)"]; + angle_range=range(-5, 20, length=26), v_a=v_a, + title="Ram air kite: obj_to_yaml route", is_save=false, use_tex=USE_TEX) +end + +nothing diff --git a/examples/pyramid_model.jl b/examples/pyramid_model.jl index cb8ee74e..a23ccae9 100644 --- a/examples/pyramid_model.jl +++ b/examples/pyramid_model.jl @@ -1,3 +1,7 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end using LinearAlgebra using VortexStepMethod @@ -71,4 +75,4 @@ PLOT && plot_distribution( use_tex=USE_TEX ) -nothing +nothing \ No newline at end of file diff --git a/examples/ram_air_kite.jl b/examples/ram_air_kite.jl index 8deb6973..5ffa7d9b 100644 --- a/examples/ram_air_kite.jl +++ b/examples/ram_air_kite.jl @@ -1,123 +1,55 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end +using GLMakie +using MakieControlPlots using VortexStepMethod using LinearAlgebra PLOT = true -PRN = true -SAVE_ALL = false +PRN = false USE_TEX = false DEFORM = true -LINEARIZE = false -OUTPUT_DIR = joinpath(dirname(@__DIR__), "output") +v_a = 15.0 -# Create wing geometry -wing = ObjWing( +# Create wing with XFoil polars +println("Creating XFoil wing...") +wing_xfoil = ObjWing( joinpath("data", "ram_air_kite", "ram_air_kite_body.obj"), joinpath("data", "ram_air_kite", "ram_air_kite_foil.dat"); - n_unrefined_sections=2, + n_unrefined_sections=10, prn=PRN ) -body_aero = BodyAerodynamics([wing];) -println("First init") -@time VortexStepMethod.reinit!(body_aero) +body_xfoil = BodyAerodynamics([wing_xfoil]) +VortexStepMethod.reinit!(body_xfoil) +solver_xfoil = Solver(body_xfoil; aerodynamic_model_type=VSM, rtol=1e-5, solver_type=NONLIN) -if DEFORM - # Linear interpolation of alpha from 10° at one tip to 0° at the other - println("Deform") - @time VortexStepMethod.unrefined_deform!( - wing, deg2rad.([-10,0]), deg2rad.([0,0]); smooth=true) - println("Deform init") - @time VortexStepMethod.reinit!(body_aero; init_aero=false) -end - -# Create solvers -solver = Solver(body_aero; - aerodynamic_model_type=VSM, - is_with_artificial_damping=false, - rtol=1e-5, - solver_type=NONLIN +# Create wing with NeuralFoil polars +println("Creating NeuralFoil wing...") +wing_nf = ObjWing( + joinpath("data", "ram_air_kite", "ram_air_kite_body.obj"), + joinpath("data", "ram_air_kite", "ram_air_kite_foil.dat"); + n_unrefined_sections=10, + polars_dir=joinpath("data", "ram_air_kite", "polars_neuralfoil"), + prn=PRN ) - -# Setting velocity conditions -v_a = 15.0 -aoa = 10.0 -side_slip = 0.0 -yaw_rate = 0.0 -aoa_rad = deg2rad(aoa) -vel_app = [ - cos(aoa_rad) * cos(side_slip), - sin(side_slip), - sin(aoa_rad) -] * v_a -set_va!(body_aero, vel_app) - -if LINEARIZE - println("Linearize") - jac, res = VortexStepMethod.linearize( - solver, - body_aero, - [zeros(4); vel_app; zeros(3)]; - theta_idxs=1:4, - va_idxs=5:7, - omega_idxs=8:10, - moment_frac=0.1) - @time jac, res = VortexStepMethod.linearize( - solver, - body_aero, - [zeros(4); vel_app; zeros(3)]; - theta_idxs=1:4, - va_idxs=5:7, - omega_idxs=8:10, - moment_frac=0.1) +body_nf = BodyAerodynamics([wing_nf]) +VortexStepMethod.reinit!(body_nf) +solver_nf = Solver(body_nf; aerodynamic_model_type=VSM, rtol=1e-5, solver_type=NONLIN) + +# Compare using plot_polars +if PLOT + println("Computing and plotting polars...") + plot_polars( + [solver_xfoil, solver_nf], + [body_xfoil, body_nf], + ["XFoil", "NeuralFoil"]; + angle_range=range(-5, 25, length=31), + v_a=v_a, + title="Ram Air Kite: XFoil vs NeuralFoil", + is_save=false, + use_tex=USE_TEX + ) end - -# Plotting polar data -PLOT && plot_polar_data(body_aero) - -# Plotting geometry -PLOT && plot_geometry( - body_aero, - "Ram air kite geometry"; - save_path=OUTPUT_DIR, - is_save=false || SAVE_ALL, - is_show=true, - view_elevation=15, - view_azimuth=-120, - use_tex=USE_TEX -) - -# Solving and plotting distributions -println("Solve") -results = VortexStepMethod.solve(solver, body_aero; log=true) -@time VortexStepMethod.solve(solver, body_aero; log=true) - -body_y_coordinates = [panel.aero_center[2] for panel in body_aero.panels] - -PLOT && plot_distribution( - [body_y_coordinates], - [results], - ["VSM"]; - title="CAD_spanwise_distributions_alpha_$(round(aoa, digits=1))_delta_$(round(side_slip, digits=1))_yaw_$(round(yaw_rate, digits=1))_v_a_$(round(v_a, digits=1))", - save_path=OUTPUT_DIR, - is_save=false || SAVE_ALL, - is_show=true, - use_tex=USE_TEX -) - -PLOT && plot_polars( - [solver], - [body_aero], - [ - "VSM from Ram Air Kite OBJ and DAT file", - ]; - angle_range=range(0, 20, length=20), - angle_type="angle_of_attack", - angle_of_attack=0, - side_slip=0, - v_a=10, - title="ram_kite_panels_$(wing.n_panels)_distribution_$(wing.spanwise_distribution)", - save_path=OUTPUT_DIR, - is_save=false || SAVE_ALL, - is_show=true, - use_tex=USE_TEX -) -nothing +nothing \ No newline at end of file diff --git a/examples/rectangular_wing.jl b/examples/rectangular_wing.jl index b576b026..ca6228e3 100644 --- a/examples/rectangular_wing.jl +++ b/examples/rectangular_wing.jl @@ -1,3 +1,7 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end using LinearAlgebra using VortexStepMethod @@ -94,4 +98,4 @@ PLOT && plot_polars( is_save=false || SAVE_ALL, use_tex=USE_TEX ) -nothing +nothing \ No newline at end of file diff --git a/examples/show_slices.jl b/examples/show_slices.jl new file mode 100644 index 00000000..8c1cefe3 --- /dev/null +++ b/examples/show_slices.jl @@ -0,0 +1,16 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end +using GLMakie +using MakieControlPlots +using VortexStepMethod + +# Change this to the OBJ file you want to slice +OBJ_PATH = joinpath("data", "TUDELFT_V3_KITE", "V3_25.obj") +# OBJ_PATH = joinpath("data", "ram_air_kite", "ram_air_kite_body.obj") + +N_SLICES = 10 + +println("Slicing: $OBJ_PATH") +fig = plot_airfoil_slices(OBJ_PATH; n_slices=N_SLICES) \ No newline at end of file diff --git a/examples/stall_model.jl b/examples/stall_model.jl index 8b9676e2..1f687ec9 100644 --- a/examples/stall_model.jl +++ b/examples/stall_model.jl @@ -1,3 +1,7 @@ +using Pkg +if Base.active_project() \!= joinpath(@__DIR__, "Project.toml") + Pkg.activate(@__DIR__) +end using LinearAlgebra using VortexStepMethod @@ -130,4 +134,4 @@ PLOT && plot_polars( is_show=true, use_tex=USE_TEX ) -nothing +nothing \ No newline at end of file diff --git a/examples_cp/LocalPreferences.toml.default b/examples_cp/LocalPreferences.toml.default deleted file mode 100644 index 99b6cf42..00000000 --- a/examples_cp/LocalPreferences.toml.default +++ /dev/null @@ -1,5 +0,0 @@ -[CondaPkg] -backend = "Null" - -[ENV] -MPLBACKEND = "qtagg" diff --git a/examples_cp/Project.toml b/examples_cp/Project.toml deleted file mode 100644 index c1d68765..00000000 --- a/examples_cp/Project.toml +++ /dev/null @@ -1,11 +0,0 @@ -[deps] -CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -ControlPlots = "23c2ee80-7a9e-4350-b264-8e670f12517c" -DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" -LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" -VortexStepMethod = "ed3cd733-9f0f-46a9-93e0-89b8d4998dd9" - -[sources] -VortexStepMethod = {path = ".."} diff --git a/examples_cp/menu_cp.jl b/examples_cp/menu_cp.jl deleted file mode 100644 index 401d845a..00000000 --- a/examples_cp/menu_cp.jl +++ /dev/null @@ -1,75 +0,0 @@ -using Pkg -if !("ControlPlots" ∈ keys(Pkg.project().dependencies)) - Pkg.activate(@__DIR__) -end - -using ControlPlots -using VortexStepMethod -using REPL.TerminalMenus - -set_plot_backend!(ControlPlotsBackend()) - -url = "https://opensourceawe.github.io/VortexStepMethod.jl/dev" - -examples_dir = joinpath(@__DIR__, "..", "examples") - -example_files = [ - "V3_kite.jl", - "billowing.jl", - "pyramid_model.jl", - "rectangular_wing.jl", - "ram_air_kite.jl", - "stall_model.jl", - "bench.jl", - "cleanup.jl", -] - -function run_all() - failed_examples = String[] - for f in example_files - f == "cleanup.jl" && continue - println("\n" * "="^60) - println("Running: $f") - println("="^60) - try - include(joinpath(examples_dir, f)) - catch e - @error "Failed: $f" exception=(e, catch_backtrace()) - push!(failed_examples, f) - end - end - if isempty(failed_examples) - println("\nAll examples completed.") - else - failed_list = join(failed_examples, ", ") - throw(ErrorException("run_all failed for $(length(failed_examples)) example(s): $failed_list")) - end -end - -function example_menu() - options = [ - [("$(splitext(f)[1]) = include(\"../examples/$f\")") - for f in example_files]; - "help_me = VortexStepMethod.help(\"$url\")"; - "quit" - ] - active = true - while active - menu = RadioMenu(options, pagesize=8) - choice = request( - "\nChoose function to execute or `q` to quit: ", - menu) - if choice != -1 && choice != length(options) - eval(Meta.parse(options[choice])) - else - println("Left menu. Press to quit Julia!") - active = false - end - end -end - -if "--run-all" in ARGS - run_all() -else - example_menu() -end diff --git a/ext/VortexStepMethodControlPlotsExt.jl b/ext/VortexStepMethodControlPlotsExt.jl deleted file mode 100644 index dba0be96..00000000 --- a/ext/VortexStepMethodControlPlotsExt.jl +++ /dev/null @@ -1,943 +0,0 @@ -module VortexStepMethodControlPlotsExt -using ControlPlots, LaTeXStrings, VortexStepMethod, LinearAlgebra, Statistics, DelimitedFiles -using PythonCall: pyconvert -import ControlPlots: plt -import VortexStepMethod: calculate_filaments_for_plotting - -export plot_wing, plot_circulation_distribution, plot_geometry, plot_distribution, - plot_polars, save_plot, show_plot, plot_polar_data, plot_combined_analysis - -# Set this extension as the active plotting backend when loaded (only if not already set) -function __init__() - isnothing(VortexStepMethod._PLOT_BACKEND[]) && - (VortexStepMethod._PLOT_BACKEND[] = VortexStepMethod.ControlPlotsBackend()) -end - -""" - set_plot_style(titel_size=16; use_tex=false) - -Set the default style for plots using LaTeX. -`` -# Arguments: -- `titel_size`: size of the plot title in points (default: 16) -- `ùse_tex`: if the external `pdflatex` command shall be used -""" -function set_plot_style(titel_size=16; use_tex=false) - rcParams = plt.matplotlib."rcParams" - rcParams["text.usetex"] = use_tex - rcParams["font.family"] = "serif" - if use_tex - rcParams["font.serif"] = ["Computer Modern Roman"] - end - rcParams["axes.titlesize"] = titel_size - rcParams["axes.labelsize"] = 12 - rcParams["axes.linewidth"] = 1 - rcParams["lines.linewidth"] = 1 - rcParams["lines.markersize"] = 6 - rcParams["xtick.labelsize"] = 10 - rcParams["ytick.labelsize"] = 10 - rcParams["legend.fontsize"] = 10 - rcParams["figure.titlesize"] = 16 - if use_tex - rcParams["pgf.texsystem"] = "pdflatex" # Use pdflatex - end - rcParams["pgf.rcfonts"] = false - rcParams["figure.figsize"] = (10, 6) # Default figure size -end - - -""" - save_plot(fig, save_path, title; data_type=".pdf") - -Save a plot to a file. - -# Arguments -- `fig`: Plots figure object -- `save_path`: Path to save the plot -- `title`: Title of the plot - -# Keyword arguments -- `data_type`: File extension (default: ".pdf") -""" -function VortexStepMethod.save_plot(fig, save_path, title; data_type=".pdf") - isnothing(save_path) && throw(ArgumentError("save_path should be provided")) - - !isdir(save_path) && mkpath(save_path) - sanitized_title = replace(replace(String(title), ' ' => '_'), '%' => "pct") - full_path = joinpath(save_path, sanitized_title * data_type) - - @debug "Attempting to save figure to: $full_path" - @debug "Current working directory: $(pwd())" - - try - hasproperty(fig, :savefig) || throw(ArgumentError( - "Figure object of type $(typeof(fig)) does not support savefig()." - )) - getproperty(fig, :savefig)(full_path) - @debug "Figure saved as $data_type" - - if isfile(full_path) - @debug "File successfully saved to $full_path" - @debug "File size: $(filesize(full_path)) bytes" - else - @info "File does not exist after save attempt: $full_path" - end - catch e - @error "Error saving figure: $e" - @error "Error type: $(typeof(e))" - rethrow(e) - end -end - -""" - show_plot(fig::plt.Figure; dpi=130) - -Display a plot at specified DPI. - -# Arguments -- `fig`: Plots figure object - -# Keyword arguments -- `dpi`: Dots per inch for the figure (default: 130) -""" -function VortexStepMethod.show_plot(fig; dpi=130) - isnothing(fig) && throw(MethodError(VortexStepMethod.show_plot, (fig,))) - fig.set_dpi(dpi) - plt.display(fig) -end - -""" - plot_line_segment!(ax, segment, color, label; width=3) - -Plot a line segment in 3D with arrow. - -# Arguments -- `ax`: Plot axis -- `segment`: Array of two points defining the segment -- `color`: Color of the segment -- `label`: Label for the legend - -# Keyword Arguments -- `width`: Line width (default: 3) -""" -function plot_line_segment!(ax, segment, color, label; width=3) - ax.plot( - [segment[1][1], segment[2][1]], - [segment[1][2], segment[2][2]], - [segment[1][3], segment[2][3]], - color=color, label=label, linewidth=width - ) - - dir = segment[2] - segment[1] - ax.quiver( - [segment[1][1]], [segment[1][2]], [segment[1][3]], - [dir[1]], [dir[2]], [dir[3]], - color=color - ) -end - -""" - set_axes_equal!(ax; zoom=1.8) - -Set 3D plot axes to equal scale. - -# Arguments -- ax: 3D plot axis - -# Keyword arguments -zoom: zoom factor (default: 1.8) -""" -function set_axes_equal!(ax; zoom=1.8) - x_lims = pyconvert(Vector{Float64}, ax.get_xlim3d()) ./ zoom - y_lims = pyconvert(Vector{Float64}, ax.get_ylim3d()) ./ zoom - z_lims = pyconvert(Vector{Float64}, ax.get_zlim3d()) ./ zoom - - x_range = abs(x_lims[2] - x_lims[1]) - y_range = abs(y_lims[2] - y_lims[1]) - z_range = abs(z_lims[2] - z_lims[1]) - - max_range = max(x_range, y_range, z_range) - - x_mid = mean(x_lims) - y_mid = mean(y_lims) - z_mid = mean(z_lims) - - ax.set_xlim3d((x_mid - max_range / 2, x_mid + max_range / 2)) - ax.set_ylim3d((y_mid - max_range / 2, y_mid + max_range / 2)) - ax.set_zlim3d((z_mid - max_range / 2, z_mid + max_range / 2)) -end - -""" - create_geometry_plot(body_aero::BodyAerodynamics, title, view_elevation, view_azimuth; - zoom=1.8, use_tex=false) - -Create a 3D plot of wing geometry including panels and filaments. - -# Arguments -- body_aero: struct of type BodyAerodynamics -- title: plot title -- view_elevation: initial view elevation angle [°] -- view_azimuth: initial view azimuth angle [°] - -# Keyword arguments -- zoom: zoom factor (default: 1.8) -""" -function create_geometry_plot(body_aero::BodyAerodynamics, title, view_elevation, view_azimuth; - zoom=1.8, use_tex=false) - set_plot_style(28; use_tex) - - panels = body_aero.panels - isempty(panels) && throw(ArgumentError("Cannot plot geometry: body_aero.panels is empty.")) - - va = if body_aero.has_distributed_va - body_aero._va - else - isa(body_aero.va, Tuple) ? body_aero.va[1] : body_aero.va - end - - # Extract geometric data - control_points = [panel.control_point for panel in panels] - aero_centers = [panel.aero_center for panel in panels] - - # Create plot - fig = plt.figure(figsize=(14, 14)) - ax = fig.add_subplot(111, projection="3d") - ax.set_title(title) - - # Plot panels - legend_used = Dict{String,Bool}() - for (i, panel) in enumerate(panels) - # Plot panel edges and surfaces - corners = Matrix{Float64}(panel.corner_points) - x_corners = corners[1, :] - y_corners = corners[2, :] - z_corners = corners[3, :] - - push!(x_corners, x_corners[1]) - push!(y_corners, y_corners[1]) - push!(z_corners, z_corners[1]) - - ax.plot(x_corners, - y_corners, - z_corners, - color="grey", - linewidth=1, - label=i == 1 ? "Panel Edges" : "") - - # Plot control points and aerodynamic centers - ax.scatter([control_points[i][1]], [control_points[i][2]], [control_points[i][3]], - color="green", label=i == 1 ? "Control Points" : "") - ax.scatter([aero_centers[i][1]], [aero_centers[i][2]], [aero_centers[i][3]], - color="blue", label=i == 1 ? "Aerodynamic Centers" : "") - - # Plot filaments - filaments = calculate_filaments_for_plotting(panel) - legends = ["Bound Vortex", "side1", "side2", "wake_1", "wake_2"] - - for (filament, legend) in zip(filaments, legends) - x1, x2, color = filament - @debug "Legend: $legend" - show_legend = !get(legend_used, legend, false) - plot_line_segment!(ax, [x1, x2], color, show_legend ? legend : "") - legend_used[legend] = true - end - end - - # Plot velocity vector - max_chord = maximum(panel.chord for panel in panels) - va_mag = norm(va) - va_vector_begin = -2 * max_chord * va / va_mag - va_vector_end = va_vector_begin + 1.5 * va / va_mag - plot_line_segment!(ax, [va_vector_begin, va_vector_end], "lightblue", "va") - - # Add legends for the first occurrence of each label - # by_label = Dict(zip(labels, handles)) - # ax.legend(values(by_label), keys(by_label), bbox_to_anchor=(0, 0, 1.1, 1)) - - # Set labels and make axes equal - ax.set_xlabel("x") - ax.set_ylabel("y") - ax.set_zlabel("z") - set_axes_equal!(ax; zoom) - - # Set the initial view - ax.view_init(elev=view_elevation, azim=view_azimuth) - - # Ensure the figure is fully rendered - # fig.canvas.draw() - plt.tight_layout(rect=(0, 0, 1, 0.97)) - - return fig -end - -""" - plot_geometry(body_aero::BodyAerodynamics, title, ::ControlPlotsBackend; - data_type=".pdf", save_path=nothing, - is_save=false, is_show=false, - view_elevation=15, view_azimuth=-120, use_tex=false) - -ControlPlots backend implementation of [`plot_geometry`](@ref). - -# Arguments: -- `body_aero`: the [BodyAerodynamics](@ref) to plot -- `title`: plot title - -# Keyword arguments: -- `data_type``: string with the file type postfix (default: ".pdf") -- `save_path`: path for saving the graphic (default: `nothing`) -- `is_save`: boolean value, indicates if the graphic shall be saved (default: `false`) -- `is_show`: boolean value, indicates if the graphic shall be displayed (default: `false`) -- `view_elevation`: initial view elevation angle in degrees (default: 15) -- `view_azimuth`: initial view azimuth angle in degrees (default: -120) -- `use_tex`: if the external `pdflatex` command shall be used (default: false) - -""" -function VortexStepMethod.plot_geometry(body_aero::BodyAerodynamics, title, - ::VortexStepMethod.ControlPlotsBackend; - data_type=".pdf", - save_path=nothing, - is_save=false, - is_show=false, - view_elevation=15, - view_azimuth=-120, - use_tex=false) - - if is_save - plt.ioff() - # Angled view - fig = create_geometry_plot(body_aero, "$(title)_angled_view", 15, -120; use_tex) - save_plot(fig, save_path, "$(title)_angled_view", data_type=data_type) - - # Top view - fig = create_geometry_plot(body_aero, "$(title)_top_view", 90, 0; use_tex) - save_plot(fig, save_path, "$(title)_top_view", data_type=data_type) - - # Front view - fig = create_geometry_plot(body_aero, "$(title)_front_view", 0, 0; use_tex) - save_plot(fig, save_path, "$(title)_front_view", data_type=data_type) - - # Side view - fig = create_geometry_plot(body_aero, "$(title)_side_view", 0, -90; use_tex) - save_plot(fig, save_path, "$(title)_side_view", data_type=data_type) - end - - if is_show - plt.ion() - fig = create_geometry_plot(body_aero, title, view_elevation, view_azimuth; use_tex) - plt.display(fig) - else - fig = create_geometry_plot(body_aero, title, view_elevation, view_azimuth; use_tex) - end - fig -end - -""" - plot_distribution(y_coordinates_list, results_list, label_list, ::ControlPlotsBackend; - title="spanwise_distribution", data_type=".pdf", - save_path=nothing, is_save=false, is_show=true, use_tex=false) - -ControlPlots backend implementation of [`plot_distribution`](@ref). - -# Arguments -- `y_coordinates_list`: List of spanwise coordinates -- `results_list`: List of result dictionaries -- `label_list`: List of labels for different results - -# Keyword arguments -- `title`: Plot title (default: "spanwise_distribution") -- `data_type`: File extension for saving (default: ".pdf") -- `save_path`: Path to save plots (default: nothing) -- `is_save`: Whether to save plots (default: false) -- `is_show`: Whether to display plots (default: true) -- `use_tex`: if the external `pdflatex` command shall be used -""" -function VortexStepMethod.plot_distribution(y_coordinates_list, results_list, label_list, - ::VortexStepMethod.ControlPlotsBackend; - title="spanwise_distribution", - data_type=".pdf", - save_path=nothing, - is_save=false, - is_show=true, - use_tex=false) - - length(results_list) == length(label_list) || throw(ArgumentError( - "Number of results ($(length(results_list))) must match number of labels ($(length(label_list)))" - )) - - # Set the plot style - set_plot_style(; use_tex) - - # Initializing plot - fig, axs = plt.subplots(3, 3, figsize=(16, 10)) - fig.suptitle(title, fontsize=16) - - # CL plot - for (y_coordinates_i, result_i, label_i) in zip(y_coordinates_list, results_list, label_list) - value = "$(round(result_i["cl"], digits=2))" - if label_i == "LLT" - label = label_i * L" $~C_\mathrm{L}$: " * value - else - label = label_i * L" $C_\mathrm{L}$: " * value - end - axs[0, 0].plot( - y_coordinates_i, - result_i["cl_distribution"], - label=label - ) - end - axs[0, 0].set_title(L"$C_\mathrm{L}$ Distribution", size=16) - axs[0, 0].set_xlabel(L"Spanwise Position $y/b$") - axs[0, 0].set_ylabel(L"Lift Coefficient $C_\mathrm{L}$") - axs[0, 0].legend() - - # CD plot - for (y_coordinates_i, result_i, label_i) in zip(y_coordinates_list, results_list, label_list) - value = "$(round(result_i["cl"], digits=2))" - if label_i == "LLT" - label = label_i * L" $~C_\mathrm{D}$: " * value - else - label = label_i * L" $C_\mathrm{D}$: " * value - end - axs[0, 1].plot( - y_coordinates_i, - result_i["cd_distribution"], - label=label - ) - end - axs[0, 1].set_title(L"$C_\mathrm{D}$ Distribution", size=16) - axs[0, 1].set_xlabel(L"Spanwise Position $y/b$") - axs[0, 1].set_ylabel(L"Drag Coefficient $C_\mathrm{D}$") - axs[0, 1].legend() - - # Gamma Distribution - for (y_coordinates_i, result_i, label_i) in zip(y_coordinates_list, results_list, label_list) - axs[0, 2].plot( - y_coordinates_i, - result_i["gamma_distribution"], - label=label_i - ) - end - axs[0, 2].set_title(L"\Gamma~Distribution", size=16) - axs[0, 2].set_xlabel(L"Spanwise Position $y/b$") - axs[0, 2].set_ylabel(L"Circulation~\Gamma") - axs[0, 2].legend() - - # Geometric Alpha - for (y_coordinates_i, result_i, label_i) in zip(y_coordinates_list, results_list, label_list) - axs[1, 0].plot( - y_coordinates_i, - result_i["alpha_geometric"], - label=label_i - ) - end - axs[1, 0].set_title(L"$\alpha$ Geometric", size=16) - axs[1, 0].set_xlabel(L"Spanwise Position $y/b$") - axs[1, 0].set_ylabel(L"Angle of Attack $\alpha$ (deg)") - axs[1, 0].legend() - - # Calculated/ Corrected Alpha - for (y_coordinates_i, result_i, label_i) in zip(y_coordinates_list, results_list, label_list) - axs[1, 1].plot( - y_coordinates_i, - result_i["alpha_at_ac"], - label=label_i - ) - end - axs[1, 1].set_title(L"$\alpha$ result (corrected to aerodynamic center)", size=16) - axs[1, 1].set_xlabel(L"Spanwise Position $y/b$") - axs[1, 1].set_ylabel(L"Angle of Attack $\alpha$ (deg)") - axs[1, 1].legend() - - # Uncorrected Alpha plot - for (y_coordinates_i, result_i, label_i) in zip(y_coordinates_list, results_list, label_list) - axs[1, 2].plot( - y_coordinates_i, - result_i["alpha_uncorrected"], - label=label_i - ) - end - axs[1, 2].set_title(L"$\alpha$ Uncorrected (if VSM, at the control point)", size=16) - axs[1, 2].set_xlabel(L"Spanwise Position $y/b$") - axs[1, 2].set_ylabel(L"Angle of Attack $\alpha$ (deg)") - axs[1, 2].legend() - - # Force Components - for (idx, component) in enumerate(["x", "y", "z"]) - axs[2, idx-1].set_title("Force in $component direction", size=16) - axs[2, idx-1].set_xlabel(L"Spanwise Position $y/b$") - axs[2, idx-1].set_ylabel(raw"$F_\mathrm" * "{$component}" * raw"$") - for (y_coords, results, label) in zip(y_coordinates_list, results_list, label_list) - # Extract force components for the current direction (idx) - forces = results["F_distribution"][idx, :] - # Verify dimensions match - if length(y_coords) != length(forces) - @warn "Dimension mismatch in force plotting" length(y_coords) length(forces) component - continue # Skip this component instead of throwing error - end - space = "" - if label == "LLT" - space = "~" - end - axs[2, idx-1].plot( - y_coords, - forces, - label="$label" * space * raw"$~\Sigma~F_\mathrm" * "{$component}:~" * - raw"$" * "$(round(results["F$component"], digits=2)) N" - ) - axs[2, idx-1].legend() - end - end - - fig.tight_layout() - - # Save and show plot - if is_save - save_plot(fig, save_path, title, data_type=data_type) - end - - if is_show - show_plot(fig) - end - - return fig -end - -""" - generate_polar_data(solver, body_aero::BodyAerodynamics, angle_range; - angle_type="angle_of_attack", angle_of_attack=0.0, - side_slip=0.0, v_a=10.0, use_latex=false) - -Generate polar data for aerodynamic analysis over a range of angles. - -# Arguments -- `solver`: Aerodynamic solver object -- `body_aero`: Wing aerodynamics struct -- `angle_range`: Range of angles to analyze - -# Keyword arguments -- `angle_type`: Type of angle variation ("angle_of_attack" or "side_slip") -- `angle_of_attack`: Initial angle of attack [°] -- `side_slip`: Initial side slip angle [°] -- `v_a`: Norm of apparent wind speed [m/s] - -# Returns -- Tuple of polar data array and Reynolds number -""" - -""" - plot_polars(solver_list, body_aero_list, label_list, ::ControlPlotsBackend; - literature_path_list=String[], - angle_range=range(0, 20, 2), angle_type="angle_of_attack", - angle_of_attack=0.0, side_slip=0.0, v_a=10.0, - title="polar", data_type=".pdf", save_path=nothing, - is_save=true, is_show=true, use_tex=false) - -ControlPlots backend implementation of [`plot_polars`](@ref). - -# Arguments -- `solver_list`: List of aerodynamic solvers -- `body_aero_list`: List of wing aerodynamics objects -- `label_list`: List of labels for each configuration - -# Keyword arguments -- `literature_path_list`: Optional paths to literature data files -- `angle_range`: Range of angles to analyze in degrees -- `angle_type`: "`angle_of_attack`" or "`side_slip`"; (default: `angle_of_attack`) -- `angle_of_attack:` AoA to be used for plotting the polars (default: 0.0) [°] -- `side_slip`: side slip angle (default: 0.0) [°] -- `v_a`: norm of apparent wind speed (default: 10.0) [m/s] -- title: plot title -- `data_type`: File extension for saving (default: ".pdf") -- `save_path`: Path to save plots (default: nothing) -- `is_save`: Whether to save plots (default: true) -- `is_show`: Whether to display plots (default: true) -- `use_tex`: if the external `pdflatex` command shall be used (default: false) -- `cl_over_cd`: Plot CL/CD vs angle instead of CL vs CD (default: true) -""" -function VortexStepMethod.plot_polars( - solver_list, - body_aero_list, - label_list, - ::VortexStepMethod.ControlPlotsBackend; - literature_path_list=String[], - angle_range=range(0, 20, 2), - angle_type="angle_of_attack", - angle_of_attack=0.0, - side_slip=0.0, - v_a=10.0, - title="polar", - data_type=".pdf", - save_path=nothing, - is_save=true, - is_show=true, - use_tex=false, - cl_over_cd=true, - show_moments=false, -) - # Validate inputs - total_cases = length(body_aero_list) + length(literature_path_list) - if total_cases != length(label_list) || length(solver_list) != length(body_aero_list) - throw(ArgumentError("Mismatch in number of solvers ($(length(solver_list))), " * - "cases ($total_cases), and labels ($(length(label_list)))")) - end - main_title = replace(title, " " => "_") - set_plot_style(; use_tex) - - # Generate polar data - polar_data_list = [] - cm_data_list = [] - for (i, (solver, body_aero)) in enumerate(zip(solver_list, body_aero_list)) - result = VortexStepMethod.generate_polar_data( - solver, body_aero, angle_range; - angle_type, - angle_of_attack, - side_slip, - v_a - ) - push!(polar_data_list, result.polar_data) - push!(cm_data_list, (cmx=result.cmx, cmy=result.cmy, - cmz=result.cmz)) - # Update label with Reynolds number - label_list[i] = "$(label_list[i]) Re = $(round(Int64, result.rey*1e-5))e5" - end - # Load literature data if provided - if !isempty(literature_path_list) - for path in literature_path_list - raw_data = readdlm(path, ',') - lit = VortexStepMethod.extract_literature_polar_data( - raw_data, path; angle_type) - push!(polar_data_list, lit.polar_data) - push!(cm_data_list, (cmx=lit.cmx, cmy=lit.cmy, - cmz=lit.cmz)) - end - end - - # Number of computational results (excluding literature) - n_solvers = length(solver_list) - - # Helper: format label and line style - function format_label(label, i, n_solvers) - if i < n_solvers - linestyle, marker, markersize = "-", "*", 7 - else - linestyle, marker, markersize = "-", ".", 5 - end - if use_tex - if contains(label, "LLT") - label = replace(label, "e5" => raw"\cdot10^5") - label = replace(label, " " => raw"~") - label = replace(label, - "LLT" => raw"\mathrm{LLT}{~\,}") - label = raw"$" * label * raw"$" - else - label = replace(label, "e5" => raw"\cdot10^5") - label = replace(label, " " => "~") - label = replace(label, - "VSM" => raw"\mathrm{VSM}") - label = raw"$" * label * raw"$" - end - end - return label, linestyle, marker, markersize - end - - if show_moments - # 2x3 layout: CL, CD, CS, CMx, CMy, CMz - fig, axs = plt.subplots(2, 3, figsize=(21, 14)) - coeff_specs = [ - (1, raw"$C_\mathrm{L}$", 2, nothing), - (2, raw"$C_\mathrm{D}$", 3, nothing), - (3, raw"$C_\mathrm{S}$", 4, nothing), - (4, raw"$C_\mathrm{Mx}$", nothing, :cmx), - (5, raw"$C_\mathrm{My}$", nothing, :cmy), - (6, raw"$C_\mathrm{Mz}$", nothing, :cmz), - ] - for (ax_idx, ylabel, pd_col, cm_field) in coeff_specs - row = (ax_idx - 1) ÷ 3 - col = (ax_idx - 1) % 3 - ax = axs[row, col] - for (i, (polar_data, cm, label)) in enumerate( - zip(polar_data_list, cm_data_list, - label_list)) - label, ls, mk, ms = format_label( - label, i, n_solvers) - if pd_col !== nothing - y_data = polar_data[pd_col] - else - y_data = Float64.(getfield(cm, cm_field)) - all(isnan, y_data) && continue - end - ax.plot(polar_data[1], y_data; - label=label, linestyle=ls, - marker=mk, markersize=ms) - end - ax.set_title( - ylabel * " vs $angle_type [°]") - ax.set_xlabel("$angle_type [°]") - ax.set_ylabel(ylabel) - ax.legend() - end - else - # 2x2 layout: CL, CD, CS, CL/CD or CL-vs-CD - fig, axs = plt.subplots(2, 2, figsize=(14, 14)) - coeff_specs = [ - ((0, 0), raw"$C_\mathrm{L}$", 2), - ((0, 1), raw"$C_\mathrm{D}$", 3), - ((1, 0), raw"$C_\mathrm{S}$", 4), - ] - for (pos, ylabel, pd_col) in coeff_specs - ax = axs[pos...] - for (i, (polar_data, label)) in enumerate( - zip(polar_data_list, label_list)) - label, ls, mk, ms = format_label( - label, i, n_solvers) - ax.plot(polar_data[1], polar_data[pd_col]; - label=label, linestyle=ls, - marker=mk, markersize=ms) - if maximum(polar_data[2]) > 10 - ax.set_ylim([-0.5, 2]) - end - end - ax.set_title( - ylabel * " vs $angle_type [°]") - ax.set_xlabel("$angle_type [°]") - ax.set_ylabel(ylabel) - ax.legend() - end - # Fourth panel: CL/CD or CL-vs-CD - ax4 = axs[1, 1] - for (i, (polar_data, label)) in enumerate( - zip(polar_data_list, label_list)) - label, ls, mk, ms = format_label( - label, i, n_solvers) - if cl_over_cd - cl_cd = polar_data[2] ./ polar_data[3] - ax4.plot(polar_data[1], cl_cd; - label=label, linestyle=ls, - marker=mk, markersize=ms) - else - ax4.plot(polar_data[3], polar_data[2]; - label=label, linestyle=ls, - marker=mk, markersize=ms) - end - end - if cl_over_cd - ax4.set_title( - raw"$C_\mathrm{L}/C_\mathrm{D}$" * - " vs $angle_type [°]") - ax4.set_xlabel("$angle_type [°]") - ax4.set_ylabel( - raw"$C_\mathrm{L}/C_\mathrm{D}$") - else - ax4.set_title( - raw"$C_\mathrm{L}$" * " vs " * - raw"$C_\mathrm{D}$") - ax4.set_xlabel(raw"$C_\mathrm{D}$") - ax4.set_ylabel(raw"$C_\mathrm{L}$") - end - ax4.legend() - end - - fig.tight_layout(h_pad=3.5, rect=(0.01, 0.01, 0.99, 0.99)) - - # Save and show plot - if is_save && !isnothing(save_path) - save_plot(fig, save_path, main_title; data_type) - end - - if is_show - show_plot(fig) - end - - return fig -end - -""" - plot_polar_data(body_aero::BodyAerodynamics, ::ControlPlotsBackend; - alphas=collect(deg2rad.(-5:0.3:25)), - delta_tes=collect(deg2rad.(-5:0.3:25))) - -ControlPlots backend implementation of [`plot_polar_data`](@ref). Plots Cl, Cd, Cm as 3D surfaces -against angle of attack and trailing edge deflection angle. - -# Arguments -- `body_aero`: Wing aerodynamics struct - -# Keyword arguments -- `alphas`: Range of angle of attack values in radians (default: `deg2rad.(-5:0.3:25)`) -- `delta_tes`: Range of trailing edge angles in radians (default: `deg2rad.(-5:0.3:25)`) -- `is_show`: Whether to display plots (default: true) -- `use_tex`: if the external `pdflatex` command shall be used -""" -function VortexStepMethod.plot_polar_data(body_aero::BodyAerodynamics, - ::VortexStepMethod.ControlPlotsBackend; - alphas=collect(deg2rad.(-5:0.3:25)), - delta_tes = collect(deg2rad.(-5:0.3:25)), - is_show = true, - use_tex = false - ) - if body_aero.panels[1].aero_model == POLAR_MATRICES - set_plot_style(; use_tex) - - # Create figure with subplots - fig = plt.figure(figsize=(15, 6)) - - # Get interpolation functions and labels - interp_data = [ - (body_aero.panels[1].cl_interp, L"$C_l$"), - (body_aero.panels[1].cd_interp, L"$C_d$"), - (body_aero.panels[1].cm_interp, L"$C_m$") - ] - - # Create each subplot - for (idx, (interp, label)) in enumerate(interp_data) - ax = fig.add_subplot(1, 3, idx, projection="3d") - - # Create interpolation matrix - interp_matrix = zeros(length(delta_tes), length(alphas)) - interp_matrix .= [interp(alpha, delta_te) - for delta_te in delta_tes, alpha in alphas] - X = collect(delta_tes) .+ zeros(length(alphas))' - Y = collect(alphas)' .+ zeros(length(delta_tes)) - - # Plot surface - ax.plot_wireframe(X, Y, interp_matrix, - edgecolor="blue", - lw=0.5, - rstride=5, - cstride=5, - alpha=0.6) - - # Set labels and title - ax.set_xlabel(L"$\delta$ [rad]") - ax.set_ylabel(L"$\alpha$ [rad]") - ax.set_zlabel(label) - ax.set_title(label * L" vs $\alpha$ and $\delta$") - ax.grid(true) - end - - # Adjust layout and display - plt.tight_layout(rect=(0.01, 0.01, 0.99, 0.99)) - if is_show - show_plot(fig) - end - return fig - else - throw(ArgumentError("Plotting polar data for $(body_aero.panels[1].aero_model) is not implemented.")) - end -end - -""" - plot_combined_analysis(solver, body_aero, results, ::ControlPlotsBackend; kwargs...) - -ControlPlots backend implementation of [`plot_combined_analysis`](@ref). -Calls `plot_geometry`, `plot_distribution`, and `plot_polars` sequentially. - -# Arguments -- `solver`: Solver or array of solvers -- `body_aero`: BodyAerodynamics object or array -- `results`: Results dict or array of results dicts - -See individual functions for detailed parameter descriptions. -""" -function VortexStepMethod.plot_combined_analysis( - solver, - body_aero, - results, - backend::VortexStepMethod.ControlPlotsBackend; - solver_label="VSM", - labels=nothing, - angle_range=range(0, 20, length=20), - angle_type="angle_of_attack", - angle_of_attack=0.0, - side_slip=0.0, - v_a=10.0, - title="Combined Analysis", - data_type=".pdf", - save_path=nothing, - is_save=false, - is_show=true, - view_elevation=15, - view_azimuth=-120, - use_tex=false, - literature_path_list=String[], - cl_over_cd=true, - angle_of_attack_for_spanwise_distribution=5.0, -) - # Normalize inputs to arrays for consistent handling - solvers = solver isa Vector ? solver : [solver] - body_aeros = body_aero isa Vector ? body_aero : [body_aero] - results_list = results isa Vector ? results : [results] - n_solvers = length(solvers) - n_literature = length(literature_path_list) - - # Label normalization (matches Makie version) - label_source = isnothing(labels) ? solver_label : labels - labels_in = label_source isa AbstractVector ? - string.(label_source) : [string(label_source)] - solver_labels = length(labels_in) == 1 ? - fill(labels_in[1], n_solvers) : - labels_in[1:n_solvers] - - # Compute spanwise results at specified AoA - results_spanwise = copy(results_list) - if !isnothing(angle_of_attack_for_spanwise_distribution) - α_span = deg2rad( - angle_of_attack_for_spanwise_distribution) - β_span = deg2rad(side_slip) - for (i, (s, ba)) in enumerate( - zip(solvers, body_aeros)) - va_old = copy(getfield(ba, :_va)) - omega_old = copy(ba.omega) - set_va!(ba, [cos(α_span) * cos(β_span), - sin(β_span), sin(α_span)] * v_a) - results_spanwise[i] = solve(s, ba, - s.sol.gamma_distribution) - set_va!(ba, va_old, omega_old) - end - end - - # Extract y-coordinates for distribution plot - y_coords_list = [ - [p.aero_center[2] for p in ba.panels] - for ba in body_aeros] - - # Plot geometry (first body_aero only) - plot_geometry( - body_aeros[1], - title, - backend; - data_type, save_path, is_save, is_show, - view_elevation, view_azimuth, use_tex - ) - - # Plot spanwise distributions - plot_distribution( - y_coords_list, - results_spanwise, - solver_labels, - backend; - title=title * " - Distributions", - data_type, save_path, is_save, is_show, use_tex - ) - - # Plot polars (include literature labels) - polar_labels = if n_literature > 0 && - length(labels_in) == n_solvers + n_literature - labels_in - else - solver_labels - end - plot_polars( - solvers, - body_aeros, - polar_labels, - backend; - literature_path_list, angle_range, angle_type, - angle_of_attack, side_slip, v_a, - title=title * " - Polars", - data_type, save_path, is_save, is_show, - use_tex, cl_over_cd - ) -end - -end \ No newline at end of file diff --git a/ext/VortexStepMethodMakieExt.jl b/ext/VortexStepMethodMakieExt.jl index 7f3b7a42..f9452c8b 100644 --- a/ext/VortexStepMethodMakieExt.jl +++ b/ext/VortexStepMethodMakieExt.jl @@ -1,16 +1,8 @@ module VortexStepMethodMakieExt using Makie, VortexStepMethod, LinearAlgebra, Statistics, DelimitedFiles +import MakieControlPlots import VortexStepMethod: calculate_filaments_for_plotting -export plot_geometry, plot_distribution, plot_polars, save_plot, show_plot, - plot_polar_data, plot_combined_analysis - -# Set this extension as the active plotting backend when loaded (only if not already set) -function __init__() - isnothing(VortexStepMethod._PLOT_BACKEND[]) && - (VortexStepMethod._PLOT_BACKEND[] = VortexStepMethod.MakieBackend()) -end - # Global storage for panel mesh observables (for dynamic plotting) const PANEL_MESH_OBSERVABLES = Ref{Union{Nothing,Dict}}(nothing) @@ -464,29 +456,7 @@ function create_geometry_plot_makie(body_aero::BodyAerodynamics, title, return fig end -""" - plot_geometry(body_aero::BodyAerodynamics, title, ::MakieBackend; - data_type=nothing, save_path=nothing, - is_save=false, is_show=false, - view_elevation=15, view_azimuth=-120, use_tex=false) - -Makie backend implementation of [`plot_geometry`](@ref). - -# Arguments: -- `body_aero`: the BodyAerodynamics to plot -- `title`: plot title - -# Keyword arguments: -- `data_type`: File extension (default: `nothing`; delegated to `save_plot` backend-aware default) -- `save_path`: Path for saving (default: nothing) -- `is_save`: Whether to save (default: false) -- `is_show`: Whether to display (default: false) -- `view_elevation`: View elevation angle in degrees (default: 15) -- `view_azimuth`: View azimuth angle in degrees (default: -120) -- `use_tex`: Ignored for Makie (default: false) -""" -function VortexStepMethod.plot_geometry(body_aero::BodyAerodynamics, title, - ::VortexStepMethod.MakieBackend; +function VortexStepMethod.plot_geometry(body_aero::BodyAerodynamics, title; data_type=nothing, save_path=nothing, is_save=false, @@ -522,28 +492,7 @@ function VortexStepMethod.plot_geometry(body_aero::BodyAerodynamics, title, return fig end -""" - plot_distribution(y_coordinates_list, results_list, label_list, ::MakieBackend; - title="spanwise_distribution", data_type=nothing, - save_path=nothing, is_save=false, is_show=true, use_tex=false) - -Makie backend implementation of [`plot_distribution`](@ref). - -# Arguments -- `y_coordinates_list`: List of spanwise coordinates -- `results_list`: List of result dictionaries -- `label_list`: List of labels for different results - -# Keyword arguments -- `title`: Plot title (default: "spanwise_distribution") -- `data_type`: File extension (default: `nothing`; delegated to `save_plot` backend-aware default) -- `save_path`: Path to save plots (default: nothing) -- `is_save`: Whether to save (default: false) -- `is_show`: Whether to display (default: true) -- `use_tex`: Ignored for Makie (default: false) -""" -function VortexStepMethod.plot_distribution(y_coordinates_list, results_list, label_list, - ::VortexStepMethod.MakieBackend; +function VortexStepMethod.plot_distribution(y_coordinates_list, results_list, label_list; title="spanwise_distribution", data_type=nothing, save_path=nothing, @@ -653,63 +602,10 @@ function VortexStepMethod.plot_distribution(y_coordinates_list, results_list, la return fig end -""" - generate_polar_data(solver, body_aero::BodyAerodynamics, angle_range; - angle_type="angle_of_attack", angle_of_attack=0.0, - side_slip=0.0, v_a=10.0) - -Generate polar data for aerodynamic analysis over a range of angles. - -# Arguments -- `solver`: Aerodynamic solver object -- `body_aero`: Wing aerodynamics struct -- `angle_range`: Range of angles to analyze - -# Keyword arguments -- `angle_type`: Type of angle variation ("angle_of_attack" or "side_slip") -- `angle_of_attack`: Initial angle of attack [°] -- `side_slip`: Initial side slip angle [°] -- `v_a`: Norm of apparent wind speed [m/s] - -# Returns -- Tuple of polar data array and Reynolds number -""" - -""" - plot_polars(solver_list, body_aero_list, label_list, ::MakieBackend; - literature_path_list=String[], - angle_range=range(0, 20, 2), angle_type="angle_of_attack", - angle_of_attack=0.0, side_slip=0.0, v_a=10.0, - title="polar", data_type=nothing, save_path=nothing, - is_save=true, is_show=true, use_tex=false) - -Makie backend implementation of [`plot_polars`](@ref). - -# Arguments -- `solver_list`: List of aerodynamic solvers -- `body_aero_list`: List of wing aerodynamics objects -- `label_list`: List of labels for each configuration - -# Keyword arguments -- `literature_path_list`: Optional paths to literature data files -- `angle_range`: Range of angles in degrees -- `angle_type`: "angle_of_attack" or "side_slip" (default: angle_of_attack) -- `angle_of_attack`: AoA [°] (default: 0.0) -- `side_slip`: Side slip angle [°] (default: 0.0) -- `v_a`: Wind speed [m/s] (default: 10.0) -- `title`: Plot title -- `data_type`: File extension (default: `nothing`; delegated to `save_plot` backend-aware default) -- `save_path`: Path to save (default: nothing) -- `is_save`: Whether to save (default: true) -- `is_show`: Whether to display (default: true) -- `use_tex`: Ignored for Makie (default: false) -- `cl_over_cd`: Plot CL/CD vs angle instead of CL vs CD (default: true) -""" function VortexStepMethod.plot_polars( solver_list, body_aero_list, - label_list, - ::VortexStepMethod.MakieBackend; + label_list; literature_path_list=String[], angle_range=range(0, 20, 2), angle_type="angle_of_attack", @@ -874,25 +770,7 @@ function VortexStepMethod.plot_polars( return fig end -""" - plot_polar_data(body_aero::BodyAerodynamics, ::MakieBackend; - alphas=collect(deg2rad.(-5:0.3:25)), - delta_tes=collect(deg2rad.(-5:0.3:25)), - is_show=true, use_tex=false) - -Makie backend implementation of [`plot_polar_data`](@ref). - -# Arguments -- `body_aero`: Wing aerodynamics struct - -# Keyword arguments -- `alphas`: Range of AoA values in radians (default: `deg2rad.(-5:0.3:25)`) -- `delta_tes`: Range of trailing edge angles in radians (default: `deg2rad.(-5:0.3:25)`) -- `is_show`: Whether to display (default: true) -- `use_tex`: Ignored for Makie (default: false) -""" -function VortexStepMethod.plot_polar_data(body_aero::BodyAerodynamics, - ::VortexStepMethod.MakieBackend; +function VortexStepMethod.plot_polar_data(body_aero::BodyAerodynamics; alphas=collect(deg2rad.(-5:0.3:25)), delta_tes=collect(deg2rad.(-5:0.3:25)), is_show=true, @@ -938,52 +816,10 @@ function VortexStepMethod.plot_polar_data(body_aero::BodyAerodynamics, end end -""" - plot_combined_analysis(solver, body_aero, results, ::MakieBackend; - solver_label="VSM", - angle_range=range(0,20,length=20), - angle_type="angle_of_attack", - angle_of_attack=0.0, side_slip=0.0, v_a=10.0, - title="Combined Analysis", - view_elevation=15, view_azimuth=-120, - is_show=true, use_tex=false, - literature_path_list=String[], - data_type=".png", save_path=nothing, is_save=false) - -Makie backend implementation of [`plot_combined_analysis`](@ref). - -# Arguments -- `solver`: Aerodynamic solver -- `body_aero`: BodyAerodynamics object -- `results`: Solution dictionary from solve() - -# Keyword arguments -- `labels`: Optional label string or label vector. If a vector with length - `length(solver)+length(literature_path_list)` is provided, the tail is used - for literature labels; otherwise literature labels default to file basenames. -- `solver_label`: Backward-compatible alias for `labels`. -- `angle_range`: Range of angles for polars (default: range(0,20,length=20)) -- `angle_type`: "angle_of_attack" or "side_slip" (default: "angle_of_attack") -- `angle_of_attack`: AoA in degrees (default: 0.0) -- `side_slip`: Side slip in degrees (default: 0.0) -- `v_a`: Wind speed in m/s (default: 10.0) -- `title`: Overall figure title (default: "Combined Analysis") -- `view_elevation`: Geometry view elevation in degrees (default: 15) -- `view_azimuth`: Geometry view azimuth in degrees (default: -120) -- `is_show`: Display figure (default: true) -- `use_tex`: Ignored for Makie (default: false) -- `literature_path_list`: Paths to literature CSV files (default: String[]) -- `data_type`: File extension (default: ".png", also supports ".jpeg") -- `save_path`: Directory path to save files (default: nothing) -- `is_save`: Save plots to files (default: false) -- `cl_over_cd`: Plot CL/CD vs angle instead of CL vs CD (default: true) -- `angle_of_attack_for_spanwise_distribution`: AoA for spanwise plots (default: 5.0) -""" function VortexStepMethod.plot_combined_analysis( solver, body_aero, - results, - ::VortexStepMethod.MakieBackend; + results; solver_label="VSM", labels=nothing, angle_range=range(0, 20, length=20), @@ -1307,4 +1143,222 @@ function VortexStepMethod.plot_combined_analysis( return fig end +# ============================================================================ +# Airfoil Slice and Kulfan Fit Visualization +# ============================================================================ + +function VortexStepMethod.plot_airfoil_slices(obj_path::String; n_slices::Int=5, + is_show::Bool=true, + save_path=nothing, + data_type::String=".png") + # Slice the mesh + airfoils, y_positions = VortexStepMethod.slice_obj_wing(obj_path, n_slices) + + # Determine grid layout + n_cols = min(3, n_slices) + n_rows = ceil(Int, n_slices / n_cols) + + fig = Figure(size=(400 * n_cols, 350 * n_rows)) + Label(fig[0, :], "Airfoil Slices from OBJ with Kulfan CST Fits", fontsize=16) + + for (i, ((x_slice, y_slice), y_pos)) in enumerate(zip(airfoils, y_positions)) + row = div(i - 1, n_cols) + 1 + col = mod1(i, n_cols) + + ax = Axis(fig[row, col]; + title="Slice $i (y=$(round(y_pos, digits=3)))", + xlabel="x/c", + ylabel="y/c", + aspect=DataAspect()) + + if isempty(x_slice) || length(x_slice) < 5 + text!(ax, 0.5, 0.5, text="No data", align=(:center, :center)) + continue + end + + # Get normalized coordinates for visualization + x_norm, y_norm, _ = VortexStepMethod.normalize_airfoil(x_slice, y_slice) + + # Plot slice points + scatter!(ax, x_norm, y_norm; + color=:blue, markersize=4, + label="$(length(x_norm)) pts") + + # Try Kulfan fit + try + params = VortexStepMethod.fit_kulfan_parameters(x_slice, y_slice) + + # Check if fit is reasonable (TE thickness should be small) + if abs(params.TE_thickness) < 1.0 + # Generate fitted curve + x_fit, y_fit = VortexStepMethod.kulfan_to_coordinates(params; n_points=100) + + # Plot fitted curve + lines!(ax, x_fit, y_fit; + color=:red, linewidth=2, label="Kulfan fit") + + # Add TE thickness annotation + text!(ax, 0.02, 0.98; + text="TE=$(round(params.TE_thickness, digits=4))", + align=(:left, :top), + fontsize=10, + space=:relative) + end + catch e + # Silently skip fit - just show points + end + + # Add legend only to first plot + if i == 1 + axislegend(ax; position=:rt) + end + end + + if !isnothing(save_path) + VortexStepMethod.save_plot(fig, save_path, "airfoil_slices"; data_type) + end + + if is_show + display(fig) + end + + return fig +end + +""" + plot_airfoil_fit(x::Vector, y::Vector; title="Airfoil Fit", is_show=true) + +Plot a single airfoil with its Kulfan CST fit. + +# Arguments +- `x, y`: Airfoil coordinates + +# Keyword Arguments +- `title`: Plot title +- `is_show`: Display figure + +# Returns +- Makie Figure object +- KulfanParameters +""" +function plot_airfoil_fit(x::Vector, y::Vector; title::String="Airfoil Fit", + is_show::Bool=true) + fig = Figure(size=(800, 400)) + ax = Axis(fig[1, 1]; + title=title, + xlabel="x/c", + ylabel="y/c", + aspect=DataAspect()) + + # Normalize coordinates + x_norm, y_norm, _ = VortexStepMethod.normalize_airfoil(x, y) + + # Plot original points + scatter!(ax, x_norm, y_norm; + color=:blue, markersize=6, label="Input ($(length(x)) pts)") + + # Fit Kulfan parameters + params = VortexStepMethod.fit_kulfan_parameters(x, y) + + # Generate fitted curve + x_fit, y_fit = VortexStepMethod.kulfan_to_coordinates(params; n_points=150) + + # Plot fitted curve + lines!(ax, x_fit, y_fit; + color=:red, linewidth=2, linestyle=:dash, label="Kulfan fit") + + # Add parameter info + info_text = """ + Upper: $(round.(params.upper_weights[1:4], digits=3))... + Lower: $(round.(params.lower_weights[1:4], digits=3))... + LE: $(round(params.leading_edge_weight, digits=3)) + TE: $(round(params.TE_thickness, digits=5)) + """ + + ax_info = Axis(fig[1, 2]; title="Kulfan Parameters") + hidedecorations!(ax_info) + hidespines!(ax_info) + text!(ax_info, 0.1, 0.9; + text=info_text, + align=(:left, :top), + fontsize=12) + + axislegend(ax; position=:rt) + + if is_show + display(fig) + end + + return fig, params +end + +function VortexStepMethod.plot_airfoils(geometry_file::String; + n_cols::Int=3, is_show::Bool=true, is_save::Bool=false, + save_path=nothing, data_type::String=".png") + + airfoils = VortexStepMethod.airfoils_from_yaml(geometry_file) + isempty(airfoils) && error("No airfoils with a dat_file found in $geometry_file") + + n = length(airfoils) + ncol = min(n_cols, n) + nrow = ceil(Int, n / ncol) + fig = Figure(size=(380 * ncol, 320 * nrow)) + Label(fig[0, :], "Airfoils: $(basename(geometry_file))", fontsize=16) + + for (i, af) in enumerate(airfoils) + ax = Axis(fig[div(i - 1, ncol) + 1, mod1(i, ncol)]; + title="Airfoil $(af.id)", xlabel="x/c", ylabel="y/c", aspect=DataAspect()) + isempty(af.x_raw) || + scatter!(ax, af.x_raw, af.y_raw; color=(:gray, 0.5), markersize=4) + lines!(ax, af.x, af.y; color=:black) + end + + if is_save && !isnothing(save_path) + VortexStepMethod.save_plot(fig, save_path, "airfoils"; data_type) + end + is_show && display(fig) + return fig +end + +function VortexStepMethod.plot_section_polars(body_aero::BodyAerodynamics, + coefficient::Symbol=:cl; is_show::Bool=true, is_save::Bool=false, + save_path=nothing, data_type::String=".png") + + coefficient in (:cl, :cd, :cm) || + throw(ArgumentError("coefficient must be :cl, :cd, or :cm, got :$coefficient")) + idx = coefficient === :cl ? 2 : coefficient === :cd ? 3 : 4 + label = uppercasefirst(string(coefficient)) + + alphas_deg = nothing + series = Vector{Float64}[] + labels = String[] + for wing in body_aero.wings + for (s, section) in enumerate(wing.unrefined_sections) + section.aero_model == POLAR_VECTORS || continue + aero = section.aero_data + aero === nothing && continue + section_alphas = rad2deg.(aero[1]) + if isnothing(alphas_deg) + alphas_deg = collect(section_alphas) + elseif length(section_alphas) != length(alphas_deg) + @warn "section $s has a different α grid; plotting against the first section's α" + end + push!(series, Float64.(aero[idx])) + push!(labels, "section $s") + end + end + isempty(series) && error("No POLAR_VECTORS sections found in body") + + plt = MakieControlPlots.plot(alphas_deg, series; + xlabel="α [deg]", ylabel=label, title="$label per section", + labels=labels, disp=(is_show || is_save)) + + if is_save && !isnothing(save_path) + isdir(save_path) || mkpath(save_path) + MakieControlPlots.savefig( + joinpath(save_path, "section_polars_$(coefficient)$(data_type)")) + end + return plt +end + end diff --git a/src/VortexStepMethod.jl b/src/VortexStepMethod.jl index da9cb9ea..ab94759d 100644 --- a/src/VortexStepMethod.jl +++ b/src/VortexStepMethod.jl @@ -24,6 +24,7 @@ using ForwardDiff import YAML using StructMapping using Xfoil +using NPZ # Export public interface export SolverSettings, VSMSettings, WingSettings @@ -43,82 +44,46 @@ export FAILURE, FEASIBLE, INFEASIBLE, SolverStatus export LOOP, NONLIN, SolverType export load_polar_data -export plot_circulation_distribution, plot_combined_analysis, plot_distribution, plot_geometry, - plot_polar_data, plot_polars, save_plot, show_plot +# NeuralFoil exports +export KulfanParameters, KulfanFitMethod, LeastSquaresFit, EnvelopeFit, + fit_kulfan_parameters, kulfan_to_coordinates +export NeuralFoilModel, NeuralFoilResult, load_neuralfoil_model, neuralfoil_aero +export slice_obj_wing, slice_obj_at_positions +export generate_neuralfoil_polars, generate_polar_from_coordinates, generate_polar_from_dat +export obj_to_yaml -# Backend dispatch types for multi-backend support (Makie and ControlPlots can coexist) -abstract type PlotBackend end -struct MakieBackend <: PlotBackend end -struct ControlPlotsBackend <: PlotBackend end -export PlotBackend, MakieBackend, ControlPlotsBackend +export plot_airfoil_slices, plot_airfoils, plot_combined_analysis, + plot_distribution, plot_geometry, plot_polar_data, plot_polars, + plot_section_polars, save_plot, show_plot -const _PLOT_BACKEND = Ref{Union{Nothing, PlotBackend}}(nothing) - -""" - set_plot_backend!(backend::PlotBackend) - -Select the active plotting backend when both Makie and ControlPlots are loaded. - -# Example -```julia -set_plot_backend!(MakieBackend()) -set_plot_backend!(ControlPlotsBackend()) -``` -""" -function set_plot_backend!(backend::PlotBackend) - _PLOT_BACKEND[] = backend -end -export set_plot_backend! - -# Generic stubs — extended by MakieExt and ControlPlotsExt with a PlotBackend argument. -# The no-backend-argument wrappers below route through the active backend. -function plot_geometry end -function plot_distribution end -function plot_circulation_distribution end -function plot_polars end -function save_plot end -function show_plot end -function plot_polar_data end -function plot_combined_analysis end - -function _active_backend() - b = _PLOT_BACKEND[] - isnothing(b) && error( - "No plotting backend loaded. Load Makie or ControlPlots first, " * - "or call set_plot_backend!(MakieBackend()) / set_plot_backend!(ControlPlotsBackend()) " * - "when both are loaded." - ) - b -end +# Plotting functions live in the `VortexStepMethodMakieExt` extension, loaded +# once a Makie backend (`GLMakie` or `CairoMakie`) and `MakieControlPlots` are +# available. The declarations below carry the public docstrings; the extension +# provides the implementations. """ plot_geometry(body_aero::BodyAerodynamics, title; kwargs...) Plot wing geometry from different viewpoints and optionally save/show plots. -Routes to the active plotting backend (Makie or ControlPlots). # Arguments - `body_aero`: the [`BodyAerodynamics`](@ref) to plot - `title`: plot title # Keyword arguments -- `data_type`: file extension for saving (default depends on backend) +- `data_type`: file extension for saving (default: `.pdf` for CairoMakie, `.png` otherwise) - `save_path`: path for saving the graphic (default: `nothing`) - `is_save`: whether to save the graphic (default: `false`) - `is_show`: whether to display the graphic (default: `false`) - `view_elevation`: initial view elevation angle in degrees (default: `15`) - `view_azimuth`: initial view azimuth angle in degrees (default: `-120`) -- `use_tex`: use external `pdflatex` for rendering (default: `false`; ignored by Makie) """ -function plot_geometry(body_aero, title; kwargs...) - plot_geometry(body_aero, title, _active_backend(); kwargs...) -end +function plot_geometry end """ plot_distribution(y_coordinates_list, results_list, label_list; kwargs...) Plot spanwise distributions of aerodynamic properties. -Routes to the active plotting backend (Makie or ControlPlots). # Arguments - `y_coordinates_list`: list of spanwise coordinate arrays @@ -127,21 +92,17 @@ Routes to the active plotting backend (Makie or ControlPlots). # Keyword arguments - `title`: plot title (default: `"spanwise_distribution"`) -- `data_type`: file extension for saving (default depends on backend) +- `data_type`: file extension for saving (default: `.pdf` for CairoMakie, `.png` otherwise) - `save_path`: path to save plots (default: `nothing`) - `is_save`: whether to save (default: `false`) - `is_show`: whether to display (default: `true`) -- `use_tex`: use external `pdflatex` for rendering (default: `false`; ignored by Makie) """ -function plot_distribution(y_coordinates_list, results_list, label_list; kwargs...) - plot_distribution(y_coordinates_list, results_list, label_list, _active_backend(); kwargs...) -end +function plot_distribution end """ plot_polars(solver_list, body_aero_list, label_list; kwargs...) Plot polar data comparing different solvers and configurations. -Routes to the active plotting backend (Makie or ControlPlots). # Arguments - `solver_list`: list of aerodynamic solvers @@ -156,22 +117,18 @@ Routes to the active plotting backend (Makie or ControlPlots). - `side_slip`: side slip angle (default: `0.0`) [°] - `v_a`: apparent wind speed magnitude (default: `10.0`) [m/s] - `title`: plot title (default: `"polar"`) -- `data_type`: file extension for saving (default depends on backend) +- `data_type`: file extension for saving (default: `.pdf` for CairoMakie, `.png` otherwise) - `save_path`: path to save plots (default: `nothing`) - `is_save`: whether to save (default: `true`) - `is_show`: whether to display (default: `true`) -- `use_tex`: use external `pdflatex` for rendering (default: `false`; ignored by Makie) - `cl_over_cd`: plot CL/CD vs angle instead of CL vs CD (default: `true`) """ -function plot_polars(solver_list, body_aero_list, label_list; kwargs...) - plot_polars(solver_list, body_aero_list, label_list, _active_backend(); kwargs...) -end +function plot_polars end """ plot_polar_data(body_aero::BodyAerodynamics; kwargs...) Plot polar data (Cl, Cd, Cm) as 3-D surfaces against angle of attack and trailing edge deflection. -Routes to the active plotting backend (Makie or ControlPlots). # Arguments - `body_aero`: the [`BodyAerodynamics`](@ref) to plot (must use `POLAR_MATRICES` aero model) @@ -180,17 +137,14 @@ Routes to the active plotting backend (Makie or ControlPlots). - `alphas`: AoA values in radians (default: `deg2rad.(-5:0.3:25)`) - `delta_tes`: trailing edge deflection angles in radians (default: `deg2rad.(-5:0.3:25)`) - `is_show`: whether to display (default: `true`) -- `use_tex`: use external `pdflatex` for rendering (default: `false`; ignored by Makie) """ -function plot_polar_data(body_aero; kwargs...) - plot_polar_data(body_aero, _active_backend(); kwargs...) -end +function plot_polar_data end """ plot_combined_analysis(solver, body_aero, results; kwargs...) Create a combined analysis by calling `plot_geometry`, `plot_distribution`, and `plot_polars` -in sequence. Routes to the active plotting backend (Makie or ControlPlots). +in sequence. # Arguments - `solver`: solver or vector of solvers @@ -209,16 +163,70 @@ in sequence. Routes to the active plotting backend (Makie or ControlPlots). - `view_elevation`: geometry view elevation in degrees (default: `15`) - `view_azimuth`: geometry view azimuth in degrees (default: `-120`) - `is_show`: whether to display (default: `true`) -- `use_tex`: use external `pdflatex` for rendering (default: `false`; ignored by Makie) - `literature_path_list`: paths to literature CSV files (default: `String[]`) -- `data_type`: file extension for saving (default depends on backend) +- `data_type`: file extension for saving (default: `".png"`) - `save_path`: directory to save files (default: `nothing`) - `is_save`: whether to save (default: `false`) - `cl_over_cd`: plot CL/CD vs angle (default: `true`) """ -function plot_combined_analysis(solver, body_aero, results; kwargs...) - plot_combined_analysis(solver, body_aero, results, _active_backend(); kwargs...) -end +function plot_combined_analysis end + +""" + plot_airfoil_slices(obj_path::String; kwargs...) + +Plot airfoil cross-sections extracted from an OBJ mesh with Kulfan CST fits overlaid. + +# Arguments +- `obj_path`: path to an OBJ file + +# Keyword arguments +- `n_slices`: number of spanwise slices (default: `5`) +- `is_show`: whether to display (default: `true`) +- `save_path`: directory to save the figure (default: `nothing`) +- `data_type`: image format (default: `".png"`) +""" +function plot_airfoil_slices end + +""" + plot_section_polars(body_aero::BodyAerodynamics, coefficient=:cl; kwargs...) + +Plot one polar coefficient (`:cl`, `:cd`, or `:cm`) against angle of attack for +every section of a wing using stored `POLAR_VECTORS` data. + +# Arguments +- `body_aero`: the [`BodyAerodynamics`](@ref) to plot +- `coefficient`: `:cl`, `:cd`, or `:cm` (default: `:cl`) + +# Keyword arguments +- `is_show`: whether to display (default: `true`) +- `is_save`: whether to save (default: `false`) +- `save_path`: directory to save the figure (default: `nothing`) +- `data_type`: file extension for saving (default: `".png"`) +""" +function plot_section_polars end + +function save_plot end +function show_plot end + +""" + plot_airfoils(geometry_file::String; kwargs...) + +Plot every airfoil of a YAML wing geometry in a grid of subfigures. The airfoil +shapes are read from the `.dat` files referenced by the geometry's +`wing_airfoils` (a loaded [`BodyAerodynamics`](@ref) does not retain airfoil +coordinates, so the YAML is the source). + +# Arguments +- `geometry_file`: path to a YAML geometry file (e.g. written by [`obj_to_yaml`](@ref)) + +# Keyword arguments +- `n_cols`: number of subfigure columns (default: `3`) +- `is_show`: whether to display (default: `true`) +- `is_save`: whether to save (default: `false`) +- `save_path`: directory to save the figure (default: `nothing`) +- `data_type`: file extension for saving (default: `".png"`) +""" +function plot_airfoils end """ const MVec3 = MVector{3, Float64} @@ -441,6 +449,14 @@ include("panel.jl") include("body_aerodynamics.jl") include("wake.jl") include("solver.jl") + +# NeuralFoil integration +include("kulfan.jl") +include("neuralfoil.jl") +include("obj_slice.jl") +include("polar_generation.jl") +include("obj_to_yaml.jl") + include("plotting_helpers.jl") include("precompile.jl") diff --git a/src/kulfan.jl b/src/kulfan.jl new file mode 100644 index 00000000..5167e5c8 --- /dev/null +++ b/src/kulfan.jl @@ -0,0 +1,381 @@ +""" +Kulfan CST (Class Shape Transformation) airfoil parameterization. + +This module provides functions to: +- Fit Kulfan parameters from airfoil coordinates +- Generate airfoil coordinates from Kulfan parameters +""" + +""" + KulfanParameters + +Kulfan CST parameters for an airfoil. + +# Fields +- `upper_weights::Vector{Float64}`: 8 weights for upper surface +- `lower_weights::Vector{Float64}`: 8 weights for lower surface +- `leading_edge_weight::Float64`: Leading edge modification weight +- `TE_thickness::Float64`: Trailing edge thickness +""" +struct KulfanParameters + upper_weights::Vector{Float64} + lower_weights::Vector{Float64} + leading_edge_weight::Float64 + TE_thickness::Float64 +end + +""" + KulfanFitMethod + +Abstract supertype for Kulfan-parameter fitting strategies. Concrete methods +[`LeastSquaresFit`](@ref) and [`EnvelopeFit`](@ref) are passed to +[`fit_kulfan_parameters`](@ref), which dispatches on them. +""" +abstract type KulfanFitMethod end + +""" + LeastSquaresFit(; n_weights=8) + +Least-squares Kulfan fit: solves a single system that fits both surfaces +*through* the points, matching AeroSandbox's `get_kulfan_parameters` (the +parameterization NeuralFoil was trained on). Sensitive to noisy interior points; +use [`EnvelopeFit`](@ref) for those. +""" +@with_kw struct LeastSquaresFit <: KulfanFitMethod + n_weights::Int = 8 +end + +""" + EnvelopeFit(; min_distance=0.0, n_weights=8, tightness=1.0, + perimeter_weight=1.0, penalty=1e4, n_grid=80, n_iter=30, + regularization=1e-6, tol=1e-10) + +Enclosing Kulfan fit: wraps the airfoil tightly *around* the point cloud, +keeping every point at least `min_distance` inside the surfaces. Robust to noisy +interior points (e.g. the internal structure of a ram-air kite slice) that pull +[`LeastSquaresFit`](@ref) inward. See [`fit_kulfan_parameters`](@ref) for the +method and algorithm. + +Two knobs trade off the fit: +- `tightness` pulls the surfaces onto the outermost points (minimises enclosed + area); raise it to follow concave detail more closely. +- `perimeter_weight` minimises the surfaces' arc length (a shrink-wrap); raise it + for a smoother, shorter perimeter at the cost of some tightness. + +# Fields +- `min_distance`: required clearance between each surface and the points +- `n_weights`: weights per surface (NeuralFoil uses 8) +- `tightness`: weight of the enclosed-area objective (hug the points) +- `perimeter_weight`: weight of the arc-length objective (smooth, short perimeter) +- `penalty`: weight of each active clearance-constraint row +- `n_grid`: number of chordwise stations used to measure perimeter +- `n_iter`, `tol`: active-set / reweighting iteration controls +- `regularization`: Tikhonov weight toward the least-squares fit +""" +@with_kw struct EnvelopeFit <: KulfanFitMethod + min_distance::Float64 = 0.0 + n_weights::Int = 8 + tightness::Float64 = 1.0 + perimeter_weight::Float64 = 1.0 + penalty::Float64 = 1e4 + n_grid::Int = 80 + n_iter::Int = 30 + regularization::Float64 = 1e-6 + tol::Float64 = 1e-10 +end + +""" + fit_clearance(method::KulfanFitMethod) -> Float64 + +Chordwise/normal clearance a fit method wraps around the points: `min_distance` +for [`EnvelopeFit`](@ref), `0` otherwise. Used to inset the stored raw points to +the same frame as the fitted airfoil. +""" +fit_clearance(method::EnvelopeFit) = method.min_distance +fit_clearance(::KulfanFitMethod) = 0.0 + +""" + bernstein_basis(x::AbstractVector, n::Int) + +Compute Bernstein polynomial basis matrix. + +Returns matrix of shape (length(x), n+1) where each column is a Bernstein polynomial +B_i(x) = binomial(n,i) * x^i * (1-x)^(n-i) +""" +function bernstein_basis(x::AbstractVector{T}, n::Int) where T + m = length(x) + B = zeros(T, m, n + 1) + for i in 0:n + coeff = binomial(n, i) + @. B[:, i+1] = coeff * x^i * (1 - x)^(n - i) + end + return B +end + +""" + class_function(x; N1=0.5, N2=1.0) + +CST class function for airfoils: C(x) = x^N1 * (1-x)^N2 + +Standard values N1=0.5, N2=1.0 give round leading edge and pointed trailing edge. +""" +function class_function(x::AbstractVector{T}; N1=0.5, N2=1.0) where T + # Avoid numerical issues at endpoints + x_safe = clamp.(x, eps(T), 1 - eps(T)) + return x_safe.^N1 .* (1 .- x_safe).^N2 +end + +""" + normalize_airfoil(x::Vector, y::Vector) + +Normalize airfoil coordinates to unit chord with LE at origin. + +Returns normalized (x, y) and transformation parameters. +""" +function normalize_airfoil(x::Vector{T}, y::Vector{T}) where T + # Find leading edge (minimum x) + le_idx = argmin(x) + x_le, y_le = x[le_idx], y[le_idx] + + # Find trailing edge (maximum x) + te_idx = argmax(x) + x_te, y_te = x[te_idx], y[te_idx] + + # Chord length and angle + chord = sqrt((x_te - x_le)^2 + (y_te - y_le)^2) + angle = atan(y_te - y_le, x_te - x_le) + + # Transform: translate to LE at origin, rotate, scale + x_norm = similar(x) + y_norm = similar(y) + cos_a, sin_a = cos(angle), sin(angle) + + for i in eachindex(x) + dx = x[i] - x_le + dy = y[i] - y_le + x_rot = cos_a * dx + sin_a * dy + y_rot = -sin_a * dx + cos_a * dy + x_norm[i] = x_rot / chord + y_norm[i] = y_rot / chord + end + + return x_norm, y_norm, (x_le=x_le, y_le=y_le, chord=chord, angle=angle) +end + +""" + inset_airfoil(x::Vector, y::Vector, clearance) -> (x_inset, y_inset) + +Normalize coordinates to unit chord, then uniformly scale them into the box +`[clearance, 1 - clearance]`. This leaves `clearance` of chordwise room at each end +so an airfoil fitted on `[0, 1]` can wrap around the leading and trailing edges +(and close the trailing edge) instead of being pinned to the extreme points. With +`clearance == 0` this is plain normalization. +""" +function inset_airfoil(x::Vector{T}, y::Vector{T}, clearance::Real) where T + x_norm, y_norm, _ = normalize_airfoil(x, y) + scale = one(T) - 2 * T(clearance) + return T(clearance) .+ scale .* x_norm, scale .* y_norm +end + +""" + leading_edge_basis(x::AbstractVector, n_weights::Int) + +Leading-edge-modification basis used by AeroSandbox/NeuralFoil: +`x * (1 - x)^(n_weights + 0.5)`. Added identically to both surfaces. +""" +function leading_edge_basis(x::AbstractVector{T}, n_weights::Int) where T + return x .* max.(1 .- x, zero(T)).^(n_weights + 0.5) +end + +""" + fit_kulfan_parameters(x::Vector, y::Vector, method::KulfanFitMethod) + fit_kulfan_parameters(x::Vector, y::Vector; n_weights=8) + +Fit Kulfan CST parameters to airfoil coordinates. The `method` selects the +strategy: [`LeastSquaresFit`](@ref) fits *through* the points (default), while +[`EnvelopeFit`](@ref) wraps tightly *around* them and is robust to noisy interior +points. The keyword form is shorthand for `LeastSquaresFit(; n_weights)`. + +Input coordinates are assumed to be in Selig order (TE upper -> LE -> TE lower). + +# Returns +- `KulfanParameters`: Fitted parameters +""" +function fit_kulfan_parameters(x::Vector{T}, y::Vector{T}; n_weights::Int=8) where T + return fit_kulfan_parameters(x, y, LeastSquaresFit(; n_weights)) +end + +""" + fit_kulfan_parameters(x, y, method::LeastSquaresFit) + +Least-squares fit matching AeroSandbox's `get_kulfan_parameters`: both surfaces +share a single least-squares system with a shared leading-edge weight and a +trailing-edge thickness. +""" +function fit_kulfan_parameters(x::Vector{T}, y::Vector{T}, + method::LeastSquaresFit) where T + n_weights = method.n_weights + x_norm, y_norm, _ = normalize_airfoil(x, y) + xv = clamp.(x_norm, zero(T), one(T)) + + le_idx = argmin(xv) + is_upper = (1:length(xv)) .<= le_idx + + CS = class_function(xv) .* bernstein_basis(xv, n_weights - 1) + le_col = leading_edge_basis(xv, n_weights) + te_col = ifelse.(is_upper, xv ./ 2, .-xv ./ 2) + + A = hcat((.!is_upper) .* CS, is_upper .* CS, le_col, te_col) + coeffs = A \ y_norm + TE_thickness = coeffs[end] + + if TE_thickness < 0 + A = hcat((.!is_upper) .* CS, is_upper .* CS, le_col) + coeffs = A \ y_norm + TE_thickness = zero(T) + end + + lower_weights = coeffs[1:n_weights] + upper_weights = coeffs[n_weights+1:2n_weights] + leading_edge_weight = coeffs[2n_weights+1] + + return KulfanParameters(upper_weights, lower_weights, leading_edge_weight, + TE_thickness) +end + +""" + fit_kulfan_parameters(x, y, method::EnvelopeFit) + +Fit Kulfan CST parameters so the airfoil *encloses* the point cloud `(x, y)` as +tightly as possible while keeping every point at least `method.min_distance` +inside the surfaces. + +Unlike [`LeastSquaresFit`](@ref), which fits *through* the points and is pulled +around by noisy interior points (e.g. the internal structure of a ram-air kite +slice), this fits a tight outer envelope: the upper surface stays above every +point and the lower surface below it, so only the outermost points are active and +interior points are ignored. For flat/thin sections where the surfaces nearly +coincide, `min_distance` sets the minimum clearance between each surface and the +points, preventing the envelope from collapsing to zero thickness. The points are +first inset into `[min_distance, 1 - min_distance]` (see [`inset_airfoil`](@ref)) +so the fitted `[0, 1]` airfoil has chordwise room to wrap around the leading and +trailing edges and to close the trailing edge, rather than being pinned to the +extreme points. + +It approximates the program "minimise `tightness`·(enclosed area) + +`perimeter_weight`·(surface arc length) subject to +`upper(xᵢ) ≥ yᵢ + min_distance` and `lower(xᵢ) ≤ yᵢ - min_distance`" by an +iteratively reweighted active-set least-squares. Each iteration solves one +stacked least-squares (QR via `\\`) of four blocks: a squared-thickness objective +(`tightness`), a penalty row per currently-violated clearance constraint +(`penalty`), arc-length rows over an `n_grid`-station chordwise grid whose +segments are reweighted by inverse length each iteration so the quadratic descends +the true perimeter (`perimeter_weight`), and a Tikhonov term toward the +least-squares fit (`regularization`). Because the objective is area and perimeter +rather than distance to each point, interior points exert no inward pull, the +perimeter term keeps the surfaces smooth without a non-representable uniform +offset, and the method degrades gracefully when `min_distance` is too large for +the section to satisfy. + +# Returns +- `KulfanParameters`: fitted parameters +""" +function fit_kulfan_parameters(x::Vector{T}, y::Vector{T}, + method::EnvelopeFit) where T + n_weights = method.n_weights + d = T(method.min_distance) + x_inset, y_norm = inset_airfoil(x, y, d) + xv = clamp.(x_inset, zero(T), one(T)) + m = length(xv) + n_params = 2n_weights + 2 + + surface_design(xs) = begin + cs = class_function(xs) .* bernstein_basis(xs, n_weights - 1) + leb = leading_edge_basis(xs, n_weights) + half = xs ./ 2 + zb = zeros(T, length(xs), n_weights) + upper = hcat(zb, cs, leb, half) + lower = hcat(cs, zb, leb, .-half) + return upper, lower + end + + upper_pts, lower_pts = surface_design(xv) + A = vcat(upper_pts, .-lower_pts) + b = vcat(y_norm .+ d, d .- y_norm) + + thickness_rows = sqrt(T(method.tightness)) .* (upper_pts .- lower_pts) + thickness_rhs = zeros(T, m) + + grid = (one(T) .- cos.(range(zero(T), T(pi), method.n_grid))) ./ 2 + upper_grid, lower_grid = surface_design(grid) + diff_upper = upper_grid[2:end, :] .- upper_grid[1:end-1, :] + diff_lower = lower_grid[2:end, :] .- lower_grid[1:end-1, :] + perimeter_rows = vcat(diff_upper, diff_lower) + dx2 = repeat((grid[2:end] .- grid[1:end-1]) .^ 2, 2) + + reg_rows = sqrt(T(method.regularization)) .* Matrix{T}(I, n_params, n_params) + p0 = fit_kulfan_parameters(x, y; n_weights) + theta0 = vcat(p0.lower_weights, p0.upper_weights, p0.leading_edge_weight, + p0.TE_thickness) + reg_rhs = sqrt(T(method.regularization)) .* theta0 + + theta = copy(theta0) + for _ in 1:method.n_iter + clearance_weight = sqrt.(T(method.penalty) .* ((A * theta .- b) .< 0)) + segment_length = sqrt.(dx2 .+ (perimeter_rows * theta) .^ 2) + perimeter_weight = sqrt.(T(method.perimeter_weight) ./ segment_length) + M = vcat(thickness_rows, clearance_weight .* A, + perimeter_weight .* perimeter_rows, reg_rows) + rhs = vcat(thickness_rhs, clearance_weight .* b, + zeros(T, length(perimeter_weight)), reg_rhs) + theta_new = M \ rhs + converged = maximum(abs.(theta_new .- theta)) < T(method.tol) + theta = theta_new + converged && break + end + + lower_weights = theta[1:n_weights] + upper_weights = theta[n_weights+1:2n_weights] + leading_edge_weight = theta[2n_weights+1] + TE_thickness = max(theta[2n_weights+2], zero(T)) + + return KulfanParameters(upper_weights, lower_weights, leading_edge_weight, + TE_thickness) +end + +""" + kulfan_to_coordinates(params::KulfanParameters; n_points=100) + +Generate airfoil coordinates from Kulfan parameters. + +Returns (x, y) coordinates in Selig format (TE upper -> LE -> TE lower). +""" +function kulfan_to_coordinates(params::KulfanParameters; n_points::Int=100) + # Cosine spacing for better LE resolution + theta = range(0, pi, n_points) + x = @. (1 - cos(theta)) / 2 + + n_upper = length(params.upper_weights) + n_lower = length(params.lower_weights) + + C = class_function(x) + B_upper = bernstein_basis(x, n_upper - 1) + B_lower = bernstein_basis(x, n_lower - 1) + + # Shape functions + S_upper = B_upper * params.upper_weights + S_lower = B_lower * params.lower_weights + + # Leading-edge modification (shared, added to both surfaces) + le = params.leading_edge_weight .* leading_edge_basis(x, n_upper) + + # y coordinates + y_upper = C .* S_upper .+ le .+ x .* (params.TE_thickness / 2) + y_lower = C .* S_lower .+ le .- x .* (params.TE_thickness / 2) + + # Combine in Selig format + x_coords = vcat(reverse(x), x[2:end]) + y_coords = vcat(reverse(y_upper), y_lower[2:end]) + + return x_coords, y_coords +end diff --git a/src/neuralfoil.jl b/src/neuralfoil.jl new file mode 100644 index 00000000..83e7e8b4 --- /dev/null +++ b/src/neuralfoil.jl @@ -0,0 +1,362 @@ +""" +NeuralFoil - Pure Julia implementation of the NeuralFoil neural network for airfoil +aerodynamics prediction. + +Based on: https://github.com/peterdsharpe/NeuralFoil + +This module loads the pre-trained neural network weights and provides functions to +evaluate airfoil aerodynamics from Kulfan CST parameters. +""" + +using NPZ + +# Path to NeuralFoil weights (relative to this package) +const NEURALFOIL_WEIGHTS_DIR = joinpath(@__DIR__, "..", "data", "neuralfoil_weights") + +# Global cache for loaded weights +const _NN_CACHE = Dict{String, Any}() + +""" + NeuralFoilModel + +Holds the neural network weights and configuration. +""" +struct NeuralFoilModel + weights::Vector{Matrix{Float32}} + biases::Vector{Vector{Float32}} + layer_indices::Vector{Int} + mean_inputs::Vector{Float32} + inv_cov_inputs::Matrix{Float64} + n_inputs::Int +end + +""" + swish(x) + +SiLU/Swish activation function: x * sigmoid(x) = x / (1 + exp(-x)) +""" +function swish(x::T) where T + return x / (one(T) + exp(-x)) +end + +function swish(x::AbstractArray) + return x ./ (one(eltype(x)) .+ exp.(-x)) +end + +""" + sigmoid(x) + +Sigmoid activation function. +""" +function sigmoid(x::T) where T + x_clipped = clamp(x, T(-500), T(500)) + return one(T) / (one(T) + exp(-x_clipped)) +end + +""" + load_neuralfoil_model(model_size::String="xlarge"; weights_dir=nothing) + +Load NeuralFoil neural network weights from .npz files. + +# Arguments +- `model_size`: One of "xxsmall", "xsmall", "small", "medium", "large", + "xlarge", "xxlarge", "xxxlarge" +- `weights_dir`: Directory containing the .npz files (defaults to package data dir) + +# Returns +- `NeuralFoilModel`: Loaded model ready for evaluation +""" +function load_neuralfoil_model(model_size::String="xlarge"; weights_dir=nothing) + # Check cache + cache_key = "$(model_size)_$(weights_dir)" + if haskey(_NN_CACHE, cache_key) + return _NN_CACHE[cache_key] + end + + if weights_dir === nothing + weights_dir = NEURALFOIL_WEIGHTS_DIR + end + + # Load neural network weights + nn_path = joinpath(weights_dir, "nn-$(model_size).npz") + if !isfile(nn_path) + error("NeuralFoil weights not found at $nn_path. " * + "Copy weights from NeuralFoil package.") + end + + nn_data = npzread(nn_path) + + # Parse layer indices from keys like "net.0.weight", "net.2.weight", etc. + layer_indices = Int[] + for key in keys(nn_data) + m = match(r"net\.(\d+)\.weight", key) + if m !== nothing + push!(layer_indices, parse(Int, m.captures[1])) + end + end + sort!(unique!(layer_indices)) + + # Load weights and biases in order + weights = Matrix{Float32}[] + biases = Vector{Float32}[] + for idx in layer_indices + push!(weights, Float32.(nn_data["net.$(idx).weight"])) + push!(biases, Float32.(vec(nn_data["net.$(idx).bias"]))) + end + + # Load input distribution statistics + dist_path = joinpath(weights_dir, "scaled_input_distribution.npz") + if !isfile(dist_path) + error("Input distribution file not found at $dist_path") + end + + dist_data = npzread(dist_path) + mean_inputs = Float32.(vec(dist_data["mean_inputs_scaled"])) + inv_cov_inputs = Float64.(dist_data["inv_cov_inputs_scaled"]) + + model = NeuralFoilModel(weights, biases, layer_indices, mean_inputs, + inv_cov_inputs, length(mean_inputs)) + + _NN_CACHE[cache_key] = model + return model +end + +""" + nn_forward(x::AbstractMatrix, model::NeuralFoilModel) + +Forward pass through the neural network. + +# Arguments +- `x`: Input matrix of shape (n_inputs, n_cases) +- `model`: Loaded NeuralFoil model + +# Returns +- Output matrix of shape (n_outputs, n_cases) +""" +function nn_forward(x::AbstractMatrix{T}, model::NeuralFoilModel) where T + n_layers = length(model.weights) + + for i in 1:n_layers + x = model.weights[i] * x .+ model.biases[i] + if i < n_layers # No activation on last layer + x = swish(x) + end + end + + return x +end + +""" + squared_mahalanobis_distance(x::AbstractMatrix, model::NeuralFoilModel) + +Compute squared Mahalanobis distance from training distribution. + +This is used to penalize predictions far from the training data. +""" +function squared_mahalanobis_distance(x::AbstractMatrix, model::NeuralFoilModel) + n_cases = size(x, 2) + result = zeros(n_cases) + + for i in 1:n_cases + x_minus_mean = x[:, i] .- model.mean_inputs + result[i] = dot(x_minus_mean, model.inv_cov_inputs * x_minus_mean) + end + + return result +end + +""" + prepare_inputs(params::KulfanParameters, alpha, Re; + n_crit=9.0, xtr_upper=1.0, xtr_lower=1.0) + +Prepare neural network inputs from Kulfan parameters and flow conditions. + +# Arguments +- `params`: Kulfan CST parameters +- `alpha`: Angle of attack in degrees (scalar or vector) +- `Re`: Reynolds number (scalar or vector) +- `n_crit`: Critical amplification factor (default 9.0) +- `xtr_upper`: Forced transition location on upper surface (0-1) +- `xtr_lower`: Forced transition location on lower surface (0-1) + +# Returns +- Input matrix of shape (25, n_cases) +""" +function prepare_inputs(params::KulfanParameters, alpha, Re; + n_crit=9.0, xtr_upper=1.0, xtr_lower=1.0) + # Ensure vectors + alpha_vec = alpha isa Number ? [alpha] : collect(alpha) + Re_vec = Re isa Number ? fill(Re, length(alpha_vec)) : collect(Re) + n_cases = length(alpha_vec) + + # Broadcast other parameters + n_crit_vec = n_crit isa Number ? fill(n_crit, n_cases) : collect(n_crit) + xtr_upper_vec = xtr_upper isa Number ? fill(xtr_upper, n_cases) : collect(xtr_upper) + xtr_lower_vec = xtr_lower isa Number ? fill(xtr_lower, n_cases) : collect(xtr_lower) + + # Build input matrix (25 x n_cases) + x = zeros(Float32, 25, n_cases) + + # Kulfan parameters (same for all cases) + for i in 1:8 + x[i, :] .= params.upper_weights[i] + x[8+i, :] .= params.lower_weights[i] + end + x[17, :] .= params.leading_edge_weight + x[18, :] .= params.TE_thickness * 50 # Scale factor from NeuralFoil + + # Flow conditions (vary per case) + for i in 1:n_cases + a = alpha_vec[i] + x[19, i] = sind(2 * a) + x[20, i] = cosd(a) + x[21, i] = 1 - cosd(a)^2 + x[22, i] = (log(Re_vec[i]) - 12.5) / 3.5 + x[23, i] = (n_crit_vec[i] - 9) / 4.5 + x[24, i] = xtr_upper_vec[i] + x[25, i] = xtr_lower_vec[i] + end + + return x +end + +""" + flip_inputs(x::AbstractMatrix) + +Flip inputs for symmetry embedding (swap upper/lower, negate alpha). +""" +function flip_inputs(x::AbstractMatrix{T}) where T + x_flip = copy(x) + + # Swap upper and lower weights with sign flip + x_flip[1:8, :] .= -x[9:16, :] # upper <- -lower + x_flip[9:16, :] .= -x[1:8, :] # lower <- -upper + + # Flip LE weight + x_flip[17, :] .= -x[17, :] + + # Flip sin(2*alpha) (index 19) + x_flip[19, :] .= -x[19, :] + + # Swap transition locations + x_flip[24, :] .= x[25, :] # xtr_upper <- xtr_lower + x_flip[25, :] .= x[24, :] # xtr_lower <- xtr_upper + + return x_flip +end + +""" + flip_outputs(y::AbstractMatrix) + +Flip outputs back after evaluating with flipped inputs. +""" +function flip_outputs(y::AbstractMatrix{T}) where T + y_flip = copy(y) + + # CL (index 2) flips sign + y_flip[2, :] .= -y[2, :] + + # CM (index 4) flips sign + y_flip[4, :] .= -y[4, :] + + # Transition locations swap (indices 5, 6) + y_flip[5, :] .= y[6, :] + y_flip[6, :] .= y[5, :] + + # Boundary layer data swaps (we don't use these for polars) + # Indices 7:198 contain BL data that would need swapping + # For simplicity, we skip this as we only need CL, CD, CM + + return y_flip +end + +""" + NeuralFoilResult + +Results from NeuralFoil aerodynamic analysis. +""" +struct NeuralFoilResult + alpha::Vector{Float64} + CL::Vector{Float64} + CD::Vector{Float64} + CM::Vector{Float64} + analysis_confidence::Vector{Float64} +end + +""" + neuralfoil_aero(params::KulfanParameters, alpha, Re; + model_size="xlarge", weights_dir=nothing, kwargs...) + +Compute aerodynamic coefficients using NeuralFoil. + +# Arguments +- `params`: Kulfan CST parameters +- `alpha`: Angle of attack in degrees (scalar or vector) +- `Re`: Reynolds number +- `model_size`: Neural network size (default "xlarge") +- `weights_dir`: Directory containing weight files + +# Keyword Arguments +- `n_crit`: Critical amplification factor (default 9.0) +- `xtr_upper`: Upper surface transition location (default 1.0) +- `xtr_lower`: Lower surface transition location (default 1.0) + +# Returns +- `NeuralFoilResult`: CL, CD, CM and analysis confidence +""" +function neuralfoil_aero(params::KulfanParameters, alpha, Re; + model_size::String="xlarge", weights_dir=nothing, + n_crit=9.0, xtr_upper=1.0, xtr_lower=1.0) + # Load model + model = load_neuralfoil_model(model_size; weights_dir) + + # Prepare inputs + x = prepare_inputs(params, alpha, Re; n_crit, xtr_upper, xtr_lower) + n_cases = size(x, 2) + + # Forward pass + y = nn_forward(x, model) + + # Compute Mahalanobis penalty for confidence + mahal_dist = squared_mahalanobis_distance(x, model) + mahal_penalty = mahal_dist ./ (2 * model.n_inputs) + + # Apply penalty to confidence logit (first output) + y[1, :] .-= mahal_penalty + + # Flip inputs, evaluate, flip outputs back (symmetry embedding) + x_flip = flip_inputs(x) + y_flip = nn_forward(x_flip, model) + + mahal_dist_flip = squared_mahalanobis_distance(x_flip, model) + y_flip[1, :] .-= mahal_dist_flip ./ (2 * model.n_inputs) + + y_unflip = flip_outputs(y_flip) + + # Average outputs for symmetry + y_fused = (y .+ y_unflip) ./ 2 + + # Post-process outputs + analysis_confidence = sigmoid.(y_fused[1, :]) + CL = y_fused[2, :] ./ 2 + CD = exp.((y_fused[3, :] .- 2) .* 2) + CM = y_fused[4, :] ./ 20 + + # Clamp drag to reasonable values + CD = clamp.(CD, 0.0, 1.0) + + alpha_vec = alpha isa Number ? [Float64(alpha)] : Float64.(collect(alpha)) + + return NeuralFoilResult(alpha_vec, Vector{Float64}(CL), Vector{Float64}(CD), + Vector{Float64}(CM), Vector{Float64}(analysis_confidence)) +end + +""" + neuralfoil_aero(x::Vector, y::Vector, alpha, Re; kwargs...) + +Convenience function that fits Kulfan parameters from coordinates first. +""" +function neuralfoil_aero(x::Vector, y::Vector, alpha, Re; kwargs...) + params = fit_kulfan_parameters(x, y) + return neuralfoil_aero(params, alpha, Re; kwargs...) +end diff --git a/src/obj_geometry.jl b/src/obj_geometry.jl index 4835216c..ce447367 100644 --- a/src/obj_geometry.jl +++ b/src/obj_geometry.jl @@ -517,7 +517,8 @@ function ObjWing( spanwise_distribution=UNCHANGED, spanwise_direction=[0.0, 1.0, 0.0], remove_nan=true, use_prior_polar=false, align_to_principal=false, alpha_range=deg2rad.(-5:1:20), delta_range=deg2rad.(-5:1:20), prn=true, - interp_steps=n_panels+1 + interp_steps=n_panels+1, + polars_dir=nothing # Optional: directory with per-section polars (1.csv, 2.csv, ...) ) # Set default: evenly spaced unrefined sections including both tips @@ -572,11 +573,33 @@ function ObjWing( # Create unrefined sections (evenly spaced including both tips) sections = Section{Float64}[] - aero_data = (collect(alpha_range), collect(delta_range), cl_matrix, cd_matrix, cm_matrix) - for gamma in range(-gamma_tip, gamma_tip, n_unrefined_sections) - LE_point = [le_interp[i](gamma) for i in 1:3] - TE_point = [te_interp[i](gamma) for i in 1:3] - push!(sections, Section(LE_point, TE_point, POLAR_MATRICES, aero_data)) + + if !isnothing(polars_dir) + # Use per-section polars from directory (POLAR_VECTORS) + ! prn || @info "Using per-section polars from $polars_dir" + gamma_positions = range(-gamma_tip, gamma_tip, n_unrefined_sections) + for (i, gamma) in enumerate(gamma_positions) + LE_point = [le_interp[j](gamma) for j in 1:3] + TE_point = [te_interp[j](gamma) for j in 1:3] + + polar_path = joinpath(polars_dir, "$i.csv") + if isfile(polar_path) + aero_data_i, _ = load_polar_data(polar_path) + push!(sections, Section(LE_point, TE_point, POLAR_VECTORS, aero_data_i)) + else + @warn "Polar file not found: $polar_path, using INVISCID" + push!(sections, Section(LE_point, TE_point, INVISCID, nothing)) + end + end + else + # Use single polar for all sections (POLAR_MATRICES) + aero_data = (collect(alpha_range), collect(delta_range), + cl_matrix, cd_matrix, cm_matrix) + for gamma in range(-gamma_tip, gamma_tip, n_unrefined_sections) + LE_point = [le_interp[i](gamma) for i in 1:3] + TE_point = [te_interp[i](gamma) for i in 1:3] + push!(sections, Section(LE_point, TE_point, POLAR_MATRICES, aero_data)) + end end panel_props = PanelProperties{n_panels, Float64}() diff --git a/src/obj_slice.jl b/src/obj_slice.jl new file mode 100644 index 00000000..43abccf1 --- /dev/null +++ b/src/obj_slice.jl @@ -0,0 +1,392 @@ +""" +OBJ mesh slicing for extracting 2D airfoil cross-sections. + +This module provides functions to slice 3D wing meshes at specific spanwise +positions to extract 2D airfoil profiles. +""" + +""" + slice_mesh_at_y(vertices::Vector, faces::Vector, y_pos::Real; tol=1e-6) + +Slice a triangulated mesh at a constant y-position. + +# Arguments +- `vertices`: Vector of 3D vertex coordinates [x, y, z] +- `faces`: Vector of face indices (triangles) +- `y_pos`: Y-coordinate of the slice plane + +# Returns +- Vector of line segments [(p1, p2), ...] where p1, p2 are [x, z] coordinates +""" +function slice_mesh_at_y(vertices::Vector, faces::Vector, y_pos::Real; tol=1e-6) + segments = Tuple{Vector{Float64}, Vector{Float64}}[] + + for face in faces + v1 = vertices[face[1]] + v2 = vertices[face[2]] + v3 = vertices[face[3]] + + # Find intersection points of triangle with y = y_pos plane + points = find_triangle_plane_intersection(v1, v2, v3, y_pos; tol) + + if length(points) == 2 + # Valid intersection - two points form a line segment + push!(segments, (points[1], points[2])) + end + end + + return segments +end + +""" + find_triangle_plane_intersection(v1, v2, v3, y_pos; tol=1e-6) + +Find intersection points of a triangle with the plane y = y_pos. + +Returns 0, 1, or 2 points in [x, z] format. +""" +function find_triangle_plane_intersection(v1, v2, v3, y_pos; tol=1e-6) + points = Vector{Float64}[] + + # Check each edge + for (va, vb) in [(v1, v2), (v2, v3), (v3, v1)] + y1, y2 = va[2], vb[2] + + # Check if edge crosses the plane + if (y1 - y_pos) * (y2 - y_pos) < 0 + # Linear interpolation to find crossing point + t = (y_pos - y1) / (y2 - y1) + x = va[1] + t * (vb[1] - va[1]) + z = va[3] + t * (vb[3] - va[3]) + push!(points, [x, z]) + elseif abs(y1 - y_pos) < tol + # Vertex on plane + push!(points, [va[1], va[3]]) + end + end + + # Remove duplicates + unique_points = Vector{Float64}[] + for p in points + is_dup = false + for up in unique_points + if norm(p - up) < tol + is_dup = true + break + end + end + if !is_dup + push!(unique_points, p) + end + end + + return unique_points +end + +""" + order_segments_to_contour(segments; tol=1e-4) + +Order line segments into a continuous contour. + +# Arguments +- `segments`: Vector of (p1, p2) tuples representing line segments + +# Returns +- Vector of [x, z] points forming the ordered contour +""" +function order_segments_to_contour(segments; tol=1e-4) + if isempty(segments) + return Vector{Float64}[] + end + + # Build adjacency - find which segments connect + n = length(segments) + used = falses(n) + + # Start with first segment + contour = [segments[1][1], segments[1][2]] + used[1] = true + n_used = 1 + + # Iteratively find and add connecting segments + max_iter = n * 2 + iter = 0 + while n_used < n && iter < max_iter + iter += 1 + found = false + + current_end = contour[end] + current_start = contour[1] + + for i in 1:n + if used[i] + continue + end + + p1, p2 = segments[i] + + # Check if segment connects to end of contour + if norm(p1 - current_end) < tol + push!(contour, p2) + used[i] = true + n_used += 1 + found = true + break + elseif norm(p2 - current_end) < tol + push!(contour, p1) + used[i] = true + n_used += 1 + found = true + break + # Check if segment connects to start of contour + elseif norm(p1 - current_start) < tol + pushfirst!(contour, p2) + used[i] = true + n_used += 1 + found = true + break + elseif norm(p2 - current_start) < tol + pushfirst!(contour, p1) + used[i] = true + n_used += 1 + found = true + break + end + end + + if !found + # No connecting segment found, might have disjoint contours + # Try to start a new contour segment (for complex geometries) + for i in 1:n + if !used[i] + push!(contour, segments[i][1]) + push!(contour, segments[i][2]) + used[i] = true + n_used += 1 + break + end + end + end + end + + return contour +end + +""" + contour_to_airfoil(contour::Vector{Vector{Float64}}) + +Convert a 2D contour to normalized airfoil coordinates. + +Assumes contour is in [x, z] format where x is chordwise, z is thickness direction. + +# Returns +- (x, y): Normalized airfoil coordinates with chord = 1, LE at origin +""" +function contour_to_airfoil(contour::Vector{Vector{Float64}}) + if isempty(contour) + return Float64[], Float64[] + end + + # Extract x (chordwise) and y (thickness) coordinates + x = [p[1] for p in contour] + y = [p[2] for p in contour] + + # Find leading edge (minimum x) + le_idx = argmin(x) + x_le, y_le = x[le_idx], y[le_idx] + + # Find trailing edge (maximum x) + te_idx = argmax(x) + x_te, y_te = x[te_idx], y[te_idx] + + # Chord length + chord = sqrt((x_te - x_le)^2 + (y_te - y_le)^2) + + if chord < 1e-10 + @warn "Degenerate airfoil with near-zero chord" + return Float64[], Float64[] + end + + # Rotation angle to align chord with x-axis + angle = atan(y_te - y_le, x_te - x_le) + cos_a, sin_a = cos(angle), sin(angle) + + # Transform to normalized coordinates + x_norm = similar(x) + y_norm = similar(y) + for i in eachindex(x) + dx = x[i] - x_le + dy = y[i] - y_le + x_norm[i] = (cos_a * dx + sin_a * dy) / chord + y_norm[i] = (-sin_a * dx + cos_a * dy) / chord + end + + return x_norm, y_norm +end + +""" + reorder_airfoil_selig(x::Vector, y::Vector) + +Reorder airfoil coordinates to Selig format (TE upper -> LE -> TE lower). + +This is the standard format expected by most airfoil tools. +""" +function reorder_airfoil_selig(x::Vector{T}, y::Vector{T}) where T + n = length(x) + if n < 3 + return x, y + end + + # Find LE and TE indices + le_idx = argmin(x) + te_idx = argmax(x) + + # Determine if we need to reverse the ordering + # Check if contour goes clockwise or counterclockwise from TE + # by looking at the y-value trend after TE + + # Split into upper and lower based on y-values relative to camber line + # For simplicity, assume points with y > mean(y at same x) are upper + + # First, separate points + upper_pts = Tuple{T, T}[] + lower_pts = Tuple{T, T}[] + + # Find approximate camber at TE and LE + y_te = y[te_idx] + y_le = y[le_idx] + + for i in eachindex(x) + # Simple heuristic: use sign of y to classify + # (This works for symmetric and slightly cambered airfoils) + if y[i] >= y_le + push!(upper_pts, (x[i], y[i])) + else + push!(lower_pts, (x[i], y[i])) + end + end + + # If classification is bad (unbalanced), try different approach + if length(upper_pts) < n/4 || length(lower_pts) < n/4 + # Split based on contour direction + # LE is at minimum x, so split contour there + before_le = 1:le_idx + after_le = le_idx:n + + # Determine which half is upper based on y values + y_before = mean(y[before_le]) + y_after = mean(y[after_le]) + + if y_before > y_after + upper_pts = [(x[i], y[i]) for i in before_le] + lower_pts = [(x[i], y[i]) for i in after_le] + else + upper_pts = [(x[i], y[i]) for i in after_le] + lower_pts = [(x[i], y[i]) for i in before_le] + end + end + + # Sort upper by decreasing x (TE to LE) + sort!(upper_pts, by=p -> -p[1]) + # Sort lower by increasing x (LE to TE) + sort!(lower_pts, by=p -> p[1]) + + # Combine: TE upper -> LE -> TE lower + x_selig = T[] + y_selig = T[] + + for (px, py) in upper_pts + push!(x_selig, px) + push!(y_selig, py) + end + # Add lower points (skip first if it's duplicate of LE) + for (i, (px, py)) in enumerate(lower_pts) + if i == 1 && !isempty(upper_pts) + ux, uy = upper_pts[end] + if abs(px - ux) < 1e-6 && abs(py - uy) < 1e-6 + continue # Skip duplicate LE + end + end + push!(x_selig, px) + push!(y_selig, py) + end + + return x_selig, y_selig +end + +""" + slice_obj_at_positions(obj_path::String, y_positions::Vector) + +Slice an OBJ mesh at multiple spanwise positions. + +# Arguments +- `obj_path`: Path to .obj file +- `y_positions`: Vector of y-coordinates for slicing + +# Returns +- Vector of (x, y) tuples, one per slice, with normalized airfoil coordinates +""" +function slice_obj_at_positions(obj_path::String, y_positions::Vector{T}) where T + # Load mesh + vertices, faces = read_faces(obj_path) + + # Slice at each position + airfoils = Tuple{Vector{Float64}, Vector{Float64}}[] + + for y_pos in y_positions + segments = slice_mesh_at_y(vertices, faces, Float64(y_pos)) + + if isempty(segments) + @warn "No intersection at y = $y_pos" + push!(airfoils, (Float64[], Float64[])) + continue + end + + contour = order_segments_to_contour(segments) + x, y = contour_to_airfoil(contour) + + if !isempty(x) + x, y = reorder_airfoil_selig(x, y) + end + + push!(airfoils, (x, y)) + end + + return airfoils +end + +""" + slice_obj_wing(obj_path::String, n_slices::Int) + +Slice an OBJ wing mesh into n_slices evenly spaced airfoil sections. + +Slices are positioned at panel centers: with n_slices panels, the positions are +at γ = δ/2, 3δ/2, 5δ/2, ... where δ = 1/n_slices. This avoids degenerate +tip profiles. + +# Arguments +- `obj_path`: Path to .obj file +- `n_slices`: Number of slices (panels) + +# Returns +- Vector of (x, y) tuples with normalized airfoil coordinates +- Vector of y_positions where slices were taken +""" +function slice_obj_wing(obj_path::String, n_slices::Int) + # Load mesh to find bounds + vertices, faces = read_faces(obj_path) + + # Find y-extent of mesh + y_coords = [v[2] for v in vertices] + y_min, y_max = minimum(y_coords), maximum(y_coords) + + # Slice at panel centers: δ/2, 3δ/2, 5δ/2, ... (n_slices-1/2)δ + # where δ = span / n_slices + span = y_max - y_min + delta = span / n_slices + y_positions = [y_min + delta/2 + i*delta for i in 0:(n_slices-1)] + + airfoils = slice_obj_at_positions(obj_path, y_positions) + + return airfoils, y_positions +end diff --git a/src/obj_to_yaml.jl b/src/obj_to_yaml.jl new file mode 100644 index 00000000..ae26f7b0 --- /dev/null +++ b/src/obj_to_yaml.jl @@ -0,0 +1,229 @@ +""" +Adapter that converts a 3D wing `.obj` mesh into the package's native YAML +geometry route: per-section airfoil `.dat` files, NeuralFoil polar CSVs, and a +geometry YAML referencing them. After conversion everything follows the standard +`Wing(geometry_file)` path. +""" + +using Printf: @sprintf + +""" + read_dat_coordinates(path) -> (x, y) + +Read airfoil coordinates from a `.dat` file, skipping header and comment lines. +""" +function read_dat_coordinates(path::String) + x = Float64[] + y = Float64[] + for line in eachline(path) + s = strip(line) + (isempty(s) || !(isdigit(s[1]) || s[1] == '-' || s[1] == '.')) && continue + parts = split(s) + length(parts) >= 2 || continue + xp = tryparse(Float64, parts[1]) + yp = tryparse(Float64, parts[2]) + (xp === nothing || yp === nothing) && continue + push!(x, xp) + push!(y, yp) + end + return x, y +end + +""" + airfoils_from_yaml(geometry_file) -> Vector of (; id, x, y, x_raw, y_raw) + +Read each airfoil's coordinates from the `.dat` files referenced by a YAML +geometry's `wing_airfoils`. `x, y` come from `dat_file` (the fitted airfoil); +`x_raw, y_raw` come from `raw_dat_file` if present (the raw sliced points), and +are empty otherwise. Relative paths resolve against the geometry file's directory. +""" +function airfoils_from_yaml(geometry_file::String) + data = YAML.load_file(geometry_file) + airfoils = data["wing_airfoils"] + headers = airfoils["headers"] + base = dirname(geometry_file) + resolve(rel) = isabspath(rel) ? rel : joinpath(base, rel) + out = NamedTuple[] + for row in airfoils["data"] + d = Dict(zip(headers, row)) + dat_rel = get(d["info_dict"], "dat_file", "") + (isempty(dat_rel) || !isfile(resolve(dat_rel))) && continue + x, y = read_dat_coordinates(resolve(dat_rel)) + x_raw, y_raw = Float64[], Float64[] + raw_rel = get(d["info_dict"], "raw_dat_file", "") + if !isempty(raw_rel) && isfile(resolve(raw_rel)) + x_raw, y_raw = read_dat_coordinates(resolve(raw_rel)) + end + push!(out, (id=Int(d["airfoil_id"]), x=x, y=y, x_raw=x_raw, y_raw=y_raw)) + end + return out +end + +""" + slice_obj_section(vertices, faces, y) + +Slice a mesh at spanwise position `y` and return +`(LE_point, TE_point, x_airfoil, y_airfoil)`: +the un-normalized 3D leading- and trailing-edge points (min-x and max-x of the +slice) and the normalized Selig airfoil coordinates. Returns `nothing` if the +slice is degenerate. +""" +function slice_obj_section(vertices, faces, y) + segments = slice_mesh_at_y(vertices, faces, Float64(y)) + isempty(segments) && return nothing + + contour = order_segments_to_contour(segments) + length(contour) < 5 && return nothing + + xs = [p[1] for p in contour] + le_idx = argmin(xs) + te_idx = argmax(xs) + LE_point = [contour[le_idx][1], Float64(y), contour[le_idx][2]] + TE_point = [contour[te_idx][1], Float64(y), contour[te_idx][2]] + + x_airfoil, y_airfoil = contour_to_airfoil(contour) + isempty(x_airfoil) && return nothing + x_airfoil, y_airfoil = reorder_airfoil_selig(x_airfoil, y_airfoil) + + return LE_point, TE_point, x_airfoil, y_airfoil +end + +""" + write_dat(filepath, name, x, y) + +Write airfoil coordinates to a Selig-format `.dat` file. +""" +function write_dat(filepath::String, name::String, x::Vector, y::Vector) + open(filepath, "w") do io + println(io, name) + for i in eachindex(x) + println(io, @sprintf("%.8f %.8f", x[i], y[i])) + end + end + return filepath +end + +""" + obj_to_yaml(obj_path, output_dir; n_sections, Re, alpha_range=-180:1:180, + model_size="xlarge", weights_dir=nothing, n_crit=9.0, + fit_method=LeastSquaresFit(), + spanwise_direction=[0.0, 1.0, 0.0], verbose=true) + +Convert a 3D wing `.obj` mesh to the native YAML geometry route. + +Slices the mesh at `n_sections` spanwise stations; for each station the +leading-/trailing-edge points come from the slice itself (min-x / max-x), and +the airfoil shape is fitted to Kulfan parameters and evaluated with NeuralFoil. + +`fit_method` selects the Kulfan fit (see [`fit_kulfan_parameters`](@ref)). Pass +an [`EnvelopeFit`](@ref) to wrap each section tightly *around* the slice points; +this is robust to the noisy interior-structure points of a ram-air kite slice +(ribs, spars) that otherwise pull the default [`LeastSquaresFit`](@ref) inward. + +# Output +Writes into `output_dir`: +- `airfoils/{i}.dat` — fitted Kulfan airfoil coordinates (matches the polar) +- `airfoils/{i}_raw.dat` — raw sliced section points (the fit is wrapped around these) +- `polars/{i}.csv` — NeuralFoil polar (alpha, Cd, Cs, Cl, Cm) +- `geometry.yaml` — `wing_sections` + `wing_airfoils` referencing the above + +# Returns +- Path to the written `geometry.yaml`. +""" +function obj_to_yaml(obj_path::String, output_dir::String; + n_sections::Int, Re::Real, + alpha_range=-180:1:180, + model_size::String="xlarge", weights_dir=nothing, + n_crit=9.0, fit_method::KulfanFitMethod=LeastSquaresFit(), + spanwise_direction=[0.0, 1.0, 0.0], + verbose::Bool=true) + (!endswith(obj_path, ".obj")) && (obj_path *= ".obj") + isfile(obj_path) || error("OBJ file not found: $obj_path") + !isapprox(spanwise_direction, [0.0, 1.0, 0.0]) && + throw(ArgumentError("Spanwise direction has to be [0.0, 1.0, 0.0]")) + + airfoil_dir = joinpath(output_dir, "airfoils") + polar_dir = joinpath(output_dir, "polars") + mkpath(airfoil_dir) + mkpath(polar_dir) + + vertices, faces = read_faces(obj_path) + y_coords = [v[2] for v in vertices] + y_min, y_max = minimum(y_coords), maximum(y_coords) + delta = (y_max - y_min) / n_sections + y_positions = [y_min + delta / 2 + (i - 1) * delta for i in 1:n_sections] + + alphas = collect(Float64, alpha_range) + load_neuralfoil_model(model_size; weights_dir) + + section_rows = Vector{Any}[] + airfoil_rows = Vector{Any}[] + + for (i, y) in enumerate(y_positions) + verbose && print(" Section $i (y=$(round(y, digits=3)))... ") + slice = slice_obj_section(vertices, faces, y) + if slice === nothing + verbose && println("degenerate, skipped") + continue + end + LE_point, TE_point, xa, ya = slice + + dat_rel = joinpath("airfoils", "$i.dat") + raw_rel = joinpath("airfoils", "$(i)_raw.dat") + csv_rel = joinpath("polars", "$i.csv") + + params = fit_kulfan_parameters(xa, ya, fit_method) + x_fit, y_fit = kulfan_to_coordinates(params) + x_raw, y_raw = inset_airfoil(xa, ya, fit_clearance(fit_method)) + write_dat(joinpath(output_dir, dat_rel), "section_$i", x_fit, y_fit) + write_dat(joinpath(output_dir, raw_rel), "section_$(i)_raw", x_raw, y_raw) + + result = neuralfoil_aero(params, alphas, Float64(Re); + model_size, weights_dir, n_crit) + write_polar_csv(joinpath(output_dir, csv_rel), result) + + push!(section_rows, Any[i, LE_point[1], LE_point[2], LE_point[3], + TE_point[1], TE_point[2], TE_point[3]]) + push!(airfoil_rows, Any[i, "polar_vectors", + Dict("dat_file" => dat_rel, "raw_dat_file" => raw_rel, + "csv_file_path" => csv_rel)]) + verbose && println("done (CL_max=$(round(maximum(result.CL), digits=2)))") + end + + isempty(section_rows) && error("No valid sections sliced from $obj_path") + + yaml_path = joinpath(output_dir, "geometry.yaml") + write_geometry_yaml(yaml_path, section_rows, airfoil_rows) + verbose && @info "Wrote geometry to $yaml_path ($(length(section_rows)) sections)" + return yaml_path +end + +""" + write_geometry_yaml(path, section_rows, airfoil_rows) + +Write a geometry YAML in compact flow style: one-line headers and one line per +data row. `section_rows` are `[airfoil_id, LE_x, LE_y, LE_z, TE_x, TE_y, TE_z]`; +`airfoil_rows` are `[airfoil_id, type, info_dict]` where `info_dict` holds +`dat_file`, `csv_file_path`, and optionally `raw_dat_file`. +""" +function write_geometry_yaml(path::String, section_rows, airfoil_rows) + open(path, "w") do io + println(io, "wing_sections:") + println(io, " headers: [airfoil_id, LE_x, LE_y, LE_z, TE_x, TE_y, TE_z]") + println(io, " data:") + for row in section_rows + vals = [v isa Integer ? string(v) : string(round(v; digits=3)) for v in row] + println(io, " - [", join(vals, ", "), "]") + end + println(io, "wing_airfoils:") + println(io, " headers: [airfoil_id, type, info_dict]") + println(io, " data:") + for (id, type, info) in airfoil_rows + keys_ordered = ["dat_file", "raw_dat_file", "csv_file_path"] + parts = ["$k: \"$(info[k])\"" for k in keys_ordered if haskey(info, k)] + inline = "{" * join(parts, ", ") * "}" + println(io, " - [", id, ", ", type, ", ", inline, "]") + end + end + return path +end diff --git a/src/polar_generation.jl b/src/polar_generation.jl new file mode 100644 index 00000000..cc32b9ec --- /dev/null +++ b/src/polar_generation.jl @@ -0,0 +1,174 @@ +""" +Polar generation pipeline using NeuralFoil. + +This module provides functions to generate aerodynamic polars from OBJ meshes +using the NeuralFoil neural network. +""" + +using DelimitedFiles +using Printf: @sprintf + +""" + generate_neuralfoil_polars(obj_path::String, output_dir::String; + n_slices::Int, Re::Real, + alpha_range=-180:1:180, + model_size::String="xlarge", + weights_dir=nothing, + n_crit=9.0, + verbose=true) + +Generate aerodynamic polars for wing sections using NeuralFoil. + +# Arguments +- `obj_path`: Path to OBJ file containing 3D wing mesh +- `output_dir`: Directory to write polar CSV files + +# Keyword Arguments +- `n_slices`: Number of spanwise slices (typically n_panels+1) +- `Re`: Reynolds number for polar evaluation +- `alpha_range`: Angle of attack range in degrees (default -180:1:180) +- `model_size`: NeuralFoil model size (default "xlarge") +- `weights_dir`: Directory containing NeuralFoil weights +- `n_crit`: Critical amplification factor (default 9.0) +- `verbose`: Print progress information (default true) + +# Output +Writes CSV files to `output_dir/{n}.csv` in format: +``` +alpha,Cd,Cs,Cl,Cm +-180.0,0.0,0.0,0.0,0.0 +... +``` +""" +function generate_neuralfoil_polars(obj_path::String, output_dir::String; + n_slices::Int, Re::Real, + alpha_range=-180:1:180, + model_size::String="xlarge", + weights_dir=nothing, + n_crit=9.0, + verbose=true) + # Validate inputs + if !isfile(obj_path) + error("OBJ file not found: $obj_path") + end + + # Create output directory + mkpath(output_dir) + + verbose && @info "Slicing OBJ mesh at $n_slices positions..." + + # Slice the mesh + airfoils, y_positions = slice_obj_wing(obj_path, n_slices) + + verbose && @info "Processing $(length(airfoils)) airfoil sections..." + + # Convert alpha range to vector + alphas = collect(Float64, alpha_range) + + # Load NeuralFoil model once + model = load_neuralfoil_model(model_size; weights_dir) + + # Process each slice + for (i, (x, y)) in enumerate(airfoils) + if isempty(x) || length(x) < 5 + @warn "Slice $i: Insufficient points, skipping" + continue + end + + verbose && print(" Slice $i (y=$(round(y_positions[i], digits=3)))... ") + + try + # Fit Kulfan parameters + params = fit_kulfan_parameters(x, y) + + # Evaluate NeuralFoil + result = neuralfoil_aero(params, alphas, Float64(Re); + model_size, weights_dir, n_crit) + + # Write polar to CSV + write_polar_csv(joinpath(output_dir, "$i.csv"), result) + + verbose && println("done (CL_max=$(round(maximum(result.CL), digits=2)))") + + catch e + @warn "Slice $i failed: $e" + continue + end + end + + verbose && @info "Polars written to $output_dir" + return nothing +end + +""" + write_polar_csv(filepath::String, result::NeuralFoilResult) + +Write NeuralFoil results to CSV file in standard polar format. +""" +function write_polar_csv(filepath::String, result::NeuralFoilResult) + n = length(result.alpha) + + # Build data matrix + # Format: alpha, Cd, Cs, Cl, Cm + data = zeros(n, 5) + data[:, 1] = result.alpha + data[:, 2] = result.CD + data[:, 3] = zeros(n) # Cs = 0 for 2D airfoils + data[:, 4] = result.CL + data[:, 5] = result.CM + + # Write with header + open(filepath, "w") do io + println(io, "alpha,Cd,Cs,Cl,Cm") + for i in 1:n + println(io, join([@sprintf("%.16g", v) for v in data[i, :]], ",")) + end + end +end + +""" + generate_polar_from_coordinates(x::Vector, y::Vector, output_path::String; + Re::Real, alpha_range=-180:1:180, kwargs...) + +Generate a single polar from airfoil coordinates. + +# Arguments +- `x, y`: Airfoil coordinates (will be normalized) +- `output_path`: Path to write CSV file +- `Re`: Reynolds number + +# Keyword Arguments +- `alpha_range`: Angle of attack range in degrees (default -180:1:180) +- Additional kwargs passed to neuralfoil_aero +""" +function generate_polar_from_coordinates(x::Vector, y::Vector, output_path::String; + Re::Real, alpha_range=-180:1:180, kwargs...) + alphas = collect(Float64, alpha_range) + + params = fit_kulfan_parameters(x, y) + result = neuralfoil_aero(params, alphas, Float64(Re); kwargs...) + + write_polar_csv(output_path, result) + return result +end + +""" + generate_polar_from_dat(dat_path::String, output_path::String; + Re::Real, kwargs...) + +Generate polar from a .dat airfoil coordinate file. +""" +function generate_polar_from_dat(dat_path::String, output_path::String; + Re::Real, kwargs...) + if !isfile(dat_path) + error("DAT file not found: $dat_path") + end + + x, y = read_dat_coordinates(dat_path) + + if isempty(x) + error("No valid coordinates found in $dat_path") + end + + return generate_polar_from_coordinates(x, y, output_path; Re, kwargs...) +end diff --git a/src/wing_geometry.jl b/src/wing_geometry.jl index c572f337..2486264a 100644 --- a/src/wing_geometry.jl +++ b/src/wing_geometry.jl @@ -230,6 +230,23 @@ Represents a wing composed of multiple sections with aerodynamic properties. - `area_interp::Union{Nothing, Extrapolation}`: Area interpolation - `cache::Vector{PreallocationTools.LazyBufferCache{typeof(identity), typeof(identity)}}`: Preallocated buffers +# Deformation Fields (optional, for deformable wings) +- `non_deformed_sections::Vector{Section}`: Original undeformed sections +- `theta_dist::Vector{Float64}`: Panel twist angle distribution +- `delta_dist::Vector{Float64}`: Trailing edge deflection distribution + +# Physical Properties (optional, for OBJ-based wings) +- `mass::Float64`: Total wing mass in kg (0.0 if not applicable) +- `gamma_tip::Float64`: Angular extent from center to wing tip (0.0 if not applicable) +- `inertia_tensor::Matrix{Float64}`: 3x3 inertia tensor (empty if not applicable) +- `T_cad_body::MVec3`: Translation from CAD to body frame (zeros if not applicable) +- `R_cad_body::MMat3`: Rotation from CAD to body frame (identity if not applicable) +- `radius::Float64`: Wing curvature radius (0.0 if not applicable) +- `le_interp::Union{Nothing, NTuple{3, Extrapolation}}`: Leading edge interpolation +- `te_interp::Union{Nothing, NTuple{3, Extrapolation}}`: Trailing edge interpolation +- `area_interp::Union{Nothing, Extrapolation}`: Area interpolation +- `cache::Vector{PreallocationTools.LazyBufferCache{typeof(identity), typeof(identity)}}`: Preallocated buffers + """ mutable struct Wing{P, T} <: AbstractWing{T} n_panels::Int16 diff --git a/src/yaml_geometry.jl b/src/yaml_geometry.jl index 45e52a1e..6c5f9038 100644 --- a/src/yaml_geometry.jl +++ b/src/yaml_geometry.jl @@ -1,6 +1,7 @@ # Data structures for YAML wing geometry @with_kw struct WingAirfoilInfo csv_file_path::String + dat_file::String = "" end @with_kw struct WingSectionData @@ -228,7 +229,9 @@ function Wing( push!(airfoils, WingAirfoilData( airfoil_id = airfoil_dict["airfoil_id"], type = airfoil_dict["type"], - info_dict = WingAirfoilInfo(csv_file_path = get(airfoil_dict["info_dict"], "csv_file_path", "")) + info_dict = WingAirfoilInfo( + csv_file_path = get(airfoil_dict["info_dict"], "csv_file_path", ""), + dat_file = get(airfoil_dict["info_dict"], "dat_file", "")) )) end diff --git a/test/Aqua.jl b/test/Aqua.jl index 4ed9be3c..2c2f3755 100644 --- a/test/Aqua.jl +++ b/test/Aqua.jl @@ -2,8 +2,7 @@ using Aqua, VortexStepMethod, Test @testset "Aqua.jl" begin Aqua.test_all( VortexStepMethod; - stale_deps=(ignore=[:Xfoil, :Timers, :PyCall],), - deps_compat=(ignore=[:PyCall],), + stale_deps=(ignore=[:Xfoil, :Timers],), persistent_tasks=false ) end diff --git a/test/LocalPreferences.toml.default b/test/LocalPreferences.toml.default deleted file mode 100644 index a2ee2658..00000000 --- a/test/LocalPreferences.toml.default +++ /dev/null @@ -1,2 +0,0 @@ -[CondaPkg] -backend = "Null" diff --git a/test/Project.toml b/test/Project.toml index e81a7223..5e1ffca3 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -3,7 +3,6 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -ControlPlots = "23c2ee80-7a9e-4350-b264-8e670f12517c" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" @@ -12,8 +11,8 @@ ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" +MakieControlPlots = "6d616b69-6563-4f6e-8472-6f6c706c6f74" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" @@ -30,13 +29,12 @@ Aqua = "0.8" BenchmarkTools = "1" CSV = "0.10" CairoMakie = "0" -ControlPlots = "0.2.5, 0.3" DataFrames = "1.7" Documenter = "1.8" Interpolations = "0.15, 0.16" LinearAlgebra = "1" Logging = "1" -PythonCall = "0.9" +MakieControlPlots = "0.1.5" Random = "1.10.0" Serialization = "1" StaticArrays = "1" diff --git a/test/neuralfoil/test_neuralfoil.jl b/test/neuralfoil/test_neuralfoil.jl new file mode 100644 index 00000000..a5bf03ee --- /dev/null +++ b/test/neuralfoil/test_neuralfoil.jl @@ -0,0 +1,91 @@ +using Test +using VortexStepMethod +using VortexStepMethod: KulfanParameters, LeastSquaresFit, EnvelopeFit, + fit_kulfan_parameters, kulfan_to_coordinates, neuralfoil_aero, + class_function, bernstein_basis, leading_edge_basis, + normalize_airfoil, inset_airfoil, fit_clearance + +read_dat_coords(path) = begin + x = Float64[]; y = Float64[] + for ln in eachline(path) + s = strip(ln) + (isempty(s) || !(isdigit(s[1]) || s[1] == '-' || s[1] == '.')) && continue + p = split(s); length(p) >= 2 || continue + push!(x, parse(Float64, p[1])); push!(y, parse(Float64, p[2])) + end + x, y +end + +@testset "Kulfan fit and NeuralFoil" begin + @testset "Round-trip recovers known parameters" begin + truth = KulfanParameters(fill(0.2, 8), fill(-0.2, 8), 0.0, 0.0) + x, y = kulfan_to_coordinates(truth; n_points=120) + fit = fit_kulfan_parameters(collect(x), collect(y)) + @test maximum(abs.(fit.upper_weights .- truth.upper_weights)) < 1e-5 + @test maximum(abs.(fit.lower_weights .- truth.lower_weights)) < 1e-5 + @test abs(fit.leading_edge_weight) < 1e-5 + @test abs(fit.TE_thickness) < 1e-10 + end + + dat = joinpath(@__DIR__, "..", "..", "data", "ram_air_kite", "ram_air_kite_foil.dat") + xr, yr = read_dat_coords(dat) + params = fit_kulfan_parameters(xr, yr) + + @testset "Fit matches aerosandbox get_kulfan_parameters" begin + # Reference values from aerosandbox 4.2.9 get_kulfan_parameters(n_weights_per_side=8) + ref_upper = [0.19725544843504217, 0.010915219977460575, 0.5941307473734625, + -0.27110843470789603, 0.5355058274193715, -0.17717585452753137, + 0.23021043555024268, -0.00473923052893821] + ref_lower = [-0.3653153052872525, -0.5523615615783967, 0.13925743643180583, + -0.5611284190191309, 0.11545728044627838, -0.3801887792186299, + -0.022461606251837227, -0.176490579153197] + @test maximum(abs.(params.upper_weights .- ref_upper)) < 1e-9 + @test maximum(abs.(params.lower_weights .- ref_lower)) < 1e-9 + @test abs(params.leading_edge_weight - 0.9180525576877088) < 1e-9 + @test params.TE_thickness ≈ 0.0 atol = 1e-12 + end + + @testset "Envelope fit encloses points with clearance" begin + # Measure clearance in the fit's own frame: the points are inset by the + # method's clearance before fitting (see inset_airfoil). + function min_clearance(method) + params = fit_kulfan_parameters(xr, yr, method) + xi, yi = inset_airfoil(xr, yr, fit_clearance(method)) + xc = clamp.(xi, 0.0, 1.0) + mid = (xi .> 0.05) .& (xi .< 0.95) + n = length(params.upper_weights) + shape = class_function(xc) .* (bernstein_basis(xc, n - 1) * + params.upper_weights) .+ params.leading_edge_weight .* + leading_edge_basis(xc, n) + upper = shape .+ xc .* (params.TE_thickness / 2) + lower = class_function(xc) .* (bernstein_basis(xc, n - 1) * + params.lower_weights) .+ params.leading_edge_weight .* + leading_edge_basis(xc, n) .- xc .* (params.TE_thickness / 2) + return minimum((upper .- yi)[mid]), minimum((yi .- lower)[mid]) + end + + env_upper, env_lower = min_clearance(EnvelopeFit(min_distance=0.005)) + @test env_upper > 0.0035 + @test env_lower > 0.0035 + + lsq_upper, _ = min_clearance(LeastSquaresFit()) + @test lsq_upper < env_upper + + wide_upper, _ = min_clearance(EnvelopeFit(min_distance=0.02)) + @test wide_upper > env_upper + end + + @testset "NeuralFoil matches Python neuralfoil (xlarge)" begin + # Reference CL/CD/CM from neuralfoil 0.3.2 get_aero_from_kulfan_parameters, Re=5e5 + alphas = Float64.(-10:2:20) + ref_CL = [-1.1223364415631283, -0.9446879205845478, -0.7397, -0.5262, -0.3103, + -0.091, 0.1345, 0.3571, 0.5788, 0.8821, 1.0837, 1.2544, 1.4, + 1.4226, 1.3811, 1.2739] + res = neuralfoil_aero(params, alphas, 5e5; model_size="xlarge") + # Compare against full-precision endpoints + rounded interior to 1e-3 + @test res.CL[1] ≈ -1.1223364415631283 rtol = 1e-4 + @test res.CL[6] ≈ -0.091 atol = 1e-3 + @test res.CL[14] ≈ 1.4226 atol = 1e-3 + @test maximum(abs.(round.(res.CL; digits=4) .- ref_CL)) < 2e-3 + end +end diff --git a/test/plotting/test_backend_coexistence.jl b/test/plotting/test_backend_coexistence.jl deleted file mode 100644 index dc149872..00000000 --- a/test/plotting/test_backend_coexistence.jl +++ /dev/null @@ -1,42 +0,0 @@ -# Regression test for https://github.com/OpenSourceAWE/VortexStepMethod.jl/issues/236 -# Verifies that loading both Makie and ControlPlots in the same process: -# (1) does not cause method-redefinition / precompile errors, and -# (2) set_plot_backend! correctly switches which backend the no-backend wrappers route to. - -using CairoMakie -using ControlPlots - -@testset "Backend coexistence (Makie + ControlPlots)" begin - backend_before = VortexStepMethod._PLOT_BACKEND[] - try - # (1) Both extensions must be loaded without errors when both packages are in scope. - # If either `using` above threw a method-redefinition error we would never reach here. - makie_ext = Base.get_extension(VortexStepMethod, :VortexStepMethodMakieExt) - cp_ext = Base.get_extension(VortexStepMethod, :VortexStepMethodControlPlotsExt) - @test makie_ext !== nothing - - # The ControlPlots extension depends on PythonCall/matplotlib, which can - # fail to load (e.g. segfault during precompilation) on some platforms - # such as macOS-aarch64. Skip the ControlPlots-specific checks when the - # extension is unavailable rather than failing the whole suite. - if cp_ext === nothing - @test_skip "VortexStepMethodControlPlotsExt unavailable (ControlPlots failed to load)" - return - end - @test cp_ext !== nothing - - # (2) set_plot_backend! correctly switches the active backend. - set_plot_backend!(ControlPlotsBackend()) - @test VortexStepMethod._PLOT_BACKEND[] isa VortexStepMethod.ControlPlotsBackend - - set_plot_backend!(MakieBackend()) - @test VortexStepMethod._PLOT_BACKEND[] isa VortexStepMethod.MakieBackend - - # Round-trip: switch back to ControlPlots. - set_plot_backend!(ControlPlotsBackend()) - @test VortexStepMethod._PLOT_BACKEND[] isa VortexStepMethod.ControlPlotsBackend - finally - # Restore whatever backend was active before this testset ran. - VortexStepMethod._PLOT_BACKEND[] = backend_before - end -end diff --git a/test/plotting/test_plotting.jl b/test/plotting/test_plotting.jl index b779fe15..17ab85bd 100644 --- a/test/plotting/test_plotting.jl +++ b/test/plotting/test_plotting.jl @@ -13,21 +13,16 @@ module FakeMakieReturnsOtherModule import Base current_backend() = Base end -backend = if "plot-controlplots" in ARGS - using ControlPlots - import ControlPlots: plt - using PythonCall: pyconvert - "ControlPlots" -else - using CairoMakie - "Makie" -end +using CairoMakie +using MakieControlPlots +# MakieControlPlots activates GLMakie on load; force CairoMakie so headless +# figure saving uses the software backend. +CairoMakie.activate!() using VortexStepMethod using Test -const makie_ext = backend == "Makie" ? - Base.get_extension(VortexStepMethod, :VortexStepMethodMakieExt) : nothing +const makie_ext = Base.get_extension(VortexStepMethod, :VortexStepMethodMakieExt) # Resolve repo data directory for ram air kite assets _ram_data_dir = joinpath(dirname(dirname(@__DIR__)), @@ -88,7 +83,7 @@ function create_body_aero() body_aero end -@testset "Plotting ($backend)" begin +@testset "Plotting (Makie)" begin save_dir = tempdir() body_aero = create_body_aero() @@ -99,21 +94,11 @@ end save_path=save_dir, is_save=true, is_show=false) - if backend == "Makie" - @test fig isa Figure - else - @test fig !== nothing - end + @test fig isa Figure - if backend == "Makie" - @test hasmethod(VortexStepMethod.show_plot, Tuple{Figure}) - @test_throws MethodError VortexStepMethod.show_plot(nothing) - @test_nowarn VortexStepMethod.show_plot(fig) - else - FigType = plt.Figure - @test hasmethod(VortexStepMethod.show_plot, Tuple{FigType}) - @test_throws MethodError VortexStepMethod.show_plot(nothing) - end + @test hasmethod(VortexStepMethod.show_plot, Tuple{Figure}) + @test_throws MethodError VortexStepMethod.show_plot(nothing) + @test_nowarn VortexStepMethod.show_plot(fig) @test isfile(joinpath(save_dir, "Rectangular_wing_geometry_angled_view.png")) @@ -151,11 +136,7 @@ end title="Spanwise Distributions", is_show=false ) - if backend == "Makie" - @test fig isa Figure - else - @test fig !== nothing - end + @test fig isa Figure # Plot polar curves v_a = 20.0 @@ -173,11 +154,7 @@ end is_save=true, is_show=false ) - if backend == "Makie" - @test fig isa Figure - else - @test fig !== nothing - end + @test fig isa Figure @test isfile(joinpath(save_dir, "Rectangular_Wing_Polars.png")) safe_rm(joinpath(save_dir, "Rectangular_Wing_Polars.png")) @@ -194,11 +171,7 @@ end is_show=false, cl_over_cd=false ) - if backend == "Makie" - @test fig isa Figure - else - @test fig !== nothing - end + @test fig isa Figure # Plot combined analysis with cl_over_cd fig = plot_combined_analysis( @@ -212,11 +185,7 @@ end is_show=false, cl_over_cd=true ) - if backend == "Makie" - @test fig isa Figure - else - @test fig !== nothing - end + @test fig isa Figure # Plot combined analysis with cl_over_cd=false fig = plot_combined_analysis( @@ -230,30 +199,18 @@ end is_show=false, cl_over_cd=false ) - if backend == "Makie" - @test fig isa Figure - else - @test fig !== nothing - end + @test fig isa Figure # Test polar data plotting body_aero = BodyAerodynamics([ram_wing]) fig = plot_polar_data(body_aero; is_show=false) - if backend == "Makie" - @test fig isa Figure - else - @test fig !== nothing - end + @test fig isa Figure fig_rect = plot_polar_data(body_aero; alphas=collect(deg2rad.(-5:1.0:15)), delta_tes=collect(deg2rad.(-3:1.0:5)), is_show=false) - if backend == "Makie" - @test fig_rect isa Figure - else - @test fig_rect !== nothing - end + @test fig_rect isa Figure # Tests for both backends body_aero_empty = create_body_aero() @@ -302,25 +259,7 @@ end safe_rm(literature_csv) end - # CP-specific tests (DPI, matplotlib internals) - if backend == "ControlPlots" - # `get_dpi()` returns a Python float; convert to a Julia Float64 so the - # comparisons below evaluate to a Julia `Bool` rather than a `Py` object. - get_dpi(fig) = pyconvert(Float64, fig.get_dpi()) - - fig_dpi = plt.figure() - default_dpi = get_dpi(fig_dpi) - @test default_dpi != 173 - - show_plot(fig_dpi; dpi=173) - @test get_dpi(fig_dpi) == 173 - - show_plot(fig_dpi) - @test get_dpi(fig_dpi) == 130 - plt.close(fig_dpi) - end - - # Unit tests for shared extract_literature_polar_data (both backends) + # Unit tests for shared extract_literature_polar_data using DelimitedFiles # Tuple parsing branch (e.g. readdlm(...; header=true) shape) @@ -458,8 +397,7 @@ end safe_rm(no_cm_path) # Tests for save_plot function - if backend == "Makie" - @testset "_active_backend_prefers_vector_output" begin + @testset "_active_backend_prefers_vector_output" begin @test makie_ext !== nothing active_backend_prefers_vector_output = @@ -538,6 +476,43 @@ end # Test 8: save_plot raises error when save_path is nothing @test_throws ArgumentError VortexStepMethod.save_plot(fig, nothing, "test_title", data_type=".png") +end + +@testset "plot_section_polars and plot_airfoils" begin + # Build a wing with POLAR_VECTORS sections for plot_section_polars + alpha = deg2rad.(collect(-5.0:1.0:15.0)) + cl = 0.1 .* rad2deg.(alpha) + cd = fill(0.02, length(alpha)) + cm = fill(-0.05, length(alpha)) + aero_data = (alpha, cl, cd, cm) + sec_wing = Wing(4, spanwise_distribution=LINEAR) + add_section!(sec_wing, [0.0, 1.0, 0.0], [1.0, 1.0, 0.0], POLAR_VECTORS, aero_data) + add_section!(sec_wing, [0.0, -1.0, 0.0], [1.0, -1.0, 0.0], POLAR_VECTORS, aero_data) + refine!(sec_wing) + sec_body = BodyAerodynamics([sec_wing]) + + plt = plot_section_polars(sec_body, :cl; is_show=false) + @test plt !== nothing + @test_throws ArgumentError plot_section_polars(sec_body, :bad; is_show=false) + + body_inviscid = create_body_aero() + @test_throws Exception plot_section_polars(body_inviscid; is_show=false) + + # plot_airfoils from a YAML referencing a .dat file + foil = joinpath(tempdir(), "ram_air_kite_foil.dat") + cp(joinpath(_ram_data_dir, "ram_air_kite_foil.dat"), foil; force=true) + yaml_path = joinpath(tempdir(), "airfoils_test.yaml") + open(yaml_path, "w") do io + write(io, """ + wing_airfoils: + headers: [airfoil_id, info_dict] + data: + - [1, {dat_file: "$foil"}] + - [2, {dat_file: "$foil"}] + """) end + fig_af = plot_airfoils(yaml_path; is_show=false) + @test fig_af isa Figure + safe_rm(yaml_path) end nothing diff --git a/test/runtests.jl b/test/runtests.jl index 602afcdc..b1740adf 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -4,13 +4,10 @@ using Test, VortexStepMethod cd(@__DIR__) # ensure we're in test/ no matter how tests are launched include("test_data_utils.jl") -# Filter special args from pattern matching -const test_patterns = filter(a -> a != "plot-controlplots", ARGS) +const test_patterns = ARGS println("Running tests...") -if "plot-controlplots" in ARGS - println("Running plotting tests with ControlPlots backend") -elseif !isempty(test_patterns) +if !isempty(test_patterns) println("Filtering tests matching: ", test_patterns) end @@ -34,33 +31,29 @@ const build_is_production_build = let v = get(ENV, build_is_production_build_env end::Bool function include_selected_tests() - if "plot-controlplots" in ARGS - include("plotting/test_plotting.jl") - else - if build_is_production_build && should_run_test("bench") - include("bench.jl") - end - should_run_test("body_aerodynamics/test_body_aerodynamics.jl") && include("body_aerodynamics/test_body_aerodynamics.jl") - should_run_test("body_aerodynamics/test_results.jl") && include("body_aerodynamics/test_results.jl") - should_run_test("test_refinement_validation.jl") && include("test_refinement_validation.jl") - should_run_test("filament/test_bound_filament.jl") && include("filament/test_bound_filament.jl") - should_run_test("filament/test_semi_infinite_filament.jl") && include("filament/test_semi_infinite_filament.jl") - should_run_test("panel/test_panel.jl") && include("panel/test_panel.jl") - should_run_test("plotting/test_plotting.jl") && include("plotting/test_plotting.jl") - should_run_test("plotting/test_backend_coexistence.jl") && include("plotting/test_backend_coexistence.jl") - should_run_test("polars/test_polars.jl") && include("polars/test_polars.jl") - should_run_test("ram_geometry/test_kite_geometry.jl") && include("ram_geometry/test_kite_geometry.jl") - should_run_test("settings/test_settings.jl") && include("settings/test_settings.jl") - should_run_test("solver/test_solver.jl") && include("solver/test_solver.jl") - should_run_test("solver/test_forwarddiff.jl") && include("solver/test_forwarddiff.jl") - should_run_test("solver/test_unrefined_dist.jl") && include("solver/test_unrefined_dist.jl") - should_run_test("VortexStepMethod/test_VortexStepMethod.jl") && include("VortexStepMethod/test_VortexStepMethod.jl") - should_run_test("wake/test_wake.jl") && include("wake/test_wake.jl") - should_run_test("wing_geometry/test_wing_geometry.jl") && include("wing_geometry/test_wing_geometry.jl") - should_run_test("wing_geometry/test_billowing.jl") && include("wing_geometry/test_billowing.jl") - should_run_test("yaml_geometry/test_yaml_geometry.jl") && include("yaml_geometry/test_yaml_geometry.jl") - should_run_test("Aqua.jl") && include("Aqua.jl") + if build_is_production_build && should_run_test("bench") + include("bench.jl") end + should_run_test("body_aerodynamics/test_body_aerodynamics.jl") && include("body_aerodynamics/test_body_aerodynamics.jl") + should_run_test("body_aerodynamics/test_results.jl") && include("body_aerodynamics/test_results.jl") + should_run_test("test_refinement_validation.jl") && include("test_refinement_validation.jl") + should_run_test("filament/test_bound_filament.jl") && include("filament/test_bound_filament.jl") + should_run_test("filament/test_semi_infinite_filament.jl") && include("filament/test_semi_infinite_filament.jl") + should_run_test("panel/test_panel.jl") && include("panel/test_panel.jl") + should_run_test("plotting/test_plotting.jl") && include("plotting/test_plotting.jl") + should_run_test("polars/test_polars.jl") && include("polars/test_polars.jl") + should_run_test("ram_geometry/test_kite_geometry.jl") && include("ram_geometry/test_kite_geometry.jl") + should_run_test("neuralfoil/test_neuralfoil.jl") && include("neuralfoil/test_neuralfoil.jl") + should_run_test("settings/test_settings.jl") && include("settings/test_settings.jl") + should_run_test("solver/test_solver.jl") && include("solver/test_solver.jl") + should_run_test("solver/test_forwarddiff.jl") && include("solver/test_forwarddiff.jl") + should_run_test("solver/test_unrefined_dist.jl") && include("solver/test_unrefined_dist.jl") + should_run_test("VortexStepMethod/test_VortexStepMethod.jl") && include("VortexStepMethod/test_VortexStepMethod.jl") + should_run_test("wake/test_wake.jl") && include("wake/test_wake.jl") + should_run_test("wing_geometry/test_wing_geometry.jl") && include("wing_geometry/test_wing_geometry.jl") + should_run_test("wing_geometry/test_billowing.jl") && include("wing_geometry/test_billowing.jl") + should_run_test("yaml_geometry/test_yaml_geometry.jl") && include("yaml_geometry/test_yaml_geometry.jl") + should_run_test("Aqua.jl") && include("Aqua.jl") end @testset verbose = true "Testing VortexStepMethod..." begin diff --git a/test/solver/test_unrefined_dist.jl b/test/solver/test_unrefined_dist.jl index f0c54427..67f0bee3 100644 --- a/test/solver/test_unrefined_dist.jl +++ b/test/solver/test_unrefined_dist.jl @@ -149,6 +149,7 @@ using Test end end + @testset "Unrefined arrays with different panel counts" begin # Test with various panel/section combinations test_cases = [ diff --git a/test/test_setup.sh b/test/test_setup.sh index be620253..57e4f274 100755 --- a/test/test_setup.sh +++ b/test/test_setup.sh @@ -58,7 +58,7 @@ fi for f in bench.jl rectangular_wing.jl V3_kite.jl \ pyramid_model.jl ram_air_kite.jl stall_model.jl; do if ! grep -q "using GLMakie" "examples/$f" && \ - ! grep -q "using ControlPlots" "examples/$f"; then + ! grep -q "using MakieControlPlots" "examples/$f"; then pass "$f is backend-agnostic" else fail "$f is backend-agnostic" diff --git a/test/wing_geometry/test_wing_geometry.jl b/test/wing_geometry/test_wing_geometry.jl index 73413360..61f94a44 100644 --- a/test/wing_geometry/test_wing_geometry.jl +++ b/test/wing_geometry/test_wing_geometry.jl @@ -431,6 +431,7 @@ end @test wing_no_reuse.refined_sections[3].aero_data != no_reuse_baseline end + @testset "Refined panel mapping" begin # Test that refined panel mapping actually maps each panel to its closest unrefined panel