diff --git a/Manifest.toml b/Manifest.toml index 94025dfc4..8c2640d7a 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.8.3" +julia_version = "1.8.5" manifest_format = "2.0" -project_hash = "6787ce6711da7a7bf012a2defdfff479e23ec7c6" +project_hash = "d3fe8f706f4681996c34653c7dce829ba5417ba3" [[deps.AbstractFFTs]] deps = ["ChainRulesCore", "LinearAlgebra", "Test"] @@ -10,11 +10,17 @@ git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" version = "1.5.0" +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Requires", "Test"] +git-tree-sha1 = "b392ede862e506d451fc1616e79aa6f4c673dab8" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.38" + [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" +git-tree-sha1 = "d80af0733c99ea80575f612813fa6aa71022d33a" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.6.2" +version = "4.1.0" [[deps.ArchGDAL]] deps = ["CEnum", "ColorTypes", "Dates", "DiskArrays", "Extents", "GDAL", "GDAL_jll", "GeoFormatTypes", "GeoInterface", "GeoInterfaceRecipes", "ImageCore", "Tables"] @@ -34,14 +40,14 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[deps.BenchmarkTools]] deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] -git-tree-sha1 = "d9a9701b899b30332bbcb3e1679c41cce81fb0e8" +git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -version = "1.3.2" +version = "1.5.0" [[deps.BitFlags]] -git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" +git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.7" +version = "0.1.9" [[deps.Blosc]] deps = ["Blosc_jll"] @@ -51,9 +57,9 @@ version = "0.7.3" [[deps.Blosc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] -git-tree-sha1 = "6aa2d0b8db41ab860bbbf61b9587e3b957683fd3" +git-tree-sha1 = "ef12cdd1c7fb7e1dfd6fa8fd60d4db6bc61d2f23" uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9" -version = "1.21.4+0" +version = "1.21.6+2" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -68,39 +74,51 @@ version = "0.4.2" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "44dbf560808d49041989b8a96cae4cffbeb7966a" +git-tree-sha1 = "deddd8725e5e1cc49ee205a1964256043720a6c3" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.11" +version = "0.10.15" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "009060c9a6168704143100f36ab08f06c2af4642" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.18.2+1" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" +git-tree-sha1 = "3e4b134270b372f2ed4d4d0e936aabaefc1802bc" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.16.0" +version = "1.25.0" [[deps.ChangesOfVariables]] deps = ["InverseFunctions", "LinearAlgebra", "Test"] -git-tree-sha1 = "2fba81a302a7be671aefe194f0525ef231104e7f" +git-tree-sha1 = "799b25ca3a8a24936ae7b5c52ad194685fc3e6ef" uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" -version = "0.1.8" +version = "0.1.9" [[deps.CodecBzip2]] -deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] -git-tree-sha1 = "ad41de3795924f7a056243eb3e4161448f0523e6" +deps = ["Bzip2_jll", "TranscodingStreams"] +git-tree-sha1 = "e7c529cc31bb85b97631b922fa2e6baf246f5905" uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" -version = "0.8.0" +version = "0.8.4" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "02aa26a4cf76381be7f66e020a3eddeb27b0a092" +git-tree-sha1 = "bce6804e5e6044c6daab27bb533d1295e4a2e759" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.2" +version = "0.7.6" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.26.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.11.4" +version = "0.11.5" [[deps.ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] @@ -110,9 +128,9 @@ version = "0.9.10" [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.10" +version = "0.12.11" [[deps.CommonSolve]] git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" @@ -120,33 +138,43 @@ uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" version = "0.2.4" [[deps.CommonSubexpressions]] -deps = ["MacroTools", "Test"] -git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +deps = ["MacroTools"] +git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5" uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" -version = "0.3.0" +version = "0.3.1" [[deps.Compat]] -deps = ["Dates", "LinearAlgebra", "UUIDs"] -git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" +deps = ["Dates", "LinearAlgebra", "TOML", "UUIDs"] +git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.10.0" +version = "4.16.0" [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "0.5.2+0" +version = "1.0.1+0" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "5372dbbf8f0bdb8c700db5367132925c0771ef7e" +git-tree-sha1 = "ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.2.1" +version = "2.4.2" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +git-tree-sha1 = "76219f1ed5771adbb096743bff43fb5fdd4c1157" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.4" +version = "1.5.8" + +[[deps.Contour]] +git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.3" [[deps.CoolProp]] deps = ["CoolProp_jll", "Markdown", "Unitful"] @@ -156,9 +184,9 @@ version = "0.1.0" [[deps.CoolProp_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3e707957390c96dbe6184dc27eb6da2f5d2e6aac" +git-tree-sha1 = "f0f70a17d132d2ab5bf2b61993db36ac1099f6c7" uuid = "3351c21f-4feb-5f29-afb9-f4fcb0e27549" -version = "6.5.0+0" +version = "6.6.0+0" [[deps.Crayons]] git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" @@ -166,21 +194,21 @@ uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" version = "4.1.1" [[deps.DataAPI]] -git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.15.0" +version = "1.16.0" [[deps.DataFrames]] -deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] -git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "fb61b4812c49343d7ef0b533ba982c46021938a6" uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -version = "1.6.1" +version = "1.7.0" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.15" +version = "0.18.20" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -191,6 +219,12 @@ version = "1.0.0" deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +[[deps.Dbus_jll]] +deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fc173b380865f70627d7dd1190dc2fce6cc105af" +uuid = "ee1fde0b-3d02-5ea6-8484-8dfef6360eab" +version = "1.14.10+0" + [[deps.DelimitedFiles]] deps = ["Mmap"] uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" @@ -208,14 +242,10 @@ uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" version = "1.15.1" [[deps.DiskArrays]] -deps = ["OffsetArrays"] -git-tree-sha1 = "1bfa9de80f35ac63c6c381b2d43c590875896a1f" +deps = ["LRUCache", "OffsetArrays"] +git-tree-sha1 = "ef25c513cad08d7ebbed158c91768ae32f308336" uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" -version = "0.3.22" - -[[deps.Distributed]] -deps = ["Random", "Serialization", "Sockets"] -uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +version = "0.3.23" [[deps.DocStringExtensions]] deps = ["LibGit2"] @@ -228,49 +258,72 @@ deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8a4be429317c42cfae6a7fc03c31bad1970c310d" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+1" + [[deps.ExceptionUnwrapping]] deps = ["Test"] -git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" -version = "0.1.9" +version = "0.1.10" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.5.0+0" +version = "2.6.2+0" [[deps.Extents]] -git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99" +git-tree-sha1 = "81023caa0021a41712685887db1fc03db26f41f5" uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.1" +version = "0.1.4" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "53ebe7511fa11d33bec688a9178fac4e49eeee00" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.2" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Pkg", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "74faea50c1d007c85837327f6775bea60b5492dd" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.2+2" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" +git-tree-sha1 = "62ca0547a14c57e98154423419d8a342dca75ca9" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.1" - -[[deps.FilePaths]] -deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] -git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" -uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" -version = "0.8.3" +version = "1.16.4" [[deps.FilePathsBase]] -deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] -git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +deps = ["Compat", "Dates", "Mmap", "Test"] +git-tree-sha1 = "7878ff7172a8e6beedd1dea14bd27c3c6340d361" uuid = "48062228-2e41-5def-b9a4-89aafe57970f" -version = "0.9.21" +version = "0.9.22" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FixedPointNumbers]] deps = ["Statistics"] -git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.4" +version = "0.8.5" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.96+0" + +[[deps.Format]] +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.7" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"] @@ -278,6 +331,18 @@ git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" uuid = "f6369f11-7733-5829-9624-2563aa707210" version = "0.10.36" +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.2+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.14+0" + [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" @@ -289,10 +354,10 @@ uuid = "add2ef01-049f-52c4-9ee2-e494f65e021a" version = "1.4.0" [[deps.GDAL_jll]] -deps = ["Artifacts", "Expat_jll", "GEOS_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libtiff_jll", "OpenJpeg_jll", "PROJ_jll", "Pkg", "SQLite_jll", "Zlib_jll", "Zstd_jll", "libgeotiff_jll"] -git-tree-sha1 = "e9604365601f34d669dac3609fa4870803bdea9b" +deps = ["Artifacts", "Expat_jll", "GEOS_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "LibPQ_jll", "Libdl", "Libtiff_jll", "NetCDF_jll", "OpenJpeg_jll", "PROJ_jll", "Pkg", "SQLite_jll", "Zlib_jll", "Zstd_jll", "libgeotiff_jll"] +git-tree-sha1 = "ac63c49efd5afe2054b044926c7f112c1cb31d25" uuid = "a7073274-a066-55f0-b90d-d619367d196c" -version = "300.500.101+0" +version = "300.500.200+0" [[deps.GEOS_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -300,27 +365,52 @@ git-tree-sha1 = "818ab247de98d8848a022c7be084b1283d912326" uuid = "d604d12d-fa86-5845-992e-78dc15976526" version = "3.11.2+0" +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll", "libdecor_jll", "xkbcommon_jll"] +git-tree-sha1 = "fcb0584ff34e25155876418979d4c8971243bb89" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.4.0+2" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "8e2d86e06ceb4580110d9e716be26658effc5bfd" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.72.8" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt5Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "da121cbdc95b065da07fbb93638367737969693f" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.72.8+0" + [[deps.GeoFormatTypes]] -git-tree-sha1 = "434166198434a5c2fcc0a1a59d22c3b0ad460889" +git-tree-sha1 = "59107c179a586f0fe667024c5eb7033e81333271" uuid = "68eda718-8dee-11e9-39e7-89f7f65f511f" -version = "0.4.1" +version = "0.4.2" [[deps.GeoInterface]] -deps = ["Extents"] -git-tree-sha1 = "d53480c0793b13341c40199190f92c611aa2e93c" +deps = ["Extents", "GeoFormatTypes"] +git-tree-sha1 = "2f6fce56cdb8373637a6614e14a5768a88450de2" uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" -version = "1.3.2" +version = "1.3.7" [[deps.GeoInterfaceRecipes]] deps = ["GeoInterface", "RecipesBase"] -git-tree-sha1 = "0e26e1737e94de57c858649dc28e482b6c87d341" +git-tree-sha1 = "fb1156076f24f1dfee45b3feadb31d05730a49ac" uuid = "0329782f-3d07-4b52-b9f6-d3137cf03c7a" -version = "1.0.1" +version = "1.0.2" -[[deps.Glob]] -git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" -uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" -version = "1.3.1" +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "674ff0db93fffcd11a3573986e550d66cd4fd71f" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.80.5+0" [[deps.Graphics]] deps = ["Colors", "LinearAlgebra", "NaNMath"] @@ -328,29 +418,58 @@ git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" uuid = "a2bd30eb-e257-5431-a919-1863eab51364" version = "1.1.2" +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "01979f9b37367603e2848ea225918a3b3861b606" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+1" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + [[deps.H5Zblosc]] deps = ["Blosc", "HDF5"] -git-tree-sha1 = "d3966da25e48c05c31cd9786fd201627877612a2" +git-tree-sha1 = "d778420e524bcf56066e8c63c7aa315ae7269da2" uuid = "c8ec2601-a99c-407f-b158-e79c03c2f5f7" -version = "0.1.1" +version = "0.1.2" [[deps.HDF5]] -deps = ["Compat", "HDF5_jll", "Libdl", "Mmap", "Printf", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "114e20044677badbc631ee6fdc80a67920561a29" +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "e856eef26cf5bf2b0f95f8f4fc37553c72c8641c" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.16.16" +version = "0.17.2" [[deps.HDF5_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "38c8874692d48d5440d5752d6c74b0c6b0b60739" +deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenSSL_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "4cc2bb72df6ff40b055295fdef6d92955f9dede8" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.2+1" +version = "1.12.2+2" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" +git-tree-sha1 = "d1d712be3164d61d1fb98e7ce9bcbc6cc06b45ed" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.0" +version = "1.10.8" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] +git-tree-sha1 = "401e4f3f30f43af2c8478fc008da50096ea5240f" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "8.3.1+0" + +[[deps.HiGHS]] +deps = ["HiGHS_jll", "MathOptInterface", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "bad103266198176b0f88468523d7bbc33a762844" +uuid = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" +version = "1.11.0" + +[[deps.HiGHS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "c12314e192631fc302078e27a06da5ab51770e3b" +uuid = "8fd58aa0-07eb-5a78-9b36-339c94fd15ea" +version = "1.8.0+0" [[deps.ImageCore]] deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] @@ -358,27 +477,21 @@ git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500" uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" version = "0.9.4" -[[deps.InfrastructureModels]] -deps = ["JuMP", "Memento"] -git-tree-sha1 = "f9c1f6bdac8ad3fca6fc24fcf68256958ad84c28" -uuid = "2030c09a-7f63-5d83-885d-db604e0e9cc0" -version = "0.7.8" - [[deps.InlineStrings]] deps = ["Parsers"] -git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +git-tree-sha1 = "45521d31238e87ee9f9732561bfee12d4eebd52d" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" -version = "1.4.0" +version = "1.4.2" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" [[deps.InverseFunctions]] -deps = ["Test"] -git-tree-sha1 = "68772f49f54b479fa88ace904f6127f0a3bb2e46" +deps = ["Dates", "Test"] +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.12" +version = "0.1.17" [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" @@ -397,15 +510,21 @@ version = "1.0.0" [[deps.JLD]] deps = ["Compat", "FileIO", "H5Zblosc", "HDF5", "Printf"] -git-tree-sha1 = "ec6afa4fd3402e4dd5b15b3e5dd2f7dd52043ce8" +git-tree-sha1 = "e42f32690d41f758e126a48ee43459ef91179d1f" uuid = "4138dd39-2aa7-5051-a626-17a0bb65d9c8" -version = "0.13.3" +version = "0.13.5" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "39d64b09147620f5ffbf6b2d3255be3c901bec63" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.8" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.5.0" +version = "1.6.1" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -415,15 +534,27 @@ version = "0.21.4" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +git-tree-sha1 = "25ee0be4d43d0269027024d75a24c24d6c6e590c" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "2.1.91+0" +version = "3.0.4+0" [[deps.JuMP]] -deps = ["LinearAlgebra", "MacroTools", "MathOptInterface", "MutableArithmetics", "OrderedCollections", "Printf", "SnoopPrecompile", "SparseArrays"] -git-tree-sha1 = "3700a700bc80856fe673b355123ae4574f2d5dfe" +deps = ["LinearAlgebra", "MacroTools", "MathOptInterface", "MutableArithmetics", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays"] +git-tree-sha1 = "c91f872c6150cf1471f9cb279f5e0dc09423bdcf" uuid = "4076af6c-e467-56ae-b986-b466b2749572" -version = "1.15.1" +version = "1.23.3" + +[[deps.Kerberos_krb5_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "60274b4ab38e8d1248216fe6b6ace75ae09b0502" +uuid = "b39eb1a6-c29a-53d7-8c32-632cd16f18da" +version = "1.19.3+0" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.2+0" [[deps.LERC_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -432,19 +563,33 @@ uuid = "88015f11-f218-50d7-93a8-a6af411a945d" version = "3.0.0+1" [[deps.LLVMOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "78211fb6cbc872f77cad3fc0b6cf647d923f4929" uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" -version = "15.0.4+0" +version = "18.1.7+0" + +[[deps.LRUCache]] +deps = ["Serialization"] +git-tree-sha1 = "b3cc6698599b10e652832c2f23db3cab99d51b59" +uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" +version = "1.6.1" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "854a9c268c43b77b0a27f22d7fab8d33cdb3a731" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.2+3" [[deps.LaTeXStrings]] -git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.0" +version = "1.4.0" -[[deps.LazyArtifacts]] -deps = ["Artifacts", "Pkg"] -uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +[[deps.Latexify]] +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "ce5f5621cac23a86011836badfedf664a612cee4" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.5" [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] @@ -460,6 +605,12 @@ version = "7.84.0+0" deps = ["Base64", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" +[[deps.LibPQ_jll]] +deps = ["Artifacts", "JLLWrappers", "Kerberos_krb5_jll", "Libdl", "OpenSSL_jll", "Pkg"] +git-tree-sha1 = "a299629703a93d8efcefccfc16b18ad9a073d131" +uuid = "08be9ffa-1c94-5ee5-a977-46a84ec9b350" +version = "14.3.0+1" + [[deps.LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" @@ -468,17 +619,53 @@ version = "1.10.2+0" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "27ecae93dd25ee0909666e6835051dd684cc035e" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+2" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] +git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.11+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.49.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "61dfdba58e585066d8bce214c5a51eaa0539f269" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+1" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.40.1+0" + [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] git-tree-sha1 = "3eb79b0ca5764d4799c06699573fd8f533259713" uuid = "89763e89-9b03-5906-acba-b20f662cd828" version = "4.4.0+0" -[[deps.LinDistFlow]] -deps = ["JuMP", "LinearAlgebra", "PowerModelsDistribution", "SparseArrays"] -git-tree-sha1 = "c6c652ab975386cab61559e4ac861e8f75932e94" -uuid = "bf674bac-ffe4-48d3-9f32-72124ffa9ede" -version = "0.2.0" +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.40.1+0" [[deps.LinearAlgebra]] deps = ["Libdl", "libblastrampoline_jll"] @@ -492,9 +679,9 @@ version = "2.12.0+0" [[deps.LogExpFunctions]] deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.26" +version = "0.3.28" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" @@ -507,33 +694,21 @@ version = "0.4.9" [[deps.Lz4_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6c26c5e8a4203d43b5497be3ec5d4e0c3cde240a" +git-tree-sha1 = "abf88ff67f4fd89839efcae2f4c39cbc4ecd0846" uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" version = "1.9.4+0" -[[deps.MPICH_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "2ee75365ca243c1a39d467e35ffd3d4d32eef11e" -uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.1.2+1" - [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] -git-tree-sha1 = "781916a2ebf2841467cda03b6f1af43e23839d85" +git-tree-sha1 = "c105fe467859e7f6e9a852cb15cb4301126fac07" uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" version = "0.1.9" -[[deps.MPItrampoline_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "8eeb3c73bbc0ca203d0dc8dad4008350bbe5797b" -uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.3.1+1" - [[deps.MacroTools]] deps = ["Markdown", "Random"] -git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.11" +version = "0.5.13" [[deps.MappedArrays]] git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" @@ -546,38 +721,31 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] -git-tree-sha1 = "5c9f1e635e8d491297e596b56fec1c95eafb95a3" +git-tree-sha1 = "c7fff4fbc415a6833988efbda7621039af2a5f36" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.20.1" +version = "1.32.0" [[deps.MbedTLS]] -deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] -git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.1.7" +version = "1.1.9" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.0+0" -[[deps.Memento]] -deps = ["Dates", "Distributed", "Requires", "Serialization", "Sockets", "Test", "UUIDs"] -git-tree-sha1 = "bb2e8f4d9f400f6e90d57b34860f6abdc51398e5" -uuid = "f28f55f0-a522-5efc-85c2-fe41dfb9b2d9" -version = "1.4.1" - -[[deps.MicrosoftMPI_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "bc95bf4149bf535c09602e3acdf950d9b4376227" -uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" -version = "10.1.4+3" +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" [[deps.Missings]] deps = ["DataAPI"] -git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "1.1.0" +version = "1.2.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" @@ -594,9 +762,9 @@ version = "2022.2.1" [[deps.MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "6985021d02ab8c509c841bb8b2becd3145a7b490" +git-tree-sha1 = "90077f1e79de8c9c7c8a90644494411111f4e07b" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.3.3" +version = "1.5.2" [[deps.NaNMath]] deps = ["OpenLibm_jll"] @@ -604,15 +772,27 @@ git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.2" +[[deps.NetCDF_jll]] +deps = ["Artifacts", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "7f5a03e6712f5447c9c344430b8d1927a4777483" +uuid = "7243133f-43d8-5620-bbf4-c2c921802cf3" +version = "400.902.206+0" + [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.OffsetArrays]] deps = ["Adapt"] -git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" +git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.10" +version = "1.14.1" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] @@ -630,34 +810,39 @@ deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+0" -[[deps.OpenMPI_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "e25c1778a98e34219a00455d6e4384e017ea9762" -uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" -version = "4.1.6+0" - [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +git-tree-sha1 = "38cb508d080d21dc1128f7fb04f20387ed4c0af4" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.1" +version = "1.4.3" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "ceeda72c9fd6bbebc4f4f598560789145a8b6c4c" +git-tree-sha1 = "ad31332567b189f508a3ea8957a2640b1147ab00" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.11+0" +version = "1.1.23+1" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.5+0" +version = "0.5.5+2" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6703a85cb3781bd5909d48730a67205f3f31a575" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.3+0" [[deps.OrderedCollections]] -git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.2" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.40.0+0" [[deps.PROJ_jll]] deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "Libtiff_jll", "Pkg", "SQLite_jll"] @@ -671,22 +856,51 @@ git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" version = "0.5.12" +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e127b609fb9ecba6f201ba7ab753d5a605d53801" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.54.1+0" + [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.7.2" +version = "2.8.1" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.43.4+0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.8.0" -[[deps.PolyhedralRelaxations]] -deps = ["DataStructures", "ForwardDiff", "JuMP", "Logging", "LoggingExtras"] -git-tree-sha1 = "05f2adc696ae9a99be3de99dd8970d00a4dccefe" -uuid = "2e741578-48fa-11ea-2d62-b52c946f73a0" -version = "0.3.5" +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "6e55c6841ce3411ccb3457ee52fc48cb698d6fb0" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.2.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "650a022b2ce86c7dcfbdecf00f78afeeb20e5655" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.2" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "f202a1ca4f6e165238d8175df63a7e26a51e04dc" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.7" [[deps.PooledArrays]] deps = ["DataAPI", "Future"] @@ -694,29 +908,23 @@ git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" version = "1.4.3" -[[deps.PowerModelsDistribution]] -deps = ["CSV", "Dates", "FilePaths", "Glob", "InfrastructureModels", "JSON", "JuMP", "LinearAlgebra", "Logging", "LoggingExtras", "PolyhedralRelaxations", "SparseArrays", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "60b4d3446f0ddce0f86ec779438c7fa3772ca216" -uuid = "d7431456-977f-11e9-2de3-97ff7677985e" -version = "0.14.9" - [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.0" +version = "1.2.1" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.1" +version = "1.4.3" [[deps.PrettyTables]] -deps = ["Crayons", "LaTeXStrings", "Markdown", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "ee094908d720185ddbdc58dbe0c1cbe35453ec7a" +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "66b20dd35966a748321d3b2537c4584cf40387c7" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.7" +version = "2.3.2" [[deps.Printf]] deps = ["Unicode"] @@ -726,6 +934,12 @@ uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" deps = ["Printf"] uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" +[[deps.Qt5Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "xkbcommon_jll"] +git-tree-sha1 = "0c03844e2231e12fda4d0086fd7cbe4098ee8dc5" +uuid = "ea2cea3b-5b76-57ae-a6ef-0a8af62496e1" +version = "5.15.3+2" + [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" @@ -740,11 +954,23 @@ git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" version = "1.3.4" +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + [[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + [[deps.Requires]] deps = ["UUIDs"] git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" @@ -752,10 +978,10 @@ uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.0" [[deps.Roots]] -deps = ["ChainRulesCore", "CommonSolve", "Printf", "Setfield"] -git-tree-sha1 = "06b5ac80ff1b88bd82df92c1c1875eea3954cd6e" +deps = ["Accessors", "ChainRulesCore", "CommonSolve", "Printf"] +git-tree-sha1 = "3a7c7e5c3f015415637f5debdf8a674aa2c979c4" uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" -version = "2.0.20" +version = "2.2.1" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -763,44 +989,44 @@ version = "0.7.0" [[deps.SQLite_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "81f7d934b52b2441f7b44520bd982fdb3607b0da" +git-tree-sha1 = "004fffbe2711abdc7263a980bbb1af9620781dd9" uuid = "76ed43ae-9a5d-5a62-8c75-30186b810ce8" -version = "3.43.0+0" +version = "3.45.3+0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" +git-tree-sha1 = "ff11acffdb082493657550959d4feb4b6149e73a" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.0" +version = "1.4.5" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" -[[deps.Setfield]] -deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] -git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" -uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" -version = "1.1.1" +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" [[deps.SimpleBufferStream]] -git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +git-tree-sha1 = "f305871d2f381d21527c770d4788c06c097c9bc1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" -version = "1.1.0" - -[[deps.SnoopPrecompile]] -deps = ["Preferences"] -git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" -uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" -version = "1.0.3" +version = "1.2.0" [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[deps.SortingAlgorithms]] deps = ["DataStructures"] -git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.1" +version = "1.2.1" [[deps.SparseArrays]] deps = ["LinearAlgebra", "Random"] @@ -808,9 +1034,15 @@ uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.SpecialFunctions]] deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.3.1" +version = "2.4.0" + +[[deps.StableRNGs]] +deps = ["Random"] +git-tree-sha1 = "83e6cce8324d49dfaf9ef059227f91ed4441a8e5" +uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" +version = "1.0.2" [[deps.StackViews]] deps = ["OffsetArrays"] @@ -819,20 +1051,32 @@ uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" version = "0.1.1" [[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "0adf069a2a490c47273727e029371b31d44b72b2" +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "777657803913ffc7e8cc20f0fd04b634f871af8f" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.5" +version = "1.9.8" [[deps.StaticArraysCore]] -git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.2" +version = "1.4.3" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.3" + [[deps.StringManipulation]] deps = ["PrecompileTools"] git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" @@ -851,10 +1095,10 @@ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.11.0" +version = "1.12.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -873,20 +1117,19 @@ uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.TestEnv]] deps = ["Pkg"] -git-tree-sha1 = "8216a7f6946fb52123d0a178742003429897c21a" +git-tree-sha1 = "2a57e05cb9854e7260c354f1bcdbe5190adba19f" uuid = "1e6cf692-eddd-4d53-88a5-2d735e33781b" -version = "1.101.0" +version = "1.102.0" [[deps.TranscodingStreams]] -deps = ["Random", "Test"] -git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.9.13" +version = "0.11.3" [[deps.URIs]] -git-tree-sha1 = "b7a5e99f24892b6824a954199a45e9ffcc1c70f0" +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.5.0" +version = "1.5.1" [[deps.UUIDs]] deps = ["Random", "SHA"] @@ -895,11 +1138,40 @@ uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + [[deps.Unitful]] deps = ["ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "Random"] -git-tree-sha1 = "a72d22c7e13fe2de562feda8645aa134712a87ee" +git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.17.0" +version = "1.21.0" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "975c354fcd5f7e1ddcc1f1a23e6e091d99e99bc8" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.4" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "85c7811eddec9e7f22615371c3cc81a504c508ee" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+2" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" [[deps.WeakRefStrings]] deps = ["DataAPI", "InlineStrings", "Parsers"] @@ -912,6 +1184,144 @@ git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" version = "1.6.1" +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "1165b0443d0eca63ac1e32b8c0eb69ed2f4f8127" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.13.3+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.41+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "9dafcee1d24c4f024e7edc92603cedba72118283" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+3" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "2b0e27d52ec9d8d483e2ca0b72b3cb1a8df5c27a" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+3" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "02054ee01980c90297412e4c809c8694d7323af3" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+3" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "d7155fea91a4123ef59f42c4afb5ab3b4ca95058" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.6+3" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "a490c6212a0e90d2d55111ac956f7c4fa9c277a6" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.11+1" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fee57a273563e273f0f53275101cd41a8153517a" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+3" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "1a74296303b6524a0472a8cb12d3d87a78eb3612" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.17.0+3" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "dbc53e4cf7701c6c7047c51e17d6e64df55dca94" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+1" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "ab2221d309eda71020cdda67a973aa582aa85d69" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+1" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "b9ead2d2bdb27330545eb14234a2e300da61232e" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+3" + [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" @@ -919,21 +1329,45 @@ version = "1.2.12+3" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +git-tree-sha1 = "555d1076590a6cc2fdee2ef1469451f872d8b41b" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" -version = "1.5.5+0" +version = "1.5.6+3" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "936081b536ae4aa65415d869287d43ef3cb576b2" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.53.0+0" -[[deps.libaec_jll]] +[[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "eddd19a8dea6b139ea97bdc8a0e2667d4b661720" -uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" -version = "1.0.6+1" +git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.9.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "e17c115d55c5fbb7e52ebedb427a0dca79d4484e" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.2+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl", "OpenBLAS_jll"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" version = "5.1.1+0" +[[deps.libdecor_jll]] +deps = ["Artifacts", "Dbus_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pango_jll", "Wayland_jll", "xkbcommon_jll"] +git-tree-sha1 = "9bf7903af251d2050b467f76bdbe57ce541f7f4f" +uuid = "1183f4f0-6f2a-5f1a-908b-139f9cdfea6f" +version = "0.2.2+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8a22cf860a7d27e4f3498a0fe0811a7957badb38" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.3+0" + [[deps.libgeotiff_jll]] deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "Libtiff_jll", "PROJ_jll", "Pkg"] git-tree-sha1 = "13dfba87a1fe301c4b40f991d0ec990bbee59bbe" @@ -944,7 +1378,13 @@ version = "100.700.100+0" deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "f7c281e9c61905521993a987d38b5ab1d4b53bef" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.38+1" +version = "1.6.44+2" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+2" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] @@ -955,3 +1395,21 @@ version = "1.48.0+0" deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "63406453ed9b33a0df95d570816d5366c92b7809" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+2" diff --git a/Project.toml b/Project.toml index 111735afd..3a10b19e4 100644 --- a/Project.toml +++ b/Project.toml @@ -11,13 +11,14 @@ DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" +HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" JLD = "4138dd39-2aa7-5051-a626-17a0bb65d9c8" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" -LinDistFlow = "bf674bac-ffe4-48d3-9f32-72124ffa9ede" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" Requires = "ae029012-a4dd-5104-9daa-d747884805df" Roots = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" @@ -25,21 +26,20 @@ TestEnv = "1e6cf692-eddd-4d53-88a5-2d735e33781b" [compat] ArchGDAL = "0.8, 0.9" -CoolProp = "0.1" CSV = "0.10" +CoolProp = "0.1" DataFrames = "1.4" +Dates = "1" +DelimitedFiles = "1" HTTP = "0.8, 0.9, 1" JLD = "0.13" JSON = "0.21" JuMP = "0.21, 0.22, 0.23, 1" -LinDistFlow = "0.1, 0.2" +LinearAlgebra = "1" +Logging = "1" MathOptInterface = "0.9, 0.10, 1" Requires = "1.3" Roots = "1.3, 2" -TestEnv = "1.7, 1.8, 1.9" -Dates = "1" -DelimitedFiles = "1" -LinearAlgebra = "1" -Logging = "1" Statistics = "1" +TestEnv = "1.7, 1.8, 1.9" julia = "1.4, 1.5, 1.6, 1.7, 1.8" diff --git a/src/REopt.jl b/src/REopt.jl index 5ff756e2f..fae03b330 100644 --- a/src/REopt.jl +++ b/src/REopt.jl @@ -11,7 +11,6 @@ export simulate_outages, add_variables!, add_objective!, - LinDistFlow, MPCScenario, MPCInputs, run_mpc, @@ -30,9 +29,6 @@ export import HTTP import JSON -using LinDistFlow # required to export LinDistFlow -import LinDistFlow -const LDF = LinDistFlow using JuMP using JuMP.Containers: DenseAxisArray using Logging @@ -52,9 +48,14 @@ using CoolProp using LinearAlgebra using CSV using DataFrames +using Plots +import Plots +using HiGHS function __init__() @require GhpGhx="7ce85f02-24a8-4d69-a3f0-14b5daa7d30c" println("using GhpGhx module in REopt") + @require PowerModelsDistribution="d7431456-977f-11e9-2de3-97ff7677985e" println("using the PowerModelsDistribution package") # This will load whichever feature branch you have installed in the coding environment + @require Xpress="9e70acf3-d6c9-5be6-b5bd-4e2c73e3e054" println("using the Xpress package") end const EXISTING_BOILER_EFFICIENCY = 0.8 @@ -195,11 +196,15 @@ include("results/electric_heater.jl") include("results/ashp.jl") include("core/reopt.jl") -include("core/reopt_multinode.jl") include("outagesim/outage_simulator.jl") include("outagesim/backup_reliability.jl") -include("lindistflow/extend.jl") +include("multinode/reopt_multinode.jl") +include("multinode/multinode.jl") +include("multinode/multinode_outage_simulator.jl") +include("multinode/multinode_results_processing.jl") +include("multinode/multinode_inputs.jl") +include("multinode/multinode_utils.jl") include("mpc/results.jl") include("mpc/model.jl") diff --git a/src/constraints/electric_utility_constraints.jl b/src/constraints/electric_utility_constraints.jl index 88b0f7a82..8be1ca2a6 100644 --- a/src/constraints/electric_utility_constraints.jl +++ b/src/constraints/electric_utility_constraints.jl @@ -1,12 +1,17 @@ # REoptĀ®, Copyright (c) Alliance for Sustainable Energy, LLC. See also https://github.com/NREL/REopt.jl/blob/master/LICENSE. function add_export_constraints(m, p; _n="") - ##Constraint (8e): Production export and curtailment no greater than production - @constraint(m, [t in p.techs.elec, ts in p.time_steps_with_grid], - p.production_factor[t,ts] * p.levelization_factor[t] * m[Symbol("dvRatedProduction"*_n)][t,ts] - >= sum(m[Symbol("dvProductionToGrid"*_n)][t, u, ts] for u in p.export_bins_by_tech[t]) + - m[Symbol("dvCurtail"*_n)][t, ts] - ) + if (_n == "") || (p.s.settings.facilitymeter_node != "") + @constraint(m, [t in p.techs.elec, ts in p.time_steps_with_grid], + p.production_factor[t,ts] * p.levelization_factor[t] * m[Symbol("dvRatedProduction"*_n)][t,ts] + >= sum(m[Symbol("dvProductionToGrid"*_n)][t, u, ts] for u in p.export_bins_by_tech[t]) + + m[Symbol("dvCurtail"*_n)][t, ts] + ) + else + # Don't add constraint 8e to the facility meter node + @constraint(m, [t in p.techs.elec, ts in p.time_steps_with_grid], m[Symbol("dvRatedProduction"*_n)][t,ts] == 0) + @constraint(m, [t in p.techs.elec, ts in p.time_steps_with_grid], m[Symbol("dvCurtail"*_n)][t, ts] == 0) + end binNEM = 0 binWHL = 0 @@ -19,12 +24,16 @@ function add_export_constraints(m, p; _n="") if !isempty(NEM_techs) # Constraint (9c): Net metering only -- can't sell more than you purchase # hours_per_time_step is cancelled on both sides, but used for unit consistency (convert power to energy) - @constraint(m, - p.hours_per_time_step * sum( m[Symbol("dvProductionToGrid"*_n)][t, :NEM, ts] - for t in NEM_techs, ts in p.time_steps) - <= p.hours_per_time_step * sum( m[Symbol("dvGridPurchase"*_n)][ts, tier] - for ts in p.time_steps, tier in 1:p.s.electric_tariff.n_energy_tiers) - ) + if (_n == "") || (p.s.settings.facilitymeter_node != "") + @constraint(m, + p.hours_per_time_step * sum( m[Symbol("dvProductionToGrid"*_n)][t, :NEM, ts] + for t in NEM_techs, ts in p.time_steps) + <= p.hours_per_time_step * sum( m[Symbol("dvGridPurchase"*_n)][ts, tier] + for ts in p.time_steps, tier in 1:p.s.electric_tariff.n_energy_tiers) + ) + else + # Don't add constraint 9c to the facility meter node + end if p.s.electric_utility.net_metering_limit_kw == p.s.electric_utility.interconnection_limit_kw && isempty(WHL_techs) # no need for binNEM nor binWHL @@ -134,9 +143,17 @@ function add_export_constraints(m, p; _n="") if typeof(binNEM) <: Real # no need for wholesale binary binWHL = 1 + for b in p.s.storage.types.all + println(b) + end WHL_benefit = @expression(m, p.pwf_e * p.hours_per_time_step * - sum( sum(p.s.electric_tariff.export_rates[:WHL][ts] * m[Symbol("dvProductionToGrid"*_n)][t, :WHL, ts] - for t in p.techs_by_exportbin[:WHL]) for ts in p.time_steps) + ( + sum(sum(p.s.electric_tariff.export_rates[:WHL][ts] * m[Symbol("dvStorageToGrid"*_n)][b, ts] + for b in p.s.storage.types.elec) for ts in p.time_steps) + + + sum(sum(p.s.electric_tariff.export_rates[:WHL][ts] * m[Symbol("dvProductionToGrid"*_n)][t, :WHL, ts] + for t in p.techs_by_exportbin[:WHL]) for ts in p.time_steps) + ) ) else binWHL = @variable(m, binary = true) diff --git a/src/constraints/generator_constraints.jl b/src/constraints/generator_constraints.jl index 34d606dca..4f62b000f 100644 --- a/src/constraints/generator_constraints.jl +++ b/src/constraints/generator_constraints.jl @@ -1,60 +1,88 @@ -# REoptĀ®, Copyright (c) Alliance for Sustainable Energy, LLC. See also https://github.com/NREL/REopt.jl/blob/master/LICENSE. -function add_fuel_burn_constraints(m,p) +# ********************************************************************************* +# REopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this list +# of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +# OF THE POSSIBILITY OF SUCH DAMAGE. +# ********************************************************************************* +function add_fuel_burn_constraints(m,p; _n="") fuel_slope_gal_per_kwhe, fuel_intercept_gal_per_hr = fuel_slope_and_intercept( electric_efficiency_full_load=p.s.generator.electric_efficiency_full_load, electric_efficiency_half_load=p.s.generator.electric_efficiency_half_load, fuel_higher_heating_value_kwh_per_unit=p.s.generator.fuel_higher_heating_value_kwh_per_gal ) @constraint(m, [t in p.techs.gen, ts in p.time_steps], - m[:dvFuelUsage][t, ts] == (fuel_slope_gal_per_kwhe * p.s.generator.fuel_higher_heating_value_kwh_per_gal * - p.production_factor[t, ts] * p.hours_per_time_step * m[:dvRatedProduction][t, ts]) + - (fuel_intercept_gal_per_hr * p.s.generator.fuel_higher_heating_value_kwh_per_gal * p.hours_per_time_step * m[:binGenIsOnInTS][t, ts]) + m[Symbol("dvFuelUsage"*_n)][t, ts] == (fuel_slope_gal_per_kwhe * p.s.generator.fuel_higher_heating_value_kwh_per_gal * + p.production_factor[t, ts] * p.hours_per_time_step * m[Symbol("dvRatedProduction"*_n)][t, ts]) + + (fuel_intercept_gal_per_hr * p.s.generator.fuel_higher_heating_value_kwh_per_gal * p.hours_per_time_step * m[Symbol("binGenIsOnInTS"*_n)][t, ts]) ) @constraint(m, - sum(m[:dvFuelUsage][t, ts] for t in p.techs.gen, ts in p.time_steps) <= + sum(m[Symbol("dvFuelUsage"*_n)][t, ts] for t in p.techs.gen, ts in p.time_steps) <= p.s.generator.fuel_avail_gal * p.s.generator.fuel_higher_heating_value_kwh_per_gal ) end -function add_binGenIsOnInTS_constraints(m,p) +function add_binGenIsOnInTS_constraints(m,p; _n="") # Generator must be on for nonnegative output @constraint(m, [t in p.techs.gen, ts in p.time_steps], - m[:dvRatedProduction][t, ts] <= p.max_sizes[t] * m[:binGenIsOnInTS][t, ts] + m[Symbol("dvRatedProduction"*_n)][t, ts] <= p.max_sizes[t] * m[Symbol("binGenIsOnInTS"*_n)][t, ts] ) # Note: min_turn_down_fraction is only enforced when `off_grid_flag` is true and in p.time_steps_with_grid, but not for grid outages for on-grid analyses if p.s.settings.off_grid_flag @constraint(m, [t in p.techs.gen, ts in p.time_steps_without_grid], - p.s.generator.min_turn_down_fraction * m[:dvSize][t] - m[:dvRatedProduction][t, ts] <= - p.max_sizes[t] * (1 - m[:binGenIsOnInTS][t, ts]) + p.s.generator.min_turn_down_fraction * m[Symbol("dvSize"*_n)][t] - m[Symbol("dvRatedProduction"*_n)][t, ts] <= + p.max_sizes[t] * (1 - m[Symbol("binGenIsOnInTS"*_n)][t, ts]) ) else @constraint(m, [t in p.techs.gen, ts in p.time_steps_with_grid], - p.s.generator.min_turn_down_fraction * m[:dvSize][t] - m[:dvRatedProduction][t, ts] <= - p.max_sizes[t] * (1 - m[:binGenIsOnInTS][t, ts]) + p.s.generator.min_turn_down_fraction * m[Symbol("dvSize"*_n)][t] - m[Symbol("dvRatedProduction"*_n)][t, ts] <= + p.max_sizes[t] * (1 - m[Symbol("binGenIsOnInTS"*_n)][t, ts]) ) end end -function add_gen_can_run_constraints(m,p) +function add_gen_can_run_constraints(m,p; _n="") if p.s.generator.only_runs_during_grid_outage for ts in p.time_steps_with_grid, t in p.techs.gen - fix(m[:dvRatedProduction][t, ts], 0.0, force=true) + fix(m[Symbol("dvRatedProduction"*_n)][t, ts], 0.0, force=true) end end if !(p.s.generator.sells_energy_back_to_grid) for t in p.techs.gen, u in p.export_bins_by_tech[t], ts in p.time_steps - fix(m[:dvProductionToGrid][t, u, ts], 0.0, force=true) + fix(m[Symbol("dvProductionToGrid"*_n)][t, u, ts], 0.0, force=true) end end end -function add_gen_rated_prod_constraint(m, p) +function add_gen_rated_prod_constraint(m, p; _n="") @constraint(m, [t in p.techs.gen, ts in p.time_steps], - m[:dvSize][t] >= m[:dvRatedProduction][t, ts] + m[Symbol("dvSize"*_n)][t] >= m[Symbol("dvRatedProduction"*_n)][t, ts] ) end @@ -64,17 +92,17 @@ end Add Generator operational constraints and cost expressions. """ -function add_gen_constraints(m, p) - add_fuel_burn_constraints(m,p) - add_binGenIsOnInTS_constraints(m,p) - add_gen_can_run_constraints(m,p) - add_gen_rated_prod_constraint(m,p) +function add_gen_constraints(m, p; _n="") + add_fuel_burn_constraints(m,p, _n=_n) + add_binGenIsOnInTS_constraints(m,p, _n=_n) + add_gen_can_run_constraints(m,p, _n=_n) + add_gen_rated_prod_constraint(m,p, _n=_n) - m[:TotalGenPerUnitProdOMCosts] = @expression(m, p.third_party_factor * p.pwf_om * + m[Symbol("TotalGenPerUnitProdOMCosts"*_n)] = @expression(m, p.third_party_factor * p.pwf_om * sum(p.s.generator.om_cost_per_kwh * p.hours_per_time_step * - m[:dvRatedProduction][t, ts] for t in p.techs.gen, ts in p.time_steps) - ) - m[:TotalGenFuelCosts] = @expression(m, - sum(p.pwf_fuel[t] * m[:dvFuelUsage][t,ts] * p.fuel_cost_per_kwh[t][ts] for t in p.techs.gen, ts in p.time_steps) + m[Symbol("dvRatedProduction"*_n)][t, ts] for t in p.techs.gen, ts in p.time_steps) ) + m[Symbol("TotalGenFuelCosts"*_n)] = @expression(m, + sum(p.pwf_fuel[t] * m[Symbol("dvFuelUsage"*_n)][t,ts] * p.fuel_cost_per_kwh[t][ts] for t in p.techs.gen, ts in p.time_steps) + ) end diff --git a/src/constraints/storage_constraints.jl b/src/constraints/storage_constraints.jl index c46d4e775..1b2a04a89 100644 --- a/src/constraints/storage_constraints.jl +++ b/src/constraints/storage_constraints.jl @@ -68,7 +68,7 @@ function add_elec_storage_dispatch_constraints(m, p, b; _n="") m[Symbol("dvStoredEnergy"*_n)][b, ts] == m[Symbol("dvStoredEnergy"*_n)][b, ts-1] + p.hours_per_time_step * ( sum(p.s.storage.attr[b].charge_efficiency * m[Symbol("dvProductionToStorage"*_n)][b, t, ts] for t in p.techs.elec) + p.s.storage.attr[b].grid_charge_efficiency * m[Symbol("dvGridToStorage"*_n)][b, ts] - - m[Symbol("dvDischargeFromStorage"*_n)][b,ts] / p.s.storage.attr[b].discharge_efficiency + - ((m[Symbol("dvDischargeFromStorage"*_n)][b,ts] + m[Symbol("dvStorageToGrid"*_n)][b,ts])/ p.s.storage.attr[b].discharge_efficiency) ) ) # Constraint (4g)-2: state-of-charge for electrical storage - no grid @@ -102,23 +102,34 @@ function add_elec_storage_dispatch_constraints(m, p, b; _n="") #Constraint (4k)-alt: Dispatch to and from electrical storage is no greater than power capacity @constraint(m, [ts in p.time_steps_with_grid], - m[Symbol("dvStoragePower"*_n)][b] >= m[Symbol("dvDischargeFromStorage"*_n)][b, ts] + + m[Symbol("dvStoragePower"*_n)][b] >= m[Symbol("dvDischargeFromStorage"*_n)][b, ts] + m[Symbol("dvStorageToGrid"*_n)][b,ts] + sum(m[Symbol("dvProductionToStorage"*_n)][b, t, ts] for t in p.techs.elec) + m[Symbol("dvGridToStorage"*_n)][b, ts] ) + #Dispatch from electrical storage is no greater than power capacity + @constraint(m, [ts in p.time_steps_without_grid], + m[Symbol("dvStoragePower"*_n)][b] >= m[Symbol("dvDischargeFromStorage"*_n)][b,ts] + m[Symbol("dvStorageToGrid"*_n)][b,ts]) + #Constraint (4l)-alt: Dispatch from electrical storage is no greater than power capacity (no grid connection) @constraint(m, [ts in p.time_steps_without_grid], m[Symbol("dvStoragePower"*_n)][b] >= m[Symbol("dvDischargeFromStorage"*_n)][b,ts] + sum(m[Symbol("dvProductionToStorage"*_n)][b, t, ts] for t in p.techs.elec) ) - # Remove grid-to-storage as an option if option to grid charge is turned off + #Constraint (4m)-1: Remove grid-to-storage as an option if option to grid charge is turned off if !(p.s.storage.attr[b].can_grid_charge) for ts in p.time_steps_with_grid fix(m[Symbol("dvGridToStorage"*_n)][b, ts], 0.0, force=true) end end + #Constraint (4m)-2: Force storage export to grid to zero if option to grid export is turned off + if !p.s.storage.attr[b].can_export_to_grid + for ts in p.time_steps + fix(m[Symbol("dvStorageToGrid"*_n)][b, ts], 0.0, force=true) + end + end + if p.s.storage.attr[b].minimum_avg_soc_fraction > 0 avg_soc = sum(m[Symbol("dvStoredEnergy"*_n)][b, ts] for ts in p.time_steps) / (8760. / p.hours_per_time_step) @@ -126,8 +137,10 @@ function add_elec_storage_dispatch_constraints(m, p, b; _n="") sum(m[Symbol("dvStorageEnergy"*_n)][b]) ) end + end + function add_hot_thermal_storage_dispatch_constraints(m, p, b; _n="") # Constraint (4j)-1: Reconcile state-of-charge for (hot) thermal storage diff --git a/src/core/electric_utility.jl b/src/core/electric_utility.jl index 1fa2c8404..6e14c86db 100644 --- a/src/core/electric_utility.jl +++ b/src/core/electric_utility.jl @@ -558,7 +558,7 @@ function cambium_emissions_profile(; scenario::String, emissions_year::Int=2017 ) - url = "https://scenarioviewer.nrel.gov/api/get-levelized/" # Production + url = "https://scenarioviewer.nlr.gov/api/get-levelized/" # Production project_uuid = "82460f06-548c-4954-b2d9-b84ba92d63e2" # Cambium 2022 payload=Dict( diff --git a/src/core/energy_storage/electric_storage.jl b/src/core/energy_storage/electric_storage.jl index 771a84364..880f19249 100644 --- a/src/core/energy_storage/electric_storage.jl +++ b/src/core/energy_storage/electric_storage.jl @@ -167,6 +167,7 @@ end soc_min_applies_during_outages::Bool = false soc_init_fraction::Float64 = off_grid_flag ? 1.0 : 0.5 can_grid_charge::Bool = off_grid_flag ? false : true + can_export_to_grid::Bool = false installed_cost_per_kw::Real = 910.0 installed_cost_per_kwh::Real = 455.0 replace_cost_per_kw::Real = 715.0 @@ -202,6 +203,7 @@ Base.@kwdef struct ElectricStorageDefaults soc_min_applies_during_outages::Bool = false soc_init_fraction::Float64 = off_grid_flag ? 1.0 : 0.5 can_grid_charge::Bool = off_grid_flag ? false : true + can_export_to_grid::Bool = false installed_cost_per_kw::Real = 910.0 installed_cost_per_kwh::Real = 455.0 replace_cost_per_kw::Real = 715.0 @@ -243,6 +245,7 @@ struct ElectricStorage <: AbstractElectricStorage soc_min_applies_during_outages::Bool soc_init_fraction::Float64 can_grid_charge::Bool + can_export_to_grid::Bool installed_cost_per_kw::Real installed_cost_per_kwh::Real replace_cost_per_kw::Real @@ -265,7 +268,7 @@ struct ElectricStorage <: AbstractElectricStorage minimum_avg_soc_fraction::Float64 min_duration_hours::Real max_duration_hours::Real - + function ElectricStorage(d::Dict, f::Financial) s = ElectricStorageDefaults(;d...) @@ -336,6 +339,7 @@ struct ElectricStorage <: AbstractElectricStorage s.soc_min_applies_during_outages, s.soc_init_fraction, s.can_grid_charge, + s.can_export_to_grid, s.installed_cost_per_kw, s.installed_cost_per_kwh, replace_cost_per_kw, diff --git a/src/core/energy_storage/storage.jl b/src/core/energy_storage/storage.jl index f276db728..6fc61861b 100644 --- a/src/core/energy_storage/storage.jl +++ b/src/core/energy_storage/storage.jl @@ -22,6 +22,7 @@ end mutable struct StorageTypes all::Vector{String} elec::Vector{String} + elec_no_simultaneous_charge_discharge::Vector{String} thermal::Vector{String} hot::Vector{String} cold::Vector{String} @@ -33,6 +34,7 @@ mutable struct StorageTypes String[], String[], String[], + String[], String[] ) end @@ -40,6 +42,7 @@ mutable struct StorageTypes function StorageTypes(d::Dict{String, AbstractStorage}) all_storage = String[] elec_storage = String[] + elec_storage_no_simul_charge_discharge = String[] hot_storage = String[] cold_storage = String[] @@ -50,13 +53,15 @@ mutable struct StorageTypes if typeof(v) <: AbstractElectricStorage push!(elec_storage, k) - + #if !v.allow_simultaneous_charge_discharge + # push!(elec_storage_no_simul_charge_discharge, k) + #end elseif typeof(v) <: HotThermalStorage push!(hot_storage, k) elseif typeof(v) <: ColdThermalStorage push!(cold_storage, k) else - throw(@error("Storage not labeled as Hot or Cold, or Electric.")) + throw(@error("Storage not labeled as Hot, Cold, or Electric.")) end end end @@ -66,6 +71,7 @@ mutable struct StorageTypes new( all_storage, elec_storage, + elec_storage_no_simul_charge_discharge, thermal_storage, hot_storage, cold_storage diff --git a/src/core/production_factor.jl b/src/core/production_factor.jl index b0312aad2..81e0af900 100644 --- a/src/core/production_factor.jl +++ b/src/core/production_factor.jl @@ -64,7 +64,7 @@ function get_production_factor(wind::Wind, latitude::Real, longitude::Real, time # TODO validate against API with different hub heights (not in windtoolkit_hub_heights) for height in heights_for_sam - url = string("https://developer.nrel.gov/api/wind-toolkit/v2/wind/wtk-srw-download", + url = string("https://developer.nlr.gov/api/wind-toolkit/v2/wind/wtk-srw-download", "?api_key=", ENV["NREL_DEVELOPER_API_KEY"], "&lat=", latitude , "&lon=", longitude, "&hubheight=", Int(height), "&year=", 2012 diff --git a/src/core/reopt.jl b/src/core/reopt.jl index 662d249cd..5a1242e7c 100644 --- a/src/core/reopt.jl +++ b/src/core/reopt.jl @@ -194,6 +194,7 @@ function build_reopt!(m::JuMP.AbstractModel, p::REoptInputs) for t in p.s.storage.types.elec fix(m[:dvGridToStorage][t, ts], 0.0, force=true) + fix(m[:dvStorageToGrid][t, ts], 0.0, force=true) end if !isempty(p.s.electric_tariff.export_bins) @@ -213,6 +214,7 @@ function build_reopt!(m::JuMP.AbstractModel, p::REoptInputs) @constraint(m, [ts in p.time_steps], m[:dvGridToStorage][b, ts] == 0) @constraint(m, [t in p.techs.elec, ts in p.time_steps_with_grid], m[:dvProductionToStorage][b, t, ts] == 0) + @constraint(m, [ts in p.time_steps], m[Symbol("dvStorageToGrid")][b, ts] == 0) elseif b in p.s.storage.types.hot @constraint(m, [q in q in setdiff(p.heating_loads, p.heating_loads_served_by_tes[b]), ts in p.time_steps], m[:dvHeatFromStorage][b,q,ts] == 0) if "DomesticHotWater" in p.heating_loads_served_by_tes[b] @@ -243,6 +245,9 @@ function build_reopt!(m::JuMP.AbstractModel, p::REoptInputs) else throw(@error("Invalid storage does not fall in a thermal or electrical set")) end + if b in p.s.storage.types.elec_no_simultaneous_charge_discharge + #add_simultaneous_charge_discharge_constraint(m, p, b) + end end end @@ -616,15 +621,21 @@ function add_variables!(m::JuMP.AbstractModel, p::REoptInputs) dvProductionToStorage[p.s.storage.types.all, union(p.techs.ghp,p.techs.all), p.time_steps] >= 0 # Power from technology t used to charge storage system b [kW] dvDischargeFromStorage[p.s.storage.types.all, p.time_steps] >= 0 # Power discharged from storage system b [kW] dvGridToStorage[p.s.storage.types.elec, p.time_steps] >= 0 # Electrical power delivered to storage by the grid [kW] + dvStorageToGrid[p.s.storage.types.elec, p.time_steps] >= 0 # export of energy from storage to the grid dvStoredEnergy[p.s.storage.types.all, 0:p.time_steps[end]] >= 0 # State of charge of storage system b dvStoragePower[p.s.storage.types.all] >= 0 # Power capacity of storage system b [kW] dvStorageEnergy[p.s.storage.types.all] >= 0 # Energy capacity of storage system b [kWh] + #binBattCharging[p.s.storage.types.elec_no_simultaneous_charge_discharge, p.time_steps], Bin # Binary for battery charging (vs discharging) dvPeakDemandTOU[p.ratchets, 1:p.s.electric_tariff.n_tou_demand_tiers] >= 0 # Peak electrical power demand during ratchet r [kW] dvPeakDemandMonth[p.months, 1:p.s.electric_tariff.n_monthly_demand_tiers] >= 0 # Peak electrical power demand during month m [kW] MinChargeAdder >= 0 binGHP[p.ghp_options], Bin # Can be <= 1 if require_ghp_purchase=0, and is ==1 if require_ghp_purchase=1 end + #if !isempty(p.s.storage.types.elec_no_simultaneous_charge_discharge) + # @warn "Adding binary variable to prevent simultaneous battery charge/discharge. Some solvers are very slow with integer variables." + #end + if !isempty(p.techs.gen) # Problem becomes a MILP @warn "Adding binary variable to model gas generator. Some solvers are very slow with integer variables." @variables m begin diff --git a/src/core/settings.jl b/src/core/settings.jl index 81787746b..133a8c1b4 100644 --- a/src/core/settings.jl +++ b/src/core/settings.jl @@ -10,6 +10,8 @@ Captures high-level inputs affecting the optimization. include_climate_in_objective::Bool = false # true if climate costs of emissions should be included in the model's objective function include_health_in_objective::Bool = false # true if health costs of emissions should be included in the model's objective function solver_name::String = "HiGHS" # solver used to obtain a solution to model instance. available options: ["HiGHS", "Cbc", "CPLEX", "Xpress"] + facilitymeter_node::String = "" + phase_numbers::Array=[1] # indicates the phase numbers for the load (relevant for multinode models only); default is single phase using phase 1; three phase is represented by [1,2,3] ``` """ Base.@kwdef struct Settings @@ -19,4 +21,6 @@ Base.@kwdef struct Settings include_climate_in_objective::Bool = false # true if climate costs of emissions should be included in the model's objective function include_health_in_objective::Bool = false # true if health costs of emissions should be included in the model's objective function solver_name::String = "HiGHS" # solver used to obtain a solution to model instance. available options: ["HiGHS", "Cbc", "CPLEX", "Xpress"] + facilitymeter_node::String = "" + phase_numbers::Array=[1] # indicates the phase numbers for the load (relevant for multinode models only); default is single phase using phase 1; three phase is represented by [1,2,3] end diff --git a/src/core/site.jl b/src/core/site.jl index 0ecb42752..e0d33ba08 100644 --- a/src/core/site.jl +++ b/src/core/site.jl @@ -10,7 +10,7 @@ Inputs related to the physical location: roof_squarefeet::Union{Real, Nothing} = nothing, min_resil_time_steps::Int=0, # The minimum number consecutive timesteps that load must be fully met once an outage begins. Only applies to multiple outage modeling using inputs outage_start_time_steps and outage_durations. mg_tech_sizes_equal_grid_sizes::Bool = true, - node::Int = 1, + node::Union{Int,String} = 1, CO2_emissions_reduction_min_fraction::Union{Float64, Nothing} = nothing, CO2_emissions_reduction_max_fraction::Union{Float64, Nothing} = nothing, bau_emissions_lb_CO2_per_year::Union{Float64, Nothing} = nothing, # Auto-populated based on BAU run. This input will be overwritten if the BAU scenario is run, but can be user-provided if no BAU scenario is run. @@ -57,7 +57,7 @@ mutable struct Site include_exported_elec_emissions_in_total::Bool = true, include_exported_renewable_electricity_in_total::Bool = true, outdoor_air_temperature_degF::Union{Nothing, Array{<:Real,1}} = nothing, - node::Int = 1, + node::Union{Int,String} = 1, ) invalid_args = String[] if !(-90 <= latitude < 90) diff --git a/src/core/types.jl b/src/core/types.jl index 6ed1eb96b..0fdf7bef4 100644 --- a/src/core/types.jl +++ b/src/core/types.jl @@ -12,6 +12,7 @@ abstract type AbstractElectricStorage <: AbstractStorage end abstract type AbstractThermalStorageDefaults end abstract type AbstractGHP <: AbstractTech end abstract type AbstractSteamTurbine <: AbstractTech end +abstract type AbstractMultinode end """ diff --git a/src/core/utils.jl b/src/core/utils.jl index 192d88068..523c5d3d4 100644 --- a/src/core/utils.jl +++ b/src/core/utils.jl @@ -391,7 +391,7 @@ function call_solar_dataset_api(latitude::Real, longitude::Real, radius::Int) throw(@error("Invalid coordinates: longitude of $longitude must be between -180 and 180 degrees.")) end - url = string("https://developer.nrel.gov/api/solar/data_query/v2.json", "?api_key=", ENV["NREL_DEVELOPER_API_KEY"], + url = string("https://developer.nlr.gov/api/solar/data_query/v2.json", "?api_key=", ENV["NREL_DEVELOPER_API_KEY"], "&lat=", latitude , "&lon=", longitude, "&radius=", radius, "&all=", 0 ) try @@ -462,7 +462,7 @@ function call_pvwatts_api(latitude::Real, longitude::Real; tilt=latitude, azimut # Determine resource dataset to use for this location dataset, dist_meters, datasource = call_solar_dataset_api(latitude, longitude, radius) - url = string("https://developer.nrel.gov/api/pvwatts/v8.json", "?api_key=", ENV["NREL_DEVELOPER_API_KEY"], + url = string("https://developer.nlr.gov/api/pvwatts/v8.json", "?api_key=", ENV["NREL_DEVELOPER_API_KEY"], "&lat=", latitude , "&lon=", longitude, "&tilt=", tilt, "&system_capacity=1", "&azimuth=", azimuth, "&module_type=", module_type, "&array_type=", array_type, "&losses=", losses, "&dc_ac_ratio=", dc_ac_ratio, diff --git a/src/lindistflow/extend.jl b/src/lindistflow/extend.jl deleted file mode 100644 index 8fc7476c9..000000000 --- a/src/lindistflow/extend.jl +++ /dev/null @@ -1,106 +0,0 @@ -""" -Outline: -1. Construct LDF.Inputs from openDSS file, load dict -2. Add power flow constraints to m, - - set Pā±¼'s = -1 * (dvGridPurchase_j - dvProductionToGrid_j) -3. solve model -""" -# TODO add complementary constraint to UL for dvProductionToGrid_ and dvGridPurchase_ (don't want it in LL s.t. it stays linear) - - -function LDF.build_ldf!(m::JuMP.AbstractModel, p::LDF.Inputs, ps::Array{REoptInputs, 1}; - make_import_export_complementary::Bool=true - ) - LDF.add_variables(m, p) - add_expressions(m, ps) - LDF.constrain_power_balance(m, p) - LDF.constrain_substation_voltage(m, p) - LDF.constrain_KVL(m, p) - LDF.constrain_loads(m, p, ps) - LDF.constrain_bounds(m, p) - - if make_import_export_complementary - add_complementary_constraints(m, ps) - end -end - - -function add_expressions(m::JuMP.AbstractModel, ps::Array{REoptInputs, 1}) - for p in ps - _n = string("_", p.s.site.node) - m[Symbol("TotalExport"*_n)] = @expression(m, [t in p.time_steps], - sum( - m[Symbol("dvProductionToGrid"*_n)][t,u,ts] - for t in p.techs.elec, u in p.export_bins_by_tech[t] - ) - ) - end -end - - -function add_complementary_constraints(m::JuMP.AbstractModel, ps::Array{REoptInputs, 1}) - for p in ps - _n = string("_", p.s.site.node) - for (i, e) in zip(m[Symbol("dvGridPurchase"*_n)], m[Symbol("TotalExport"*_n)]) - @constraint(m, - [i, e] in MOI.SOS1([1.0, 2.0]) - ) - end - end -end - - -function LDF.constrain_loads(m::JuMP.AbstractModel, p::LDF.Inputs, ps::Array{REoptInputs, 1}) - reopt_nodes = [p.s.site.node for p in ps] - - Pā±¼ = m[:Pā±¼] - Qā±¼ = m[:Qā±¼] - # positive values are injections - - for j in p.busses - if j in keys(p.Pload) - if parse(Int, j) in reopt_nodes - @constraint(m, [t in 1:p.Ntimesteps], - Pā±¼[j,t] == 1e3/p.Sbase * ( # 1e3 b/c REopt values in kW - m[Symbol("TotalExport_" * j)][t] - - m[Symbol("dvGridPurchase_" * j)][t] - ) - ) - else - @constraint(m, [t in 1:p.Ntimesteps], - Pā±¼[j,t] == -p.Pload[j][t] - ) - end - elseif j != p.substation_bus - @constraint(m, [t in 1:p.Ntimesteps], - Pā±¼[j,t] == 0 - ) - end - - if j in keys(p.Qload) - if parse(Int, j) in reopt_nodes - @constraint(m, [t in 1:p.Ntimesteps], - Qā±¼[j,t] == 1e3/p.Sbase * p.pf * ( # 1e3 b/c REopt values in kW - m[Symbol("TotalExport_" * j)][t] - - m[Symbol("dvGridPurchase_" * j)][t] - ) - ) - else - @constraint(m, [t in 1:p.Ntimesteps], - Qā±¼[j,t] == -p.Qload[j][t] - ) - end - elseif j != p.substation_bus - @constraint(m, [t in 1:p.Ntimesteps], - Qā±¼[j,t] == 0 - ) - end - end - p.Nequality_cons += 2 * (p.Nnodes - 1) * p.Ntimesteps -end - -# TODO add LDF results (here and in LDF package) - -function run_reopt(m::JuMP.AbstractModel, p::REoptInputs, ldf::LDF.Inputs) - -end \ No newline at end of file diff --git a/src/mpc/model.jl b/src/mpc/model.jl index d40a80da3..88ad06f31 100644 --- a/src/mpc/model.jl +++ b/src/mpc/model.jl @@ -231,6 +231,7 @@ function add_variables!(m::JuMP.AbstractModel, p::MPCInputs) dvProductionToStorage[p.s.storage.types.all, p.techs.all, p.time_steps] >= 0 # Power from technology t used to charge storage system b [kW] dvDischargeFromStorage[p.s.storage.types.all, p.time_steps] >= 0 # Power discharged from storage system b [kW] dvGridToStorage[p.s.storage.types.elec, p.time_steps] >= 0 # Electrical power delivered to storage by the grid [kW] + dvStorageToGrid[p.s.storage.types.elec, p.time_steps] == 0 dvStoredEnergy[p.s.storage.types.all, 0:p.time_steps[end]] >= 0 # State of charge of storage system b dvStoragePower[p.s.storage.types.all] >= 0 # Power capacity of storage system b [kW] dvStorageEnergy[p.s.storage.types.all] >= 0 # Energy capacity of storage system b [kWh] diff --git a/src/mpc/model_multinode.jl b/src/mpc/model_multinode.jl index 68a3ef34a..9fd809933 100644 --- a/src/mpc/model_multinode.jl +++ b/src/mpc/model_multinode.jl @@ -152,7 +152,7 @@ function add_variables!(m::JuMP.AbstractModel, ps::AbstractVector{MPCInputs}) "dvRatedProduction", ] dvs_idx_on_storagetypes_time_steps = String[ - "dvDischargeFromStorage" + "dvDischargeFromStorage" ] for p in ps _n = string("_", p.s.node) @@ -176,9 +176,16 @@ function add_variables!(m::JuMP.AbstractModel, ps::AbstractVector{MPCInputs}) m[Symbol(x)] = @variable(m, [p.s.storage.types.all, p.time_steps], base_name=x, lower_bound=0) end - dv = "dvGridToStorage"*_n + # Temporary definition and constraint for dvStorageToGrid + dv = "dvStorageToGrid"*_n m[Symbol(dv)] = @variable(m, [p.s.storage.types.elec, p.time_steps], base_name=dv, lower_bound=0) + for t in p.s.storage.types.elec + @constraint(m, [ts in p.time_steps], m[Symbol("dvStorageToGrid"*_n)][t, ts] == 0) + end + dv = "dvGridToStorage"*_n + m[Symbol(dv)] = @variable(m, [p.s.storage.types.elec, p.time_steps], base_name=dv, lower_bound=0) + dv = "dvGridPurchase"*_n m[Symbol(dv)] = @variable(m, [p.time_steps], base_name=dv, lower_bound=0) diff --git a/src/mpc/structs.jl b/src/mpc/structs.jl index 340bb07c0..561f39336 100644 --- a/src/mpc/structs.jl +++ b/src/mpc/structs.jl @@ -227,6 +227,7 @@ Base.@kwdef struct MPCElectricStorage < AbstractElectricStorage soc_init_fraction::Float64 = 0.5 can_grid_charge::Bool = true grid_charge_efficiency::Float64 = 0.96 * 0.975^2 + can_export_to_grid::Bool=false end ``` """ @@ -242,6 +243,7 @@ Base.@kwdef struct MPCElectricStorage <: AbstractElectricStorage max_kw::Float64 = size_kw max_kwh::Float64 = size_kwh minimum_avg_soc_fraction::Float64 = 0.0 + can_export_to_grid::Bool=false end diff --git a/src/multinode/multinode.jl b/src/multinode/multinode.jl new file mode 100644 index 000000000..5d96d12b2 --- /dev/null +++ b/src/multinode/multinode.jl @@ -0,0 +1,2167 @@ +# REoptĀ®, Copyright (c) Alliance for Sustainable Energy, LLC. See also https://github.com/NREL/REopt.jl/blob/master/LICENSE. + +function Multinode_Model(Multinode_Settings::Dict{String, Any}) + # The main function to run all parts of the multinode model + + StartTime_EntireModel = now() # Record the start time for the computation + TimeStamp = Dates.format(now(), "mm-dd-yyyy")*"_"*Dates.format(now(), "HH-MM") + time_results = Dict() + + Multinode_Inputs = REopt.MultinodeInputs(; REopt.dictkeys_tosymbols(Multinode_Settings)...) + + if Multinode_Inputs.generate_CSV_of_outputs + cd(Multinode_Inputs.folder_location) + CreateOutputsFolder(Multinode_Inputs, TimeStamp) + end + + print("\n Preparing the electric loads") + Start_time_prepare_electric_loads = now() + PrepareElectricLoads(Multinode_Inputs) + milliseconds, prepare_electric_loads_time_minutes = CalculateComputationTime(Start_time_prepare_electric_loads) + time_results["Step $(length(keys(time_results))+1): prepare_electric_loads_time_minutes"] = prepare_electric_loads_time_minutes + + print("\n Preparing the REopt inputs") + REopt_inputs_combined = PrepareREoptInputs(Multinode_Inputs, time_results) + print("\n Completed preparing the REopt inputs") + + m_outagesimulator = "empty" + #model = "empty" + model_BAU = "empty" + model_diagnostics_bus_voltage_violations = "empty" + + if Multinode_Inputs.model_type == "PowerModelsDistribution" + print("\n Running data checks \n") + RunDataChecks(Multinode_Inputs, REopt_inputs_combined) + + PMD_number_of_timesteps = length(Multinode_Inputs.PMD_time_steps) + + REopt_Results, PMD_Results, DataFrame_PMD_LineFlow_Summary, + PMD_Dictionary_LineFlow_Power_Series, DataDictionaryForEachNode, + LineInfo_PMD, REoptInputs_Combined, data_eng, data_math_mn, pm, + line_upgrade_options_each_line, line_upgrade_results, load_phase_dictionary, + gen_ind_e_to_REopt_node, REopt_gen_ind_e, connections, connections_upstream, + connections_downstream = + build_run_and_process_results(Multinode_Inputs, REopt_inputs_combined, PMD_number_of_timesteps, TimeStamp, time_results; allow_upgrades = true) + + time_results["Step $(length(keys(time_results))+1): model_solve_time_minutes"] = round(JuMP.solve_time(pm.model)/60, digits = 2) + GC.gc() + print("\n Completed running the build_run_and_process_results function") + + if REopt_Results == "N/A" + @warn "The optimization did not return an optimal solution. Returning the failed model with all other outputs set to \"N/A\"." + ComputationTime_EntireModel_Milliseconds, ComputationTime_EntireModel_Minutes = CalculateComputationTime(StartTime_EntireModel) + time_results["ComputationTime_EntireModel_Minutes"] = ComputationTime_EntireModel_Minutes + return "N/A", pm.model, "N/A", "N/A" + end + + if Multinode_Inputs.run_outage_simulator + Outage_Results, single_model_outage_simulator, outage_simulator_time_minutes, outage_simulator_results_for_plotting, outage_survival_results_dictionary, outage_start_timesteps_dictionary = run_outage_simulator(DataDictionaryForEachNode, REopt_inputs_combined, Multinode_Inputs, TimeStamp, LineInfo_PMD, line_upgrade_options_each_line, line_upgrade_results, REoptInputs_Combined) + time_results["Step $(length(keys(time_results))+1): outage_simulator_time_minutes"] = outage_simulator_time_minutes + else + Outage_Results = Dict(["NoOutagesTested" => Dict(["Not evaluated" => "Not evaluated"])]) + single_model_outage_simulator = "N/A" + outage_simulator_time_minutes = "N/A" + outage_simulator_results_for_plotting = "N/A" + outage_survival_results_dictionary = "N/A" + outage_start_timesteps_dictionary = "N/A" + end + + if Multinode_Inputs.run_BAU_case + print("\n Running the BAU case") + Multinode_Settings_No_Techs = SetTechSizesToZero(Multinode_Settings) + Multinode_Inputs_No_Techs = REopt.MultinodeInputs(; REopt.dictkeys_tosymbols(Multinode_Settings_No_Techs)...) + PrepareElectricLoads(Multinode_Inputs_No_Techs) + + Outage_Results_No_Techs = Dict(["NoOutagesTested" => Dict(["Not evaluated" => "Not evaluated"])]) + + REopt_Results_BAU, PMD_Results_No_Techs, DataFrame_PMD_LineFlow_Summary_No_Techs, + PMD_Dictionary_LineFlow_Power_Series_No_Techs, DataDictionaryForEachNode_No_Techs, + LineInfo_PMD_No_Techs, REoptInputs_Combined_No_Techs, data_eng_No_Techs, + data_math_mn_No_Techs, pm_No_Techs, line_upgrade_options_each_line_NoTechs, + line_upgrade_results_NoTechs, load_phase_dictionary_NoTechs, gen_ind_e_to_REopt_node_noTechs, + REopt_gen_ind_e_noTechs, connections_noTechs, connections_upstream_noTechs, + connections_downstream_noTechs = build_run_and_process_results(Multinode_Inputs_No_Techs, REopt_inputs_combined, PMD_number_of_timesteps, TimeStamp, time_results; allow_upgrades=false, BAU_case=true) + + GC.gc() + + ComputationTime_EntireModel = "N/A" + system_results_BAU = REopt.Results_Compilation(pm_No_Techs.model, REopt_Results_BAU, PMD_Results, Outage_Results_No_Techs, Multinode_Inputs_No_Techs, DataFrame_PMD_LineFlow_Summary_No_Techs, PMD_Dictionary_LineFlow_Power_Series_No_Techs, TimeStamp, ComputationTime_EntireModel; system_results_BAU = "") + time_results["Step $(length(keys(time_results))+1): BAU_model_solve_time_minutes"] = round(JuMP.solve_time(model_BAU)/60, digits = 2) + print("\n Completed running the BAU case") + else + system_results_BAU = "none" + REopt_Results_BAU = "none" + model_BAU = "none" + end + + if Multinode_Inputs.allow_bus_voltage_violations # || Multinode_Inputs.allow_dropped_load_in_main_optimization + print("\n Processing the model diagnostics for bus voltage violation") + model_diagnostics_bus_voltage_violations = process_model_diagnostics_bus_voltage_violations(Multinode_Inputs, pm) + print("\n Completed processing the model diagnostics for bus voltage violation") + else + model_diagnostics_bus_voltage_violations = "N/A" + end + + if Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + GC.gc() + print("\n Processing the simple powerflow results") + simple_powerflow_model_results = process_simple_powerflow_results(Multinode_Inputs, pm.model, data_eng, connections, connections_upstream, connections_downstream) + all_line_powerflow_results = combine_PMD_and_simple_powerflow_results(Multinode_Inputs, pm.model, data_eng, PMD_Dictionary_LineFlow_Power_Series, simple_powerflow_model_results) + print("\n Completed processing the simple powerflow results") + else + simple_powerflow_model_results = "The simple powerflow model was not used" + all_line_powerflow_results = combine_PMD_and_simple_powerflow_results(Multinode_Inputs, pm.model, data_eng, PMD_Dictionary_LineFlow_Power_Series, simple_powerflow_model_results) + end + print("\n Compiling all the results") + system_results = REopt.Results_Compilation(pm.model, REopt_Results, PMD_Results, Outage_Results, Multinode_Inputs, DataFrame_PMD_LineFlow_Summary, PMD_Dictionary_LineFlow_Power_Series, TimeStamp, StartTime_EntireModel; bau_model = model_BAU, system_results_BAU = system_results_BAU, outage_simulator_time = outage_simulator_time_minutes, all_line_powerflow_results = all_line_powerflow_results, simple_powerflow_model_results=simple_powerflow_model_results) + + ComputationTime_EntireModel_Milliseconds, ComputationTime_EntireModel_Minutes = CalculateComputationTime(StartTime_EntireModel) + time_results["ComputationTime_EntireModel_Minutes"] = ComputationTime_EntireModel_Minutes + + # Compile output data into a dictionary to return from the dictionary + CompiledResults = Dict([("System_Results", system_results), + ("System_Results_BAU", system_results_BAU), + ("DataDictionaryForEachNode", DataDictionaryForEachNode), + ("Multinode_Inputs", Multinode_Inputs), + ("Dictionary_LineFlow_Power_Series", all_line_powerflow_results), + ("PMD_results", PMD_Results), + ("PMD_line_power_flow_results", PMD_Dictionary_LineFlow_Power_Series), + ("simple_powerflow_model_line_power_flow_results", simple_powerflow_model_results), + ("PMD_data_eng", data_eng), + ("REopt_results", REopt_Results), + ("REopt_results_BAU", REopt_Results_BAU), + ("Outage_Results", Outage_Results), + ("DataFrame_LineFlow_Summary", DataFrame_PMD_LineFlow_Summary), + ("Computation_Time_Data", time_results), + ("Line_Info_PMD", LineInfo_PMD), + ("pm", pm), # This can be a very large variable and it can be slow to load + ("line_upgrade_options", line_upgrade_options_each_line), + ("line_upgrade_results", line_upgrade_results), + ("single_outage_simulator_model", single_model_outage_simulator), + ("data_math_mn", data_math_mn), + ("model_diagnostics_bus_voltage_violations", model_diagnostics_bus_voltage_violations), + ("load_phase_dictionary", load_phase_dictionary), + ("gen_ind_e_to_REopt_node", gen_ind_e_to_REopt_node), + ("REopt_gen_ind_e", REopt_gen_ind_e), + #("transformer_upgrade_options", transformer_upgrade_options_output), + #("transformer_upgrade_results", transformer_upgrade_results_output) + #("FromREopt_Dictionary_Node_Data_Series", Dictionary_Node_Data_Series) + ]) + + if Multinode_Inputs.generate_dictionary_for_plotting + data_dictionary_for_plots = Dict([ + ("voltage_plot_time_step", 1), # The default is 1, but the user can update this value after this dictionary is returned from the Multinode_Model function + ("Multinode_Inputs", Multinode_Inputs), + ("outage_survival_results", outage_survival_results_dictionary), + ("outage_start_timesteps_checked", outage_start_timesteps_dictionary), + ("TimeStamp", TimeStamp), + #("OutageLength_TimeSteps_Input", OutageLength_TimeSteps_Input), + #("m_outagesimulator_dictionary", m_outagesimulator_dictionary), + ("DataDictionaryForEachNode", DataDictionaryForEachNode), + ("CompiledResults", CompiledResults), + ("REoptInputs_Combined", REoptInputs_Combined), + ("substation_power_flow", value.(pm.model[Symbol("dvSubstationPowerFlow")]).data), + ("outage_simulator_results_for_plotting", outage_simulator_results_for_plotting) + ]) + else + data_dictionary_for_plots = "N/A" + end + print("\n Completed compiling all the results") + end + + # Optional code for saving the outputs from the SOCNLPUBFPowerModel model + #if (Multinode_Inputs.model_subtype == "SOCNLPUBFPowerModel") && (Multinode_Inputs.generate_CSV_of_outputs == true) + # FilePathAndName = Multinode_Inputs.folder_location*"/Results.json" + # open(FilePathAndName,"w") do x + # JSON.print(x, PMD_Results) + # end + #end + + return CompiledResults, pm.model, model_BAU, data_dictionary_for_plots +end + + +function PrepareElectricLoads(Multinode_Inputs) + # Prepare the electric loads + REopt_inputs_all_nodes = Multinode_Inputs.REopt_inputs_list + + # Prepare loads for using with the outage simulator, if the fraction method is used for determining the critical load + if Multinode_Inputs.critical_load_method == "Fraction" + load_profiles_for_outage_sim_if_using_the_fraction_method = Dict([]) + for REopt_inputs in REopt_inputs_all_nodes + load_profiles_for_outage_sim_if_using_the_fraction_method[REopt_inputs["Site"]["node"]] = deepcopy( REopt_inputs["ElectricLoad"]["loads_kw"] ) + end + Multinode_Inputs.load_profiles_for_outage_sim_if_using_the_fraction_method = load_profiles_for_outage_sim_if_using_the_fraction_method + else + Multinode_Inputs.load_profiles_for_outage_sim_if_using_the_fraction_method = "" + end + + # If outages are defined in the optimization, set the loads to the critical loads during the outages + if Multinode_Inputs.model_outages_with_outages_vector + if Multinode_Inputs.outages_vector != [] + + for i in 1:length(Multinode_Inputs.REopt_inputs_list) + if sum(Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"]) > 0 # only apply the critical load fraction if there is a load on the node + + node = Multinode_Inputs.REopt_inputs_list[i]["Site"]["node"] + + load_segment_initial = deepcopy(Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"]) + for outage_timestep in Multinode_Inputs.outages_vector + if Multinode_Inputs.critical_load_method == "Fraction" + Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"][outage_timestep] = Multinode_Inputs.critical_load_fraction[string(node)] * load_segment_initial[outage_timestep] + elseif Multinode_Inputs.critical_load_method == "TimeSeries" + Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"][outage_timestep] = Multinode_Inputs.critical_load_timeseries[string(node)][outage_timestep] + end + end + end + end + end + elseif Multinode_Inputs.single_outage_end_time_step - Multinode_Inputs.single_outage_start_time_step > 0 + + OutageStart = Multinode_Inputs.single_outage_start_time_step + OutageEnd = Multinode_Inputs.single_outage_end_time_step + + for i in 1:length(Multinode_Inputs.REopt_inputs_list) + + node = Multinode_Inputs.REopt_inputs_list[i]["Site"]["node"] + + if Multinode_Inputs.critical_load_method == "Fraction" + if sum(Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"]) > 0 # only apply the critical load fraction if there is a load on the node + load_segment_initial = deepcopy(Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"]) + load_segment_modified = deepcopy(load_segment_initial) + if !(string(node) in keys(Multinode_Inputs.critical_load_fraction)) + throw(@error("Node $(node) is not listed in the critical_load_fraction dictionary")) + end + load_segment_modified[OutageStart:OutageEnd] = Multinode_Inputs.critical_load_fraction[string(node)] * load_segment_initial[OutageStart:OutageEnd] + delete!(Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"],"loads_kw") + Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"] = load_segment_modified + end + elseif Multinode_Inputs.critical_load_method == "TimeSeries" + if sum(Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"]) > 0 + load_segment_initial = deepcopy(Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"]) + load_segment_modified = deepcopy(load_segment_initial) + if !(string(node) in keys(critical_load_timeseries)) + throw(@error("Node $(node) is not listed in the critical_load_timeseries dictionary")) + end + load_segment_modified[OutageStart:OutageEnd] = Multinode_Inputs.critical_load_timeseries[string(node)][OutageStart:OutageEnd] + delete!(Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"],"loads_kw") + Multinode_Inputs.REopt_inputs_list[i]["ElectricLoad"]["loads_kw"] = load_segment_modified + end + end + end + end +end + + +function build_run_and_process_results(Multinode_Inputs, REopt_inputs_combined, PMD_number_of_timesteps, timestamp, time_results; allow_upgrades=false, BAU_case=false) + # Function to build the model, run the model, and process results + + # Empty these variables from any previous contents + pm = nothing + data_math_mn = nothing + data_eng = nothing + + combined_REopt_inputs = REopt_inputs_combined + + pm, data_math_mn, data_eng = Create_PMD_Model_For_REopt_Integration(Multinode_Inputs, PMD_number_of_timesteps, time_results; combined_REopt_inputs = combined_REopt_inputs, BAU_case = BAU_case) + + LineInfo_PMD, data_math_mn, REoptInputs_Combined, + pm, load_phase_dictionary, gen_ind_e_to_REopt_node, + REopt_gen_ind_e, line_upgrade_options_each_line, + connections, connections_upstream, connections_downstream = Build_REopt_and_Link_To_PMD(pm, Multinode_Inputs, REopt_inputs_combined, data_math_mn, data_eng; allow_upgrades=allow_upgrades) + + GC.gc() + + add_objective(pm, Multinode_Inputs, REoptInputs_Combined) + + results, TerminationStatus = Run_REopt_PMD_Model(pm, Multinode_Inputs, timestamp) + + GC.gc() + + if TerminationStatus != "OPTIMAL" + @warn "Optimization did not solve to optimality (status: $(TerminationStatus)). Skipping results processing and returning the failed model." + return "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", REoptInputs_Combined, data_eng, "Value not saved", pm, "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A" + end + + REopt_Results, PMD_Results, DataDictionaryForEachNode, Dictionary_LineFlow_Power_Series, DataFrame_LineFlow_Summary, line_upgrade_results = Results_Processing_REopt_PMD_Model(pm.model, results, data_math_mn, REoptInputs_Combined, Multinode_Inputs, timestamp, time_results; allow_upgrades=allow_upgrades, line_upgrade_options_each_line = line_upgrade_options_each_line, BAU_case=BAU_case) + + print("\n Completed the build_run_and_process_results step") + + if !(Multinode_Inputs.include_additional_outputs_into_the_combined_results_dictionary) + data_math_mn = "Value not saved" + end + + return REopt_Results, PMD_Results, DataFrame_LineFlow_Summary, Dictionary_LineFlow_Power_Series, DataDictionaryForEachNode, LineInfo_PMD, REoptInputs_Combined, data_eng, data_math_mn, pm, line_upgrade_options_each_line, line_upgrade_results, load_phase_dictionary, gen_ind_e_to_REopt_node, REopt_gen_ind_e, connections, connections_upstream, connections_downstream +end + + +function create_list_of_upgradable_lines(Multinode_Inputs) + # Create a list lines that are upgradable + + lines_for_upgrades_temp = [] + for i in keys(Multinode_Inputs.line_upgrade_options) + push!(lines_for_upgrades_temp, Multinode_Inputs.line_upgrade_options[i]["locations"]) + end + lines_for_upgrades = unique!(lines_for_upgrades_temp)[1] + + return lines_for_upgrades +end + + +function CreateDictionaryOfLineUpgradeOptions(Multinode_Inputs) + # Generate a dictionary for the options, organized so that the keys are the lines and the values are options for each line + + lines_for_upgrades = create_list_of_upgradable_lines(Multinode_Inputs) + + line_upgrade_options_each_line = Dict([]) + + for line in lines_for_upgrades + for i in keys(Multinode_Inputs.line_upgrade_options), j in Multinode_Inputs.line_upgrade_options[i]["locations"] + if line == j + + if line āˆ‰ keys(line_upgrade_options_each_line) # create a new entry for that line if it is not in the line_upgrade_options_each_line dictionary + + line_upgrade_options_each_line[line] = Dict([("max_amperage", [Multinode_Inputs.line_upgrade_options[i]["max_amps"]]), + ("cost_per_length", [Multinode_Inputs.line_upgrade_options[i]["cost_per_meter"]]), + ("voltage_kv", Multinode_Inputs.line_upgrade_options[i]["voltage_kv"]) # all upgrade options for a given line should have the same voltage + #("rvalues", [Multinode_Inputs.line_upgrade_options[i]["rvalues"]]), + #("xvalues", [Multinode_Inputs.line_upgrade_options[i]["xvalues"]]) + ]) + else + push!(line_upgrade_options_each_line[line]["max_amperage"], Multinode_Inputs.line_upgrade_options[i]["max_amps"]) + push!(line_upgrade_options_each_line[line]["cost_per_length"], Multinode_Inputs.line_upgrade_options[i]["cost_per_meter"]) + #push!(line_upgrade_options_each_line[line_name]["rvalues"], Multinode_Inputs.line_upgrade_options[i]["rvalues"]) + #push!(line_upgrade_options_each_line[line_name]["xvalues"], Multinode_Inputs.line_upgrade_options[i]["xvalues"]) + end + end + end + end + + return line_upgrade_options_each_line +end + + +function model_line_upgrades(pm, Multinode_Inputs, LineInfo, data_eng) + # Function for modeling line upgrades + + lines_for_upgrades = create_list_of_upgradable_lines(Multinode_Inputs) + + print("\n The lines for upgrades are: $(lines_for_upgrades) ") + + # Define variables for the line cost and line max amps + @variable(pm.model, line_cost[lines_for_upgrades] >= 0 ) + @variable(pm.model, line_max_amps[lines_for_upgrades] >= 0) + + line_upgrade_options_each_line = CreateDictionaryOfLineUpgradeOptions(Multinode_Inputs) + + for line in lines_for_upgrades + + number_of_entries = length(line_upgrade_options_each_line[line]["max_amperage"]) + dv = "Bin"*line + pm.model[Symbol(dv)] = @variable(pm.model, [1:number_of_entries], base_name=dv, Bin) + line_length = data_eng["line"][line]["length"] + + @constraint(pm.model, pm.model[:line_max_amps][line] == sum(pm.model[Symbol(dv)][i]*line_upgrade_options_each_line[line]["max_amperage"][i] for i in 1:number_of_entries)) + @constraint(pm.model, pm.model[:line_cost][line] == line_length * sum(pm.model[Symbol(dv)][i]*line_upgrade_options_each_line[line]["cost_per_length"][i] for i in 1:number_of_entries)) + @constraint(pm.model, sum(pm.model[Symbol(dv)][i] for i in 1:number_of_entries) == 1) + + # Constraint for limiting the power flow through line xxxx to the line_max_amps variable constrained + i = LineInfo[line]["index"] + + # Based off of code in line 470 of PMD's src>core>constraint_template + timestep = 1 # collect the network configuration information from timestep 1, which assumes that the network is not changing (fair to assume with the REopt integration) + branch = PowerModelsDistribution.ref(pm, timestep, :branch, i) + f_bus = branch["f_bus"] + t_bus = branch["t_bus"] + f_connections = branch["f_connections"] + t_connections = branch["t_connections"] + f_idx = (i, f_bus, t_bus) + t_idx = (i, t_bus, f_bus) + + if Multinode_Inputs.display_information_during_modeling_run + print("\n The f_idx for line $(line) is $(f_idx)") + print("\n The t_idx for line $(line) is $(t_idx)") + end + + for timestep in Multinode_Inputs.PMD_time_steps + PMD_time_step = findall(x -> x==timestep, Multinode_Inputs.PMD_time_steps)[1] #use the [1] to convert the 1-element vector into an integer + + p_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :p, f_idx)[c] for c in f_connections] + p_to = [PowerModelsDistribution.var(pm, PMD_time_step, :p, t_idx)[c] for c in t_connections] + + @constraint(pm.model, p_fr[1] <= pm.model[:line_max_amps][line] * line_upgrade_options_each_line[line]["voltage_kv"]) + @constraint(pm.model, p_fr[1] >= -pm.model[:line_max_amps][line] * line_upgrade_options_each_line[line]["voltage_kv"]) + + @constraint(pm.model, p_to[1] <= pm.model[:line_max_amps][line] * line_upgrade_options_each_line[line]["voltage_kv"]) + @constraint(pm.model, p_to[1] >= -pm.model[:line_max_amps][line] * line_upgrade_options_each_line[line]["voltage_kv"]) + + end + end + + return pm, line_upgrade_options_each_line +end + + +function model_transformer_upgrades(pm, Multinode_Inputs) + # TODO: add this capability + + return pm +end + + +function PrepareREoptInputs(Multinode_Inputs, time_results) + # Generate the scenarios, REoptInputs, and list of REoptInputs + + print("\n Creating the REopt scenarios") + scenarios = Dict([]) + Start_time_prepare_REopt_scenarios = now() + for i in 1:length(Multinode_Inputs.REopt_inputs_list) + scenarios[i] = Scenario(Multinode_Inputs.REopt_inputs_list[i]) + end + milliseconds, time_results["Step $(length(keys(time_results))+1): prepare_REopt_scenarios_time_minutes"] = CalculateComputationTime(Start_time_prepare_REopt_scenarios) + + + print("\n Converting the REopt scenarios into the REoptInputs format") + REoptInputs_dictionary = Dict([]) + Start_time_prepare_REoptInputs = now() + for i in 1:length(Multinode_Inputs.REopt_inputs_list) + REoptInputs_dictionary[i] = REoptInputs(scenarios[i]) + end + milliseconds, time_results["Step $(length(keys(time_results))+1): prepare_REoptInputs_time_minutes"] = CalculateComputationTime(Start_time_prepare_REoptInputs) + + + print("\n Compiling the REoptInputs into the same dictionary") + Start_time_compile_REoptInputs_Into_Same_Dictionary = now() + REopt_dictionary = [REoptInputs_dictionary[1]] + for i in 2:length(Multinode_Inputs.REopt_inputs_list) + push!(REopt_dictionary, REoptInputs_dictionary[i]) + end + milliseconds, time_results["Step $(length(keys(time_results))+1): compile_REoptInputs_Into_Same_Dictionary"] = CalculateComputationTime(Start_time_compile_REoptInputs_Into_Same_Dictionary) + + return REopt_dictionary +end + + +function SetTechSizesToZero(Multinode_Settings) + + Multinode_Settings_No_Techs = deepcopy(Multinode_Settings) + + for i in 1:length(Multinode_Settings_No_Techs["REopt_inputs_list"]) + if ("PV" in keys(Multinode_Settings_No_Techs["REopt_inputs_list"][i])) && (string(Multinode_Settings_No_Techs["REopt_inputs_list"][i]["Site"]["node"]) != Multinode_Settings["facilitymeter_node"]) + delete!(Multinode_Settings_No_Techs["REopt_inputs_list"][i], "PV") + end + if "ElectricStorage" in keys(Multinode_Settings_No_Techs["REopt_inputs_list"][i]) + delete!(Multinode_Settings_No_Techs["REopt_inputs_list"][i], "ElectricStorage") + end + if "Generator" in keys(Multinode_Settings_No_Techs["REopt_inputs_list"][i]) + delete!(Multinode_Settings_No_Techs["REopt_inputs_list"][i], "Generator") + end + if string(Multinode_Settings_No_Techs["REopt_inputs_list"][i]["Site"]["node"]) != Multinode_Settings["facilitymeter_node"] + Multinode_Settings_No_Techs["REopt_inputs_list"][i]["ElectricUtility"]["net_metering_limit_kw"] = 0 + Multinode_Settings_No_Techs["REopt_inputs_list"][i]["ElectricUtility"]["interconnection_limit_kw"] = 0 + Multinode_Settings_No_Techs["REopt_inputs_list"][i]["PV"]["can_net_meter"] = false + end + end + + Multinode_Settings_No_Techs["single_outage_start_time_step"] = 5 + Multinode_Settings_No_Techs["single_outage_end_time_step"] = 5 # set to same time as outage start time step so a single outage is not modeled + Multinode_Settings_No_Techs["outages_vector"] = [] + Multinode_Settings_No_Techs["run_outage_simulator"] = false + Multinode_Settings_No_Techs["generate_CSV_of_outputs"] = false + Multinode_Settings_No_Techs["model_line_upgrades"] = false + Multinode_Settings_No_Techs["model_transformer_upgrades"] = false + Multinode_Settings_No_Techs["allow_export_beyond_substation"] = false + + return Multinode_Settings_No_Techs +end + +# This function is a slight modification to the calc_voltage_bases function in PMD +function calc_voltage_bases(data_model::Dict{String,<:Any}, vbase_sources::Dict{String, <:Any})::Tuple{Dict,Dict} + return ismath(data_model) ? calc_math_voltage_bases(data_model, vbase_sources) : calc_eng_voltage_bases(data_model, vbase_sources) +end + + +function ApplyDataEngSettings(data_eng, Multinode_Inputs) + # Apply several miscellaneous settings to the data_eng dictionary + + data_eng["settings"]["sbase_default"] = 1.0*1E3/data_eng["settings"]["power_scale_factor"] # Set the power base (sbase) equal to 1 kW + data_eng["voltage_source"]["source"]["bus"] = Multinode_Inputs.substation_node # "sourcebus" + data_eng["settings"]["name"] = "OptimizationModel" + + PowerModelsDistribution.add_bus_absolute_vbounds!( + data_eng, + phase_lb_pu = Multinode_Inputs.bus_phase_voltage_lower_bound_per_unit, + phase_ub_pu = Multinode_Inputs.bus_phase_voltage_upper_bound_per_unit, + neutral_ub_pu = Multinode_Inputs.bus_neutral_voltage_upper_bound_per_unit + ) + +end + + +function ApplyLoadProfileToPMDModel(Multinode_Inputs, data_eng, PMD_number_of_timesteps, REopt_nodes; combined_REopt_inputs = "") + # Apply a timeseries load profile to the PMD model + + data_eng["time_series"] = Dict{String,Any}() + data_eng["time_series"]["normalized_load_profile"] = Dict{String,Any}("replace" => false, + "time" => 1:PMD_number_of_timesteps, + "values" => zeros(PMD_number_of_timesteps) + ) + + if Multinode_Inputs.number_of_phases == 1 + for i in REopt_nodes + data_eng["load"]["load$(i)"]["time_series"] = Dict( + "pd_nom"=>"normalized_load_profile", + "qd_nom"=> "normalized_load_profile" + ) + end + elseif Multinode_Inputs.number_of_phases in [2,3] + for p in combined_REopt_inputs + node = p.s.site.node + if node in REopt_nodes + for phase in p.s.settings.phase_numbers + print("\n Adding PMD load empty time series to REopt node $(node), phase $(phase)") + data_eng["load"]["load$(node)_phase$(phase)"]["time_series"] = Dict( + "pd_nom"=>"normalized_load_profile", + "qd_nom"=> "normalized_load_profile" + ) + end + end + end + print("\n ") + else + throw(@error("The number_of_phases in the multinode inputs dictionary $(Multinode_Inputs.number_of_phases) is invalid")) + end +end + + +function CreatePMDGenerators(Multinode_Inputs, data_eng, REopt_nodes; combined_REopt_inputs = "") + # Add a generic PMD generator for each REopt node to the model, in order to be able to connect the REopt and PMD models + + data_eng["generator"] = Dict{String, Any}() + if Multinode_Inputs.number_of_phases == 1 + for e in REopt_nodes + data_eng["generator"]["REopt_gen_$(e)"] = Dict{String,Any}( + "status" => PowerModelsDistribution.ENABLED, + "bus" => data_eng["load"]["load$(e)"]["bus"], + "connections" => [data_eng["load"]["load$(e)"]["connections"][1], 4], # Note: From PMD tutorial: "create a generator with the same connection setting." + "configuration" => PowerModelsDistribution.WYE, + ) + end + elseif Multinode_Inputs.number_of_phases in [2,3] + for p in combined_REopt_inputs + e = p.s.site.node + + if e in REopt_nodes + for phase in p.s.settings.phase_numbers + #print("\n The connections are: ") + #print(data_eng["load"]["load$(e)_phase$(phase)"]["connections"]) + #print("\n") + data_eng["generator"]["REopt_gen_node$(e)_phase$(phase)"] = Dict{String,Any}( + "status" => PowerModelsDistribution.ENABLED, + "bus" => data_eng["load"]["load$(e)_phase$(phase)"]["bus"], + "connections" => [data_eng["load"]["load$(e)_phase$(phase)"]["connections"][1], 4], # data_eng["load"]["load$(e)_phase$(phase)"]["connections"][1] will show the phase connection for that load. Does this only work with single phase loads? Note: From PMD tutorial: "create a generator with the same connection setting." + "configuration" => PowerModelsDistribution.WYE, + ) + end + end + end + else + throw(@error("The number_of_phases for node $(i) is invalid")) + end +end + + +function Create_PMD_Model_For_REopt_Integration(Multinode_Inputs, PMD_number_of_timesteps, time_results; combined_REopt_inputs = "", outage_simulator = false, BAU_case = false) + + if typeof(Multinode_Inputs.PMD_network_input) == String + print("\n Parsing the network input file \n") + data_eng = PowerModelsDistribution.parse_file(Multinode_Inputs.PMD_network_input, transformations=[PowerModelsDistribution.remove_all_bounds!]) + @info "Completed parsing the .dss file" + elseif typeof(Multinode_Inputs.PMD_network_input) == Dict{String, Any} + print("\n Saving the PMD network input as a variable") + data_eng = Multinode_Inputs.PMD_network_input + print("\n Completed the PMD network input as a variable") + else + throw(@error("The PMD_network_input input format is not valid")) + end + + data_eng_keys = keys(data_eng) + print("\n The data_eng keys are $(data_eng_keys)") + #print("\n The data_eng bus keys are $(keys(data_eng["bus"]))") + #print("\n The data_eng load keys are $(keys(data_eng["load"]))") + + Start_generate_REopt_nodes_list = now() + REopt_nodes = REopt.GenerateREoptNodesList(Multinode_Inputs) # Generate a list of the REopt nodes + + Start_apply_data_eng_settings = now() + ApplyDataEngSettings(data_eng, Multinode_Inputs) + + Start_apply_load_profile_to_PMD_model = now() + ApplyLoadProfileToPMDModel(Multinode_Inputs, data_eng, PMD_number_of_timesteps, REopt_nodes; combined_REopt_inputs = combined_REopt_inputs) + + Start_create_PMD_generators = now() + CreatePMDGenerators(Multinode_Inputs, data_eng, REopt_nodes; combined_REopt_inputs = combined_REopt_inputs) + + # Beginning of code provided by AI + # Kron reduction requires f_connections == t_connections for every line and switch. + # Some DSS lines include the neutral conductor (4) in connections but reference a + # 3Ɨ3 linecode (so rs is not inlined), or have asymmetric Bus1/Bus2 conductor lists. + # This function makes both connection vectors consistent before transform_data_model. + function fix_line_connections_for_kron!(data_eng) + n_fixed = 0 + for comp_type in ("line", "switch") + for (name, comp) in get(data_eng, comp_type, Dict()) + f_conns = get(comp, "f_connections", Int[]) + t_conns = get(comp, "t_connections", Int[]) + + # Step 1: if an inline rs matrix is smaller than the connection count, + # strip conductor 4 (neutral) from both sides. + rs = get(comp, "rs", nothing) + if rs !== nothing + n_matrix = size(rs, 1) + if n_matrix < max(length(f_conns), length(t_conns)) + f_conns = filter(c -> c != 4, f_conns) + t_conns = filter(c -> c != 4, t_conns) + comp["f_connections"] = f_conns + comp["t_connections"] = t_conns + n_fixed += 1 + end + end + + # Step 2: Kron reduction asserts f_connections == t_connections. + # If they still differ (e.g. neutral on one end only, or different + # ordering from the DSS Bus1/Bus2 specs), force t to match f. + if f_conns != t_conns + comp["t_connections"] = copy(f_conns) + n_fixed += 1 + end + end + end + println("fix_line_connections_for_kron!: corrected $n_fixed line/switch connection vector(s)") + end + fix_line_connections_for_kron!(data_eng) + # End of code provided by AI + + kron_reduce_indicator=true + Start_transform_to_math_model = now() + data_math_mn = PowerModelsDistribution.transform_data_model(data_eng, kron_reduce=kron_reduce_indicator, multinetwork=true) # Transforming the engineering model to a mathematical model in PMD + + # Initialize voltage variable values: + @info "running add_start_vrvi (this may take a few minutes for large models)\n" + Start_vrvi = now() + if Multinode_Inputs.number_of_phases == 1 + PowerModelsDistribution.add_start_vrvi!(data_math_mn) + else + @warn "Not using the add_start_vrvi function from PMD because the system is multiphase and the add_start_vrvi function appears not to work with multi-phase systems in this code" + end + + milliseconds, PMD_vrvi_time_minutes = CalculateComputationTime(Start_vrvi) + print("\n The PMD_vrvi_time was: $(PMD_vrvi_time_minutes) minutes \n") + + print("\n Instantiating the PMD model (this may take a few minutes for large models)\n") + Start_instantiate = now() + + if Multinode_Inputs.model_subtype == "LPUBFDiagPowerModel" + pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.LPUBFDiagPowerModel, PowerModelsDistribution.build_mn_mc_opf) # Note: instantiate_mc_model automatically converts the "engineering" model into a "mathematical" model + elseif Multinode_Inputs.model_subtype == "NFAUPowerModel" + pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.NFAUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif Multinode_Inputs.model_subtype == "ACPUPowerModel" + pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.ACPUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif Multinode_Inputs.model_subtype == "ACRUPowerModel" + pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.ACRUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif Multinode_Inputs.model_subtype == "IVRUPowerModel" + pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.IVRUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif Multinode_Inputs.model_subtype == "SOCNLPUBFPowerModel" + pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.SOCNLPUBFPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif Multinode_Inputs.model_subtype == "SOCConicUBFPowerModel" + pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.SOCConicUBFPowerModel, PowerModelsDistribution.build_mn_mc_opf) + else + throw(@error("The PMD subtype is not valid")) + end + + milliseconds, PMD_instantiate_time_minutes = CalculateComputationTime(Start_instantiate) + print("\n The PMD_instantiate_time was: $(PMD_instantiate_time_minutes) minutes \n") + + # Record additional computation times for non-outage-simulator models + if outage_simulator == false + if BAU_case == true + BAU_indicator = "BAU_model_" + else + BAU_indicator = "" + end + + time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"PMD_instantiate_time_minutes"] = PMD_instantiate_time_minutes + + time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"PMD_vrvi_time_minutes"] = PMD_vrvi_time_minutes + + milliseconds, PMD_transform_to_math_model_time_minutes = CalculateComputationTime(Start_transform_to_math_model) + time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"PMD_transform_to_math_model_minutes"] = PMD_transform_to_math_model_time_minutes + + milliseconds, generate_REopt_nodes_list_minutes = CalculateComputationTime(Start_generate_REopt_nodes_list) + time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"generate_REopt_nodes_list_minutes"] = generate_REopt_nodes_list_minutes + + milliseconds, apply_data_eng_settings_minutes = CalculateComputationTime(Start_apply_data_eng_settings) + time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"apply_data_eng_settings_minutes"] = apply_data_eng_settings_minutes + + milliseconds, apply_load_profile_to_PMD_model_minutes = CalculateComputationTime(Start_apply_load_profile_to_PMD_model) + time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"apply_load_profile_to_PMD_model_minutes"] = apply_load_profile_to_PMD_model_minutes + + milliseconds, create_PMD_generators_minutes = CalculateComputationTime(Start_create_PMD_generators) + time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"create_PMD_generators_minutes"] = create_PMD_generators_minutes + end + + return pm, data_math_mn, data_eng +end + + +function CreateREoptTotalExportVariables(m, REoptInputs_Combined) + # Create Total Export variables for each REopt node, except for the facility meter node + + for p in REoptInputs_Combined + _n = string("_", p.s.site.node) + if string(p.s.site.node) != p.s.settings.facilitymeter_node + m[Symbol("TotalExport"*_n)] = @expression(m, [ts in p.time_steps], + sum( + m[Symbol("dvProductionToGrid"*_n)][t,u,ts] + for t in p.techs.elec, u in p.export_bins_by_tech[t] + ) + + sum(m[Symbol("dvStorageToGrid"*_n)][b,ts] for b in p.s.storage.types.all ) # This line includes battery export in the total export + ) + else + print("\n Not creating a total export variable for node $(p.s.site.node) because this node is the facility meter node.") + end + end + +end + + +function create_load_phase_dictionary(Multinode_Inputs, REopt_nodes, REopt_inputs_combined) + # Create a dictionary that lists the phases that are associated with each load + load_phase_dictionary = Dict() + + for p in REopt_inputs_combined + if p.s.site.node in REopt_nodes + load_phase_dictionary[p.s.site.node] = p.s.settings.phase_numbers + end + end + return load_phase_dictionary +end + + +function create_dictionary_for_gen_ind_e_to_REopt_node(Multinode_Inputs, REopt_nodes, load_phase_dictionary, gen_name2ind) + + if Multinode_Inputs.number_of_phases == 1 + gen_ind_e_to_REopt_node = Dict() + for e in REopt_nodes + gen_ind_e_temp = gen_name2ind["REopt_gen_$(e)"] + gen_ind_e_to_REopt_node[gen_ind_e_temp] = e + end + + elseif Multinode_Inputs.number_of_phases in [2,3] + gen_ind_e_to_REopt_node = Dict() + for e in REopt_nodes + for phase in load_phase_dictionary[e] + gen_ind_e_temp = gen_name2ind["REopt_gen_node$(e)_phase$(phase)"] + gen_ind_e_to_REopt_node[gen_ind_e_temp] = e + end + end + + else + throw(@error("The number of phases input is not valid")) + end + + return gen_ind_e_to_REopt_node +end + + +function generate_PMD_information(Multinode_Inputs, REopt_nodes, REopt_inputs_combined, data_math_mn) + + gen_name2ind = Dict(gen["name"] => gen["index"] for (_,gen) in data_math_mn["nw"]["1"]["gen"]) + + load_phase_dictionary = create_load_phase_dictionary(Multinode_Inputs, REopt_nodes, REopt_inputs_combined) + + gen_ind_e_to_REopt_node = create_dictionary_for_gen_ind_e_to_REopt_node(Multinode_Inputs, REopt_nodes, load_phase_dictionary, gen_name2ind) + + return gen_name2ind, load_phase_dictionary, gen_ind_e_to_REopt_node +end + + +function LinkREoptAndPMD(pm, m, data_math_mn, Multinode_Inputs, REopt_nodes, REopt_inputs_combined) + # Link the PMD and REopt variables through constraints + + gen_name2ind, load_phase_dictionary, gen_ind_e_to_REopt_node = generate_PMD_information(Multinode_Inputs, REopt_nodes, REopt_inputs_combined, data_math_mn) + + if Multinode_Inputs.display_information_during_modeling_run + print("\n gen_ind_e_to_REopt_node") + print(gen_ind_e_to_REopt_node) + print("\n") + end + + REopt_gen_ind_e = "" + + if Multinode_Inputs.number_of_phases == 1 + REopt_gen_ind_e = [gen_name2ind["REopt_gen_$(e)"] for e in REopt_nodes]; + + elseif (Multinode_Inputs.number_of_phases == 2) || (Multinode_Inputs.number_of_phases == 3) + + REopt_gen_ind_e = [] + + print("\n Gen name to index: ") + print(gen_name2ind) + + for e in REopt_nodes + for phase in load_phase_dictionary[e] + # Add the gen index to the REopt_gen_ind_e list + gen_ind_e_temp = gen_name2ind["REopt_gen_node$(e)_phase$(phase)"] + push!(REopt_gen_ind_e, gen_ind_e_temp) + + end + end + else + throw(@error("Error in the number of phases")) + end + + PMDTimeSteps_InREoptTimes = Multinode_Inputs.PMD_time_steps + PMDTimeSteps_Indeces = collect(1:length(PMDTimeSteps_InREoptTimes)) + + # Get the gen indeces this way: gen_name2ind = Dict(gen["name"] => gen["index"] for (_,gen) in data_math_mn["nw"]["1"]["gen"]) + + #= + dv = "dvFreeReactivePower" + m[Symbol(dv)] = @variable(m, [REopt_gen_ind_e, PMDTimeSteps_Indeces], base_name=dv) + + @constraint(m, [k in PMDTimeSteps_Indeces, e in REopt_gen_ind_e], m[:dvFreeReactivePower][e,k] .<= 0), #500 ) + @constraint(m, [k in PMDTimeSteps_Indeces, e in REopt_gen_ind_e], m[:dvFreeReactivePower][e,k] .>= 0), #-500 ) + =# + + for e in REopt_gen_ind_e #Note: the REopt_gen_ind_e does not contain the facility meter + + number_of_phases_at_load = "" + number_of_phases_at_load = length(load_phase_dictionary[gen_ind_e_to_REopt_node[e]]) + + # Note: evenly split the total export and import across each phase associated with that load (aka REopt node, aka PMD generator) + JuMP.@constraint(m, [k in PMDTimeSteps_Indeces], + PowerModelsDistribution.var(pm, k, :pg, e).data[1] .== round((1/number_of_phases_at_load), digits = 3) * (m[Symbol("TotalExport_"*string(gen_ind_e_to_REopt_node[e]))][PMDTimeSteps_InREoptTimes[k]] - m[Symbol("dvGridPurchase_"*string(gen_ind_e_to_REopt_node[e]))][PMDTimeSteps_InREoptTimes[k]]) # negative power "generation" is a load + ) + + # TODO: add reactive power to the REopt nodes + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + JuMP.@constraint(m, [k in PMDTimeSteps_Indeces], + PowerModelsDistribution.var(pm, k, :qg, e).data[1] .== 0.0 # m[:dvFreeReactivePower][e,k] # (1/number_of_phases_at_load) * m[Symbol("TotalExport_"*string(buses[e]))][PMDTimeSteps_InREoptTimes[k]] - m[Symbol("dvGridPurchase_"*string(buses[e]))][PMDTimeSteps_InREoptTimes[k]] + ) + end + end + + return REopt_gen_ind_e, load_phase_dictionary, gen_ind_e_to_REopt_node + +end + + +function add_transformer_lines_to_the_dictionary(data_eng, lines, phases_for_each_line) + # Represent transformers as lines because voltage is not modeled in the simple powerflow representation without PMD + + transformers = collect(keys(data_eng["transformer"])) + transformer_busses = Dict() + for transformer_name in transformers + transformer_bus1 = data_eng["transformer"][transformer_name]["bus"][1] + transformer_bus2 = data_eng["transformer"][transformer_name]["bus"][2] + transformer_line = "xfmr_line_"*string(transformer_bus1)*"_"*string(transformer_bus2) + transformer_busses[transformer_line] = [transformer_bus1, transformer_bus2] + if !(transformer_line in lines) + push!(lines, transformer_line) + else + print("\n Not adding $(transformer_line) to the lines vector because it already exists. This is likely due to a multiple single phase transformers (or voltage regulators) connecting the same busses. The total power rating for these may need to be added together in the model inputs.") + end + + # Add the phases for the transformer line to dictionary: + if !(transformer_line in collect(keys(phases_for_each_line))) # use this conditional to avoid adding multiple lines for the same connection between two nodes (could occur if there are single phase transformers or voltage regulators connecting each of of two adjacent three-phase busses) + phases_for_each_line[transformer_line] = filter!(x -> x != 4, data_eng["transformer"][transformer_name]["connections"][1]) # Remove the 4 connection (the neutral I think) for the purposes of this simple powerflow equation + else + # Add the phase to the existing line between the two busses (which is from another transformer or voltage regulator, likely a single phase transformer connecting the same two busses) + append!(phases_for_each_line[transformer_line], filter!(x -> x != 4, data_eng["transformer"][transformer_name]["connections"][1])) + end + end + + return phases_for_each_line, lines, transformer_busses +end + + +function CreateDictionaryOfNodeConnections(Multinode_Inputs, data_eng) + # Create dictionary with information about which lines are connected to each bus + + summed_lengths_to_sourcebus_dict, lengths_to_sourcebus_dict, line_names_to_sourcebus_dict, paths, neighbors = REopt.DetermineDistanceFromSourcebus(Multinode_Inputs, data_eng) + print("\n Finished determining the distance from the sourcebus") + + # Create a new dictionary based on the paths (which will include the transformer path) + line_names_to_sourcebus_dict_including_transformers = "This variable is not used anymore" # Dict() + + # Initial the lines vector based on data in PMD (which doesn't represent the transformers as lines) + lines = collect(keys(data_eng["line"])) + + # Initiate this dictionary with just the phases for each line; + phases_for_each_line = create_dictionary_of_phases_for_each_line(data_eng) + + # Then add the line IDs and phases for each transformer, representing the transformers as lines + phases_for_each_line_and_transformer_line, lines, transformer_busses = add_transformer_lines_to_the_dictionary(data_eng, lines, phases_for_each_line) + + connections_upstream_busses = Dict() + connections_downstream_busses = Dict() + all_lines_including_transformers_converted_to_lines = collect(keys(phases_for_each_line_and_transformer_line)) + + all_busses = keys(neighbors) + for bus in all_busses + upstream_path = paths[bus] + neighboring_busses = neighbors[bus] + + overlap = intersect(neighboring_busses, upstream_path) + if length(overlap) > 1 # This should be correected if want to model mesh networks + throw(@error("There are multiple upstream busses to bus $(bus)")) + end + + if length(overlap) == 1 + #print("\n Overlap length is 1") + upstream_bus = overlap[1] + else + print("\n Overlap length is not 1 or greater than 1 for bus $(bus), which should be the source bus") + print("\n") + upstream_bus = "N/A" + end + + downstream_busses = setdiff(neighboring_busses, upstream_path) # Finds the busses that are neighbors that are not part of the upstream path + connections_upstream_busses[bus] = upstream_bus + connections_downstream_busses[bus] = downstream_busses + end + + bus_pair_to_line_conversion = Dict() + + for line in all_lines_including_transformers_converted_to_lines + if line in keys(data_eng["line"]) + node1 = data_eng["line"][line]["f_bus"] + node2 = data_eng["line"][line]["t_bus"] + bus_pair_to_line_conversion[(node1, node2)] = line + elseif line in keys(transformer_busses) + node1 = transformer_busses[line][1] + node2 = transformer_busses[line][2] + bus_pair_to_line_conversion[(node1, node2)] = line + else + throw(@error("Error converting the bus-pair to line for line $(line) ")) + end + end + + connections_upstream_lines = Dict() + connections_downstream_lines = Dict() + + # Loop through all downstream connections_busses and identify the corresponding line using the bus_pair_to_line_conversion + for bus in collect(keys(connections_downstream_busses)) + downstream_lines_temp = [] + downstream_buses = connections_downstream_busses[bus] + for downstream_bus in downstream_buses + if (bus, downstream_bus) in keys(bus_pair_to_line_conversion) + push!(downstream_lines_temp, bus_pair_to_line_conversion[(bus, downstream_bus)]) + elseif (downstream_bus, bus) in keys(bus_pair_to_line_conversion) + push!(downstream_lines_temp, bus_pair_to_line_conversion[(downstream_bus, bus)]) + else + throw(@error("No line found for the downstream neighboring bus pair $(bus) and $(downstream_bus)")) + end + end + connections_downstream_lines[bus] = downstream_lines_temp + end + + # Loop through all upstream connections_busses and identify the corresponding line using the bus_pair_to_line_conversion + for bus in collect(keys(connections_upstream_busses)) + upstream_lines_temp = [] + upstream_bus = connections_upstream_busses[bus] + #for upstream_bus in upstream_buses # use something like this for mesh networks probably + if (bus, upstream_bus) in keys(bus_pair_to_line_conversion) + push!(upstream_lines_temp, bus_pair_to_line_conversion[(bus, upstream_bus)]) + elseif (upstream_bus, bus) in keys(bus_pair_to_line_conversion) + push!(upstream_lines_temp, bus_pair_to_line_conversion[(upstream_bus, bus)]) + elseif bus == Multinode_Inputs.substation_node + print("\n The bus $(bus) is the substation node, so no upstream lines are being added to the connections_upstream_lines dictionary for that bus") + else + throw(@error("No line found for the upstream neighboring bus pair $(bus) and $(upstream_bus)")) + end + #end + connections_upstream_lines[bus] = upstream_lines_temp + end + + all_connections_lines_to_busses = merge(connections_downstream_lines, connections_upstream_lines) do a, b + vcat(a, b) + end + + if Multinode_Inputs.display_information_during_modeling_run + # Save some text files showing connectivity from the simple powerflow model + open(Multinode_Inputs.folder_location*"/paths.txt","w") do input + for (key, val) in paths + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/neighbors.txt","w") do input + for (key, val) in neighbors + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/all_connections_lines_to_busses.txt","w") do input + for (key, val) in all_connections_lines_to_busses + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/connections_upstream_busses.txt","w") do input + for (key, val) in connections_upstream_busses + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/connections_downstream_busses.txt","w") do input + for (key, val) in connections_downstream_busses + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/bus_pair_to_line_conversion.txt","w") do input + for (key, val) in bus_pair_to_line_conversion + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/connections_downstream_lines.txt","w") do input + for (key, val) in connections_downstream_lines + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/connections_upstream_lines.txt","w") do input + for (key, val) in connections_upstream_lines + println(input, "$key => $val" ) + end + end + end + + return all_connections_lines_to_busses, connections_upstream_lines, connections_downstream_lines, lines, transformer_busses, line_names_to_sourcebus_dict_including_transformers, phases_for_each_line_and_transformer_line +end + + +function create_dictionary_of_phases_for_each_line(data_eng) + data = Dict([]) + + for line in keys(data_eng["line"]) + data[line] = data_eng["line"][line]["t_connections"] + end + + return data +end + + +function create_dictionary_of_phases_for_each_bus(data_eng) + data = Dict([]) + + for bus in keys(data_eng["bus"]) + data[bus] = filter(x -> x != 4, data_eng["bus"][bus]["terminals"]) # remove the 4 from the list of terminals to get the phase numbers + end + + return data +end + + +function AddSimplePowerFlowConstraintsToNonPMDTimesteps(Multinode_Inputs, REoptInputs_Combined, pm, m, REoptTimeSteps, LineInfo, REopt_nodes, data_eng) + print("\n Adding Simple Powerflow Constraints to Non-PMD Timesteps: This can take a few minutes for very large models") + + time_steps_without_PMD = setdiff(REoptTimeSteps, Multinode_Inputs.PMD_time_steps) + indeces = collect(1:length(time_steps_without_PMD)) + print("\n Generated timesteps vector and indeces") + + connections, connections_upstream, connections_downstream, lines, transformer_busses, line_names_to_sourcebus_dict_including_transformers, phases_for_each_line_and_transformer_line = CreateDictionaryOfNodeConnections(Multinode_Inputs, data_eng) # Note: the lines variable here includes lines that represent the transformer + print("\n Finished creating a dictionary of node connections") + + if Multinode_Inputs.display_information_during_modeling_run + print("\n") + print("\n Connectivity information used in the simple power flow model:") + print("\n The connections are: ") + print(connections) + print("\n\n The upstream connections are: ") + print(connections_upstream) + print("\n\n The downstream connections are: ") + print(connections_downstream) + print("\n") + print("\n") + end + + if Multinode_Inputs.number_of_phases == 3 + phases = [1,2,3] + elseif Multinode_Inputs.number_of_phases == 2 + phases = [1,2] + elseif Multinode_Inputs.number_of_phases == 1 + phases = [1] + else + throw(@error("The input for the number of phases is invalid")) + end + + # Create a dictionary such that, for instance, phases_for_each_line["line_name"] = [1,2,3] for three phase, or [3] for single phase on phase #3, or [2,3] for two phase + print("\n Generating dvP variable for busses (this may take a few minutes for large models using the simple powerflow constraints)") + + phases_for_each_bus = create_dictionary_of_phases_for_each_bus(data_eng) + all_busses = collect(keys(data_eng["bus"])) # This includes both the PMD and the REopt busses + @variable(m, dvP[bus in all_busses, phase in phases, t in indeces; phase in phases_for_each_bus[bus]] >= -1000000 ) + #@variable(m, Q[REopt_nodes] >= -10000000) + + print("\n Generating dvP variable for lines (this may take a few minutes for large models using the simple powerflow constraints)") + phases_for_each_line = create_dictionary_of_phases_for_each_line(data_eng) + + if Multinode_Inputs.display_information_during_modeling_run + print("\n The lines are: $(lines)") + print("\n") + #print("\n The phases for each line are: $(phases_for_each_line)") + #print("\n") + print("\n The phases for each line are: $(phases_for_each_line_and_transformer_line)") + print("\n") + end + + @variable(m, dvPline[line in lines, phase in phases, t in indeces; phase in phases_for_each_line_and_transformer_line[line]] >= -1000000) + #@variable(m, dvQline[lines, indeces]) + print("\n Completed dvP variable generation") + + phases_for_each_line = phases_for_each_line_and_transformer_line + + # Add constraints for maximum power through each line + if Multinode_Inputs.model_line_upgrades + print("Adding simple powerflow constraints to allow for line upgrades") + line_upgrade_options_each_line = CreateDictionaryOfLineUpgradeOptions(Multinode_Inputs) + for line in lines + + if line in collect(keys(phases_for_each_line)) # prevent looking for a line if it is a virtual line part of a transformer + if length(phases_for_each_line[line]) == 3 + multiphase_multiplier = sqrt(3) # Use the sqrt(3) factor for three-phase lines + else + # Don't use the sqrt(3) factor for single phase or two phase lines. This assumes that a two-phase system is a 4-wire two phase system where each phase has its own nuetral (instead of a 3-wire two phase system) + multiphase_multiplier = 1 + end + else + multiphase_multiplier = 1 + end + + if line in keys(line_upgrade_options_each_line) + + # Note: line amperage ratings are for each conductor in a multiphase system + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], dvPline[line, phase, t] <= m[:line_max_amps][line] * line_upgrade_options_each_line[line]["voltage_kv"] * multiphase_multiplier) + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], dvPline[line, phase, t] >= -m[:line_max_amps][line] * line_upgrade_options_each_line[line]["voltage_kv"] * multiphase_multiplier) + + elseif line in keys(transformer_busses) + # Note: transformer power ratings are for power going through all phases combined, but for simplicity + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], m[:dvPline][line, phase, t] .<= 100000000 / 1) # TODO: replace the 10000000 with the transformer power rating add maximum transformer power + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], m[:dvPline][line, phase, t] .>= -100000000 / 1) + else + if LineInfo[line]["maximum_power_kw"] == Inf + line_max_power = 1000000000 #LineInfo[line]["maximum_power_kw"] + if Multinode_Inputs.display_information_during_modeling_run + print("\n Line max power for line $(line) is infinite, setting the line_max_power for $(line) to $(line_max_power)") + end + else + line_max_power = LineInfo[line]["maximum_power_kw"] * multiphase_multiplier + end + + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], m[:dvPline][line, phase, t] <= line_max_power) # Defines the maximum real power flow through the line + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], m[:dvPline][line, phase, t] >= -line_max_power) + end + end + else + print("\n Line and phase information, shown if display_information_during_modeling_run is set to true in the inputs dictionary: [") + for line in lines + Multinode_Inputs.display_information_during_modeling_run ? print("The line is: $(line) which has phases: $(phases_for_each_line[line]), ") : nothing + + if line in keys(transformer_busses) + if Multinode_Inputs.display_information_during_modeling_run + print(" this is a line that was derived from a transformer") + end + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], m[:dvPline][line, phase, t] <= 100000000 / 1) # TODO: replace the 10000000 with the transformer power rating add maximum transformer power + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], m[:dvPline][line, phase, t] >= -100000000 / 1) + else + if LineInfo[line]["maximum_power_kw"] == Inf + line_max_power = 1000000000 #LineInfo[line]["maximum_power_kw"] + else + line_max_power = LineInfo[line]["maximum_power_kw"] * multiphase_multiplier + end + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], m[:dvPline][line, phase, t] <= line_max_power) # LineInfo[line]["maximum_power_kw"] * multiphase_multiplier) # Defines the maximum real power flow through the line + @constraint(m, [t in indeces, phase in phases_for_each_line[line]], m[:dvPline][line, phase, t] >= -line_max_power) # LineInfo[line]["maximum_power_kw"] * multiphase_multiplier) + #@constraint(m, m[:dvQline][line, t] <= ) + #@constraint(m, m[:dvQline][line, t] >= 0) + end + end + print("\n]") + end + + counter = 0 + + # Link this simple powerflow model to the REopt nodes + Multinode_Inputs.display_information_during_modeling_run ? print("\n Information about connecting the REopt nodes to the simple powerflow model") : nothing + for t in REoptTimeSteps + if t in time_steps_without_PMD + index = findall(x->x==t, time_steps_without_PMD)[1] + counter = counter + 1 + for node in REopt_nodes # only link the REopt nodes to PMD busses + if string(node) != Multinode_Inputs.substation_node + if counter in [1,2] # print information only for the first two timesteps + Multinode_Inputs.display_information_during_modeling_run ? print("\n Connecting REopt node $(node) to the simple powerflow model") : nothing + end + for phase in phases_for_each_bus[string(node)] + # This constraint assumes that multiphase nodes with loads (or generators) consume (or distribute) power evenly across each phase + @constraint(m, m[:dvP][string(node), phase, index] .== (1/length(phases_for_each_bus[string(node)])) .* ((m[Symbol("TotalExport_"*string(node))][t]) .- (m[Symbol("dvGridPurchase_"*string(node))][t])) ) # To do: double check that these variable names are correct + + if Multinode_Inputs.display_information_during_modeling_run + if t in [1,2] # print out some information for the first couple timesteps + print("\n For node $(node), the phases_for_each_bus are: $(phases_for_each_bus[string(node)]), with a length of $(length(phases_for_each_bus[string(node)]))") + print("\n The index is $(index), and the t i $(t), and the phase is $(phase)") + print("\n (1/length(phases_for_each_bus[string(node)])) is $((1/length(phases_for_each_bus[string(node)])))") + end + end + + end + else + # I don't think this is necessary because the substation node isn't part of REopt nodes + #if counter < 3 + # print("\n ****** Not connecting simple powerflow model to REopt for node $(node), which is the substation node") + #end + end + end + end + end + + if Multinode_Inputs.display_information_during_modeling_run + # Save some text files showing connectivity from the simple powerflow model + open(Multinode_Inputs.folder_location*"/connections_upstream.txt","w") do input + for (key, val) in connections_upstream + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/connections_downstream.txt","w") do input + for (key, val) in connections_downstream + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/connections.txt","w") do input + for (key, val) in connections + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/phases_for_each_line.txt","w") do input + for (key, val) in phases_for_each_line + println(input, "$key => $val" ) + end + end + open(Multinode_Inputs.folder_location*"/phases_for_each_line_and_transformer_line.txt","w") do input + for (key, val) in phases_for_each_line_and_transformer_line + println(input, "$key => $val" ) + end + end + end + print("\n The phases for each bus are: $(phases_for_each_bus)") + print("\n The REopt nodes are: $(REopt_nodes)") + # Conservation of energy for each bus + for bus in collect(keys(connections)) # all_busses # + bus_connections = connections[bus] + + if bus == Multinode_Inputs.substation_node + #print("\n Adding constraint for substation bus $(bus)") + # TODO: does this constraint need to exist? + #@constraint(m, [t in indeces], m[:dvP][bus, t] - sum(m[:dvPline][line, t] for line in connections_downstream[string(bus)]) == 0) + + elseif bus in REopt_nodes # parse(Int, bus) in REopt_nodes # for buses that have an associated REopt node + Multinode_Inputs.display_information_during_modeling_run ? print("\n Adding constraint for REopt bus $(bus):") : nothing + if length(connections_downstream[bus]) > 0 + Multinode_Inputs.display_information_during_modeling_run ? print(" mid-branch") : nothing + # For nodes that have upstream and downstream lines + # This code assumes that the network has been defined correctly such that the phases on the lines are connected correctly to the phases on each bus + for phase in phases_for_each_bus[bus] + + connections_upstream_of_same_phase = [] + for line in connections_upstream[string(bus)] + if phase in phases_for_each_line[line] + push!(connections_upstream_of_same_phase, line) + end + end + + connections_downstream_of_same_phase = [] + for line in connections_downstream[string(bus)] + if phase in phases_for_each_line[line] + push!(connections_downstream_of_same_phase, line) + end + end + + @constraint(m, [t in indeces], m[:dvP][bus, phase, t] + sum(m[:dvPline][line, phase, t] for line in connections_upstream_of_same_phase) - sum(m[:dvPline][line, phase, t] for line in connections_downstream_of_same_phase) == 0) + end + else # This else might not be used because all busses should be in the keys of the connections_downstream + Multinode_Inputs.display_information_during_modeling_run ? print(" at the end of a branch") : nothing + # For nodes that are at the end of branch + # This code assumes that the network has been defined correctly such that the phases on the lines are connected correctly to the phases on each bus + + for phase in phases_for_each_bus[bus] + connections_upstream_of_same_phase = [] + for line in connections_upstream[string(bus)] + if phase in phases_for_each_line[line] + push!(connections_upstream_of_same_phase, line) + end + end + @constraint(m, [t in indeces], m[:dvP][bus, phase, t] + sum(m[:dvPline][line, phase, t] for line in connections_upstream_of_same_phase) == 0) + end + end + + else # for buses in the model without a REopt node + Multinode_Inputs.display_information_during_modeling_run ? print("\n Adding constraint for non-REopt bus $(bus):") : nothing + if length(connections_downstream[bus]) > 0 + Multinode_Inputs.display_information_during_modeling_run ? print(" mid-branch") : nothing + + for phase in phases_for_each_bus[bus] + connections_upstream_of_same_phase = [] + for line in connections_upstream[string(bus)] + if phase in phases_for_each_line[line] + push!(connections_upstream_of_same_phase, line) + end + end + + connections_downstream_of_same_phase = [] + for line in connections_downstream[string(bus)] + if phase in phases_for_each_line[line] + push!(connections_downstream_of_same_phase, line) + end + end + @constraint(m, [t in indeces], sum(m[:dvPline][line, phase, t] for line in connections_upstream_of_same_phase) - sum(m[:dvPline][line, phase, t] for line in connections_downstream_of_same_phase) == 0) + end + else + Multinode_Inputs.display_information_during_modeling_run ? print(" at the end of a branch") : nothing + + for phase in phases_for_each_bus[bus] + connections_upstream_of_same_phase = [] + for line in connections_upstream[string(bus)] + if phase in phases_for_each_line[line] + push!(connections_upstream_of_same_phase, line) + end + end + @constraint(m, [t in indeces], sum(m[:dvPline][line, phase, t] for line in connections_upstream_of_same_phase) == 0) + end + end + end + end + + return connections, connections_upstream, connections_downstream +end + + +function Build_REopt_and_Link_To_PMD(pm, Multinode_Inputs, REopt_inputs_combined, data_math_mn, data_eng; OutageSimulator=false, OutageLength_Timesteps=0, allow_upgrades=false) + + m = pm.model + REopt_nodes = REopt.GenerateREoptNodesList(Multinode_Inputs) + REoptInputs_Combined = REopt_inputs_combined + Multinode_Inputs.display_information_during_modeling_run ? print("\n The REopt nodes are: $(REopt_nodes)") : nothing + print("\n Building the REopt model\n") + REopt.build_reopt!(m, REoptInputs_Combined) # Pass the PMD JuMP model (with the PowerModelsDistribution variables and constraints) as the JuMP model that REopt should build onto + + CreateREoptTotalExportVariables(m, REoptInputs_Combined) + REopt_gen_ind_e, load_phase_dictionary, gen_ind_e_to_REopt_node = LinkREoptAndPMD(pm, m, data_math_mn, Multinode_Inputs, REopt_nodes, REoptInputs_Combined) + LineInfo = CreateLineInfoDictionary(Multinode_Inputs, pm, data_math_mn) + REoptTimeSteps = collect(1:(Multinode_Inputs.time_steps_per_hour * 8760)) + + line_upgrade_options_each_line = "N/A" + + # Only allow for upgrades and add simple power flow constraints if not running the outage simulator + + if allow_upgrades == true + if Multinode_Inputs.model_line_upgrades == true + pm, line_upgrade_options_each_line = model_line_upgrades(pm, Multinode_Inputs, LineInfo, data_eng) + end + + if Multinode_Inputs.model_transformer_upgrades == true + #pm = model_transformer_upgrades(pm, Multinode_Inputs) # TODO: add transformer upgrades + end + end + + if Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD && (OutageSimulator == false) + # Don't apply these constraints if the outage simulator is being used because the outage simulator applies PMD constraints to all time steps + connections, connections_upstream, connections_downstream = AddSimplePowerFlowConstraintsToNonPMDTimesteps(Multinode_Inputs, REoptInputs_Combined, pm, m, REoptTimeSteps, LineInfo, REopt_nodes, data_eng) + else + connections = "N/A" + connections_upstream = "N/A" + connections_downstream = "N/A" + end + + ApplyGridImportAndExportConstraints(Multinode_Inputs, REoptInputs_Combined, pm, m, REoptTimeSteps, LineInfo, OutageSimulator, OutageLength_Timesteps, data_eng) + + LinkFacilityMeterNodeToSubstationPower(m, pm, Multinode_Inputs, REoptInputs_Combined, LineInfo, REopt_gen_ind_e, REoptTimeSteps, REopt_nodes, data_math_mn, data_eng) + + if Multinode_Inputs.generators_only_run_during_grid_outage == true + LimitGeneratorOperatingTimes(m, Multinode_Inputs, REoptInputs_Combined) + end + + return LineInfo, data_math_mn, REoptInputs_Combined, pm, load_phase_dictionary, gen_ind_e_to_REopt_node, REopt_gen_ind_e, line_upgrade_options_each_line, connections, connections_upstream, connections_downstream +end + + +function add_objective(pm, Multinode_Inputs, REoptInputs_Combined) + + @expression(pm.model, Costs, sum(pm.model[Symbol(string("Costs_", p.s.site.node))] for p in REoptInputs_Combined) ) + + if Multinode_Inputs.model_line_upgrades + @info "Including the line upgrade costs in the Costs expression" + lines_for_upgrades = create_list_of_upgradable_lines(Multinode_Inputs) + + @variable(pm.model, total_line_upgrade_cost >= 0) + @constraint(pm.model, pm.model[:total_line_upgrade_cost] == sum(pm.model[:line_cost][line] for line in lines_for_upgrades)) + + add_to_expression!(Costs, pm.model[:total_line_upgrade_cost]) + end + + if Multinode_Inputs.allow_bus_voltage_violations + @info "Allowing bus voltage violations" + add_bus_voltage_violation_to_the_model(pm, Multinode_Inputs) + add_to_expression!(Costs, pm.model[:dvBusVoltageViolationCost]) + end + + @objective(pm.model, Min, pm.model[:Costs]) # Define the optimization objective + +end + + +function create_bus_info_dictionary(pm) + # Creates a dictionary with the bus names and corresponding indeces for the :w decision variable (which is the voltage squared decision variable) + BusInfo = Dict([]) + NumberOfBusses = length(PowerModelsDistribution.ref(pm,1,:bus)) + for i in 1:NumberOfBusses + BusData = PowerModelsDistribution.ref(pm, 1, :bus, i) + BusInfo[BusData["name"]] = Dict(["index"=>BusData["index"], "terminals"=>BusData["terminals"], "bus_i"=>BusData["bus_i"], "vbase"=>BusData["vbase"]]) + end + return BusInfo +end + + +function add_bus_voltage_violation_to_the_model(pm, Multinode_Inputs) + model = pm.model + + BusInfo = create_bus_info_dictionary(pm) + + bus_names = collect(keys(BusInfo)) + + PMD_time_steps = collect(1:length(Multinode_Inputs.PMD_time_steps)) + + # Create the voltage violation binary variables + @variable(pm.model, binBusVoltageViolation[bus_names, PMD_time_steps], Bin) + + # Add contraints + for PMD_time_step in PMD_time_steps + for bus_name in bus_names + index = BusInfo[bus_name]["index"] + voltage_squared = [PowerModelsDistribution.var(pm, PMD_time_step, :w, index)[terminal] for terminal in BusInfo[bus_name]["terminals"]] + + if Multinode_Inputs.display_information_during_modeling_run + # print out information to understand the approach in the code: + #print("\n For bus $(bus_name) the terminals are: ") + #print(BusInfo[bus_name]["terminals"]) + #print("\n For bus $(bus_name) the voltage_squared variable is: ") + #print(voltage_squared) + #index_temp = findall(x -> x== BusInfo[bus_name]["terminals"][1], BusInfo[bus_name]["terminals"])[1] + #print("The index in voltage_squared for terminal $(BusInfo[bus_name]["terminals"][1]) is $(index_temp) ") + end + + for terminal in BusInfo[bus_name]["terminals"] + terminal_index = findall(x -> x== terminal, BusInfo[bus_name]["terminals"])[1] + @constraint(model, voltage_squared[terminal_index] <= (Multinode_Inputs.bus_per_unit_voltage_target_upper_bound^2) + model[:binBusVoltageViolation][bus_name, PMD_time_step] * 100) # multiply by 100 to make the possible voltage very large + @constraint(model, voltage_squared[terminal_index] >= (Multinode_Inputs.bus_per_unit_voltage_target_lower_bound^2) * (1 - model[:binBusVoltageViolation][bus_name, PMD_time_step])) # If the binary is one, then the voltage squared can go to zero + end + + end + end + + # Calculate the total cost of the bus voltage violations + @variable(model, dvBusVoltageViolationCost, lower_bound = 0) + + @constraint(model, model[:dvBusVoltageViolationCost] == sum(model[:binBusVoltageViolation][bus_name, PMD_time_step] for bus_name in bus_names, PMD_time_step in PMD_time_steps)) + +end + + +function ApplyGridImportAndExportConstraints(Multinode_Inputs, REoptInputs_Combined, pm, m, REoptTimeSteps, LineInfo, OutageSimulator, OutageLength_Timesteps, data_eng) + # Apply a variety of grid import and/or export constraints: + + # Restrict power flow from the substation if the multinode type is offgrid + if Multinode_Inputs.multinode_type == "Offgrid" + RestrictLinePowerFlow(Multinode_Inputs, REoptInputs_Combined, pm, m, Multinode_Inputs.substation_line, REoptTimeSteps, LineInfo, data_eng; Off_Grid=true) + end + + # Define limits on grid import and export + if Multinode_Inputs.allow_export_beyond_substation == false # Prevent power from being exported to the grid beyond the facility meter: + print("\n Prohibiting power export at the substation") + #RestrictLinePowerFlow(Multinode_Inputs, pm, m, Multinode_Inputs.substation_line, REoptTimeSteps, LineInfo; Prevent_Export=true) # This constraint is handled by other constraints below + elseif Multinode_Inputs.substation_export_limit != "" + print("\n Applying a limit to the power export at the substation") + RestrictLinePowerFlow(Multinode_Inputs, REoptInputs_Combined, pm, m, Multinode_Inputs.substation_line, REoptTimeSteps, LineInfo, data_eng; Substation_Export_Limit = Multinode_Inputs.substation_export_limit) + end + + if Multinode_Inputs.substation_import_limit != "" + print("\n Applying a limit to the power import from the substation") + RestrictLinePowerFlow(Multinode_Inputs, REoptInputs_Combined, pm, m, Multinode_Inputs.substation_line, REoptTimeSteps, LineInfo, data_eng; Substation_Import_Limit = Multinode_Inputs.substation_import_limit) + end + + # Apply a grid outage to the model + if Multinode_Inputs.model_outages_with_outages_vector + if Multinode_Inputs.outages_vector != [] + print("\n Applying a grid outages on the following timesteps: ") + print(Multinode_Inputs.model_outages_with_outages_vector) + RestrictLinePowerFlow(Multinode_Inputs, REoptInputs_Combined, pm, m, Multinode_Inputs.substation_line, Multinode_Inputs.outages_vector, LineInfo, data_eng; Grid_Outage=true, OutageSimulator = OutageSimulator, OutageLength_Timesteps = OutageLength_Timesteps) + end + elseif Multinode_Inputs.single_outage_end_time_step - Multinode_Inputs.single_outage_start_time_step > 0 + print("\n Applying a grid outage from time step $(Multinode_Inputs.single_outage_start_time_step) to $(Multinode_Inputs.single_outage_end_time_step) ") + RestrictLinePowerFlow(Multinode_Inputs, REoptInputs_Combined, pm, m, Multinode_Inputs.substation_line, collect(Multinode_Inputs.single_outage_start_time_step:Multinode_Inputs.single_outage_end_time_step), LineInfo, data_eng; Grid_Outage=true, OutageSimulator = OutageSimulator, OutageLength_Timesteps = OutageLength_Timesteps) + end + + # Open switches if defined by the user + # Note: the switch capability in PMD is not used currently in this model, but the switch openings are modeling with these constraints + if (Multinode_Inputs.switch_open_timesteps != "") && (Multinode_Inputs.model_switches == true) + print("\n Switches are included in the model") + for i in keys(Multinode_Inputs.switch_open_timesteps) + #print("\n Opening the switch on line $(i) from timesteps $(minimum(Multinode_Inputs.switch_open_timesteps[i])) to $(maximum(Multinode_Inputs.switch_open_timesteps[i])) \n") + RestrictLinePowerFlow(Multinode_Inputs, REoptInputs_Combined, pm, m, i, Multinode_Inputs.switch_open_timesteps[i], LineInfo, data_eng; Switches_Open=true) + end + end + +end + + +function LinkFacilityMeterNodeToSubstationPower(m, pm, Multinode_Inputs, REoptInputs_Combined, LineInfo, REopt_gen_ind_e, REoptTimeSteps, REopt_nodes, data_math_mn, data_eng) + # Link export through the substation to the utility tariff on the facility meter node + + PMDTimeSteps_InREoptTimes = Multinode_Inputs.PMD_time_steps + buses = REopt_nodes + + gen_name2ind, load_phase_dictionary, gen_ind_e_to_REopt_node = generate_PMD_information(Multinode_Inputs, REopt_nodes, REoptInputs_Combined, data_math_mn) + + if Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + time_steps_without_PMD = setdiff(REoptTimeSteps, Multinode_Inputs.PMD_time_steps) + else + time_steps_without_PMD = 0 + end + + phases_for_each_line = create_dictionary_of_phases_for_each_line(data_eng) + + for p in REoptInputs_Combined + if string(p.s.site.node) == p.s.settings.facilitymeter_node + + Multinode_Inputs.display_information_during_modeling_run ? print("\n The export bins for the facility meter node are: $(p.export_bins_by_tech["PV"]) \n") : nothing + + i = LineInfo[lowercase(Multinode_Inputs.substation_line)]["index"] + # Based off of code in line 470 of PMD's src>core>constraint_template + timestep = 1 # collect the network configuration information from timestep 1, which assumes that the network is not changing (fair to assume with the REopt integration) + branch = PowerModelsDistribution.ref(pm, timestep, :branch, i) + f_bus = branch["f_bus"] + t_bus = branch["t_bus"] + f_connections = branch["f_connections"] + t_connections = branch["t_connections"] + f_idx = (i, f_bus, t_bus) + t_idx = (i, t_bus, f_bus) + + @variable(m, binSubstationPositivePowerFlow[ts in REoptTimeSteps], Bin) + @variable(m, dvSubstationPowerFlow[ts in REoptTimeSteps]) + + for timestep in REoptTimeSteps + + @constraint(m, m[:dvSubstationPowerFlow][timestep] <= m[:binSubstationPositivePowerFlow][timestep] * 1000000 ) + @constraint(m, m[:dvSubstationPowerFlow][timestep] >= (1 - m[:binSubstationPositivePowerFlow][timestep]) * -1000000 ) + + if Multinode_Inputs.allow_export_beyond_substation == true + # Set the power flowing through the line from the substation to be the grid purchase minus the dvProductionToGrid for node 15 + #TODO: make this compatible with three phase power- I believe p_fr[1] only refers to the first phase: might be able to say: p_fr .>= 0 with the period + + if timestep in PMDTimeSteps_InREoptTimes + + PMD_time_step = findall(x -> x==timestep, PMDTimeSteps_InREoptTimes)[1] #use the [1] to convert the 1-element vector into an integer + + p_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :p, f_idx)[c] for c in f_connections] + p_to = [PowerModelsDistribution.var(pm, PMD_time_step, :p, t_idx)[c] for c in t_connections] + + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + q_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :q, f_idx)[c] for c in f_connections] + q_to = [PowerModelsDistribution.var(pm, PMD_time_step, :q, t_idx)[c] for c in t_connections] + end + + @constraint(m, m[:dvSubstationPowerFlow][timestep] == sum(p_fr[phase] for phase in f_connections)) + + elseif Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + simple_powerflow_timestep = findall(x -> x==timestep, time_steps_without_PMD)[1] + @constraint(m, m[:dvSubstationPowerFlow][timestep] == sum(m[:dvPline][lowercase(Multinode_Inputs.substation_line), phase, simple_powerflow_timestep] for phase in phases_for_each_line[lowercase(Multinode_Inputs.substation_line)])) + + else + # Instead of using the line flow from PMD or the simple powerflow model, consider the total system inflow/outflow to be based on a lumped-element model, which sums all power inflows and outflows for each node + @constraint(m, m[:dvSubstationPowerFlow][timestep] == + (-sum(m[Symbol("TotalExport_"*string(gen_ind_e_to_REopt_node[e]))][timestep] for e in REopt_gen_ind_e) + + sum(m[Symbol("dvGridPurchase_"*string(gen_ind_e_to_REopt_node[e]))][timestep] for e in REopt_gen_ind_e))) + end + + @constraint(m, m[:dvSubstationPowerFlow][timestep] == (sum(m[Symbol("dvGridPurchase_"*p.s.settings.facilitymeter_node)][timestep, tier] for tier in 1:p.s.electric_tariff.n_energy_tiers) - + sum(m[Symbol("dvProductionToGrid_"*p.s.settings.facilitymeter_node)]["PV", u, timestep] for u in p.export_bins_by_tech["PV"]))) + + @constraint(m, sum(m[Symbol("dvGridPurchase_"*p.s.settings.facilitymeter_node)][timestep, tier] for tier in 1:p.s.electric_tariff.n_energy_tiers) <= Multinode_Inputs.substation_import_limit * m[:binSubstationPositivePowerFlow][timestep]) + + @constraint(m, sum(m[Symbol("dvProductionToGrid_"*p.s.settings.facilitymeter_node)]["PV", u, timestep] for u in p.export_bins_by_tech["PV"]) <= Multinode_Inputs.substation_export_limit * (1 - m[:binSubstationPositivePowerFlow][timestep])) + + @constraint(m, sum(m[Symbol("dvGridPurchase_"*p.s.settings.facilitymeter_node)][timestep, tier] for tier in 1:p.s.electric_tariff.n_energy_tiers) >= 0) + + @constraint(m, sum(m[Symbol("dvProductionToGrid_"*p.s.settings.facilitymeter_node)]["PV", u, timestep] for u in p.export_bins_by_tech["PV"]) >= 0) + + else + @constraint(m, sum(m[Symbol("dvProductionToGrid_"*p.s.settings.facilitymeter_node)]["PV", u, timestep] for u in p.export_bins_by_tech["PV"]) == 0) + + if timestep in PMDTimeSteps_InREoptTimes + PMD_time_step = findall(x -> x==timestep, PMDTimeSteps_InREoptTimes)[1] #use the [1] to convert the 1-element vector into an integer + + p_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :p, f_idx)[c] for c in f_connections] + p_to = [PowerModelsDistribution.var(pm, PMD_time_step, :p, t_idx)[c] for c in t_connections] + + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + q_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :q, f_idx)[c] for c in f_connections] + q_to = [PowerModelsDistribution.var(pm, PMD_time_step, :q, t_idx)[c] for c in t_connections] + end + + @constraint(m, sum(m[Symbol("dvGridPurchase_"*p.s.settings.facilitymeter_node)][timestep, tier] for tier in 1:p.s.electric_tariff.n_energy_tiers) == sum(p_fr[phase] for phase in f_connections)) + + @constraint(m, m[:dvSubstationPowerFlow][timestep] == sum(p_fr[phase] for phase in f_connections)) + @constraint(m, m[:dvSubstationPowerFlow][timestep] >= 0) + + elseif Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + simple_powerflow_timestep = findall(x -> x==timestep, time_steps_without_PMD)[1] + + @constraint(m, sum(m[Symbol("dvGridPurchase_"*p.s.settings.facilitymeter_node)][timestep, tier] for tier in 1:p.s.electric_tariff.n_energy_tiers) == sum(m[:dvPline][lowercase(Multinode_Inputs.substation_line), phase, simple_powerflow_timestep] for phase in phases_for_each_line[lowercase(Multinode_Inputs.substation_line)])) + + @constraint(m, m[:dvSubstationPowerFlow][timestep] == m[:dvPline][lowercase(Multinode_Inputs.substation_line), simple_powerflow_timestep]) + @constraint(m, m[:dvSubstationPowerFlow][timestep] >= 0) + + else + # Instead of using the line flow from PMD or simple powerflow model, consider the total system inflow/outflow to be based on a lumped-element model, which sums all power inflows and outflows for each node + @constraint(m, + (sum(m[Symbol("TotalExport_"*string(buses[e]))][timestep] for e in REopt_gen_ind_e) - + sum(m[Symbol("dvGridPurchase_"*string(buses[e]))][timestep] for e in REopt_gen_ind_e)) == + (sum(m[Symbol("dvGridPurchase_"*p.s.settings.facilitymeter_node)][timestep, tier] for tier in 1:p.s.electric_tariff.n_energy_tiers))) + + @constraint(m, m[:dvSubstationPowerFlow][timestep] == (sum(m[Symbol("dvGridPurchase_"*p.s.settings.facilitymeter_node)][timestep, tier] for tier in 1:p.s.electric_tariff.n_energy_tiers))) + @constraint(m, m[:dvSubstationPowerFlow][timestep] >= 0) + + end + end + end + end + end +end + + +function LimitGeneratorOperatingTimes(m, Multinode_Inputs, REoptInputs_Combined) + # Prevent the generators from generating power during times that aren't a grid outage + NonOutageTimeSteps = [] + + if Multinode_Inputs.model_outages_with_outages_vector == false + NonOutageTimeSteps = vcat(collect(1:Multinode_Inputs.single_outage_start_time_step), collect(Multinode_Inputs.single_outage_end_time_step:(8760*Multinode_Inputs.time_steps_per_hour))) + elseif Multinode_Inputs.model_outages_with_outages_vector == true + for i in 1:(8760*Multinode_Inputs.time_steps_per_hour) + if !(i in Multinode_Inputs.outages_vector) + push!(NonOutageTimeSteps, i) + end + end + end + + for p in REoptInputs_Combined + _n = "_"*string(p.s.site.node) + if "Generator" in p.techs.elec + for ts in NonOutageTimeSteps + fix(m[Symbol("dvRatedProduction"*_n)]["Generator", ts], 0.0, force=true) + end + end + end +end + + +function CreateLineInfoDictionary(Multinode_Inputs, pm, data_math_mn) + # Creates a dictionary with the line names and corresponding indeces for the :p decision variable + LineInfo = Dict([]) + NumberOfBranches = length(PowerModelsDistribution.ref(pm,1,:branch)) + + if length(collect(values(data_math_mn["nw"]["1"]["settings"]["vbases_default"]))) != 1 + throw(@error("The length of vbases_default is not 1")) + end + + vbases_default = collect(values(data_math_mn["nw"]["1"]["settings"]["vbases_default"]))[1] + + for i in 1:NumberOfBranches + LineData = PowerModelsDistribution.ref(pm, 1, :branch, i) + + branch_vbase = LineData["vbase"] + line_voltage = round(Multinode_Inputs.base_voltage_kv * (LineData["vbase"]/vbases_default), digits=3) + maximum_power = round((LineData["c_rating_a"][1]/branch_vbase) * line_voltage, digits=3) + + c_rating_a = LineData["c_rating_a"][1] + line_name = LineData["name"] + if Multinode_Inputs.display_information_during_modeling_run + print("\n For line $(line_name), the data is max power: $(maximum_power), line voltage: $(line_voltage), c_rating_a: $(c_rating_a), branch_vbase: $(branch_vbase)") + end + + LineInfo[LineData["name"]] = Dict(["index"=>LineData["index"], + "t_bus"=>LineData["t_bus"], + "f_bus"=>LineData["f_bus"], + "c_rating_a"=>LineData["c_rating_a"], + "vbase"=>LineData["vbase"], + "line_voltage_kv"=>line_voltage, + "maximum_power_kw"=>maximum_power + ]) + end + return LineInfo +end + + +function Run_REopt_PMD_Model(pm, Multinode_Inputs, timestamp="") + # This function runs the optimization + + m = pm.model + + set_optimizer(m, Multinode_Inputs.optimizer) + + if string(Multinode_Inputs.optimizer) == "Xpress.Optimizer" + @info "Setting attributes for the Xpress solver" + set_optimizer_attribute(m, "MIPRELSTOP", Multinode_Inputs.optimizer_tolerance) + set_optimizer_attribute(m, "OUTPUTLOG", Multinode_Inputs.log_solver_output_to_console ? 1 : 0) + + # Save the Xpress log into the per-run timestamped folder created by CreateOutputsFolder. + # Use mkpath (idempotent) so this works even when generate_CSV_of_outputs/generate_results_plots + # are false (in which case CreateOutputsFolder did not create the folder) and on repeated + # solves within the same run (e.g. BAU case). + log_folder = isempty(timestamp) ? Multinode_Inputs.folder_location : + joinpath(Multinode_Inputs.folder_location, "results_"*timestamp) + mkpath(log_folder) + # Distinguish BAU vs main run logs within the same timestamped folder + log_filename = isfile(joinpath(log_folder, "xpress_log.txt")) ? "xpress_log_BAU.txt" : "xpress_log.txt" + xpress_log_path = joinpath(log_folder, log_filename) + + # Xpress.jl does NOT expose "LOGFILE" as a MOI RawOptimizerAttribute, so set_optimizer_attribute + # will throw MOI.UnsupportedAttribute. The log file has to be set via the Xpress C API on the + # inner problem handle (Xpress.setlogfile). We force JuMP to instantiate the backend optimizer + # first (so .inner exists), then call Xpress.setlogfile. If anything goes wrong, fall back + # quietly to console-only logging. + log_file_set = false + try + JuMP.MOI.Utilities.attach_optimizer(m) + xpress_opt = JuMP.unsafe_backend(m) + Xpress = Base.require(Main, :Xpress) + Xpress.setlogfile(xpress_opt.inner, xpress_log_path) + log_file_set = true + catch err + @warn "Could not configure Xpress LOGFILE via the C API; the log will only appear in the console if log_solver_output_to_console=true. Error: $(err)" + end + if log_file_set + @info "Xpress log will be written to $(xpress_log_path)" + end + + if Multinode_Inputs.run_Xpress_model_presolve == false + print("\n Removing the presolve step because Multinode_Inputs.run_Xpress_model_presolve was set to false") + set_optimizer_attribute(m, "PRESOLVE", 0) + end + + elseif string(Multinode_Inputs.optimizer) == "Gurobi.Optimizer" + @info "Setting attributes for the Gurobi solver" + set_optimizer_attribute(m, "MIPGap", Multinode_Inputs.optimizer_tolerance) + set_optimizer_attribute(m, "OutputFlag", Multinode_Inputs.log_solver_output_to_console ? 1 : 0) + set_optimizer_attribute(m, "LogToConsole", Multinode_Inputs.log_solver_output_to_console ? 1 : 0) + elseif string(Multinode_Inputs.optimizer) == "HiGHS.Optimizer" + @info "Setting attributes for the HiGHS solver" + set_optimizer_attribute(m, "mip_rel_gap", Multinode_Inputs.optimizer_tolerance) + set_optimizer_attribute(m, "output_flag", Multinode_Inputs.log_solver_output_to_console) + set_optimizer_attribute(m, "log_to_console", Multinode_Inputs.log_solver_output_to_console) + else + @info "The solver's default tolerance and log settings are being used for the optimization" + end + + print("\n The optimization is starting") + print("\n The number of variables in the model is: ") + print(length(all_variables(pm.model))) + print("\n") + # Note: the "optimize_model!" function is a wrapper from PMD and it includes some organization of the results + results = PowerModelsDistribution.optimize_model!(pm) # Option other fields: relax_intregrality=true, optimizer=HiGHS.Optimizer) # The default in PMD for relax_integrality is false + print("\n The optimization is complete\n") + + TerminationStatus = string(results["termination_status"]) + if TerminationStatus != "OPTIMAL" + if Multinode_Inputs.run_IIS_on_nonoptimal_models + model = pm.model + + solver_name_str = "" + try + solver_name_str = lowercase(JuMP.solver_name(model)) + catch + solver_name_str = lowercase(string(Multinode_Inputs.optimizer)) + end + iis_supported = occursin("xpress", solver_name_str) || occursin("gurobi", solver_name_str) || occursin("cplex", solver_name_str) + + infeasible_statuses = ("INFEASIBLE", "LOCALLY_INFEASIBLE", "INFEASIBLE_OR_UNBOUNDED") + + if !(TerminationStatus in infeasible_statuses) + println("Termination status is $(TerminationStatus); skipping IIS computation (IIS is only meaningful for infeasible models).") + elseif !iis_supported + println("Skipping IIS computation: the active solver ($(solver_name_str)) does not support MOI.compute_conflict!. Supported solvers include Xpress, Gurobi, and CPLEX.") + else + println("Computing IIS via $(solver_name_str) (this may take a while)...") + conflict_computed = true + try + MOI.compute_conflict!(JuMP.backend(model)) + catch err + println("compute_conflict! failed: ", err) + conflict_computed = false + end + + if conflict_computed + conflict_status = MOI.get(JuMP.backend(model), MOI.ConflictStatus()) + println("Conflict status: ", conflict_status) + + if conflict_status == MOI.CONFLICT_FOUND + iis_folder = isempty(timestamp) ? Multinode_Inputs.folder_location : + joinpath(Multinode_Inputs.folder_location, "results_"*timestamp) + mkpath(iis_folder) + iis_filename = isfile(joinpath(iis_folder, "iis_conflict.txt")) ? "iis_conflict_BAU.txt" : "iis_conflict.txt" + iis_path = joinpath(iis_folder, iis_filename) + open(iis_path, "w") do io + # The typed all_constraints(model, F, S) overload already returns variable-in-set + # constraints (e.g. fix(...) or lower/upper bounds) when F is VariableRef, so no + # kwarg is needed here. The include_variable_in_set_constraints kwarg only applies + # to the untyped all_constraints(model) overload and will throw if passed here. + for (F, S) in JuMP.list_of_constraint_types(model) + for c in JuMP.all_constraints(model, F, S) + st = MOI.get(model, MOI.ConstraintConflictStatus(), c) + if st == MOI.IN_CONFLICT + nm = JuMP.name(c) + label = isempty(nm) ? "" : nm + # Also write the constraint object so unnamed constraints remain interpretable + println(io, label, " :: ", c) + end + end + end + end + println("IIS written to $(iis_path)") + else + println("The solver did not return a conflict set.") + end + end + end + end + + @warn("The termination status of the optimization was "*string(results["termination_status"])*". Returning the failed model without further processing.") + end + + return results, TerminationStatus; +end + + +function RestrictLinePowerFlow(Multinode_Inputs, REoptInputs_Combined, pm, m, line, REoptTimeSteps, LineInfo, data_eng; Grid_Outage=false, Off_Grid=false, Switches_Open=false, Prevent_Export=false, Substation_Export_Limit=1E10, Substation_Import_Limit=1E10, OutageSimulator = false, OutageLength_Timesteps = 0) + # Function used for restricting power flow for grid outages, times when switches are opened, and substation import and export limits + + line = lowercase(line) + + # Save the REopt Inputs for the site not to a variable + FacilityMeterNode_REoptInputs = "" + for p in REoptInputs_Combined + if string(p.s.site.node) == p.s.settings.facilitymeter_node + FacilityMeterNode_REoptInputs = p + end + end + + # Save to a variable the timesteps that the power models distribution model is applied to + if OutageSimulator == false + PMDTimeSteps_InREoptTimes = Multinode_Inputs.PMD_time_steps + PMDTimeSteps_Indeces = collect(1:length(PMDTimeSteps_InREoptTimes)) + elseif OutageSimulator == true + PMDTimeSteps_InREoptTimes = collect(1:OutageLength_Timesteps) + PMDTimeSteps_Indeces = collect(1:OutageLength_Timesteps) + end + + if Multinode_Inputs.display_information_during_modeling_run + open(Multinode_Inputs.folder_location*"/LineInfo.txt","w") do input + for (key, val) in LineInfo + println(input, "$key => $val" ) + end + end + end + + i = LineInfo[line]["index"] + # Based off of code in line 470 of PMD's src>core>constraint_template + timestep = 1 # collect the network configuration information from timestep 1, which assumes that the network is not changing (fair to assume with the REopt integration) + branch = PowerModelsDistribution.ref(pm, timestep, :branch, i) + f_bus = branch["f_bus"] + t_bus = branch["t_bus"] + f_connections = branch["f_connections"] + t_connections = branch["t_connections"] + f_idx = (i, f_bus, t_bus) + t_idx = (i, t_bus, f_bus) + + phases_for_each_line = create_dictionary_of_phases_for_each_line(data_eng) + + if Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + time_steps_without_PMD = setdiff(REoptTimeSteps, Multinode_Inputs.PMD_time_steps) + else + time_steps_without_PMD = 0 + end + + for timestep in REoptTimeSteps + + if timestep in PMDTimeSteps_InREoptTimes + # Based off of code in line 274 of PMD's src>core>constraints + PMD_time_step = findall(x -> x==timestep, PMDTimeSteps_InREoptTimes)[1] #use the [1] to convert the 1-element vector into an integer + + p_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :p, f_idx)[c] for c in f_connections] + p_to = [PowerModelsDistribution.var(pm, PMD_time_step, :p, t_idx)[c] for c in t_connections] + + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + q_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :q, f_idx)[c] for c in f_connections] + q_to = [PowerModelsDistribution.var(pm, PMD_time_step, :q, t_idx)[c] for c in t_connections] + end + elseif Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + # redefine the timestep variable to be correlated with the timestep variable in the simple powerflow model + timestep_for_simple_powerflow_model = findall(x -> x==timestep, time_steps_without_PMD)[1] + end + + if Prevent_Export == true + # If the timesteps are part of the PMD model, then apply the constraints to the lines in PMD + if timestep in PMDTimeSteps_InREoptTimes + JuMP.@constraint(m, [phase in f_connections], p_fr[phase] .>= 0) + JuMP.@constraint(m, [phase in f_connections], q_fr[phase] .>= -Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar) # no restrictions on reactive power + elseif Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + for phase in phases_for_each_line[line] + @constraint(m, m[:dvPline][lowercase(Multinode_Inputs.substation_line), phase, timestep_for_simple_powerflow_model] .>= 0) + end + else + @constraint(m, sum(m[Symbol("dvProductionToGrid_"*Multinode_Inputs.facilitymeter_node)]["PV", u, timestep] for u in FacilityMeterNode_REoptInputs.export_bins_by_tech["PV"]) == 0) + end + end + + if Substation_Export_Limit != "" + if timestep in PMDTimeSteps_InREoptTimes + JuMP.@constraint(m, [phase in f_connections], p_fr[phase] .>= -Substation_Export_Limit) + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + JuMP.@constraint(m, [phase in f_connections], q_fr[phase] .>= -Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar) + end + elseif Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + for phase in phases_for_each_line[line] + @constraint(m, m[:dvPline][lowercase(Multinode_Inputs.substation_line), phase, timestep_for_simple_powerflow_model] .>= (1/length(phases_for_each_line[line])) * -Substation_Export_Limit) # Assume that the maximum export limit is evenly divided by each of the phases + end + else + @constraint(m, sum(m[Symbol("dvProductionToGrid_"*Multinode_Inputs.facilitymeter_node)]["PV", u, timestep] for u in FacilityMeterNode_REoptInputs.export_bins_by_tech["PV"]) <= Substation_Export_Limit) + end + end + + if Substation_Import_Limit != "" + if timestep in PMDTimeSteps_InREoptTimes + JuMP.@constraint(m, [phase in f_connections], p_fr[phase] .<= Substation_Import_Limit) + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + JuMP.@constraint(m, [phase in f_connections], q_fr[phase] .<= Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar) + end + elseif Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + for phase in phases_for_each_line[line] + @constraint(m, sum(m[:dvPline][lowercase(Multinode_Inputs.substation_line), phase, timestep_for_simple_powerflow_model]) .<= (1/length(phases_for_each_line[line])) * Substation_Import_Limit) # Assume that the maximum import limit is evenly divided by each of the phases + end + else + @constraint(m, sum(m[Symbol("dvGridPurchase_"*Multinode_Inputs.facilitymeter_node)][timestep, tier] for tier in 1:FacilityMeterNode_REoptInputs.s.electric_tariff.n_energy_tiers) <= Substation_Import_Limit) + end + end + + if Off_Grid == true || Grid_Outage == true || Switches_Open==true + # Restrict all power flow + if timestep in PMDTimeSteps_InREoptTimes + JuMP.@constraint(m, [phase in f_connections], p_fr[phase] .== 0) # The _fr and _to variables are just indicating power flow in either direction on the line. In PMD, there is a constraint that requires p_to = -p_fr + JuMP.@constraint(m, [phase in t_connections], p_to[phase] .== 0) # TODO test removing the "fr" constraints here in order to reduce the # of constraints in the model + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + if Multinode_Inputs.number_of_phases == 1 + JuMP.@constraint(m, [phase in f_connections], q_fr[phase] .== 0.0) + JuMP.@constraint(m, [phase in t_connections], q_to[phase] .== 0.0) + else + # Add small amount of reactive power support for multi-phase systems + JuMP.@constraint(m, [phase in f_connections], -Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar .<= q_fr[phase] .<= Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar) + JuMP.@constraint(m, [phase in t_connections], -Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar .<= q_to[phase] .<= Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar) # no restrictions on reactive power + end + end + elseif Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + for phase in phases_for_each_line[line] + @constraint(m, m[:dvPline][line, phase, timestep_for_simple_powerflow_model] .== 0) + end + elseif Switches_Open==false + @constraint(m, sum(m[Symbol("dvGridPurchase_"*Multinode_Inputs.facilitymeter_node)][timestep, tier] for tier in 1:FacilityMeterNode_REoptInputs.s.electric_tariff.n_energy_tiers) == 0) + @constraint(m, sum(m[Symbol("dvProductionToGrid_"*Multinode_Inputs.facilitymeter_node)]["PV", u, timestep] for u in FacilityMeterNode_REoptInputs.export_bins_by_tech["PV"]) == 0) + else Switches_Open==true # Note: the first elseif statement covers the situation where switches_open == true and the simple powerflow model is being used + @warn "The switches were defined as open during a time period when the PMD model and simple powerflow model are not applied" + end + end + end +end + + +function GenerateREoptNodesList(Multinode_Inputs) + REopt_nodes = [] + for i in Multinode_Inputs.REopt_inputs_list + if string(i["Site"]["node"]) != Multinode_Inputs.facilitymeter_node + push!(REopt_nodes, i["Site"]["node"]) + end + end + return REopt_nodes +end + + +# Function to check for errors in the data inputs for the model +function RunDataChecks(Multinode_Inputs, REopt_dictionary) + + ps = REopt_dictionary + + for p in ps + node_temp = p.s.site.node + + for phase in p.s.settings.phase_numbers + if !(phase in [1,2,3]) + throw(@error("Phase $(phase) for node $(node_temp) is invalid")) + end + if length(findall(x -> x==phase, p.s.settings.phase_numbers)) > 1 + throw(@error("Phase $(phase) can't be listed more than once for node $(node_temp)")) + end + end + + if p.s.settings.facilitymeter_node != Multinode_Inputs.facilitymeter_node + throw(@error("The facilitymeter_node input for each REopt node must equal the facilitymeter_node defined in the multinode settings, which is $(Multinode_Inputs.facilitymeter_node)")) + end + + if p.s.settings.time_steps_per_hour != Multinode_Inputs.time_steps_per_hour + throw(@error("The time steps per hour for each REopt node must match the time steps per hour defined in the multinode settings dictionary")) + end + + possible_critical_load_method_entries = ["Fraction", "TimeSeries", "N/A"] + if !(Multinode_Inputs.critical_load_method in possible_critical_load_method_entries) + throw(@error("The input for critical_load_method is not valid")) + end + + # Checking that critical loads are defined, if running a resilience model and/or the outage simulator + if Multinode_Inputs.run_outage_simulator || Multinode_Inputs.model_outages_with_outages_vector || Multinode_Inputs.model_outages_with_outages_vector || ((Multinode_Inputs.single_outage_end_time_step - Multinode_Inputs.single_outage_start_time_step) > 0 ) + + if Multinode_Inputs.critical_load_method == "Fraction" + if string(p.s.site.node) āˆ‰ keys(Multinode_Inputs.critical_load_fraction) + if sum(p.s.electric_load.loads_kw) > 0 + throw(@error("The REopt node $(node_temp) does not have an assigned critical load fraction in the critical_load_fraction input dictionary")) + end + end + end + + if Multinode_Inputs.critical_load_method == "TimeSeries" + if string(p.s.site.node) āˆ‰ keys(Multinode_Inputs.critical_load_timeseries) + if sum(p.s.electric_load.loads_kw) > 0 + throw(@error("The REopt node $(node_temp) does not have an assigned critical load timeseries profile in the critical_load_timeseries input dictionary")) + end + end + end + + end + # TODO: add data check to ensure that if a critical load method is defined, then there must be either a critical load fraction or a critical load timeseries dictionary + + if Int(length(p.s.electric_load.loads_kw)) != Int(8760 * Multinode_Inputs.time_steps_per_hour) + throw(@error("At REopt node $(node_temp), the length of the electric loads vector does not correlate with the time steps per hour defined in the Multinode_Inputs dictionary")) + end + end + + if Multinode_Inputs.base_voltage_kv <= 0 + throw(@error("the base_voltage_kv must be greater than zero. The default value of the base_voltage_kv is zero to ensure that the user defines the correct base voltage. The base voltage entered for base_voltage_kv should be the base voltage defined at the top of the .dss inputs file.")) + end + + if Multinode_Inputs.number_of_phases āˆ‰ [1,2,3] + throw(@error("The number_of_phases input must be 1, 2, or 3")) + end + + if Multinode_Inputs.multinode_type āˆ‰ ["CommunityDistrict", "BehindTheMeter", "OffGrid"] + throw(@error("An invalid multinode type was provided in the inputs")) + end + + if (Multinode_Inputs.multinode_type == "Offgrid") && (Multinode_Inputs.run_BAU_case == true) + throw(@error("The BAU case cannot be run for an off-grid model because an off-grid model cannot solve without on-site generation.")) + end + + if Multinode_Inputs.multinode_type != "CommunityDistrict" + @warn("For the community district multinode type, the electricity tariff for the facility meter node should be 0") + end + + if Multinode_Inputs.critical_load_method == "Fraction" + for x in values(Multinode_Inputs.critical_load_fraction) + if x >= 5.0 + throw(@error("The critical_load_fraction load fraction should be entered as a fraction, not a percent. The model currently limits the critical_load_fraction to 5.0 (or 500%) to reduce the possibility of user error. ")) + end + end + end + + if Multinode_Inputs.single_outage_start_time_step > Multinode_Inputs.single_outage_end_time_step + throw(@error("In the Multinode_Inputs dictionary, the single outage start time must be a smaller value than the single outage stop time")) + end + + if Multinode_Inputs.single_outage_end_time_step > (8760 * Multinode_Inputs.time_steps_per_hour) + TotalNumberOfTimeSteps = Int(8760 * Multinode_Inputs.time_steps_per_hour) + throw(@error("In the Multinode_Inputs dictionary, the defined outage stop time must be less than the total number of time steps, which is $(TotalNumberOfTimeSteps)")) + end + + #if Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD && (Multinode_Inputs.number_of_phases > 1) + #throw(@error("The simple powerflow model is currently not compatible with multiphase systems. Please set apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD to false to run the model only with PowerModelsDistribution.")) + #end + + if Multinode_Inputs.substation_export_limit < 0 + throw(@error("The substation_export_limit input cannot be negative.")) + end + + if Multinode_Inputs.substation_import_limit < 0 + throw(@error("The substation_import_limit input cannot be negative.")) + end + + if (Multinode_Inputs.allow_dropped_load) && (Multinode_Inputs.number_of_phases != 1) + throw(@error("When modeling a three-phase system, allowing dropped load in the outage simulator is not allowed. Please set the allowed_dropped_load input to false.")) + end + + # Currently the simple powerflow model does not work with outages and multiphase systems, so an error is caused if the user runs a multi-phase model where the outages do not occur during PMD timesteps + if Multinode_Inputs.number_of_phases != 1 + if Multinode_Inputs.single_outage_end_time_step - Multinode_Inputs.single_outage_start_time_step > 0 + for timestep in collect(Multinode_Inputs.single_outage_start_time_step:Multinode_Inputs.single_outage_end_time_step) + if !(timestep in Multinode_Inputs.PMD_time_steps) + throw(@error("For multi-phase systems, the outages in the optimization must be modeled during timesteps that are modeled using PMD")) + end + end + end + if Multinode_Inputs.model_outages_with_outages_vector == true + for timestep in Multinode_Inputs.outages_vector + if !(timestep in Multinode_Inputs.PMD_time_steps) + throw(@error("For multi-phase systems, all outages must be modeled during times steps modeled with PowerModelsDistribution (PMD).")) + end + end + end + end + + # Check for internal loops + data_eng = PowerModelsDistribution.parse_file(Multinode_Inputs.PMD_network_input, transformations=[PowerModelsDistribution.remove_all_bounds!]) + has_loops, loop_edges = REopt.detect_network_loops(data_eng) + has_islands, islanded_buses, island_groups = REopt.detect_islanded_buses(data_eng, Multinode_Inputs.substation_node) + + if has_loops + @warn("The distribution system has the following loops: $(loop_edges)") + end + if has_islands + @warn("The following islands are present in the distribution system: $(island_groups)") + end + +end + + +# Function to check for commons issues in the model if the model fails to optimize +function run_diagnostics(model, Multinode_Inputs, REopt_dictionary) + + diagnostic_report = Dict([]) + + # Evaluation 1: Check for single variable contradictions + # AI was used to generate the evaluation 1 code + bad = [] + for v in all_variables(model) + lb = has_lower_bound(v) ? lower_bound(v) : -Inf + ub = has_upper_bound(v) ? upper_bound(v) : Inf + fx = is_fixed(v) ? fix_value(v) : nothing + if lb > ub + 1e-9 + push!(bad, (v, lb, ub, fx, :lb_gt_ub)) + elseif fx !== nothing && (fx < lb - 1e-9 || fx > ub + 1e-9) + push!(bad, (v, lb, ub, fx, :fix_outside_bounds)) + end + end + length(bad), first(bad, 20) + + diagnostic_report["single_variable_contradictions"] = bad + + return diagnostic_report +end diff --git a/src/multinode/multinode_inputs.jl b/src/multinode/multinode_inputs.jl new file mode 100644 index 000000000..46e30d203 --- /dev/null +++ b/src/multinode/multinode_inputs.jl @@ -0,0 +1,311 @@ +# REoptĀ®, Copyright (c) Alliance for Sustainable Energy, LLC. See also https://github.com/NREL/REopt.jl/blob/master/LICENSE. + +""" +`multinode` is an optional input with the following keys and default values: + + folder_location::String="", + bus_coordinates::String="", # Location of the csv document with the bus coordinates + PMD_network_input::Any, + multinode_type::String="BehindTheMeter", # Options: "BehindTheMeter", "CommunityDistrict", or "Offgrid" + model_type::String="PowerModelsDistribution", #Options: "PowerModelsDistribution", + model_subtype::String="LPUBFDiagPowerModel", # Options: "LPUBFDiagPowerModel", "ACPUPowerModel" + run_BAU_case::Bool=true, + optimizer::Any, # Such as HiGHS.Optimizer + optimizer_tolerance::Float64=0.001, # Only works for Xpress, HiGHS, and Gurobi + log_solver_output_to_console::Bool=true, # Log the output from the solver to the console + PMD_time_steps::Any=[1:24], # By default, apply the PMD model to the first 24 timesteps of the model + apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD::Bool=true, + REopt_inputs_list::Array=[], + + number_of_phases::Real=1, + bus_phase_voltage_lower_bound_per_unit::Float64=0.95, + bus_phase_voltage_upper_bound_per_unit::Float64=1.05, + bus_neutral_voltage_upper_bound_per_unit::Float64=0.1, + facilitymeter_node::String="", + substation_node::String="", + substation_line::String="", + allow_export_beyond_substation::Bool=false, + substation_export_limit::Real=0, + substation_import_limit::Real=0, + base_voltage_kv::Real=0, # This must be redefined based on the base voltage defined in the dss inputs file in units of kV + external_reactive_power_support_per_phase_maximum_kvar::Real=1000000, # Because multi-node does not model reactive power, but reactive power may be needed for the power systems modeling, this value enables reactive power to flow from the substation to all parts of the network, regardless of if there is a grid outage or a switch is open + + model_switches::Bool=false, + model_line_upgrades::Bool=false, + line_upgrade_options::Dict=Dict(), + model_transformer_upgrades::Bool=false, + transformer_upgrade_options::Dict=Dict(), + switch_open_timesteps::Dict=Dict(), + + single_outage_start_time_step::Real=0, + single_outage_end_time_step::Real=0, + model_outages_with_outages_vector::Bool=false, + outages_vector::Array=[], + run_outage_simulator::Bool=false, + allow_dropped_load::Bool=false, + outage_simulator_generator_gallons_per_kwh::Real=0.02457, + length_of_simulated_outages_time_steps::Array=[], + critical_load_method::String="Fraction", + critical_load_fraction::Real=0.0, + critical_load_timeseries::Array=[], + number_of_outages_to_simulate::Real=0, + + time_steps_per_hour::Real=0, + generator_fuel_gallon_available::Dict=Dict(), + generators_only_run_during_grid_outage::Bool=false, + generate_CSV_of_outputs::Bool=false, + generate_dictionary_for_plotting::Bool=false, + number_of_plots_from_outage_simulator::Real=0, + + generate_same_pv_production_profile_for_each_node::Bool=false, + pv_inputs_for_standardized_pv_production_profile::Dict=Dict(), + + display_information_during_modeling_run::Bool=false, # This can be helpful for debugging a model + include_additional_outputs_into_the_combined_results_dictionary::Bool=false, + + fault_analysis::Dict=Dict(), + allow_bus_voltage_violations::Bool=false, + bus_per_unit_voltage_target_upper_bound::Real=1.05, + bus_per_unit_voltage_target_lower_bound::Real=0.95, + cost_per_voltage_violation_per_timestep::Real=1000, + allow_dropped_load_in_main_optimization::Bool=false, + cost_per_kwh_dropped_load::Real=100, + run_Xpress_model_presolve::Bool=true, + run_IIS_on_nonoptimal_models::Bool=false + +""" + +mutable struct MultinodeInputs <: AbstractMultinode + folder_location + bus_coordinates + PMD_network_input + multinode_type + model_type + model_subtype + run_BAU_case + optimizer + optimizer_tolerance + log_solver_output_to_console + PMD_time_steps + apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + REopt_inputs_list + number_of_phases + bus_phase_voltage_lower_bound_per_unit + bus_phase_voltage_upper_bound_per_unit + bus_neutral_voltage_upper_bound_per_unit + facilitymeter_node + substation_node + substation_line + allow_export_beyond_substation + substation_export_limit + substation_import_limit + base_voltage_kv + external_reactive_power_support_per_phase_maximum_kvar + model_switches + model_line_upgrades + line_upgrade_options + model_transformer_upgrades + transformer_upgrade_options + switch_open_timesteps + single_outage_start_time_step + single_outage_end_time_step + model_outages_with_outages_vector + outages_vector + run_outage_simulator + allow_dropped_load + outage_simulator_generator_gallons_per_kwh + length_of_simulated_outages_time_steps + critical_load_method + critical_load_fraction + critical_load_timeseries + number_of_outages_to_simulate + time_steps_per_hour + generator_fuel_gallon_available + generators_only_run_during_grid_outage + generate_CSV_of_outputs + generate_dictionary_for_plotting + number_of_plots_from_outage_simulator + generate_same_pv_production_profile_for_each_node + pv_inputs_for_standardized_pv_production_profile + display_information_during_modeling_run + include_additional_outputs_into_the_combined_results_dictionary + fault_analysis + allow_bus_voltage_violations + bus_per_unit_voltage_target_upper_bound + bus_per_unit_voltage_target_lower_bound + cost_per_voltage_violation_per_timestep + allow_dropped_load_in_main_optimization + cost_per_kwh_dropped_load + run_Xpress_model_presolve + run_IIS_on_nonoptimal_models + load_profiles_for_outage_sim_if_using_the_fraction_method + + function MultinodeInputs(; + folder_location::String="", + bus_coordinates::String="", + PMD_network_input::Any, + multinode_type::String="BehindTheMeter", + model_type::String="PowerModelsDistribution", + model_subtype::String="LPUBFDiagPowerModel", + run_BAU_case::Bool=true, + optimizer::Any, + optimizer_tolerance::Float64=0.001, + log_solver_output_to_console::Bool=true, + PMD_time_steps::Any=[1:24], + apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD::Bool=true, + REopt_inputs_list::Array=[], + number_of_phases::Real=1, + bus_phase_voltage_lower_bound_per_unit::Float64=0.95, + bus_phase_voltage_upper_bound_per_unit::Float64=1.05, + bus_neutral_voltage_upper_bound_per_unit::Float64=0.1, + facilitymeter_node::String="", + substation_node::String="", + substation_line::String="", + allow_export_beyond_substation::Bool=false, + substation_export_limit::Real=0, + substation_import_limit::Real=0, + base_voltage_kv::Real=0, + external_reactive_power_support_per_phase_maximum_kvar::Real=1000000, + model_switches::Bool=false, + model_line_upgrades::Bool=false, + line_upgrade_options::Dict=Dict(), + model_transformer_upgrades::Bool=false, + transformer_upgrade_options::Dict=Dict(), + switch_open_timesteps::Dict=Dict(), + single_outage_start_time_step::Real=0, + single_outage_end_time_step::Real=0, + model_outages_with_outages_vector::Bool=false, + outages_vector::Array=[], + run_outage_simulator::Bool=false, + allow_dropped_load::Bool=false, + outage_simulator_generator_gallons_per_kwh::Real=0.02457, + length_of_simulated_outages_time_steps::Array=[], + critical_load_method::String="Fraction", + critical_load_fraction::Dict=Dict(), + critical_load_timeseries::Dict=Dict(), + number_of_outages_to_simulate::Real=0, + time_steps_per_hour::Real=0, + generator_fuel_gallon_available::Dict=Dict(), + generators_only_run_during_grid_outage::Bool=false, + generate_CSV_of_outputs::Bool=false, + generate_dictionary_for_plotting::Bool=false, + number_of_plots_from_outage_simulator::Real=0, + generate_same_pv_production_profile_for_each_node::Bool=false, + pv_inputs_for_standardized_pv_production_profile::Dict=Dict(), + display_information_during_modeling_run::Bool=false, + include_additional_outputs_into_the_combined_results_dictionary::Bool=false, + fault_analysis::Dict=Dict(), + allow_bus_voltage_violations::Bool=false, + bus_per_unit_voltage_target_upper_bound::Real=1.05, + bus_per_unit_voltage_target_lower_bound::Real=0.95, + cost_per_voltage_violation_per_timestep::Real=1000, + allow_dropped_load_in_main_optimization::Bool=false, + cost_per_kwh_dropped_load::Real=100, + run_Xpress_model_presolve::Bool=true, + run_IIS_on_nonoptimal_models::Bool=false, + load_profiles_for_outage_sim_if_using_the_fraction_method::Array=[] + ) + + if generate_same_pv_production_profile_for_each_node + + pv_power_production_factor_series, ambient_temp_celcius = REopt.call_pvwatts_api(pv_inputs_for_standardized_pv_production_profile["latitude"], + pv_inputs_for_standardized_pv_production_profile["longitude"]; + tilt= pv_inputs_for_standardized_pv_production_profile["tilt"], + azimuth= pv_inputs_for_standardized_pv_production_profile["azimuth"], + module_type= pv_inputs_for_standardized_pv_production_profile["module_type"], + array_type= pv_inputs_for_standardized_pv_production_profile["array_type"], + losses= pv_inputs_for_standardized_pv_production_profile["losses"], + dc_ac_ratio= pv_inputs_for_standardized_pv_production_profile["dc_ac_ratio"], + gcr= pv_inputs_for_standardized_pv_production_profile["gcr"], + inv_eff= 100 * pv_inputs_for_standardized_pv_production_profile["inv_eff_fraction"], + timeframe="hourly", + radius=0, + time_steps_per_hour=time_steps_per_hour) + + for node in collect(1:length(REopt_inputs_list)) + if "PV" in keys(REopt_inputs_list[node]) + if "production_factor_series" in keys(REopt_inputs_list[node]["PV"]) + # do nothing because the power_factor_series is already defined + else + REopt_inputs_list[node]["PV"]["production_factor_series"] = pv_power_production_factor_series + end + end + end + end + + if allow_bus_voltage_violations + @warn "Setting the per unit phase voltage upper bound, phase voltage lower bound, and neutral voltage upper bound to 10, 0, and 10, respectively, for the PMD inputs because allow_bus_voltage_violations is set to true" + bus_phase_voltage_upper_bound_per_unit = 10.0 + bus_phase_voltage_lower_bound_per_unit = 0.0 + bus_neutral_voltage_upper_bound_per_unit = 10.0 + end + + new( + folder_location, + bus_coordinates, + PMD_network_input, + multinode_type, + model_type, + model_subtype, + run_BAU_case, + optimizer, + optimizer_tolerance, + log_solver_output_to_console, + PMD_time_steps, + apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD, + REopt_inputs_list, + number_of_phases, + bus_phase_voltage_lower_bound_per_unit, + bus_phase_voltage_upper_bound_per_unit, + bus_neutral_voltage_upper_bound_per_unit, + facilitymeter_node, + substation_node, + substation_line, + allow_export_beyond_substation, + substation_export_limit, + substation_import_limit, + base_voltage_kv, + external_reactive_power_support_per_phase_maximum_kvar, + model_switches, + model_line_upgrades, + line_upgrade_options, + model_transformer_upgrades, + transformer_upgrade_options, + switch_open_timesteps, + single_outage_start_time_step, + single_outage_end_time_step, + model_outages_with_outages_vector, + outages_vector, + run_outage_simulator, + allow_dropped_load, + outage_simulator_generator_gallons_per_kwh, + length_of_simulated_outages_time_steps, + critical_load_method, + critical_load_fraction, + critical_load_timeseries, + number_of_outages_to_simulate, + time_steps_per_hour, + generator_fuel_gallon_available, + generators_only_run_during_grid_outage, + generate_CSV_of_outputs, + generate_dictionary_for_plotting, + number_of_plots_from_outage_simulator, + generate_same_pv_production_profile_for_each_node, + pv_inputs_for_standardized_pv_production_profile, + display_information_during_modeling_run, + include_additional_outputs_into_the_combined_results_dictionary, + fault_analysis, + allow_bus_voltage_violations, + bus_per_unit_voltage_target_upper_bound, + bus_per_unit_voltage_target_lower_bound, + cost_per_voltage_violation_per_timestep, + allow_dropped_load_in_main_optimization, + cost_per_kwh_dropped_load, + run_Xpress_model_presolve, + run_IIS_on_nonoptimal_models, + load_profiles_for_outage_sim_if_using_the_fraction_method + ) + + end +end + diff --git a/src/multinode/multinode_outage_simulator.jl b/src/multinode/multinode_outage_simulator.jl new file mode 100644 index 000000000..a36d0e6cc --- /dev/null +++ b/src/multinode/multinode_outage_simulator.jl @@ -0,0 +1,788 @@ +# REoptĀ®, Copyright (c) Alliance for Sustainable Energy, LLC. See also https://github.com/NREL/REopt.jl/blob/master/LICENSE. + +function run_outage_simulator(DataDictionaryForEachNode, REopt_dictionary, Multinode_Inputs, TimeStamp, LineInfo_PMD, line_upgrade_options_each_line, line_upgrade_results, REopt_inputs_combined) + + Outage_Results = Dict([]) + outage_simulator_time_start = now() + outage_simulator_results_for_plotting = Dict([]) + outage_survival_results_dictionary = Dict([]) + outage_start_timesteps_dictionary = Dict([]) + m_outagesimulator_dictionary = Dict([]) + + # TODO: Transfer any transformer upgrades from the main optimization model into the outage simulator + #transformer_max_kva= "N/A" + + single_model_outage_simulator = "empty" + for i in 1:length(Multinode_Inputs.length_of_simulated_outages_time_steps) + OutageLength = Multinode_Inputs.length_of_simulated_outages_time_steps[i] + pm, OutageLength_TimeSteps_Input, SuccessfullySolved, TimeStepsNotSolved, RunNumber, PercentOfOutagesSurvived, single_model_outage_simulator, outage_survival_results, outage_start_timesteps, dropped_load_results_summary, outage_data_for_plotting = Multinode_OutageSimulator(DataDictionaryForEachNode, + REopt_dictionary, + Multinode_Inputs, + TimeStamp, + line_upgrade_options_each_line, + line_upgrade_results, + REopt_inputs_combined; + LineInfo_PMD = LineInfo_PMD, + NumberOfOutagesToTest = Multinode_Inputs.number_of_outages_to_simulate, + OutageLength_TimeSteps_Input = OutageLength) + Outage_Results["$(OutageLength_TimeSteps_Input)_timesteps_outage"] = Dict(["PercentSurvived" => PercentOfOutagesSurvived, + "NumberOfRuns" => RunNumber, + "pm" => pm, + "time_steps_not_solved" => TimeStepsNotSolved, + "NumberOfOutagesSurvived" => SuccessfullySolved, + "outage_survival_results_each_timestep" => outage_survival_results, + "outage_start_timesteps" => outage_start_timesteps, + "dropped_load_results" => dropped_load_results_summary ]) + + if Multinode_Inputs.generate_dictionary_for_plotting + + additional_outage_results_for_plotting = Dict(["outage_survival_results" => outage_survival_results, + "outage_start_timesteps_checked" => outage_start_timesteps, + "TimeStamp"=>TimeStamp, + "OutageLength_TimeSteps_Input"=>OutageLength_TimeSteps_Input]) + + merge!(outage_data_for_plotting, additional_outage_results_for_plotting) + outage_simulator_results_for_plotting[OutageLength_TimeSteps_Input] = outage_data_for_plotting + end + + outage_survival_results_dictionary[OutageLength] = outage_survival_results + outage_start_timesteps_dictionary[OutageLength] = outage_start_timesteps + + end + outage_simulator_time_milliseconds, outage_simulator_time_minutes = CalculateComputationTime(outage_simulator_time_start) + return Outage_Results, single_model_outage_simulator, outage_simulator_time_minutes, outage_simulator_results_for_plotting, outage_survival_results_dictionary, outage_start_timesteps_dictionary +end + + +function Multinode_OutageSimulator(DataDictionaryForEachNode, REopt_dictionary, Multinode_Inputs, TimeStamp, line_upgrade_options_each_line, line_upgrade_results, REopt_inputs_combined; + NumberOfOutagesToTest = 15, OutageLength_TimeSteps_Input = 1, LineInfo_PMD="") + # This function runs the outage simulator for a particular outage length + + # Initialize variables prior to running the simulator: + NodeList = string.(GenerateREoptNodesList(Multinode_Inputs)) + #NodesWithPV = DetermineNodesWithPV(DataDictionaryForEachNode, NodeList) + m_outagesimulator = "" + RunNumber = 0 + OutageSimulator_LineFromSubstationToFacilityMeter, RunNumber, outage_start_timesteps_checked = PrepareInputsForOutageSimulator(Multinode_Inputs, OutageLength_TimeSteps_Input, NumberOfOutagesToTest) + RunsTested = 0 + outage_survival_results = -1 * ones(RunNumber) + SuccessfullySolved = 0 + TimeStepsNotSolved = [] + outage_data_for_plotting = Dict([]) + pm = "" + data_math_mn = "" + + if Multinode_Inputs.allow_dropped_load + dropped_load_results = Array{Any}(undef, RunNumber) + dropped_load_results_summary = "" + else + dropped_load_results_summary = "N/A" + end + + for x in 1:RunNumber + print("\n Outage Simulation Run # "*string(x)*" of "*string(RunNumber)*" runs") + RunsTested = RunsTested + 1 + i = outage_start_timesteps_checked[x] + TotalTimeSteps = 8760*Multinode_Inputs.time_steps_per_hour + time_results = Dict() + if Multinode_Inputs.model_type == "PowerModelsDistribution" + m_outagesimulator = "" # empty the m_outagesimulator variable + pm, data_math_mn, data_eng = Create_PMD_Model_For_REopt_Integration(Multinode_Inputs, OutageLength_TimeSteps_Input, time_results; combined_REopt_inputs = REopt_inputs_combined, outage_simulator = true) + m_outagesimulator = pm.model # TODO: Confirm that when make changes to pm.model again in the function, that that version of pm.model has the additional constraints defined below for m_outagesimulator + #elseif + # Add other options if additional model_types are added + else + throw(@error("And invalid model_type was provided.")) + end + + for n in NodeList + TimeSteps = OutageLength_TimeSteps_Input + AddVariablesOutageSimulator(Multinode_Inputs, pm.model, TimeSteps, DataDictionaryForEachNode, n) + AddConstraintsOutageSimulator(Multinode_Inputs, pm.model, TimeSteps, DataDictionaryForEachNode, OutageLength_TimeSteps_Input, n, i) + end + + if Multinode_Inputs.model_type == "PowerModelsDistribution" + Connect_To_PMD_Model(pm, Multinode_Inputs, data_math_mn, OutageLength_TimeSteps_Input, LineInfo_PMD, REopt_inputs_combined) + end + + if Multinode_Inputs.model_line_upgrades + AddConstraintsFromLineUpgrades(pm, OutageLength_TimeSteps_Input, LineInfo_PMD, line_upgrade_options_each_line, line_upgrade_results) + end + + if Multinode_Inputs.model_transformer_upgrades + AddConstraintsFromTransformerUpgrades() # TODO: finish this function once transformer upgrades are implemented in the code + end + + if !(Multinode_Inputs.allow_dropped_load) + @objective(pm.model, FEASIBILITY_SENSE, 0) + elseif Multinode_Inputs.allow_dropped_load + @objective(pm.model, Max, (sum(sum(pm.model[Symbol("dvLoadMetMultiplier_"*n)] for n in NodeList)))) # If allowing dropped load, the objective is to maximize the non-dropped load + else + throw(@error("The input for allow_dropped_load is invalid. It must be true or false.")) + end + + PrepareOptimizer(pm, Multinode_Inputs) + results = PowerModelsDistribution.optimize_model!(pm) + TerminationStatus = string(results["termination_status"]) + + outage_survival_results[x], SuccessfullySolved, TimeStepsNotSolved = InterpretResult(TimeStepsNotSolved, TerminationStatus, SuccessfullySolved, Multinode_Inputs, x, i, pm.model, DataDictionaryForEachNode, OutageLength_TimeSteps_Input, TimeStamp, TotalTimeSteps, NodeList) + print("\n The result from run #"*string(RunsTested)*" is: "*TerminationStatus*". Outages survived so far: "*string(SuccessfullySolved)*", Outages tested so far: "*string(RunsTested)) + + if Multinode_Inputs.generate_dictionary_for_plotting && (SuccessfullySolved <= Multinode_Inputs.number_of_plots_from_outage_simulator) + temp_dict = Dict([]) + temp_dict["model"] = pm.model + temp_dict["x"] = x + temp_dict["i"] = i + temp_dict["TotalTimeSteps"] = TotalTimeSteps + temp_dict["NodeList"] = NodeList + outage_data_for_plotting[SuccessfullySolved] = deepcopy(temp_dict) + end + + if Multinode_Inputs.allow_dropped_load && (TerminationStatus == "OPTIMAL") + dropped_load_results[x] = ProcessDroppedLoadResults(Multinode_Inputs, pm.model, i, DataDictionaryForEachNode, OutageLength_TimeSteps_Input, NodeList, RunsTested) + elseif Multinode_Inputs.allow_dropped_load && (TerminationStatus != "OPTIMAL") + dropped_load_results[x] = Dict(["load_met_fraction" => 0.0, "Solved"=> "no"]) + end + + end + + PercentOfOutagesSurvived = DisplayResultsSummary(SuccessfullySolved, RunNumber, OutageLength_TimeSteps_Input) + + if Multinode_Inputs.allow_dropped_load + dropped_load_results_summary = SummarizeDroppedLoadResults(Multinode_Inputs, dropped_load_results) + end + + return pm, OutageLength_TimeSteps_Input, SuccessfullySolved, TimeStepsNotSolved, RunNumber, PercentOfOutagesSurvived, m_outagesimulator, outage_survival_results, outage_start_timesteps_checked, dropped_load_results_summary, outage_data_for_plotting +end + + +function ProcessDroppedLoadResults(Multinode_Inputs, model, i, DataDictionaryForEachNode, OutageLength_TimeSteps_Input, NodeList, RunsTested) + + dropped_load_dictionary = Dict([]) + + load_met_multiplier_results = Dict([]) + for n in NodeList + load_met_multiplier_results[n] = value.(model[Symbol("dvLoadMetMultiplier_"*n)]) + end + + total_load = zeros(OutageLength_TimeSteps_Input) + load_met = zeros(OutageLength_TimeSteps_Input) + + for ts in collect(1:OutageLength_TimeSteps_Input) + total_load[ts] = sum((DataDictionaryForEachNode[n]["loads_kw"][i:(i+OutageLength_TimeSteps_Input-1)])[ts] for n in NodeList) + load_met[ts] = sum( (value.(model[Symbol("dvLoadMetMultiplier_"*n)][ts]) * (DataDictionaryForEachNode[n]["loads_kw"][i:(i+OutageLength_TimeSteps_Input-1)])[ts]) for n in NodeList) + end + + total_load_summed = sum(total_load) + load_met_summed = sum(load_met) + load_met_fraction = round((load_met_summed/total_load_summed), digits=4) + + dropped_load_dictionary = Dict(["RunNumber" => RunsTested, + "solved" => "yes", + "total_load_summed"=> total_load_summed, + "load_met_summed"=>load_met_summed, + "load_met_fraction"=> load_met_fraction, + "load_met_multiplier_results"=>load_met_multiplier_results]) + + return dropped_load_dictionary +end + + +function SummarizeDroppedLoadResults(Multinode_Inputs, dropped_load_results) + + load_met_fraction_list = [] + minimum_value = "N/A" + average_value = "N/A" + maximum_value = "N/A" + + for i in collect(1:length(dropped_load_results)) + push!(load_met_fraction_list, dropped_load_results[i]["load_met_fraction"]) + end + if Multinode_Inputs.display_information_during_modeling_run + print("\n The load met fraction list is: ") + print(load_met_fraction_list) + end + + minimum_value = minimum(load_met_fraction_list) + average_value = mean(load_met_fraction_list) + maximum_value = maximum(load_met_fraction_list) + + summary = Dict(["minimum_load_met_fraction" => minimum_value, + "average_load_met_fraction" => average_value, + "maximum_load_met_fraction" => maximum_value, + "results_by_outage_simulation" => dropped_load_results]) + + return summary +end + + +function AddVariablesOutageSimulator(Multinode_Inputs, m_outagesimulator, TimeSteps, DataDictionaryForEachNode, n) + + Batterykw = DataDictionaryForEachNode[n]["Battery_kw"] + + dv = "dvPVToLoad_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0.0) + dv = "dvBatToLoad_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0.0) + dv = "dvBatToLoadWithEfficiency_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0.0) + dv = "dvGenToLoad_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0.0) + + dv = "dvPVToBat_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0.0, upper_bound = Batterykw) + + dv = "dvGridToBat_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0, upper_bound = Batterykw) + dv = "dvGridToLoad_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0) + dv = "dvGridPurchase_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0) + + dv = "FuelUsage_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0) + dv = "TotalFuelUsage_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, base_name = dv, lower_bound = 0) + + dv = "BatteryCharge_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv) + dv = "SumOfBatFlows_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv) + + # Binary used to prevent battery from charging and discharging at the same time + dv = "Binary_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, Bin) + + dv = "TotalExport_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name=dv) + + dv = "dvPVToGrid_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0) + dv = "dvBatToGrid_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0) + dv = "dvBatToGridWithEfficiency_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0) + dv = "dvGenToGrid_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv, lower_bound = 0) + + if Multinode_Inputs.allow_dropped_load + dv = "dvLoadMetMultiplier_"*n + m_outagesimulator[Symbol(dv)] = @variable(m_outagesimulator, [1:TimeSteps], base_name = dv) #, lower_bound = 0, upper_bound = 1) + end + +end + + +function AddConstraintsOutageSimulator(Multinode_Inputs, m_outagesimulator, TimeSteps, DataDictionaryForEachNode, OutageLength_TimeSteps_Input, n, i) + + time_steps_per_hour = Multinode_Inputs.time_steps_per_hour + + GenPowerRating = DataDictionaryForEachNode[n]["GeneratorSize"] + GalPerkwh = Multinode_Inputs.outage_simulator_generator_gallons_per_kwh + + BatteryChargeStart = DataDictionaryForEachNode[n]["Battery_charge_kwh"][i] + Batterykw = DataDictionaryForEachNode[n]["Battery_kw"] + Batterykwh = DataDictionaryForEachNode[n]["Battery_kwh"] + BatteryRoundTripEfficiencyFraction = DataDictionaryForEachNode[n]["battery_roundtrip_efficiency"] + + PVProductionProfile = DataDictionaryForEachNode[n]["PVproductionprofile"] + + # Total power export: + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], (m_outagesimulator[Symbol("TotalExport_"*n)] .== m_outagesimulator[Symbol("dvPVToGrid_"*n)][ts] + + m_outagesimulator[Symbol("dvBatToGridWithEfficiency_"*n)][ts] + + m_outagesimulator[Symbol("dvGenToGrid_"*n)][ts])) + + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("dvBatToLoadWithEfficiency_"*n)][ts] .== m_outagesimulator[Symbol("dvBatToLoad_"*n)][ts] * BatteryRoundTripEfficiencyFraction) + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("dvBatToGridWithEfficiency_"*n)][ts] .== m_outagesimulator[Symbol("dvBatToGrid_"*n)][ts] * BatteryRoundTripEfficiencyFraction) + + # Total PV power constraint: + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("dvPVToGrid_"*n)][ts] + + m_outagesimulator[Symbol("dvPVToBat_"*n)][ts] + + m_outagesimulator[Symbol("dvPVToLoad_"*n)][ts] .<= PVProductionProfile[i .+ ts .- 1] ) + + # Grid power import to each node: + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("dvGridPurchase_"*n)] .== + m_outagesimulator[Symbol("dvGridToLoad_"*n)][ts] + m_outagesimulator[Symbol("dvGridToBat_"*n)][ts] ) + + # Generator constraints: + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("dvGenToGrid_"*n)][ts] + + m_outagesimulator[Symbol("dvGenToLoad_"*n)][ts] .<= + GenPowerRating ) + @constraint(m_outagesimulator, m_outagesimulator[Symbol("TotalFuelUsage_"*n)] .== sum(m_outagesimulator[Symbol("FuelUsage_"*n)]) ) + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("FuelUsage_"*n)][ts] .== (m_outagesimulator[Symbol("dvGenToGrid_"*n)][ts] + m_outagesimulator[Symbol("dvGenToLoad_"*n)][ts])*(1/time_steps_per_hour)*GalPerkwh) + @constraint(m_outagesimulator, sum(m_outagesimulator[Symbol("FuelUsage_"*n)]) .<= DataDictionaryForEachNode[n]["Fuel_tank_capacity_gal"] ) + + # Battery constraints: + @constraint(m_outagesimulator, m_outagesimulator[Symbol("BatteryCharge_"*n)][1] == BatteryChargeStart) + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("SumOfBatFlows_"*n)][ts] .== + m_outagesimulator[Symbol("dvBatToLoad_"*n)][ts] + + m_outagesimulator[Symbol("dvBatToGrid_"*n)][ts] - + m_outagesimulator[Symbol("dvPVToBat_"*n)][ts] - + m_outagesimulator[Symbol("dvGridToBat_"*n)][ts]) + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("SumOfBatFlows_"*n)][ts] .<= Batterykw) + + for t in 1:(TimeSteps-1) + @constraint(m_outagesimulator, m_outagesimulator[Symbol("BatteryCharge_"*n)][t+1] == m_outagesimulator[Symbol("BatteryCharge_"*n)][t] - + (((m_outagesimulator[Symbol("SumOfBatFlows_"*n)][t]))/time_steps_per_hour) ) + end + + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("BatteryCharge_"*n)][ts] .<= Batterykwh ) + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("BatteryCharge_"*n)][ts] .>= 0) + + + if (string(Multinode_Inputs.optimizer) == "Xpress.Optimizer") || (string(Multinode_Inputs.optimizer) == "Gurobi.Optimizer") # only apply the indicator constraints if using a solver that is compatible with indicator constraints + # Use a binary to prohibit charging and discharging at the same time: + for t in 1:TimeSteps + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("Binary_"*n)][ts] .=> {m_outagesimulator[Symbol("dvGridToBat_"*n)][ts] .== 0.0} ) + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], m_outagesimulator[Symbol("Binary_"*n)][ts] .=> {m_outagesimulator[Symbol("dvPVToBat_"*n)][ts] .== 0.0} ) + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], !m_outagesimulator[Symbol("Binary_"*n)][ts] .=> {m_outagesimulator[Symbol("dvBatToLoad_"*n)][ts] .== 0.0} ) + @constraint(m_outagesimulator, [ts in [1:TimeSteps]], !m_outagesimulator[Symbol("Binary_"*n)][ts] .=> {m_outagesimulator[Symbol("dvBatToGrid_"*n)][ts] .== 0.0} ) + end + else + @warn "The battery may charge and discharge at the same time in the outage simulator because the solver is not compatible with indicator constraints." + end + #print("\n OutageLength_TimeSteps_Input are: $(OutageLength_TimeSteps_Input)") + #print("\n Timesteps are: $(TimeSteps)") + # Constraints for meeting the electric load at each node + if !(Multinode_Inputs.allow_dropped_load) + #print("\n Adding constraints for not allowing dropped load") + @constraint(m_outagesimulator, [ts in [1:OutageLength_TimeSteps_Input]], m_outagesimulator[Symbol("dvPVToLoad_"*n)][ts] + + m_outagesimulator[Symbol("dvGridToLoad_"*n)][ts] + + m_outagesimulator[Symbol("dvBatToLoadWithEfficiency_"*n)][ts] + + m_outagesimulator[Symbol("dvGenToLoad_"*n)][ts] .== (DataDictionaryForEachNode[n]["loads_kw"][i:(i+OutageLength_TimeSteps_Input-1)])[ts]) + + elseif Multinode_Inputs.allow_dropped_load + @info("Allowing dropped load in the outage simulator") + @constraint(m_outagesimulator, [ts in [1:OutageLength_TimeSteps_Input]], m_outagesimulator[Symbol("dvLoadMetMultiplier_"*n)][ts] .>= 0.0) + @constraint(m_outagesimulator, [ts in [1:OutageLength_TimeSteps_Input]], m_outagesimulator[Symbol("dvLoadMetMultiplier_"*n)][ts] .<= 1.0) + @constraint(m_outagesimulator, [ts in [1:OutageLength_TimeSteps_Input]], m_outagesimulator[Symbol("dvPVToLoad_"*n)][ts] + + m_outagesimulator[Symbol("dvGridToLoad_"*n)][ts] + + m_outagesimulator[Symbol("dvBatToLoadWithEfficiency_"*n)][ts] + + m_outagesimulator[Symbol("dvGenToLoad_"*n)][ts] .== (DataDictionaryForEachNode[n]["loads_kw"][i:(i+OutageLength_TimeSteps_Input-1)][ts]) .* m_outagesimulator[Symbol("dvLoadMetMultiplier_"*n)][ts] ) + + end +end + + +function Connect_To_PMD_Model(pm, Multinode_Inputs, data_math_mn, OutageLength_TimeSteps_Input, LineInfo_PMD, REopt_inputs_combined) + # Link the power export decision variables to the PMD model + outage_timesteps = collect(1:OutageLength_TimeSteps_Input) + + REopt_nodes = REopt.GenerateREoptNodesList(Multinode_Inputs) + + gen_name2ind, load_phase_dictionary, gen_ind_e_to_REopt_node = generate_PMD_information(Multinode_Inputs, REopt_nodes, REopt_inputs_combined, data_math_mn) + + + #gen_name2ind = Dict(gen["name"] => gen["index"] for (_,gen) in data_math_mn["nw"]["1"]["gen"]) + + if Multinode_Inputs.number_of_phases == 1 + REopt_gen_ind_e = [gen_name2ind["REopt_gen_$e"] for e in REopt_nodes] + + elseif Multinode_Inputs.number_of_phases in [2,3] + + REopt_gen_ind_e = [] + if Multinode_Inputs.display_information_during_modeling_run + print("\n Gen name to index, outage simulator: ") + print(gen_name2ind) + end + + for e in REopt_nodes + for phase in load_phase_dictionary[e] + # Add the gen index to the REopt_gen_ind_e list + + gen_ind_e_temp = gen_name2ind["REopt_gen_node$(e)_phase$(phase)"] + push!(REopt_gen_ind_e, gen_ind_e_temp) + + end + end + else + throw(@error("Error in the number of phases")) + end + + for e in REopt_gen_ind_e #Note: the REopt_gen_ind_e does not contain the facility meter + + number_of_phases_at_load = "" + number_of_phases_at_load = length(load_phase_dictionary[gen_ind_e_to_REopt_node[e]]) + + JuMP.@constraint(pm.model, [k in outage_timesteps], + PowerModelsDistribution.var(pm, k, :pg, e).data[1] == (1/number_of_phases_at_load) * (pm.model[Symbol("TotalExport_"*string(gen_ind_e_to_REopt_node[e]))][k] - pm.model[Symbol("dvGridPurchase_"*string(gen_ind_e_to_REopt_node[e]))][k]) # negative power "generation" is a load + ) + # TODO: add reactive power to the REopt nodes + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + JuMP.@constraint(pm.model, [k in outage_timesteps], + PowerModelsDistribution.var(pm, k, :qg, e).data[1] == 0.0 #(1/number_of_phases_at_load) * (m[Symbol("TotalExport_"*string(gen_ind_e_to_REopt_node[e]))][k] - m[Symbol("dvGridPurchase_"*string(gen_ind_e_to_REopt_node[e]))][k]) + ) + end + end + + # Prevent power from entering the multinode to simulate a power outage + for PMD_time_step in outage_timesteps + substation_line_index = LineInfo_PMD[lowercase(Multinode_Inputs.substation_line)]["index"] + timestep_for_network_data = 1 # collect the network configuration information from timestep 1, which assumes that the network is not changing (fair to assume with the REopt integration) + branch = PowerModelsDistribution.ref(pm, timestep_for_network_data, :branch, substation_line_index) + f_bus = branch["f_bus"] + t_bus = branch["t_bus"] + f_connections = branch["f_connections"] + t_connections = branch["t_connections"] + f_idx = (substation_line_index, f_bus, t_bus) + t_idx = (substation_line_index, t_bus, f_bus) + + p_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :p, f_idx)[c] for c in f_connections] + p_to = [PowerModelsDistribution.var(pm, PMD_time_step, :p, t_idx)[c] for c in t_connections] + + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + q_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :q, f_idx)[c] for c in f_connections] + q_to = [PowerModelsDistribution.var(pm, PMD_time_step, :q, t_idx)[c] for c in t_connections] + end + + JuMP.@constraint(pm.model, [phase in f_connections], p_fr[phase] .== 0) # The _fr and _to variables are just indicating power flow in either direction on the line. In PMD, there is a constraint that requires p_to = -p_fr + JuMP.@constraint(pm.model, [phase in t_connections], p_to[phase] .== 0) # TODO test removing the "fr" constraints here in order to reduce the # of constraints in the model + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + if Multinode_Inputs.number_of_phases == 1 + JuMP.@constraint(pm.model, [phase in f_connections], q_fr[phase] .== 0) + JuMP.@constraint(pm.model, [phase in t_connections], q_to[phase] .== 0) + else + JuMP.@constraint(pm.model, [phase in f_connections], -Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar .<= q_fr[phase] .<= Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar) + JuMP.@constraint(pm.model, [phase in t_connections], -Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar .<= q_to[phase] .<= Multinode_Inputs.external_reactive_power_support_per_phase_maximum_kvar) + end + end + end +end + + +function AddConstraintsFromLineUpgrades(pm, OutageLength_TimeSteps_Input, LineInfo, line_upgrade_options_each_line, line_upgrade_results) + + outage_timesteps = collect(1:OutageLength_TimeSteps_Input) + max_amps = Dict() + + for line in keys(line_upgrade_options_each_line) + + max_amps_temp = Dict(line => line_upgrade_results[findfirst(x -> x == line, line_upgrade_results.Line), :MaximumRatedAmps]) + merge!(max_amps, max_amps_temp) + + i = LineInfo[line]["index"] + + # Based off of code in line 470 of PMD's src>core>constraint_template + timestep = 1 # collect the network configuration information from timestep 1, which assumes that the network is not changing (fair to assume with the REopt integration) + branch = PowerModelsDistribution.ref(pm, timestep, :branch, i) + f_bus = branch["f_bus"] + t_bus = branch["t_bus"] + f_connections = branch["f_connections"] + t_connections = branch["t_connections"] + f_idx = (i, f_bus, t_bus) + t_idx = (i, t_bus, f_bus) + + for PMD_time_step in outage_timesteps + p_fr = [PowerModelsDistribution.var(pm, PMD_time_step, :p, f_idx)[c] for c in f_connections] + p_to = [PowerModelsDistribution.var(pm, PMD_time_step, :p, t_idx)[c] for c in t_connections] + + for phase in f_connections + @constraint(pm.model, p_fr[phase] <= max_amps[line] * line_upgrade_options_each_line[line]["voltage_kv"]) + @constraint(pm.model, p_fr[phase] >= -max_amps[line] * line_upgrade_options_each_line[line]["voltage_kv"]) + end + + for phase in t_connections + @constraint(pm.model, p_to[phase] <= max_amps[line] * line_upgrade_options_each_line[line]["voltage_kv"]) + @constraint(pm.model, p_to[phase] >= -max_amps[line] * line_upgrade_options_each_line[line]["voltage_kv"]) + end + end + end +end + + +function AddConstraintsFromTransformerUpgrades() + # TODO: finish this function + +end + + +function GenerateInputsForOutageSimulator(Multinode_Inputs, REopt_results) + results = REopt_results + + TimeSteps = collect(1:(8760*Multinode_Inputs.time_steps_per_hour)) + NodeList = string.(GenerateREoptNodesList(Multinode_Inputs)) + + # Define the critical loads + critical_loads_kw = Dict([]) + if Multinode_Inputs.critical_load_method == "Fraction" + for i in 1:length(NodeList) + if results[NodeList[i]]["ElectricLoad"]["annual_calculated_kwh"] > 1 + critical_loads_kw[NodeList[i]] = Multinode_Inputs.critical_load_fraction[NodeList[i]] * Multinode_Inputs.load_profiles_for_outage_sim_if_using_the_fraction_method[NodeList[i]] + else + critical_loads_kw[NodeList[i]] = zeros(8760*Multinode_Inputs.time_steps_per_hour) + end + end + elseif Multinode_Inputs.critical_load_method == "TimeSeries" + for i in 1:length(NodeList) + if results[NodeList[i]]["ElectricLoad"]["annual_calculated_kwh"] > 1 + critical_loads_kw[NodeList[i]] = Multinode_Inputs.critical_load_timeseries[NodeList[i]] + else + critical_loads_kw[NodeList[i]] = zeros(8760*Multinode_Inputs.time_steps_per_hour) + end + end + else + throw(@error("Invalid method for generating a critical load was provided")) + end + + # Initiate the dictionary with data from the first node + if "ElectricStorage" in keys(results[NodeList[1]]) + if length(results[NodeList[1]]["ElectricStorage"]["soc_series_fraction"]) > 0 + BatteryChargekwh = results[NodeList[1]]["ElectricStorage"]["soc_series_fraction"]*results[NodeList[1]]["ElectricStorage"]["size_kwh"] + Batterykw = results[NodeList[1]]["ElectricStorage"]["size_kw"] + Batterykwh = results[NodeList[1]]["ElectricStorage"]["size_kwh"] + else + BatteryChargekwh = 0*ones(length(TimeSteps)) + Batterykw = 0 + Batterykwh = 0 + end + else + BatteryChargekwh = 0*ones(length(TimeSteps)) + Batterykw = 0 + Batterykwh = 0 + end + + if "PV" in keys(results[NodeList[1]]) + if results[NodeList[1]]["PV"]["size_kw"] > 0 + PVProductionProfile_results = round.(((results[NodeList[1]]["PV"]["production_factor_series"])*results[NodeList[1]]["PV"]["size_kw"]), digits = 3) + else + PVProductionProfile_results = zeros(length(TimeSteps)) + end + else + PVProductionProfile_results = zeros(length(TimeSteps)) + end + + if "Generator" in keys(results[NodeList[1]]) + GeneratorSize_results = results[NodeList[1]]["Generator"]["size_kw"] + if NodeList[1] in keys(Multinode_Inputs.generator_fuel_gallon_available) + generator_fuel_gallon_available = Multinode_Inputs.generator_fuel_gallon_available[NodeList[1]] + else + generator_fuel_gallon_available = 0 + end + else + GeneratorSize_results = 0 + generator_fuel_gallon_available = 0 + end + + # Enter data into the dictionary + DataDictionaryForEachNode = Dict([ + (NodeList[1],Dict([ + ("loads_kw", critical_loads_kw[NodeList[1]]), + ("PVproductionprofile", PVProductionProfile_results ), + ("GeneratorSize", GeneratorSize_results), + ("Battery_charge_kwh", BatteryChargekwh), + ("Battery_kw", Batterykw), + ("Battery_kwh", Batterykwh), + ("Fuel_tank_capacity_gal", generator_fuel_gallon_available), + ("battery_roundtrip_efficiency",0.95) + ])), + ]) + + # Add additional dictionaries to the main dictionary for the additional nodes, depending on how many nodes there are + for i in 2:length(NodeList) + if "ElectricStorage" in keys(results[NodeList[i]]) + if length(results[NodeList[i]]["ElectricStorage"]["soc_series_fraction"]) > 0 + BatteryChargekwh_B = results[NodeList[i]]["ElectricStorage"]["soc_series_fraction"]*results[NodeList[i]]["ElectricStorage"]["size_kwh"] + Batterykw_B = results[NodeList[i]]["ElectricStorage"]["size_kw"] + Batterykwh_B = results[NodeList[i]]["ElectricStorage"]["size_kwh"] + else + BatteryChargekwh_B = 0*ones(length(TimeSteps)) + Batterykw_B = 0 + Batterykwh_B = 0 + end + else + BatteryChargekwh_B = 0*ones(length(TimeSteps)) + Batterykw_B = 0 + Batterykwh_B = 0 + end + if "PV" in keys(results[NodeList[i]]) + if results[NodeList[i]]["PV"]["size_kw"] > 0 + PVProductionProfile_results_B = round.(((results[NodeList[i]]["PV"]["production_factor_series"])*results[NodeList[i]]["PV"]["size_kw"]), digits = 3) + else + PVProductionProfile_results_B = zeros(length(TimeSteps)) + end + else + PVProductionProfile_results_B = zeros(length(TimeSteps)) + end + + if "Generator" in keys(results[NodeList[i]]) + GeneratorSize_results_B = results[NodeList[i]]["Generator"]["size_kw"] + if NodeList[i] in keys(Multinode_Inputs.generator_fuel_gallon_available) + generator_fuel_gallon_available = Multinode_Inputs.generator_fuel_gallon_available[NodeList[i]] + else + generator_fuel_gallon_available = 0 + end + else + GeneratorSize_results_B = 0 + generator_fuel_gallon_available = 0 + end + DictionaryToAdd = Dict([ + (NodeList[i],Dict([ + ("loads_kw", critical_loads_kw[NodeList[i]]), + ("PVproductionprofile", PVProductionProfile_results_B), + ("GeneratorSize", GeneratorSize_results_B), + ("Battery_charge_kwh", BatteryChargekwh_B), + ("Battery_kw", Batterykw_B), + ("Battery_kwh", Batterykwh_B), + ("Fuel_tank_capacity_gal", generator_fuel_gallon_available), + ("battery_roundtrip_efficiency",0.95) + ])), + ]) + merge!(DataDictionaryForEachNode, DictionaryToAdd) + end +return DataDictionaryForEachNode +end + + +function PrepareInputsForOutageSimulator(Multinode_Inputs, OutageLength_TimeSteps_Input, NumberOfOutagesToTest) + randomly_ordered_timesteps = RandomlyOrderedTimesteps() + if Multinode_Inputs.time_steps_per_hour == 1 + outage_start_timesteps = randomly_ordered_timesteps["8760"] + elseif Multinode_Inputs.time_steps_per_hour == 2 + outage_start_timesteps = randomly_ordered_timesteps["17540"] + elseif Multinode_Inputs.time_steps_per_hour == 4 + outage_start_timesteps = randomly_ordered_timesteps["35040"] + else + throw(@error("The defined time steps per hour are currently not compatible with the outage simulator")) + end + + NumberOfTimeSteps = Multinode_Inputs.time_steps_per_hour * 8760 + RunNumber_limit = NumberOfTimeSteps - (OutageLength_TimeSteps_Input+1) + outage_start_timesteps_filtered = outage_start_timesteps[outage_start_timesteps .< RunNumber_limit] + + if RunNumber_limit < NumberOfOutagesToTest + @warn "The number of possible outages to test is less than the number of outages requested by the user. $(RunNumber) will be evaluated instead of $(NumberOfOutagesToTest)." + RunNumber = RunNumber_limit + else + RunNumber = NumberOfOutagesToTest + end + + outage_start_timesteps_checked = outage_start_timesteps_filtered[1:RunNumber] + + if Multinode_Inputs.model_type == "PowerModelsDistribution" + OutageSimulator_LineFromSubstationToFacilityMeter = lowercase(Multinode_Inputs.substation_line) #substation_node*"-"*Multinode_Inputs.facilitymeter_node + end + + return OutageSimulator_LineFromSubstationToFacilityMeter, RunNumber, outage_start_timesteps_checked +end + + +function InterpretResult(TimeStepsNotSolved, TerminationStatus, SuccessfullySolved, Multinode_Inputs, x, i, m_outagesimulator, DataDictionaryForEachNode, OutageLength_TimeSteps_Input, TimeStamp, TotalTimeSteps, NodeList) + if TerminationStatus == "OPTIMAL" + SuccessfullySolved = SuccessfullySolved + 1 + outage_survival_result = 1 # a value of 1 indicates that the outage was survived + + # TODO: calculate the amount of generator fuel that remains, for example: RemainingFuel = value.(m_outagesimulator[Symbol("FuelLeft_3")]) + value.(m_outagesimulator[Symbol("FuelLeft_10")]) + + else + push!(TimeStepsNotSolved, i) + outage_survival_result = 0 # a value of 0 indicates that the outage was not survived + end + + return outage_survival_result, SuccessfullySolved, TimeStepsNotSolved +end + + +function PrepareOptimizer(pm, Multinode_Inputs) + set_optimizer(pm.model, Multinode_Inputs.optimizer) + + if string(Multinode_Inputs.optimizer) == "Xpress.Optimizer" + set_optimizer_attribute(pm.model, "MIPRELSTOP", Multinode_Inputs.optimizer_tolerance) + set_optimizer_attribute(pm.model, "OUTPUTLOG", Multinode_Inputs.log_solver_output_to_console ? 1 : 0) + elseif string(Multinode_Inputs.optimizer) == "Gurobi.Optimizer" + set_optimizer_attribute(pm.model, "MIPGap", Multinode_Inputs.optimizer_tolerance) + set_optimizer_attribute(pm.model, "OutputFlag", Multinode_Inputs.log_solver_output_to_console ? 1 : 0) + set_optimizer_attribute(pm.model, "LogToConsole", Multinode_Inputs.log_solver_output_to_console ? 1 : 0) + elseif string(Multinode_Inputs.optimizer) == "HiGHS.Optimizer" + set_optimizer_attribute(pm.model, "mip_rel_gap", Multinode_Inputs.optimizer_tolerance) + set_optimizer_attribute(pm.model, "output_flag", false) + set_optimizer_attribute(pm.model, "log_to_console", false) + else + @info "The solver's default tolerance and log settings are being used for the optimization" + end + +end + + +function DisplayResultsSummary(SuccessfullySolved, RunNumber, OutageLength_TimeSteps_Input) + print("\n --- Summary of results ---") + PercentOfOutagesSurvived = 100*(SuccessfullySolved/RunNumber) + print("\n The length of outage tested is: "*string(OutageLength_TimeSteps_Input)*" time steps") + print("\n The number of outages survived is: "*string(SuccessfullySolved)*" of "*string(RunNumber)*" runs") + print("\n Percent of outages survived: "*string(round(PercentOfOutagesSurvived, digits = 2))*" % \n") + return PercentOfOutagesSurvived +end + + +function DetermineNodesWithPV(DataDictionaryForEachNode, NodeList) + # This function determines which nodes have PV + NodesWithPV = [] + for p in NodeList + if maximum(DataDictionaryForEachNode[p]["PVproductionprofile"]) > 0 + push!(NodesWithPV, p) + end + end + return NodesWithPV +end + + +function RandomlyOrderedTimesteps() + path = joinpath(dirname(pathof(REopt))) + path = replace(path, "\\" => "/") + randomly_ordered_timesteps = JSON.parsefile(path*"/multinode/random_vectors_data.json") + return randomly_ordered_timesteps +end + + +function CreateRandomVectorOrder(filepath, vector1, vector2, vector3) + # This function saves a random ordering of vector data for the outage simulator + #= + # Use this code to create inputs into the function: + vector_8760_ordered = collect(1:8760) + vector_8760_randomly_unordered = Random.shuffle(vector_8760_ordered) + + vector_17540_ordered = collect(1:17540) + vector_17540_randomly_unordered = Random.shuffle(vector_17540_ordered) + + vector_35040_ordered = collect(1:35040) + vector_35040_randomly_unordered = Random.shuffle(vector_35040_ordered) + + CreateRandomVectorOrder(filepath, vector_8760_randomly_unordered, vector_17540_randomly_unordered, vector_35040_randomly_unordered + =# + + vector_8760_randomly_unordered = vector1 + vector_17540_randomly_unordered = vector2 + vector_35040_randomly_unordered = vector3 + + data = Dict(["8760" => vector_8760_randomly_unordered, + "17540" => vector_17540_randomly_unordered, + "35040" => vector_35040_randomly_unordered + ]) + + open(filepath*"/random_vectors_data.json", "w") do x + JSON.print(x, data) + end + + # Visualize some distributions of the data + lengths = [100,250,500,1000] + + for length in lengths + + selected_values = vector_8760_randomly_unordered[1:length] + time_of_day = zeros(length) + day_of_year = zeros(length) + for x in collect(1:length) + time_of_day[x] = selected_values[x] % 24 + day_of_year[x] = ceil(selected_values[x] / 24) + end + Plots.histogram(time_of_day, bins=range(0,24, length=25)) + Plots.xlabel!("Hour of Day") + Plots.ylabel!("Occurances") + display(Plots.title!("Time of day distribution, $(length) tests")) + Plots.histogram(day_of_year, bins=0:7:371) + Plots.xlabel!("Day of Year") + Plots.ylabel!("Occurances") + display(Plots.title!("Day of year distribution, $(length) tests")) + end +end + + diff --git a/src/multinode/multinode_results_processing.jl b/src/multinode/multinode_results_processing.jl new file mode 100644 index 000000000..ebb425574 --- /dev/null +++ b/src/multinode/multinode_results_processing.jl @@ -0,0 +1,1172 @@ +# REoptĀ®, Copyright (c) Alliance for Sustainable Energy, LLC. See also https://github.com/NREL/REopt.jl/blob/master/LICENSE. + +function CreateOutputsFolder(Multinode_Inputs, TimeStamp) + # Create a folder for the outputs if saving results + if Multinode_Inputs.generate_CSV_of_outputs == true || Multinode_Inputs.generate_results_plots == true + @info "Creating a folder for the results" + mkdir(Multinode_Inputs.folder_location*"/results_"*TimeStamp) + end + +end + + +function CalculateComputationTime(StartTime) + # Function to calculate the elapsed time between a time (input into the function) and the current time + EndTime = now() + ComputationTime_milliseconds = EndTime - StartTime + #print("The computation time in milliseconds is: $(ComputationTime_milliseconds)") + + if Dates.value(ComputationTime_milliseconds) > 1000 + ComputationTime_minutes = round(Dates.value(ComputationTime_milliseconds)/60000, digits=2) + else + ComputationTime_minutes = round(Dates.value(ComputationTime_milliseconds)/60000, digits=4) + end + + return ComputationTime_milliseconds, ComputationTime_minutes +end + + +function Results_Processing_REopt_PMD_Model(m, results, data_math_mn, REoptInputs_Combined, Multinode_Inputs, timestamp, time_results; allow_upgrades=false, line_upgrade_options_each_line ="", BAU_case=false) + + if BAU_case == true + BAU_indicator = "BAU_model_" + else + BAU_indicator = "" + end + + # Extract the PMD results + print("\n Reading the PMD results") + Start_reading_PMD_results = now() + sol_math = results["solution"] + # The PMD results are saved to the sol_eng variable + sol_eng = PowerModelsDistribution.transform_solution(sol_math, data_math_mn) + milliseconds, time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"reading_PMD_results_minutes"] = CalculateComputationTime(Start_reading_PMD_results) + + # Extract the REopt results + print("\n Reading the REopt results \n") + Start_reading_REopt_results = now() + REopt_results = reopt_results(m, REoptInputs_Combined) + print("\n Completed reading the REopt results \n") + + # Process the line upgrade results + if allow_upgrades == true && Multinode_Inputs.model_line_upgrades == true + line_upgrades = Process_Line_Upgrades(m, line_upgrade_options_each_line, Multinode_Inputs, timestamp) + else + line_upgrades = "N/A" + end + + # Generate inputs that will be used for the multinode outage simulator + if Multinode_Inputs.run_outage_simulator + print("\n Generating inputs for the outage simulator \n") + DataDictionaryForEachNodeForOutageSimulator = REopt.GenerateInputsForOutageSimulator(Multinode_Inputs, REopt_results) + print("\n Completed generating inputs for the outage simulator \n") + else + DataDictionaryForEachNodeForOutageSimulator = "N/A" + end + + if Multinode_Inputs.model_subtype == "SOCNLPUBFPowerModel" + pf_name = "Pf" + qf_name = "Qf" + else # if Multinode_Inputs.model_subtype == "LPUBFDiagPowerModel" + pf_name = "pf" + qf_name = "qf" + end + + # Compute values for each line and store line power flows in a dataframe and dictionary + DataLineFlow = Vector{Any}(zeros(7)) + DataFrame_LineFlow = DataFrame(fill(Any[],7), [:Line, :Minimum_LineFlow_ActivekW, :Maximum_LineFlow_ActivekW, :Average_LineFlow_ActivekW, :Minimum_LineFlow_ReactivekVAR, :Maximum_LineFlow_ReactivekVAR, :Average_LineFlow_ReactivekVAR ]) + PMD_Dictionary_LineFlow_Power_Series = Dict([]) + print("\n Storing the line flow data in PMD") + for line in keys(sol_eng["nw"]["1"]["line"]) # read all of the line names from the first time step + ActivePowerFlow_line_temp = [] + ReactivePowerFlow_line_temp = [] + + ActivePowerFlow_line_Phase1_temp = [] + ActivePowerFlow_line_Phase2_temp = [] + ActivePowerFlow_line_Phase3_temp = [] + ReactivePowerFlow_line_Phase1_temp = [] + ReactivePowerFlow_line_Phase2_temp = [] + ReactivePowerFlow_line_Phase3_temp = [] + + for i in 1:length(sol_eng["nw"]) + push!(ActivePowerFlow_line_temp, sum(sol_eng["nw"][string(i)]["line"][line][pf_name][Phase] for Phase in keys(sol_eng["nw"][string(i)]["line"][line][pf_name])) ) # The "for Phase in keys(..." sums the power across the phases + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + push!(ReactivePowerFlow_line_temp, sum(sol_eng["nw"][string(i)]["line"][line][qf_name][Phase] for Phase in keys(sol_eng["nw"][string(i)]["line"][line][qf_name])) ) + else + push!(ReactivePowerFlow_line_temp, "N/A") + end + end + + # Pull data from the first time step + for phase in keys(sol_eng["nw"]["1"]["line"][line][pf_name]) # TODO: confirm that "phase" here is the phase number, not just the index + if phase == 1 + for i in 1:length(sol_eng["nw"]) + push!(ActivePowerFlow_line_Phase1_temp, sol_eng["nw"][string(i)]["line"][line][pf_name][phase]) + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + push!(ReactivePowerFlow_line_Phase1_temp, sol_eng["nw"][string(i)]["line"][line][qf_name][phase]) + else + push!(ReactivePowerFlow_line_Phase1_temp, "N/A") + end + end + elseif phase == 2 + for i in 1:length(sol_eng["nw"]) + push!(ActivePowerFlow_line_Phase2_temp, sol_eng["nw"][string(i)]["line"][line][pf_name][phase]) + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + push!(ReactivePowerFlow_line_Phase2_temp, sol_eng["nw"][string(i)]["line"][line][qf_name][phase]) + else + push!(ReactivePowerFlow_line_Phase2_temp, "N/A") + end + end + elseif phase ==3 + for i in 1:length(sol_eng["nw"]) + push!(ActivePowerFlow_line_Phase3_temp, sol_eng["nw"][string(i)]["line"][line][pf_name][phase]) + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + push!(ReactivePowerFlow_line_Phase3_temp, sol_eng["nw"][string(i)]["line"][line][qf_name][phase]) + else + push!(ReactivePowerFlow_line_Phase3_temp, "N/A") + end + end + else + throw(@error("The phase number, $(phase), is invalid")) + end + end + + DataLineFlow[1] = round(minimum(ActivePowerFlow_line_temp[:]), digits = 5) + DataLineFlow[2] = round(maximum(ActivePowerFlow_line_temp[:]), digits = 5) + DataLineFlow[3] = round(mean(ActivePowerFlow_line_temp[:]), digits = 5) + + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + DataLineFlow[4] = round(minimum(ReactivePowerFlow_line_temp[:]), digits = 5) + DataLineFlow[5] = round(maximum(ReactivePowerFlow_line_temp[:]), digits = 5) + DataLineFlow[6] = round(mean(ReactivePowerFlow_line_temp[:]), digits = 5) + else + DataLineFlow[4] = "N/A" + DataLineFlow[5] = "N/A" + DataLineFlow[6] = "N/A" + end + + DataFrame_LineFlow_temp = DataFrame([("Line "*string(line)) DataLineFlow[1] DataLineFlow[2] DataLineFlow[3] DataLineFlow[4] DataLineFlow[5] DataLineFlow[6]], [:Line, :Minimum_LineFlow_ActivekW, :Maximum_LineFlow_ActivekW, :Average_LineFlow_ActivekW, :Minimum_LineFlow_ReactivekVAR, :Maximum_LineFlow_ReactivekVAR, :Average_LineFlow_ReactivekVAR]) + DataFrame_LineFlow = append!(DataFrame_LineFlow,DataFrame_LineFlow_temp) + + # Also create a dictionary of the line power flows + PMD_Dictionary_LineFlow_Power_Series_temp = Dict([(line, Dict([ + ("ActiveLineFlow", ActivePowerFlow_line_temp), + ("ReactiveLineFlow", ReactivePowerFlow_line_temp), + ("Phase1_ActiveLineFlow", ActivePowerFlow_line_Phase1_temp), + ("Phase2_ActiveLineFlow", ActivePowerFlow_line_Phase2_temp), + ("Phase3_ActiveLineFlow", ActivePowerFlow_line_Phase3_temp), + ("Phase1_ReactiveLineFlow", ReactivePowerFlow_line_Phase1_temp), + ("Phase2_ReactiveLineFlow", ReactivePowerFlow_line_Phase2_temp), + ("Phase3_ReactiveLineFlow", ReactivePowerFlow_line_Phase3_temp) + ])) + ]) + merge!(PMD_Dictionary_LineFlow_Power_Series, PMD_Dictionary_LineFlow_Power_Series_temp) + + end + + print("\n Completed storing the line flow data in PMD") + + # Record the time for post-processing + milliseconds, time_results["Step $(length(keys(time_results))+1): "*BAU_indicator*"reading_REopt_results_minutes"] = CalculateComputationTime(Start_reading_REopt_results) + + return REopt_results, sol_eng, DataDictionaryForEachNodeForOutageSimulator, PMD_Dictionary_LineFlow_Power_Series, DataFrame_LineFlow, line_upgrades +end + + +function Process_Line_Upgrades(m, line_upgrade_options_each_line, Multinode_Inputs, TimeStamp) + + line_upgrade_results = DataFrame(fill(Any[], 4), [:Line, :Upgraded, :MaximumRatedAmps, :UpgradeCost]) + for line in keys(line_upgrade_options_each_line) + number_of_entries = length(line_upgrade_options_each_line[line]["max_amperage"]) + dv = "Bin"*line + maximum_amps = sum(value.(m[Symbol(dv)][i])*line_upgrade_options_each_line[line]["max_amperage"][i] for i in 1:number_of_entries) + #rmatrix = sum(value.(m[Symbol(dv)][i])*line_upgrades_each_line[line]["rmatrix"][i] for i in 1:number_of_entries) + #xmatrix = sum(value.(m[Symbol(dv)][i])*line_upgrades_each_line[line]["xmatrix"][i] for i in 1:number_of_entries) + upgraded_cost = round(value.(m[Symbol("line_cost")][line]), digits = 0) + + if Int(round(value.(m[Symbol(dv)][1]), digits=0)) != 1 + upgraded = "Yes" + else + upgraded = "No" + end + + line_upgrade_results_temp = DataFrame([line upgraded maximum_amps upgraded_cost ], [:Line, :Upgraded, :MaximumRatedAmps, :UpgradeCost]) + line_upgrade_results = append!(line_upgrade_results, line_upgrade_results_temp) + end + + # Save line upgrade results to a csv + if Multinode_Inputs.generate_CSV_of_outputs + CSV.write(Multinode_Inputs.folder_location*"/results_"*TimeStamp*"/Results_Line_Upgrade_Summary_"*TimeStamp*".csv", line_upgrade_results) + end + + return line_upgrade_results +end + + +function Results_Compilation(model, results, PMD_Results, Outage_Results, Multinode_Inputs, DataFrame_LineFlow_Summary, PMD_Dictionary_LineFlow_Power_Series, TimeStamp, start_time_entire_model; all_line_powerflow_results="", simple_powerflow_model_results="", bau_model = "", system_results_BAU = "", line_upgrade_results = "", transformer_upgrade_results = "", outage_simulator_time = "") + + @info "Compiling the results" + + InputsList = Multinode_Inputs.REopt_inputs_list + + # Compute system-level outputs + system_results = Dict{String, Any}() # Float64}() + + # Initialize the results variables + total_lifecycle_capital_cost = 0 # includes replacements and incentives + total_initial_capital_costs = 0 + total_initial_capital_costs_after_incentives = 0 + total_lifecycle_storage_capital_costs = 0 + line_upgrade_costs = 0 + total_PV_size_kw = 0 + total_PV_energy_produced_minus_curtailment_first_year = 0 + total_electric_storage_size_kw = 0 + total_electric_storage_size_kwh = 0 + total_generator_size_kw = 0 + + for n in InputsList + node_temp = n["Site"]["node"] + + total_lifecycle_capital_cost = total_lifecycle_capital_cost + results[node_temp]["Financial"]["lifecycle_capital_costs"] + total_initial_capital_costs = total_initial_capital_costs + results[node_temp]["Financial"]["initial_capital_costs"] + total_initial_capital_costs_after_incentives = total_initial_capital_costs_after_incentives + results[node_temp]["Financial"]["initial_capital_costs_after_incentives"] + total_lifecycle_storage_capital_costs = total_lifecycle_storage_capital_costs + results[node_temp]["Financial"]["lifecycle_storage_capital_costs"] + + if "PV" in keys(results[node_temp]) + total_PV_size_kw = total_PV_size_kw + results[node_temp]["PV"]["size_kw"] + total_PV_energy_produced_minus_curtailment_first_year = total_PV_energy_produced_minus_curtailment_first_year + + (results[node_temp]["PV"]["year_one_energy_produced_kwh"] - sum(results[node_temp]["PV"]["electric_curtailed_series_kw"]/Multinode_Inputs.time_steps_per_hour)) + end + if "ElectricStorage" in keys(results[node_temp]) + total_electric_storage_size_kw = total_electric_storage_size_kw + results[node_temp]["ElectricStorage"]["size_kw"] + total_electric_storage_size_kwh = total_electric_storage_size_kwh + results[node_temp]["ElectricStorage"]["size_kwh"] + end + if "Generator" in keys(results[node_temp]) + total_generator_size_kw = total_generator_size_kw + results[node_temp]["Generator"]["size_kw"] + end + end + + if Multinode_Inputs.model_line_upgrades + line_upgrade_costs = value.(model[:total_line_upgrade_cost]) + else + line_upgrade_costs = 0 + end + + system_results["total_lifecycle_cost"] = value.(model[Symbol("Costs")]) + system_results["total_lifecycle_capital_cost"] = total_lifecycle_capital_cost + line_upgrade_costs + system_results["total_initial_capital_costs"] = total_initial_capital_costs + line_upgrade_costs + system_results["total_initial_capital_costs_after_incentives"] = total_initial_capital_costs_after_incentives + line_upgrade_costs # no incentives are modeled for line upgrades + system_results["total_lifecycle_storage_capital_cost"] = total_lifecycle_storage_capital_costs + system_results["total_line_upgrade_cost"] = line_upgrade_costs + system_results["total_PV_size_kw"] = total_PV_size_kw + system_results["total_PV_energy_produced_minus_curtailment_first_year"] = total_PV_energy_produced_minus_curtailment_first_year + system_results["total_electric_storage_size_kw"] = total_electric_storage_size_kw + system_results["total_electric_storage_size_kwh"] = total_electric_storage_size_kwh + system_results["total_generator_size_kw"] = total_generator_size_kw + + if (system_results_BAU != "") && (system_results_BAU != "none") + system_results["net_present_value"] = system_results_BAU["total_lifecycle_cost"] - value.(model[Symbol("Costs")]) + else + system_results["net_present_value"] = "Not calculated" + end + + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + DataFrame_BusVoltages_Summary, per_unit_voltages, minimum_voltage, average_voltage, maximum_voltage = VoltageResultsSummary(PMD_Results) + end + + # Generate a csv file with outputs from the model if the "generate_CSV_of_outputs" field is set to true + if system_results_BAU != "" + if Multinode_Inputs.generate_CSV_of_outputs == true + @info "Generating CSV of outputs" + DataLabels = [] + Data = [] + + LineFromSubstationToFacilityMeter = Multinode_Inputs.substation_line # "line"*Multinode_Inputs.substation_node * "_" * Multinode_Inputs.facilitymeter_node + + if Multinode_Inputs.model_type == "PowerModelsDistribution" + + PMD_MaximumPowerOnsubstation_line_ActivePower = (round(maximum(PMD_Dictionary_LineFlow_Power_Series[lowercase(LineFromSubstationToFacilityMeter)]["ActiveLineFlow"]), digits = 1)) + PMD_MinimumPowerOnsubstation_line_ActivePower = (round(minimum(PMD_Dictionary_LineFlow_Power_Series[lowercase(LineFromSubstationToFacilityMeter)]["ActiveLineFlow"]), digits = 1)) + PMD_AveragePowerOnsubstation_line_ActivePower = (round(mean(PMD_Dictionary_LineFlow_Power_Series[lowercase(LineFromSubstationToFacilityMeter)]["ActiveLineFlow"]), digits = 1)) + + warning_PMD_MaximumPowerOnsubstation_line_ReactivePower = "" + warning_PMD_MinimumPowerOnsubstation_line_ReactivePower = "" + + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + PMD_MaximumPowerOnsubstation_line_ReactivePower = (round(maximum(PMD_Dictionary_LineFlow_Power_Series[lowercase(LineFromSubstationToFacilityMeter)]["ReactiveLineFlow"]), digits = 6)) + PMD_MinimumPowerOnsubstation_line_ReactivePower = (round(minimum(PMD_Dictionary_LineFlow_Power_Series[lowercase(LineFromSubstationToFacilityMeter)]["ReactiveLineFlow"]), digits = 6)) + PMD_AveragePowerOnsubstation_line_ReactivePower = (round(mean(PMD_Dictionary_LineFlow_Power_Series[lowercase(LineFromSubstationToFacilityMeter)]["ReactiveLineFlow"]), digits = 6)) + + # Generate warnings if the reactive power support from the substation is larger than 1 kW or smaller than -1 kW, because this is power that is not generated by REopt nodes (which is more relevant if the system is off-grid or the reactive power support occurs during a grid outage) + if PMD_MaximumPowerOnsubstation_line_ReactivePower >= 1 + warning_PMD_MinimumPowerOnsubstation_line_ReactivePower = "Warning: greater than 1kW (multi-node does not model meeting reactive power demand)" + @warn("The maximum reactive power support from the substation is greater than 1 kW") + end + + if PMD_MinimumPowerOnsubstation_line_ReactivePower <= -1 + warning_PMD_MinimumPowerOnsubstation_line_ReactivePower = "Warning: less than -1kW (multi-node does not model meeting reactive power demand)" + @warn("The maximum reactive power support from the substation is less than -1 kW") + end + else + PMD_MaximumPowerOnsubstation_line_ReactivePower = "N/A" + PMD_MinimumPowerOnsubstation_line_ReactivePower = "N/A" + PMD_AveragePowerOnsubstation_line_ReactivePower = "N/A" + end + end + + # Add system-level results + ComputationTime_EntireModel_Milliseconds, ComputationTime_EntireModel_Minutes = CalculateComputationTime(start_time_entire_model) + + push!(DataLabels, "----Optimization Parameters----") + push!(Data,"") + push!(DataLabels, " Number of Variables") + push!(Data, length(all_variables(model))) + push!(DataLabels, " Computation time, including the BAU model and the outage simulator if used (minutes)") + push!(Data, round(ComputationTime_EntireModel_Minutes, digits=2)) + push!(DataLabels, " Model solve time (minutes)" ) + push!(Data, round(JuMP.solve_time(model)/60, digits = 2)) + + if Multinode_Inputs.run_BAU_case + push!(DataLabels, " BAU model solve time (minutes)" ) + push!(Data, round(JuMP.solve_time(bau_model)/60, digits = 2)) + end + if Multinode_Inputs.run_outage_simulator + push!(DataLabels, " Total outage simulation time (minutes)") + push!(Data, outage_simulator_time) + end + + push!(DataLabels, "----Model Information----") + push!(Data,"") + push!(DataLabels," Number of Phases (input)") + push!(Data, Multinode_Inputs.number_of_phases) + push!(DataLabels," Multinode Type (input)") + push!(Data, Multinode_Inputs.multinode_type) + push!(DataLabels," Model Type (input)") + push!(Data, Multinode_Inputs.model_type) + push!(DataLabels," Model Subtype (input)") + push!(Data, Multinode_Inputs.model_subtype) + + push!(DataLabels, "----Model Diagnostics----") + push!(Data,"") + if Multinode_Inputs.allow_bus_voltage_violations + push!(DataLabels," Number of Bus Voltage Violations") + push!(Data, sum(value.(model[Symbol("binBusVoltageViolation")]).data)) + else + push!(DataLabels," No diagnostics were run") + push!(Data, "") + end + + push!(DataLabels, "----System Results----") + push!(Data,"") + push!(DataLabels," Total Lifecycle Cost (LCC)") + push!(Data, round(system_results["total_lifecycle_cost"], digits=0)) + push!(DataLabels," Total Lifecycle Capital Cost (LCCC)") + push!(Data, round(system_results["total_lifecycle_capital_cost"], digits=0)) + + if Multinode_Inputs.run_BAU_case + push!(DataLabels," Net Present Value (NPV)") + push!(Data, round(system_results["net_present_value"], digits=0)) + end + + push!(DataLabels," Total initial capital costs") + push!(Data, round(system_results["total_initial_capital_costs"],digits=0)) + push!(DataLabels," Total initial capital costs after incentives") + push!(Data, round(system_results["total_initial_capital_costs_after_incentives"],digits=0)) + + push!(DataLabels," Total lifecycle storage capital cost") + push!(Data, round(system_results["total_lifecycle_storage_capital_cost"],digits=0)) + push!(DataLabels," Total line upgrade costs") + push!(Data, round(system_results["total_line_upgrade_cost"],digits=0)) + + push!(DataLabels," Total PV size kw") + push!(Data, round(system_results["total_PV_size_kw"],digits=0)) + + push!(DataLabels," Total PV energy produced minus curtailment first year") + push!(Data, round(system_results["total_PV_energy_produced_minus_curtailment_first_year"],digits=0)) + push!(DataLabels," Total electric storage size kw") + push!(Data, round(system_results["total_electric_storage_size_kw"],digits=0)) + + push!(DataLabels," Total electric storage size kwh") + push!(Data, round(system_results["total_electric_storage_size_kwh"],digits=0)) + push!(DataLabels," Total generator size kw") + push!(Data, round(system_results["total_generator_size_kw"],digits=0)) + + push!(DataLabels, "----Power Flow Model Results----") + push!(Data, "") + + push!(DataLabels," Total Number of PMD timesteps, based on the user input") + push!(Data, length(PMD_Results["nw"]) ) + + if Multinode_Inputs.number_of_phases == 1 + push!(DataLabels," Minimum per unit bus voltage") + push!(Data, minimum_voltage) + push!(DataLabels," Average per unit bus voltage") + push!(Data, average_voltage) + push!(DataLabels," Maximum per unit bus voltage") + push!(Data, maximum_voltage) + else + push!(DataLabels," Voltage post processing does not currently work for three-phase systems") + push!(Data, "") + end + + push!(DataLabels," From PMD: Maximum power flow on substation line, Active Power kW") + push!(Data, PMD_MaximumPowerOnsubstation_line_ActivePower) + push!(DataLabels," From PMD: Minimum power flow on substation line, Active Power kW") + push!(Data, PMD_MinimumPowerOnsubstation_line_ActivePower) + push!(DataLabels," From PMD: Average power flow on substation line, Active Power kW") + push!(Data, PMD_AveragePowerOnsubstation_line_ActivePower) + + push!(DataLabels," From PMD: Maximum power flow on substation line, Reactive Power kVAR") + push!(Data, string(PMD_MaximumPowerOnsubstation_line_ReactivePower) * warning_PMD_MaximumPowerOnsubstation_line_ReactivePower) + push!(DataLabels," From PMD: Minimum power flow on substation line, Reactive Power kVAR") + push!(Data, string(PMD_MinimumPowerOnsubstation_line_ReactivePower) * warning_PMD_MinimumPowerOnsubstation_line_ReactivePower) + push!(DataLabels," From PMD: Average power flow on substation line, Reactive Power kVAR") + push!(Data, PMD_AveragePowerOnsubstation_line_ReactivePower) + + if Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + push!(DataLabels," From Simple Powerflow Model: Maximum power flow on substation line, Active Power kW") + push!(Data, round(maximum(simple_powerflow_model_results["lines"][lowercase(LineFromSubstationToFacilityMeter)]["line_power_flow_series"]),digits=0) ) + push!(DataLabels," From Simple Powerflow Model: Minimum power flow on substation line, Active Power kW") + push!(Data, round(minimum(simple_powerflow_model_results["lines"][lowercase(LineFromSubstationToFacilityMeter)]["line_power_flow_series"]),digits=0)) + push!(DataLabels," From Simple Powerflow Model: Average power flow on substation line, Active Power kW") + push!(Data, round(mean(simple_powerflow_model_results["lines"][lowercase(LineFromSubstationToFacilityMeter)]["line_power_flow_series"]),digits=0)) + end + + # Add the multinode outage results to the dataframe + push!(DataLabels, "----Multinode Outage Simulator Results----") + push!(Data, "") + if Multinode_Inputs.run_outage_simulator == true + push!(DataLabels, " Allowed dropped load?") + push!(Data, Multinode_Inputs.allow_dropped_load) + for i in 1:length(Multinode_Inputs.length_of_simulated_outages_time_steps) + OutageLength = Multinode_Inputs.length_of_simulated_outages_time_steps[i] + push!(DataLabels, " --Outage Length: $(OutageLength) time steps--") + push!(Data, "") + push!(DataLabels, " Percent of Outages Survived") + push!(Data, string(Outage_Results["$(OutageLength)_timesteps_outage"]["PercentSurvived"])*" %") + push!(DataLabels, " Total Number of Outages Tested") + push!(Data, Outage_Results["$(OutageLength)_timesteps_outage"]["NumberOfRuns"]) + push!(DataLabels, " Total Number of Outages Survived") + push!(Data, Outage_Results["$(OutageLength)_timesteps_outage"]["NumberOfOutagesSurvived"]) + if Multinode_Inputs.allow_dropped_load + push!(DataLabels, " Average Load Met Fraction") + push!(Data, round(Outage_Results["$(OutageLength)_timesteps_outage"]["dropped_load_results"]["average_load_met_fraction"], digits=5)) + end + end + else + push!(DataLabels,"Outage modeling was not run") + push!(Data,"") + end + + # Add results for each REopt node + push!(DataLabels, "----REopt Results for Each Node----") + push!(Data, "") + + for n in InputsList + NodeNumberTempB = n["Site"]["node"] + InputsDictionary = Dict[] # reset the inputs dictionary to an empty dictionary before redefining + InputsDictionary = n + push!(DataLabels, "----Node $(NodeNumberTempB)----") + push!(Data, "") + + if "PV" in keys(results[NodeNumberTempB]) + push!(DataLabels, " PV Size (kw)") + push!(Data, results[NodeNumberTempB]["PV"]["size_kw"]) + push!(DataLabels, " Min and Max PV sizing input, kW") + push!(Data, string(InputsDictionary["PV"]["min_kw"])*" and "*string(InputsDictionary["PV"]["max_kw"])) + + push!(DataLabels, " Max PV Power Curtailed: ") + push!(Data, round(maximum(results[NodeNumberTempB]["PV"]["electric_curtailed_series_kw"]), digits =2)) + push!(DataLabels, " Max PV Power Exported to Grid from node: ") + push!(Data,round(maximum(results[NodeNumberTempB]["PV"]["electric_to_grid_series_kw"]), digits =2)) + else + push!(DataLabels, " PV") + push!(Data, " None") + end + + if "Generator" in keys(results[NodeNumberTempB]) + push!(DataLabels, " Generator (kw)") + push!(Data, round(results[NodeNumberTempB]["Generator"]["size_kw"], digits =2)) + + push!(DataLabels, " Maximum generator power to load (kW): ") + push!(Data, round(maximum(results[NodeNumberTempB]["Generator"]["electric_to_load_series_kw"].data), digits =2)) + push!(DataLabels, " Average generator power to load (kW): ") + push!(Data, round(mean(results[NodeNumberTempB]["Generator"]["electric_to_load_series_kw"].data), digits =2)) + + push!(DataLabels, " Maximum generator power to grid (kW): ") + push!(Data, round(maximum(results[NodeNumberTempB]["Generator"]["electric_to_grid_series_kw"].data), digits =2)) + push!(DataLabels, " Minimum generator power to grid (kW): ") + push!(Data, round(minimum(results[NodeNumberTempB]["Generator"]["electric_to_grid_series_kw"].data), digits =2)) + + push!(DataLabels, " Average generator power to grid (kW): ") + push!(Data, round(mean(results[NodeNumberTempB]["Generator"]["electric_to_grid_series_kw"].data), digits =2)) + else + push!(DataLabels, " Generator") + push!(Data, " None") + end + if "ElectricStorage" in keys(results[NodeNumberTempB]) + if results[NodeNumberTempB]["ElectricStorage"]["size_kw"] > 0 + push!(DataLabels, " Battery Power (kW)") + push!(Data, round(results[NodeNumberTempB]["ElectricStorage"]["size_kw"], digits =2)) + push!(DataLabels, " Battery Capacity (kWh)") + push!(Data, round(results[NodeNumberTempB]["ElectricStorage"]["size_kwh"], digits =2)) + + push!(DataLabels, " Average Battery SOC (fraction): ") + push!(Data, round(mean(results[NodeNumberTempB]["ElectricStorage"]["soc_series_fraction"]), digits =2)) + push!(DataLabels, " Minimum Battery SOC (fraction): ") + push!(Data, round(minimum(results[NodeNumberTempB]["ElectricStorage"]["soc_series_fraction"]), digits =2)) + + push!(DataLabels, " Average battery to load (kW): ") + push!(Data, round(mean(results[NodeNumberTempB]["ElectricStorage"]["storage_to_load_series_kw"]), digits =2)) + push!(DataLabels, " Maximum battery to load (kW): ") + push!(Data, round(maximum(results[NodeNumberTempB]["ElectricStorage"]["storage_to_load_series_kw"]), digits =2)) + + push!(DataLabels, " Average battery to grid (kW): ") + push!(Data, round(mean(results[NodeNumberTempB]["ElectricStorage"]["storage_to_grid_series_kw"]), digits =2)) + push!(DataLabels, " Maximum battery to grid (kW): ") + push!(Data, round(maximum(results[NodeNumberTempB]["ElectricStorage"]["storage_to_grid_series_kw"]), digits =2)) + else + push!(DataLabels, " Battery") + push!(Data, " None") + end + else + push!(DataLabels, " Battery") + push!(Data, " None") + end + end + + # Save the results summary dataframe as a csv document + dataframe_results = DataFrame(Labels = DataLabels, Data = Data) + CSV.write(Multinode_Inputs.folder_location*"/results_"*TimeStamp*"/Results_Summary_"*TimeStamp*".csv", dataframe_results) + + # Save the Line Flow summary to a different csv + CSV.write(Multinode_Inputs.folder_location*"/results_"*TimeStamp*"/PMD_Results_Line_Powerflow_Summary_"*TimeStamp*".csv", DataFrame_LineFlow_Summary) + + # Save the bus voltage summary to a different csv + if Multinode_Inputs.model_subtype != "NFAUPowerModel" + CSV.write(Multinode_Inputs.folder_location*"/results_"*TimeStamp*"/PMD_Results_Bus_Voltages_Summary_"*TimeStamp*".csv", DataFrame_BusVoltages_Summary) + end + + # Save the transformer upgrade results to a csv + if Multinode_Inputs.model_transformer_upgrades + CSV.write(Multinode_Inputs.folder_location*"/results_"*TimeStamp*"/Results_Transformer_Upgrade_Summary_"*TimeStamp*".csv", dataframe_transformer_upgrade_summary) + end + + # Generate CSV summarizing the line power flow for each line + line_powerflow_data = DataFrame() + + line_powerflow_data[!,"REopt_time_steps"] = Multinode_Inputs.PMD_time_steps # Note: The PMD_time_steps input is expressed in REopt time steps + line_powerflow_data[!,"PMD_time_steps"] = collect(1:length(Multinode_Inputs.PMD_time_steps)) + + for line_data in keys(PMD_Dictionary_LineFlow_Power_Series) + for data_subtype in keys(PMD_Dictionary_LineFlow_Power_Series[line_data]) + if (data_subtype == "ActiveLineFlow") || (data_subtype == "ReactiveLineFlow") + OptionalNameAddition = "CombinedPhases_" + else + OptionalNameAddition = "" + end + line_phase_name = line_data*"_"*OptionalNameAddition*data_subtype + + if length(PMD_Dictionary_LineFlow_Power_Series[line_data][data_subtype]) > 0 + line_powerflow_data[!,line_phase_name] = PMD_Dictionary_LineFlow_Power_Series[line_data][data_subtype] + else + line_powerflow_data[!,line_phase_name] = zeros(length(Multinode_Inputs.PMD_time_steps)) + end + + end + end + + line_powerflow_data = line_powerflow_data[:,sortperm(names(line_powerflow_data))] # Sort the dataframe by the header title + + CSV.write(Multinode_Inputs.folder_location*"/results_"*TimeStamp*"/PMD_Results_Line_Powerflow_Data_"*TimeStamp*".csv", line_powerflow_data) + + end + + end + return system_results +end + + +function combine_PMD_and_simple_powerflow_results(Multinode_Inputs, m, data_eng, PMD_Dictionary_LineFlow_Power_Series, simple_powerflow_model_results) + # This function combines the powerflow results from the PMD model and the simple powerflow model + phases_for_each_line = create_dictionary_of_phases_for_each_line(data_eng) + simplified_powerflow_model_timesteps, REoptTimeSteps, time_steps_without_PMD, time_steps_with_PMD = determine_timestep_information(Multinode_Inputs, m, data_eng, phases_for_each_line) + + lines = collect(keys(data_eng["line"])) + + all_line_powerflows = Dict([]) + + for line in lines + + ActivePowerFlow_line_temp = [] + ReactivePowerFlow_line_temp = [] + + ActivePowerFlow_line_Phase1_temp = [] + ActivePowerFlow_line_Phase2_temp = [] + ActivePowerFlow_line_Phase3_temp = [] + ReactivePowerFlow_line_Phase1_temp = [] + ReactivePowerFlow_line_Phase2_temp = [] + ReactivePowerFlow_line_Phase3_temp = [] + power_flow_model_at_timesteps = [] + + for timestep in collect(1:Int(Multinode_Inputs.time_steps_per_hour * 8760)) + + if timestep in time_steps_with_PMD + + timestep_in_PMD_model = findall(x->x== timestep, time_steps_with_PMD)[1] + + push!(ActivePowerFlow_line_temp, PMD_Dictionary_LineFlow_Power_Series[line]["ActiveLineFlow"][timestep_in_PMD_model]) + push!(ReactivePowerFlow_line_temp, PMD_Dictionary_LineFlow_Power_Series[line]["ReactiveLineFlow"][timestep_in_PMD_model]) + + (length(PMD_Dictionary_LineFlow_Power_Series[line]["Phase1_ActiveLineFlow"]) > 0) ? push!(ActivePowerFlow_line_Phase1_temp, PMD_Dictionary_LineFlow_Power_Series[line]["Phase1_ActiveLineFlow"][timestep_in_PMD_model]) : push!(ActivePowerFlow_line_Phase1_temp,"N/A") + (length(PMD_Dictionary_LineFlow_Power_Series[line]["Phase2_ActiveLineFlow"]) > 0) ? push!(ActivePowerFlow_line_Phase2_temp, PMD_Dictionary_LineFlow_Power_Series[line]["Phase2_ActiveLineFlow"][timestep_in_PMD_model]) : push!(ActivePowerFlow_line_Phase2_temp,"N/A") + (length(PMD_Dictionary_LineFlow_Power_Series[line]["Phase3_ActiveLineFlow"]) > 0) ? push!(ActivePowerFlow_line_Phase3_temp, PMD_Dictionary_LineFlow_Power_Series[line]["Phase3_ActiveLineFlow"][timestep_in_PMD_model]) : push!(ActivePowerFlow_line_Phase3_temp,"N/A") + (length(PMD_Dictionary_LineFlow_Power_Series[line]["Phase1_ReactiveLineFlow"]) > 0) ? push!(ReactivePowerFlow_line_Phase1_temp, PMD_Dictionary_LineFlow_Power_Series[line]["Phase1_ReactiveLineFlow"][timestep_in_PMD_model]) : push!(ReactivePowerFlow_line_Phase1_temp,"N/A") + (length(PMD_Dictionary_LineFlow_Power_Series[line]["Phase2_ReactiveLineFlow"]) > 0) ? push!(ReactivePowerFlow_line_Phase2_temp, PMD_Dictionary_LineFlow_Power_Series[line]["Phase2_ReactiveLineFlow"][timestep_in_PMD_model]) : push!(ReactivePowerFlow_line_Phase2_temp,"N/A") + (length(PMD_Dictionary_LineFlow_Power_Series[line]["Phase3_ReactiveLineFlow"]) > 0) ? push!(ReactivePowerFlow_line_Phase3_temp, PMD_Dictionary_LineFlow_Power_Series[line]["Phase3_ReactiveLineFlow"][timestep_in_PMD_model]) : push!(ReactivePowerFlow_line_Phase3_temp,"N/A") + + push!(power_flow_model_at_timesteps, "PMD") + + elseif (timestep in time_steps_without_PMD) && (Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD) + timestep_in_simple_powerflow_model = findall(x->x== timestep, time_steps_without_PMD)[1] + push!(ActivePowerFlow_line_temp, simple_powerflow_model_results["lines"][line]["line_power_flow_series"][timestep_in_simple_powerflow_model]) + push!(ReactivePowerFlow_line_temp, "No reactive power in the simple powerflow model") + + push!(ActivePowerFlow_line_Phase1_temp, "To do: add individual phase reporting for the simple powerflow model") + push!(ActivePowerFlow_line_Phase2_temp, "To do: add individual phase reporting for the simple powerflow model") + push!(ActivePowerFlow_line_Phase3_temp, "To do: add individual phase reporting for the simple powerflow model") + push!(ReactivePowerFlow_line_Phase1_temp, "No reactive power in the simple powerflow model") + push!(ReactivePowerFlow_line_Phase2_temp, "No reactive power in the simple powerflow model") + push!(ReactivePowerFlow_line_Phase3_temp, "No reactive power in the simple powerflow model") + + push!(power_flow_model_at_timesteps, "simplified_powerflow_model") + else + push!(ActivePowerFlow_line_temp, "No powerflow model at this time step") + push!(ReactivePowerFlow_line_temp, "No powerflow model at this time step") + + push!(ActivePowerFlow_line_Phase1_temp, "No powerflow model at this time step") + push!(ActivePowerFlow_line_Phase2_temp, "No powerflow model at this time step") + push!(ActivePowerFlow_line_Phase3_temp, "No powerflow model at this time step") + push!(ReactivePowerFlow_line_Phase1_temp, "No powerflow model at this time step") + push!(ReactivePowerFlow_line_Phase2_temp, "No powerflow model at this time step") + push!(ReactivePowerFlow_line_Phase3_temp, "No powerflow model at this time step") + + push!(power_flow_model_at_timesteps, "no powerflow model") + end + end + + if Int(length(ActivePowerFlow_line_temp)) != Int(Multinode_Inputs.time_steps_per_hour * 8760) + throw(@error("Error in processing the powerflow results")) + end + + all_line_powerflows_temp = Dict([(line, Dict([ + ("ActiveLineFlow", ActivePowerFlow_line_temp), + ("ReactiveLineFlow", ReactivePowerFlow_line_temp), + ("Phase1_ActiveLineFlow", ActivePowerFlow_line_Phase1_temp), + ("Phase2_ActiveLineFlow", ActivePowerFlow_line_Phase2_temp), + ("Phase3_ActiveLineFlow", ActivePowerFlow_line_Phase3_temp), + ("Phase1_ReactiveLineFlow", ReactivePowerFlow_line_Phase1_temp), + ("Phase2_ReactiveLineFlow", ReactivePowerFlow_line_Phase2_temp), + ("Phase3_ReactiveLineFlow", ReactivePowerFlow_line_Phase3_temp), + ("power_flow_model_at_timesteps", power_flow_model_at_timesteps) + ])) + ]) + + merge!(all_line_powerflows, all_line_powerflows_temp) + + end + + return all_line_powerflows +end + + +function determine_timestep_information(Multinode_Inputs, m, data_eng, phases_for_each_line) + + if Multinode_Inputs.apply_simple_powerflow_model_to_timesteps_that_do_not_use_PMD + line_to_use_to_collect_timesteps = collect(keys(data_eng["line"]))[1] + phase_to_use_to_collect_timesteps = phases_for_each_line[line_to_use_to_collect_timesteps][1] + simplified_powerflow_model_timesteps = collect(1:length(value.(m[:dvPline][line_to_use_to_collect_timesteps, phase_to_use_to_collect_timesteps, :]))) # the phase 1 might not always work # pull the total number of timesteps from the first line in the simplified powerflow model + else + simplified_powerflow_model_timesteps = "the simplified powerflow model was not used" + end + + REoptTimeSteps = collect(1:Int(8760* Multinode_Inputs.time_steps_per_hour)) + time_steps_without_PMD = setdiff(REoptTimeSteps, Multinode_Inputs.PMD_time_steps) + time_steps_with_PMD = Multinode_Inputs.PMD_time_steps + + return simplified_powerflow_model_timesteps, REoptTimeSteps, time_steps_without_PMD, time_steps_with_PMD +end + + +function process_simple_powerflow_results(Multinode_Inputs, m, data_eng, connections, connections_upstream, connections_downstream) + # Process the results from the simple powerflow model, which is applied to the time steps that the PMD model isn't applied to + + phases_for_each_line = create_dictionary_of_phases_for_each_line(data_eng) + phases_for_each_bus = create_dictionary_of_phases_for_each_bus(data_eng) + + simplified_powerflow_model_timesteps, REoptTimeSteps, time_steps_without_PMD, time_steps_with_PMD = determine_timestep_information(Multinode_Inputs, m, data_eng, phases_for_each_line) + + if length(time_steps_without_PMD) != length(simplified_powerflow_model_timesteps) + throw(@error("The lengths of the time step arrays should be the same. This indicates that there is an issue with how the simple powerflow model and/or PMD model was formulated.")) + end + + timesteps = collect(1:length(time_steps_without_PMD)) # axes(m[:dvPline],3) + + simple_powerflow_line_results = Dict() + lines = collect(keys(data_eng["line"])) + for line in lines + #line_power_flow_series = sum(value.(m[:dvPline][line,phase,:].data) for phase in phases_for_each_line[line]) + + line_power_flow_series = zeros(length(time_steps_without_PMD)) + + for phase in phases_for_each_line[line] + values = value.(m[:dvPline][line, phase, :]) + line_power_flow_series += [values[i] for i in timesteps] + end + + simple_powerflow_line_results[line] = Dict("line_power_flow_series" => line_power_flow_series, + "line_maximum_power_flow" => maximum(line_power_flow_series), + "line_average_power_flow" => mean(line_power_flow_series), + "line_minimum_power_flow" => minimum(line_power_flow_series), + "associated_REopt_timesteps" => time_steps_without_PMD, + "simplified_powerflow_model_timesteps" => simplified_powerflow_model_timesteps + ) + # Add power flow results for individual phases + individual_phase_results=Dict([]) + for phase in phases_for_each_line[line] + individual_phase_results["phase_$(phase)"] = value.(m[:dvPline][line,phase,:]) + end + simple_powerflow_line_results[line]["individual_phase_results"] = individual_phase_results + end + + simple_powerflow_bus_results = Dict() + #busses = axes(m[:dvP][:,:,1])[1] # sounds like this line will error + + busses = unique(first.(collect(keys(m[:dvP][:,:,1].data)))) # something to extract all of the indeces in the first index of dvP + + # Adjust the phases associated with the sourcebus because in the PMD model the sourcebus will have three phases, even if the rest of the components on the system are single phase + if Multinode_Inputs.number_of_phases == 3 + # Do nothing because the phases_for_each_bus["sourcebus"] should already be [1,2,3] by default + elseif Multinode_Inputs.number_of_phases == 2 + phases_for_each_bus["sourcebus"] = [1,2] + elseif Multinode_Inputs.number_of_phases == 1 + phases_for_each_bus["sourcebus"] = [1] + else + throw(@error("The input for the number_of_phases is invalid.")) + end + + #dvP_values = value.(m[:dvP][bus,:,:]) + print("\n") + for bus in busses + if Multinode_Inputs.display_information_during_modeling_run + print(" For bus $(bus) the phases are:") + print(phases_for_each_bus[string(bus)]) + end + + dvP_values = value.(m[:dvP][bus,:,:]).data + + #bus_power_series = sum(value.(m[:dvP][bus, phase, :].data) for phase in phases_for_each_bus[string(bus)]) + bus_power_series = zeros(Float64, length(time_steps_without_PMD)) + + for ((_,j), val) in dvP_values + bus_power_series[j] += val + end + + #sum(dvP_values[phase, :] for phase in phases_for_each_bus[bus]) + simple_powerflow_bus_results[bus] = Dict("bus_power_series" => bus_power_series, + "bus_maximum_power" => maximum(bus_power_series), + "bus_average_power" => mean(bus_power_series), + "bus_minimum_power" => minimum(bus_power_series), + "associated_REopt_timesteps" => time_steps_without_PMD, + "simplified_powerflow_model_timesteps" => simplified_powerflow_model_timesteps + ) + end + print("\n") + + simple_powerflow_results = Dict("lines" => simple_powerflow_line_results, + "busses" => simple_powerflow_bus_results, + "all_bus_line_connections" => connections, + "downstream_bus_line_connections" => connections_downstream, + "upstream_bus_line_connections" => connections_upstream) + + return simple_powerflow_results +end + + +function process_model_diagnostics_bus_voltage_violations(Multinode_Inputs, pm) + model = pm.model + + bus_voltage_violation_results = Dict() + + BusInfo = create_bus_info_dictionary(pm) + bus_names = collect(keys(BusInfo)) + PMD_time_steps = collect(1:length(Multinode_Inputs.PMD_time_steps)) + + for bus_name in bus_names + for PMD_time_step in PMD_time_steps + bin_value = value.(model[Symbol("binBusVoltageViolation")][bus_name, PMD_time_step]) + if bin_value == 1 + REoptTimeStep = Multinode_Inputs.PMD_time_steps[PMD_time_step] + + if string("node_"*bus_name) in keys(bus_voltage_violation_results) + entry_to_add_temp = Dict(REoptTimeStep => Dict("associated_PMD_time_step" => PMD_time_step, "per_unit_voltage" => "To add")) # Note: Multinode_Inputs.PMD_time_steps[PMD_time_step] converts the timestep from the PMD timestep (expressed in PMD timesteps) to the PMD timestep (expressed in REopt timesteps) + bus_voltage_violation_results[string("node_"*bus_name)] = merge!(bus_voltage_violation_results[string("node_"*bus_name)], entry_to_add_temp) + else + bus_voltage_violation_results[string("node_"*bus_name)] = Dict(REoptTimeStep => Dict("associated_PMD_time_step" => PMD_time_step, "per_unit_voltage" => "To add")) + end + + if "REopt_timesteps_with_bus_voltage_violations" in keys(bus_voltage_violation_results) + if REoptTimeStep in bus_voltage_violation_results["REopt_timesteps_with_bus_voltage_violations"] + # Do nothing because the time step is already listed in the array + else + push!(bus_voltage_violation_results["REopt_timesteps_with_bus_voltage_violations"], REoptTimeStep) + end + else + bus_voltage_violation_results["REopt_timesteps_with_bus_voltage_violations"] = [REoptTimeStep] + end + + end + end + end + + return bus_voltage_violation_results +end + + +function VoltageResultsSummary(results) + + DataFrame_BusVoltages = DataFrame(fill(Any[],4), [:Bus, :minimum_pu_voltage, :Average_pu_voltage, :maximum_pu_voltage ]) + per_unit_voltages = Dict([]) + bus_voltage_minimums = [] + bus_voltage_averages = [] + bus_voltage_maximums = [] + for bus in keys(results["nw"]["1"]["bus"]) # read all of the line names from the first time step + Data_BusVoltages = zeros(3) + per_unit_voltages[bus] = [] + for timestep in collect(keys(results["nw"])) + if "w" in keys(results["nw"][string(timestep)]["bus"][bus]) + per_unit_voltages[bus] = push!(per_unit_voltages[bus], sqrt(results["nw"][string(timestep)]["bus"][bus]["w"][1])) + elseif "Wr" in keys(results["nw"][string(timestep)]["bus"][bus]) + per_unit_voltages[bus] = push!(per_unit_voltages[bus], sqrt(results["nw"][string(timestep)]["bus"][bus]["Wr"][1][1])) # TODO: figure out what "Wi" is in the results when using the SOCNLPUBFPowerModel model + else + throw(@error("Bus voltage results data is not available")) + end + end + + Data_BusVoltages[1] = round(minimum(per_unit_voltages[bus][:]), digits = 6) + Data_BusVoltages[2] = round(mean(per_unit_voltages[bus][:]), digits = 6) + Data_BusVoltages[3] = round(maximum(per_unit_voltages[bus][:]), digits = 6) + + bus_voltage_minimums = push!(bus_voltage_minimums, Data_BusVoltages[1]) + bus_voltage_averages = push!(bus_voltage_averages, Data_BusVoltages[2]) + bus_voltage_maximums = push!(bus_voltage_maximums, Data_BusVoltages[3]) + + DataFrame_BusVoltages_temp = DataFrame([("Bus "*string(bus)) Data_BusVoltages[1] Data_BusVoltages[2] Data_BusVoltages[3] ], [:Bus, :minimum_pu_voltage, :Average_pu_voltage, :maximum_pu_voltage]) + DataFrame_BusVoltages = append!(DataFrame_BusVoltages, DataFrame_BusVoltages_temp) + end + + minimum_voltage = round(minimum(bus_voltage_minimums), digits=6) + average_voltage = round(mean(bus_voltage_averages), digits=6) + maximum_voltage = round(maximum(bus_voltage_maximums), digits=6) + + return DataFrame_BusVoltages, per_unit_voltages, minimum_voltage, average_voltage, maximum_voltage +end + + +function CollectMapInformation(results, Multinode_Inputs, all_lines_including_transformers_as_lines, lines_in_PMD, data_eng_lines, busses_in_PMD) + + if Multinode_Inputs.model_type == "PowerModelsDistribution" + lines = keys(results["Line_Info_PMD"]) + end + + # Extract the latitude and longitude for the busses + bus_coordinates_filename = Multinode_Inputs.bus_coordinates + data_input = CSV.read(bus_coordinates_filename, DataFrame, header =1) + + # Create a dictionary of the bus coordinates + number_of_entries_in_lat_long_file = size(data_input, 1) + busses_in_PMD_lowercase = lowercase.(busses_in_PMD) + bus_cords = Dict([]) + busses=[] + for row in collect(1:number_of_entries_in_lat_long_file) + bus = lowercase(data_input[row,:Bus]) + if bus in busses_in_PMD_lowercase + push!(busses, bus) + bus_cords[string(bus)] = [data_input[row,:Latitude], data_input[row,:Longitude]] + end + end + + # Create a dictionary of the line segment start and end coordinates + substation_cords = "N/A" + line_cords = Dict([]) + + # Convert all of the characters to lower case + bus_cords = Dict(lowercase(String(key)) => value for (key,value) in bus_cords) + + for line in all_lines_including_transformers_as_lines + if line in lines_in_PMD # for lines that are lines in PMD + line_cords[line] = [bus_cords[data_eng_lines[line]["f_bus"]], bus_cords[data_eng_lines[line]["t_bus"]]] + else # assume that the line is part of a transformer line + # transformer lines are represented with the syntax "xfmr_line_bus1_bus2" + line_interpretation = match(r"_([^_]+)_([^_]+)$", line) + bus1 = line_interpretation.captures[1] + bus2 = line_interpretation.captures[2] + + line_cords[line] = [bus_cords[bus1],bus_cords[bus2]] + end + end + + substation_cords = bus_cords[Multinode_Inputs.substation_node] + + bus_key_values = collect(keys(bus_cords)) + line_key_values = collect(keys(line_cords)) + +return bus_key_values, line_key_values, bus_cords, line_cords, busses, substation_cords + +end + +function CollectResultsByNode(results, busses) + + # Create a dictionary of the technology sizing at each node, which will be plotted on the map: + results_by_node = Dict([]) + for i in busses + if i in keys(results["REopt_results"]) + if "PV" in keys(results["REopt_results"][i]) + if results["REopt_results"][i]["PV"]["size_kw"] > 0 + PV = "PV: "*string(round(results["REopt_results"][i]["PV"]["size_kw"], digits=0))*"kW " + else + PV = "" + end + else + PV = "" + end + + if "Generator" in keys(results["REopt_results"][i]) + if results["REopt_results"][i]["Generator"]["size_kw"] > 0 + Generator = "Gen: "*string(round(results["REopt_results"][i]["Generator"]["size_kw"], digits=0))*"kW " + else + Generator = "" + end + else + Generator = "" + end + + if "ElectricStorage" in keys(results["REopt_results"][i]) + if results["REopt_results"][i]["ElectricStorage"]["size_kw"] > 0 + Battery = "Bat: "*string(round(results["REopt_results"][i]["ElectricStorage"]["size_kw"],digits=1))*"kW"*","*string(round(results["REopt_results"][i]["ElectricStorage"]["size_kwh"],digits=1))*"kWh " + else + Battery = "" + end + else + Battery = "" + end + + if PV != "" || Generator != "" || Battery != "" + punctuation = ": " + else + punctuation = "" + end + + results_by_node[lowercase(string(i))] = punctuation*PV*Generator*Battery + else + results_by_node[lowercase(string(i))] = "" + end + end + + return results_by_node +end + + +function DetermineOutageStartsAndEnds(Multinode_Inputs, outages_vector) + # From the list of outage timesteps, construct an array for the outage start times and outage end times by identifying groups of values + + outage_starts = [outages_vector[1]] + outage_ends = [] + + for i in collect(2:length(outages_vector)) + if (outages_vector[i] - outages_vector[i-1]) >= 2 + push!(outage_starts, outages_vector[i]) + push!(outage_ends, outages_vector[i-1]) + end + end + + # Make sure that the last value in the outage vector is part of the outage_ends array: + if outage_ends[length(outage_ends)] != outages_vector[length(outages_vector)] + push!(outage_ends, outages_vector[length(outages_vector)]) + end + # Convert to days: + outage_starts = outage_starts / (24 * Multinode_Inputs.time_steps_per_hour) + outage_ends = outage_ends / (24 * Multinode_Inputs.time_steps_per_hour) + return outage_starts, outage_ends +end + + +function DeterminePathToSourcebus(neighbors, Multinode_Inputs) + # Acknowledgement: This function was built with the assistance of ChatGPT + parent_dict = Dict() + path_dict = Dict() + substation_bus = Multinode_Inputs.substation_node #"sourcebus" + queue = [substation_bus] + visited = Dict() + visited[substation_bus] = true + + while !isempty(queue) + bus = popfirst!(queue) + for i in neighbors[bus] + if !haskey(visited, i) + visited[i] = true + parent_dict[i] = bus + push!(queue, i) + end + end + end + + for bus in keys(neighbors) + path = [] + current_bus = bus + while current_bus != substation_bus + push!(path, current_bus) + current_bus = parent_dict[current_bus] + end + push!(path, substation_bus) + path_dict[bus] = reverse(path) + end + + return path_dict +end + + +function DetermineDistanceFromSourcebus(Multinode_Inputs, data_eng) + neighbors = REopt.modified_calc_connected_components_eng(data_eng) + paths = REopt.DeterminePathToSourcebus(neighbors, Multinode_Inputs) + + # remove duplicate values if a key has duplicates + for (key, values) in neighbors + neighbors[key] = unique(values) + end + + #Multinode_Inputs = results["Multinode_Inputs"] + + line_names_to_sourcebus_dict = Dict() + lengths_to_sourcebus_dict = Dict() + + for i in keys(paths) + path = paths[i] + line_names_temp = [] + line_lengths_temp = [] + + for j in collect(1:(length(path)-1)) + firstnode = path[j] + if path[j] == "sourcebus" + firstnode = string(Multinode_Inputs.substation_node) + end + line_name = string("line"*firstnode*"_"*path[j+1]) + if haskey(data_eng["line"], line_name) + push!(line_names_temp, line_name) + push!(line_lengths_temp, data_eng["line"][line_name]["length"]) + end + end + line_names_to_sourcebus_dict[i] = line_names_temp + lengths_to_sourcebus_dict[i] = line_lengths_temp + end + + summed_lengths_to_sourcebus_dict = Dict() + for i in keys(lengths_to_sourcebus_dict) + if lengths_to_sourcebus_dict[i] != Any[] + summed_lengths_to_sourcebus_dict[i] = sum(lengths_to_sourcebus_dict[i]) + else + summed_lengths_to_sourcebus_dict[i] = 0 + end + end + + return summed_lengths_to_sourcebus_dict, lengths_to_sourcebus_dict, line_names_to_sourcebus_dict, paths, neighbors +end + + +function modified_calc_connected_components_eng(data; edges::Vector{<:String}=String["line", "switch", "transformer"], type::Union{Missing,String}=missing, check_enabled::Bool=true) #::Set{Set{String}} + # Acknowledgement: This function is based on code from the julia package PowerModelsDistribution + + @assert get(data, "data_model", PowerModelsDistribution.MATHEMATICAL) == PowerModelsDistribution.ENGINEERING + + active_bus = Dict{String,Dict{String,Any}}(x for x in data["bus"] if x.second["status"] == PowerModelsDistribution.ENABLED || !check_enabled) + active_bus_ids = Set{String}([i for (i,bus) in active_bus]) + + neighbors = Dict{String,Vector{String}}(i => [] for i in active_bus_ids) + for edge_type in edges + for (id, edge_obj) in get(data, edge_type, Dict{Any,Dict{String,Any}}()) + if edge_obj["status"] == PowerModelsDistribution.ENABLED || !check_enabled + if edge_type == "transformer" && haskey(edge_obj, "bus") + for f_bus in edge_obj["bus"] + for t_bus in edge_obj["bus"] + if f_bus != t_bus + push!(neighbors[f_bus], t_bus) + push!(neighbors[t_bus], f_bus) + end + end + end + else + if edge_type == "switch" && !ismissing(type) + if type == "load_blocks" + if edge_obj["dispatchable"] == PowerModelsDistribution.NO && edge_obj["state"] == PowerModelsDistribution.CLOSED + push!(neighbors[edge_obj["f_bus"]], edge_obj["t_bus"]) + push!(neighbors[edge_obj["t_bus"]], edge_obj["f_bus"]) + end + elseif type == "blocks" + if edge_obj["state"] == PowerModelsDistribution.CLOSED + push!(neighbors[edge_obj["f_bus"]], edge_obj["t_bus"]) + push!(neighbors[edge_obj["t_bus"]], edge_obj["f_bus"]) + end + end + else + push!(neighbors[edge_obj["f_bus"]], edge_obj["t_bus"]) + push!(neighbors[edge_obj["t_bus"]], edge_obj["f_bus"]) + end + end + end + end + end + + component_lookup = Dict(i => Set{String}([i]) for i in active_bus_ids) + touched = Set{String}() + + for i in active_bus_ids + if !(i in touched) + PowerModelsDistribution._cc_dfs(i, neighbors, component_lookup, touched) + end + end + + neighbors_with_keys_as_strings = Dict(string(key)=> value for (key, value) in neighbors) + + return neighbors_with_keys_as_strings +end + + +function Check_REopt_PMD_Alignment(m, PMD_results, node, line, phase) + # Compare the REopt and PMD results to ensure the models are linked + # Note the calculations below are only valid if there are not any REopt nodes or PMD loads downstream of the node being evaluated + + Node = node # This is for the REopt data + Line = line # This is for the PMD data + Phase = phase # This data is for the PMD data + + # Save REopt data to variables for comparison with PMD: + TotalExport = JuMP.value.(m[Symbol("TotalExport_"*string(Node))]) #[1] + TotalImport = JuMP.value.(m[Symbol("dvGridPurchase_"*string(Node))]) #[1] If needed, define the time step in the brackets appended to this line + REopt_power_injection = TotalImport - TotalExport + + # Save the power injection data from PMD into a vector for the line + PowerFlow_line = [] + for i in 1:length(PMD_results["nw"]) + push!(PowerFlow_line, PMD_results["nw"][string(i)]["line"][Line]["pf"][Phase]) # for other PMD formulations, the "pf" might be "Pf" instead + end + + # This calculation compares the power flow through the Line (From PMD), to the power injection into the Node (From REopt). If the PMD and REopt models are connected, this should be zero or very close to zero. + Mismatch_in_expected_powerflow = PowerFlow_line - REopt_power_injection[1:length(PMD_results["nw"])].data # This is only valid for the model with only one REopt load on node 1 + + # Visualize the mismatch to ensure the results are zero for each time step + Plots.plot(collect(1:length(PMD_results["nw"])), Mismatch_in_expected_powerflow) + Plots.xlabel!("Timestep") + Plots.ylabel!("Mismatch between REopt and PMD (kW)") + display(Plots.title!("REopt and PMD Mismatch: Node $(Node), Phase $(Phase)")) +end + diff --git a/src/multinode/multinode_utils.jl b/src/multinode/multinode_utils.jl new file mode 100644 index 000000000..ac3674af0 --- /dev/null +++ b/src/multinode/multinode_utils.jl @@ -0,0 +1,879 @@ +# REoptĀ®, Copyright (c) Alliance for Sustainable Energy, LLC. See also https://github.com/NREL/REopt.jl/blob/master/LICENSE. + + +function run_PowerModelsDistribution_using_just_dss_file(dss_file_path::String, PMD_model_subtype::String, optimizer; options=[]) + #= + Information about this function + The PMD_model_subtype defines which model to run + "NFAUPowerModel_pf" will run the simplest type of model that looks only at feasibility of real power balance: run this model first when checking the model + "NFAUPowerModel_opf" + + The "options" input can be used to activate various debugging treatments + Adding "set_all_transformers_to_infinite_kVA" into the inputs vector sets all of the transformers to be able to handle infinite power + + =# + + eng_model = PowerModelsDistribution.parse_file(dss_file_path) + + # start of a section of code that was developed using assistance from AI + # Ensure that the slack bus can provide infinite power if the power maximum and minimum is not already defined + + for (k, v) in eng_model["voltage_source"] + n = length(v["connections"]) + if !haskey(v, "pg_lb") v["pg_lb"] = fill(-Inf, n) end + if !haskey(v, "pg_ub") v["pg_ub"] = fill( Inf, n) end + if !haskey(v, "qg_lb") v["qg_lb"] = fill(-Inf, n) end + if !haskey(v, "qg_ub") v["qg_ub"] = fill( Inf, n) end + end + + eng_model["settings"]["sbase_default"] = 0.001 # set sbase to 1 kVA + + if "set_all_transformers_to_infinite_kVA_and_detect_if_any_transformers_exceed_the_original_power_limit" in options + # save the original + + original_sm_ub = Dict(k => xfmr["sm_ub"] for (k, xfmr) in eng_model["transformer"] if haskey(xfmr, "sm_ub")) + + for (k, xfmr) in eng_model["transformer"] + xfmr["sm_ub"] = Inf + end + end + + # end of section that was developed using AI + + if PMD_model_subtype == "LPUBFDiagPowerModel" + #pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.LPUBFDiagPowerModel, PowerModelsDistribution.build_mn_mc_opf) # Note: instantiate_mc_model automatically converts the "engineering" model into a "mathematical" model + elseif PMD_model_subtype == "NFAUPowerModel_pf" + #pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.NFAUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + results = PowerModelsDistribution.solve_mc_pf(eng_model, PowerModelsDistribution.NFAUPowerModel, optimizer) + elseif PMD_model_subtype == "NFAUPowerModel_opf" + #pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.NFAUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + results = PowerModelsDistribution.solve_mc_opf(eng_model, PowerModelsDistribution.NFAUPowerModel, optimizer) + + elseif PMD_model_subtype == "ACPUPowerModel" + #pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.ACPUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif PMD_model_subtype == "ACRUPowerModel" + #pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.ACRUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif PMD_model_subtype == "IVRUPowerModel" + #pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.IVRUPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif PMD_model_subtype == "SOCNLPUBFPowerModel" + #pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.SOCNLPUBFPowerModel, PowerModelsDistribution.build_mn_mc_opf) + elseif PMD_model_subtype == "SOCConicUBFPowerModel" + #pm = PowerModelsDistribution.instantiate_mc_model(data_math_mn, PowerModelsDistribution.SOCConicUBFPowerModel, PowerModelsDistribution.build_mn_mc_opf) + else + throw(@error("The PMD subtype is not valid")) + end + + + # start of a section of code that was developed using assistance from AI + if "set_all_transformers_to_infinite_kVA_and_detect_if_any_transformers_exceed_the_original_power_limit" in options + println("Overloaded transformers (flow > original kVA rating):") + found_any = false + sol_xfmrs = get(results["solution"], "transformer", Dict()) + for (k, rating) in original_sm_ub + sol_key = lowercase(k) # solution keys are lowercase + if haskey(sol_xfmrs, sol_key) + p = get(sol_xfmrs[sol_key], "p", nothing) + if p !== nothing + # p is [[winding1_phase_powers...], [winding2_phase_powers...]] + # Use winding 1 (primary) active power across all phases + flow_kw = maximum(abs.(p[1])) + if flow_kw > rating + pct = round(100 * flow_kw / rating, digits=1) + println(" Transformer $k: rating = $(round(rating, digits=1)) kVA, " * + "flow = $(round(flow_kw, digits=1)) kW ($pct% of rating)") + found_any = true + end + end + end + end + found_any || println(" None — all transformers within rating.") + # end of section that was developed using AI + end + + return results +end + + +function combine_dss_files_into_aggregated_dss_file(folder, new_file_name, existing_dss_files_list) + # This function takes multiple separate dss files and combines them into one dss file + # note: this function was created with the assistance of ChatGPT + + # The order of the files in the existing_dss_files_list matters + + aggregated_file_path = folder * "/" * new_file_name # note: the new_file_name should have .dss appended to the end of the string + + open(aggregated_file_path, "w") do x + for file in existing_dss_files_list + filepath = folder*"/"* file + println(x) # this creates a new line + println(x, "! Data from filename: ", file) + println(x) + + for line in eachline(filepath) + println(x, line) + end + end + end + + return aggregated_file_path + +end + + +function prepare_dss_file_for_multinode(Multinode_Inputs_struct, folder, input_dss_filepath) + + # Convert the syntax "new object=" into simpler syntax + output_dss_filepath_object_syntax_processed = modify_object_syntax(input_dss_filepath, folder*"/"*"temp_object_syntax_modified.dss") + + # Process the reactors + output_dss_filepath_reactors_processed = process_reactors(output_dss_filepath_object_syntax_processed, folder*"/"*"temp_reactors_processed.dss") + + output_dss_filepath_redirects_removed = remove_redirect_lines(output_dss_filepath_reactors_processed, folder*"/"*"temp_redirects_removed.dss") + + output_dss_filepath_multiphase_split_into_multiple_lines = split_multiphase_loads_into_separate_lines(output_dss_filepath_redirects_removed, folder*"/"*"temp_multiphase_split_into_multiple_lines.dss") + + output_dss_filepath_loads_renamed_to_names_of_busses, load_map = rename_load_names_to_names_of_busses_with_phase_label(output_dss_filepath_multiphase_split_into_multiple_lines, folder*"/"*"temp_loads_renamed_to_busses_with_phase_label.dss") + + output_dss_filepath_kw_kvar_modified = set_kw_and_kvar_loads_to_1_if_there_is_an_associated_REopt_node(Multinode_Inputs_struct, output_dss_filepath_loads_renamed_to_names_of_busses, folder*"/"*"temp_kw_and_kvar_loads_with_value_of_1.dss") + + dss_file_export = output_dss_filepath_kw_kvar_modified + + return dss_file_export, load_map +end + + +function modify_object_syntax(input_filepath::String, output_filepath::String) + # This function was generated with the assistance of ChatGPT + + open(output_filepath, "w") do output + for line in eachline(input_filepath) + println(output, change_object_syntax(line)) + end + end + + return output_filepath +end + + +function change_object_syntax(line) + # This funcition was generated with the assistance of ChatGPT + + new_object_syntax_pattern = r"(?i)^\s*new\s+object\s*=\s*(\S+)" + + m = match(new_object_syntax_pattern, line) + if m !== nothing + object_name = lowercase(m.captures[1]) + return replace(line, new_object_syntax_pattern => "new $object_name"; count=1) + else + return line + end + + return +end + + +function set_kw_and_kvar_loads_to_1_if_there_is_an_associated_REopt_node(Multinode_Inputs, input_dss_file, output_dss_file) + # This funcition was generated with the assistance of ChatGPT + + REopt_nodes = lowercase.(REopt.GenerateREoptNodesList(Multinode_Inputs)) + + REopt_nodes = [] + REopt_phases = Dict() + for i in Multinode_Inputs.REopt_inputs_list + if string(i["Site"]["node"]) != Multinode_Inputs.facilitymeter_node + push!(REopt_nodes, i["Site"]["node"]) + REopt_phases[lowercase(i["Site"]["node"])] = i["Settings"]["phase_numbers"] + end + end + + # If the node is part of the REopt nodes, then set the kW and the kVAR to 1 + # If the node is not part of the REopt nodes list, then set the kW and kVAR to 0 + + open(output_dss_file, "w") do output + for line in eachline(input_dss_file) + if occursin(r"(?i)new\s+load\.", line) && occursin(r"(?i)bus1=",line) + bus, phases = get_bus_and_phases(line) + + phase = phases[1] # There will only be one phase listed in each row due to the function split_multiphase_loads_into_separate_lines + + if (bus !== nothing) && (lowercase(bus) in REopt_nodes) + if phase in REopt_phases[lowercase(bus)] + line = replace_kw_and_kvar(line, 1.0, 1.0) + else + line = replace_kw_and_kvar(line, 0.0, 0.0) + end + else + line = replace_kw_and_kvar(line, 0.0, 0.0) + end + end + write(output, line*"\n") + end + end + + return output_dss_file +end + + +function get_bus_and_phases(line::String) + # This funcition was generated with the assistance of ChatGPT + m = match(r"(?i)Bus1=([^\s\.]+)((?:\.\d+)*)",line) + if m === nothing + return nothing, Int[] + end + bus = m.captures[1] + + # Extract all digits after dots + phase_str = m.captures[2] + phases = isempty(phase_str) ? Int[] : parse.(Int,split(phase_str[2:end], ".")) + + return bus, phases +end + + +function replace_kw_and_kvar(line::String, kw::Float64, kvar::Float64) + # This funcition was generated with the assistance of ChatGPT + line = replace(line, r"(?i)kW=[^\s]+" => "kW=$(kw)") + line = replace(line, r"(?i)kvar=[^\s]+" => "kvar=$(kvar)") + return line +end + + +function process_reactors(input_dss_filepath, output_dss_filepath) + # This function removes features that REopt multinode does not model + # This funcition was generated with the assistance of ChatGPT + + # Convert the series reactors to lines (series reactors are show as reactor types with two busses listed in the .dss file) + # add code to remove shunt reactors (reactor types that only have one bus listed) + new_line_prefix = "RXLine_" # label the lines with RXLine_ after they are converted from reactors + + open(output_dss_filepath, "w") do output + open(input_dss_filepath, "r") do input + + block = String[] + + function flush_block() + isempty(block) && return + + if isempty(block) + return + end + + first_line = block[1] + + stripped_line = strip(first_line) # isa String ? first_line : "" + + if startswith(lowercase(stripped_line), "new reactor.") + handle_reactor_block(block, output, new_line_prefix) + else + # write non-reactor block verbatim + for y in block + println(output, y) + end + end + + empty!(block) + end + + for line in eachline(input) + stripped = line # strip(line) # isa String ? strip(line) : "" + if startswith(lowercase(stripped), "new") + # Start a new block + flush_block() + push!(block, line) + elseif startswith(stripped, "~") + # Continuation line + push!(block, line) + else + flush_block() + println(output, line) + end + end + + flush_block() # final block + end + end + + return output_dss_filepath +end + + +function handle_reactor_block(block, x, prefix) + # This funcition was generated with the assistance of ChatGPT + full = join(block, " ") + has_bus2 = occursin(r"(?i)bus2\s*=", full) # This detects if it is a series reactor (and not a shunt reactor, because shunt reactors won't have a bus 2) + if has_bus2 + line_def = reactor_block_to_line(full, prefix) + println(x, line_def) + else + println(x, "! Shunt reactor removed:") + for y in block + println(x, "! ", y) + end + end +end + + +function reactor_block_to_line(full::String, prefix::String) + # This function was generated with the assistance of ChatGPT + + name = extract_reactor_name(full) + bus1 = extract_prop(full, "bus1", "UNKNOWN") + bus2 = extract_prop(full, "bus2", "UNKNOWN") + phases = extract_prop(full, "phases", "3") + r = extract_prop(full, "r", "0.0") + x = extract_prop(full, "x", "0.0") + + line_name = prefix*name + + lines = ["New Line.$line_name Bus1=$bus1 Bus2=$bus2 Phases=$phases", + "~ R1=$r X1=$x Length=1 Units=Ft"] # line objects in OpenDSS take the resistance and reactance as R1 and X1 variables, respectively. Resistance and reactance can also be entered using other variables in the OpenDSS format. + return join(lines, "\n") +end + + +function extract_prop(text::String, key::String, default::String) + # This function was generated with the assistance of ChatGPT + m = match(Regex("(?i)$key\\s*=\\s*([^\\s]+)"), text) + return m == nothing ? default : m.captures[1] +end + +function extract_reactor_name(full::String) + # This function was generated with the assistance of ChatGPT + m = match(r"(?i)new\s+reactor\.([^\s]+)",full) + return m == nothing ? "UNKNOWN" : m.captures[1] +end + + +function remove_redirect_lines(input_filepath::String, output_filepath::String) + # This function was generated with the assistance of ChatGPT + open(output_filepath, "w") do output + open(input_filepath, "r") do input + for line in eachline(input) + stripped = strip(line) + # Skip lines starting with "redirect" (case-insensitive) + if startswith(lowercase(stripped), "redirect") + continue + else + println(output, line) + end + end + end + end + + return output_filepath +end + + +function split_multiphase_loads_into_separate_lines(input_filepath::String, output_filepath::String) + # This function was generated with assistance from ChatGPT + + # This function handles how voltages will need to be adjusted, depending on if they are delta or wye connected + + sqrt3 = sqrt(3.0) + + open(output_filepath, "w") do output + open(input_filepath, "r") do input + for line in eachline(input) + stripped = strip(line) + + # Only process New Load lines + if startswith(lowercase(stripped), "new load.") + m_name = match(r"(?i)new\s+load\.([^\s]+)",line) + m_bus = match(r"(?i)bus1\s*=\s*([^\s]+)", line) + m_phases = match(r"(?i)phases\s*=\s*(\d+)",line) + m_conn = match(r"(?i)conn\s*=\s*(\w+)",line) + m_kv = match(r"(?i)kv\s*=\s*([\d\.]+)",line) + m_kw = match(r"(?i)kw\s*=\s*([\d\.]+)",line) + m_kvar = match(r"(?i)kvar\s*=\s*([\d\.]+)",line) + + if m_name !== nothing && + m_bus !== nothing && + m_phases !== nothing && + parse(Int,m_phases.captures[1]) > 1 && + m_conn !== nothing && + m_kv !== nothing && + m_kw !== nothing + + orig_name = m_name.captures[1] + bus_full = m_bus.captures[1] + nph = parse(Int, m_phases.captures[1]) + conn = lowercase(m_conn.captures[1]) + kv_orig = parse(Float64, m_kv.captures[1]) + kw_orig = parse(Float64, m_kw.captures[1]) + + parts = split(bus_full, ".") + bus_id = parts[1] + phases = parts[2:end] + + # Voltage scaling + kv_new = conn == "delta" ? kv_orig / sqrt3 : kv_orig + + # Power scaling + kw_new = kw_orig / nph + + for ph in phases + new_name = "$(orig_name)_phase$(ph)" + newline = line + #newline = replace(newline, r"(?i)(new\s+load\.)[^\s]+" => "\\1$new_name") + + newline = replace_dss_load_name(newline, new_name) + + newline = replace(newline, r"(?i)phases\s*=\s*\d+" => "phases=1") + newline = replace(newline, r"(?i)bus1\s*=\s*[^\s]+" => "Bus1=$(bus_id).$(ph)") + newline = replace(newline, r"(?i)kv\s*=\s*[\d\.]+" => "kV=$(round(kv_new, digits=6))") + newline = replace(newline, r"(?i)kw\s*=\s*[\d\.]+" => "kW=$(round(kw_new, digits=6))") + + println(output, newline) + end + + continue # used to skip the original multiphase line + end + end + + # By default, re-write the unchanged line + println(output, line) + end + end + end + + return output_filepath +end + + +function rename_load_names_to_names_of_busses_with_phase_label(input_filepath::String, output_filepath::String) + # This function was generated with assistance from ChatGPT + + # NOTE: this function will not handle multiphase busses (e.g. Bus1=9.1.2.3). This assumes that all loads have been assigned to a single phase bus (which is what currently is required for multinode) + + load_to_bus_mapping = Dict{String, Tuple{String,String}}() + + open(output_filepath, "w") do output + open(input_filepath, "r") do input + for line in eachline(input) + stripped = strip(line) + + if startswith(lowercase(stripped), "new load.") + #Extract the original load name + m_name = match(r"(?i)new\s+load\.([^\s]+)", line) + + # Extract Bus1 information + m_bus = match(r"(?i)bus1\s*=\s*([^\s]+)",line) + + if (m_name !== nothing) && (m_bus !== nothing) + orig_name = m_name.captures[1] + bus_full = m_bus.captures[1] + + parts = split(bus_full,".") + bus_id = parts[1] + phase_id = length(parts) > 1 ? parts[2] : "1" # assume the phase ID is 1 by default + + new_name = "Load$(bus_id)_phase$(phase_id)" + + # Store the mapping + load_to_bus_mapping[orig_name] = (new_name, bus_full) + + # Replace the load name in the dss file line + #line = replace(line, r"(?i)(new\s+load\.)[^\s]+"=>"\\1$new_name") + line = replace_dss_load_name(line, new_name) + end + end + + println(output, line) + end + end + end + + return output_filepath, load_to_bus_mapping +end + + +function replace_dss_load_name(line::String, new_name::String) + # This function was generated with the assistance of ChatGPT + + m = match(r"(?i)^(new\s+load\.)[^\s]+(.*)$", line) + if m == nothing + return line + end + prefix = m.captures[1] # This is for "New Load." + rest = m.captures[2] # everything after the name + + return prefix*new_name*rest + +end + + +""" +Note: this function was generated using AI + + detect_network_loops(data_eng; kwargs...) -> (has_loops::Bool, loop_edges::Vector) + +Detects loops (cycles) in a PowerModelsDistribution engineering-model network +using Union-Find (disjoint set union). Compatible with single-phase and +multi-phase radial or meshed distribution systems. + +A "loop" is any edge whose two endpoint buses are already connected by another +path — i.e. removing it would not disconnect the graph. In a purely radial +feeder no loops will be found. + +# Keyword arguments +- `include_switches` (default `true`): include switch elements (both dedicated + `"switch"` entries and lines whose name starts with `"sw_"`). +- `include_transformers` (default `true`): include transformers as edges + between their winding buses. +- `only_enabled` (default `true`): skip any component whose `"status"` field + is `PowerModelsDistribution.DISABLED`. +- `verbose` (default `true`): print a summary table to stdout. +- `phase_filter` (default `nothing`): if set to an integer (1=A, 2=B, 3=C), only edges + that carry that phase are included. Edges with no phase information are always included. + Use this to check loop connectivity on a single phase. + +# Returns +- `has_loops::Bool` – `true` if at least one loop was found. +- `loop_edges::Vector{NamedTuple}` – one entry per loop-closing edge, each + with fields `(type, name, f_bus, t_bus)`. +""" +function detect_network_loops( + data_eng::Dict; + include_switches::Bool = true, + include_transformers::Bool = true, + only_enabled::Bool = true, + verbose::Bool = true, + phase_filter::Union{Nothing, Int} = nothing, +) + # ------------------------------------------------------------------ # + # 1. Build edge list # + # ------------------------------------------------------------------ # + # Each entry: NamedTuple (type, name, f_bus, t_bus, phases) + # phases is a Vector{Int} using PMD convention: 1=A, 2=B, 3=C, 0=neutral + Edge = NamedTuple{(:type, :name, :f_bus, :t_bus, :phases), + Tuple{String,String,String,String,Vector{Int}}} + edges = Edge[] + + # Helper: is a component disabled? + function is_disabled(comp::Dict) + only_enabled || return false + status = get(comp, "status", nothing) + status === nothing && return false + return string(status) == "DISABLED" + end + + # Helper: convert integer phase list to a readable string ("A", "AB", "ABC", etc.) + _phase_label = Dict(1 => "A", 2 => "B", 3 => "C", 0 => "N") + function phases_str(phases::Vector{Int}) + isempty(phases) && return "?" + return join([get(_phase_label, p, string(p)) for p in sort(phases)]) + end + + # --- Lines (includes overhead lines, underground cables, and any --- + # stub lines created by the REopt DSS pre-processor) # + for (name, line) in get(data_eng, "line", Dict()) + is_disabled(line) && continue + startswith(name, "loadconn_") && continue + !include_switches && startswith(name, "sw_") && continue + + f_bus = get(line, "f_bus", nothing) + t_bus = get(line, "t_bus", nothing) + (f_bus === nothing || t_bus === nothing) && continue + + phases = Vector{Int}(get(line, "f_connections", Int[])) + phase_filter !== nothing && !isempty(phases) && !(phase_filter in phases) && continue + push!(edges, (type="line", name=name, f_bus=string(f_bus), t_bus=string(t_bus), phases=phases)) + end + + # --- Dedicated switch entries (PMD stores some switches separately) --- + if include_switches + for (name, sw) in get(data_eng, "switch", Dict()) + is_disabled(sw) && continue + f_bus = get(sw, "f_bus", nothing) + t_bus = get(sw, "t_bus", nothing) + (f_bus === nothing || t_bus === nothing) && continue + phases = Vector{Int}(get(sw, "f_connections", Int[])) + phase_filter !== nothing && !isempty(phases) && !(phase_filter in phases) && continue + push!(edges, (type="switch", name=name, f_bus=string(f_bus), t_bus=string(t_bus), phases=phases)) + end + end + + # --- Transformers (multi-winding: connect each adjacent pair of buses) --- + if include_transformers + for (name, xfmr) in get(data_eng, "transformer", Dict()) + is_disabled(xfmr) && continue + buses = get(xfmr, "bus", String[]) + # connections is a vector of per-winding connection arrays + conns = get(xfmr, "connections", Vector{Vector{Int}}()) + for i in 1:(length(buses) - 1) + phases = !isempty(conns) && i <= length(conns) ? Vector{Int}(conns[i]) : Int[] + phase_filter !== nothing && !isempty(phases) && !(phase_filter in phases) && continue + push!(edges, (type="transformer", name=name, + f_bus=string(buses[i]), t_bus=string(buses[i+1]), phases=phases)) + end + end + end + + # ------------------------------------------------------------------ # + # 2. Union-Find with path compression and union-by-rank # + # ------------------------------------------------------------------ # + all_buses = unique(vcat( + [e.f_bus for e in edges], + [e.t_bus for e in edges], + )) + + parent = Dict{String,String}(b => b for b in all_buses) + rnk = Dict{String,Int}(b => 0 for b in all_buses) + + function find!(x::String) + while parent[x] != x + parent[x] = parent[parent[x]] # path-halving compression + x = parent[x] + end + return x + end + + function union!(x::String, y::String)::Bool + rx, ry = find!(x), find!(y) + rx == ry && return false # already connected → cycle + if rnk[rx] < rnk[ry] + rx, ry = ry, rx + end + parent[ry] = rx + rnk[rx] == rnk[ry] && (rnk[rx] += 1) + return true + end + + # ------------------------------------------------------------------ # + # 3. Detect loop-closing edges # + # ------------------------------------------------------------------ # + loop_edges = Edge[] + for e in edges + if !union!(e.f_bus, e.t_bus) + push!(loop_edges, e) + end + end + + # ------------------------------------------------------------------ # + # Helper (defined here so it is available for the report below) # + # ------------------------------------------------------------------ # + _phase_label_report = Dict(1 => "A", 2 => "B", 3 => "C", 0 => "N") + phases_str_report(phases::Vector{Int}) = + isempty(phases) ? "?" : join([get(_phase_label_report, p, string(p)) for p in sort(phases)]) + + has_loops = !isempty(loop_edges) + + # ------------------------------------------------------------------ # + # 4. Report # + # ------------------------------------------------------------------ # + if verbose + println("\n" * "=" ^ 70) + println("Network Loop Detection") + phase_filter === nothing || println(" Phase filter: $(phase_filter) ($(get(Dict(1=>"A",2=>"B",3=>"C",0=>"N"), phase_filter, string(phase_filter))))") + println(" Buses : $(length(all_buses))") + println(" Edges used : $(length(edges)) ", + "(switches=$(include_switches), ", + "transformers=$(include_transformers))") + println("=" ^ 70) + if has_loops + println("LOOPS DETECTED — $(length(loop_edges)) loop-closing edge(s):") + for e in loop_edges + ph = phases_str_report(e.phases) + println(" [$(e.type)] \"$(e.name)\" $(e.f_bus) <--> $(e.t_bus) phases: $ph") + end + else + println("No loops detected — network appears to be radial.") + end + println("=" ^ 70) + end + + return has_loops, loop_edges +end + + +""" +Note: this function was generated using AI + + detect_islanded_buses(data_eng, source_bus; kwargs...) -> (has_islands::Bool, islanded_buses::Vector{String}, island_groups::Vector{Vector{String}}) + +Detects buses that are not electrically connected to `source_bus` (the +substation / voltage-source bus) in a PowerModelsDistribution engineering model. + +Each disconnected group is reported separately so you can see which buses are +isolated together versus individually. + +# Arguments +- `data_eng` : parsed PMD engineering model (`data_eng = PowerModelsDistribution.parse_file(...)`) +- `source_bus` : name of the reference bus (e.g. `Multinode_Inputs.substation_node`) + +# Keyword arguments +- `include_switches` (default `true`): treat switch elements as edges. +- `include_transformers`(default `true`): treat transformer winding connections as edges. +- `only_enabled` (default `true`): ignore components whose `"status"` field is DISABLED. +- `verbose` (default `true`): print a summary to stdout. +- `phase_filter` (default `nothing`): if set to an integer (1=A, 2=B, 3=C), only edges + that carry that phase are used to build the connectivity graph. Edges with no phase + information are always included. Use this to detect per-phase islands in systems where + some buses are connected on one phase but not another. + +# Returns +- `has_islands::Bool` – `true` if any islanded bus was found. +- `islanded_buses::Vector{String}` – flat list of all buses not reachable from `source_bus`. +- `island_groups::Vector{Vector{String}}`– buses grouped by their connected component. +""" +function detect_islanded_buses( + data_eng::Dict, + source_bus::String; + include_switches::Bool = true, + include_transformers::Bool = true, + only_enabled::Bool = true, + verbose::Bool = true, + phase_filter::Union{Nothing, Int} = nothing, +) + # ------------------------------------------------------------------ # + # 1. Collect all buses present in the model # + # ------------------------------------------------------------------ # + # When phase_filter is set, only include buses whose `terminals` field + # contains the filtered phase. Otherwise buses that physically exist on + # other phases only (e.g. a phase-2 battery) would appear as singleton + # islands on the phase-1 graph. + all_buses = String[] + for (bname, bdata) in get(data_eng, "bus", Dict()) + if phase_filter !== nothing + terms = Vector{Int}(get(bdata, "terminals", Int[])) + !isempty(terms) && !(phase_filter in terms) && continue + end + push!(all_buses, string(bname)) + end + + # ------------------------------------------------------------------ # + # 2. Build edge list (same logic as detect_network_loops) # + # ------------------------------------------------------------------ # + function is_disabled(comp::Dict) + only_enabled || return false + status = get(comp, "status", nothing) + status === nothing && return false + return string(status) == "DISABLED" + end + + edges = Tuple{String,String}[] # (f_bus, t_bus) + + for (name, line) in get(data_eng, "line", Dict()) + is_disabled(line) && continue + !include_switches && startswith(name, "sw_") && continue + f = get(line, "f_bus", nothing) + t = get(line, "t_bus", nothing) + (f === nothing || t === nothing) && continue + phases = Vector{Int}(get(line, "f_connections", Int[])) + phase_filter !== nothing && !isempty(phases) && !(phase_filter in phases) && continue + push!(edges, (string(f), string(t))) + end + + if include_switches + for (_, sw) in get(data_eng, "switch", Dict()) + is_disabled(sw) && continue + f = get(sw, "f_bus", nothing) + t = get(sw, "t_bus", nothing) + (f === nothing || t === nothing) && continue + phases = Vector{Int}(get(sw, "f_connections", Int[])) + phase_filter !== nothing && !isempty(phases) && !(phase_filter in phases) && continue + push!(edges, (string(f), string(t))) + end + end + + if include_transformers + for (_, xfmr) in get(data_eng, "transformer", Dict()) + is_disabled(xfmr) && continue + buses = get(xfmr, "bus", String[]) + conns = get(xfmr, "connections", Vector{Vector{Int}}()) + for i in 1:(length(buses) - 1) + phases = !isempty(conns) && i <= length(conns) ? Vector{Int}(conns[i]) : Int[] + phase_filter !== nothing && !isempty(phases) && !(phase_filter in phases) && continue + push!(edges, (string(buses[i]), string(buses[i+1]))) + end + end + end + + # ------------------------------------------------------------------ # + # 3. Union-Find over ALL buses (not just those touched by edges) # + # ------------------------------------------------------------------ # + parent = Dict{String,String}(b => b for b in all_buses) + rnk = Dict{String,Int}(b => 0 for b in all_buses) + + # Also register any edge-endpoint buses not already in data_eng["bus"] + for (f, t) in edges + get!(parent, f, f); get!(rnk, f, 0) + get!(parent, t, t); get!(rnk, t, 0) + end + + function find!(x::String) + while parent[x] != x + parent[x] = parent[parent[x]] + x = parent[x] + end + return x + end + + function union!(x::String, y::String) + rx, ry = find!(x), find!(y) + rx == ry && return + if rnk[rx] < rnk[ry]; rx, ry = ry, rx; end + parent[ry] = rx + rnk[rx] == rnk[ry] && (rnk[rx] += 1) + end + + for (f, t) in edges + union!(f, t) + end + + # ------------------------------------------------------------------ # + # 4. Identify connected components # + # ------------------------------------------------------------------ # + if !haskey(parent, source_bus) + error("detect_islanded_buses: source_bus \"$source_bus\" not found in the model.") + end + + source_root = find!(source_bus) + + # Group all buses by their root + components = Dict{String, Vector{String}}() + for b in keys(parent) + root = find!(b) + push!(get!(components, root, String[]), b) + end + + islanded_buses = String[] + island_groups = Vector{String}[] + + for (root, group) in components + root == source_root && continue # this is the main connected network + sort!(group) + append!(islanded_buses, group) + push!(island_groups, group) + end + sort!(islanded_buses) + sort!(island_groups, by = g -> g[1]) + + has_islands = !isempty(islanded_buses) + + # ------------------------------------------------------------------ # + # 5. Report # + # ------------------------------------------------------------------ # + if verbose + println("\n" * "=" ^ 70) + println("Islanded Bus Detection") + phase_filter === nothing || println(" Phase filter: $(phase_filter) ($(get(Dict(1=>"A",2=>"B",3=>"C",0=>"N"), phase_filter, string(phase_filter))))") + println(" Source bus : \"$source_bus\"") + println(" Total buses: $(length(keys(parent)))") + main_group_size = haskey(components, source_root) ? length(components[source_root]) : 0 + println(" Connected buses (reachable from source): $(main_group_size)") + println(" Island groups (excluding the group connected to the sourebus): $(length(island_groups))") + println("=" ^ 70) + if has_islands + println("ISLANDED BUSES DETECTED — $(length(islanded_buses)) bus(es) in $(length(island_groups)) group(s):") + for (i, group) in enumerate(island_groups) + println(" Island $i ($(length(group)) bus(es)): ", join(group, ", ")) + end + else + println("No islanded buses — all buses are reachable from \"$source_bus\".") + end + println("=" ^ 70) + end + + return has_islands, islanded_buses, island_groups +end diff --git a/src/multinode/random_vectors_data.json b/src/multinode/random_vectors_data.json new file mode 100644 index 000000000..642571973 --- /dev/null +++ b/src/multinode/random_vectors_data.json @@ -0,0 +1 @@ +{"17540":[14406,6714,2940,12717,2683,16200,13268,15068,5188,12767,6388,5311,7080,12619,12424,7732,13574,7378,16098,15576,9374,711,13442,14972,3523,17521,1408,9588,6883,6229,5427,9465,6608,15381,8390,12237,10406,5413,11534,10670,9163,7918,10407,4157,17413,16873,7513,7053,15888,5137,13193,2874,6931,1442,4019,4786,1054,4065,16492,9705,1774,9150,4009,8952,10932,4920,11945,5618,5377,7043,10959,10592,9670,3888,4020,10810,11598,12446,13517,11638,15407,12528,15783,11853,849,14711,5952,5452,8329,17405,7274,3739,13420,13431,12300,9018,4726,1598,8764,8427,7803,6938,14148,1420,4543,13140,11038,5163,1827,2483,5887,15420,9088,2428,12775,6406,10088,16033,10874,628,9013,11086,6870,7986,9650,16361,7868,111,15560,11081,2295,10630,9602,168,6792,1719,7278,10251,3823,10530,1414,3200,9355,2586,4935,17039,4574,15179,14802,3371,11629,12500,540,12533,17282,14983,12199,3197,5467,16143,15984,11548,17408,8089,5603,15246,13727,9802,13284,3831,16003,6114,12574,5938,6545,11578,16894,7328,5833,12186,31,14979,8958,17131,8777,11800,12114,5139,9273,3272,13403,14200,7312,7784,16249,6889,1974,12070,4511,12206,1627,13535,6508,16344,8290,10170,6745,10462,12554,15182,4046,9334,16900,9766,16211,10260,8398,7283,5688,8476,4307,4094,404,13405,13485,1507,3534,4526,14539,10608,1931,5891,8382,12016,7621,8034,10831,7230,3425,701,14581,9674,12975,1901,12133,2298,3329,4318,4953,8591,17088,14669,4547,15086,3149,6124,6321,9599,8593,15619,16093,1484,16221,11609,1329,5622,16417,10844,6794,6162,9931,2731,4918,13843,444,13158,4255,4942,1738,1361,10125,8484,4575,12495,2899,3674,4817,3092,7649,1321,1476,16252,16401,6433,8570,9323,9296,7105,117,12823,16599,151,4221,10709,13703,7773,5164,5765,7582,3449,7414,3568,8704,6241,1890,2791,15557,16733,4175,3913,6489,16017,10091,4250,16519,7572,1040,2135,8840,11335,9683,15110,7921,11229,919,17506,14914,12025,16702,6993,12461,5438,8370,7802,16062,10200,3564,15537,6,5593,7996,12988,8406,2930,4442,6740,4531,14691,15908,14995,10542,3471,3617,488,2898,13082,16788,3574,9391,16679,13012,4799,12654,6338,8649,15883,9053,14672,16095,480,8173,3108,10908,6142,5658,3186,7449,6777,14921,5789,7668,9062,5329,2555,407,13657,11627,3214,3288,5941,2137,6082,13337,4485,1378,6939,542,6013,16302,17469,7021,10749,17261,2923,12087,9328,3337,5177,325,9210,2588,5708,12748,8255,571,860,1861,14960,5037,6089,8247,3981,2691,16109,16602,4777,13021,10633,11528,10535,16844,16545,16479,1908,13446,528,14932,13964,564,9704,5535,9320,12833,6027,7224,6333,10578,6536,11635,12738,1597,1017,1706,17165,7935,2747,5469,1715,4330,4329,8930,10621,13713,11488,13884,353,6000,16300,7465,4274,12658,15177,4410,3642,5096,16156,4287,47,13853,965,9381,10213,4202,14038,4859,16709,6882,1050,4814,12352,6015,11700,286,6258,14525,8569,10739,12299,13775,13207,13526,11807,16915,9585,4392,13232,14026,1703,7776,6190,13502,14077,1800,14733,13726,7177,17456,10937,12481,505,1036,2524,8210,9844,11808,9373,16833,896,15292,10083,171,3664,926,1578,16135,14819,13819,11701,5853,8870,9799,3160,13440,301,9257,6112,1110,5862,17387,6379,9293,11714,17274,16187,4383,14297,14943,17038,904,1190,14461,1631,14712,11000,1472,17233,13315,8110,2436,3355,5031,13768,2637,13364,9105,16495,5501,15400,2847,1290,10437,16234,10127,14578,12719,13679,7922,10112,13670,9091,460,14291,17023,1981,9785,7763,2397,16487,8066,14402,6909,13275,11243,15099,8010,9424,17532,1740,13117,8440,616,9654,2006,16186,15664,12887,5151,4760,13552,12810,16677,2692,7264,6767,11815,17188,10168,857,2643,10716,11204,11628,1640,15361,10171,7358,364,17428,2904,11191,4909,10869,1692,4818,16783,12584,4849,6169,8942,3112,15512,13706,12174,15867,16444,3975,8352,4717,13483,12296,11928,10616,11615,3632,1317,7372,6495,17003,10280,6155,15033,2666,11262,2672,16583,4452,15172,15259,15875,9097,14223,1266,5285,4616,10676,2937,10258,12805,17178,14126,16539,6699,2783,3615,5975,5625,15941,4649,868,2582,11678,17081,17115,8617,3060,6285,16650,2726,15428,12095,12086,12817,5371,13258,10528,358,7419,930,5257,9220,15641,5237,2393,17076,13870,710,1487,16054,3673,303,3464,4306,1680,4925,9011,3190,16663,243,14202,11792,12940,6932,11517,3446,8363,7828,11885,3602,12145,15098,509,4723,16351,4893,8885,5361,14863,7583,10884,9125,6523,922,11715,15933,4286,14833,4400,17150,17063,13019,7436,2573,5955,8729,16244,15643,1617,2957,10375,15306,6831,11463,8292,9724,3510,8915,16430,4524,16968,11398,9644,9196,6069,1713,12607,14478,11372,14849,6707,9340,16832,7197,9204,346,992,7420,11924,1794,16443,5230,12050,1313,1923,10725,2969,17491,5502,10933,3483,8008,17065,2550,11275,12351,42,2380,4007,14212,2141,14319,11024,14306,8021,12762,1376,11411,17362,9551,3136,7362,7556,3434,5009,3091,10001,11571,10109,8986,7004,8878,14312,16917,5107,16884,16036,2210,8818,9611,12948,7990,6055,8130,1101,10121,1698,7810,6966,1674,6924,16386,11445,5704,13536,2208,15617,15815,17160,11698,5698,12824,15318,2982,6319,15589,3488,3546,1521,11253,179,2289,5224,11109,6078,13705,7616,6228,1215,398,16690,11192,10822,17249,11137,3827,5620,4022,14428,213,1155,15596,16438,16224,7749,4756,1710,17259,2554,11209,7510,17352,12418,17498,8640,897,11537,3285,4374,8276,1720,13890,4395,1900,9939,6828,817,11371,8616,4968,2730,2168,909,17348,11406,2127,1140,14322,2509,11574,17168,2806,12955,3303,4121,11417,10367,14234,6562,14114,197,7023,9139,17051,15843,11401,4155,15797,7709,11274,16162,16149,6394,2852,12155,10508,15329,11184,1359,7965,15121,5374,11034,13274,5682,5328,16976,8025,2499,12395,14646,1090,11116,17075,10628,6243,14109,6020,12136,5596,3133,17364,16237,17351,5341,11090,13575,13959,16533,10315,2950,16850,4465,3958,11510,5651,16946,16537,8534,6311,876,2325,11682,4559,15200,1897,12318,2337,5016,4600,14207,9636,235,16359,7699,4450,811,1857,6783,14304,45,3796,14853,502,13056,6604,11508,8182,13818,1927,15723,12673,4214,11114,6606,14065,7826,4500,7503,2263,15693,9070,3987,3860,10094,2203,13728,7133,7042,4136,3358,7502,1948,4057,4563,7060,15524,2235,8891,16420,8675,4124,107,4120,13876,5816,8580,9872,10895,2758,16682,7909,6063,1803,2771,4950,11512,7719,5287,7238,50,5740,4890,4505,4883,790,11140,6205,12224,7879,5049,11279,7242,8557,3361,3045,16642,16490,5445,4143,11993,838,15372,1869,9208,13986,13267,7906,13859,3984,878,15461,8133,7261,72,4266,2609,3675,14135,14721,17510,1127,3740,14730,4140,221,1752,7674,10517,3704,12148,8752,3949,10327,8835,733,13907,14271,685,6588,10624,11456,3169,8644,7588,10906,3426,3521,573,940,12411,8174,6488,12275,2145,10715,14327,14320,8530,9277,2954,5770,13375,1707,12400,606,7089,888,13222,15993,6273,13093,11932,1373,15190,17422,2117,3725,5670,15504,5477,13200,14146,7680,14653,14858,803,9589,8922,3959,15244,3051,696,16334,6018,10928,5601,6550,3188,16299,6997,945,7018,3257,5653,7542,8896,1988,1279,4851,16441,11931,10782,16440,9375,1490,9832,12306,5607,15470,2099,2558,11416,15425,11070,13619,2713,13556,1006,15015,14797,4232,14676,13278,1156,11363,14824,1779,9860,3172,9866,4331,2875,9777,1524,12826,9743,11558,8308,11723,9680,4284,2800,2579,4004,11428,14108,3122,8204,10463,515,14845,7222,15801,3594,9414,8932,6216,948,15947,3666,17074,2798,1691,13966,1097,12856,11908,10454,748,16656,8916,7956,12506,11580,6116,15542,11879,1791,14244,5939,1951,10,6120,4510,16139,13137,11188,13453,360,4026,13695,471,7712,6165,16305,11100,8582,5048,13447,5790,10217,2631,10477,8762,1282,10847,13283,9073,7600,7911,836,9294,3641,13803,9484,7515,1116,1466,7294,11775,2714,4461,800,15675,7293,14867,6483,8327,14123,6527,13730,9517,11364,13628,11849,2639,17370,5272,12128,15120,3720,11592,452,9351,7437,5769,15193,12388,5453,5889,14250,12392,7320,8852,3988,470,6256,13664,11092,9025,11307,16368,6575,4079,17020,13500,1567,12637,15031,12509,825,1333,17060,5252,6038,12286,8837,2755,10478,6880,16950,84,4895,14591,14001,2943,11766,7226,4830,15465,17049,16330,1582,2213,3002,10914,6802,12241,13444,8236,1940,16113,550,15799,11896,3077,9256,7265,4342,5122,7490,16228,17087,14621,786,7578,11570,4047,8396,1822,5286,8109,6094,2342,16972,13088,12103,4525,7866,3224,17022,6484,11064,16112,5242,15250,10532,2870,7765,17197,11519,13831,6974,1748,11951,10033,15256,2032,17105,9352,13115,192,14540,2760,9750,13221,16459,1708,3372,10446,690,318,5306,6511,12877,5677,16660,17338,3211,9434,12608,3789,2282,863,4660,3909,546,5362,9809,8471,8699,2752,5352,14097,3811,247,2735,14176,11168,12000,1526,1550,1351,1296,16355,8664,12730,4709,8552,12303,6295,12323,16662,13415,11182,11956,8334,11739,16259,14460,5399,5610,9806,14261,1983,4875,10866,12162,8734,1167,602,17180,11278,2956,1454,17028,113,13168,15578,4498,2475,6646,12915,13028,4997,9693,14282,13874,9185,3407,7045,5002,15294,679,6387,9401,12356,2242,15932,14197,4618,4550,720,8217,1510,9216,16220,16632,7046,9709,5273,2108,3256,1731,14532,6135,17157,10371,8342,11394,6297,4154,11543,2051,4809,10329,16232,12895,3037,4568,14226,14473,4936,10533,12745,2598,3235,9764,11786,6673,16943,12932,4440,15713,2828,5781,5901,6903,15493,16764,10250,8125,17329,12187,8983,3787,12105,8068,4800,4651,10632,3162,5786,14367,8001,5404,15502,13199,17306,8168,11668,13518,14004,14182,10793,7982,16477,670,10686,5233,14264,14199,8118,16916,9399,10863,12944,2301,11486,7840,10291,1027,3774,2017,8537,9383,15083,13658,15144,10759,7401,14994,8144,10981,9920,16936,5731,3501,13635,9712,16104,16635,8671,14330,13836,8285,51,4725,772,1867,6811,10469,16760,1406,9586,12135,8180,6906,5428,2361,7143,17479,12159,14545,3143,5878,5148,14980,3552,3166,3763,13097,5385,11922,5728,17474,1137,5041,4265,17089,9469,2019,12342,10420,15245,5388,7511,894,17229,6581,316,17185,8786,5981,2616,1965,16387,12040,10009,10137,7894,7005,7627,5140,6208,2560,6896,3032,15861,10993,3022,3978,12596,1584,14852,10149,10046,4321,5660,2656,12267,3087,15380,11710,3110,1639,421,15517,8625,643,16198,17526,5916,15183,2916,2734,83,10829,3217,8751,13711,101,6855,2030,11329,4882,4087,15778,6776,595,6016,130,10665,17366,9131,4945,13451,14470,9972,9745,13376,2552,16391,15990,9020,13989,1072,10620,104,3399,9118,13906,17323,17296,2243,138,8238,2572,11831,11941,1832,12180,3761,8597,14731,4210,6019,12312,7837,8643,9516,7081,1214,11557,15727,12735,10702,10386,12372,999,590,2046,8453,9522,11151,17444,16335,376,17318,16605,17166,5515,11995,12449,9604,16664,2084,11874,14814,761,17395,5798,8412,11647,11080,13427,4477,12837,16861,5897,15167,12056,17147,1424,13289,4693,14928,13586,14534,3604,7504,1483,1611,5299,7059,6967,372,14401,15586,1192,10791,2231,5533,11864,8062,9881,4257,16025,1115,735,4652,638,16276,2539,3754,10095,13459,2615,12407,13307,1768,124,14205,16843,15556,11010,10946,9748,9869,14245,14453,1747,15066,3429,16445,6607,9376,10089,16262,16019,12236,4005,8929,16253,1009,8669,14910,9217,1200,17404,14975,2801,5488,4922,9310,8364,5471,17203,9623,17446,8623,11857,12586,3858,12900,15780,16337,3480,10876,12927,11588,7287,10374,4541,7916,6294,3928,2065,10486,17170,9421,7895,15346,3829,5115,15208,7409,13379,691,14931,14495,5256,5807,4843,5231,10411,8145,510,533,416,60,7979,11777,17388,8183,5920,16617,4091,2671,13025,541,7818,17369,15971,2157,639,11575,14896,12257,17034,13124,5982,12511,12406,1444,10652,9790,689,10147,16542,6426,6948,15800,12621,12532,12713,16986,11827,3301,8924,12539,6954,11851,4264,3769,13154,6933,13923,4490,11054,7445,13341,7440,2437,2456,4963,2112,15199,2867,1121,10821,14724,7200,1960,7705,555,2853,17375,14302,1012,11247,4888,12454,10502,1151,9126,12636,11782,11773,15284,10615,16680,14944,10643,3440,500,15983,2901,3435,14965,3097,12079,9192,7432,10922,15806,11697,12570,17161,8201,4598,8584,12129,2851,7074,9146,7468,2778,11613,2661,9229,1860,11583,15853,11516,13595,2986,13926,12102,11459,12276,11960,12778,746,12273,10817,10413,5099,1368,15860,9366,2834,9415,12001,4737,4665,8,11620,2346,13669,9262,8241,7428,6946,8576,3267,11996,15552,1118,15915,16803,9473,10133,1211,1530,15769,5223,12905,13772,17239,3113,1203,8080,9272,12980,11087,14981,8561,9518,15223,4780,4213,6751,7,6643,10786,12183,17114,6049,8107,1790,15938,3201,5244,2024,15633,10063,1544,7120,11990,4215,1434,14857,7376,714,5066,13637,12493,17397,16517,13220,8741,5350,14154,13763,8520,9222,16258,10543,5408,32,16500,11021,6505,7539,13742,4418,12623,13191,7545,15541,11497,16763,545,5783,16786,13313,16513,14667,6678,1918,12641,956,8087,5146,1323,5992,10679,12156,13152,17424,1959,4894,12426,726,14920,5481,4687,15139,1082,16481,14309,11539,6578,7179,10467,13596,9632,8758,2959,5064,6331,2095,2543,17346,6659,14085,8796,9329,840,271,3049,9621,4139,15922,15967,4774,321,15847,12178,15689,10825,12076,13087,5801,447,15817,12380,4244,4966,3437,16378,17,7851,16496,14310,13255,9183,3254,12850,13515,7711,11318,6923,14895,2136,16076,6988,5707,3454,16435,13223,8882,13241,9078,13511,15118,7011,9368,14296,8414,12107,2390,8475,4696,17535,2158,875,1793,10685,7292,2984,7107,8550,1575,9928,15506,12043,11263,11802,1742,9948,3104,9575,10042,10048,5640,3868,9191,9955,667,16115,15590,15789,5859,3102,2770,2722,3184,11356,2563,377,2611,10871,4853,6554,1542,3897,8405,162,8578,14313,3191,2404,12166,10122,11650,14966,4261,2939,8156,1193,15584,12307,4471,3851,13898,9924,2350,5183,1441,12707,1144,9690,2673,2993,17021,4308,14873,6556,14438,13130,13218,4377,6840,1265,4582,9953,14801,464,15791,1734,4226,2495,16938,9149,16238,17406,7737,13261,12097,10989,7132,5562,9846,13547,17027,5293,14501,14145,11779,12689,9524,5868,13987,15022,5305,2461,15353,5143,15866,3000,13466,9241,10537,995,9834,11412,7816,13038,5260,4545,13174,6804,3352,16242,781,16655,15148,16422,8628,14366,343,9603,6344,3150,844,13001,4491,3748,6895,12503,13551,12138,17392,16011,409,4962,4302,15821,1353,2294,16173,1283,118,823,3912,6754,11501,13944,3941,7118,10700,11458,12100,7217,2421,6174,8101,10684,744,9135,12628,8218,14859,13292,14526,1886,10355,692,17146,68,11444,2653,4501,8063,11011,1263,8149,10021,5480,4432,5585,6547,3691,320,2484,15500,1369,16757,14118,1870,16893,11161,14854,13957,13828,14906,8541,12663,11019,12092,12408,16469,9762,3187,13164,11742,6979,14450,15444,7917,9412,15900,9871,2343,16620,10284,4256,17409,13496,13352,11317,2452,12478,5831,8072,3412,17327,11891,9903,24,2605,11916,17143,7239,14726,16264,3505,2322,2601,365,13250,7641,10286,7019,10721,15389,7891,3653,16091,8146,14806,13040,7397,13962,3238,13478,4454,9951,12181,6821,14762,3215,5463,9807,5104,14466,15969,1150,10750,6010,9066,16134,10808,10507,366,2244,8091,4399,10713,5100,2725,2535,16218,2594,3027,2636,15870,4115,9311,9628,17127,9464,12753,10961,12568,13194,11568,17117,4150,1426,15315,16094,10902,9801,4772,14326,864,9721,9713,9000,8506,6136,5090,10285,15355,5411,13045,17434,4704,14096,86,8614,7724,16958,7804,4507,4131,10638,1141,14248,7304,4690,13144,14958,12391,14081,6334,13186,5492,13067,2533,10774,9864,15511,4905,13259,2089,12143,6326,11103,2427,6982,10268,7509,4965,9829,4106,13837,8338,6590,10545,5,3105,12316,10968,3854,2602,4688,13298,13895,629,5839,6593,2597,7561,17135,5545,7963,13913,1676,2894,1760,13160,2016,2941,7940,16934,1249,4625,13756,9569,9439,15429,16628,15464,9336,14611,12364,8126,8971,5609,3923,12563,5376,13680,9331,16502,14255,6782,10272,8426,6064,8927,10641,7931,10862,3380,13908,13806,16790,686,13969,127,14498,13029,7496,428,5511,7212,4668,12473,4495,9913,9181,11006,10130,914,776,6374,6668,17025,14865,2453,2676,7487,2448,17071,2250,15758,5136,9961,21,506,9544,16649,4898,4927,8873,687,13520,4448,9069,6449,15013,7101,6149,6769,3881,4749,12609,10567,11101,2642,4626,3637,12146,14996,15829,10924,14333,15374,11586,7418,3628,6479,16692,8551,9090,8913,15387,11950,1311,3633,7367,14803,2146,2583,11136,6546,11555,14497,12704,7037,4930,6818,7472,3081,16022,4686,722,14350,1962,14383,7630,1286,1308,8291,173,7180,13286,15814,1670,9833,2460,5457,15320,6465,6902,10644,10442,15046,16526,1058,9017,6500,3896,1305,2103,12798,14866,2804,6690,7343,5530,16087,8154,6101,2363,2478,16587,8391,5896,7303,3266,15435,12639,17008,3343,3715,2796,936,7286,10672,13631,11343,619,2003,5425,14558,1450,2649,6650,10254,13060,11382,14744,8714,15811,11624,2192,8869,8216,9495,16032,14592,6973,5507,485,3451,13782,17221,13611,2434,7431,4297,584,7371,11461,757,7970,11205,2309,2681,7082,16971,3223,1064,13925,1711,6622,4549,16008,7379,4038,8265,2138,17494,1848,14577,13652,14700,6248,3233,7185,13588,1255,13100,10771,1589,3577,2515,2489,2829,300,9655,8566,8221,16530,3132,13018,7137,1374,791,4032,7519,7288,12124,7350,2848,5217,10370,2064,17325,4207,1906,11056,8328,13398,14916,2238,15674,10210,983,6914,8515,13126,4928,15322,2451,5417,15145,8351,3395,2527,9107,322,3484,960,17403,13457,14907,9433,7366,1894,1347,14968,1197,13877,1293,2966,9982,13206,16546,9688,16082,3383,16705,4181,10104,12123,7842,10674,5534,14467,3517,3603,9994,10343,8523,1217,15307,6482,16525,14305,10949,14880,15308,2364,261,1209,14353,14317,8881,13368,7703,6251,15551,6702,410,11427,1629,17029,5063,12710,14948,14717,14418,9275,29,10475,4533,16625,10484,11202,16689,3409,4891,16758,8347,11300,12232,6171,23,7751,2330,13864,12929,332,1749,9742,660,13404,12749,12772,13530,11746,5300,9198,3994,4025,11926,5588,3058,12196,3777,190,10550,11115,5238,11381,8434,11418,2668,13316,12294,13078,1256,2693,6296,1212,5458,16154,1382,56,14034,2423,1204,5454,1712,11174,1964,13878,11976,9922,14079,5884,237,2988,5202,4118,4113,6324,4919,16260,14562,972,13498,1556,4785,10501,887,6858,13030,2173,13539,17458,9962,13063,14856,6030,4758,7464,14740,6237,1982,2332,14766,3536,10661,11671,15271,14838,8099,13603,10234,11649,10893,4174,6809,5518,14670,12093,1412,1210,14150,8781,11493,3745,11507,4940,7075,8245,2890,13245,9917,16292,12134,15276,12250,14527,579,4114,11421,925,17322,17072,3453,2813,7332,8687,8707,5141,4494,9084,5210,17449,4826,15911,16797,10111,14624,8747,2802,11164,16922,14259,11334,6645,12370,10241,6260,15695,15994,10204,3325,9122,10464,4904,12622,16473,8821,1379,4272,13416,566,2706,11977,752,1590,16084,11661,5476,1285,6054,8903,9307,5444,6961,9534,10108,6303,12669,11068,4803,5980,4428,16522,953,10602,1375,11811,8719,7220,9333,12080,12111,1105,9841,9102,8339,3465,6943,446,14316,14278,1301,14147,10118,13441,2096,12795,13701,503,14208,8826,2142,15890,6209,3822,11067,14458,5824,13358,13685,16523,9045,11820,8277,5006,10675,14359,7134,3277,11966,13279,6254,3193,2268,9162,2441,399,17205,3357,1169,719,14149,5702,12741,5363,10584,12082,12009,14601,10586,11476,2694,17433,16449,4327,12240,7314,3578,15525,11106,13707,6001,15412,1280,15430,14513,13057,12291,13930,8712,2106,5126,15728,1259,1898,13974,10789,4581,13686,5602,2820,14977,13301,14403,12518,6822,5435,15752,7457,9850,11957,9042,16596,5864,6307,7568,14816,14384,13476,16604,1173,4441,16296,3349,12279,640,756,3563,11285,14280,3208,14620,5255,5437,3805,7989,5373,8325,1439,10770,12032,3078,9059,2354,14080,1979,6519,1866,15991,7831,211,5379,11270,14684,10740,11498,2205,16541,7323,15568,2185,4493,10388,16819,7354,2845,11035,15105,16073,9682,11144,8206,9205,9488,5520,205,13233,232,3616,2553,10376,8479,6774,11618,15837,8166,7976,8455,3544,1357,14252,8892,161,2347,4128,10668,2721,3916,6274,11454,2176,15716,17312,13883,916,9676,16817,10794,4583,5027,9672,8683,7477,10208,3747,6958,12472,11097,4695,11344,4276,10921,14893,8140,4242,14121,8672,15614,6416,1174,11156,14032,4874,12410,12904,4938,14655,9579,7334,11640,3279,2029,16984,14642,4952,15499,10476,1607,16889,10995,6827,384,9967,176,7928,1170,5442,14924,8048,8670,6435,4016,16269,9817,1856,1823,974,9476,10803,1078,17251,3580,1480,2315,2856,14483,3907,13785,15462,11898,245,8594,16326,15413,15663,4714,3514,1716,6280,6860,12088,16512,15186,15928,5735,11093,2978,3275,14228,7662,12859,5668,3539,834,7971,9838,2040,5984,2546,2166,19,3543,3874,12747,11186,7650,7109,8977,2050,10978,2306,273,15377,3891,3164,14689,17011,9739,14394,3558,10337,10540,15498,11878,13133,2675,8013,15635,4538,10658,10667,16589,9239,6128,1003,4663,9959,10309,5739,13339,8470,7872,14076,14113,5085,11840,14781,12986,11261,7574,7859,17214,10041,11003,15262,11439,13872,7066,874,92,12884,17142,15889,5662,13698,16123,3506,9651,16610,2745,10916,8862,2318,1743,8529,1427,10101,2544,13059,12121,6378,9937,2385,17164,3752,7974,7546,12329,1168,11899,12759,12890,13622,4148,15011,4462,5675,15219,8442,535,661,7591,4352,553,13811,14435,2374,5159,963,2918,16560,11794,15150,7399,3557,12429,9303,4476,5695,2430,1453,1509,15654,8993,10402,7689,2114,13318,6464,11135,4731,5372,7612,4881,1909,2703,4850,16964,7256,4134,5713,14178,5405,8884,12921,11730,9096,12027,12355,11124,5873,3658,3073,5591,6050,15440,3801,16931,5200,16882,7813,15623,15672,3526,10441,6602,968,424,3115,8355,16418,13929,5606,11836,17440,3194,13149,3475,4212,6140,4519,9087,12285,7980,8304,1106,12846,11925,8618,16918,1033,1241,14884,7839,8705,13263,14227,8425,5551,7070,5460,12659,11176,8234,17358,15084,4011,586,280,9160,10397,13777,14964,3207,5547,11295,7385,2561,16769,14850,10103,6675,9483,9981,544,15257,4433,921,9852,7391,7535,2526,4645,16746,12943,16688,16711,11876,28,3265,12480,3128,15316,3646,4280,7176,7491,4138,14279,14737,6187,2025,9541,8061,924,6897,15581,13458,11619,7499,10248,17332,9002,13290,4317,12264,11045,1094,2836,6186,5227,2154,3661,831,3719,10999,15782,5667,11929,6368,10623,17007,7206,16055,11460,15871,12476,16902,12304,16538,8654,9734,2379,12901,13851,9542,9815,10710,13288,11256,12497,13771,7172,14609,11359,14978,5676,10934,5409,1844,1020,7453,8757,14210,3655,3683,17226,5565,5026,10955,16352,11464,7739,119,3572,6848,7250,7914,16005,11403,5462,5208,2777,7488,16929,10423,10875,2472,8547,6451,5639,4778,7978,13671,10483,52,6857,1164,2059,10073,17079,6930,5552,15777,16497,17414,1245,777,11603,15281,9882,15157,16955,8033,1961,13180,5674,7579,16274,16549,6497,10692,15535,5619,8613,10113,14272,4933,2976,5942,7805,13467,6175,7832,13629,1705,11084,13598,6530,13892,6340,5858,13559,1986,15382,4926,12203,7671,17209,5281,5828,3922,5433,13080,6090,15764,10320,12457,8663,12058,11395,15771,11596,14235,9681,7723,9194,17113,1218,12632,14891,2077,14063,16776,16282,1278,15273,2304,9813,9722,7112,14547,11472,14102,1463,951,12588,1371,14989,12722,12973,9964,16751,16671,17453,8481,12373,324,6213,17480,2178,12339,11120,3806,9027,8346,14617,10253,14905,4730,9803,8211,13463,13026,4278,7327,11566,760,4810,6259,6290,6576,2382,11708,10150,1459,15247,3697,16489,14192,16693,13569,1494,5919,14484,2359,3547,4328,11910,11180,1032,3134,1610,16118,6423,6156,4415,4171,12115,12993,4060,7174,3885,3424,10324,9519,15203,14727,16047,9426,16360,17368,830,8727,8600,14347,2383,12416,3492,7173,14881,5241,6070,6845,6983,9497,12051,4766,2446,11562,455,10839,129,9609,17118,16978,2368,252,12687,10468,16511,9385,4165,15876,2299,5956,16010,16241,4812,16793,12699,11968,5959,8959,10194,3192,9926,15162,16412,16981,7051,4263,3924,2335,3205,7843,5323,11122,12880,16306,10090,6538,15041,11232,17330,9771,11636,11397,14095,14110,16432,10201,5841,4479,10418,11584,7402,13182,14904,12010,3378,9710,8647,2159,14314,14,2092,304,2858,7365,6086,3828,1568,4987,208,11975,6695,11166,13592,3210,9521,4247,905,16483,9021,5221,3871,11365,12764,9251,14024,11567,8972,15432,16110,342,3948,14715,15897,3508,14749,7056,1929,14440,7576,3993,7400,16741,10173,1896,10256,2327,3651,10449,11769,14496,6976,16128,5383,9774,4089,15215,14016,10390,10650,7184,9212,5993,11660,4092,6865,11276,1622,14947,7268,11633,15899,16312,3441,15930,8375,4497,4323,8513,8965,10425,10499,793,7216,11841,16201,15481,4879,11089,12797,4111,9556,758,13340,14529,11075,16074,15842,7768,17402,7731,7356,1247,17523,14923,6269,8315,11330,4402,14425,12029,14276,15132,3178,3804,1077,7687,2230,9,8243,9938,15055,519,7930,572,11386,2288,6501,5886,16629,7189,7830,4694,4496,4100,12417,4546,15950,7319,6798,11147,2670,9287,7669,11601,7269,4365,9528,4703,14444,15957,14610,17047,7240,13299,16963,14988,267,16111,1783,12419,17108,10361,13933,6891,11818,11525,612,15411,13330,15161,15286,15477,14416,11234,17337,3758,1883,13455,1456,16290,11639,12403,13424,17314,354,7147,10645,2664,15446,12875,7898,2914,9158,2968,4370,10225,1076,11930,16597,15319,3373,9756,9225,16637,8491,1654,1577,14520,2925,1723,10020,1026,11531,6037,10243,13646,8565,9812,7102,5604,3951,8472,5906,10889,1562,12385,4562,4099,14239,5840,14173,16072,2045,13767,380,6778,9601,8773,16136,12939,6876,4949,10097,2542,14225,355,14561,15521,12498,12594,5259,5001,8767,6437,12925,7691,9746,14844,1096,2907,2712,10460,15071,1198,4196,4530,2425,8848,11331,8755,5851,14982,4762,3010,5138,6524,2648,9396,10865,11264,13493,4417,9083,7330,13178,10305,8859,12190,12517,5465,15232,3318,7973,2700,7104,11610,8058,8708,3780,14456,17381,9462,15241,15536,3452,10699,6981,2317,1468,3757,12576,3107,8740,8761,7302,8155,11608,1055,10556,11058,17298,7088,14209,14820,1726,13638,12711,14219,15503,4489,10128,532,3659,11141,35,9031,4429,5532,12360,11961,13142,2818,10029,9189,6235,9757,14962,1348,13605,13571,15102,8908,15327,12757,10867,7424,1250,12430,1753,4268,4458,3724,14315,7460,1688,10061,15807,675,15447,3850,291,10363,4724,12015,14886,7357,15818,3377,1825,14821,16616,14909,657,4605,3225,2574,6057,10428,11991,7623,13849,3379,10671,11699,16520,6091,9633,12801,3331,9077,11203,17487,10249,6738,16700,5277,9211,7812,10316,12358,7417,3404,11542,3718,9878,8165,10218,12999,3351,14285,9731,8801,14666,9686,467,16983,9337,1806,6739,14177,14295,11530,13977,3784,11597,9675,9539,8833,2338,6560,2657,15221,5968,680,13202,4481,6252,16278,11752,14092,12743,16018,6833,223,16295,9250,6959,1942,12041,11023,3973,5855,14343,15572,8365,14505,3295,14549,1799,9459,16342,15501,14005,10226,11521,7187,10888,8987,10917,8698,13788,14381,10611,9843,3565,16811,7360,8518,8281,4556,14448,12170,7194,8104,8379,9429,11324,1229,11240,599,9751,4001,13880,9957,4427,3154,13640,3119,11004,4903,1074,16601,3263,5182,9727,12691,955,14477,209,1292,4229,5782,10655,77,10056,4821,15985,11357,7756,14386,5540,16567,14604,4336,8250,10751,7881,12191,1062,15492,2799,16168,14742,17091,9558,1892,14493,14729,12149,5451,9645,16742,12396,11856,8466,123,13469,16853,16341,9099,2284,6499,9730,16353,6400,2085,16785,13024,8999,6962,13848,7647,2455,3545,11016,6994,6431,5794,12295,13634,16028,3586,9694,12660,5799,14294,1838,3473,14927,11520,16451,534,1714,6346,8981,920,10362,16766,15563,16667,5483,11549,7006,10439,17243,11375,15003,14500,17186,10898,15721,12690,16762,11326,2531,1851,13006,3063,8538,3696,17407,16059,1560,10093,13947,2377,5969,7474,6283,5205,2669,3853,16323,7527,17507,3540,16598,7620,14423,11350,2576,14463,7501,13773,16777,5253,6278,717,17518,2349,9326,13074,16761,227,16860,9384,3083,7559,6638,11560,3768,14452,2028,5990,973,7551,4856,16325,8630,14541,14602,3007,14813,3519,2248,15884,3316,11559,16374,7801,14078,12325,16117,17536,7050,11745,15963,1143,7889,5628,7841,3786,16639,4608,6312,5791,6383,15943,9947,10466,10185,15142,6708,8053,15406,10419,7078,16789,12815,7347,9747,13252,9197,6402,1499,6949,11360,5505,7809,6249,8526,15143,7326,10359,82,1932,5931,12620,9587,2074,10107,4449,15338,5539,16399,3292,520,12054,17013,12949,4368,7421,9012,262,13351,15760,12515,16362,14663,14829,6005,12894,5605,14138,7659,11992,14556,9428,13988,9403,15101,14908,1808,11646,11556,2979,7149,10495,12966,6401,662,14736,2169,1564,9467,1636,7677,5038,3588,5566,6507,6073,7770,12012,11342,3549,11884,837,2893,16857,7695,15849,14542,7755,12960,3203,12042,10626,1534,4631,476,8378,9973,11252,17228,6107,2476,14652,4238,38,1049,15848,215,13211,3687,12019,14019,4932,4642,5899,10600,4153,15649,7788,12811,807,9787,626,15893,9863,12210,8307,2310,9512,14830,3807,4554,7557,8512,14363,15185,15917,5397,4248,17290,15599,1339,7425,3689,10067,3273,2577,11835,1694,9361,5921,5757,1154,1619,5283,11268,14650,15832,11912,13161,9271,4740,14864,5754,1122,5542,14106,8815,15034,493,10768,10034,12062,4727,10553,12003,14628,15471,6985,1936,6102,13960,10069,2091,11239,13720,17179,6916,3861,14890,16166,13011,13523,13448,11299,8855,5473,3052,12694,11643,8620,5307,16855,495,9577,1063,3821,1815,10606,16493,13797,1213,4670,11030,14553,3431,4151,7191,10318,14090,9956,3251,13487,11451,12819,15794,8331,9595,15376,15192,17349,7532,12265,11219,13823,13732,6144,12969,1288,8876,7249,7296,14799,13584,9992,5327,580,14765,17256,14339,17014,8283,7661,16452,9029,3255,3976,12682,13958,3365,13008,9259,16152,8726,14710,2458,12305,9782,15774,282,14037,11088,5396,8910,14930,16075,1659,11212,2497,14035,13005,2888,15954,12228,8527,17380,9677,12709,16056,2240,14934,14807,8317,317,13465,16801,1557,15754,5775,10490,7924,4270,14358,2302,5812,4981,4934,2345,9698,4908,8900,6336,3028,8460,13830,3347,17070,2719,15343,5717,10683,441,9435,6039,12838,10169,15009,5012,15974,3711,12618,16129,15779,6453,5503,8711,16484,16267,8874,13755,16994,5871,11150,1656,14633,4066,1130,16921,16652,6351,6753,8069,16825,13941,2188,13794,15437,6446,15566,10687,2879,14083,4033,7658,5659,17044,15669,1605,14720,17006,750,15001,8710,10945,16949,8374,9789,18,199,9176,3317,8797,17090,9888,16096,1868,7117,11758,2596,3842,14472,6710,16037,14163,12643,8124,734,3815,8634,4384,15555,3795,17441,9858,1920,5125,10972,1990,8169,8411,12499,3244,8119,12024,2366,3293,7771,11803,8888,2280,12233,7676,14883,2435,12020,11955,79,17159,3992,5083,10237,10045,9769,7219,7997,16864,12862,2687,12140,15665,6382,1207,1148,9477,4822,5074,9009,15927,16554,8383,10577,14137,3589,12414,2658,12466,12496,13912,1163,1620,5548,14612,16911,3062,2837,15178,11231,1992,10795,12458,2078,11707,12696,13326,13192,1107,3088,5187,14696,1759,2473,5419,13608,14842,1635,13360,5932,16364,14877,10022,3414,13486,2262,11593,10879,11754,6320,15715,17482,16428,8864,2053,10135,14507,12936,13209,1177,5796,16415,12057,6925,3,10373,1161,6157,12220,16486,12780,3736,3174,1228,8353,5856,1093,3249,10646,12277,15403,5495,1041,8690,1665,11656,10696,10591,7939,11336,13946,16192,10271,11193,10481,6227,2920,5595,1008,11214,14831,9397,2419,3417,4259,5131,6907,6791,9629,16821,12169,10754,2999,12331,12603,16553,5380,17301,5106,15918,596,13439,10962,3381,9737,204,10214,7637,8844,13219,3374,13871,4992,16181,4305,11294,7065,11959,3261,9402,10321,7209,4978,8219,7295,17190,8689,13700,15165,6407,10719,6365,798,2395,17109,698,10973,1117,3927,3596,13562,8059,12970,13503,5168,5289,4744,3001,6425,16365,9538,5387,14703,1704,630,5059,7673,16035,11197,9506,13678,8239,8358,9304,10990,2411,2417,10909,3584,9453,2843,1276,1330,2034,6806,8610,249,944,13490,15181,6007,3979,6569,7878,5743,17347,9288,12670,5213,1637,7549,14825,11462,13195,6164,8454,11783,1805,5466,3968,12038,15598,8330,1588,13540,7743,15920,15189,5613,6823,11663,15028,11420,13429,12716,13642,8400,16174,5910,8673,14242,6385,330,3716,295,11085,13077,13938,3406,13937,14427,336,11446,3592,4192,4351,14918,8685,10838,8350,15039,3990,561,15253,14702,10761,4782,4378,12624,984,16195,15140,5692,7652,12734,10228,5216,13873,6301,16636,16557,11289,16738,10813,5940,8404,3234,7427,1958,17468,12983,12967,8419,9998,10527,14665,2803,13577,3944,11737,10547,12309,148,11890,16339,7259,10060,906,8092,13397,5308,10798,7670,1789,1780,4789,16498,6654,12432,5726,2540,10982,2946,11328,17310,13557,11816,12098,7829,9814,17289,1431,14273,9152,1267,3006,386,16106,8802,16289,8478,9663,10956,10598,15310,9983,8079,1309,11733,7634,16007,2929,1184,6626,15543,1910,9900,4552,12934,15195,12540,16147,11680,10717,6226,5430,2344,5264,1623,5381,17136,17015,5527,6885,7140,15895,6108,16102,1066,10206,7306,8088,3146,4324,5486,16350,3515,11982,6978,3790,11452,11824,8302,5869,16092,12014,11830,14290,5349,3729,7721,1999,4761,11073,13477,12799,10595,6686,8143,1035,15038,10601,1624,6040,14775,8612,1517,8197,3299,7538,9786,5304,5665,14029,15404,12413,14550,6652,5198,2297,8432,137,3612,556,13183,6537,12110,7929,5057,9308,16879,9615,1091,6067,1312,4117,3167,9173,4912,12308,17399,349,6160,2054,8360,15531,5811,10281,10681,9348,9202,16835,8093,16531,13309,15973,1689,5393,17128,1251,14289,11712,10690,16049,4203,15819,387,5030,9565,2420,14414,7848,13116,10525,7324,12272,17110,13310,12885,114,8163,10289,1505,4093,6746,2529,11978,1429,1545,4946,10482,14162,5446,458,8772,3082,8052,13855,5267,5356,13991,7175,6514,2258,9895,15014,2086,5689,5641,11368,694,7733,2292,16992,10384,17360,6053,2610,1727,1188,6268,8151,16177,3296,4380,13276,10812,5758,13984,12212,787,12566,3307,8517,4072,13825,2186,13867,6615,8960,4588,11400,6419,9236,5883,16163,16309,11563,15836,2575,6658,4373,6566,15282,15565,1298,10035,1978,11855,8162,4995,16514,14985,8721,6462,1235,14445,938,13287,4576,6096,10252,5579,9923,7116,1829,16524,11269,7213,4315,16548,5028,5927,4217,6516,8259,5189,9008,2245,16887,6820,4711,17206,17284,6264,5207,10474,8744,753,3413,5039,17001,2651,3939,16586,10424,9270,14267,2876,7396,13704,17461,157,6335,16904,7597,5153,15266,15822,1132,12616,16547,9781,8002,15970,14141,16988,3701,7682,9372,14638,915,1449,17295,1642,10007,3529,2564,2949,15966,12435,2241,14025,14064,6221,12443,7038,1718,17450,11688,8462,102,12127,12546,7533,3306,3996,5924,6671,11622,2122,7223,678,16268,2225,5337,12383,15606,10209,16973,769,12284,5156,9906,16845,8369,1291,9496,12928,5795,1669,8343,14514,10718,4571,8137,14698,3348,5635,15455,3469,4954,9470,7508,3921,16695,15278,1845,8906,15955,3250,15831,15677,15995,13181,2620,10498,5301,15939,10116,15484,198,4869,12202,13177,13861,1273,11552,20,13224,9765,759,13055,2333,15128,11502,7095,8311,3070,4012,16951,14257,11049,1405,3231,7257,4455,12976,2861,4680,9004,8316,959,17040,450,11370,14573,5414,10142,13672,11471,9357,2131,2123,13114,4167,12908,11008,2463,10712,9499,6452,3622,4201,14951,4018,8051,13179,15240,2443,5898,1486,65,7604,9800,16771,8636,4054,9578,3334,11414,166,17281,5170,9301,13370,14778,6644,4591,5013,4512,5335,5531,2931,10380,9111,15452,15427,7702,16669,9362,4557,3767,13213,10396,1394,7727,15456,1031,10457,17527,1826,12357,17189,2386,901,15073,11007,5809,771,7908,4838,7565,15023,16574,16885,14164,12573,6474,7246,6270,16063,7611,11408,1039,8627,14716,10566,12564,14249,789,15131,13990,2720,14680,5036,15340,14100,658,11041,4857,17182,13567,3103,4098,13752,3089,14152,17172,432,1219,1370,15337,5152,16565,276,7375,16609,16795,10028,7615,5764,14196,7736,17037,2695,16718,8975,11958,4177,14420,2355,3035,12650,8886,11201,2855,7248,14231,12379,15958,10002,13800,1922,2679,6729,2902,15739,14792,4876,14587,1987,11873,15339,329,2052,13997,2221,2194,4864,8871,11235,8102,6131,3312,799,2195,8957,4208,4736,11308,6478,13118,5730,11751,16969,7675,12205,11123,13651,597,9151,2035,6898,2702,9127,14899,17064,417,11438,1944,9738,13328,11927,11167,5358,14888,12866,3118,17155,12036,8114,8264,12930,4447,8381,14400,12164,9823,453,5394,10660,7988,10880,6631,13231,13407,4806,4823,3601,3281,13419,7181,6912,9094,7237,4313,1295,10589,8502,7124,413,2388,10319,5771,4294,15687,928,9350,4534,12543,17515,2689,8046,1565,16439,12193,6477,1911,8939,14485,5746,11002,7463,15220,10562,11190,4994,17534,11948,7550,8096,1594,7369,14475,4712,9503,10451,8945,8606,10047,1319,16394,4601,5797,3489,14571,13613,12655,13653,496,12549,14637,2840,11288,6062,16390,16347,5679,9072,1817,15119,5172,933,13985,3555,4770,8413,7536,14112,40,10246,5673,1438,14299,11155,16304,16999,16710,9394,13462,7493,439,15129,6685,4031,548,7255,7730,14378,333,3359,10688,10572,10440,15079,13332,2507,6563,14739,10131,11817,8943,1820,13778,1133,12674,16308,17250,14685,10014,8978,7068,17361,9501,8516,12349,7534,14298,8567,17415,7390,9055,11286,1034,13378,7625,1778,10132,3852,15575,1914,17492,4189,10163,8904,5312,6544,13949,9386,11774,8688,8228,2171,11946,13270,5937,4899,13545,7943,1098,13741,10344,3511,9736,10531,10450,14047,6632,15709,853,1334,2007,4446,5654,15295,1551,17204,10346,2104,16851,3242,10084,664,16197,12453,12610,9359,1364,16755,2261,7717,14709,3114,14073,4795,681,2551,6309,14723,12679,2433,270,2749,4200,6152,10352,1773,12891,11267,14922,1191,10049,7825,861,16205,12490,11194,2717,15629,8279,1996,3809,2938,6105,9411,11450,6327,17217,2031,11886,3390,8078,683,15528,1955,5310,7746,7271,2444,12083,17273,5484,12545,5145,10698,10823,8843,8605,5047,11687,4291,2625,7016,10000,14622,15020,11393,4469,1013,5626,4943,1411,15976,8990,9638,16230,16752,2629,5907,9141,17240,2340,2399,13982,8359,16122,557,16898,8324,3504,1655,10070,2827,13189,10892,7642,12777,3520,17068,251,4621,6403,6910,25,6253,4972,3707,11001,8270,8555,5819,6535,7873,1751,37,7099,13312,423,7380,6757,6129,9005,8563,6196,314,10752,16729,1966,15147,4081,13965,9810,795,12839,6380,9648,15075,3849,7218,10003,6637,8713,7163,16142,5750,9231,3810,2381,12117,13329,9822,15961,8877,2686,7415,6430,7821,12013,16071,4794,5973,4784,12255,633,4863,14678,11316,9261,1519,2493,8188,466,12126,16967,763,13888,16189,2121,7640,4503,497,10707,7772,11658,12398,15466,10222,14325,4589,12317,2842,16270,6573,1109,263,16161,16431,9557,16754,4344,9255,16659,9942,827,15264,15790,16450,716,16985,1458,11862,7757,4529,2281,11634,11005,12756,11189,11677,17303,15267,1261,12652,8242,13508,8553,7514,11165,6242,1543,17427,549,5193,4671,11391,8054,14688,11251,647,13110,4484,14728,14413,6579,10891,12048,4956,3627,8117,17416,412,16641,1771,9010,9646,14068,17438,288,11499,16744,6905,17483,12462,13710,13607,14056,12893,3226,8501,8539,5021,5487,6271,15274,9324,11673,3967,15802,16482,8113,11482,15061,6936,7643,6361,6056,1056,9643,4834,9767,120,10506,8017,2199,3236,7340,11523,2218,11347,1755,8709,3163,492,4743,3219,1201,7110,16651,12755,15166,8817,6364,5129,13739,4739,851,2520,13075,13615,13035,8656,4752,15479,13824,2835,15509,10086,9461,9195,3974,14010,14969,15607,10165,2557,15395,12207,9036,14961,11547,9289,14155,8373,17340,6790,3332,873,6551,7728,5403,9485,4917,13228,7899,8895,14370,13716,12022,426,11813,7211,4053,4783,459,8416,13505,359,14528,2249,16912,13920,202,6917,9914,11353,6728,5778,8949,12077,10573,13822,5802,6163,14641,16373,5525,9199,10827,1830,13132,6080,10773,10662,12661,7405,8495,12781,978,2863,15410,6369,16736,5594,8637,9685,2081,14734,9830,9268,4290,12450,3559,16870,1297,6758,218,13918,9915,10197,1685,9338,10828,14040,3386,9040,8970,4847,5034,7393,6088,12225,6577,10582,14843,879,8587,10065,6481,12078,15044,10697,6992,16480,6972,8790,7836,8269,11852,15667,14193,15352,4579,8076,2180,12742,11249,6072,2953,7036,5766,10080,16203,12726,9600,13805,13445,3611,14190,3305,5555,132,1386,3385,15149,16961,13430,15243,4006,13150,8544,6058,4613,12569,2026,16899,9164,7953,17009,2525,17101,13214,10255,17139,11582,7344,13609,14307,14191,16556,1667,9054,16535,10236,9200,16888,15187,7028,4872,10564,12706,14253,12116,8050,5550,14738,12504,13972,7886,4311,10351,10731,2973,17396,9549,5279,7547,17513,3099,11226,15081,13388,8172,9187,6542,9080,627,11449,2987,9494,12254,8988,6651,8023,7339,6168,6006,8609,6929,7252,14391,8646,4457,1171,10753,9989,7520,2826,12035,7822,5246,2934,14468,135,3728,15416,2256,9387,17336,5616,17244,14817,462,8572,5184,17372,1638,4407,5736,4426,224,801,15283,4088,5033,2387,10669,17032,8435,12371,13654,6851,3066,2459,3229,8286,12555,15714,8448,17042,10136,10493,12188,10870,1436,6785,3712,12712,4062,13699,13783,16743,8417,9510,14340,14434,13390,7820,5506,6017,4338,7864,1811,14668,12785,6480,8278,12460,4669,4735,167,3300,13108,7153,12288,13260,8866,8385,266,1766,11481,8629,14614,11259,15054,12195,7936,12600,2041,16395,8784,7762,10156,8233,14275,4209,11768,4355,2293,16215,5902,7875,9749,3356,4516,13602,11722,8184,17367,2932,2201,4186,16409,5470,10951,7484,7245,311,1128,2764,12230,6548,10087,10421,2767,14356,6014,10612,14594,9877,9934,6440,7632,9046,15823,10762,16781,1139,829,12889,6567,17355,13620,8806,16697,15549,10347,11814,6867,15364,14186,11893,5957,6493,350,8019,8246,970,15539,14635,3623,1887,11654,490,12787,1520,3808,8820,2614,11947,12656,2396,4991,3008,1938,2865,614,12219,16699,5963,14165,9030,11759,7876,14560,12790,13868,96,1633,14903,15458,10931,1876,13585,1985,12184,13049,7785,11208,5767,1390,8203,6663,3394,5793,12835,5288,6522,15304,5716,14887,12721,1355,4592,4023,6771,10747,12912,2398,5078,14606,13004,14538,10431,11859,4590,17017,14351,1225,9653,530,8070,5485,14474,14862,13421,17333,13383,13282,4586,8879,8067,12561,5101,3152,11012,3952,17102,13240,2715,11709,9482,5239,11242,2356,17116,15414,4664,14348,4657,12647,2010,9457,15588,17373,11303,949,15692,8467,1532,3656,1841,1632,6065,8717,6328,7247,17344,6179,14430,11914,7823,7655,12926,8361,8980,4820,13320,3439,4630,16612,3462,7774,6217,3396,9719,10850,13111,2769,6046,8004,12153,9500,6688,1377,9101,1737,13205,6355,1108,14987,11917,2047,6200,13942,11705,15134,3743,6100,13495,12298,5560,14576,10605,2530,4517,6003,3561,7811,10864,16838,1842,1491,16804,7871,3940,2759,11750,14563,16021,11071,5014,15342,3157,7635,15332,11322,5614,3175,7639,2570,12247,10745,14371,14124,2688,16042,17052,641,9252,3726,13336,3014,17177,1493,8480,13682,17382,5814,10727,17371,14851,4751,4182,1302,9022,16369,13770,8622,15218,7020,3760,13277,4149,17055,9561,1274,8765,7384,11142,4185,12882,12465,16461,12765,2232,3459,16380,7439,13827,15603,17311,16318,11903,11607,16116,7122,13050,501,17447,8301,15450,10231,16829,7311,4044,16,10081,15491,15228,388,27,2465,4831,1002,7448,16377,1954,8452,5382,10596,15948,14151,4434,5054,12853,4074,12439,845,5421,2265,3585,7882,13758,1195,14946,11099,1461,6122,10488,16607,11429,4622,13865,9015,1069,3537,14476,6498,8220,8319,9779,3302,13069,6568,5354,9912,7458,11755,12952,11216,10541,13242,11524,4553,8850,11692,16621,16940,4980,15945,14603,15694,5321,11612,5294,1679,15180,13951,1231,2654,4362,6300,11430,3165,15809,8914,1316,13528,6133,95,9019,9811,16058,1481,17339,16648,438,3243,7258,8589,5149,12869,2814,16317,3507,17335,1372,2591,4673,13743,2236,13627,5820,4555,2271,15111,9227,6630,822,3605,11988,2504,942,1095,11662,13356,16250,13832,11292,12488,12359,2866,11009,6736,15196,1467,11223,4708,6951,14023,5590,13081,15229,11441,4292,2613,2370,11419,1682,217,14776,1946,12386,2645,11590,3727,3512,1976,6529,15532,7273,16064,12808,13650,2958,4236,15925,13856,15053,961,4870,3750,11040,4718,9325,16750,9622,5983,5211,10458,16081,9865,2913,6921,12784,11078,13541,9509,13792,15845,2634,9460,16491,13866,8065,2663,11108,9463,3626,14308,10738,3043,2093,9048,7606,12740,8974,7584,3047,8732,11974,3366,9898,16397,10979,3779,4787,11169,9430,11422,110,15743,12965,6648,9708,17525,5863,5266,6412,16576,3198,8639,6332,3864,11641,15158,8511,2991,13570,5222,17162,4436,11621,12173,13239,9479,12397,5936,8743,3309,10708,2578,14070,10186,11728,3609,8490,12786,6396,14516,539,10177,3734,4683,1875,10954,15222,3202,6726,6830,17237,11757,14707,16045,2618,7411,13542,7352,14915,12192,13761,16434,4387,2881,17263,4382,16614,3427,4985,13305,13139,12139,9659,112,5407,4915,15988,4386,11949,10409,12982,2115,12451,14658,10219,9058,5584,7169,7852,8902,10695,699,4961,3759,2239,3698,939,13750,8791,10594,923,981,12350,10085,15862,4561,3239,6218,14999,12685,14940,1796,4753,12434,2699,6110,9783,11787,15580,1269,7944,8312,340,1989,12382,15369,10837,12814,5985,3692,12258,61,9147,780,105,5806,16014,6127,4627,15035,8074,2409,6724,6239,10158,13814,7447,13943,11888,9970,14237,14631,13914,9502,4281,8251,2177,9367,11236,15301,6234,5706,9553,8129,17390,885,9607,2191,16426,10303,8073,1585,11149,14015,12668,15207,4198,98,15703,8923,13450,14758,7297,11055,3814,5638,5933,15176,10800,7114,281,15077,9170,11260,8514,17334,14945,6849,6185,8260,15907,9597,16286,14926,645,7455,147,8771,10625,8321,13632,9985,4090,7523,7318,13724,12314,5042,4713,14701,16624,5847,278,10030,14808,10240,5339,1634,16779,8963,11604,6443,16433,12878,8103,1268,12892,5693,6834,10114,16841,3461,15559,17376,1833,17436,12537,6808,1206,2130,16255,34,13017,44,17236,16167,5410,10593,11312,2204,9358,15095,7792,9909,6624,527,13764,11487,8127,6004,12260,13950,3799,2063,8723,484,6041,13216,1512,6842,12119,15766,11965,16004,14283,5228,14022,11854,6647,14834,4921,8863,14937,9816,12034,7492,9274,4564,5652,6231,12996,2872,5081,6664,12770,12486,12729,4587,6381,12381,4681,7083,10915,4969,4095,11606,2838,5135,12728,3502,14153,9960,15305,15989,13675,3423,2002,13479,1504,14782,5292,7858,1905,12958,4647,2935,6715,15792,8737,3970,170,16160,15296,808,852,182,10776,9193,9364,17045,231,7062,11266,12575,3247,2027,7129,8190,10969,7359,15696,17294,764,16774,13970,2644,16714,5441,605,4632,9157,11426,9490,12994,15,4397,7156,10058,11178,9618,5192,1398,1572,10640,2784,10074,16630,13295,8680,4271,3148,3467,10119,16577,228,10960,13582,9883,15742,12444,226,12653,4959,7987,13589,12315,6555,16338,16209,10872,15612,8473,11527,8841,11505,16717,17151,12393,15707,7092,15906,7937,4122,3819,1561,6002,12984,3634,8875,15326,16313,8590,6132,15886,5314,14789,1804,4702,13280,11970,792,11679,3645,12154,9929,8816,6750,7594,15513,10100,9106,499,11042,13425,11797,8047,816,140,2196,3832,13325,16184,826,8159,16027,16376,1618,2020,2849,5967,4254,9563,8807,14412,15421,15812,3676,3802,6411,8043,6800,10820,5067,16165,352,9791,907,10780,8189,15094,14942,3432,15224,14398,668,13673,17041,12075,15942,11826,14894,1367,16421,5592,1776,15394,6616,8961,7266,2426,15722,13684,7880,9068,16462,2584,7817,7775,1583,1230,7301,17531,1314,3837,7148,6212,6167,2996,15136,6457,11310,13184,1005,3980,3339,6841,12646,10648,8769,6796,10777,6868,16767,434,3375,16896,4267,6836,570,11399,3764,13058,8504,5600,4837,5472,13464,9369,17425,7967,6173,5953,16749,4816,2071,13565,4941,15087,5338,1628,7227,7981,4319,17100,11117,8676,13073,8401,1835,7607,6042,13721,9283,13166,15040,16261,5045,9234,2326,10336,6181,11753,10410,5666,16275,17500,8718,8138,14323,11550,16585,4080,7310,721,11455,1360,12879,17262,10176,11585,4841,7570,13357,14511,5649,6655,14318,5386,7787,516,15368,17423,12657,5498,13104,9186,7308,12933,9540,15205,893,7530,11614,13380,10664,10497,4705,10259,11210,10732,14487,6134,4861,2416,10077,5056,3179,15949,14574,3490,16570,6521,11509,1980,16822,15953,12200,8081,6765,8005,10299,6878,3294,16103,3410,6759,9207,11051,8468,15360,9113,1337,17098,12226,15820,4096,7433,17514,13020,8082,10015,2000,11039,15209,7747,15122,5559,76,16666,8546,11484,16044,6749,11760,13661,1798,17048,14861,8147,15929,6862,4104,13065,4877,10117,2334,11776,3972,5556,3468,15065,11791,4845,9507,14328,3694,9130,6504,13834,13412,12678,5075,2983,16658,15986,10629,1310,14268,592,15545,3788,14462,10036,17495,2174,4443,15138,3525,8845,9267,5201,10050,13418,14518,2815,15344,5911,10552,3599,3345,1114,15168,15007,10239,8548,4360,14104,9827,2139,7183,12688,15489,13113,3155,17219,5214,4508,8213,10790,16708,13905,1152,5185,13366,16348,4070,2756,1194,14649,5854,15159,5098,11211,13968,10334,15388,5005,6955,4860,13863,4219,7205,1025,2860,12705,3195,11872,10366,9086,3204,8731,4423,16138,11691,8122,15630,12886,5991,15324,765,468,17383,489,6763,4063,4107,14515,10106,9761,9052,10830,16960,363,2708,17503,15851,16506,1606,7392,12858,9927,8372,8992,13774,4312,408,11195,5278,10195,3751,4886,17212,11332,8229,6123,9480,620,16372,6589,7277,15169,5827,5482,10223,5979,2206,15206,7777,9063,12281,10901,6744,2152,14061,8720,9613,2911,11492,17030,13225,177,6528,15650,3857,9910,3330,13665,4459,8196,8284,11185,12697,4804,9988,7957,4659,17391,2445,9075,4518,9657,9950,3023,16996,10179,6074,6244,4661,9079,7165,4691,9166,5112,14674,9894,11918,4624,7631,9773,11911,2761,13128,2541,15480,5313,12744,11362,17285,15544,11694,5554,15678,4437,14566,14567,3280,17097,3649,14329,9223,12389,14103,17152,11255,3999,2219,277,8947,1511,9354,10224,9652,4361,285,2998,7500,12091,6342,13321,10897,9974,16169,13423,8095,8141,10350,3530,10356,9847,14784,12720,17437,6832,4083,14364,4372,3956,16787,617,15718,3833,5426,136,13568,10341,4815,10574,1185,13044,16078,14003,3333,12151,5724,2477,4225,1761,11889,63,3094,3196,4183,16681,10005,11160,4977,13623,14421,370,10459,5690,9093,12235,13324,1810,1903,5166,9842,12475,16127,15408,14357,5058,14174,17191,2964,13127,4672,12274,2534,5076,4119,990,9001,7563,6022,15765,12338,3232,805,206,8032,16892,17477,6515,10797,16724,6687,1843,3498,5881,12865,608,3142,4071,977,5070,5779,13091,9089,12437,10809,3665,5681,4391,15418,5365,6317,7752,2079,815,908,16398,15690,5948,15331,7653,11046,6204,13484,10711,41,15298,17129,1879,5052,5297,4486,2844,1465,4719,9422,14671,979,7275,5929,5315,10723,4514,9616,1559,16183,15682,8564,5357,9592,6306,9313,1762,6666,15579,6087,9050,10504,5123,14876,10743,15755,13693,2905,3416,1730,9904,5265,10232,17459,2226,3961,12698,950,7521,10297,16030,10907,2621,9594,15258,848,12605,1912,11027,13879,12577,62,8836,4002,4558,402,14818,10555,1971,6634,14175,11796,523,9706,1399,3889,13715,7033,7126,13796,13841,17341,7119,7794,9390,4572,14045,14949,7870,5147,13251,11348,16133,8357,16725,16840,2568,15488,13146,9532,16694,16796,4295,4052,8611,10758,5017,13512,2924,15625,15188,13254,2394,2090,16140,13054,17061,88,5776,11301,12978,15047,10092,2223,5062,7580,2990,15460,2740,17288,514,8108,4947,3955,13735,7423,10706,10211,5893,8809,9137,2753,6747,6033,15174,12989,16284,14374,9064,718,12750,3765,7186,15351,8800,13899,15275,7766,8267,3158,7426,12732,8686,3095,11129,4152,3966,5684,7877,13928,11761,15379,4364,779,14062,14157,642,9035,15164,14643,7952,3030,2908,3474,14057,5804,9491,6926,5175,15463,2156,2457,11410,1037,11902,10448,12916,8792,13400,13618,2723,15025,4792,7505,4073,2897,290,10276,14695,258,3886,13550,4539,3775,15211,994,6281,9573,1937,2822,5043,12611,12871,13089,5817,5061,9365,5744,8828,4279,4003,134,3582,14203,6584,11644,14537,1673,15078,3050,8789,5573,7683,10642,16571,4211,16060,4502,15975,16185,9472,15045,2790,195,15852,3376,14875,1464,1653,6672,10174,15691,7506,1497,17158,2833,17417,12448,483,7672,16349,1248,5298,7552,511,3527,14119,8668,3695,5422,1722,6570,7128,15476,6236,10207,16926,15704,4158,9060,941,3576,4597,1088,7035,16987,5703,4567,14508,6613,7263,11866,13311,3025,11897,15155,8554,13576,5400,9431,16792,1917,15636,8583,15478,17466,1569,4907,8377,17181,12297,12648,3123,1029,2685,3016,2975,6298,3111,9034,15496,17121,8224,1641,306,12614,4607,5318,3056,4902,10807,16151,3338,11218,9129,11447,3173,9318,5826,7355,2537,8429,16606,4892,1409,9400,8985,3393,6968,15091,14583,12513,10975,14732,16691,1995,11518,368,5225,4776,3965,15363,4405,8595,11435,2900,11631,3894,396,15978,5685,16158,1630,9154,6677,1024,16423,10783,1548,1469,5598,5583,8940,17307,14220,2919,10565,2291,10503,11321,7783,4923,14352,7901,5072,4101,4475,7869,17454,6139,10659,13414,16903,13333,13266,8867,5823,16424,2506,1586,5755,12365,5648,4666,903,4901,8682,2547,16975,1541,1264,11047,14596,14111,8090,12676,13302,4733,11479,451,1859,4013,1514,2883,13677,1503,4569,4865,15793,16707,6418,8057,14839,8153,12302,6115,11074,7135,7827,4125,283,3269,7034,4914,14266,16089,81,14039,16826,7838,5291,14410,788,12587,15637,16478,3591,12630,669,1775,3447,14860,2727,3834,4371,11936,9614,13361,10385,4464,8040,15056,671,12046,5309,12789,2009,5268,15604,2278,8827,4334,9891,9590,6620,14168,13812,16066,7027,2630,13717,517,11474,8880,2439,11369,3500,5431,11254,1389,6679,10401,14699,3213,14059,1023,585,13714,7590,73,2462,279,16865,6694,13387,331,15827,14424,15060,9315,15249,7586,11159,6323,1447,13561,1847,16279,9899,13348,15601,10607,2234,14127,125,15522,17418,2048,11847,4528,9901,4456,11050,3625,3835,2408,7192,8586,10929,3180,1226,15225,3218,17153,5003,12474,16527,12752,12589,4296,14991,552,17270,9870,4028,12118,7603,9853,11271,14546,2362,6517,16529,11659,337,3590,2321,13749,4444,4535,10167,12345,15475,15914,17140,9458,8799,10663,16320,12157,13488,8941,131,3875,9047,6843,4482,7342,17393,15775,4230,3274,8543,12179,13504,10064,6838,12849,16336,13347,5528,11237,2960,7764,15194,108,13748,8014,10720,967,1872,819,9116,14051,1552,10977,17210,1769,17475,14936,1787,14630,6238,11424,13129,7383,9668,6944,4734,10023,2647,2378,3021,8459,3212,14973,17530,4102,13910,312,13591,2696,6121,12108,14188,12269,6166,15891,5180,7450,10339,13300,164,14705,4532,10190,13120,13436,8996,1175,11833,5258,1993,15666,6911,6428,16077,15874,9797,15916,3524,12168,8531,3830,6447,16366,16437,8934,16340,16959,1365,1709,3705,4606,2817,1018,15657,7098,16191,2351,7849,4842,16886,8115,16026,9165,14459,2516,16501,3012,7998,14974,12913,6642,6957,7710,4775,9986,16953,9584,1335,7039,3882,238,6048,5974,397,504,5570,1400,9471,8071,16235,3847,7031,14395,1728,2062,5818,17463,10292,6984,4527,2057,10958,1546,867,3575,8018,13217,13909,8926,1757,210,8305,12968,13722,11158,9639,12248,12897,5844,7495,5636,15935,15731,4880,16427,702,5581,3246,15017,11345,17473,11669,9436,1065,14648,6257,7955,7142,13210,6564,1899,14301,16925,6709,2273,341,5962,9215,11333,3723,3140,17460,9300,11861,5557,10590,10575,12347,11272,6195,12520,11448,4840,12524,4797,11788,14582,2528,2100,14262,3456,1950,2375,2877,8322,8041,3800,5071,4227,609,14482,12131,7178,975,11083,17394,1349,9407,7861,704,5522,14506,2641,5317,886,16303,10019,9074,12464,9835,3057,8152,10379,2300,989,16207,6701,14336,1574,22,5772,12535,4707,11664,9388,3735,5348,5512,17324,8399,4393,3268,16555,1602,16245,7462,10057,6595,5088,9980,5020,16288,10317,17019,2153,1608,12049,10529,6153,6045,2405,11392,8344,8948,2061,5725,10988,4037,3640,3323,17509,16966,2812,9346,14588,3276,9266,15248,17511,5737,5905,13729,16039,10470,832,6623,4910,11731,10233,13766,9119,9997,17194,1596,7748,9425,9995,14618,8287,7026,3608,8042,9943,16824,9188,11233,10230,13176,10426,11837,12028,17163,17111,348,15390,4635,6077,16266,4638,5459,152,2113,14755,3313,12667,14647,7707,9437,13236,15237,14543,268,10400,9100,16928,5694,5634,15359,4325,697,17252,2750,15859,3991,12534,11028,5491,12263,15708,9370,6318,14675,16067,14385,12924,15333,1061,15103,11832,13891,2789,11121,4656,12642,7413,5209,10377,739,289,9466,17353,11354,12557,139,15117,222,9218,9219,4473,10055,16698,8256,7395,2944,3131,6614,17489,13762,6721,8175,12662,17299,847,8522,11905,1763,15896,17445,15952,7678,11405,2150,3144,6837,7663,16701,10521,2779,958,14925,11490,16970,15419,16271,7933,2690,4729,14240,17002,4166,12590,16357,7480,14840,574,1146,14217,5174,17493,145,4732,17120,5722,4367,10985,5015,7483,17389,9489,10383,8621,17220,6485,8982,9443,13432,6549,3917,10997,12919,9319,13633,13401,1443,12972,10781,10068,11865,10966,7833,8998,13667,737,8779,2172,6161,2780,17328,5727,15085,10332,2517,11704,4487,5843,1340,3681,13529,12310,3402,6151,11883,11743,14411,3635,3086,6807,5710,6998,10883,3887,1149,3998,9419,16213,15550,16097,16046,4759,14535,448,4867,1840,8624,14465,14399,15646,15515,2216,16382,5661,7835,2741,2073,5845,5526,17539,7888,16226,13147,2471,12825,14714,6415,1700,11942,13691,3708,16727,9043,8795,11127,9446,9134,5777,1401,1834,9795,2214,15885,1741,3859,6061,14185,9963,74,2972,16144,13845,14499,12132,6476,9990,16453,11938,2744,2021,8303,17464,13643,3071,12700,3618,14992,7660,10075,3241,10614,4988,9976,11617,15126,15737,8488,10221,15059,12551,9828,15108,9591,11602,7720,12582,5342,3892,2880,2189,12234,15233,15658,15058,11361,418,15037,12218,3298,15767,58,13492,17275,1281,11683,3607,15375,13816,12459,13887,3741,15735,3567,2193,2389,15748,5109,3631,10882,6953,3476,15345,7084,13092,2737,2494,820,10765,13285,14489,15010,10639,828,15697,16582,2977,8956,6850,11871,9867,5490,11013,802,12144,13163,5524,10293,4833,7900,3297,7853,12492,14099,2600,1884,12974,9975,4412,11436,12073,991,12479,12366,4419,15864,12259,14524,13978,9454,13047,9581,8641,16895,8724,17279,986,6201,6996,8725,9536,880,13583,14246,9658,7991,9908,3262,6864,11072,3126,10399,11277,11291,8446,4611,17505,12625,15529,1943,15386,10843,15741,2341,13136,1854,1138,3792,9546,6592,13095,3873,15997,3067,1690,14870,10904,1662,15402,15063,17053,13036,14281,7807,12547,2110,12842,9382,2805,2718,6625,7573,16619,4394,4205,1001,15287,10992,11319,7708,14354,14419,10796,14761,15872,6092,8209,3053,3289,9758,15396,3481,6197,6081,12163,15090,3189,8812,1007,15483,7015,9537,12261,13238,16471,188,1701,11143,5355,7430,9720,1496,9984,13993,9768,7130,1242,6261,14075,16712,5333,142,15924,15156,3392,1956,2994,7926,15923,7452,14644,12855,2627,15265,15999,16575,7010,11402,2164,6871,12141,2885,66,8660,3145,11676,2336,1663,15880,13071,7243,10181,394,7012,17443,11594,774,4239,15833,8249,3644,6066,9037,15600,225,16794,2873,6025,12321,9110,3713,6859,14878,12463,890,13689,17122,1142,16696,9504,2518,9295,16157,14442,755,15486,4791,10957,7154,5406,4253,4728,315,10354,9792,5586,6583,6397,16990,1419,15902,854,9543,12421,14956,5734,14837,3011,16881,8254,15089,11589,7198,2794,7093,7507,13519,13625,9691,1555,4769,10801,3654,12222,8049,9209,15887,8631,14136,11967,16508,16400,2521,10579,9740,6772,8858,1087,17046,16600,15005,16356,5612,14984,2200,8780,1196,16631,13013,15334,13237,11091,17326,16031,11296,16083,334,178,6029,727,10389,8492,7052,15391,109,8638,16812,1672,5424,12470,4698,193,6819,12530,9695,4710,12794,4839,449,16379,6409,13754,1258,3977,9276,11513,8695,5118,4273,6350,6233,10950,12484,13934,15627,14260,2793,12501,2921,11154,2160,13269,4595,14597,7279,435,9023,3669,1874,1470,8083,2660,12761,3782,6787,3478,12021,4252,7925,7057,5611,12502,3248,5254,3862,7146,8899,4509,9132,5663,3614,16229,2360,3883,3679,8574,10910,1813,9702,16298,11553,12112,5124,7919,7123,10051,9444,8599,7608,1307,5008,11670,12177,2766,3074,12963,13253,12831,9634,1645,4570,16069,11881,122,17092,2556,9527,10610,6031,12828,3746,877,233,14429,2316,12946,17175,10900,5944,1344,1346,6458,13475,16194,1818,14084,8020,16476,11605,186,13482,10514,15279,7071,13256,6395,12593,4075,14341,5270,9760,9535,15370,10656,15508,14522,3714,16591,8667,11095,99,3328,6670,13626,3648,6705,12319,3933,15640,10262,2055,11139,10238,3560,14128,3076,3485,4366,16265,12332,15795,603,8665,4692,8984,8822,12197,15608,7497,7595,16775,15288,17016,6051,15383,2480,15468,1997,3931,2655,16257,5344,14872,6919,14455,9968,1181,9568,16333,16768,15097,10192,15788,3717,2413,14013,15898,3652,15940,1821,15548,296,3513,4285,3496,7276,7364,5751,1457,16719,9136,16673,269,17379,3898,7077,9879,12242,6308,14521,16914,5712,2252,4515,14787,14342,7959,10805,2257,12796,11077,3947,8588,2585,3382,15547,1863,7850,9596,5080,1159,1482,7593,1015,6109,12601,15280,16053,11655,8215,891,6085,11224,5970,6339,13428,17260,16661,6349,9525,8341,54,2181,7975,14657,12283,8969,4677,2229,8326,10123,12979,15959,10378,8697,242,10052,4298,14060,9145,11302,709,16460,9560,7938,3932,7009,7195,10913,5215,4112,7814,6894,2701,7482,15016,5496,15123,8207,13875,2607,5644,7199,12909,16770,1513,13981,13769,4684,16859,7528,8701,1304,16954,10513,4667,8909,10583,5780,10145,1935,12394,4179,2963,15679,2217,16132,10053,16307,15472,6559,8510,8831,12634,2023,10342,13264,5519,13869,1233,17183,13779,12096,4900,1528,356,16837,14719,10729,12064,996,13747,9873,10861,16436,9978,15553,4964,6386,11829,6439,10066,11018,13148,1657,8691,16470,10261,12776,11118,4289,5275,13532,2220,6629,10203,14256,15582,16251,8893,1397,6021,4237,9486,17313,6990,11934,14759,5872,17471,634,8214,10742,14417,4354,7479,10649,16623,10694,6461,10833,4451,13525,8962,2285,12847,4614,16358,12239,3304,5226,5825,5271,6995,8508,8403,1057,9889,9826,8937,14664,3147,10560,13789,8028,15587,8834,17133,13753,9656,7874,7969,1126,3324,3335,16159,562,1182,9733,16919,14058,16208,13955,11882,10082,5196,3550,16196,13491,8407,508,7377,17331,11994,3433,6367,3593,1554,13543,3613,6817,1533,10099,13507,433,15736,1303,12638,14169,12243,14828,8853,5436,14089,2617,2269,1855,1135,16830,15838,14764,4411,7388,12152,9341,10544,8887,15787,9167,2707,7722,11265,2068,15805,2980,2809,16293,13033,11059,13335,4388,13662,3072,7069,14206,12055,3895,8340,5867,859,9531,14569,14967,10635,5655,3443,11804,13948,16050,5402,16319,4813,16739,5094,4750,14140,9327,1603,4742,13438,10942,3161,1237,15729,9868,10775,10569,6674,207,2965,10304,13815,13833,11632,17171,8889,126,12854,3495,7454,8161,15070,8928,13940,3287,10637,10416,2488,7486,569,2522,17271,8933,10682,15365,11107,3516,5019,12109,13781,8055,4983,7999,3699,1240,10666,9322,12845,15711,8742,3630,1595,17211,10705,3291,11702,10154,3061,7948,9108,11983,2776,2491,8240,1287,6358,7141,8803,7381,9555,12881,4937,13064,5785,8441,14011,1478,12906,4852,9175,725,4689,14800,10726,6371,10494,6636,16283,15618,8037,4472,13927,11409,4039,12964,14743,6434,2094,9253,16080,9281,6214,4339,3054,5589,6510,2410,13170,13022,5888,10298,12567,705,2887,9389,7085,6725,12337,9314,1919,14959,6288,13098,8186,15330,12026,12494,8496,12182,9448,4580,2311,2076,5134,14976,7285,14105,14767,11096,1081,8116,621,2254,11504,15785,4359,253,12723,16316,4584,13936,17138,11799,16061,15839,16834,15894,10161,7215,2562,15067,3876,14771,17359,13162,4246,10896,2222,15459,8635,16534,14993,3503,6969,15438,4240,15050,12452,6011,15153,7403,12217,4504,15570,16403,10279,16051,465,14805,11848,7686,9347,3127,7847,16685,2151,2323,5412,17537,6893,6585,589,1531,15574,2819,16137,11540,9248,618,9665,6861,9716,17465,9576,8785,191,16809,7144,11529,10175,4413,1178,15910,9620,1626,11972,5206,3766,3344,5190,1294,5977,1320,15252,457,12158,5447,159,4982,1043,12045,13765,2253,16125,17093,10757,284,6289,14565,3866,7270,3812,12427,13499,9971,7581,14796,7927,6291,3772,11684,10703,12935,4416,12362,5577,9793,15043,7485,9606,3703,9302,9669,5582,1260,6934,2,5464,16905,13417,7317,8392,15321,15879,15171,4970,14055,1433,10202,3855,5870,14404,1687,10832,7291,1252,10247,9182,7202,10653,6732,4348,11652,10936,13911,6553,9886,10868,106,11221,3880,1047,7907,3177,12033,4170,11026,17145,13003,16633,10139,7446,3129,10079,2797,4639,4646,8493,4832,7315,8715,11921,5364,15130,1030,11373,1516,14093,5169,11770,5167,8838,899,695,16723,419,16107,1858,5127,601,4109,12044,5248,741,934,16020,7860,2698,8337,15442,2622,1022,11480,7558,7958,5909,2823,13527,11297,15892,6262,11378,14971,1660,13999,4658,10524,16540,5951,15726,4650,5669,13331,9966,2369,13681,6633,740,3595,3700,6956,10198,9856,4971,1839,5749,8105,4466,15433,11483,6496,1571,9700,6693,10987,10604,16052,10736,16354,6890,13688,4316,13234,3816,17085,4897,13365,16002,12270,4955,11989,9140,4610,16948,13016,14021,16759,4536,11126,7138,2501,43,12763,8856,17287,3843,10445,16038,14179,610,15856,3141,9701,16810,7443,8200,6399,11304,11738,7300,255,969,9728,2933,1350,1099,8007,13648,13085,12405,67,14600,4084,4637,5882,1435,6330,15234,10391,6207,4521,7459,635,13593,14708,12758,14086,2952,8499,15644,6456,12852,9121,9142,7716,10433,5366,16179,1593,7961,12175,3013,12675,12253,1328,13489,12227,12627,11576,17512,10491,17439,6691,15740,13389,1536,7845,8912,9679,2175,10689,3678,6286,15965,5434,16944,7602,1916,10151,7808,15676,11311,7476,3721,11094,5805,15702,12113,347,3430,36,12006,180,5650,2886,16595,16231,10816,17099,13461,11844,10826,12292,16737,3706,15698,17467,14815,1695,2286,494,9619,1183,14869,5439,4222,7049,12922,7554,5925,13156,12686,16001,11175,10701,246,17225,17457,10546,10939,11944,15004,16239,16536,10558,6952,895,14373,10312,8754,7994,2042,3667,12672,5964,6696,5334,9505,5378,1363,1205,1540,4748,3367,240,16041,11952,17104,3458,4349,12558,9840,4333,6413,3341,16728,8483,15217,12923,6918,3818,11138,4343,16977,16627,9468,3797,12739,5672,6594,5835,12037,13521,13581,7910,4746,13840,181,487,14160,14071,15357,15562,430,15631,8997,10404,1736,14750,1000,6723,15449,6469,2264,15272,3925,7846,15507,6657,12367,3783,2039,10062,8367,13804,6884,16164,15585,7541,7422,7758,4086,90,2765,1797,15216,3278,7789,16815,16404,10911,14752,11546,4492,5212,7932,13173,10859,13014,11280,8898,5133,7761,10854,2083,5912,11413,16827,5073,9282,14405,13893,7030,14503,17398,12774,15127,14512,10018,11577,16747,13138,11457,10756,12244,8323,10183,4468,9752,10815,1223,1471,3411,11325,3744,12870,987,1092,6117,326,8918,7795,10559,11625,9016,12552,2896,11937,10570,17176,3598,5478,13409,12525,5537,367,11565,5154,11057,9918,5087,14469,12954,17529,4577,13229,8558,2846,11642,16551,2995,736,9550,773,16998,6194,420,8314,9298,11022,13272,15616,10841,1904,3466,8846,17082,16190,10860,8469,9014,7193,8415,13048,9930,10270,6220,4715,5024,11920,1953,15526,3688,3890,11569,12708,14656,6935,10526,835,6565,10984,12844,10735,4184,4633,9583,8829,15358,14014,4939,3893,3130,3486,7182,16233,10105,4620,6373,1104,9291,6999,16384,8477,1717,1824,14338,4320,862,4363,10903,14221,4951,9880,2140,6761,8422,15384,17378,2868,2486,8258,3884,7044,14180,9478,2936,14879,4034,14409,8808,8085,10953,14694,11971,16578,15026,7796,7032,11065,6600,15592,3905,5875,6247,7478,13862,5892,11044,4741,12262,15519,12172,7725,11923,11887,10947,7844,6789,13343,14432,15230,14431,8176,5456,3906,2711,2004,7434,3942,8626,5821,881,6587,12645,5946,16345,16678,5450,8735,2811,5504,8223,17278,8482,576,16858,15362,14634,15956,11061,12737,8244,6106,12899,17410,5705,3237,4604,4345,9775,11763,16836,9580,12783,1385,12684,7346,13554,15699,3865,8177,14166,7014,16730,3934,4206,184,2738,13346,9890,12931,10242,3950,6059,13273,14230,5934,2565,13452,15141,16182,16846,9572,1721,2132,7073,12268,15981,6494,5624,16291,14697,12072,526,8598,8662,6989,13208,4721,14120,14791,13066,11485,8498,5914,8921,11181,1384,1508,10212,15882,7540,5262,10024,14626,16048,14229,5343,6762,16906,12185,13904,10561,12800,7489,14167,3322,8658,2120,1014,9032,7977,6390,11323,2376,2593,12977,6299,6719,2466,2626,15494,8648,11506,7025,13314,8167,15878,2187,3733,5197,17309,8106,6491,8431,16863,8901,13903,2133,16877,3470,6095,521,6816,10193,12788,14798,14900,13086,80,2487,10277,16874,3090,4260,3444,6024,16883,13201,10422,12736,1166,5563,7681,12346,4763,10358,6372,2049,4722,469,3639,6211,2732,4878,7387,4585,9405,8684,6176,15393,1902,13494,7086,17496,6612,7157,11469,13725,3137,8794,12898,1475,6222,13544,6879,9755,2729,11112,4593,2075,13051,784,17193,5701,15173,15212,6872,9545,6667,7404,8444,14747,14365,3369,9916,5103,11248,13470,3494,16722,11672,14623,5664,12883,13371,7024,17455,7087,1767,7166,15349,582,6450,7903,10275,11111,5234,2839,3737,17478,16281,13105,13338,14286,10302,12896,8456,14441,15000,13799,5574,5838,17084,4187,13998,1729,16640,3684,14349,14835,11346,1180,12327,2305,121,299,10372,600,1430,9911,4828,15705,7260,160,593,12848,4929,16455,2126,7618,568,8854,13614,8031,8371,6520,13995,5837,1581,17067,15125,11809,7854,3096,12806,738,3870,7698,12526,2824,9393,1176,13660,16592,4523,9788,16009,13808,15242,537,12565,10835,5890,1684,16029,3879,4141,5051,16721,2479,11358,11790,8925,8542,1253,14454,5199,3282,17319,13733,11207,14773,8075,14172,6718,797,14683,16332,15497,2101,15680,14211,15198,10741,1238,9445,17207,7690,6780,15609,16875,2008,7382,1795,15757,13798,1621,5733,13103,1587,12821,12541,7410,1862,9851,13600,17057,7131,8275,17130,3856,11939,6775,3327,11029,10306,3533,10512,6044,2951,11478,16816,997,5935,1650,1136,15210,10120,393,6404,3824,49,411,1972,15518,5077,16923,5368,10115,10599,10845,1852,2144,1836,7524,775,13537,2209,9608,8700,16913,10627,12487,12843,16593,7679,17156,7645,16324,10509,11986,189,141,16120,9796,14654,12522,15042,16716,5161,7076,8774,946,4108,7753,677,3041,8297,2751,16285,1614,16006,9423,9408,4389,9523,1792,9120,15762,4771,10180,16516,143,809,16653,13043,4873,2058,10059,13795,10235,17132,5173,14479,4560,2442,3106,4199,14579,6835,15405,2808,16388,1913,2821,6760,4249,2128,15457,5997,16564,10935,9687,7267,371,12941,3220,1004,16726,10172,15191,12468,9260,6947,8389,6146,11869,17520,8655,4194,4916,4304,2763,16425,4224,7280,5541,2162,14769,12917,12099,11352,6852,15021,10307,4551,13203,11900,9991,7407,2418,10310,5950,3911,8120,9380,6023,5996,10199,11573,2997,15863,16791,2736,11981,2037,15998,4641,6315,8804,4871,16219,16272,9264,2260,2357,11915,13801,1518,4000,16375,6764,3183,5389,1725,427,7000,2510,15904,16713,8366,12938,8556,9798,382,2233,4129,9697,6617,3781,13079,4414,1234,14590,6681,1984,13456,8035,7228,1423,5928,14198,10852,17412,11066,10846,11793,6618,30,4678,8280,16024,9593,3660,15467,3771,6052,14292,85,8897,5302,11489,12987,11173,16773,13857,9309,1647,5608,3024,9805,9284,14823,7370,155,15749,17272,9492,2567,16962,2033,804,6900,1147,4960,2148,14007,554,7168,17094,649,2482,14048,6518,11666,17400,15231,7855,8692,9952,4110,319,10680,16150,8651,9642,7654,581,3551,8994,8294,8585,4488,7537,957,682,8450,6354,15052,1846,7622,9949,7190,9649,16563,2179,14389,149,8164,17195,17421,622,5879,11785,4542,7394,12071,14008,6531,15706,5236,17012,53,12820,8386,15160,472,12666,10008,2773,15367,5390,9278,16515,7337,11789,11933,14006,13839,305,5885,11473,6509,11810,2319,5420,5745,4161,4218,12519,15263,2014,15810,4146,8012,9778,16180,14218,636,1113,9161,15980,8739,11842,8813,17223,10778,14036,15441,8814,8356,2871,4160,883,13919,4463,6398,13377,385,4640,15490,5176,15115,16995,9763,5718,11579,8299,12215,10071,15093,5082,10636,9662,7636,15931,15668,1119,3101,10360,15495,9168,12189,14757,14012,11784,3320,11222,14586,3825,16240,9417,17302,4376,6198,8038,1011,16171,7651,15269,9246,3350,7022,8199,335,2161,4401,12311,57,9228,1145,1644,4924,900,3813,7610,12376,6572,8111,11735,307,8300,7626,5848,6737,8268,12556,2754,17430,518,10340,6305,4010,9076,4824,463,10976,10038,2432,1489,16246,7188,17516,7782,11544,313,7526,17426,2514,14082,6704,8016,17435,11433,7236,5808,17504,10510,4896,3319,16396,1850,11290,16634,1236,3170,11388,6741,10435,4251,3326,8560,6888,14377,8706,15881,7904,13751,917,15656,12693,12204,16410,11133,11801,8519,1765,194,12598,6353,9353,15756,6770,13185,48,507,766,15235,6475,7017,6414,13076,5232,16327,7562,13674,770,7108,11740,16615,8810,6965,14613,4235,1930,12578,2227,11798,3124,4602,7316,15611,6722,6104,15834,236,5332,14645,16454,15431,5903,6980,2372,13031,4301,7136,16371,5699,2279,9452,17137,6377,8410,3677,16872,15112,5988,12053,8098,12483,5876,9172,2832,15593,128,1576,14572,684,13807,998,11470,10184,6605,11053,15482,15830,15683,3403,1473,6370,4675,8746,13165,7644,6717,5631,15325,12266,16124,8171,8039,4262,2470,4357,11880,16472,3903,1244,3209,11287,6473,2724,4745,16674,5274,11720,9666,9265,7619,17316,12510,1970,4097,9610,5110,14595,12902,15773,6357,4133,13687,11037,5091,9647,13344,8524,1963,15277,10162,3670,16848,749,14575,3742,8136,13994,16878,9226,5850,3629,10264,15979,3360,6075,9144,15453,6429,15510,8579,15002,15638,14889,11685,7466,1535,13858,10408,15591,15527,4045,591,13533,4439,1828,5130,13392,9925,14115,6574,12604,6635,15684,442,8722,16170,3230,16402,15534,5269,10912,5657,13023,6097,1651,8632,9321,5181,10153,13094,1131,16939,16065,12007,11734,17242,9547,6486,8756,17264,2440,10905,1553,12773,14794,15564,1410,6662,3438,5418,14564,1591,9449,6599,3791,9159,10500,13636,12550,6506,2850,5347,1777,13935,8408,10160,15744,13501,1613,6292,5218,6191,8865,9339,2967,2599,8568,13395,7494,12363,14017,3606,16814,3756,1969,6130,9936,3497,1380,12585,4612,16043,12861,6869,11522,12142,12523,7351,15204,12401,13106,14751,5303,15653,15399,12440,9780,17224,13034,15422,11719,17198,5774,8679,5877,11718,13262,15202,8760,12320,13304,7685,1157,3722,13980,11767,8193,4623,17431,12354,16703,14277,8121,9114,4375,10427,15964,1448,293,672,9857,785,7543,17124,9772,16153,169,16247,5857,9635,15733,5345,7007,12718,14636,9533,9684,6448,16608,11554,16562,6908,13597,6847,498,2464,15763,6393,693,15901,4275,11711,4059,3710,1021,5245,7221,15505,12231,16956,10026,11163,13172,11834,6727,16818,9548,2709,10996,16715,3290,10520,4967,14214,8602,392,12287,7416,3181,10044,16676,2538,10010,6206,6276,4467,13230,11172,16982,12208,14955,745,13546,17304,1186,3445,5829,7299,11533,7363,17293,2431,10429,15869,8262,563,15561,3995,8157,4068,9028,12725,9564,11052,5792,14810,17005,14369,8503,6856,6713,16178,7281,7047,598,2307,15786,3346,6812,5686,7470,10325,2662,7617,8778,10766,8295,15356,14067,7555,4144,14139,17148,15487,16924,8380,8134,15808,5880,8313,12664,6920,8354,17499,12591,8345,17238,7225,10345,12333,6793,15293,2013,11076,4173,6525,713,11,13134,4197,1677,6610,5369,8894,778,3171,10414,7298,9689,12631,3418,9715,13480,10189,9820,294,14811,12120,1934,16720,13694,13068,9377,2606,16315,2508,1646,3135,7307,14490,2118,16057,980,4335,8170,13952,11179,15474,9692,7152,8194,5949,16528,7656,5276,15445,14651,16862,8318,16622,14804,4332,12680,943,8458,1915,2469,14756,14502,1853,12167,16321,4043,17222,1222,9631,473,12553,14998,7067,4340,11823,3408,4913,16805,10141,15784,3463,11724,10006,9919,16287,15946,9804,14480,3770,13939,10799,12560,15516,12249,8225,7896,1016,4754,3336,2928,7475,821,13,14735,14393,655,11282,14605,14748,26,3869,15624,16856,13125,2277,13744,5803,6223,1440,16467,5711,9082,14288,15670,16457,2746,12447,13932,13053,15261,6779,415,16148,7715,11839,15865,8944,8226,12067,8811,9703,13070,5330,5401,297,3682,6125,10472,6784,16176,2961,6697,6454,531,17192,8486,6436,833,13531,15436,10994,13473,7884,9836,8362,16891,9413,9514,1202,625,14809,11389,13406,5576,9511,3918,14195,9699,2283,10563,2224,4975,11238,17448,15634,13157,12340,12216,2324,2595,14871,39,8677,5331,12816,1733,13524,3624,9356,15254,4409,11600,6540,3116,11695,10647,12791,11069,2772,97,11561,1745,2402,9513,12404,8418,16550,6145,9859,3245,8832,12542,16204,1189,13246,15350,239,8009,3176,17106,8335,10078,2974,6766,5144,16131,14265,1227,8274,13090,6304,8730,3532,14783,6698,13435,1416,11033,13896,6345,8273,14488,5945,10031,15813,5324,17202,16381,13900,13096,454,3935,5474,6580,8430,1816,8768,11764,15835,14337,13683,1498,6060,5018,15297,8272,17540,9224,15661,932,9232,7779,6180,8230,13931,9515,378,11349,11385,1358,3156,607,6084,13212,389,12289,6417,12681,8044,1880,10930,11228,7353,14855,13573,6712,13143,13513,5194,17286,6558,8619,12094,615,14673,8489,11376,10974,3867,7885,7525,3910,10693,810,4655,6036,12467,13708,5114,16015,11145,7920,14836,3930,16866,7913,3017,15309,12595,5251,4145,17429,8745,10728,13538,16704,14254,14686,7566,13817,201,14130,1681,15024,4636,15639,14741,9664,16126,6438,1945,17386,8753,6113,15152,11984,1421,12888,2945,17056,7585,13624,16488,11396,4957,2401,8783,3672,6945,8540,13647,3098,13226,4990,6322,15868,9138,5567,1501,11721,4827,1216,3826,3199,14361,15080,11765,13553,1437,9723,15451,7750,8782,10283,12910,11665,8433,16214,2424,10124,3662,8027,16613,12544,9718,2207,3954,1165,7002,14555,966,6942,11858,3448,11953,1402,8150,10523,440,13454,4277,15124,1474,7560,2786,6444,12559,16907,9133,8919,2211,10539,13922,5637,10273,13566,2400,4027,12571,2184,1661,17196,2266,2992,4973,4041,13297,5621,11062,15567,13396,12581,2043,2917,2274,10772,7111,8581,8212,6561,7103,6743,11940,4403,7096,3794,11387,9206,16654,688,12074,2005,8633,1878,6641,7145,2792,2015,5564,4420,2296,9117,15366,13433,5367,9409,15652,12813,13894,10819,8549,14392,481,14091,16706,1080,11257,150,3042,10328,11541,4322,13846,16254,6441,1322,11119,14713,16243,3311,12482,12840,2590,4499,8950,15840,1060,12084,782,11104,15659,3046,6534,13852,1573,1262,10764,12377,10576,12985,7063,5633,3841,12995,345,12714,9416,14768,8257,7646,648,10330,16647,3597,17384,5860,872,15936,13204,14552,11200,15448,8376,8428,16277,9902,5179,3026,5178,9759,5615,7150,12322,13641,14407,11146,2502,9427,1073,5995,8191,13373,13954,12766,14957,8946,6287,11170,15538,3838,7897,7966,6389,5926,10473,93,14134,9696,3863,17033,7125,5915,17472,10824,10631,4522,3314,5546,9332,12171,15341,16979,5282,4986,10894,11693,7336,10603,16012,13039,9177,5220,1289,16146,3387,7942,5834,2270,4172,14523,15546,11623,6676,8750,11032,5132,4644,7090,1604,5111,13793,272,6366,17317,8231,8966,4716,10290,212,5326,1332,6008,1952,15019,10157,5960,4738,13112,4381,7207,13481,8465,5687,4885,4430,8097,14116,2831,11863,17000,2255,3663,11616,12122,16130,14376,14049,796,8397,16090,69,7481,4135,6881,6733,14362,15074,9297,11250,12387,624,4147,9673,2429,6964,10368,7834,8573,1549,3668,14224,13196,6756,15385,1160,12176,12030,12959,5398,2646,14952,4228,5923,2512,9171,6460,6137,9946,12256,9493,12469,2165,1356,2182,9661,5947,9447,10877,11964,964,11526,11749,2612,17497,16297,1686,15573,5448,15311,4805,5500,12251,17010,8979,10349,15770,12011,13334,13786,16672,10393,10944,2365,5351,10294,13061,7368,9316,13590,15554,8728,1782,7158,16389,2348,17078,8086,10568,1764,16141,14311,9306,9299,10496,9933,11496,11822,4406,5229,665,11031,1153,7204,14031,16880,13971,11690,3755,913,9562,12613,14970,8666,15335,17031,12782,10886,13821,13062,9155,806,14632,13709,16217,14599,11220,13363,11415,6035,4314,1523,10274,9969,10148,15671,1802,14619,3936,9627,9174,15114,11298,10331,3354,8457,12950,2308,14122,10308,4105,13973,15772,3117,1926,9345,7498,7714,9819,14213,11134,16852,115,1418,2678,8132,14640,3845,4408,6844,14446,9243,11215,8770,4887,15828,11651,13265,5753,298,732,15417,373,2314,8954,5544,13963,12957,10461,4790,8320,70,10840,4974,8819,5922,16991,8642,3798,7444,15724,8525,8851,17134,12998,17308,7548,7964,6487,11442,1396,6873,7406,4204,814,12456,3029,2098,10971,15336,4520,5810,9753,2869,7097,10004,1208,15747,10287,15328,742,5913,14510,8798,1975,6899,8112,3398,1724,15681,11843,9714,10485,13630,1224,5243,9625,2056,13169,5787,12733,9875,9717,5040,3121,7469,13342,12760,7887,11667,9371,551,13826,3571,14777,7684,12214,1600,16909,13612,15960,11747,15759,4067,12779,12868,144,962,14847,4223,9098,9039,16618,866,11741,5360,15626,4685,11377,10143,1243,10920,6927,9344,8298,13616,1042,4478,14661,474,5499,3844,15373,5089,5994,12221,14054,16346,4438,14334,10938,1336,11503,11241,16227,16876,71,437,16933,10890,15312,3785,13317,6079,14662,16927,10842,7241,3900,1772,15761,11437,11453,12436,6731,7210,6224,7985,7262,5191,10848,7442,5353,11110,8187,9240,1124,15673,8036,6805,8271,1395,8393,15602,10858,7598,12572,11812,8252,10734,9996,11306,10534,6118,3151,3065,7589,7648,5468,9242,6255,11477,3222,5748,6170,2739,724,13810,234,10925,1643,7865,11806,6178,13745,10857,10027,5895,14331,5513,7456,374,4802,931,6596,6853,6781,15151,1895,5715,11962,4697,4706,10436,17141,9051,5571,6158,12060,6098,1754,16329,6421,5904,16782,15064,9498,12834,13776,5627,6512,16474,3228,9552,8657,14426,9808,9153,2807,9626,14874,15919,9438,14143,1485,14449,14793,395,6183,16573,4156,4628,14607,11703,5102,4781,6459,13249,5046,6533,165,9057,3738,4884,13617,7863,9474,14408,3221,6424,4369,16070,16937,6150,16941,654,6660,7912,13155,14270,4188,5155,3400,10787,11063,13697,3109,10899,16532,3388,10784,9360,11153,14938,7890,8839,2329,7791,1837,9874,12635,12334,4123,14939,17054,15392,200,14380,6598,17267,3080,11762,3518,9349,3587,11850,6755,10943,59,1393,16989,12201,2762,16745,351,7688,12290,15347,9254,16101,16016,1125,13244,3397,14950,1300,4082,9481,9379,12792,10266,1246,12194,75,1277,8793,1085,4288,16561,5060,8158,7522,6420,3216,2149,5055,5508,1527,14795,3522,3953,17354,16765,8825,3019,11060,5773,7254,8973,674,13666,11998,8131,16820,12961,5800,7054,7706,1750,2757,10187,5010,17096,15972,11339,15197,13367,4036,8592,889,1696,4755,7272,6829,17235,2705,8653,12031,8733,12068,11283,13967,5097,15877,16193,14681,4811,2906,9249,12455,9725,13813,1801,13353,3685,4245,11748,15844,265,813,4029,14251,3227,17420,10613,13578,14471,6240,406,12507,6601,15473,1807,16216,5842,12471,8011,536,9237,4453,3138,2559,12361,13468,2038,13171,10836,9630,16935,3368,14053,11713,1889,7564,858,6752,2276,13153,15048,6603,14117,11379,5489,11756,2228,3904,16778,10323,14832,15415,5549,13101,10881,13198,11468,10965,1683,2674,5429,7113,2989,8759,7064,1947,15469,2677,13402,8776,12531,248,10792,5788,1059,15569,7244,16023,7282,2635,3937,841,11390,11217,6230,3031,17476,15595,17517,2927,12089,14087,16088,846,9977,15270,14913,17103,17246,203,12851,16646,12822,2545,15251,13736,16974,1814,8857,13594,11969,8222,13601,13802,5165,1785,10152,637,15710,13015,7819,12477,13690,2097,10257,15104,10538,11213,17119,13621,14929,3840,11432,338,16952,7665,13135,8823,6034,3064,5986,1387,4998,15214,15454,3038,15100,15116,5359,7638,16813,6083,3983,14194,14536,14917,6987,3487,14941,15648,15239,8967,10301,4379,10166,1739,6467,8872,1648,10673,10357,64,4127,8991,15621,13881,14953,14790,3749,3643,15401,15184,11564,12341,3315,8861,6329,1506,2119,5761,10492,9056,7856,5092,10412,12438,6341,1877,11431,12857,1103,12829,13235,9190,6325,14159,17357,12731,17043,16945,10585,16263,2864,14236,13649,8604,3836,10744,12872,16485,3482,17069,8445,15069,16343,1111,16085,4130,17173,13422,7229,17442,5029,7567,185,9707,15622,2485,3364,15750,9441,2237,16413,17199,13610,13399,10487,2406,7231,15300,4040,13854,10191,9406,7235,10779,7325,522,16301,15803,2878,6892,7862,11515,12238,3159,8681,13474,4064,7923,7451,10395,5575,15348,6773,3182,4169,14786,6513,4958,12245,16119,15057,14396,8693,6422,4848,13572,1028,12677,16172,9143,5578,3901,10970,14132,9941,10730,2116,6352,1079,910,91,8661,6543,15926,12353,14129,17200,3085,12599,2623,10851,9839,12165,14548,9214,7806,15290,16407,10265,9837,17126,15921,16199,1338,10348,7518,13257,12629,3920,5120,12692,12348,12343,12508,7947,10522,11821,663,339,15903,8603,16518,9233,9862,1786,16890,13902,16494,7734,4836,10453,898,2748,1500,13426,422,10691,6977,5966,4085,929,7883,16670,5280,14345,6455,6532,7694,2592,15313,14098,5732,15912,7041,8333,3531,14027,154,2202,3929,7700,5116,16568,3055,17050,11860,12150,2272,13037,6887,7061,17300,16105,5250,6047,5762,6991,6408,1592,13516,4358,445,6586,4163,7029,16393,11729,9442,216,6826,5290,17343,10873,1048,403,11048,16626,1967,3477,10216,11611,9770,6863,10755,11892,11196,11198,3686,6410,5261,14464,870,14615,8678,13737,9024,214,5760,4578,13718,12104,10918,14263,13702,15977,6267,3415,362,5461,14247,6490,9213,14616,14042,7657,3542,8497,2313,6552,16328,4220,11273,3020,7162,6302,257,16806,10387,7471,10581,15732,9818,13514,1744,17283,6866,3420,6463,13506,5587,3258,728,10948,13327,10245,17149,10164,10229,588,1446,12211,15610,2970,6922,632,482,15962,16383,1102,4662,11999,10657,2403,13391,13119,2312,11870,11467,9965,15996,9128,10353,5908,12962,7995,3636,33,524,2743,15051,17234,11440,5105,2503,7949,7629,16505,3039,4596,4014,13010,8029,4015,2422,1129,8139,2467,4609,1381,11014,5203,13410,14437,2942,7624,15824,8306,11511,13369,10622,8026,13296,17245,7170,12649,2830,13382,15594,2072,11281,7058,16311,1086,6928,9450,954,7013,12803,10887,15354,17269,431,1697,3271,10557,7713,3566,17528,8289,7592,2742,5846,15485,13159,6215,15719,1425,3079,7902,7667,4056,16248,3610,13790,1084,16839,10392,11105,15934,6279,10515,5683,12390,16638,1362,14457,12489,14584,10471,1609,11384,14052,9945,7429,436,16828,9081,11113,4764,7962,10806,9410,14704,15686,15076,16145,9103,2124,153,9905,6591,14074,13975,14580,10651,3878,8938,14585,6963,8438,5643,11901,7569,16322,15615,9605,4178,260,15520,13757,2392,3647,11645,12402,8235,12971,1341,538,902,4431,11591,869,6219,103,4350,11963,4573,3963,7544,146,11535,4798,10588,892,13385,9418,12002,4594,11199,666,14158,15645,17154,2449,5832,4356,13656,7386,2290,13587,1941,14753,5249,5680,6138,17533,5517,7349,8559,1664,11128,16854,1492,1671,7373,6376,14243,400,14639,13639,375,558,8521,7767,513,15397,11495,8545,3778,8487,2373,8077,17215,8261,6310,10580,6799,7867,818,6284,14287,14041,4300,7333,15424,10704,947,4008,429,1615,4048,7329,2624,1392,16580,3839,13394,6277,13308,9109,8507,12512,1451,6609,9123,17490,17481,14551,13386,2684,163,7127,7786,9567,11157,5346,12336,2275,3370,12428,2548,6937,5391,8849,12920,13072,3657,5322,6375,1732,8263,6202,4757,17432,2067,6824,14517,10802,7614,1045,3581,2190,14754,11245,3846,13306,11838,11309,5747,16099,10037,9678,10326,14387,6795,10452,7161,8387,3120,16370,7091,1315,9038,6941,8394,15302,4142,4948,14142,7742,3671,5784,7159,1275,3762,11443,12945,13000,6359,15030,13522,11355,4793,3044,4629,16957,5068,5160,10571,3541,17258,4483,9432,14559,7313,3286,13668,5493,2909,5514,14745,15850,16842,1668,5319,10618,6815,12229,1272,6210,11380,14451,15597,9566,16686,16868,10300,15092,17066,11867,7946,6689,11131,1788,7633,16566,5521,6682,3773,4303,230,17315,174,2569,401,2859,17488,3570,13102,7726,11171,1455,12066,94,328,17174,8045,5721,3384,5852,13175,3915,6347,13408,8494,13924,6874,12860,3139,16910,6068,1343,1071,4346,9570,17241,14072,5150,5696,4164,5529,12369,6492,16732,6026,14746,13976,14379,12081,6960,10963,12252,13659,15029,8995,4422,1271,11227,6735,10072,13835,1067,13291,5861,8955,11148,8030,10220,11706,10964,12052,10295,2247,17419,5629,11079,5204,4653,4788,5580,5987,2787,4654,2069,4050,12223,1558,5516,14433,8420,8296,4021,17411,10159,13145,8911,12375,3059,2788,9849,6154,11284,2955,16121,9893,7800,17187,17144,7738,6203,1566,812,8310,16314,2608,13847,14963,17201,1538,12942,254,16405,13323,7760,5247,14215,13437,3693,14439,14397,8205,13123,560,4643,9754,9896,5336,13197,3902,7094,12368,15905,12863,8575,9526,4537,14882,6472,10785,2640,2816,15660,6665,16273,5536,16965,7398,17268,10040,2915,12951,1925,13901,3048,11572,2775,12527,3600,2716,3554,7781,15426,6742,259,3259,14204,7793,14706,5768,10788,12445,13738,4506,8920,12626,10333,8128,8198,15238,183,6706,3650,4191,3553,8248,2862,5742,14000,8000,3877,8463,4310,4544,8437,16447,6877,2044,9726,11675,12615,14216,5943,5284,8976,13449,6471,13042,2331,1325,14335,6797,9263,2782,11017,7139,2454,1257,13838,11020,7338,3308,16665,15858,2650,2948,3803,10338,11305,16572,6839,7284,14933,1,10677,8185,15049,3620,4103,2505,6661,5599,4768,5719,14344,4035,4999,9824,3153,2513,12990,631,12209,11653,6557,14530,16684,6470,5423,16735,14183,3252,7289,2468,8532,16475,2197,2415,10381,11494,1977,1327,14557,6250,2109,13731,11919,11716,8763,6405,4679,12415,4176,5000,2652,15688,11795,2912,10129,17253,11246,575,6232,6193,7628,78,16206,14156,5572,10322,17216,12914,5738,7968,1220,783,6503,16114,16734,8178,7575,1873,3389,9987,15012,10737,13384,2571,16668,9776,9958,15651,287,2414,4116,7155,3040,2981,13227,12330,12991,2810,1865,12431,7435,13916,17026,3848,865,1019,6384,10146,14161,17024,650,15751,16603,9582,9876,4835,11587,14841,4634,12521,5813,17508,9794,1199,2018,5240,17363,11626,13248,7587,8060,7232,882,14144,14030,8736,700,9007,871,13917,7798,5119,6265,9440,8509,4051,12771,7799,9641,8571,7797,6192,9935,3982,9892,4424,8805,3528,17213,7704,14020,17077,3919,11895,16980,11681,6571,1812,9574,5714,11997,4825,2183,16411,6621,7531,7892,4337,5647,3872,14492,6076,16367,4326,8006,577,14725,14954,7361,15577,10263,1038,15291,7553,14780,512,12602,12301,4931,10678,2129,13534,16419,10455,1162,7759,10415,14568,4854,12059,9821,5958,9475,16392,381,12422,13746,5494,11595,10134,13354,10025,2391,2070,2795,7322,15712,5044,379,4233,16552,13579,15072,11771,8451,8748,15734,7605,1515,6656,17058,7934,10444,10434,9221,7473,587,13411,6653,7106,10923,2962,11341,10814,2143,13549,12768,5065,12864,14043,5671,15533,15062,9392,12423,15628,7151,6970,13141,529,8402,4243,16310,274,15268,5295,2198,14519,653,7516,9247,10714,5004,15154,3573,12065,9115,14554,16236,14770,4819,15685,14687,7609,5917,1051,10834,5263,10076,8332,1052,17522,10188,443,405,17385,13362,10733,6915,12836,16068,14375,16611,16920,9845,13645,6975,2352,16280,15135,4017,11825,12665,15314,3240,11599,3422,1326,2587,4180,13921,4231,478,10926,2523,9244,8830,9179,4030,7664,13083,15027,10126,17538,4269,9092,8964,12442,7512,13188,14892,2581,13953,13882,4682,2012,12213,3270,4195,10227,14238,10438,16466,11744,10269,13293,11674,6282,16867,5050,8842,16831,6684,9529,4984,2496,1460,3405,15846,16590,8142,11407,5569,10456,11015,1366,651,824,4137,4720,4566,13655,6275,8436,11906,5894,5186,5729,11206,3535,15571,15255,10215,543,1675,3538,12485,16079,12841,10479,4404,7348,2511,3479,17257,1666,5171,7072,8615,9033,11717,14133,2492,11475,10769,2632,5007,16942,16040,14274,7613,5510,17501,15746,8652,6716,6316,11340,10554,8003,3004,3583,229,5700,10140,16807,12130,3638,2105,11425,10980,12005,9067,9342,11125,2102,17305,17254,175,12562,11383,2947,7992,15655,8309,9854,6071,2903,8160,7251,4425,414,6245,6886,982,4385,11132,13349,14125,843,8395,11727,7467,9071,8860,17036,6293,17451,14690,4076,2107,9279,5509,7335,5720,5475,15434,9286,7121,14171,8505,6225,7950,611,2011,7529,15439,7055,3556,16294,2857,17342,1882,594,4993,15523,14901,8766,9006,11152,5084,3391,12047,5158,14233,15558,15260,8449,17350,13784,17125,13509,9104,14300,4808,8883,9825,2125,1570,8015,17485,13676,6143,10267,13322,767,754,15201,16993,1488,10196,14066,13121,5976,3621,708,12612,9235,4293,5763,16202,12293,477,2080,9831,13719,6539,2519,2407,55,5142,17280,4674,10722,12147,8645,15236,8424,12328,8288,4976,10012,8181,1089,2339,16772,14822,4599,187,6432,14355,8968,3125,6147,14046,5032,7915,13979,3401,11327,8905,4061,10952,3093,3938,15133,7201,16408,1422,15857,5900,9520,196,8577,11907,14324,16414,461,17265,5086,12746,5449,6028,16687,6348,9735,15323,14812,1973,1612,12867,10516,14692,6442,11500,5822,10597,1403,13027,9230,5011,2066,17519,4615,13122,17292,14293,10927,10804,6526,7374,1525,7993,17470,2774,15909,855,13413,12198,13372,15951,13897,10039,5709,15781,13472,3436,13007,9455,14608,1547,1933,6582,10763,7893,9184,16000,8439,8847,1928,644,15106,2082,16385,12812,3962,17218,12280,12018,2328,2320,10417,14241,7040,3034,14722,1254,5325,7571,1172,15082,12278,17230,6188,3168,1413,7309,5195,6875,13791,4396,565,11130,11772,14368,16543,559,16740,5370,4889,12802,7666,9395,9932,4855,13809,5523,4700,5930,16013,5642,16448,12807,2147,6854,2892,9065,13992,17080,11726,4234,11320,8536,13886,13604,11648,1939,4619,13820,491,7208,17095,9026,5597,10405,17401,6199,11404,4747,13563,17321,2910,976,15109,8232,8694,6813,8064,3730,15113,14660,10430,8192,15987,6363,2490,1770,8135,12606,2022,9667,8528,7408,16569,11423,12516,7305,12384,1407,10364,14659,13099,9095,8123,12911,8696,17377,16930,12,937,11943,7815,12344,9378,172,12538,3491,4868,16463,16657,13850,16823,9660,11177,3442,10102,17524,12793,15700,2251,4283,14986,4699,9884,5443,8388,1616,12505,6680,9640,15913,8608,11581,7983,12683,3363,5128,16581,7517,15982,16558,547,1495,5093,16675,14360,13190,8464,1083,2889,4024,13167,14443,11187,308,5830,17291,17297,46,9559,6009,13355,1819,17184,13780,11244,8293,14718,2474,2087,10767,10288,4159,15642,8423,14187,1831,12514,1331,6904,2036,1046,7214,14284,13041,988,10617,15317,918,11551,244,6803,16509,7171,12644,10519,11043,16225,1299,730,10394,13829,10017,14902,6103,2633,2589,16584,1417,16256,133,6141,14589,5989,17248,14009,17083,5865,6730,9124,8384,8907,13560,9848,10432,14232,5316,12702,9711,9624,10619,7745,309,15540,16559,17232,567,3075,10967,5999,13107,14372,7461,361,15873,5918,9907,8868,9317,9330,8931,5023,1563,9292,5874,9954,2536,13723,10885,15768,7345,6913,1949,15299,2353,9245,156,14788,8266,6177,8917,11845,7164,11781,13889,10369,4676,13558,15730,12420,5415,13247,1599,15855,1885,8788,12246,12703,1658,14677,5479,10760,10398,17107,5117,2682,3260,6711,9617,9855,6032,5079,2566,16644,9885,219,12008,15854,6814,1580,12876,9041,11536,9530,9979,16456,1864,4126,14912,16464,17123,6597,9744,5157,2971,16847,13271,613,1388,1383,15798,16748,3450,6126,13510,3457,5759,16802,7001,6272,14018,3069,5162,12617,3702,292,9180,6182,8282,3472,2638,13319,4421,12491,4844,1991,12633,5384,8336,2303,10043,11491,2170,1678,3908,578,525,15443,12809,16908,1746,16210,3253,7389,762,6639,16947,16188,1994,16544,4390,8951,9049,7780,9085,6337,4309,1702,2481,14504,275,8348,10878,703,1044,13580,4078,6119,5235,11293,8601,9290,911,5340,14911,7941,15032,14997,2384,1649,2884,7596,5965,11828,11805,14303,7769,9999,4801,9732,16100,12956,15776,12981,10465,3945,4069,13961,12441,8659,10746,2001,2412,9280,5558,13497,2619,2088,6788,7048,1921,1415,3793,12804,13956,10811,4258,2697,4216,8716,16579,14184,7203,9944,7696,14494,13131,1239,4445,14388,5069,7079,15008,12160,9612,15620,14170,8703,3509,6043,1318,16222,10403,3284,15398,13294,7744,6669,13787,12271,6012,16588,6099,7754,15605,13350,13443,11875,310,5741,8787,10536,13374,17266,15826,8148,7160,3997,1968,676,751,3310,12017,673,9148,5320,1352,1781,1158,87,16446,9201,17169,8607,12399,4979,7697,1179,6627,8953,11736,16594,10205,5375,3989,12953,2704,7196,839,8935,6148,1112,14990,5113,12313,11098,8084,16510,2060,3100,2155,7984,15303,7341,2111,11025,9993,13151,9451,4193,15175,12751,6703,14531,15289,14593,1479,604,15745,15613,14533,10983,1537,12433,8535,2854,7857,7735,9784,6986,2163,17276,14050,13740,4049,13434,4548,15378,369,6768,6356,1809,7729,7718,6734,12597,12579,4042,5553,14826,5025,2549,5978,17112,15992,707,6748,11985,13842,5497,3455,12827,8024,8421,12137,2498,10096,1539,7972,12061,14107,10634,794,11780,14447,15725,10296,13996,17374,3362,4460,5455,5972,15632,10548,15163,11778,14321,14763,2212,6111,5971,17255,1270,7233,8533,12937,1342,11225,1693,3926,14069,12907,13281,10155,8775,5095,6628,14625,1891,1625,14131,6640,5678,12282,712,12161,15804,5432,14848,1462,1324,12754,9508,6391,12903,10443,11686,2841,9940,6392,14033,993,14898,2287,12023,5623,12536,15170,15944,2500,8100,16869,16086,5656,14779,3342,250,16223,14189,11367,17486,16521,747,10244,652,14885,10853,12069,2985,5954,856,8056,425,11732,11894,12592,3579,5219,4341,14627,1893,3321,15137,1849,14222,1756,14760,4055,6468,646,11980,5108,17345,11904,7790,5543,5646,3817,7331,6266,5998,1345,344,715,9598,1053,7577,9156,220,9335,731,11819,6189,12832,927,9203,8596,13760,17484,3957,1888,10011,264,16784,12873,11846,9305,4911,11979,256,1735,10856,14258,11868,3690,2371,12695,13303,16429,2438,2134,3009,14868,7321,1123,13345,1221,16731,11637,7693,7701,12724,5723,8749,1502,16932,10447,5035,3005,14774,1758,4162,17227,14422,11313,17059,3419,1187,14346,8474,7253,4168,10724,6786,768,4132,12101,13187,15423,17320,12063,3914,12671,4470,10178,5416,9044,9456,12918,3003,13002,985,6172,14693,5022,1070,10818,912,1306,100,7438,13393,1120,12947,3986,9269,14028,14436,16808,659,12412,8237,12409,12701,12651,13692,7290,1075,6427,1652,1907,14919,3709,2665,4190,5053,4398,10182,935,3264,10654,6502,12085,13844,13696,4846,9671,8890,9112,12997,475,6343,8179,1871,3820,3776,16442,11036,16212,4944,12425,15738,15662,10311,4299,15371,10365,3340,12529,7412,116,12125,479,4989,13555,12004,17004,1010,4347,14682,10335,4779,7003,1432,10138,5961,4617,5568,7778,2891,14088,2781,11366,13945,3018,17035,17073,10991,3068,8485,15796,11954,1784,15701,12583,14897,2680,9404,10098,15530,14094,8208,13885,3206,12580,323,15285,16683,9398,15514,7441,12818,11315,11465,8195,3964,15816,10855,2926,8409,9741,10609,11514,3428,1452,850,3562,4058,10941,6184,2667,8094,17462,7115,17277,4765,17247,13663,884,14181,13359,3548,3084,8227,14679,5691,9554,9285,11082,4435,15036,3731,10587,12727,743,6159,4513,14382,2628,9003,971,3680,12830,14846,16901,10489,4906,13734,3036,15825,6246,17231,952,3960,6846,8650,9487,10144,13109,8202,14544,6683,5697,8461,12090,6901,11314,13759,3353,12992,2267,9258,13243,2603,11689,7167,10278,12548,6720,10282,12874,2733,16155,14785,12715,9363,13606,2659,7008,4540,729,9861,1134,16406,5752,8562,5392,6263,5756,4767,15968,623,1428,1477,10054,4241,1601,486,6093,8443,16175,17356,8936,456,16799,4353,17365,12335,10518,11987,1924,4773,3033,5121,16458,13032,15841,16503,3185,7740,11183,11657,15753,7945,12378,17062,15096,6940,2768,12326,9637,6950,4829,10919,14570,11337,17018,10986,11258,7234,357,13215,8824,15146,9729,11434,13381,11909,3969,16645,16800,12106,13009,16798,9238,9921,5538,5815,2882,16468,13460,9897,8022,1100,3753,6810,6801,1354,5630,11230,1068,8989,10013,3421,6360,2785,3971,11913,6445,6971,8738,11725,4862,13084,17452,6825,14486,2728,11545,13860,16897,14827,302,10549,16849,11696,583,1232,2922,10110,14201,383,15937,6541,6692,6314,6313,11532,3943,10382,13644,10551,11973,7954,8702,12039,2215,2710,6700,13712,13548,4807,1957,241,10032,8368,1699,7951,5632,1391,158,9420,2580,14332,3493,1579,8674,2604,1529,5440,14390,15720,12324,10505,4648,13983,3732,14481,11630,13471,4077,10314,11338,17167,10480,14598,15583,7601,7905,9887,17502,15213,1998,16108,4603,6362,391,5849,7741,2367,3283,15107,3460,5296,16871,9571,15088,8500,16363,15227,14269,3569,2532,10940,16780,16416,9061,4701,17208,3985,11351,9178,15226,10511,13046,14629,16507,723,5395,10998,6466,11374,16997,6611,12374,8349,15717,89,14415,3015,2450,11466,16753,2246,9343,16499,2895,5617,7692,9312,6649,17086,14044,4,1881,4474,13564,4866,13052,15006,16034,5866,14002,1445,15647,2825,4796,8253,15018,15409,3499,1404,4282,7100,1284,11162,14491,12640,11102,2358,14101,5645,2447,3619,656,7960,9169,3946,5836,2259,4480,16756,5561,12769,2167,11538,16504,16643,4858,13915,4996,10016,4565,6619,327,1522,10748,16465,7824,14772,706,10849,14935,11935,3899,16331,8447,7599,13599,14509,842,10313,11877,390],"35040":[26511,22753,26084,7362,3902,6962,32253,33933,6425,8941,32424,25522,23063,13322,34218,15131,27277,15492,1270,512,15741,4664,22483,2765,32840,23748,18063,31158,7412,20407,24649,4656,22203,29729,24319,29297,31534,30511,20967,5085,9857,8535,26085,20076,28238,8357,34018,27453,33794,10253,23038,14111,12338,10533,25946,8040,9620,28148,28082,26639,17083,510,16423,20514,30002,29014,30934,13859,10191,5369,10678,24366,16811,25644,24008,13004,19204,5291,33389,24426,14162,12724,17795,32941,5662,28607,6776,3934,32829,21377,25463,31792,22640,23028,14592,29815,27601,33331,22352,23429,20278,30298,15363,25409,2961,24035,12302,25336,29167,21664,24911,18607,7936,3053,25489,13485,4325,20435,31804,15636,13402,6683,30821,5161,12217,24781,24077,16275,25337,27751,34146,20841,19285,31814,25658,33831,23392,19736,210,362,21137,9847,14703,24743,11563,32804,12683,11125,2374,2373,17041,15424,16658,13638,6172,2779,31192,824,17620,16758,9923,23249,13629,13803,28099,23217,19617,28530,34306,32366,19483,28750,4889,3132,13428,13895,6480,33580,24672,991,14735,3584,29453,3210,29985,26200,10661,28096,26827,28772,27440,17539,21097,33429,21907,30453,2,22368,20170,7133,32931,18538,35012,6319,485,9341,33646,12456,11579,9730,15066,5298,20605,10040,30367,18102,30949,19908,5401,3741,13533,19346,25394,4600,27274,577,12588,19658,31825,2630,16495,2674,34596,31271,22096,6027,18011,24682,763,5162,6381,29542,29623,14705,11768,23783,17271,21078,29174,19458,4748,31302,30583,15381,2227,7895,4663,5080,4299,12919,34578,11063,8854,34993,31117,8950,1492,3159,3484,23288,14850,17802,22617,23753,19820,21248,33587,10069,29081,27599,31584,9659,33448,33328,3831,22770,33689,29079,27153,26864,14259,28645,21494,12649,294,22878,17547,11034,28797,23080,9299,11836,2529,2432,13114,17336,148,30010,12983,1141,33478,9880,29082,26027,2568,655,6053,23168,27355,8295,21340,18490,32230,14630,14727,28055,23019,11144,32101,14422,22847,17982,23045,27295,14237,10990,29820,12214,11102,29779,9146,15017,15388,33692,10436,4097,3685,19427,2155,7124,8929,27366,2955,32581,6392,5406,16787,2821,503,11387,23397,9332,13728,18910,23333,28453,31329,4353,26491,28941,6536,33566,33731,3894,14260,24956,471,21238,25786,735,15159,29255,32306,23386,15410,34365,7667,29939,6302,26340,16906,18158,8064,12635,31199,32899,20941,34471,28272,21366,20335,20162,27237,31575,32460,14888,27610,2899,895,17733,17334,33029,30436,34336,28389,17433,9599,29437,22211,2771,21587,12792,4470,32425,4739,19323,23170,32356,16788,12183,13444,18246,1264,13211,32056,30856,3950,32297,9495,34615,18992,5326,19739,7607,27678,23002,2199,11626,28606,13217,32594,5266,11556,32452,9523,25048,27847,34470,2252,25688,6532,5628,2831,33124,12884,1780,620,10963,24411,17511,26808,7069,28241,9078,15830,8186,21188,28020,27039,5030,8151,17110,10802,7110,29147,9304,10430,23756,24369,29929,27464,6967,13737,12585,22999,5269,14919,3093,6715,7325,6831,12458,25650,4100,29430,32714,34314,4433,25510,13294,10509,27867,15037,25980,3563,11362,1471,13685,29862,10275,5639,34197,601,8300,9268,6775,7253,22749,639,1322,20056,23444,24840,262,8371,885,29930,16940,231,15459,17945,28925,18188,16258,10100,1468,28480,8640,129,18271,9251,18609,19370,5734,5357,1844,7368,31174,22833,21843,27213,17651,21351,25482,20994,6748,20628,1252,32351,4847,30843,12242,4703,22559,5664,29133,6152,1115,6915,9365,10221,22250,26432,31306,12612,7191,3206,3924,21628,12920,24055,18389,28744,25486,19234,28145,15075,30274,9789,6426,33455,1518,26022,4639,13577,11528,17640,7109,7481,31963,21160,4235,28514,12895,25266,7726,27514,1667,32857,18565,709,11070,24269,25564,19565,28591,18778,30282,30901,6583,8402,27037,33385,27757,11105,27787,25520,27700,15485,22174,4562,17214,31671,5739,22247,20988,34158,13135,31976,31025,22255,5909,1166,25582,28859,7077,28481,3966,13865,13192,22853,26745,17359,14110,33140,31601,3920,19220,30299,14855,4403,12439,10392,18308,1017,11019,19564,3376,7041,20653,17136,15644,25254,21725,25178,10952,8733,3816,2843,28525,16834,33084,14692,2658,2787,31468,22314,25605,17788,19287,4766,18253,4906,18557,18133,28904,23877,19911,31425,24431,25809,3245,34840,12044,25722,7664,30121,11406,11545,33708,13075,24889,33583,27373,32700,10588,2004,14030,31588,7235,22002,1362,145,18822,28861,29663,1692,2806,26231,14466,21208,18572,34684,28727,1402,10925,26008,29225,17456,18790,9959,29277,21034,28354,34873,35019,10635,28025,33203,34859,1185,33315,33374,34127,10970,10152,13432,34064,1176,10837,9581,4312,27761,7591,23269,19971,18592,945,27643,31917,14510,28353,791,10079,11747,28003,17226,27107,11740,32187,15654,16533,29973,23959,32875,5638,12050,13678,21981,6483,27454,10841,6773,16567,12561,29926,30906,3445,19934,15637,10889,16586,2168,22384,12103,22235,15971,7570,15747,30828,2838,3488,22151,3436,22779,15446,7411,30114,34173,34406,11206,4268,2892,20638,25991,3346,8614,13552,23046,19494,21039,17542,6374,33236,18833,15421,1008,13831,18181,8870,16028,32601,20038,31903,12727,24924,2506,34083,15964,18410,28732,31090,23419,22163,5410,16120,10713,27991,7338,30439,29949,31290,4945,13607,32985,15943,2932,9708,30566,27403,20522,33037,10347,14880,23141,9141,2835,7533,29380,24428,31522,21104,15731,4736,29925,15059,20694,10735,20587,30766,16862,21329,31941,31145,31780,21899,18818,28865,632,7180,18154,13538,5902,24253,26779,4392,17896,10577,13446,8606,25115,20257,2895,11847,30789,30712,21001,17969,20509,6387,1385,30142,27139,13754,14998,2794,4479,31678,28402,17991,34983,28346,26501,27680,1273,25061,2706,26414,19811,32975,16357,31873,12551,1815,22723,28368,23819,60,11748,30393,13622,4076,25944,11910,23005,23207,23815,14375,31800,9849,18018,20482,2149,26118,12539,21136,10479,13050,26320,21694,26984,13124,27798,22000,28618,32711,33877,20450,8968,21747,333,10731,2559,21458,24147,16921,5993,4785,7060,2530,23012,11502,19810,13177,18082,9216,18878,12294,15834,23761,14894,11893,30989,28989,3498,9040,14130,17071,4085,19151,17154,18732,21457,14200,13850,31628,880,20010,10667,10269,3540,9545,16122,19123,21180,4552,17740,14031,15157,17262,26643,8996,24487,29552,12225,13166,14373,17997,7228,5206,23960,25825,21245,5443,7860,13071,6261,12185,2921,19630,4576,10370,26239,17835,30640,18847,25247,4883,3118,16361,25385,30143,12278,4481,14381,30083,33427,18178,28802,16941,18078,4066,20866,27814,9077,7606,3029,18625,23452,14239,27665,27144,11236,2790,18437,14594,443,1342,14995,5895,26408,4779,16727,225,10672,8472,8259,24397,4230,31733,28108,31593,2186,7920,20429,12006,16078,22765,6481,27204,12757,15008,10631,31516,5986,13089,20172,22474,16789,6194,480,26644,18382,21388,34160,14689,26197,833,34302,11711,3658,6032,16774,13268,13112,16061,17754,1290,28229,23742,9153,27205,629,23574,2406,17715,8255,17789,31986,33361,17010,6735,11074,28836,23240,31144,8381,26097,2428,33324,23965,27380,6223,12731,8531,5421,5230,16135,29559,30014,14678,20896,6542,26662,29285,27987,16986,28960,7445,32779,21165,12177,13900,27510,108,249,15244,12249,11754,7413,24891,12831,15211,19890,21532,13960,11163,33146,17738,30273,21639,2866,10052,33240,5128,21083,1974,1835,9538,20212,26751,30293,26248,31643,14150,16674,29342,8372,30126,23592,24074,29113,33849,32128,22108,25628,7278,8067,151,765,7782,19013,29551,5499,5434,7905,30449,28494,21633,28860,8549,28778,30062,13516,2295,33517,24110,11253,29106,1006,6267,25782,34874,6144,26202,12688,22427,32127,34567,24278,2803,30833,8924,22158,16380,10008,1045,34376,14349,5836,29273,14268,19767,25328,23458,686,33698,28182,24075,24978,8688,8482,25112,25984,19378,5940,14309,12963,32264,14044,8657,30248,20185,14300,999,11506,25958,22086,14091,14853,7835,18030,15099,25090,14969,8513,9822,5801,2720,32284,21164,26229,32457,32331,16141,27840,8099,23586,2903,13246,2460,3841,25855,1016,8559,27823,31549,4174,12985,26290,1276,750,2120,17152,25322,19544,12943,25660,12769,5869,23116,10638,9457,11731,25673,9960,7418,15142,11960,1118,13743,5297,11477,18190,26641,4219,21874,15465,19738,18540,16047,34119,28666,16363,26436,26410,26736,11424,32161,25238,29889,11834,11228,22492,23423,19112,17681,8682,18797,8379,19521,8696,1505,13495,15504,27897,7397,13049,27094,11582,19788,22080,7031,20980,3202,30374,23014,5913,28684,10538,34502,34207,467,17832,16398,14225,19438,27174,27083,30690,34221,23929,28950,13589,23428,32796,6432,14213,7668,19022,27825,13497,12339,12404,9259,16494,19824,18776,4931,14820,4810,17033,24422,11354,17426,19907,32020,7457,16310,1281,4822,9944,31719,27286,22662,4791,10894,18537,32778,26431,4324,10728,25667,23596,3862,27254,143,28460,15169,26686,27972,19918,18428,32242,23650,32707,12712,12043,941,7127,13030,2786,6908,27960,27595,13736,19599,12879,22045,1327,4015,6600,15896,21908,9472,7646,32285,19547,22965,34881,9712,30232,14106,3983,4070,6921,20656,28443,33622,18896,6846,4011,16242,28823,8501,3369,30600,32087,13680,32842,23546,26826,19852,24548,8846,27583,25450,26612,25960,25836,15894,17414,15440,1001,15692,24442,18373,6757,24779,10319,26286,20879,23968,19358,32938,26039,6565,22678,21971,3310,11547,31066,13526,21402,14276,19771,11160,16892,22852,18983,30753,17031,11007,4384,27911,28158,1310,27758,33630,3939,29825,34157,23059,11682,12172,4914,30058,7865,33017,10907,9468,25205,12021,15516,27671,17549,22380,22398,24090,22276,24536,31341,8720,9005,15595,12208,27082,22263,29290,34513,30915,13140,4593,26106,20643,4226,31280,18912,3255,11523,34237,4252,28064,29066,27926,23230,13579,8761,19808,20337,31518,14508,23183,11052,14729,30727,22394,17127,19376,18626,31218,16797,12176,1053,13882,13927,8340,22643,11787,7873,28285,2534,27004,5789,14730,11668,8585,15609,21832,28192,1125,28374,24433,2819,6836,27397,13751,6049,34539,11964,26163,15295,25186,5288,25282,27509,2141,10157,10028,16851,21148,3189,24826,27098,33792,8269,22657,8778,8434,25275,31699,13939,18441,21400,1062,12510,17779,1886,8063,25253,16170,34487,27003,19211,22901,24308,6468,1687,7781,25959,15001,17996,32479,21695,17230,28639,21038,653,23149,10062,34809,265,866,7396,16277,4716,30152,31096,7640,19801,16389,22700,27473,17964,6051,2577,3524,27033,23253,194,5703,3909,26041,34191,34906,18663,26707,4277,1159,26366,18394,30264,20497,3520,34238,2997,35023,5665,20533,4215,1739,3496,21240,12243,3680,268,9970,10487,32746,8401,30981,20577,8326,26541,19291,34839,30206,2914,6230,18110,776,6591,12508,14185,10202,19191,20390,16118,13041,9497,10809,1253,17027,23869,26566,12218,22868,20449,34166,26903,30859,17691,13142,15426,17971,12631,24288,31088,20347,16138,23455,6747,16238,26108,31935,422,22273,7452,31560,30141,18872,11654,23626,13420,4474,20018,7147,8226,32978,25313,20912,29101,23211,30962,28030,19784,21075,31874,24103,20022,30418,21926,24517,33288,17234,1740,18533,29146,794,4973,11966,33221,26552,3981,30516,21723,20247,27342,27882,33766,32364,18541,31018,32002,33774,32586,30946,27969,33157,15992,10049,33948,14916,29240,32162,10684,5296,23886,20453,29114,1461,3684,32440,27472,31954,30844,13801,3925,6505,30705,19800,11574,15343,15408,13172,27030,11495,23595,20122,15345,2031,25521,13975,14119,25256,14945,17970,18261,20124,27028,2474,24174,10395,34722,30049,1998,10969,15859,18610,9119,12138,5000,13676,743,10339,14377,13775,16985,12666,10665,609,2507,22309,34297,16977,180,24584,23622,14395,26458,26152,21910,14056,32736,26919,22468,7288,14214,12480,27415,34715,27087,20233,23275,25802,12628,1086,20231,7083,23356,23301,1701,26112,16662,7005,29727,595,14948,3579,3111,13994,19251,33349,2174,297,33573,32391,23003,8839,26288,19087,10806,13964,15908,15313,30398,6419,27906,32176,6126,34529,29669,12893,1042,25599,16376,31380,12351,3279,19725,4509,14887,23480,7116,14141,25857,18113,22655,17063,4893,8312,9980,28988,11135,33579,26916,15129,425,23015,3568,33359,28355,3130,10743,7925,30427,1430,22160,18197,23556,6692,4863,25651,5850,20058,34175,30213,532,15449,19791,33837,15377,16730,925,3185,7172,24719,9286,20399,30665,21085,25180,21007,30109,30797,28196,21706,7722,22862,6932,8810,9044,25853,5500,5489,28502,10176,10704,19305,2306,15002,14495,32390,27495,18518,24405,10784,14039,17444,5707,5870,15888,6737,12925,3811,12907,10,12016,16865,29284,32646,12966,18930,31970,3419,10010,22815,17485,27023,23371,4869,33023,6985,22266,20360,28695,18312,15958,22236,3756,30001,33738,22321,11511,6471,1545,10053,8066,3760,23779,26333,17917,26601,27249,33456,2805,13284,27412,26475,28583,15342,13891,23866,15094,24808,29274,9368,23124,23128,29366,2152,27879,17220,23925,3363,24638,9445,11182,32865,10183,27322,10885,16084,34562,28203,22601,31966,8602,33289,21206,24901,18216,21674,31726,15709,32986,34635,21125,245,7085,1528,9515,15942,6755,2251,16584,18860,17487,884,3921,31305,2007,6609,33867,23913,15439,25083,22358,21772,7118,32280,16022,23104,5381,29706,27278,24622,29847,2463,32353,17894,27422,22455,28384,25560,28476,14623,9070,23763,5409,24665,17289,20483,14490,31603,7930,13215,28231,27293,3857,604,8576,12428,17307,35038,6641,14361,32744,20659,24079,32019,15955,13059,24942,2094,33069,23498,34701,25243,22298,29953,34122,23885,14556,479,14509,31614,29026,26746,8494,3759,30581,20286,31114,25941,85,31449,15338,27567,16646,8801,21284,31093,31875,1785,27863,30411,25753,22040,8462,18444,28946,1228,5362,8595,15148,14529,12095,14652,23163,23838,14754,4512,16859,30338,18748,16627,2057,9405,21983,30417,18341,28503,15316,6236,14642,24747,7099,14654,29055,10551,34129,17094,8651,33818,15547,8828,5276,12224,696,1049,9518,7900,10475,6976,14774,3837,15563,8360,28709,31331,29072,26265,19698,28921,21450,6161,1642,6098,7378,10463,2345,31771,9700,4812,1824,33085,13046,26923,11604,20490,27986,17218,11439,10203,28401,26809,14407,32578,5035,21882,24462,14613,27014,9001,14688,17559,1938,26633,31211,19249,29707,7906,8277,22453,25259,28221,3019,20641,32652,4704,4233,32141,30025,11211,34669,23769,2613,26437,17247,5591,15,23605,20510,22560,3962,24076,12162,21525,20052,25629,2204,8184,14507,27807,10166,2317,21904,28197,26580,25296,14176,16917,20187,1819,21226,14808,34815,8224,18127,6688,15079,21474,9120,19390,33603,12335,8417,15361,13442,2774,5179,18429,19445,33915,10015,31083,6060,10114,20476,30491,16908,34189,28839,18770,14205,15237,35004,2321,29659,21324,16894,19743,27670,8806,3506,3365,19113,11967,10097,26451,5883,9125,4381,31914,20152,11584,31381,39,10937,23849,18147,1535,22777,18404,7047,24543,11149,34531,32771,26251,15431,25924,10783,25974,8144,12273,8095,28589,1216,7334,33409,16188,27870,22867,18000,14280,1672,2228,22411,17476,6341,18659,11381,24965,15063,15801,21851,15807,10948,12100,284,7272,4060,1552,1718,6297,24715,8716,27308,27806,15407,34141,3611,1542,25231,26994,26771,11548,23672,6246,24137,413,5191,24324,16448,34195,21278,6254,22284,5858,11475,16341,18187,33727,19223,24594,16912,12358,26217,33589,32428,34151,27405,32618,31617,13713,10249,9478,26695,13958,6149,16158,22010,27482,33739,5324,1576,20982,20466,6309,25299,24969,24022,10951,11760,1108,11637,8695,3196,15225,32491,33638,835,31485,17361,3692,6792,8732,33347,21131,22396,28278,19282,10122,20508,50,18691,27389,28899,16735,26306,19982,10262,11961,22598,12058,12322,6653,14520,5278,16333,19760,20245,19992,8563,25838,17043,20270,32530,34581,26742,4189,18336,5882,22469,24651,23524,7592,30777,3866,28053,1410,32715,11544,33998,20164,34023,17761,853,16951,31193,12710,3676,15784,10881,10706,6313,7341,32604,6709,19853,27151,8628,34710,33848,8719,15457,2183,4300,19079,10478,25594,5570,25348,29012,15315,19227,23914,23278,12131,5047,7928,520,849,7569,26413,7121,34948,8288,27576,9058,12903,23148,26881,6819,23656,2828,26932,23093,3322,490,5251,5126,31419,26706,6173,16273,22568,29911,156,33228,18947,22537,22028,8475,14866,31888,13946,6312,5418,11273,27826,7847,14944,20312,6210,28884,10909,1690,31430,24106,5890,12206,21231,11856,20785,8225,23932,8895,19457,13586,13385,28281,3037,26832,21417,11447,2656,19510,29007,24766,4134,15041,34143,1376,29088,12257,6291,18199,7975,11432,14489,12791,25003,25758,7703,32613,5747,214,34372,14429,11715,11319,34150,11389,79,16243,25501,34453,4720,26532,18861,15133,24678,15096,23822,9324,1520,29605,3461,8403,31437,7442,8567,33459,17389,28171,9665,25715,20796,33079,21237,16455,9605,8270,6145,33911,32871,27970,16105,29224,10420,22821,7201,9876,2644,12398,2687,5851,16169,17918,9860,26604,12542,24762,20807,19769,10438,20749,15186,17008,26895,28616,24933,10679,17546,29216,918,31882,29096,14011,16504,33540,6574,499,7144,34760,8771,30382,7132,2854,5081,15902,7409,32397,21473,5368,13189,3570,2230,32721,13997,24798,25502,12414,19700,21453,6003,16930,28561,20107,7742,3089,17836,23939,21551,34136,27406,20085,2283,28595,13230,24501,9288,25642,14222,27822,30260,3228,25763,15617,29242,30783,32806,3126,28451,26196,30366,6899,20323,21260,18340,3410,3497,16934,13072,11610,29948,33790,10240,32096,5543,21326,22438,14357,4245,7070,16285,28029,1469,9440,10231,17384,11843,7968,12738,4122,8053,1723,5821,13879,17716,23078,29890,26525,26209,12641,28491,16320,22299,7161,26915,18084,28339,11440,31897,22545,30819,34147,34725,30048,17059,29455,15062,9906,28125,21492,31178,8966,28548,602,2737,8984,8012,7982,22025,6074,24999,24241,4637,18352,26544,32988,4741,32512,5934,19557,4005,8656,30909,21860,25513,34793,28505,26614,13677,17567,34358,5265,8459,5648,9261,611,28582,21592,34517,26940,9354,11549,25237,10355,20416,19522,30904,24001,20713,27010,11624,10991,21786,1896,10580,33844,1206,33786,18415,33600,27917,33297,16591,1360,15202,21813,6957,7321,12595,22682,14120,33039,6690,17245,13130,28900,616,20532,25553,25300,18380,9676,23530,4424,33829,18223,5831,24555,516,20642,13010,9838,21043,1591,26789,7486,25384,9107,14140,31710,25801,21960,2685,22059,22539,27934,24006,2804,32446,28929,27995,31179,4181,32312,24449,17588,15540,5807,8948,27337,14590,21854,10766,31823,20386,28490,26972,27080,20630,3058,11171,17294,12933,22956,20868,13652,10211,12800,21844,27790,263,9955,1821,24631,21187,12917,3980,13463,2073,3562,13290,16403,26888,8015,12996,11735,18148,3380,22305,18547,5515,12923,9080,1096,3539,25177,6155,1863,19821,31539,14114,30924,13095,5692,22275,25632,233,3234,3652,3879,5396,21037,33127,4859,19051,22408,22755,32429,8120,26527,29490,31886,18945,33803,5545,27754,30119,16915,16693,14812,15945,15541,20555,1812,3186,29371,14040,8973,9555,9314,10627,768,5435,23197,26110,18138,23567,16736,26611,28438,34139,12108,11969,21504,11363,23728,13332,15985,27539,5762,12682,27856,28484,2684,12192,24486,12848,14210,34224,7250,16175,24694,18968,7451,17098,7942,1851,32726,6415,11641,28012,30238,28815,22288,7437,9282,5742,19044,26089,3242,3379,18124,6872,16764,30639,4495,28369,26170,25225,30276,16565,78,7708,4207,32765,33400,8658,2882,14655,17158,14345,31022,33715,27085,10073,18906,13876,17260,33014,18069,27092,23551,28641,13449,11947,25182,2299,26064,8492,24186,30255,26748,16473,2648,18017,27845,11962,17929,4169,31843,18946,5449,19309,11607,18408,9437,5618,27418,14838,28286,25895,18135,8214,23836,32653,31546,22972,7349,33447,24963,22289,26711,31736,3677,23531,4728,1564,12673,19891,7198,32345,15873,21023,29810,13885,8205,13841,20782,24085,24642,721,6764,29356,12891,908,8746,34687,24582,21235,2080,12597,17749,14813,1897,20065,34907,1013,28707,5767,3975,12049,2717,8022,27367,32545,5477,11944,31807,25494,5149,32403,10817,9043,2966,29625,19244,8876,29222,3275,22047,16701,30945,26959,9872,28961,20128,2769,21281,15302,8717,14070,32914,29103,15253,28789,6496,22531,6082,24730,14698,8587,16392,14829,10601,19581,7996,14761,11473,21806,17266,9948,34111,14672,32423,14100,21323,1902,12213,31762,28730,15491,7058,28058,20537,10528,16469,30621,25787,28647,21213,20165,14432,19247,3148,28880,6514,32241,17492,1353,21162,29278,8603,8580,21318,15352,10027,3287,18901,5063,27755,12200,14499,8093,20575,13431,29740,2127,26708,4246,613,27141,17121,28042,2590,1313,24086,15178,12645,11123,32267,11686,11723,28691,14637,29593,30993,16228,3852,2366,31241,15240,34682,34227,33730,23345,13664,31470,29498,26276,27645,16052,33873,31767,26314,33312,21629,6130,12430,33266,17000,7672,11151,5764,31256,28621,1354,10119,33756,25875,21546,20221,3960,15471,30020,34806,30567,18526,29576,34377,20931,3364,6356,16889,24518,21891,27950,19208,19945,2886,19476,33570,3412,9785,33129,28737,27216,2619,28651,29880,7238,26258,14015,27360,10500,33301,28022,15199,15935,17392,3074,17166,20569,26412,26322,10143,17454,5205,20421,25558,6602,10964,4379,7898,33025,6780,25223,12396,5225,28119,12969,3970,19742,26943,5353,20892,33352,13304,25015,4827,25922,1479,6745,31585,5289,18887,1937,10476,29300,3954,31998,17949,19595,22604,11611,34100,25726,26186,549,13339,8664,20424,34480,29052,33847,23107,24292,15273,19750,13311,31183,5583,10384,8818,32620,17322,14330,31510,3238,20952,14952,5660,7675,9256,33754,19561,5360,19818,2399,30120,34458,34610,25458,2659,31731,33741,30658,2326,25435,10747,19422,33886,13239,27726,8638,11990,33997,33467,29456,9579,6114,17827,29770,13069,11984,13393,27169,9584,303,14396,25179,1258,24094,16711,14131,32249,10504,29112,12442,21343,33346,11508,2688,28316,28349,5787,19706,26538,17448,13213,32468,12174,25476,9559,378,3273,29908,12892,8522,21045,13234,33161,15762,3236,6383,6198,11943,21615,4574,15226,168,33536,9974,12421,22743,30277,28706,31533,13591,23254,74,23687,29945,2571,13063,9293,29304,21651,10690,33989,34719,28412,21566,4518,25280,30714,32859,32800,16795,23081,573,7267,13282,18987,16351,28759,580,3248,13942,1098,5928,12453,18104,15931,29505,14690,31161,10688,13238,34370,17428,30650,26626,27704,23971,17216,10195,6358,5941,27923,710,33464,28002,8055,6848,24813,21410,23484,29976,27072,875,22134,21803,12395,18258,8334,9451,4053,28610,6874,14583,8343,33682,33095,2161,28072,22463,1380,10650,23334,19004,7042,34667,17589,17053,27032,11734,8557,12061,11220,9239,22731,15513,3164,22193,4405,18929,25024,13362,23810,23640,25750,6180,10374,23030,1406,8302,29312,7543,9441,3917,18060,11386,1749,33985,12409,30223,11570,24468,29883,14386,29109,22780,28907,32587,12248,11706,2672,11396,4296,15766,25504,25656,17775,16018,13506,2919,24883,12231,9481,2105,33106,13981,28652,3454,21719,26364,22623,7513,31451,17947,15572,14629,20282,31803,4586,26537,7355,6444,34422,9694,7408,16704,34847,24764,7702,4740,17183,7224,23525,21172,31939,32296,27191,19171,7377,9082,16640,14517,4652,10041,13714,5627,22271,34296,20985,3312,33271,23830,1212,19674,29661,21969,14450,29230,2104,26138,6697,33302,8623,33488,32852,220,4289,18843,7954,8463,309,32522,900,24751,22575,1734,32817,28422,31438,9773,15119,14127,8289,28524,8793,1570,1762,8109,4136,33504,18716,27217,34005,7316,20627,29733,9621,18615,3399,7276,22744,13113,25654,7861,16753,8198,14700,22176,29210,14543,21720,11223,30078,14847,9496,27024,23561,17817,25754,12536,33298,2890,2747,30990,30796,22828,33013,24169,12924,34999,27343,6465,14019,34660,33697,7515,34053,2169,35032,6732,30605,24211,20487,30912,18800,34511,25218,34638,21118,10153,4710,16263,16611,33889,14644,6105,29436,27577,29494,19759,12382,32018,20027,12346,33295,12476,5171,2038,9255,26986,31047,32316,135,9367,16896,21957,34824,33825,12745,23331,2150,14223,34246,25767,13758,6384,13818,16682,32246,27637,23363,1929,33577,20130,28161,2200,20790,1493,34768,9098,3817,30259,21068,19829,34225,27090,10279,2525,19119,12212,6065,16328,10732,29652,24376,4265,14501,10759,19126,10140,4426,4890,31282,25192,9685,9142,24506,7822,34872,22602,3626,7716,17106,15511,4200,29322,28288,33999,32797,18828,7492,6239,33863,17535,7679,31675,11229,10072,32609,488,33412,25759,3861,5822,10708,15474,10832,12361,18644,24843,21035,16420,31596,30033,4171,16663,10687,20053,5111,9790,33779,30760,32999,26618,1383,715,30709,17583,21401,4595,21463,30030,7115,5548,34461,17780,2480,32598,10035,2113,21598,9200,10610,6342,26002,10808,16438,11583,9453,18425,5334,14229,8307,31705,21730,25381,31034,33824,6675,17253,16220,28793,34728,13397,30811,20608,26113,12298,7754,1592,4417,34706,2974,31118,24165,24361,30448,17186,5859,27664,2134,13068,31637,25123,22461,19318,28444,26489,5765,344,28193,29546,31702,25412,2969,21823,29875,15698,6728,3516,35008,32009,33674,3785,558,6814,21309,26688,11550,8989,12824,7435,16593,26974,12412,12292,1733,31170,3987,17223,32495,20962,6880,20234,19741,15948,6122,14234,19143,11227,28761,19361,11326,34683,19447,30082,15704,9956,30908,34431,31441,30778,23431,25518,31607,25739,25241,10236,23861,23413,8547,20949,643,28333,19190,32666,17181,27553,34563,6273,26267,32327,7705,4473,33717,23715,10960,28181,5390,10258,6954,29566,27485,33292,21630,10184,25390,16876,22459,6206,18618,13674,15999,24042,9521,5893,18416,20116,26191,8329,4440,6646,19238,3598,34186,34540,13953,3140,28304,28875,5382,966,34204,13819,17555,20284,32435,15751,13486,14061,15293,20266,10439,3449,26683,18777,15309,9927,17163,8353,21239,15701,24788,4471,28150,11869,32623,24989,21653,32590,8298,6607,10662,11764,1403,396,21889,1797,31638,13205,29596,23735,14923,28134,26481,18278,7637,12020,4007,12570,23201,2560,30138,26327,9564,27239,27711,14035,29463,6721,32520,22385,8977,26908,208,25456,25704,7568,3216,28167,10822,25563,20740,17981,29538,2029,31469,33531,17210,10254,31166,4279,15181,8422,8013,10353,10025,1210,12374,18164,20901,7296,33833,32135,23441,20064,1856,12007,17196,25720,11393,23855,32810,25783,20309,11404,28898,8882,27679,31379,9465,16104,11692,20558,31806,34089,34330,3136,27961,9084,11618,25416,21146,2053,19224,33088,24931,16218,24797,8820,18098,21026,18153,5182,3247,6224,10891,27076,3898,26277,23809,33178,19038,30544,1641,12072,24184,27271,31659,17481,23109,19838,12890,24346,10218,18781,4308,15532,19030,11252,13635,4131,34384,6693,1316,26303,6430,14618,11142,27562,21877,7167,5963,440,676,24707,25198,31528,3099,23144,10081,4404,24490,16800,19321,24968,23812,5480,1449,19946,4388,31262,10260,15565,14168,9442,18192,13275,21090,8097,29580,22149,30251,15800,13730,28495,24633,32932,19409,6628,10406,17639,13301,22231,18854,30523,21069,34899,11687,9637,25270,2359,6331,30758,28032,1980,22563,31035,14284,28260,34454,15359,4564,15587,8029,8691,2354,30664,4075,10693,11519,17806,18696,33144,11259,22228,5247,32725,10390,4725,8367,15164,34412,23310,23446,16360,12488,15638,4329,5605,26939,30983,17984,9996,9,29644,24051,6128,8604,25133,11492,23239,16605,767,18367,19049,17108,4398,24482,25059,5813,14781,21886,35018,24549,5101,23623,5243,18191,20081,4058,12181,12869,7816,31073,444,24513,1004,24491,18859,11311,20458,31105,30297,15520,17249,34876,13085,27659,9357,21903,32328,1443,21099,9756,10058,11965,28806,6287,12235,24494,26912,8356,19605,22940,11420,17720,25850,32676,20111,31600,24830,29937,7762,18119,29132,33248,31734,25535,6434,11003,23203,34758,27327,19703,7240,15702,24739,24493,770,12054,28947,22677,20117,1269,8545,17934,15392,24406,15185,10061,10906,6943,12956,20932,8565,8496,3016,12391,32675,18753,20495,15327,9513,9840,22058,27498,3935,17658,23154,34620,4901,4170,30472,30518,9054,2002,8488,14144,11525,16534,28164,16521,33838,30221,20340,11230,17066,28409,19664,19270,26055,10045,22881,8361,34892,23312,28400,6529,4465,17831,6411,1827,24637,28982,29764,6794,26078,29241,5371,10596,5865,9975,2822,13376,13081,27588,9424,27803,12210,24852,32367,11333,19020,29864,20869,20469,22776,28533,19197,17951,13943,24210,13183,30794,23870,5834,18139,6311,17863,11976,25302,482,24914,18292,18972,2954,28492,8111,7641,3137,3913,34044,19391,15852,29480,20279,34353,23884,3043,22296,11394,11352,27604,2049,5678,33537,17177,24383,17877,25172,32013,22795,27964,26770,746,10862,15236,9622,31204,27456,20819,21051,19295,25860,34295,30801,14238,13207,7983,11558,22015,33609,13936,17399,23349,14439,27105,32017,32807,12909,1365,7242,31320,21314,13923,16860,10016,31680,24774,32647,9964,19072,18993,12697,34027,28937,11697,9752,30679,112,30599,25989,27400,142,11091,15979,34664,1633,28725,27607,32903,14604,22369,4139,5086,14731,22216,20766,18014,33796,30592,25867,3,17079,5239,21637,4475,19539,13147,10768,29600,11481,23287,4919,33420,31418,8050,17845,34496,6446,6867,17734,32944,7220,19636,23949,22992,11106,16812,6763,2543,1097,26017,21912,20104,5790,27264,16060,21685,6389,33510,21741,14394,9626,16304,11263,11671,1458,4274,5031,13537,31461,20619,22963,1314,25040,7358,4997,23366,34251,25310,13965,33145,3447,32892,19180,14201,13425,7255,33498,7071,21443,13143,12653,26212,8736,12255,30489,11853,32098,30503,14862,7940,23355,7953,13833,22014,25693,11262,4466,23784,23225,354,11445,30036,32273,6537,16184,33065,30738,33810,30838,16641,20848,2048,21293,4887,7357,14063,5385,27476,16844,31057,17603,25342,26477,7391,2139,11846,14899,10930,18310,16235,30996,18111,13883,1568,3610,33496,9654,25909,12548,5261,14798,17621,11114,29798,4894,24448,27551,29691,23041,8005,5972,12843,21732,32847,30089,4194,7375,20618,17629,17290,1319,22997,14242,22502,15337,4301,648,10001,32394,17882,32110,19667,31259,34332,25861,14856,26496,25013,1764,25397,26023,9397,33382,34001,8449,8374,20236,34004,20584,15514,18107,13746,14496,19063,25976,25248,15344,6175,28501,22485,19432,27231,2652,25099,29424,16609,16081,32878,22332,4442,9788,32638,16959,34665,34822,12371,32411,25833,25295,15744,14006,19983,26819,22609,12780,26617,24277,27447,11398,28292,6438,6812,19281,33326,15677,33593,8464,19213,13065,17445,17085,5123,30722,33684,26902,3672,1157,4521,13466,6845,552,23302,17435,12304,24753,34138,19312,5348,18027,14230,17287,6974,24116,3467,10147,24795,30643,30703,33898,21979,32133,144,17794,9732,9379,6973,3783,22159,18370,21428,5760,23064,9908,14883,13488,18443,6716,22209,13056,23538,5333,28428,11335,30960,29529,32560,6790,26874,35015,24474,17770,10879,17966,21481,22887,27802,33241,11693,13309,8266,22075,34338,25785,20776,15085,9982,1352,26049,18088,11173,10997,32023,14409,23305,16354,882,20006,30454,8648,20889,32835,27097,9240,6720,5898,26243,14148,13404,12577,26018,17803,7978,5391,18254,938,20968,1254,12722,26628,9454,289,14684,4907,30047,6437,12316,2050,6670,7948,3278,25323,2115,1945,16957,11465,22730,29195,13998,19435,29758,19805,18937,24758,4790,29524,4079,20693,9985,22095,27947,16391,29482,30358,34943,4084,31133,20132,9416,20406,25587,26482,30656,2777,20198,12816,26607,4372,10565,24134,26363,20441,4877,28788,1063,29989,16179,5015,26949,22049,17816,24432,24829,33433,24539,34213,33445,27290,7485,18969,22286,21158,7444,12662,26420,9439,22632,27434,15791,14900,3648,19740,29601,1770,3757,12623,31420,3261,33809,31706,9588,34434,31836,20208,13443,588,13347,27895,5040,1888,31264,6139,25544,22663,17016,17732,19878,28713,4711,32219,30337,21267,19967,862,8633,18802,6353,24457,12039,18586,27220,28252,19269,35001,31577,31229,22810,33071,28205,14024,8009,22830,7213,11122,22290,2009,29731,6061,14743,7843,18368,32749,29640,24189,5751,23383,13176,32422,24648,14207,10561,31370,3573,26798,21511,5118,13100,32157,17328,30074,6560,21951,34,13336,9104,21144,20768,33317,8544,2999,33802,8795,32747,19657,7297,28397,24063,14115,3535,3971,4503,17860,31081,20246,12093,33147,31367,7023,9225,17295,28517,13350,10223,10493,19884,27505,17762,17869,11247,32799,7986,24787,34378,22101,18588,22457,15906,1237,7586,2649,4823,31500,27233,5582,18248,15484,18826,11370,574,22788,29816,31881,22986,15884,22141,5803,11999,5756,5144,21150,3901,13814,13150,23664,10710,2269,34643,4080,34360,32294,28411,6439,28313,31933,17263,13423,17153,31281,3362,2246,29491,20916,421,6183,12140,7952,33658,15727,8037,8297,22725,4605,18185,19450,8158,3988,19975,19456,2410,11595,4113,33789,19179,2128,16881,7076,15829,19351,3708,15117,20327,6805,24588,20850,2596,18269,6610,23703,29053,6928,15411,20195,19135,31484,14029,20908,323,25436,2464,27592,33460,15717,10472,2693,19959,29358,15936,27778,2597,17350,5484,21370,26174,18427,7732,2708,2609,22378,26696,3867,12064,8169,3847,18568,9374,31944,33054,31188,30626,32616,6883,34256,18766,23879,27796,11529,8378,26449,26791,24663,3321,24745,2107,2588,32830,28135,24857,9031,3886,25001,96,3654,27060,10180,4513,20636,8191,31396,4979,20100,13632,33438,4345,30205,2278,8152,14503,4111,16299,14156,4935,17746,17060,27846,13549,4467,6710,15214,24566,23758,18072,10915,4631,17618,14403,31450,23831,12462,16708,17699,2310,24944,30816,11985,28204,23989,25135,33751,28387,4156,585,13738,31269,28001,21145,14458,33672,28523,3055,6048,33176,20907,4193,32787,24470,28048,34890,27185,17047,14751,2800,17368,30706,22422,13825,28895,15525,21222,33305,23069,3360,8187,14343,12464,2857,11945,13935,14089,32265,32,16204,2427,34811,1655,1396,910,5143,23757,32259,7937,10130,34585,1816,13762,22103,16,1317,20176,2202,1239,410,10624,21480,34649,107,18885,3631,1838,27715,3131,15997,8137,6777,13154,14143,19103,21041,31865,9958,10207,16332,33094,893,34731,12029,10078,2935,28240,30018,20241,16373,13079,15631,14631,20760,19396,18939,9743,16883,12326,12106,11620,16796,12514,29429,16004,1204,24872,12146,6162,17564,3827,7222,6062,12535,1973,35037,10518,25041,21102,11312,20560,14932,33642,15623,19157,14443,33006,2142,32784,10470,1083,9582,9344,3192,11684,9600,4241,14092,9885,15899,19642,33358,4290,1292,14565,14645,20849,3585,18471,14941,14584,8860,7310,8862,5021,13163,34181,27019,6320,20950,15438,29917,28529,31790,32971,10722,286,13369,16671,10161,12581,15576,23199,34803,3446,31228,1321,5887,34125,13991,19201,18085,30805,31697,28873,29703,24499,27263,11806,28327,20351,10349,18276,32836,21594,5645,23043,21941,31186,290,7178,18175,8774,3441,33572,23004,21465,30399,3678,32062,19968,15012,562,19002,6087,3967,10499,15298,6785,22164,11400,32333,4212,7078,15528,34733,32326,2894,26117,34944,29860,4680,31213,30494,324,18657,23017,16026,26275,12575,12687,11478,22338,6501,25894,2339,21057,34113,15522,4700,16907,16292,8293,28300,24972,33384,33607,31735,27603,22819,20269,8572,2493,5046,18973,32195,3732,34047,30512,16686,17101,26355,23165,26082,18423,6040,9868,1871,9277,17657,6677,17252,17207,31895,21784,10962,20814,2625,24353,25402,15898,13408,19837,9813,20794,15232,12946,31849,1632,20677,310,7436,24393,20346,17736,34355,10531,9208,13725,28100,25196,34106,25677,13749,9267,10301,34703,27358,3906,5284,29681,11234,25536,31905,34909,21992,2340,28812,19195,10398,34686,960,525,716,8078,25087,12254,2044,25154,10208,32514,106,20260,25418,13849,14075,6211,7251,15949,18879,11044,9942,18687,19728,10088,26308,11383,4713,12059,551,18656,22990,25624,7910,18721,1128,16669,22903,22724,20540,2622,21542,1395,10984,8995,20580,28906,26831,2225,19682,33060,22789,6637,28845,29023,4579,16478,31427,28627,2951,31766,29545,29028,11064,494,6717,23733,22260,6750,19018,21956,34676,31980,5306,7122,29186,34445,4971,25318,15376,25181,30779,33011,32712,7924,28259,14772,10133,27235,16255,7256,2286,27880,32278,24848,31168,21071,16920,11755,20536,9218,5005,7589,13493,31403,13560,6265,33243,28972,18953,16201,13416,21018,28671,5304,34586,34627,9526,16230,33171,29400,31490,28762,18348,24500,23839,20075,28754,7075,14402,21665,6435,12838,12872,32533,3108,14810,5427,7478,18782,11409,21414,22281,18043,4554,28047,32572,23424,27302,17244,31938,23410,33602,8376,23800,1207,21526,9646,30947,6960,22845,33568,22517,17348,14661,14542,34462,7509,13447,21049,24214,19695,25214,28146,20288,16288,24952,10798,9269,7131,25195,20963,19994,697,11332,6988,13414,22513,23610,383,26998,7882,29688,14609,6459,18808,9345,10112,33565,34577,21513,17231,12986,22781,9172,31191,8869,8220,1074,2088,21266,34177,31475,9482,19337,5114,32430,16146,34922,8048,16589,28124,21505,34743,18318,11175,334,27385,7826,8495,27928,20211,20787,22034,8981,23594,34253,30122,7869,19317,34118,34777,14940,347,22377,17114,9339,20253,13333,17377,32607,5215,2401,14978,29506,15289,8558,8142,13427,24842,12764,22467,15106,12685,15706,14528,33966,15368,12427,3277,21063,20715,14099,9491,29370,29062,29913,28279,17284,10757,403,29302,25972,8181,30689,23543,5447,18613,3394,16156,7196,30965,33592,34570,30644,6889,24718,24605,32694,24502,5446,26694,1536,25532,13929,7791,7547,27318,34050,28893,27907,18378,29713,9152,33078,34059,1754,19942,7647,24066,32320,14072,11897,2318,34046,20845,2147,2813,27052,15555,11198,32716,34600,34126,4994,4882,28615,24786,20652,7293,26787,10024,21726,31517,24609,28010,25057,15325,26161,13765,3495,24897,15515,34978,15634,8173,17538,6803,501,26252,13462,2196,18108,10805,11532,172,12270,30019,13807,22189,10513,3017,12478,29792,31665,24698,28579,24640,27615,22737,28851,16329,8491,1669,9402,15987,3056,19478,3561,3625,23685,3717,26123,28140,3004,940,22719,33960,28679,19607,22116,1080,9155,8914,33804,17390,7479,26979,28372,22011,859,24711,29557,8167,13262,9362,2096,19444,11958,28309,21620,25738,22475,18488,22392,20918,4990,15312,9428,15268,8254,23095,15926,5105,6876,23806,16928,1773,1817,12871,5160,16080,22325,20925,31707,30770,25761,18918,386,12766,18302,26697,6011,33330,30339,34438,2915,29311,30964,1120,191,21816,29002,22489,28833,15733,20697,7966,16092,12501,10065,4829,10388,6227,2290,16379,32550,27081,8978,31344,26762,4926,16359,32909,32190,19430,7420,8607,4311,19471,11887,13846,28551,18911,21439,4618,20090,9609,9087,26305,7443,15998,27466,30841,848,2079,17566,20840,17091,12545,27800,9309,16129,33187,13505,21696,24273,5791,23233,2924,33010,18733,14132,21328,5885,32073,11224,15247,24905,1201,23545,1195,32384,31298,6671,32252,12640,34712,21609,20298,2698,32237,6240,22905,26507,22140,1772,1059,26282,8518,9967,14096,5234,4940,28345,10844,7620,12583,18985,2447,6361,23132,660,9578,35028,4946,19694,25211,3337,22361,2874,13880,26855,16324,19876,14803,24618,16984,30180,3655,13455,22070,23847,22651,6163,23562,16145,21684,21332,10300,17081,7564,816,33793,9346,31041,21812,32649,19214,30671,25168,16765,12124,8010,4524,23641,17643,30507,21533,21091,9658,3714,17116,25709,3013,25364,23200,33714,30162,9733,5428,18439,10988,24377,22184,28811,32538,13842,28287,16023,21484,24925,14860,6772,17744,10421,28149,7354,10760,33435,6456,32704,5329,11631,20708,1778,2614,8316,3694,31968,26257,9648,61,26189,8784,22961,32974,17215,12003,10023,26990,16596,6997,27416,33747,14657,3745,58,5474,15076,21514,20864,7400,10825,28504,5458,13853,24988,1205,34058,17409,20885,25469,3702,6698,11419,19956,11917,18207,7741,2788,20400,21798,23981,26272,5770,20301,26918,21751,12274,13556,25965,32650,29571,28176,4571,14989,28236,24072,34131,14471,28271,345,12268,15360,6423,30352,21199,9675,21990,9987,33943,21087,20473,12180,21515,17436,27784,33900,8967,32547,18163,11266,13647,17893,1005,4209,14951,34090,9370,29421,12829,10524,30247,27708,19484,7163,17417,34645,18984,34862,28542,25657,14794,19513,26037,4677,15947,32751,19962,20139,29247,8555,20793,12027,9915,32541,28827,11089,25046,19324,34006,18580,32573,21822,5553,6830,19288,32841,14816,25988,8237,25202,8584,4344,3946,16088,15272,15406,5127,19864,20744,2056,18317,9050,33064,24343,30108,22117,34394,32349,2973,31042,9898,25333,15855,17034,4756,22814,28390,34215,6636,2372,33267,7743,32043,17516,22359,14297,18942,26473,7301,3616,1693,22791,29279,3775,30166,31355,9691,21871,7194,13160,32386,18157,21753,28751,18083,13383,4770,14027,30790,24559,3031,25199,7608,22827,16121,9553,9108,15680,27698,34812,21408,21132,6664,9061,24703,13159,7195,957,6660,7024,28214,29950,29022,31466,27737,20956,21419,3361,31055,26405,34305,11278,13273,9683,30807,29190,3003,27365,18955,21350,18090,25862,4811,26967,27451,23808,19886,1346,27192,16680,21790,3829,23750,14067,16536,1616,27348,6950,14621,17787,16445,2383,24863,6284,17128,2601,32361,31165,18277,22106,15470,9162,33711,17182,20223,25414,5494,11422,7624,27876,32298,19783,13823,1790,11663,28179,18795,20178,17001,15666,24465,33278,3147,33481,25197,428,23449,3633,23472,20096,33619,7149,12862,15847,371,22851,7846,24557,20255,12851,27574,10892,30502,29914,21246,3351,22264,6263,20552,26358,11522,24127,19076,24293,237,19974,31842,1451,32927,9334,21657,25821,5808,16076,28417,9817,33811,6733,18054,11727,20057,2893,20192,17056,30353,23054,34276,2878,26799,877,16422,21361,20568,5740,20431,34483,1408,12472,21650,31920,16772,26390,22253,2013,18869,9287,21887,16784,25345,25523,9981,17998,13645,22185,34757,27585,11683,15539,20079,30538,6030,5252,24454,18285,34680,1953,17742,4896,24098,31999,10720,9525,2176,13542,5096,33835,19514,14390,32874,2505,9194,34628,5038,5402,27756,33861,15242,2018,25386,19290,16507,15792,23697,2036,23765,29263,10215,5330,5688,4570,32220,11750,10669,16943,25901,6042,12979,21397,26124,7577,33834,3359,12429,4146,16006,17828,1875,30997,29808,19491,15125,27885,34954,23357,12432,14483,29282,21387,28439,25499,31232,28912,70,29427,29254,18667,691,15140,29916,6088,2268,27017,407,32192,5540,7841,8875,31207,20993,30601,27051,1485,15616,25349,11503,26542,23961,1214,16884,20657,30510,7015,3444,3719,28693,13789,31407,223,11804,526,24587,34591,33801,20553,109,21464,10955,21008,18314,11674,15689,13873,9703,29841,9540,8448,23075,7674,23834,11849,5552,9799,32913,30537,20720,7657,10954,21794,10288,1546,10165,32227,10653,26430,32458,24135,20432,34974,4567,10378,20873,13033,10803,4385,14638,8892,17819,5659,30549,18468,31272,29272,33520,24608,33845,23919,24520,14329,22672,4767,18960,4166,2917,9274,22805,31925,15927,28513,27819,1605,22376,4305,17211,20401,2785,12381,31866,16431,20816,32920,798,15804,10303,11137,8321,21580,6043,33763,31141,1524,27261,23529,9249,22635,31162,20264,6523,16991,22936,9117,7057,4435,3030,12119,9042,29188,18999,18462,8098,4117,19272,12651,13661,34931,4876,31366,24062,30151,22412,23583,873,20614,14126,15427,25987,25931,26838,3712,12065,23817,25422,30973,15925,33122,34402,14546,4924,26225,10622,17469,28569,26469,29483,20762,10490,11661,6469,33501,25938,7262,32943,11030,1277,34343,29187,29655,24974,31309,34532,2742,26404,32111,23541,11518,27903,17750,31233,5529,8150,2043,18801,12527,12173,16199,16822,34162,28084,20706,34640,32661,5166,11655,34212,18193,2563,32178,17004,2861,33560,24983,5147,25424,29933,2995,3588,28890,26535,13315,33633,22746,6182,20588,2826,19780,18092,29674,31509,23044,27478,9731,7974,26794,21275,24919,20289,5938,14393,10664,4231,1351,874,5754,17306,20615,24769,1958,14864,14979,22391,7271,30707,6375,31756,20182,24949,29906,27300,20700,2629,13296,12359,25060,2855,27246,25428,7955,21850,22198,30310,15195,11900,30268,14828,973,11638,19415,26504,22050,3143,14563,21862,10011,10604,7729,3184,25459,32380,3735,23972,34631,11374,9292,32965,27836,10125,27657,16972,1752,7185,14593,11056,30004,33671,34055,3587,30998,17727,15874,7320,32667,13052,15557,7629,200,9394,24400,33183,843,27740,5906,25920,1373,20037,34690,34769,3681,3863,7504,13261,25653,27199,29164,32682,19963,33521,9762,17907,18575,5199,19089,19410,29283,21942,6528,21686,20199,21191,21166,24243,31134,5693,30708,15652,29166,6089,7448,24916,28026,18891,3476,21086,16226,21667,20911,9135,27852,18567,8898,4341,3663,6333,26377,20051,19947,7541,27871,9016,49,18998,13857,6619,33114,9185,22667,34042,719,19720,21516,123,31023,7503,29678,1503,34432,13103,7960,12066,31376,13812,2358,31774,14964,15549,11689,209,31453,17843,30602,10812,10705,4359,22946,13365,6601,13979,11659,31026,18332,1460,32321,9726,5459,1428,10794,1499,14587,31284,34068,1569,29097,29996,24855,23034,24995,5699,2676,11902,23903,2261,15626,24564,27329,6252,23892,6800,2606,6564,19081,25683,34626,28143,11264,11104,26574,15136,26768,14338,12008,18616,3038,1196,24869,3413,17527,19486,16362,15215,22381,14362,4087,25645,12638,32188,14202,30009,5322,23166,21835,15676,598,28910,7879,26562,34784,28120,11865,10877,30037,3968,3916,8038,14955,28944,13911,33519,24354,14098,9165,33569,9047,250,4468,21228,19308,31386,11046,30772,31248,3910,256,3897,26247,27606,16535,24014,8156,16929,3787,13594,30351,20573,6588,18729,29599,28222,14612,29997,27419,33472,32166,34161,8805,14614,24297,13245,19619,3726,33119,504,29150,16283,30853,6235,3296,23252,27816,1506,9123,24232,28700,1721,15521,13186,6078,20175,23864,30462,16661,13590,22886,22443,30776,9419,21062,15329,12975,8308,23581,9308,12987,26515,15700,28095,34178,17850,30994,4774,3069,24060,26898,31147,25146,11949,29584,2014,21641,33748,23818,15851,24387,28155,19235,10905,2718,5731,11377,26773,16016,32668,29723,415,17356,26652,24192,27214,2628,33976,28011,21793,20915,5877,24325,134,363,2294,34604,25367,27703,26756,23923,160,2262,33451,13673,1768,2433,23382,33466,11067,21856,12807,5590,6877,19115,2243,23980,14,26294,34762,15023,32254,26840,20934,11226,21883,9972,5074,16537,4525,33020,7578,18434,11881,9038,7018,25359,15011,18273,30011,8450,1683,12286,14892,19465,30855,26790,27750,19328,12672,1483,10394,30834,33291,32444,18079,14521,1170,3688,33820,21736,29100,12416,20368,32066,658,29091,21445,9738,25800,16038,11798,24409,32580,15245,6337,18964,16416,15197,2576,31052,29308,33919,16492,24610,2531,4660,34319,358,31805,11035,4222,5082,654,7169,22710,18445,12728,16519,23339,13704,10982,11261,29664,29734,19347,4800,28766,11623,20204,24896,33902,9914,4033,19701,20737,27805,21895,33311,30896,7671,29333,28413,23724,32071,30401,20003,12083,9488,2498,33934,24732,32792,24748,7389,30573,28578,9207,18359,31095,14179,18649,33716,26952,1265,17090,25929,34352,31569,3142,30596,31573,21603,10456,7081,8711,12262,4258,16510,26510,1600,31212,398,1345,24947,2285,7432,9795,22182,33449,31778,18715,4537,18764,19952,26273,1117,19493,4836,11516,30673,28648,22649,8263,33950,5274,12959,5926,29658,14444,3426,4186,31761,24336,10187,25839,30615,9777,29796,733,15939,21954,20813,18263,31246,11279,5783,5183,14831,21432,33514,15767,18244,20148,29527,21431,24093,16168,24471,24480,6712,26729,16887,17107,34335,18578,120,2690,20725,17463,17939,31102,11889,6859,9657,16566,11974,2699,4120,28879,1782,33990,28703,31043,6730,22432,25213,8530,30921,3087,16548,19857,32439,20957,26873,20969,5576,6519,31107,3578,11557,34795,23389,24815,34956,21339,10996,7211,3268,25631,726,13869,5745,25288,3146,4217,3846,5623,15049,29806,15771,31877,1152,841,34275,26924,18483,25242,23074,3959,21885,16936,10583,25996,31495,24775,3239,29503,5460,27027,10101,10929,7006,20097,30145,12203,15806,34927,30942,25844,19263,27035,19101,13395,33669,34239,3577,28291,17911,7745,28998,27558,28423,6654,17524,22152,26028,21896,8626,9290,23768,1976,32877,15324,8583,7130,26148,16480,17921,30253,31079,10095,20530,15872,12656,16082,29924,30308,1549,26268,29750,4494,2452,11829,16484,8183,18868,23858,1620,31840,5866,983,21168,1579,18357,1666,17272,27408,312,8072,11289,3621,30434,9241,21060,22610,4911,4755,29611,6765,20315,2701,2836,17872,15250,7581,12735,4135,30668,9258,6849,14020,2815,31972,33939,3391,4715,17713,528,24073,29719,3435,10311,17523,7697,10376,31267,21249,14758,8888,7403,34512,31415,33524,25525,10701,26499,3345,698,24099,20240,22350,14187,25190,8836,26839,14767,26339,5691,4642,6479,26020,18886,16212,26550,31943,9363,24284,24953,29056,16271,34163,16509,28094,23852,2863,19794,1283,34836,20664,30739,20825,22607,3208,34250,17988,5674,26139,9573,25109,20169,5855,4121,19479,2184,11835,185,6919,16166,14553,30075,17506,13773,33885,32579,27958,295,31531,32338,16673,9536,21047,12980,1988,14742,16683,25945,23436,872,7748,252,12852,12589,6463,4110,11117,15134,15705,19633,11318,31630,23328,24205,17,20372,25848,718,17007,2709,13233,15691,28330,25932,33755,15103,34558,23354,1332,19587,21230,30451,10797,20995,26681,31383,8815,4769,28457,34084,3753,25388,8415,25072,24190,27113,3707,19976,28037,20342,27850,2276,23653,26205,29203,2686,25914,6499,17064,6039,32074,17097,13464,8934,18747,15612,27041,4982,8660,10486,5524,34555,29753,23564,12321,959,33709,18249,7048,5960,5466,14385,7977,22937,23040,2653,32097,22207,12898,13613,1802,22534,3448,14934,27317,30155,25350,12720,22119,31496,17886,18215,21372,32260,15759,16923,586,30183,4314,2887,17955,28975,12116,32140,23609,21638,12465,5235,33805,20815,207,8490,9461,8938,24681,4062,9801,624,1912,10272,21447,35034,3728,17418,29822,4804,29761,30107,17930,14789,6285,23749,6998,27685,24092,19583,13151,10873,24641,14157,10600,17273,19433,9160,11886,10135,21011,17003,3280,10983,21881,25819,28154,34312,2170,963,28474,25936,25047,73,563,32933,12554,14851,14957,26735,26493,21607,3246,27142,19696,19021,33917,27225,4672,2511,24371,14154,13271,23526,6474,1964,4105,34971,34829,6020,25626,18709,33160,24479,8,4965,3595,42,14378,121,32282,13291,17378,11813,4517,11805,25713,25829,7291,3047,9504,24356,7673,7666,8377,32814,6865,30065,759,2608,32274,25371,28341,52,9714,32610,34107,1942,350,20440,9568,4627,26298,32257,2957,31984,2400,23865,31965,9755,32614,20272,11956,11783,5108,15221,14844,13331,26301,32733,30585,14465,34229,21220,10628,4002,12028,12809,19585,14748,27226,27512,16096,22950,9984,29754,2039,9739,28458,25549,15292,23663,21488,4644,20917,19896,8679,15149,18203,32488,18875,27738,27315,4933,32904,29397,436,32388,27843,19704,31991,16451,27534,23811,14550,29124,21972,9226,2754,28407,8893,13513,24312,32970,8499,34010,22087,6515,17667,8387,24705,23483,25028,33076,9474,31785,30012,16528,11075,20382,24928,13557,11405,13022,15850,16425,19289,7836,8728,5861,23103,26094,6506,18871,22327,28723,16125,7914,29539,22171,34474,30497,18789,54,5491,1765,29387,34893,2647,7068,12509,23635,9342,22472,34362,27759,458,16152,1997,9110,23752,4129,15100,32767,10974,27734,20200,4267,7231,6321,18645,19099,19046,23460,32543,26177,13299,9140,14911,34891,2459,28543,22215,12073,3603,22302,4927,17760,28558,28256,28410,7939,33192,28585,33057,18143,634,18217,24617,34452,6305,31292,33706,668,32478,3517,9073,14192,3243,7353,29046,34472,1302,21477,22200,32304,21940,28324,20184,15584,2626,8863,8899,25918,12834,27119,18844,17425,473,28186,33901,5384,33411,19393,3557,3042,28337,15499,17647,26564,16322,16159,11331,22931,30171,3442,35026,18688,15173,9614,31172,26931,2207,28188,31524,33099,19765,13179,6912,31544,4620,21978,26444,28224,9631,24529,34169,22953,18681,17614,22175,12905,4954,22582,32481,13626,18734,9897,15350,33808,2696,3207,8905,32654,25185,6193,29000,14800,8762,6023,25208,13037,27988,25035,21976,26025,9275,1334,8582,29020,15391,18959,27018,20365,22515,30836,24349,23716,20600,14628,33993,3586,9882,3393,30852,18421,24219,6255,1624,31525,19243,32287,9652,14991,9348,34411,879,24002,17987,24268,32628,20071,27620,23696,13863,9565,31000,10448,24655,32786,21820,15770,5667,19138,27753,7694,15577,15760,29478,12821,11730,1757,14837,7160,16107,18738,34456,10992,25465,22111,26280,15402,1330,32467,11826,10537,27908,12101,31625,9929,20125,19373,5327,26264,25621,25334,21156,3499,9524,20380,5146,19398,24853,25574,9674,6552,998,2393,7772,10656,12261,7565,33821,6119,594,6127,1304,11417,25983,8516,10986,5773,13055,4898,33683,12633,19954,25030,27182,18636,17240,5847,34091,4532,9224,11270,29795,21644,20131,18402,1807,11613,34726,20095,31515,4625,33193,33436,20767,33398,30878,30329,17246,29294,33952,5651,28882,9236,592,9767,28223,25353,514,7628,379,539,16578,255,1652,18883,22508,19173,11955,31014,21483,9798,7616,22543,15916,15296,7656,32436,20805,2768,28426,13094,10322,6370,19656,31693,20486,30416,34357,30840,22003,3878,12668,21721,14601,1892,17202,25898,30527,1473,10310,7654,26675,7885,27821,12207,11719,16250,1774,1452,23891,33852,12056,7268,26970,26598,13655,3566,32048,25142,9278,27979,2468,32032,11784,17149,28897,181,13764,26114,5979,33723,20629,25423,25831,32067,3649,2554,6498,9034,30694,8039,23475,7003,31175,29785,28169,18995,26479,29648,33264,22257,14913,12055,4832,1944,2850,317,18007,24684,27794,12129,24835,7805,9673,5202,15608,18327,1803,7759,7390,26610,17654,19632,8301,19919,9318,23487,13791,23303,27099,4892,12283,6488,1209,8138,16809,29716,11302,33277,22948,31467,8164,12223,8188,33732,34401,23725,3761,27140,30176,16546,30323,1555,21510,17668,32570,1593,6984,30239,29832,8489,6300,22767,5135,28105,3066,2906,30118,10854,31786,5632,34914,26869,26848,23227,8803,8014,21184,14360,5901,25863,29492,17065,12823,27333,32825,12782,26743,31563,28560,5846,3597,6996,10980,24644,11073,13567,16148,22136,919,23739,27021,30721,9338,31674,27831,32152,8094,11039,6017,14478,29608,25515,6590,24613,8414,23433,27884,34952,7633,9625,14419,20135,34176,13042,13265,33408,7487,15795,4371,19718,11850,12897,30657,24222,1268,25148,28019,31334,11359,26032,33173,11634,16585,10146,30191,12051,1889,28325,28659,29489,2579,19943,26328,17580,23513,9072,16878,18141,20859,15095,33116,17277,2933,14416,17856,16618,15808,12074,6335,5221,14254,34099,32577,21648,16857,26498,28692,23186,8891,9248,3716,32659,20040,23152,11859,18264,30607,8772,17650,21550,34482,28342,3821,10134,11920,4787,28665,3511,8674,28587,10345,32621,5598,4394,34397,34266,34885,33202,13136,8276,20865,13515,16077,28814,32936,32818,179,33746,675,3507,12110,8956,8842,4555,25799,18478,24791,9019,18837,7740,31428,11493,12648,31382,31884,25370,6007,18228,4361,23928,24823,31598,25942,23008,28999,19065,8896,13358,30928,3548,32942,34763,30773,19752,30952,12435,15786,9459,23060,20924,27980,24333,18986,19177,25374,6969,251,17493,12230,33262,29821,32201,24563,4878,3432,33925,9828,32569,34821,10453,2565,9754,579,25768,24053,5071,9902,15816,26753,22536,34354,30217,4816,31870,4682,25790,32387,18936,32641,29626,22030,12556,22122,9222,3810,20945,15432,23767,18761,6038,7233,6530,13417,10761,6352,31582,11627,22754,14646,6009,26263,21791,19873,7760,4013,18884,32724,31003,19108,21776,28819,11338,6000,32295,13634,10966,25714,25233,16685,25973,23151,16965,22758,34817,4694,14226,29145,13405,21799,2985,12163,8625,8508,27394,4818,22763,18731,25307,12878,32615,17578,20031,6821,12698,25378,17439,10847,1491,24850,29904,15269,16404,8726,1035,32414,17115,20039,34034,28405,6516,22522,3589,17859,21109,8176,8632,10419,18210,31493,633,19666,1845,19498,25176,22631,5911,15787,9551,20685,22998,9607,30475,21773,14523,21079,1685,10017,14236,26107,9204,12827,8685,10795,33891,14149,6850,8610,17825,10056,19256,4360,4544,32954,23099,28634,6396,4319,10348,28668,16761,14854,18562,7073,9353,33431,3572,31254,2740,24247,7839,19972,11425,13492,12632,27102,20745,868,7257,4339,5709,11998,18267,1925,8543,20557,21567,21768,16993,29239,15373,18167,27642,22433,8051,25962,20547,21827,21572,380,13087,27749,6807,18564,18243,21212,11617,14723,22968,20428,8829,14104,1900,14255,27663,31591,1372,10994,11691,34981,3609,33166,8092,27326,2247,21866,5811,22645,3844,6842,15512,26297,23668,18096,21599,9151,2218,20047,16948,2967,1822,13314,2920,5966,28743,26315,17441,7934,26175,25823,20927,31423,2801,1040,3767,5758,11586,5637,9004,7439,17264,14215,8874,32085,29578,34424,2802,20523,934,26385,28664,1745,11423,20417,18118,18556,11989,11913,27627,2998,2181,14005,12468,14714,5644,27198,3470,13906,33841,13244,1091,22603,11098,34222,5018,12887,23127,3628,3354,13727,32191,26484,241,26606,14552,10216,10393,16737,33878,10646,26102,7788,3974,10813,6791,14938,15235,32293,18013,12258,11032,24450,18882,27835,20800,24114,728,28696,26785,21530,24109,932,13598,30090,12498,26581,4493,24862,33048,31098,24244,12520,33366,7613,28198,14417,3738,3395,26467,19394,19604,32226,34602,19419,842,14080,23024,24802,24847,13248,20108,16555,33234,34877,29873,8963,25591,4188,19504,29620,23494,25054,11539,18299,228,18094,20783,33659,20361,25764,17338,30642,9705,22794,30868,11036,11791,612,9871,14350,22076,3478,32994,24437,3560,17591,1259,25169,34241,7186,26975,12221,8016,21613,2197,6170,22073,12855,7588,33320,23730,6056,19352,29245,11426,12057,27242,22410,13519,825,30256,2229,29261,23421,3190,20397,7173,3235,33424,17841,6644,24635,5169,32109,353,24012,9398,25734,18784,14322,13565,13292,330,1267,21204,21595,23651,31830,4262,2407,30584,24156,13663,18074,3120,7277,4201,26871,19260,16770,9052,16112,1587,980,12495,20954,950,99,31223,26732,3992,15422,30699,16219,13277,5958,33512,23643,20590,89,25685,25351,17962,10642,31949,29970,5719,30135,18120,15510,8689,18711,10670,16990,25200,18951,16952,25317,11709,22340,34832,5985,26291,12240,31092,31328,8680,16241,15414,20578,18941,27951,12477,27594,2602,1544,2398,25116,30558,25434,29878,8136,19964,19646,22431,6509,6700,29018,8889,31210,33853,18767,21259,3567,31488,26373,4119,34273,15738,4069,31412,13341,16452,17774,5476,27354,11243,14749,32311,529,22768,29378,29289,11286,193,7735,15087,26000,2087,11308,15483,22928,30046,34410,1742,4365,30347,17587,34134,3320,10443,15403,23575,13993,10036,5189,34744,25841,19117,26345,18838,26585,3547,9182,8146,14001,1658,6329,4367,28014,10709,29337,17534,5112,2479,32070,19137,4456,33527,10245,25640,24985,32317,24793,7796,19766,24315,19949,34468,4184,25335,23156,34514,16776,5300,4559,29714,10131,10826,31276,22762,16196,4044,21612,11725,30144,2912,16153,20343,3315,16457,25975,17023,13039,23153,8084,7819,26179,15643,6349,27602,30397,33113,8906,30837,31038,17724,18433,5735,25817,12159,31274,19776,15777,17838,31395,17221,24258,13854,32200,19572,21053,16815,30988,10543,33075,17956,12479,11119,16014,31798,22133,8725,14762,13377,27611,22951,118,28153,25383,13977,8265,33089,9106,16946,18220,4178,2712,5496,14318,9410,11824,2368,15300,30936,4366,26772,16269,1557,714,9403,14977,7043,7677,25320,18173,19488,17472,34415,3048,6811,20542,33962,14269,28637,2453,30330,20439,1328,34321,16399,13715,14606,22562,10169,13274,30524,22876,35006,21424,14055,4077,4563,5575,22497,25610,3456,6837,13856,20528,8380,19645,18703,25571,11781,33370,34732,2487,4588,34451,15071,13593,18233,6064,18991,1226,24015,25933,22592,12068,26292,31422,3286,29575,29811,10924,24915,18679,19528,31220,27998,17120,14339,20110,14171,5706,29955,17692,30404,21252,8961,4035,15030,1799,28344,23276,12353,17449,27688,23588,33281,13633,30579,29161,33660,26470,15251,10564,1439,6369,32926,23257,16046,34015,33846,6072,29662,11571,10649,2000,24412,22293,32263,34736,8209,28796,6719,274,6077,29051,14124,9776,12719,27276,3464,6112,19060,8279,26577,13338,2770,26120,14908,7104,19588,33887,18718,29360,10280,31859,1478,6746,1445,24561,11008,34723,11464,23987,23336,7468,6409,25507,17385,25455,31523,27000,4920,13419,29428,1271,31713,27691,23937,21048,6413,11505,6364,5224,2569,22741,26502,22071,1,17909,26287,15375,34830,29548,20891,22644,17664,9027,19490,9930,6626,21307,8453,15025,20797,7134,28129,16841,16792,19531,33245,28425,33554,4974,10522,16679,11705,8153,6307,19582,26892,25018,19787,24929,17525,12219,18982,17203,9988,22612,7406,27976,24576,20402,23793,31239,11844,6860,13182,22895,14659,1280,16963,30982,30244,13335,26917,31685,23600,13116,31532,31728,6868,33038,18501,10816,30053,9992,11603,17479,2250,31251,34153,33733,7655,17112,16064,33778,29888,311,23786,21560,7170,15004,13711,20733,4738,12145,3064,18577,31067,34783,10814,15844,19866,18206,20572,14668,26447,19533,10593,16571,25601,26348,3307,34805,10182,6898,1122,25907,23296,12899,8162,12461,4634,18448,9575,22417,15304,2733,26003,26338,9747,5862,18948,28519,28903,26207,1227,17030,13225,25478,3912,16325,33388,8107,6075,26846,16074,10910,7867,10304,13344,16446,30542,34366,342,25401,14164,28115,11469,13498,32717,19086,15875,10381,6947,27716,7544,31335,18931,19199,12989,4678,18957,871,32342,11276,10205,18511,23920,22239,4938,21107,31946,33188,13257,441,12857,506,23194,18962,18805,26663,19637,20019,18396,31322,8776,34324,22248,27548,17526,30869,17561,8171,13024,19973,3812,28350,6475,19816,34905,6557,3110,2736,33489,21529,4449,4542,2270,14184,15394,22037,8383,5962,17398,10853,21959,25620,29801,14129,25355,14575,5088,29898,25743,7427,30661,3217,4798,28265,24434,12405,18655,30729,6823,16864,28450,18065,21774,28775,12178,2024,27681,23774,4157,3418,25159,24760,31901,24003,24265,20679,19689,10148,16394,25091,24458,3943,32373,10900,7566,20454,3653,3503,16762,1009,11179,8155,6575,31390,27914,20334,20477,26944,6586,5620,20961,10776,15130,2136,32462,15907,21084,4238,6296,20671,3736,6873,301,8916,31460,2412,21810,6866,20043,5727,22424,10451,10550,26233,17570,31444,27652,19116,1010,1066,7054,34918,4244,18052,27208,13782,11629,34774,27824,11700,27529,31414,8777,14589,17626,25889,5044,20025,16287,4962,863,5675,6276,18326,18114,34048,8993,33439,22451,6150,4744,21801,23405,2923,11147,28987,6133,27479,34816,30189,2891,3929,20215,27887,9786,9494,2244,32053,22855,14739,22518,24384,16666,769,12392,3977,16971,17076,12774,32562,6278,22301,29324,21735,1674,20644,16766,1684,23794,27854,31826,8132,5796,13171,20126,30198,5113,10199,20379,17150,18612,23338,5551,34857,14363,1011,24379,2367,13912,8954,15817,11205,21958,11753,28005,29971,14194,11922,10361,32828,9301,582,26935,32966,30312,956,20411,11772,1636,29262,32155,11444,10824,34557,30465,7764,10547,6562,33128,3172,20622,33318,14468,13973,27053,1708,7336,4839,32165,13306,1174,31077,17704,1565,15615,24084,4669,24821,1659,34172,31364,26849,31616,24882,20635,10746,32611,9137,31746,19693,23261,1037,25586,431,29905,17197,30889,12825,18660,31151,19914,28675,25460,28189,10851,33021,8668,23362,13781,29362,6553,5255,33688,23888,204,9845,28365,20673,26126,34965,34429,3123,18068,26096,3641,20602,29111,25595,8292,17938,14473,14097,11140,2413,20724,34825,9033,34257,19302,21682,25872,16032,5917,25101,28649,14053,14928,21543,27036,2716,17507,10432,24329,20909,19257,33855,14588,33611,8659,3551,8385,18455,13251,31137,25925,3340,4313,20493,15177,10934,18642,29947,19068,19774,16979,10366,9884,16541,4198,8759,7963,24081,19443,11060,7516,3335,2160,7571,17394,16021,30387,7808,31796,19320,15782,12318,1960,19062,15495,433,17718,29350,22925,5426,15022,6489,29139,25912,20921,34211,7763,9393,26761,484,16763,20566,19939,15143,1698,13467,29459,10563,16108,3194,30975,7751,32532,25017,18286,34789,4948,7730,5292,12080,6756,22500,31406,8864,14699,10405,3705,20529,3758,6097,24932,3490,15580,14461,18507,32566,29447,25701,22098,25475,8979,5307,11575,17569,28526,15486,29265,29852,24212,16244,17671,22440,14369,3706,7617,33380,3635,6019,31595,6241,25354,27630,10800,10445,22698,2213,18391,11950,21762,8654,18595,10291,12134,23374,18517,10609,27788,8077,12104,30711,3940,32251,3212,18234,25961,1095,31337,18101,22172,24996,7935,28404,30487,5730,19100,27007,6587,2411,3871,9677,16816,16960,12425,7,26193,20452,169,34395,9807,29469,4001,34661,15056,27396,8260,10589,6028,7306,21549,14414,5133,34388,25727,31031,12610,20434,18231,14564,17460,16296,16418,16975,7095,20084,4659,8697,15503,16575,15562,7630,17565,9746,20625,9870,21265,13639,20944,11802,29983,8008,16635,24204,30072,22194,2312,16668,11797,5556,13641,17633,10927,3101,17554,21836,28821,17327,13232,19995,32687,3124,9724,23139,24628,5820,24389,32283,31325,31795,16553,31436,35007,14840,4614,12911,32288,24964,34987,29616,9068,34622,3905,16370,10846,18737,10696,1132,9856,24583,23271,13897,23114,17447,1677,14302,12753,4332,10425,14315,16381,6345,17999,4416,28245,30715,3645,21728,11026,16192,7619,25509,16430,11472,27086,275,15042,19418,7862,10727,21198,2975,33218,12700,199,33552,20143,29598,13750,29715,18694,21967,1787,15114,21020,17335,32989,5414,25069,17568,16490,19304,1177,2032,34060,8248,17660,32735,16909,14514,15841,22499,30528,29130,18075,15764,4623,6639,30332,29572,29961,22619,2603,5959,8018,650,25994,15297,19772,4202,745,14418,21718,4420,8524,14351,12803,15553,28383,2126,4498,5523,30619,25516,2289,34121,13972,8358,29927,33403,28044,3421,21818,9114,27904,29718,3644,8253,33735,11412,31299,18475,15370,16058,7300,22958,11830,29306,10857,32455,34941,17993,14561,19570,29700,11124,19778,29619,16612,876,192,30123,23629,27497,24689,26029,4977,1705,6262,29602,25483,8052,13917,16237,3979,19125,29270,3299,32324,9035,25064,13986,6578,23578,21108,16382,31421,9749,2990,12517,24780,19329,12590,217,1702,7932,18888,31969,7662,18046,25533,1291,13201,23527,589,6315,8853,5495,27702,33761,8185,24691,27889,1088,13720,13410,6741,28328,16467,20661,17228,34584,8346,796,7462,17089,7084,32370,14921,26224,19988,22270,11796,18334,19541,24734,11842,34038,6648,33355,7691,6539,12819,15996,2643,23085,27047,10030,4484,6829,34964,24659,14858,10107,11212,15107,24370,12328,27118,13003,14399,11499,27273,9406,9814,13279,6440,2862,32454,23213,33975,3386,22824,13289,33787,5513,24193,10106,34152,7319,19411,10248,6005,20339,13930,5098,33402,25964,10382,22606,28876,34917,31160,18123,3469,7157,13877,30446,3900,13053,26142,17362,2320,22258,21656,18134,19377,34818,5501,3052,6238,20748,12856,4422,25369,11758,24270,18967,1917,34361,18105,25410,26372,9601,8057,3477,16781,30321,24526,15530,12503,17726,24229,15423,10919,6705,25552,28690,7806,31206,860,7061,20830,30437,4382,166,9587,13610,19649,19040,662,23193,1323,13894,16715,30731,19686,16162,25184,7590,3984,9130,14277,31399,12342,21645,2909,24296,10362,16961,21937,26654,1855,7269,7053,3592,32889,13200,10827,28643,16524,1663,31952,14881,27203,20492,32375,2396,26508,2019,1113,20812,7114,25565,2266,19176,29683,7383,27511,19231,565,29153,33210,23167,17910,14825,7609,15029,22846,27547,21138,1711,29321,12721,22094,1262,20156,9888,32496,27912,5810,1064,28971,10770,5606,8330,34729,24254,34976,31769,22458,22110,7794,13062,30209,8161,14018,19773,10455,5537,5611,18436,25221,15639,14480,18112,31548,24819,28973,20412,18321,32383,4699,34219,12040,26911,10164,9580,1470,20838,6359,24778,24873,7339,1337,17874,31983,6407,8076,18950,7756,7281,9316,12438,32655,10971,253,17134,26983,27647,31677,33372,12296,8256,18877,14865,206,10442,14136,16330,21066,13726,30254,34230,19313,18890,18809,26800,34861,773,17574,16171,23661,31883,25822,32223,16075,33851,3062,3781,20341,100,34486,68,34925,27251,2017,29486,29517,13969,9195,8744,4851,21398,16037,4377,2833,11599,19297,27230,16493,9855,16594,5475,14702,19502,19958,29522,21250,33495,34170,17291,22178,28338,13708,14380,30364,27597,21658,30822,4545,7089,19735,6386,2669,1985,22983,16601,11180,5091,26727,9697,22303,2994,23326,18850,8227,2010,30531,30922,11410,15548,6951,24661,21892,9689,29848,5564,30444,19932,13682,11916,1870,28015,20229,27077,18451,9434,21683,1462,4963,34932,28479,34828,18569,26884,4463,11343,6687,14610,24173,5571,19826,14088,35025,3122,29759,21223,20764,13386,26151,9520,31315,4799,2063,5431,9294,12390,10820,18966,7632,28869,15190,30212,32211,22848,7414,15093,14681,26568,32404,17131,16545,5366,21435,18430,11598,1525,2750,5100,6134,23157,16393,34104,22043,7579,30322,30951,17948,21193,13949,2300,33432,17156,7230,25664,437,6402,5763,32663,1700,13892,18680,1909,20501,23412,18323,26792,31279,22420,21110,23814,33387,33091,29585,7001,17739,14533,27183,22661,6258,29407,5952,22577,19579,14125,13174,16317,12914,21179,32561,8645,25877,11429,12375,31676,33194,28603,21500,32275,31802,2311,2153,26492,14442,31781,29614,4953,16497,30784,22917,30069,1728,30824,24782,27516,13184,19676,19298,33634,33200,9231,28334,8408,2240,25881,12107,23976,27483,29827,10949,12144,1571,24630,25188,1299,15223,31657,15627,11384,33321,32490,22732,26448,17743,16211,15488,3309,26997,3100,27294,6917,24809,26936,28719,11194,22196,2357,13237,5555,31633,4114,2763,14103,4480,16871,5194,27130,30334,4334,17826,16066,683,22558,27121,3080,4806,32122,1215,23565,9139,26011,19598,29039,19437,10192,28840,9912,5424,11601,10022,29422,13816,6510,10972,19010,10519,9910,17937,26543,21031,17645,16840,219,31782,25837,25612,5815,22035,17959,28599,33249,25492,20263,1630,560,26836,16842,8134,15213,13794,16587,31135,32093,3000,8280,15910,24443,11996,3002,26689,24240,12694,8649,4813,24445,14326,33049,7598,28735,25820,6546,26389,29802,28449,7218,13324,12045,517,10444,21808,9205,33273,28009,3819,9023,9446,13379,30432,21479,25429,8758,13104,21429,30978,29769,2537,11788,29690,22183,26146,10179,28317,2657,31431,6923,26996,3292,32544,19977,4124,11225,21692,27448,33594,3804,17721,26129,28570,31289,31709,31343,10932,34716,24634,29038,23907,22654,7298,13568,8325,29080,9720,29689,3026,19861,3071,14388,3254,24839,28467,34990,16677,30408,664,18272,25729,10213,33505,2078,19141,29789,12526,30140,10014,6204,30096,2616,28103,19154,27410,35021,2001,13070,30792,27384,8509,16882,20338,6106,22775,10989,23801,7365,13438,32159,11340,7714,9467,2663,5532,16106,21141,21540,17994,9247,27593,11027,25852,6388,8694,29865,21380,12867,11024,25358,19761,18020,4867,20929,7225,26381,20484,12094,7241,2035,27915,25675,31413,15871,27247,16261,657,29149,23771,28922,3556,14569,4548,13541,12563,24175,5797,7318,12175,10189,31373,4902,11877,8258,16435,29208,25943,28550,3904,21467,19152,4152,15082,4648,6871,26901,18581,1103,20268,159,31962,19402,4275,23342,15322,9128,2634,20561,9085,8780,32526,14871,17157,33994,3544,7111,182,21181,25682,25362,13384,31856,32790,11221,31932,31372,30139,17132,27828,20846,21909,15179,15976,4609,29296,1421,11860,3012,12927,23006,31994,13642,33224,19348,4162,14682,7644,717,17496,16875,31850,15332,23645,20734,23359,4815,28116,28210,25919,24245,23162,19965,1656,18189,25368,21411,27552,2237,22757,25432,30156,6691,31799,18431,8364,23689,9390,16311,6503,10852,27489,11941,11459,31184,15980,22496,30515,7052,6422,33771,17255,12034,15278,25042,25464,9768,21575,11018,32870,22797,2330,8561,3116,32897,29140,10042,7425,10094,24763,32205,6834,13137,6044,29783,18803,28315,4208,28194,341,27401,9355,23277,17039,6368,22790,2516,4533,25671,14716,17104,27167,10342,31740,27387,1921,28734,25721,16306,8322,27266,31876,1903,3630,28251,8753,20061,8643,24866,16174,33052,21757,5965,2504,29583,10121,9325,1409,11110,690,1626,1828,11681,7542,4598,12265,4161,20554,26861,28628,19050,8636,7857,1476,33920,15259,31931,571,19798,30580,15735,25935,17797,10647,29979,19294,19032,16079,14368,29231,17598,25915,11256,22442,205,34975,19359,299,22251,13027,27424,25670,18026,25287,21173,26228,20559,9062,59,22571,13777,9074,5448,12525,20068,28786,20470,31892,18587,28770,8620,15780,401,25606,6993,10921,3384,22621,12310,33795,32972,31446,5340,29010,22714,3600,28408,17953,8251,20138,30617,2820,21711,2584,26966,29592,9364,7141,23248,14869,28791,19860,15697,35013,30315,30590,916,3127,19279,29804,28792,22693,9386,13660,15437,7261,22495,1142,161,537,3718,12179,31793,8479,3555,16089,23853,7016,11257,17174,4833,183,26004,13763,26216,19812,15848,43,5535,8975,25403,11510,5844,14833,25684,14264,5314,16236,21894,16820,34522,8116,5793,8223,29403,23323,17849,33909,1643,5204,6476,13297,34503,15472,788,17756,14707,18339,32816,27536,14650,17383,28395,7385,30774,30499,17486,2627,2536,9089,22921,1681,34536,335,19367,31113,25678,33391,847,21338,5876,25393,31695,6599,7036,13520,29564,32642,17905,28004,21129,22535,34597,7395,15967,7776,12323,33534,12747,12188,17084,20958,19998,21096,18509,19517,6243,32021,8920,25343,10452,17518,14081,26517,18449,14250,22444,34030,29742,5375,28433,21059,18786,8639,26407,14353,20367,22685,16678,32114,21578,21944,33546,24525,3339,10237,7012,10829,32962,296,34934,34061,2796,12562,34180,6443,8786,31910,7123,10287,8441,29520,25120,17995,12736,30787,14713,15047,28347,24016,26145,11987,29502,21174,11652,3414,23404,30710,18411,28974,3731,30611,29590,30877,13518,26539,22007,2337,32556,25122,2364,11779,25719,21081,9382,25044,9486,28093,4425,31703,16981,27460,8189,23955,5505,9115,2390,5908,16216,27210,34086,18034,1805,4594,211,7072,18555,22773,3288,6629,3300,23657,10422,12805,3536,22220,23145,18603,29067,10968,1662,25312,28464,15892,25224,12355,29461,18121,5210,9558,15670,229,21681,29476,21775,21217,10782,5634,26098,12466,3106,7692,23679,11375,25705,2369,28760,3095,13439,29465,12233,3230,16246,19327,22959,4478,10171,5967,28018,25260,20894,17300,2477,12775,34526,2297,15756,23314,23289,21412,26540,24801,16307,22642,19758,29258,20574,645,26529,9570,5356,34924,22822,8457,16501,26730,15621,26588,5019,33067,22533,3425,5621,34882,11466,12935,29977,19950,24550,14830,3472,15840,28343,6545,23279,22891,6058,6854,4130,32552,3793,28694,3109,11927,4698,20784,28211,12960,16190,25638,14821,22782,6856,4794,23829,476,16415,3197,32907,22786,15320,20000,33190,17478,26050,13827,31454,26645,19650,23584,18344,1541,26764,19275,30864,18213,32179,14745,5841,21621,14930,16186,15266,22916,24674,1467,11213,33613,9095,11045,19182,7701,25344,446,14671,30371,16353,16009,1184,7645,27993,11193,33624,17834,13285,33379,12164,19639,28846,8539,30396,15009,25207,18355,22114,24213,14605,8840,1131,113,18622,21288,11095,16738,32651,10922,7971,29992,30831,12991,7345,25588,7834,707,15209,26378,15870,1920,24164,31817,12301,29717,4535,8794,1181,26868,18257,17364,25315,5122,3574,5982,2745,24800,10326,31234,14441,754,31904,23910,26533,287,7324,4116,31326,23479,8418,33813,13605,15642,21945,30763,4975,7893,33840,17062,30944,26877,13029,25584,4021,18087,21093,31194,14620,5233,30871,26443,28477,7909,33471,34634,14859,27328,11997,13806,13512,22154,9516,18674,14228,20646,3145,23902,3564,9233,12930,5593,5439,32175,13847,27767,30196,10545,9296,3082,28841,18219,818,5422,15883,12128,28554,6901,15707,17404,17198,18646,23169,14906,14599,412,22952,22460,28958,32876,27616,1767,5461,32169,31997,13426,28141,8485,6067,5974,30559,18460,5925,5089,14261,19641,6596,23378,16749,16350,18172,17164,16224,18907,2424,7159,27962,31851,22527,986,29618,5042,25774,8872,20861,21215,27224,27312,34325,21273,6541,25986,5136,9401,16303,34020,1562,25443,20475,24104,23844,21756,3800,27020,24157,2377,13146,29695,6861,2682,17473,33015,28881,701,12042,32823,24794,1607,11366,16475,22870,32757,4709,8332,6990,23944,27946,18710,17891,25527,20544,28710,2449,15367,13771,31613,29466,9661,23823,44,11901,17697,25427,26647,4515,2587,24930,23191,10209,14502,28555,33757,20875,19764,28642,18413,22254,20418,30457,11349,28625,19338,16130,31829,2702,28857,909,28536,14562,33061,26066,17205,18692,16684,13945,14640,11975,2076,34804,12524,13571,30804,33185,14412,27124,19556,29457,21933,9002,30568,15835,6277,28782,19913,3233,970,30481,6858,16833,3319,32713,2224,21390,11766,8433,8832,25904,31689,30426,1422,34691,22817,28284,34478,1977,15688,33230,20144,1368,31820,19175,7229,14288,319,29467,4216,16024,7587,32866,21929,35000,8507,10383,27154,25892,29638,3784,15968,32208,33329,11751,10828,24939,14802,10791,14484,20556,26188,7892,9651,6614,21296,18347,32896,32236,1625,19707,29235,21497,9664,14211,25081,30830,19431,761,19900,27524,5053,15254,17582,27012,1618,13785,5728,19146,12287,13392,1961,31602,23021,23667,10298,20488,13316,11159,31354,14946,12795,20703,8532,17011,23887,14572,24581,21642,9632,25095,19015,2744,6895,7037,6266,19098,25268,11708,2762,11316,7548,24351,30749,10736,8647,11267,28940,32701,3113,25457,31626,17250,16249,18245,4868,1603,30848,25105,3072,19628,16710,6289,23693,24391,2454,7750,6215,11148,13902,24865,14608,32902,15335,757,9610,12885,23946,5065,27697,24044,11590,14824,6707,75,30750,29347,24287,33807,22579,16233,17974,2585,3051,9722,24215,19779,7022,28682,2655,16346,26738,30368,13011,5755,9943,637,7264,24251,8718,7208,3181,3383,12087,31200,22357,30117,24318,12153,15291,31520,27786,18395,21744,12522,4283,25346,13944,2093,24934,20167,21660,4873,20595,28712,16825,28753,8272,4603,187,32486,15281,11378,28784,9508,25078,28532,19734,15954,2066,28242,12695,20716,33100,19172,32235,34799,24749,28697,15490,16443,19609,21534,13550,12733,21671,8060,30660,34994,11017,18481,28294,24568,15788,24731,1771,3986,7199,53,25879,13026,16033,3814,19537,32138,6461,1309,26428,26278,15233,14582,23231,4459,4269,26500,6271,518,22205,12521,12846,25161,15451,11538,20888,31006,23000,19536,4356,1065,2429,19300,32186,11933,246,12763,6504,4615,5830,27349,22074,20621,30192,28319,7638,3033,4302,29853,34608,15772,8822,1231,13489,6538,2192,29581,14066,1916,34574,27920,25992,20680,29438,15073,26071,15933,31297,1954,26724,25893,3479,4127,20066,5070,22721,18909,32549,34794,11651,12327,6684,1232,27774,12828,26387,34833,26834,32119,27661,21800,18693,9643,1987,30468,19746,27428,19516,17978,1382,30829,18280,12605,29034,28455,27720,7777,31330,33480,7458,712,5376,24814,24424,3696,3559,93,13235,17636,12147,2818,24697,14421,30609,5612,8890,15217,29340,6299,31140,3457,4228,21573,19941,24260,7244,28757,27013,26671,19379,31885,5686,19034,12813,3158,23686,14231,11643,1392,32129,11930,17248,21354,24238,6274,31961,32853,15681,3640,5419,18678,32657,19160,31832,2346,23454,12788,20114,12894,21993,33921,34385,11010,346,20634,16091,31504,15026,21033,3537,26157,23367,18836,16902,10032,18019,2689,19985,18563,9826,20539,11940,34344,7626,30847,21624,33836,29104,22566,8964,9060,3691,13703,13861,2273,26667,19732,33513,6117,21192,23130,21358,2904,6580,7848,14459,3809,25250,29089,10289,10911,31547,20732,21811,285,26519,2187,22967,23062,32802,6531,22064,19897,24849,18028,5681,22393,20668,25968,17096,4125,31853,21113,3599,20415,5473,460,12865,7309,32723,8526,31443,32680,16210,27683,24632,33073,202,33509,31219,6202,7689,15990,8141,16817,2817,13084,3727,19790,32516,14139,4932,8344,5984,6424,33150,20174,29535,11156,28894,24181,30698,1766,19240,33869,9432,27621,5577,13318,6616,7056,26116,14487,16348,26536,9647,17768,9384,25742,32921,4427,6244,4852,26341,7505,7314,25926,16651,1914,11907,5828,28527,30110,9916,26760,29760,18736,3036,1320,13721,9815,17193,24714,10170,28911,603,19283,11823,23029,12607,19621,30961,4086,10888,12785,22343,20645,18658,30666,33832,26087,20020,20707,27549,21839,34647,14158,9869,23126,3529,8714,28255,31091,9045,184,7040,26856,9105,34421,7710,1027,4199,24154,34845,13161,6256,29115,14544,10874,6563,5931,27347,3201,32347,13260,7204,3949,2117,28007,29170,19904,11368,17820,19843,25490,19266,12410,27104,27022,8250,24836,7419,29756,4107,1029,30521,33650,32315,4418,5268,8706,10327,30413,4298,6455,17592,18840,14391,19480,25454,24645,25572,33868,16337,27429,30474,7799,24472,17822,22226,15628,24980,2727,3808,3168,9877,605,35039,20701,32362,1622,28382,4983,5398,14566,30084,30693,15583,14241,5470,8904,15729,32047,16111,5158,30289,34439,24280,30325,10449,28243,18671,5338,9617,26155,9150,8589,13836,34995,25906,6907,21117,8569,4937,18900,7755,32742,30178,32625,15275,24571,31123,13164,5313,25982,25546,20844,25332,16913,25897,28165,21916,21691,24864,9925,27303,17051,10247,33047,15207,6864,14206,18496,2457,8333,17032,25252,19383,33740,24282,32463,7715,19085,26822,29963,12324,22167,6470,19401,6592,17972,26929,33486,4242,11325,8676,18049,27896,13145,12186,32567,10804,27436,19078,9957,1175,14082,12916,28655,1826,27669,32014,30752,23674,1578,23938,7206,27184,33101,27752,9097,22113,11357,3023,6891,2112,19188,25832,19575,24166,26860,9366,27713,7388,17942,30553,33647,30920,34949,430,12541,23403,31155,25166,14679,5997,26249,18754,19210,1056,33532,27016,11413,21782,13451,23263,19623,15554,28783,20042,7600,12770,26927,15031,12246,34970,15038,1450,6801,20965,2722,25245,22694,33261,4908,6454,22726,14787,21704,32199,21501,18010,8813,12995,25234,21499,31847,8878,28310,33758,30496,10427,2333,11919,20860,4375,14026,27467,24195,26014,3523,28201,33673,24657,18553,34867,9891,4017,22980,7899,29834,34951,17243,5242,12703,29110,6991,29249,31923,27965,26262,34654,28597,4078,34672,27442,29892,25189,31818,33351,14943,30113,27789,30422,18426,2378,15153,5746,3324,25406,282,21356,8683,29220,24314,30280,15206,23921,9129,1274,31202,9436,5165,4476,30891,14519,32365,4336,1394,12853,4526,12844,21017,19901,1311,29941,25277,12485,6935,18521,9090,1370,20455,18470,4801,13490,2259,18464,10777,21597,16954,24415,20137,26962,27344,26266,1940,13007,10718,20978,19749,10943,7999,29160,33152,16576,4538,34201,4922,5231,9854,15389,3437,30100,12512,33621,2238,24662,23022,24168,26937,1248,13619,11,6070,23391,32185,1293,29794,17986,26237,4888,3041,5037,3088,11918,12306,4266,30569,4643,18363,22353,2467,17906,7333,3500,17304,21030,11307,30132,17123,20735,831,24841,12744,30767,33681,31173,5724,2753,19369,10734,14445,32173,26632,18281,4253,402,34322,15288,25209,31176,10835,1992,20049,14367,25665,25686,13494,23505,13815,20743,26534,543,12475,32695,8811,26497,11822,20786,14545,13679,22179,13106,95,28962,34727,32007,384,13471,16829,4132,2264,22067,18338,26244,2083,32357,28306,29227,2091,34639,21115,30895,23210,2948,19084,19056,18350,16496,4530,10807,25728,5254,31529,27238,28571,1223,15091,3294,12336,11896,20060,124,5733,25276,10104,34308,28980,19404,31854,12440,737,18675,4051,7811,24725,11183,21229,29962,33935,11451,27811,11348,9812,27129,15064,12982,4444,19574,7248,4690,20459,13144,32309,4256,2665,3665,17717,2143,3485,20383,20678,12365,10799,7313,31244,23630,3138,5212,31375,14953,8147,26427,9971,30995,32487,26371,33475,27722,21687,3129,13962,9604,24120,21171,365,21915,9006,34183,22032,2589,11973,1512,24123,24201,7091,19757,25150,34193,15069,27600,19648,32189,14903,10691,26459,17662,2558,32402,266,5656,17807,16426,30242,17145,34947,25547,26299,25874,24950,34459,5157,21970,27395,1256,14920,1804,2851,19455,18362,30309,22525,33259,25111,30923,20105,24591,32868,24504,34724,3832,3501,22798,21282,29646,20073,25873,2145,328,28909,33340,13523,3569,25417,1928,6214,29464,27859,15994,21310,27779,31663,20939,12115,29471,9542,10833,2615,8163,6568,11031,1459,14809,31909,10111,19889,30051,5586,34868,11000,18262,6694,15646,19885,14101,2341,17575,3843,28721,15378,31656,33462,739,16449,340,2067,19372,21103,6201,27150,29603,2455,5999,28920,33705,4180,17818,5798,11355,41,26750,21869,30976,19902,7574,33104,13729,4203,25400,14783,66,15991,21855,3459,26806,1539,15229,9257,3135,31491,26434,30000,12497,6870,3799,30883,6964,34171,33164,9507,30385,26001,31974,21872,12626,28239,6217,22229,18699,33687,25408,16126,7603,661,15065,283,6373,15092,12345,8331,17311,9796,10882,33239,1100,16163,3463,6338,13421,25226,30429,176,14498,14257,23344,40,24227,21280,30133,34714,10818,8817,13249,21342,2964,4507,24845,27211,19429,4491,32949,25779,2941,8426,25648,6579,2490,34609,8991,2485,17693,13080,3440,20098,32882,29882,32531,22018,25467,26446,22262,15818,5753,22970,2022,28545,21780,26619,4006,984,34886,15493,15283,17737,1432,34530,21074,7773,30991,22331,12036,17206,30743,17931,29054,27470,30545,9784,3424,30456,31149,18166,4429,9514,7559,20647,13767,325,7838,33992,22816,18720,11647,20692,8454,2545,34447,12861,19299,32844,15182,8264,12091,5668,19862,14308,1489,667,12490,17943,5873,734,1710,24736,29775,6225,31128,11862,18516,27372,15323,14626,9407,1918,29861,25,5597,25740,17837,33995,5364,2517,10840,7919,25718,28825,907,31308,26595,25437,13840,28932,24570,33231,18132,9751,29137,9615,25849,7151,3018,12988,8910,20448,11576,25985,4396,26180,20688,14220,15349,16031,5,29384,33399,9076,16187,12796,23893,1423,17900,13119,1404,34026,24744,11103,1297,26149,26476,11376,17073,951,10556,197,1156,29092,11537,24600,32232,1634,2888,8738,18130,16409,17581,3892,16183,11848,3438,29570,34485,2475,13766,4374,8210,26621,26166,34756,9583,34887,11776,31644,1529,13479,20033,22027,16505,20478,12511,34280,23084,3114,13510,29514,9111,24041,18670,31253,34363,1753,10256,11172,34751,12962,31242,34109,10591,12239,8394,29712,16070,30890,23340,7342,6767,28816,6355,4527,13666,24958,4754,18386,34523,26140,1381,15356,15155,15396,22051,10967,31007,546,12141,34693,8129,4683,26701,390,25672,33313,30105,24013,31075,32102,1160,22510,30534,27054,2129,9127,22553,30275,9134,19616,3350,2495,27579,9067,24183,16355,20719,31195,12376,34117,114,4109,19993,1526,8348,25431,14175,24503,17793,25023,9381,32163,34349,28687,30201,22445,15473,6589,33334,21655,14711,307,22465,19875,3070,28459,17630,7896,20393,7273,17267,14861,10313,12637,28375,25541,28069,19045,29701,14155,25283,8036,30624,15420,2795,11957,7514,33599,16924,26401,23364,14258,744,33562,26115,33949,12309,462,15051,10559,12760,20717,21616,1238,926,9623,979,20183,11174,22809,27839,21152,15284,26226,25131,10060,34820,29654,9606,22038,22131,32011,9359,18438,5581,4168,23058,19080,22072,15167,16020,17501,12313,21006,420,5373,24057,3305,17801,29995,7813,18506,15545,30809,24194,21921,9725,5818,8389,31605,18140,28868,7203,17332,31624,17913,34900,17408,31111,19461,9199,26781,16966,8527,13313,5857,25215,2978,21426,13558,18673,28605,17505,15905,1588,11872,14817,26666,29084,14782,9866,11555,27768,12205,13681,29348,869,14191,30021,16783,34202,11487,30552,22326,23417,5682,10621,7842,34328,6221,11401,19730,30955,30529,6847,19856,24275,9920,3096,27634,29303,16773,9184,33367,16897,5839,8634,32150,6543,4204,8704,30674,14216,1172,19059,4167,5411,11260,11012,22,12189,18510,34339,23744,19936,24867,27545,20591,28512,20990,1486,4303,10546,27103,14756,10145,6879,16529,17074,28045,13073,16334,7614,11265,8902,3505,26144,34844,28600,34689,27262,33080,28640,13829,6802,30006,5715,30972,4175,16978,32181,9818,16203,17102,9112,34538,25608,20311,21517,2123,34737,16836,19332,3953,6881,31993,22829,26256,12078,20576,25396,34507,18240,14152,704,23523,2491,15713,23297,13411,32426,19342,7783,2025,2256,23508,2752,553,33270,11767,15649,16804,27829,32106,32963,19446,30509,16551,18647,9053,32624,10285,9946,2189,26812,16313,19259,4737,34621,4995,9924,15824,28795,33362,18303,6257,5423,29385,5023,32595,34699,7918,29515,11120,1078,16309,27189,8200,26692,29212,14982,12331,9329,17952,13584,17184,3869,2939,17162,30490,9425,4987,6511,30044,34549,3835,11222,26815,13373,29902,13950,28097,3650,6759,9448,24039,16759,24710,22908,28720,33463,8764,32024,13356,5685,3743,30954,15048,2275,34031,13851,3666,11096,28630,15679,26130,30265,12842,27186,9839,623,5567,32873,10707,20197,16103,5124,11816,32960,14481,22595,30115,14568,10555,23515,8439,13820,31641,14882,19166,19155,14968,8480,14398,23469,2205,14102,3788,17395,13319,23485,28777,5680,15404,32596,11789,34021,27005,31236,7699,31755,15775,21134,10719,5321,10309,6769,15061,13530,1481,8739,10525,33446,6253,20209,22261,4757,4988,11761,23717,13326,23071,24738,28667,10477,8616,28462,16297,14464,32734,9816,10268,31127,23662,11470,9949,6380,13852,4923,647,32146,33476,30172,19167,14183,2724,10489,5125,33371,23136,17270,21015,30450,4211,21930,33070,28847,18024,25000,10334,31565,27458,31227,13236,3766,22909,23775,29001,26734,19207,25636,18934,18598,22913,7182,23049,9383,14925,12363,10581,13460,10567,28658,2074,3482,31621,7521,30486,30501,22975,11866,30402,9926,34772,33986,27857,17656,1665,483,19381,13898,12663,17608,2198,34101,8281,28559,10482,6983,31664,17276,23087,25010,11605,12881,16267,1218,5226,16556,14094,26402,18151,14163,3027,17190,8819,26316,27982,28166,31930,18459,27629,26907,14766,27187,10617,29083,438,16969,22333,3367,6360,8218,4229,33042,16215,28054,19924,5145,756,22530,2323,3952,28997,21746,24595,23221,18898,19987,15592,25119,4746,7493,13566,3270,34617,32617,34759,28177,24088,4886,20520,14160,30695,12069,2598,21123,6682,34926,14796,12926,10893,3845,32730,19546,32329,4693,11303,13458,20507,22181,600,17873,3978,34290,16207,29226,6272,16279,2456,1832,3565,10428,4619,13800,11699,18683,27530,34801,24250,23845,5956,34505,2387,29739,26105,2949,22581,22265,24481,26909,24131,30815,23660,10029,11214,11756,20639,20791,9528,3995,17572,4903,17813,17783,24440,857,23292,26866,11461,19219,32952,23057,9899,25496,12082,30627,10090,10338,16063,2739,23094,19489,30677,22105,32911,23554,32376,13477,7698,28392,15230,26058,10194,20426,13978,4601,12679,22823,11569,22057,24688,9753,29843,32167,4978,22947,20878,15405,31203,5192,14002,32822,14619,7064,24344,31801,20984,5216,27159,3222,11164,17612,15524,21352,22213,13266,19057,5549,18176,20024,30608,11360,32193,30412,9176,29702,17833,31729,32016,32656,11580,33286,12573,1361,25519,28121,24235,10995,26150,9427,15027,2322,8180,8483,4881,24138,32901,2879,1519,22341,31125,8708,22208,8766,26463,19296,8630,7059,678,16194,21608,12922,27733,26357,16131,19482,26893,25257,10866,33815,24997,20548,22464,19724,3059,11237,14958,2640,477,31828,29357,32918,9590,12269,33557,2226,17556,11536,26154,17703,34679,10227,27002,34778,9046,27437,20326,24347,23723,32485,20112,3698,12552,16649,13134,20395,17509,4464,13668,15745,27608,15379,30823,32089,22945,15317,7282,34249,32956,20191,4150,27439,19508,11660,18450,34864,15194,12290,1939,18012,930,32077,10714,25387,7032,20451,5894,12357,19412,21712,29057,27640,1200,18345,3602,5503,24759,30902,24113,32091,10787,32025,29414,27195,14664,10959,14292,32670,25562,34293,24598,34788,6958,14433,16331,20811,17551,32171,8534,31250,32809,3794,22771,1465,1983,1437,2675,1022,1191,18420,13700,13687,27677,16544,35030,10335,17269,27188,26609,9592,14282,33103,29824,30578,25899,18211,9025,3260,8339,8175,33397,23711,2730,33109,28934,12704,10021,19241,10416,4591,1906,11948,17759,3891,33928,2324,22800,22505,34105,29009,23542,17483,21636,7438,7100,9049,16530,14660,6399,17700,31566,19938,5207,16151,6886,14275,31599,2927,27874,4993,5704,3237,11710,19991,9327,23528,173,34746,8471,12993,9163,13669,29957,12708,10167,1144,14852,8416,25979,16115,31627,4153,23013,5180,19567,34878,7254,447,23112,23777,28225,23933,34337,14683,4254,10403,2084,21554,11774,4259,1116,32827,17548,4640,29058,4966,18160,16846,33914,3752,7706,800,9455,18632,27462,7901,6739,1429,33482,9635,16617,1246,5624,33395,21373,15028,22360,14274,10323,16886,7747,18053,669,22157,7736,1359,30433,22009,12752,27245,19158,25676,3849,22915,32683,22123,23438,7337,16035,16254,15152,4788,5392,21783,4958,30032,32525,32895,15306,2583,18305,32228,30026,32557,14283,14232,15448,25524,24653,32880,15876,4891,3998,8143,25235,2042,26723,19033,1266,17204,14669,7678,9715,19953,21209,21673,34554,30987,17960,30781,19434,33700,13884,34003,22436,22476,17855,14885,5697,27501,10087,8925,16642,35035,33285,10283,3060,10867,17533,5416,4434,4608,19814,2811,1993,11178,21932,25009,19216,10190,4797,23285,14557,9431,27736,19459,33213,14312,18022,10219,25086,3480,29343,19833,790,3150,5451,29454,9138,3063,19669,7459,6448,8196,25210,20519,16164,15887,14186,10031,33051,16775,23969,21524,21815,1495,16155,30043,3431,23896,16714,24535,3805,10151,34865,21796,23088,10423,20856,19712,29419,13756,24423,24890,14912,11480,22143,19414,12586,34051,16911,19921,23267,24032,1055,21025,921,8410,17902,5899,11416,18260,34065,9684,26043,22312,12714,4352,23727,29981,31048,21360,23009,4050,14083,23188,34813,10020,30288,22026,30355,25339,16508,31164,5653,8702,24199,19239,32078,28887,23729,28866,32996,6522,18418,15582,33019,2839,5311,27084,32445,34856,28844,26755,9921,11978,5328,25627,10507,3836,24656,18853,22874,33044,24380,31189,6041,27313,15568,2683,11520,6231,9742,17326,19096,1726,2580,13501,1879,24856,27719,3762,31838,22882,24,1193,16629,2466,11648,27050,16008,28060,8481,5633,26593,12,34696,24888,19762,28081,24831,26563,26894,26279,18583,16062,25098,23796,30905,32451,14240,11309,24979,3475,6723,15635,18728,16247,23973,25129,26141,28036,25661,11143,12928,17879,3833,12976,11057,14785,25175,22826,25641,22774,32945,32632,16873,33961,28914,6330,30460,6165,31580,15653,8002,19366,11196,28049,10502,9156,11296,26995,8724,33627,28088,27413,7026,22576,11738,34066,16691,28471,15640,5393,26104,21461,1941,1046,7062,4617,8246,597,25399,534,26528,10737,24971,1455,12393,31078,4830,33724,19917,7152,13499,1367,23701,7840,9634,35014,12489,2776,32950,2942,2005,33661,21700,5110,6129,15610,7491,22191,34455,389,10401,20004,10200,27799,10185,34019,9369,11014,18772,14985,12444,33533,7183,30900,18921,30060,8079,22747,19278,30303,6323,15482,6168,15151,4327,30415,2564,21082,14285,18021,9483,28357,9727,24604,19754,4074,34550,8592,29413,5264,23348,4342,28848,3918,30613,29141,15416,3533,19850,30233,18057,13905,22506,23143,19426,8438,26219,6167,13957,25554,9144,8852,7529,10781,26676,13061,9757,20203,12904,1442,10942,27690,28785,21502,14116,23760,7887,20746,12491,23026,31109,3417,1007,28984,28552,32503,16364,33980,19817,20612,20771,1850,14524,20654,7401,30929,3240,27712,5654,4486,18958,14145,3407,779,16051,32055,26899,19815,922,2420,15279,26578,18619,2968,22850,23470,29891,561,33110,23036,6970,5237,31313,22756,21506,27170,10071,13389,29543,21362,19871,652,12941,27197,3344,22875,31911,9563,34834,32699,12443,23430,30746,29042,9498,5608,7440,20610,6540,25887,17302,16005,24981,22165,11403,4941,22429,14540,26379,26851,34624,4793,8958,15805,5249,24398,16901,24616,15132,3933,22976,30257,17941,19601,23415,32231,666,10344,11079,6903,23110,17752,10212,33172,3997,25884,18765,33196,22089,4142,23873,10819,8397,1952,14759,16424,33468,1872,28207,19212,12127,31956,23322,9011,23016,806,14997,3193,29315,9585,1523,33629,3591,34938,1908,2108,29107,6779,30610,7724,21302,31388,6121,8034,27147,11821,15828,26350,19872,32392,22930,28537,110,24037,11274,8814,12806,5066,22421,19058,1502,34135,10978,29649,18756,1061,7380,14246,24108,29280,7138,6605,1235,3642,33437,8024,12684,14525,20674,18424,31568,26099,13999,20997,28147,33702,9343,22021,11208,23381,8204,21647,28926,31103,10356,34124,6863,28835,30106,18461,25377,5531,26615,15257,13755,12568,12229,1090,7810,21935,24832,5006,16880,16785,8927,9941,31737,3674,699,29893,30039,20829,5848,6013,3251,6910,457,18652,29487,17870,17195,16722,16040,2082,24991,18251,7093,30181,21841,13288,27771,14709,33932,12211,2965,23854,27667,965,31742,14346,32648,5574,1791,19090,27383,4795,27968,8139,24677,22342,33996,31260,11145,26415,8030,11832,203,30016,15156,10810,14052,6318,28515,34587,12569,6264,1585,4318,24699,18256,4419,18037,5937,22450,18169,4243,11353,23313,32340,20563,1366,4057,15053,29887,1628,34114,16942,8756,8770,28061,22716,32843,2962,1143,18623,32115,6377,21297,19933,25916,25851,8033,22135,18279,18070,10324,33938,8145,12841,24182,21846,27212,10385,6669,34568,13795,3519,34400,20810,14992,14902,26803,3220,9597,7247,23325,14113,22354,14839,11636,3107,9991,2668,6493,9566,5273,24607,16072,10075,23400,5430,32731,15018,6992,13872,9593,33325,12936,33327,20551,20923,13270,33090,9782,17944,27763,30471,12559,22320,33888,5209,20369,3330,30520,24276,242,6178,32759,24712,16665,18077,3779,34409,18527,29793,26687,22670,1601,15613,8217,827,29368,8564,18331,1247,33485,8395,17573,5561,19555,16769,16030,24159,28212,28008,6292,26558,6714,23090,2521,28052,23840,18512,8303,23984,6334,33123,4747,6663,26521,17380,33299,17830,13692,10379,14786,23468,20658,25668,34390,14573,32539,6986,14857,34958,15783,33175,21119,19906,19230,13961,7498,33269,12737,31822,29568,18377,9057,32352,6673,21385,11688,32741,15000,7153,22488,17677,29178,16479,8789,23300,15386,4849,30937,8405,23843,31258,15040,3774,33254,24335,24453,16295,7709,16149,19264,2581,32860,17172,17443,10413,5305,20414,819,34903,33229,14004,1936,10346,34116,13013,21301,8023,24660,6181,27766,24310,31013,27858,30620,28584,16208,23229,9154,28090,21579,10723,16570,30348,21459,13606,17229,30555,21200,20632,20045,373,33544,10068,8999,22448,12236,19388,11831,2749,17281,7945,28968,8600,11521,12636,10933,6789,6977,23440,20190,2566,28864,30134,6184,18504,16177,18116,10535,23512,32350,7350,22310,2832,10945,5472,3991,12592,9686,23675,19185,4148,17776,24569,30591,15054,10527,33309,2885,34185,22374,21219,9183,26187,4321,14763,25240,25415,31631,16748,7384,33858,28776,8177,1355,27943,15921,18933,6946,11203,133,17495,6965,34697,30645,21632,22397,27605,17179,6642,21873,2633,13914,31770,24792,28854,23619,28275,29940,6376,8062,13496,9662,32079,20201,5881,14195,18316,33392,6079,10584,15538,13774,26520,31416,11577,28991,25290,31541,27493,20225,26424,9734,14559,2344,5526,28073,15789,25232,9976,29061,13745,27190,14048,19690,7870,22036,5227,29830,32103,889,5003,29990,4506,6174,15658,27966,4272,1695,23390,21089,16573,32740,22696,25828,7332,21405,5079,6784,15310,14182,1475,12403,16847,10480,15561,13547,25696,3724,16229,29462,3985,7523,30686,15961,14452,927,7737,32504,3306,27935,11677,17420,23039,3325,25285,20193,7665,382,23180,31506,28874,19091,20910,34316,26712,32948,2360,13636,10172,17423,7525,23096,19365,22624,13045,19870,23706,31615,946,12951,17904,8049,13170,6279,28979,15661,12053,24231,18268,25637,1390,29406,21306,22294,23050,33117,11939,17748,1991,22146,19474,28152,8409,23467,24907,25616,32703,33550,26824,29327,10957,6749,12035,30476,15550,20609,5927,13381,24316,29349,7098,25080,29969,28977,22941,17367,15248,27304,6068,15641,682,28041,6818,30331,17143,32584,31743,12135,7346,22523,21715,25803,24959,30228,2214,13878,17558,2483,14248,16256,8861,24139,17155,11436,14405,27632,6357,29656,18841,14868,19777,28624,7097,24556,35020,28326,13374,30943,26311,1862,2793,29452,34797,33864,18484,16947,14879,14797,4373,2163,28959,23791,4406,32591,13090,15267,1848,34165,15527,14151,18050,25818,34245,26013,30379,6761,4952,30241,21319,6853,11827,14475,2908,22709,9901,1694,5335,12705,34463,34309,28126,24187,11981,7360,1179,8245,4761,3701,16034,1136,32369,9310,17373,8413,24350,27569,29561,15564,18255,22403,32582,5779,29391,5631,23212,32831,17928,6199,29634,30343,34565,28128,25484,29850,31481,21577,23799,12564,11819,1597,34327,29918,3328,27148,32854,9699,30087,8918,8285,31404,29144,24477,27635,14926,30097,23540,22636,8865,2315,20989,28329,20119,13724,12952,21004,703,18109,17926,26968,404,17510,1301,27723,34576,27515,10836,16625,3532,12602,16368,26759,17142,14769,4205,3575,4589,5024,1957,20080,10592,6656,23068,16001,22364,4364,15959,7965,6157,3427,6111,34698,23638,3715,8355,21312,29838,15826,1261,31711,30095,33276,29408,5310,30914,11167,25981,8519,31922,4333,28728,22388,29152,5992,5629,25305,30536,34935,27123,15860,31623,34043,9235,17682,17908,18624,2271,18320,8174,13507,5320,1501,26125,21538,2253,30842,5017,23437,2097,32506,31054,7856,17751,18570,25309,28546,17200,32665,11500,14806,24117,15145,17772,34921,14999,8883,25666,16700,16636,4349,17217,25795,25126,26835,34404,32279,11625,4972,4697,2632,20250,22981,7852,5800,2928,5723,5536,3996,18530,23943,10741,21065,21677,34341,26068,16134,14704,2201,13127,25830,27255,27586,30447,459,15204,19196,17864,11293,15534,21409,22237,32690,19978,5034,10773,31981,3314,33491,14401,15728,18769,24132,1959,17237,12767,21947,22512,2047,28612,22048,22090,30161,21221,4213,8922,11399,26440,18889,8468,24404,34052,1811,19165,18182,31508,2845,16476,26137,23676,21470,32182,21699,17077,8500,21703,32977,22792,28620,18184,24704,5601,6662,2305,17482,28563,17429,24789,8393,9376,4030,18038,12023,34668,175,29896,24742,8980,5083,26076,8553,16253,18252,15430,1308,15722,4957,29777,25731,24126,25127,13242,6494,19737,33941,22734,24741,9939,16017,24027,28429,32728,19017,32147,20101,5884,578,10572,14778,25365,13353,14434,11347,23341,14376,21880,6904,33314,29507,5560,22613,30683,5973,27267,20592,3174,5403,13141,33940,10698,21536,18093,2945,9213,8159,34098,10568,22825,13221,31666,23917,32929,9485,15366,2146,27780,33983,13585,32307,1852,10895,20091,18704,32084,17689,23890,22065,22787,34521,30561,12629,18980,30057,16790,18179,30435,23998,25479,13252,28478,608,705,31562,5214,15333,14265,4661,13272,26767,32001,9554,313,10368,31121,1572,29697,32883,7800,17508,19246,33415,27925,26733,5039,26101,13983,20516,11245,10643,25902,21261,21391,20999,32505,33007,33177,7536,16572,33784,32209,14771,18825,26468,27468,32168,16402,11468,28832,29305,5673,4904,29095,4065,29138,14530,32149,20226,1638,1071,11048,7557,21012,14134,13209,22404,10446,18161,31002,33981,13228,32334,24152,2876,5736,26034,3073,12154,2030,31957,29451,4445,27433,26423,2137,22487,32958,8796,15057,6281,6366,24752,9886,19937,27177,4651,13701,21472,15922,32838,27307,15398,29032,6348,26462,20996,8456,4008,4980,26816,25847,26680,8946,4490,25373,24097,19473,29439,12418,23718,11972,30377,33665,27662,8127,25634,971,22863,4762,14117,33767,26509,492,19104,4206,22300,24305,11101,34888,34889,30311,29205,2159,24716,34041,7798,5115,8598,19532,28741,30557,8635,16197,29787,23755,8215,28071,12360,3165,3044,19311,25084,11115,10290,10132,14915,12419,31648,1434,30672,33954,30092,14537,12234,897,30059,28902,25340,33179,22454,28769,34374,23644,1306,4331,9532,24982,23137,16721,6630,8278,24669,2380,24082,15599,2575,32049,11284,4454,12617,23147,14477,8940,3733,51,12810,28234,15591,7746,18393,14383,6535,15123,30726,24941,27550,25251,21122,19590,14041,27332,6220,12407,33584,5120,1975,21067,29757,18944,27520,26842,31361,16726,8951,29558,32527,21748,4115,12709,1697,21490,4172,24475,23997,23964,2901,31609,22415,28123,32319,18454,7164,7417,13776,31046,15383,14667,31567,15104,7454,20731,32769,3859,672,27417,387,25329,11951,2981,8117,16832,21381,8887,17653,18214,15917,2211,17729,5244,9911,2484,10410,31542,10358,28257,978,30333,3352,9616,16741,8451,23247,2946,2443,5137,20321,17135,30307,32640,12750,32540,28601,21901,20883,21568,23337,708,1242,9469,3326,24664,19159,339,24447,8740,18196,24967,10098,9627,25937,19635,10331,24973,26307,4357,10872,6955,838,23632,23985,31739,29755,25033,11763,34572,14022,12052,28367,6344,4160,29361,15978,33523,17719,9103,26870,14811,19659,4691,10614,29869,15314,5103,24887,20826,7946,18250,9217,1678,29236,17624,7305,6544,23548,31987,33895,14493,10013,7050,29386,34979,11043,33068,583,30300,33369,2232,32517,33247,14993,7789,16919,25249,19663,9435,33458,5910,26075,26398,326,13940,14038,23007,12707,8423,9028,7890,13561,9760,9017,28283,16516,12814,17312,21054,4606,20837,21924,26631,34329,7259,31063,9865,17257,14295,5607,20920,30625,22752,20689,6416,33507,18041,24198,29003,31561,13035,7837,22362,15174,5132,30575,24119,14320,18751,8692,22256,8953,17544,32928,8932,1515,4316,10299,24540,34980,19895,14875,20682,1318,17725,24708,7567,5585,18442,34243,32042,6633,4752,7455,25635,26391,26238,33201,4031,4775,34009,29637,18174,975,24837,5339,12250,15746,16657,34348,9197,21737,10265,14491,23979,2327,26030,21258,29967,30659,29735,30219,30428,19105,315,22142,29256,20512,5650,12799,10389,29497,30340,22808,14791,24700,15665,12204,28808,14289,13575,23807,11662,24740,21449,29367,9556,5702,26461,18835,12329,9164,16531,1182,22705,18639,22335,23001,24706,30839,27956,572,16239,24330,18477,23159,15879,26700,10633,15552,810,26887,32951,32658,29425,11666,14252,24307,29175,5786,32051,17402,31772,34741,32427,1448,24893,10501,25327,13231,14737,28112,26853,557,27402,23414,12486,2116,21646,29903,24018,1877,14962,18804,20903,30986,15425,10744,29409,30884,17319,688,29511,13388,6436,14886,34838,7494,19668,5780,29036,15581,11491,32030,6822,28768,33563,29025,23950,30771,3265,6090,11329,7639,10780,17611,5217,20106,7311,32197,29339,24435,6209,32120,890,9681,30757,5358,7290,6512,1033,7961,16274,9663,25311,13188,31456,27008,33253,9186,29920,13064,5363,15723,570,6293,8570,17099,31459,26370,15046,17887,20295,6096,24237,7441,9710,24185,31004,15084,5319,12681,19178,18515,17325,28301,28564,3452,29069,31136,19331,31992,17308,7731,32846,13848,20276,21451,33232,30958,15147,7693,34345,30458,16554,11609,26317,5774,31027,11392,887,19711,22573,2060,6365,1225,4347,292,22129,1105,20795,25746,26669,27096,28871,22013,29849,3343,14570,11926,32406,15479,3830,21668,7344,2509,15112,21000,28040,33663,8790,17159,29352,21036,15853,12957,26195,13409,16193,17068,23572,16436,27762,15827,7888,10150,3204,2856,1670,14105,31821,11099,34534,2988,5257,4143,28923,23125,31157,12245,17763,14449,33111,9055,11421,11991,802,26879,12193,15975,22479,34056,27388,7067,15464,7573,9501,1648,30893,34603,28056,27193,90,17604,11268,4255,10467,5134,6809,15523,8698,6219,12706,31720,5539,30063,25614,12647,17080,19053,24385,26569,977,4925,20722,29485,17545,27873,32754,7728,2070,21462,29374,19293,16814,25206,33742,28220,7174,5923,16284,5253,10796,24892,10364,9122,21161,27566,12835,2446,31760,527,4458,28493,16460,7984,31861,6492,8851,24118,22234,4234,24070,16828,12113,5933,21688,8469,1869,3617,13734,29874,1935,30688,29119,25602,12847,7495,32637,6911,16606,17957,16049,5238,32791,15277,24485,20698,20355,34713,25528,32473,9748,544,24364,6408,26176,22984,10619,25011,6109,31,30850,13582,2624,16624,19192,16523,29444,21758,11134,10947,12344,9243,13422,26300,5058,6401,6059,6593,23055,28468,12291,9219,23740,19538,25062,7863,16143,30971,25607,5920,28131,13989,3527,24332,24334,11742,26168,9883,27638,25762,13269,19464,104,13707,27166,3941,34214,12702,32341,659,31928,31480,14347,34989,1436,13391,8446,16518,25067,21626,16326,4985,14693,1325,26429,32154,29630,22491,18773,34359,7636,34707,15797,18202,5975,6833,24337,5478,25778,18666,23901,24374,31486,30350,23975,4675,31483,29323,2827,5578,29814,24451,32206,28028,7868,19254,9321,16102,33032,23666,29606,32379,2691,23020,20821,20062,511,28218,14010,7433,21202,2304,10880,15963,16027,28901,31819,8194,26657,23350,1653,18552,17757,11146,21242,3486,31757,19368,11717,13430,7108,6617,15469,32433,7205,10295,26388,3381,7258,14986,23319,26883,1418,8705,24129,11807,30713,22673,18177,8609,1167,33608,34520,19276,27393,195,19578,9771,10815,6598,24527,2664,20296,32934,9385,26283,27311,14337,3008,16634,34464,9693,19107,1775,34657,30068,13974,9252,9804,15039,33016,31455,23377,17434,10329,17140,16838,805,1081,12880,8913,9874,34205,25264,7767,13001,29295,10144,30546,35016,29720,16010,8275,276,28142,18374,9653,18453,18665,19566,10516,25766,24886,28000,25271,34618,3860,28403,24679,34192,9690,8058,8521,19763,26584,3034,2408,7561,25526,1755,10640,28299,26015,21155,13325,10739,33595,3244,26009,239,17766,2461,14435,5737,14016,4947,6804,17092,29288,11300,13002,25160,23401,1444,31808,31283,27270,3763,25910,8073,24295,26038,28371,9896,26710,8586,3483,8812,30803,13357,26889,34255,24639,12303,15526,22291,376,15779,18700,12032,34383,20243,4597,15468,1417,16739,16439,28358,23617,2309,4287,21548,19094,545,4613,31967,2363,21363,7146,14966,7908,5741,33564,32339,7685,28557,22125,31691,26880,6754,23611,32229,4004,27133,12169,9121,26814,6941,19496,1949,16581,18899,24765,13034,5280,13243,12170,4566,10789,13097,30606,16861,23100,3590,22807,26513,16743,32635,10320,32142,18288,32036,19986,2778,22944,31653,9413,33926,28079,731,13240,11833,7959,12787,25866,28469,27890,35022,29632,3076,9774,18137,25856,6022,20603,22593,14504,23106,2562,14387,32092,11564,26182,12723,34277,30508,20970,28237,226,31629,25104,22192,14428,221,18366,33059,18315,29589,3554,2586,14244,28415,22706,19928,30872,14370,8106,9291,12701,1654,26556,33772,20604,23789,32780,4326,15050,3651,3976,19475,8637,29390,28632,2336,28908,11233,15974,26673,15928,27622,20158,32955,3683,474,3398,24514,6906,10373,31788,25347,32177,16852,30857,9340,17341,22430,33426,10801,29013,13653,34671,15124,7335,7687,24951,14665,26490,25027,4247,6952,33535,33405,11513,16117,34155,3973,20601,8044,29194,31154,19397,20113,30881,10043,16491,7976,888,22932,9460,15305,24976,12130,20828,4731,1241,19405,3155,20026,6658,26988,7972,33066,5355,21857,19822,6328,24994,28829,29200,17771,31255,23185,31138,31365,32839,21509,9938,32939,5953,11397,5584,21545,11161,31301,680,8041,12220,8937,10936,26914,5485,14316,16045,27066,18398,32633,260,15685,4159,19584,19751,12364,29158,16644,13155,18855,22831,34823,10484,28538,25797,12482,12558,3972,28683,8749,34133,20926,21322,15419,8845,29560,13783,21888,34272,23764,11670,22880,28406,3969,17696,21982,18242,22330,33121,1965,25281,28927,27684,30676,12804,30375,1139,3175,3392,3134,15016,24373,23175,15191,12137,1831,31037,8933,29591,23402,21927,451,23070,24495,28322,25908,12676,12544,4630,11314,28314,24667,28190,1846,26411,6551,15995,13216,18739,23,24818,10220,22890,11235,6147,3855,8262,9539,14218,2620,19083,8347,28289,31535,29782,32359,27808,9511,32677,29207,21203,6548,1540,29410,1438,12337,12368,996,19325,29372,16280,24095,21404,23372,22407,29268,993,17329,24396,27916,2177,33922,11608,7307,1891,32250,25447,18633,34902,29495,4596,3541,31738,22039,22202,34382,21396,13691,3493,2864,6259,21268,20188,12999,20933,13327,3353,27346,24917,27325,29172,23384,30865,16057,34524,5569,6887,24257,9781,23934,5998,29829,4067,11485,22994,26829,13735,20637,23787,17100,9810,11707,4955,535,26757,16615,9187,5437,8232,5172,5054,29237,4071,5929,11299,16752,25708,28924,28834,10080,30572,33582,14974,7711,7010,16631,17782,244,20620,6651,16944,19215,21804,832,23082,2646,20404,33859,22148,17189,20267,19615,34636,19912,28870,7028,15162,4723,15726,32453,23459,24102,29253,4003,30858,9979,31898,22551,2206,17413,11209,17451,4899,31530,24069,7407,19399,27705,4487,34033,12076,508,3281,5442,29131,4633,18791,3945,2404,10244,31385,20695,2929,10514,33265,12367,10055,32862,24359,25917,26625,32961,19611,12126,20571,7415,3252,22683,18126,3687,25472,30498,9509,20154,12746,33652,6176,9297,23582,31392,18073,28592,15575,14994,7558,1786,2041,4257,26421,12315,29050,14531,17649,6711,4292,8936,28510,29863,2798,16610,21116,20546,24701,11934,28562,34467,8517,14036,32057,9411,19903,22652,29935,34764,16786,25775,9808,11317,19335,26054,10730,30169,27940,5151,15150,3428,18296,18961,464,3104,12288,14313,2523,13817,4853,32722,3098,27228,18724,26471,13553,7926,844,21285,19421,6608,4145,27296,8309,24990,2546,23692,1574,22812,33842,26417,985,21077,13924,33968,32482,14960,26728,1885,19408,29772,18735,10174,28046,32812,619,25070,17122,17462,11771,19836,1145,13366,18571,3801,30593,12295,7744,12866,19692,27618,21407,8653,26875,29915,17407,30992,33555,5625,34473,26464,10645,24650,19558,26222,14634,30224,16119,18227,16998,14054,29148,32076,4047,1397,33492,32826,21697,2130,29687,25156,18685,94,19339,21423,27218,28858,12625,17167,17800,30654,31913,14706,9873,15477,33518,25751,15718,17376,23628,5067,28318,11283,15755,14895,10668,2605,13254,11251,10158,9682,102,23453,33865,3422,18360,20374,26991,34292,33191,32546,2430,264,4621,17450,5557,19322,29698,17901,18409,2977,23129,16515,25816,26274,30202,31714,2871,2519,34271,21659,27797,19268,33516,9934,32519,31312,7797,26810,14673,6195,5785,4662,22793,17632,5904,34901,3703,4590,16925,27269,18047,20258,774,20480,28312,24011,16506,14427,32763,18653,8667,377,364,9014,17895,1717,22227,20684,8001,5616,16983,16481,28715,5294,19088,21559,27253,10371,392,17303,31513,34870,972,33880,32848,29934,32776,9018,33903,34428,21975,13864,26981,18621,21064,20747,27490,27575,33678,14305,33780,10752,26571,24298,6738,4019,11195,4749,1631,8349,6433,76,26551,30216,34652,11912,16819,1843,24961,31401,12678,8257,30400,20757,20496,8484,12120,34590,9834,31345,12591,10505,2823,8841,5936,28931,5073,18405,17293,31316,6936,463,3308,13418,20271,2319,26369,23178,29980,30540,25969,2482,23092,9351,7315,14733,29972,27725,23988,17866,10785,27475,17613,7162,17989,4604,27425,20300,30391,13355,26455,29426,19253,30563,2144,14512,15699,12191,16849,694,29213,15769,28995,1596,63,26254,33082,445,2284,20777,5994,14057,7402,18561,17659,2173,30088,3700,9253,18422,2561,31571,33306,34642,3396,30535,7347,9100,20900,16999,10582,23936,4865,6001,3303,24441,20029,9190,33664,26133,26213,22745,12216,24530,1979,34677,23373,16043,10652,4843,18194,8493,24172,13125,12990,22549,10918,8172,22252,3530,23535,762,2514,30386,8193,11852,18689,30150,14245,30168,3880,7642,19768,575,7330,23859,24338,288,2960,8515,2705,33654,5642,15969,23851,23940,6421,20902,32472,13088,30165,21878,19001,19920,12877,31871,10823,12784,19748,18928,10077,11971,27361,1183,26776,22346,12150,5690,14325,7522,21327,23161,9833,9986,7029,19970,2015,5507,21382,18549,9048,12277,470,4665,15944,32634,20485,19025,9375,30099,9913,6497,6758,9502,9819,18543,21867,26441,10266,21126,9246,34780,10173,132,32244,28774,13396,12394,28137,32589,32299,1899,21672,26362,31487,13925,27006,25815,1199,6667,12447,14073,32689,7775,22966,8122,10281,18033,11100,4073,18820,19111,19008,25730,27378,2700,19726,26934,9892,13693,16699,25695,6363,12102,18218,32674,3615,32576,11871,4658,26854,31587,7219,2458,22939,17343,32075,33667,33695,25391,487,10908,22630,5918,11483,18949,9680,15586,13637,14389,2535,9030,30440,14666,7511,33576,27256,19029,23908,11841,26573,15904,21425,20953,13117,9852,1124,16465,1356,8908,7770,6649,1496,30649,26343,10255,5246,4936,34489,3103,2355,406,1910,33657,26716,4328,13686,16502,34996,20251,17375,6549,24141,9529,4455,22618,13990,15932,14319,24220,584,17731,26384,12758,14142,16620,8432,6839,21582,20291,14651,23599,11704,30112,25049,3624,11240,15602,31811,4676,24940,21777,9642,34694,8816,15060,15667,20518,7295,29250,11870,10751,18023,33308,17514,11588,6234,5175,6534,11509,25806,11154,14784,22783,22060,19627,34029,2642,17844,21761,18529,28547,25088,14701,22416,2291,32968,5367,23098,892,19462,2679,26597,7499,23983,3285,21403,7166,15579,2027,27942,27078,24810,24180,10198,20649,19258,18356,13868,23805,17851,10586,24728,24589,3219,17313,13210,12967,21076,4248,1904,21052,8835,14290,9829,11022,22735,1809,30443,27120,30723,9966,2403,17093,7539,17940,21264,16053,15415,8359,8365,29994,18698,17357,17655,31752,1972,16327,2767,24197,13320,29563,29320,2394,21485,18597,11565,18472,14470,21186,34605,16405,24221,32045,19868,22267,32555,10458,11501,28672,3510,4581,12868,4144,30565,33923,24418,213,14281,3021,28507,11924,9471,16725,6556,5056,24542,14138,34313,28500,21128,7950,1002,32434,6981,7410,12158,12833,27587,31816,11271,20973,29836,22107,25736,24603,846,864,32748,10057,3596,4022,1315,14549,3593,25171,23010,6237,894,23351,15249,24900,34393,23569,1860,27240,17609,20998,7739,34814,27948,6916,7066,25263,10683,21998,30633,6228,27234,32277,5672,32126,14971,29248,29641,31357,13839,24772,10494,4304,34318,28217,12010,21290,20820,9161,11152,14874,19984,19892,14291,31070,30780,24498,4489,2926,11435,20044,6624,29293,15385,10491,25273,9993,6124,17165,12801,30704,2178,14087,13220,6185,13904,20511,564,3200,5087,33628,5708,8619,27591,3347,7469,20623,28891,22033,20408,491,12024,29528,13871,34356,3870,5981,13536,21124,6283,3725,27319,13312,30445,7707,16645,12606,13844,8707,10206,32772,1463,28996,15393,29338,32360,25813,20149,14334,26977,32248,6566,9302,8525,28263,18605,10433,8713,29877,4780,5527,25497,12748,20922,28376,14815,14616,28106,29183,15856,19349,27374,26383,17804,7302,567,17723,1833,20494,34270,17899,23911,8182,29711,6994,2959,20827,9232,25947,11946,3433,26349,34233,5010,8228,13006,16374,26559,22561,11534,18725,33951,11411,33769,695,4854,15263,31082,16278,4850,5270,30933,9999,25449,33410,3401,19640,25748,16543,3840,12725,33639,10660,17391,6668,8443,19594,6115,461,29260,11726,19316,30691,15960,3318,34479,17176,1255,19961,6843,24403,6938,19755,15262,22885,30589,16931,20709,24722,17753,9313,822,10380,18846,9963,32477,28270,7082,34414,19236,14905,33904,11628,10685,8046,17403,15303,22272,19392,17387,27644,11874,33872,569,25747,7092,13527,15170,31400,18117,9527,7475,7431,27872,1651,30854,20305,22161,29157,31387,31749,13120,24331,2791,22295,18035,11640,5068,10264,29180,4546,20729,27156,2347,20388,27137,9391,11090,28565,30888,2735,23208,3679,32773,32464,16007,23782,30825,3317,13448,8670,9679,32756,25106,15858,942,34566,10811,7154,26368,33676,9842,30873,33970,27672,29968,32758,16189,8894,30328,7681,34426,16142,10520,27345,10498,15286,29354,34515,1970,17024,15854,6248,21300,32935,1025,13866,2494,21225,969,18722,5154,5640,349,21232,12567,14904,14008,30631,10666,2743,20163,5041,26725,126,18684,33936,34199,21095,17180,31397,12812,28773,29243,21558,20349,7004,4294,34516,31839,1645,4126,33913,14190,23465,31384,30519,23683,9736,30421,30040,23493,34466,16705,12098,26913,25480,10928,22659,13310,17540,26100,3313,486,16922,28828,10702,31442,16050,18495,33422,22675,8742,10293,16100,8192,14456,10126,20196,21861,26393,24528,16291,12408,14942,11855,12118,24483,26802,2600,23945,11884,400,11690,23251,10005,829,722,23991,10630,7526,21596,1079,26807,28101,14371,7911,31291,30740,2497,33050,8149,33373,10883,17504,9744,28248,25700,25827,16592,8747,1595,24158,21367,19899,1137,24326,369,4844,20384,26245,24311,19835,24777,6632,157,24439,665,29562,34527,21618,29845,1014,4520,8621,24573,18576,32437,1312,30576,4049,14278,4529,6555,15299,23726,21795,14068,4610,27571,15739,7659,1427,34619,10729,30813,33053,15090,12578,28335,32475,17037,3772,17521,18351,830,4423,18513,20712,9306,22590,32094,14217,28680,33541,11903,9003,27029,30492,12086,28078,34858,7356,13931,5220,24177,13907,32554,31690,8541,11970,25771,30948,28755,19310,28976,6094,3094,12739,25153,19881,22217,32537,20919,23827,8741,16318,18542,125,26074,31482,28298,19969,17678,10092,26235,26442,16301,20562,27061,19333,27561,7612,32639,21946,2784,31080,19576,28740,32419,17288,31417,28091,1154,8178,23709,850,1810,29470,15478,19048,9007,5649,26655,2254,17758,1874,6500,8478,19453,17061,787,1884,4196,19702,33470,7280,1364,31120,6647,32867,29747,19092,15930,18862,22498,11341,12483,5245,28264,16413,26953,33223,20792,15650,9544,34775,20186,17345,14188,26375,17854,3526,18458,31741,11369,20463,31514,32028,3958,9772,28209,30870,11050,13654,7429,5387,17017,31294,17786,21347,1222,16577,4732,25990,30846,1067,15256,14624,31268,1561,16340,19887,34754,17169,8056,29665,23881,10859,17503,25219,3546,16799,28807,10599,10251,9400,31700,8242,33690,30684,12789,30582,12660,16133,18375,14042,29389,6450,30098,9783,2349,17151,12334,28896,20853,22349,24910,5788,21021,20666,5260,31196,28629,9695,34334,26739,9535,28765,34765,24313,12560,34819,26255,11054,2293,34895,27206,9506,27443,33892,19420,34307,12380,26394,24218,32727,23624,28939,9702,5076,28180,15857,8613,1093,25506,13222,20194,10059,7363,28089,11084,24259,13020,7190,16302,6731,8768,4088,14415,18514,11561,17685,21406,2539,14408,18235,21218,34299,13281,23025,9998,4649,10764,28678,4317,21727,30227,15982,4436,2488,8368,21897,20531,466,22274,19699,9917,29433,34132,30862,21917,25864,5863,32266,16956,10578,28482,22712,11615,20462,24009,22372,7717,24785,9669,4717,17875,21159,22434,33648,16904,13122,16268,6502,31783,31536,33107,16703,6354,19326,32662,22688,14146,14505,33753,28804,1915,34070,34644,26825,34174,4165,22596,8324,23387,21754,30430,24806,11915,33826,7215,20736,29725,30455,24773,21710,28427,7602,19439,22017,33199,20173,6820,31521,25092,20832,3893,28574,24902,25769,11306,6362,13657,25971,12379,278,33586,25534,5777,29549,10674,19400,33618,2439,18236,33296,15720,8826,17227,12726,14776,29684,23966,13741,4986,20141,15893,14842,13573,27743,14266,3908,24291,15033,27899,28799,10606,8473,8646,17848,19142,9947,27459,27769,26942,20034,27785,20217,22751,13459,5222,15021,9935,7423,31958,23613,3160,26622,27379,5957,30941,7815,21557,29416,27042,16648,15052,4410,16539,7210,6288,11258,21988,23056,28663,9492,2045,3614,18708,22907,11204,26951,13624,15752,2604,18241,18830,23521,16463,30403,25643,3382,19775,20833,9215,24171,27045,8631,28588,20136,1219,6332,30675,11995,18819,13258,11657,25604,25136,29651,30013,13156,24876,26948,14558,28686,29550,1913,18672,11535,5121,17602,3786,28102,5579,34184,22856,25051,11116,9473,33444,17490,16628,22399,30717,5995,20087,34022,2242,29672,24560,20599,9170,1722,15274,9229,10110,3006,9029,12915,11803,432,26926,10064,760,1457,28969,17396,10594,16603,18815,15605,27352,2552,34985,9550,1842,7155,4032,5316,23986,4565,34547,29398,27316,10855,15815,30861,5949,13413,24726,8755,33575,25495,18009,4992,2639,10162,17790,8690,34796,17251,27414,2308,33407,16308,21625,25021,22957,25796,13086,23958,13067,17576,25757,10495,9803,22153,22382,16632,22246,33814,30594,11281,692,34991,22287,27658,27421,27623,8369,1550,12557,29232,32443,10066,24155,24206,22557,14602,18498,31209,33043,17596,26480,27369,1121,5142,12279,21088,20491,23846,15957,17889,33180,6462,7496,17515,26661,10109,17015,17644,13559,16441,27158,456,6770,423,23218,10234,6086,27398,348,9083,11885,30204,29417,30762,25913,2288,25613,34317,17532,7007,3005,31324,20579,11076,26938,4763,1050,4655,20799,17146,28098,16375,7128,11217,2989,33625,18016,17388,13158,5048,27732,24713,8750,16855,22031,12772,31332,34607,854,8114,16561,32213,22414,26930,30827,305,24007,8419,14555,15246,14311,23181,20606,6233,25589,21938,1839,16147,5856,23568,27937,1508,6638,1161,7780,3411,21140,9228,22437,16778,31570,28662,599,33000,24252,23731,5546,14090,22529,17741,3749,9395,18005,27095,28441,23360,28913,6116,9837,9758,31936,11323,27223,28274,26457,33701,11415,14532,13197,16408,24429,1482,33899,24624,16240,28466,31310,19267,34787,11716,15543,9075,23503,1713,11029,33680,914,32258,30167,6567,25445,15869,4443,25880,26646,18996,20285,17628,14663,33827,29685,9157,2789,7786,15443,27488,26134,20375,24266,23179,5562,26048,15734,13834,25792,3290,12297,3370,20180,31647,4270,1070,8700,23273,29346,15116,19675,28938,20809,24248,1727,14822,28302,4772,19684,11344,27996,9392,12692,20333,1023,31964,16157,14488,2848,16286,11189,12873,21133,9973,5131,34928,17138,22666,427,28928,1769,6620,23694,84,13351,18943,12973,2772,4028,33105,30290,32679,22616,6855,10273,20357,30761,13058,2122,4307,9177,2987,30742,28331,32130,8502,2121,6999,27868,19524,27055,2162,8083,33693,18522,25618,12452,9295,11345,15596,5361,25568,12964,20314,12227,24285,15109,20543,32323,16767,11041,13860,789,16793,14724,19753,23122,530,7102,12202,21383,18606,21733,23352,7725,16992,6015,31890,27471,34460,20806,23420,5388,30598,12547,4872,8320,9548,6179,32441,22259,12886,14976,25012,21070,17810,4036,14522,20534,1664,24729,154,13118,25647,8165,31837,32542,21080,10511,5479,23684,10471,17615,13340,24034,25372,25026,15672,673,2883,20975,34008,29907,33558,9315,24091,5721,2574,3434,34913,17811,34032,13843,25858,28843,24721,22155,281,4531,5014,6322,19193,27196,18668,24115,12289,13450,24303,9761,31369,20758,33585,5062,19061,15585,1405,3553,6303,19148,29851,31864,8208,8552,24230,16048,28172,17194,24884,1795,12085,28566,27596,31338,26690,7917,15778,1245,9168,22727,19673,2840,9968,33596,35,27898,22580,8026,23889,22528,20239,4792,4448,23721,30071,5407,2746,21027,28970,25117,2272,22832,1357,15258,30832,24421,8074,32900,33713,21847,32743,23316,29670,19156,1646,24239,3782,22144,13742,23705,24133,18582,5534,4187,30281,18566,26576,15825,21552,31950,33643,25158,4870,34301,18546,24488,6346,33819,16039,21482,27114,15456,19930,6378,913,29993,3864,29159,29045,8807,14580,20151,16837,33490,18115,9586,14299,14747,34588,5106,22567,26741,14404,8542,2834,23398,15127,34323,32528,3249,20515,10503,7107,32906,18040,19027,7874,29857,22918,26210,4534,22904,12441,19618,15502,12997,29946,14003,31754,31273,12742,19981,22456,11088,7779,17129,22386,19014,27809,17415,16411,3668,22738,20895,8135,636,23642,19828,32117,19593,32112,8988,12281,13821,33955,1590,30798,31620,4578,19362,9557,10263,19395,2046,13321,16697,21183,12450,10038,9562,16173,26183,10246,7858,10000,28393,15078,14611,23930,2617,30148,8669,34692,3125,23956,13212,28282,1680,32535,12896,8101,10367,27883,32764,21098,9709,26211,12399,18168,5950,29876,29071,14696,30354,17847,25474,16385,9596,20008,3956,22538,4577,5889,34846,31704,12272,115,12942,9360,1750,8121,16672,8622,26380,32134,7176,32980,566,10307,5258,15301,12209,7369,10411,29959,5712,34802,318,16116,23113,9932,10360,28878,26158,15822,12097,13719,11218,18275,25053,13484,27260,12696,31673,3221,5542,6888,19274,22334,4288,19710,5525,4,218,23448,1497,6205,9109,31891,18551,3822,22020,4149,23061,11373,7967,31069,12650,9704,6582,8351,34102,19386,34835,33345,29909,21287,27427,15556,18963,23912,2064,14025,31049,15630,21120,25204,8345,17225,13786,29048,21105,16339,17213,19118,31474,1517,33226,10738,2033,14578,13468,25711,14577,3512,8662,9322,32421,20755,18055,26782,31068,24599,1085,1878,9603,13916,8399,11888,28916,22587,32153,31777,1048,24629,21101,22041,11242,17512,34284,17477,17936,31505,20214,23788,21689,13474,15348,23133,4796,10595,11602,24668,9666,21521,10115,10372,28733,21923,17552,2797,15222,2846,28872,27046,2442,16845,31028,19303,32148,4729,20714,13574,30931,248,34123,18823,2582,3746,14000,24438,14712,8388,27115,24271,7140,25810,34648,27259,25735,2385,33252,27155,9331,32409,25352,30473,28646,32450,25382,12620,17354,16823,7821,6606,8900,20506,31831,4281,8504,32565,21456,1759,9641,22180,2723,23299,5347,6412,9848,6604,25157,6382,32207,2210,26042,34552,31660,26623,25559,33549,20751,14064,34919,7426,30215,28986,25793,30015,32803,17405,1015,25068,4158,28855,22285,23255,4386,14736,13190,11328,28521,19859,20691,12615,14819,14719,32354,27108,4397,32348,7150,8538,29660,2538,22943,12459,7474,8126,1882,21600,31727,11905,30102,16065,3689,28454,32449,32131,25265,23477,18988,27653,19468,3331,30764,10725,20297,11216,16869,1490,29984,16964,18852,10979,3311,21902,23627,10415,23704,12776,21766,33206,30231,7949,2132,19825,20670,25421,29554,3710,12471,10745,34551,8007,23065,16995,13744,16312,27938,16622,19882,22713,515,9443,6788,32215,34499,27945,21466,24342,24249,29534,2415,7517,20436,10330,29382,170,8608,29234,4460,5380,2109,25110,9670,23712,3001,30252,14420,7371,3262,14181,33720,12691,29613,23073,8437,17397,21541,25503,3269,16444,22102,23785,29201,16029,18727,11277,33632,2292,16755,4350,5468,17571,6029,34525,11633,24858,26406,33543,25014,15924,9202,14910,8212,8601,14658,30500,5051,13048,29169,21277,25940,11004,23318,28497,18677,5896,7649,10575,34866,17946,18076,20244,15740,15629,18873,29431,16588,2859,2023,34379,13219,4412,10163,25031,32108,6751,14479,31918,9719,6933,17126,7422,26957,22660,34869,7643,1146,9672,26530,14975,20468,4225,1673,23232,26971,26847,1580,9463,27112,28065,30452,34748,18067,27932,7181,34973,11452,17702,14780,17191,12627,28756,29790,11890,12940,15161,14708,19550,7260,8314,5853,29395,11068,9639,22583,10082,22689,28035,33988,3224,24926,26494,4838,24049,4702,25585,15003,15083,4163,17663,31551,29835,9270,10108,16562,13169,10717,34898,14173,24162,12870,28420,28,16675,21234,21389,12889,20308,11037,27496,18832,9487,375,7992,27334,18482,26173,20078,149,6959,4913,22150,3465,33225,6418,20077,31978,11746,21826,10034,28994,30414,8239,26259,2631,33612,3209,32947,15597,14527,19186,22897,12449,21016,6597,14356,13264,11006,25485,22008,8089,31868,32924,2375,7596,26293,5891,22428,14753,25151,17965,27377,13250,2277,33163,30005,33341,24984,18146,8354,4040,15790,28381,11786,6914,10868,20364,33174,29219,3151,29317,23743,14792,2952,30547,8400,24784,9418,5033,32247,33828,11653,15429,16474,21936,28039,7886,30207,26396,10762,3815,21486,6826,7555,21752,32290,30211,3876,14494,19683,23671,20739,31405,26561,5346,21680,10765,17393,10271,24658,29016,19660,24671,10607,7428,7184,495,31104,606,13599,230,18714,332,4712,34231,21487,22329,1043,742,11543,13387,8447,20834,16870,12446,22132,20711,16471,32118,2704,2510,23134,7604,25592,2707,2071,3357,30357,30184,1948,21507,4155,961,28676,29474,30826,14197,11049,22401,22486,21503,15714,5456,8342,13968,22390,11136,16810,20352,9574,32981,2388,26409,20723,25289,2395,26321,21995,15909,6141,18880,33118,18325,12830,14122,3839,33143,34226,2203,6570,5827,21562,15940,9965,26031,13828,24868,33783,7352,13051,1556,17365,30586,33963,17983,20669,4354,19745,2612,30597,5429,5395,13592,17791,34283,33258,1575,31266,33393,34519,2194,2996,23160,30879,32158,27533,18858,30618,10939,27924,11185,6736,11982,13710,13643,25578,28370,19237,1333,18435,20863,3695,19530,23606,28254,19916,7880,34140,26857,26613,4016,32471,32599,12349,33944,23119,31586,10772,3514,25798,28572,18816,9094,29699,3161,25777,23206,25699,17541,26201,2884,25556,3028,5164,12689,21893,17082,30362,15673,30335,10769,1401,22739,30927,6799,9723,12600,23395,20461,6151,24160,21564,10296,32483,5248,19026,19174,32116,11202,16600,1288,21778,5671,17088,391,27350,28885,3474,21127,17139,30304,31044,5052,20851,4505,9931,34782,23353,24216,11861,8785,13881,6524,30318,16731,29129,15972,3854,8952,22750,5622,13899,32708,13780,9101,10694,25569,16806,29987,33365,14959,30301,16803,30027,19888,7527,10876,9203,4335,34484,28905,3007,8686,519,26579,16185,18328,34403,15938,9371,33198,27952,17279,12232,25978,28063,4390,3015,15914,28360,10865,3170,29647,27161,20471,27079,16290,9171,4263,21454,6827,21965,31723,5203,30017,3826,19149,22641,10715,25191,5970,26460,17543,30741,9893,16366,1024,30667,11968,32770,18480,2592,19894,26465,22077,23236,12939,15570,14301,29449,31712,7995,10276,69,5512,21561,14835,22452,33979,13403,23228,15019,26678,17067,25286,1134,5084,4164,33945,33856,27306,13920,8461,4038,19898,1275,7328,18376,34074,21359,14219,16395,24687,16888,29179,6091,25097,128,14841,22927,31812,30041,9687,31526,32196,13811,13976,19545,30363,21985,13481,20306,10085,17419,19909,10950,33850,30008,32693,22480,8712,147,7915,17280,34017,20067,27689,10861,16213,24955,10154,17885,13465,5729,14270,22702,34392,23220,2303,3884,20842,33759,5874,26325,23995,26722,18807,15544,9356,9858,15481,18225,902,12938,2738,23311,236,34423,13378,18608,32671,26215,29694,11882,8655,34894,25165,2165,9608,12423,18762,10973,1933,982,15015,25573,27040,28431,1031,30719,17052,7951,28702,8047,8216,26081,4824,19714,19114,24059,10004,19592,14107,1813,22356,33354,4362,19687,14718,6810,22317,18329,30678,29334,949,12389,31087,29181,29856,6394,20972,17799,16656,32027,26572,3848,10102,2573,25139,16044,19428,28215,10233,16542,20396,15013,10012,20876,8085,15227,20014,25174,931,2436,8435,26891,19222,21022,21920,14909,32183,14017,29519,22395,12657,18205,27888,34500,4855,7226,3993,33237,13036,5897,26627,9415,34553,14193,19795,30076,33765,15252,5573,6508,18066,2547,10675,26091,12311,901,1147,18940,327,22849,4414,24614,34465,25773,10026,30410,3926,8011,21345,30571,6798,25016,3263,31356,28280,19819,7416,34326,29043,30630,6940,14625,34807,29839,30917,15334,11891,34340,4251,9422,11744,22126,25723,5016,5433,12387,11512,29206,10357,11127,21781,25622,25633,14513,4624,23307,8617,5824,13334,18403,18759,16692,23659,803,4516,4260,8313,19145,13343,27404,27760,18494,32893,18651,25845,33641,27283,27729,15798,2953,1150,11983,17369,27339,27279,25788,8729,3077,7221,25577,26547,34232,7854,23506,15674,5208,21279,7922,8767,21589,6143,20275,11526,12168,25222,24572,8943,19041,15647,13452,27994,1289,28575,19440,11524,12161,1165,2761,10602,27508,23680,8427,25703,2301,30875,27861,31285,14314,16607,32125,23138,14750,28633,11594,32811,27362,2869,18106,2500,19248,17684,4773,2274,12196,6782,21729,22804,3881,33377,15006,10544,34875,2343,25096,3699,6824,27718,28942,8957,31545,34940,6612,10076,924,16090,34908,153,16568,31559,21789,16437,13802,27869,27631,31222,12018,15460,10343,11959,19133,34350,1563,6171,15606,10541,28199,14336,1412,24524,13717,11391,32837,2599,22843,1707,29329,8571,9174,540,22406,25603,6100,8006,7987,19679,14304,2865,20955,11650,8650,33782,28531,6517,3387,31880,15260,6796,32240,6979,1864,25760,615,17342,19756,28200,16433,29565,15919,14526,26594,15224,21009,31554,28670,8804,23396,22707,31732,11184,18664,25487,6922,25755,33027,13862,24061,2260,19066,19806,5287,30200,28077,67,6466,27985,30383,23514,16619,8678,2282,19012,21182,29986,14574,13875,29737,31924,7027,16564,5833,32894,7583,27044,2209,19910,29077,25124,17897,6783,16412,11081,16298,33721,29446,31293,16458,14065,33263,4482,10314,30662,33257,33636,23172,19563,27813,19255,32973,11845,9843,25842,22481,32174,2775,11592,12949,14876,29645,3156,31243,12599,30940,5352,33655,22658,8261,954,9209,9326,9470,7046,5905,15695,34067,26474,9349,3890,28130,34548,19716,24281,16136,10613,32631,19671,3636,12317,21058,5027,33502,24767,29217,31368,12171,19273,32678,5351,28689,12778,26599,19729,18544,9793,5072,6085,5028,24601,513,22230,19709,14870,21701,7117,29745,15849,10196,556,22400,11589,10605,7145,4897,4048,12818,7065,3623,4295,16265,18758,12280,34651,30788,3771,27250,25407,18952,10257,33093,6290,31498,34695,6427,9148,10002,10913,34268,23264,2281,7827,29966,1784,33046,21838,24567,32041,4828,33138,6486,7593,4580,22934,24209,28348,26823,7916,9640,9328,1123,1003,27710,30237,12931,20624,23772,19823,29004,3768,8310,3402,27775,27127,30210,27693,30420,31112,38,17867,10466,26047,33823,2140,31497,15865,15953,26592,16987,26331,16729,28379,29399,20181,26456,21825,8247,2061,8722,29628,18343,20753,10350,25706,26044,30806,29209,29396,22462,8773,10404,21576,22838,429,9499,18916,14581,8335,8384,32081,293,8969,72,24523,7135,27371,4407,11065,21364,224,27091,28277,10118,15417,27248,3085,11642,28351,28581,25834,18954,14768,28729,4023,8730,34481,28364,19655,14426,28983,28636,33244,20583,5700,30235,17607,13922,14500,3163,11517,11395,24163,29412,10481,13371,11703,700,11514,4857,22622,26143,27444,31670,25216,16453,31835,13129,34120,14342,21870,8982,16723,30147,18200,27504,19926,30543,20376,27792,26203,10623,33390,4721,30635,3955,19164,34014,27676,8243,24936,20456,26386,24430,18894,34144,27795,6398,21785,3323,388,19485,5888,34674,6336,34130,7424,7721,3583,2416,16826,26852,9126,22699,8445,11986,12330,8000,23576,9051,254,5900,29373,2695,23895,881,4695,24392,12071,14251,32156,20763,12832,25038,18505,7387,19452,1236,32061,18719,23215,26602,24921,22304,33333,4102,30261,15675,2215,9063,21029,20831,523,27542,5285,9811,29221,18155,22029,1737,9319,34267,29041,5566,7550,1543,7471,32407,22127,19466,34842,3965,9323,33154,18044,11190,31846,1054,24036,31989,11020,30959,6813,22318,7670,34658,30506,15981,7518,19336,24750,9827,27612,30925,8065,34957,10431,14760,9919,23158,19042,16779,30326,15838,27058,34753,16342,13529,28704,11250,21274,627,12621,23795,21291,27531,11712,23219,21100,30302,19000,11232,33574,4991,247,1221,7285,16459,23681,31553,10590,10261,21357,6343,23883,3914,14732,13889,5032,26980,10740,1377,11560,27011,23192,15010,3144,8054,6851,17133,1498,7872,19624,17648,2858,2450,27572,16514,7875,626,5547,33024,18914,713,24757,21570,31360,23047,408,17412,18876,25361,18821,19070,25085,12609,20304,22347,81,20207,34436,20986,18596,14848,11479,12779,6092,2316,33830,31307,24301,12493,9519,12515,28434,685,31347,8881,27886,33208,5397,34953,4726,25451,21994,26190,8103,2219,23246,33375,33883,13716,16522,15598,31339,19009,31257,21375,14534,27554,13173,32310,7488,641,6136,18042,27656,24533,15724,16305,20293,1038,29402,6478,33764,16087,14196,7653,15400,16848,17261,24302,25308,27480,8907,13608,8190,32050,235,28661,31612,15601,29615,24586,29668,3092,30682,26395,904,2382,269,13015,26795,21693,19571,33337,2444,21316,31878,17320,30045,13223,22811,1792,15097,9779,2342,3450,33494,34179,30730,26780,24720,7465,31867,12794,33484,21010,34606,4043,31604,28818,434,15878,13578,2666,13453,5181,32400,12046,32466,28174,24352,28763,34310,29299,24670,7367,25625,16874,27513,11241,6953,15326,12734,9298,22279,25811,5493,20353,26859,25649,11428,9198,13066,21601,28087,20115,2844,28650,15418,31527,27764,7803,8282,11427,29512,5312,13286,5177,34745,12970,14579,10560,19608,29749,18500,10792,33785,29837,1089,34498,7327,9475,17265,33538,33750,23603,1127,12849,9552,11541,29375,22244,31131,13867,34718,26426,15340,533,21304,14567,2810,32702,455,6650,22520,11621,17600,33843,15796,32203,8947,24355,2099,12081,2350,1500,33474,23108,24881,33862,15462,28394,13604,8855,7962,19209,22503,5867,32164,12369,26236,5055,12594,23027,14366,24776,25262,13941,21448,33728,5263,32170,8465,1825,414,23086,10926,18524,15158,30389,20088,368,17815,17301,28075,453,31060,11238,10178,14023,1082,18337,2931,10193,26731,31921,27848,21394,14437,12732,21527,26271,19506,23224,17680,28955,24625,23678,3550,20331,34371,29762,6197,3180,10391,16466,34071,7824,10485,10469,28516,26088,3601,24170,1203,15467,32082,16970,4190,5408,9656,2405,30903,28862,25814,27633,17605,21611,6395,3494,911,2069,1533,4612,15794,12571,9823,30876,8627,32068,216,8945,14898,34234,17333,33215,352,6611,7931,16025,24394,31167,6942,8319,581,4668,20032,10608,24176,34476,17593,18330,18798,17563,10878,27812,24121,18372,16012,26765,33875,1716,17465,18390,17315,16916,2940,7009,11931,3213,4821,6033,34167,5174,29728,19423,2502,20218,20437,13623,21519,34700,9594,8971,1272,896,6645,2075,4942,32432,33477,34260,5875,32686,32107,3195,12740,11904,6980,12001,7249,31907,25955,30061,24908,19128,26878,28586,30641,17236,7766,24320,16599,3828,20013,25357,32136,15934,8017,30356,27801,136,33322,17438,10149,32465,10530,17730,16980,15814,18150,23256,4718,13101,20123,18333,11980,16538,15864,14267,11775,5768,30939,31085,10316,25890,6142,34681,27073,12437,19661,1994,9450,5600,23284,19523,2119,28332,33812,33982,13524,16113,9613,20971,12655,27546,30930,33656,1279,32302,24970,6191,394,17935,21523,4137,5097,15271,28608,20394,31249,258,34637,24948,33670,35002,257,11632,29721,28127,14474,23970,18965,30266,272,3907,12383,7033,2332,3755,19505,8070,4223,21547,7236,20905,3873,11038,448,21623,15160,12937,31187,20780,30283,18284,6924,3961,12012,25426,26987,26241,24593,7778,20373,12092,4322,19354,21606,25694,34200,33165,16272,23974,21900,27837,4508,755,18528,23117,16718,4439,32696,13480,27707,7103,5854,14062,13770,33578,5020,15684,22914,23633,9489,12717,3377,27209,26438,10286,17185,22991,22911,12300,3951,15712,26310,24327,9032,28752,32588,13954,1604,2103,33360,25954,23321,29726,19681,8476,31948,33430,536,5725,1531,17347,9234,4846,920,5185,25952,19469,15171,5652,29974,3778,9377,28269,5487,11327,11894,23820,6405,28883,7025,10641,2950,10639,11649,15903,15110,7473,19407,8723,4499,24056,11635,6841,32000,7379,11141,28162,34399,10089,9611,6372,16660,10849,18165,16198,11275,9266,29667,17049,20294,6934,19944,9864,28027,25679,30024,16903,18904,5599,19996,23549,30296,17767,8091,16358,21678,29958,1725,8390,25957,28076,10063,15833,20951,17665,19589,24544,4929,23033,34077,33219,10839,9711,13475,13830,10241,28206,6929,27930,25514,11272,24805,1284,6665,19688,25579,19562,17968,10864,12473,4568,12912,34960,19785,21413,4056,16879,8792,31190,16950,11453,18465,1190,3643,10532,6420,171,25267,17553,33457,5332,13198,1743,19799,33626,22864,821,32494,10858,374,6406,7510,21493,15184,20598,8436,16552,21999,13835,25869,9237,6766,18287,26928,26752,24191,34911,24531,29682,16114,9692,5488,22681,2508,3780,3504,23636,987,15560,33722,2541,13469,25687,25575,29680,2847,9636,30085,24541,16041,24768,15507,34611,2223,14721,33870,21019,9716,17635,865,19055,31058,32856,2054,31198,4042,19218,29867,14058,778,4808,747,21702,11324,27272,27164,11071,18863,11553,28534,23951,11741,15055,21590,8123,6286,3187,13600,20168,26051,21614,15663,22892,3283,13227,28057,30669,15973,15187,4771,3789,6613,16667,82,20102,13218,13956,29784,1709,7814,10317,9158,24444,32643,6558,17500,5749,4387,8398,35027,7446,4123,24064,24675,9350,27748,21627,32046,7648,27117,8994,13456,2781,2661,1263,26061,18620,7809,2934,22493,25752,11181,7989,7520,14463,19120,24626,28892,16713,27001,723,7507,22801,33423,34469,2958,3198,32489,9373,14272,34790,917,27280,26487,24510,32063,3358,9010,13670,15318,26242,19905,26900,10721,5613,13955,6242,28227,12005,26693,4261,22323,2671,18743,3152,28377,13696,4777,13532,32571,4089,21968,23876,29059,12247,1893,11542,23579,7771,20594,34781,24226,20884,24476,29722,33511,1781,6452,13896,32291,31353,28963,32300,25152,15175,30785,3802,9026,24880,10558,13500,16013,14286,5506,34279,9569,30419,25466,23963,32507,31030,23897,26284,2379,27465,4916,25794,559,989,3682,14172,5676,31045,5804,29671,30305,952,30696,5977,27426,31458,1967,13139,6696,28432,21769,24851,20009,97,1606,33522,23379,24894,13890,33806,5670,33559,23461,5344,30614,6021,14807,21452,20094,20316,355,30851,24828,4401,18600,25531,4943,18806,33615,3770,34945,22955,2059,22634,2670,22019,31142,4128,33776,25363,10517,6477,22546,8581,22147,16891,19854,12136,25004,14755,3948,30149,20001,34057,21331,5823,8113,6892,18755,28653,23242,13256,2979,2313,20721,9312,18650,3420,3291,1867,15558,16165,30031,31915,13662,33081,23330,26208,30218,30604,21676,22625,4092,2193,23478,22865,10920,10843,18559,20676,12187,27461,9265,5511,12123,28424,23700,28611,13688,29330,17530,5029,11612,15831,30197,13934,25776,808,24386,20704,706,19830,32732,5471,13540,98,21829,11113,14891,9780,2938,6944,23607,4309,30897,31634,13947,16454,22204,11714,27364,10136,12099,24816,28440,27168,11488,31610,12768,7139,21289,12142,20063,14198,14990,524,18813,21241,18702,8506,14123,14845,8230,16935,24927,12112,9493,4408,30407,22772,5964,19500,22419,17355,22785,6781,35040,11680,33251,2287,748,2040,26965,34386,10086,33136,26250,30160,17808,3416,3149,10155,7158,17537,13057,3443,25130,11591,18295,19382,10239,9013,32861,23833,31201,34491,10377,16486,29540,30488,15241,20433,11023,10117,20419,32090,10549,1748,20069,321,15753,6937,28356,17925,17924,7021,32521,29781,24419,33907,14298,10831,26342,12348,14790,22978,3154,20153,26060,20702,16694,7818,9118,131,24111,5272,4138,27905,22282,22638,24623,31906,3657,12854,25542,22355,8965,31908,7142,29029,23120,8283,30655,31245,12977,28771,836,9041,1044,25425,23826,26845,395,29316,33487,1186,15765,15877,24381,13224,26989,1020,18584,17610,34673,10657,26817,4306,31039,8949,878,20541,15505,6760,11875,23083,16036,16791,12815,11540,5186,32622,21460,15081,32398,1594,24575,14884,29799,1187,17627,23105,12716,24045,26095,12913,33503,25780,2051,25805,1930,24050,14324,4286,5060,12587,29743,27864,10018,13364,11729,27057,7795,20880,8546,5159,31899,29238,9543,27941,31959,8328,16742,10615,5463,5603,4177,32636,14935,25076,7187,32377,13077,13581,34853,11109,29090,9212,13487,26721,25680,21842,7209,898,30111,33734,29310,16613,10958,7855,2037,867,23804,22995,10424,20877,30736,23317,12652,500,30229,3927,15655,11914,22313,1608,8959,13627,1971,689,13390,33946,14413,3664,20318,33461,33293,11839,21325,7622,992,6123,7627,24290,9995,13810,22996,22426,7512,31787,31955,13152,25020,11330,17922,22938,14013,18001,13021,18726,22219,19250,29383,12354,16520,18864,23639,150,5130,15813,12000,7812,34072,3259,1509,14674,9867,6520,6428,23293,9994,29228,31564,15497,15035,9320,23399,12506,13354,13074,7286,5705,28590,14332,4485,5219,12965,29332,3754,7447,21346,19200,10961,18307,34285,31065,26376,7030,2352,29778,12333,15496,32113,32123,28262,28945,9466,3179,10214,14095,1296,25590,30725,18452,8202,6308,1514,24122,27614,24521,13194,34304,8396,9598,3744,34425,32088,329,19880,25923,26674,20070,31611,16745,15351,5301,3241,5438,26422,26976,5919,31650,17352,21977,29666,27499,14382,15781,1419,25615,19925,17798,34786,15619,15984,7635,591,19047,25997,26425,27202,23309,4421,7460,33525,33745,4707,30193,6625,32993,3301,14805,27435,28749,18870,12260,18629,15452,16042,31130,18311,26006,20235,24300,1348,27175,18384,26026,5283,21939,19552,12755,3824,33749,10302,10842,32768,12422,30956,25963,10673,22052,22409,26656,6391,33473,14826,16602,19495,4220,28573,8157,4685,16282,27109,29675,22283,13799,8612,4461,15098,22214,4009,20232,22088,11551,2824,18817,23736,12149,7658,9861,21819,5802,29610,29037,7605,12929,1924,33937,9940,22912,13555,9778,5666,14987,25784,30646,5794,19425,11736,5596,6659,9201,13617,28635,28850,18749,28435,15218,12166,16434,23899,27949,3153,18031,10464,18867,24413,2486,33479,19511,33539,7217,3203,26185,26356,4221,30438,4081,5279,6073,28957,1873,1257,32536,22554,16885,21341,10830,8884,6701,17168,14358,11288,5647,19955,17199,6676,13732,9835,27392,28023,28726,34427,20947,32389,7851,4782,277,25411,28208,14359,34182,9577,12198,17021,25170,18086,4817,12864,15937,1072,32660,18787,20974,20836,30574,27258,13014,16996,26920,25137,5716,29156,5610,31146,16899,18705,20385,8917,31185,34939,1521,6559,32891,10625,17103,12850,32605,14451,22042,12030,21299,10050,25448,24643,27179,29533,10626,16939,11388,1012,1583,29612,15988,24906,28556,32864,34369,22097,8575,22435,13047,5481,24986,1504,4696,13368,3218,33879,16866,22935,6554,16264,30214,24101,18981,5069,8004,6004,22861,30038,34852,18297,32762,105,9079,2397,21344,12411,7849,1488,3662,12285,28160,8090,29379,812,1789,17464,19134,12793,5196,23332,31902,9449,33556,30966,4519,6893,32343,31473,4101,29259,2265,28917,8827,80,31115,5193,22586,28246,23295,17586,9220,33364,923,29197,18662,28419,1530,21962,9352,19470,20899,2837,2595,32559,7532,24579,25462,6918,6666,23654,21333,33601,11066,17701,32358,6571,30977,17466,27455,3349,2182,20332,1435,4939,16161,1522,22524,24467,20526,6103,22796,18224,17498,24080,6971,5687,22315,30483,28380,18061,8926,12513,26950,29693,23637,21743,21444,33083,2713,22664,13461,16390,9764,826,5389,9412,13948,3009,33725,17382,33984,10306,30793,22920,29246,12019,27810,4733,19205,34771,13752,24038,31572,1028,27875,19406,29276,20219,610,2645,4431,30814,6894,21315,28936,34739,3178,17314,1898,502,11170,25843,6753,20121,5415,12528,28614,8087,18970,15141,1609,2402,28267,12148,34264,20774,10197,19384,24654,2773,1487,11094,27648,7774,21809,29763,8286,22722,28838,1532,2028,23173,12372,22413,1801,21032,21996,15900,15212,23620,127,16867,14317,34904,9619,19130,15428,18051,18039,3667,2106,26526,1719,32194,28436,27173,13476,34826,9099,1343,32332,10703,8425,25488,1756,20472,7156,21256,27791,6186,20220,32515,34571,1747,12863,28604,12417,162,6137,11458,5726,7981,6890,11664,9831,21216,30463,3697,18208,30226,24606,24509,8591,19614,24375,2065,165,18171,12790,34494,19262,4961,30306,31036,31471,14547,16464,11321,24553,34966,3491,16974,24382,29537,7035,23411,14199,18866,23832,7366,20593,26589,8783,23510,8935,17706,32501,21368,23573,9423,1611,22718,27265,19198,2956,16747,14617,17601,20779,24263,12494,27474,34087,4348,30629,5150,24646,30157,17070,29365,22373,29870,6135,4173,2641,11757,19847,19242,27971,5978,29541,29525,24496,32222,21371,13684,6350,19481,19507,4511,31163,19874,4714,4635,28853,24957,25966,7177,1153,9750,4944,11215,18417,670,20545,34036,34946,15384,1776,630,32212,21635,31439,21987,17531,9273,10325,23370,10941,10700,1344,15819,17765,29919,8912,5107,6010,24096,8444,6055,33561,837,3462,23948,27765,23115,8765,1554,15774,306,10492,2503,22574,30513,17641,37,13019,34274,1194,15508,11408,30464,21770,18195,27135,14086,31960,27171,13017,8498,20960,28311,10450,22066,16503,33434,13580,7903,18142,15463,3747,1378,22979,1647,33791,7312,33425,8573,6945,9147,24578,5013,27222,1890,13372,1058,12961,29509,20017,8856,32417,32238,14686,26452,16702,23048,8930,18842,24046,27944,30279,24167,18294,4858,1537,6018,33055,21257,22933,22297,8511,9417,7343,33211,18740,29964,26065,21767,1220,26453,7304,20252,13005,4814,14049,9918,5630,3790,1329,11554,13525,7883,26670,11581,14551,1853,5657,1148,26336,18354,33404,31682,26167,4393,20801,5689,361,1407,16069,8229,24323,34085,15113,13517,6404,15657,9612,18648,2731,5947,24058,33336,820,29844,32261,9086,4626,7105,4758,18159,3932,25293,6314,23719,19284,5337,23894,12084,28445,16893,29134,18100,3097,1052,2257,31457,4192,26127,19206,24962,26649,6622,33974,29345,26399,22676,33781,20249,9361,31016,19723,28151,2757,11298,20427,3075,22628,23365,31684,25005,11290,34389,8550,33386,729,32401,29826,26946,4673,12013,18414,22308,26796,316,21876,10473,4647,11820,14153,23223,8673,18029,20754,11244,23714,9937,14235,12451,9113,34798,15837,3534,25967,5359,9230,8574,31053,8687,19923,32418,21475,34761,19846,20290,22206,6316,12469,10270,14253,32372,22680,5817,33282,30539,19834,10375,20648,25493,2594,31148,11334,26090,31340,6216,782,5504,764,23507,5011,21151,32998,424,8428,32551,7463,23533,33238,16798,5655,3032,23286,17431,13203,14492,568,13241,10956,12507,30388,7859,33799,29189,25201,22964,4753,11908,11085,26664,6576,34583,10297,22962,18491,13620,33134,3316,23304,29049,32919,30899,141,2751,117,20160,21233,1841,15501,25138,17002,3874,2748,21420,14384,11192,19744,14695,19672,34509,188,3594,12325,5099,21211,24938,25194,24446,24611,30477,11793,15882,25865,28202,20345,7891,22572,20280,20788,12470,31009,9766,12675,15956,766,32984,34196,4541,14161,11963,24188,29633,22615,31321,34449,8562,10574,29142,8568,17285,33635,20928,27782,12624,21214,3403,13952,17888,27314,24673,30653,21178,15255,23773,21255,31844,2469,33102,31715,21698,18775,34210,21675,9444,2217,4984,9206,2233,4641,30130,5759,3944,23978,795,8939,1507,7370,12481,13401,29942,31050,6280,27747,33905,12820,18095,9409,31462,25576,14740,6699,24838,33418,15498,7303,21571,13229,20741,13098,30035,24558,31860,6615,30423,25043,21663,10914,11246,23241,28888,26813,31465,28669,3176,2438,15163,7373,16706,33275,3366,13630,1158,933,34081,16447,19883,1610,18925,13792,10204,1249,13096,18989,9650,9008,21679,20146,2515,3045,13128,18282,11979,5795,22379,9009,34599,6232,26024,32509,12299,12062,18301,29443,16630,23648,5930,28249,22646,32065,12619,9036,10620,3489,7720,4400,23516,656,23737,16068,11879,25611,28483,20443,32431,10054,10129,13031,16650,31020,17349,19839,27131,10409,18895,28021,6014,26570,23803,26021,25002,23916,7684,6101,26156,20781,7964,24026,34194,452,20549,3010,7545,23432,10116,2481,15546,21446,24519,30314,23502,32476,14643,21313,4860,10188,26073,14535,34910,27441,32289,17881,26945,29624,12549,24452,1990,26659,30632,4250,33041,26549,23182,4523,27457,33153,9429,29677,21254,24348,3117,23435,6672,27110,6245,34670,22044,32281,28506,23781,2853,5695,4553,6154,26419,7889,11219,29388,30818,7087,11721,31916,23874,11385,17695,16652,32393,21918,14159,18412,11062,6148,11801,5826,10571,29472,23992,2258,21807,20363,19129,23031,21438,8170,15820,10724,16895,14764,6774,26194,29325,13808,31021,19413,27838,11546,8972,12282,21336,7727,32774,33908,25025,4880,33170,21989,19492,34398,26019,17042,11630,21593,31717,87,6218,2124,2409,22969,11673,17990,6771,12550,26993,30373,5228,30820,33797,25689,976,20166,2465,32255,10460,11380,15802,15768,29223,2870,6643,19643,27963,30522,18579,25366,17597,17298,5595,34333,20742,18676,24399,27832,30258,6909,34248,2760,18289,31940,28716,2090,2719,19865,30886,24272,21455,17470,25075,18902,3173,31197,32335,4861,12954,20683,1336,32221,32887,3368,6146,25193,10637,13845,4706,34024,31503,28748,14538,34037,12715,16217,18342,30724,21468,20021,11676,20527,15122,7927,10699,17637,9713,18723,1581,10689,5683,20028,12244,32710,24372,13,11828,18545,5868,20504,4750,12184,13805,27639,3169,30380,11814,6797,15569,548,4670,29894,3543,8823,23298,32286,18502,17484,13616,30517,5609,7112,14227,23266,19931,20405,26872,8579,15588,22005,7086,13295,7266,26737,7470,6787,23481,23131,25804,23880,31012,29555,10540,11187,3660,34915,10697,28964,30185,122,32064,7340,1881,2462,30442,26036,17784,1981,20281,8798,6948,33957,472,7245,33125,26575,34740,23862,13293,23821,10186,4602,16002,13165,17014,33710,8112,34457,21763,6069,2557,25164,21771,2077,6208,25662,27973,83,2913,17258,19797,5922,10901,27580,27491,8455,9863,16733,20640,30079,23555,26786,11155,5156,33151,7227,12155,11390,1441,11249,25045,16276,9337,21495,1777,1472,24727,8533,2809,12596,4616,15918,23072,20127,14306,17557,28656,26335,33662,31221,3304,14446,10771,13204,4950,27146,26433,31797,29405,780,11072,22128,7998,25303,22840,26638,22473,13102,11082,1968,20324,2440,14897,34416,2098,4447,19997,33736,24151,26624,11752,23682,7830,27506,8556,15365,2570,7757,14576,24619,31263,929,19417,5946,468,9021,1854,15154,12152,16417,26862,14071,16315,20303,29298,6050,7537,435,14279,11718,8503,4831,8102,4363,22405,26070,17468,19554,34986,736,8675,21251,8735,34988,27291,27728,23589,15203,28626,3877,15895,26230,16500,20157,17358,15836,14243,13214,8594,12817,30485,23560,1969,33588,24937,13093,27500,3936,17144,15537,23177,28024,5256,23841,4415,2058,34546,30935,31139,28472,32355,5445,454,4472,11441,11040,9638,22691,20862,27522,24522,23898,23927,34223,34011,30913,8294,32983,27219,2715,15434,4776,13267,24052,27714,29177,17672,22243,33220,13656,27382,12900,3942,33008,13123,30637,17679,4557,990,32442,24395,33195,28178,11467,16854,279,27933,13202,24410,2636,10474,4688,13178,20898,15671,4210,16717,17773,21042,24954,24597,10931,33548,14603,8901,8844,17585,5271,35036,1036,33018,18915,17992,30636,12646,28631,24261,33168,31745,11055,31108,17594,22337,21399,34073,21003,2533,26844,12226,15567,11457,15128,23875,25716,20227,12718,6164,15282,9895,25239,9214,1229,28722,32602,20761,8641,4446,4383,26204,21705,17686,24256,12837,31153,25066,1130,26046,22899,28473,12955,25681,8267,2637,26921,20413,8992,12499,20727,34556,16540,20410,21792,1208,6718,2100,17130,12730,18713,20870,16659,13167,33045,14118,27484,34475,23260,18388,15970,26999,7287,7434,2089,30034,8715,6449,21040,3067,6547,29586,26777,5176,14770,24071,8392,11732,32104,2877,16821,22016,29117,2527,27830,13995,18630,14677,13551,24511,27865,18831,240,31645,7631,5812,19625,33440,2925,21395,7618,5116,22679,4807,18520,1391,6495,7168,15863,30681,7002,3091,27555,9490,3481,19721,33030,34490,19184,21418,21952,6282,29193,6002,27626,25655,8566,3271,26650,10465,14779,32303,22383,2799,17623,25548,21931,30647,26754,7534,26234,31538,9802,7623,4068,31982,2179,997,25102,27331,27833,34258,20977,10434,13078,16580,21061,25995,5594,3889,27074,103,3850,33184,22879,9745,9221,32881,23612,18550,2171,27989,18593,27581,6226,16647,7482,17634,5178,26347,15566,11367,15387,13689,16262,17238,1577,14922,30459,32035,32368,10834,33668,31639,20370,23488,34331,29063,22902,30577,18324,3508,27289,8857,20687,17401,7611,15168,26109,33284,4587,15319,2911,7348,26672,28528,1834,9851,33703,7137,10542,27984,17175,6169,18974,18149,11782,32709,13640,15374,22544,27619,1963,32469,25089,33500,13706,32040,29215,26454,7712,34286,21717,16802,3637,11093,19121,32184,3928,30243,4411,34929,31632,10758,11165,24317,138,20730,15210,20256,24017,26240,5916,20030,24200,8751,23550,4391,32405,32982,4585,439,11552,35029,25274,28391,8886,19454,18686,7546,21210,29021,31452,17517,6120,9271,29854,33304,11476,12312,25093,33062,10775,16456,16101,12574,32574,18834,12876,19827,23418,2471,25149,34518,14303,9560,9797,30845,11489,30638,26466,4197,12002,31872,17351,3919,883,21848,17381,4915,12947,28822,10138,22668,7283,16905,20237,11923,31110,26136,19680,32849,22053,27301,8019,29442,27666,18487,28456,15466,6795,21272,25125,16128,23324,31426,28496,26056,18788,24512,23982,19132,4638,16839,24299,24695,23585,21440,12117,19280,5516,24130,25356,22594,1699,16316,8219,8274,8665,27860,18979,27357,29420,11200,13346,33931,34159,3542,30093,31592,17638,25473,30554,31477,34711,30967,12356,31686,29445,7752,11486,32060,30980,32239,12402,13919,24975,4802,34012,33376,995,16638,19225,22366,23245,34884,31217,29006,22344,34148,15220,4722,9805,32997,12576,12201,5750,5987,16209,20798,10655,32395,30199,2499,18002,1688,22156,26206,20150,4061,9227,13753,27469,33882,31896,14662,21121,3723,16968,12424,28688,14093,8268,17488,23848,21742,958,24025,22187,19529,29823,9830,1830,196,27321,19525,3875,26956,4928,10003,28086,33617,1883,23558,7484,16655,19652,18531,30103,18602,13504,5602,24676,1946,9414,6905,21745,23871,28442,28323,31759,33316,30926,7501,2812,11442,30587,15622,29369,26514,1589,22692,29938,28273,17961,7850,22477,17735,32270,29359,14788,13206,5386,33775,28111,1840,8671,34408,11407,1173,4912,34613,28489,31327,31942,9962,34069,13329,11701,4708,30055,33139,11977,9853,26223,8100,27143,1039,34601,31768,22278,22242,5093,14710,27370,27281,26778,12160,14400,15633,23702,26516,7831,18381,31252,10308,5835,16167,271,1613,1453,11530,26199,25732,5195,27409,372,22085,5200,20299,28522,22224,29411,11414,17331,8032,19353,7477,1905,6835,8148,15589,12994,11433,4864,4271,24854,5365,28826,27842,9741,20852,26478,27320,32330,2216,30974,21845,22974,12992,14037,31995,771,1164,2164,13472,34437,31574,12400,1420,25163,24920,21563,8458,29307,15455,27391,28336,34879,34495,7621,7769,23631,11490,28948,24105,18447,19441,29686,16300,22345,29741,18752,34580,18474,22839,3765,215,19228,5095,15447,7733,16232,24388,1714,2472,8745,16604,7461,24178,20445,8998,17346,12944,32863,9678,190,28463,22633,11685,19374,6125,34413,19161,27834,23434,12362,20500,22062,18221,26744,10284,26318,29468,27544,34650,21130,8879,12845,30158,8921,7017,15058,18080,24149,9887,28801,31973,15044,1783,21787,22687,13813,3336,26557,20581,9522,15328,18977,12713,23710,31879,26828,21175,32583,7489,16689,16251,15993,7466,4224,21437,28764,3253,7801,16059,12670,12644,13772,29229,10953,16472,27059,2992,24733,22307,11728,20035,16387,9905,32720,27744,13308,18975,7020,29328,3721,29211,12121,15045,18635,28810,625,7538,17919,19803,33530,3408,15703,27101,14627,29074,3084,15868,29363,24516,19549,8611,19005,11201,21986,8421,23824,2148,16073,17020,23698,19841,2556,10603,10977,12448,31377,26554,26636,4462,35033,29705,1119,8197,16967,28487,17967,7980,3729,6196,17631,6685,34851,19929,25141,22626,30081,20499,24255,8782,26608,23032,26103,10869,26758,22929,22351,12777,27781,20626,366,5308,16853,1837,14032,7500,34291,4438,5769,18848,30514,18145,449,32869,15192,7871,10523,33396,5757,18976,28250,21478,12067,32022,34093,4934,25600,25341,19334,4910,13697,11800,23202,33860,7049,3627,19519,2055,9735,13562,10365,6708,14447,28290,5464,31106,6862,27200,22177,14348,10987,14034,12840,25921,29168,5198,9065,14453,27305,33074,1454,21153,8663,8140,27043,22872,23511,12516,16477,19226,14697,14676,17339,14355,23442,20690,32005,28718,12157,18845,23722,855,13407,30775,22514,27773,25279,24142,23018,8108,8769,28596,33768,34923,15517,19343,475,32456,12276,17814,32210,33279,17646,11129,9546,4734,29450,1868,2331,8677,6107,30003,12530,27939,25561,34595,20964,17242,11177,18617,15072,15489,227,23909,12998,19403,6006,31977,343,13307,19202,11456,10006,21817,24551,21654,18270,31635,18794,13544,26658,3509,24456,34097,25167,10680,32202,28520,2513,31237,7907,14436,21586,19451,31668,24918,3374,30262,19460,4528,20134,18313,6674,12455,14752,29301,17170,8467,19127,20887,6752,16336,31056,32006,32745,15412,3999,29233,15519,8684,31408,22894,24735,12445,31010,19957,2725,2081,15089,5303,34380,25258,33567,1282,356,21605,5761,28915,17785,10225,22168,8382,11128,1101,31389,33927,5240,24264,10274,26337,23190,20259,17674,13040,33421,8406,24417,23766,30342,21106,16335,26837,17710,25725,22091,28837,21262,28767,23204,21853,6869,20467,3612,21565,4104,28800,23957,32160,11339,31333,30799,22232,465,7804,385,32850,27420,29128,20325,11484,4012,27646,32923,31698,2993,24534,18089,20464,14595,31512,34961,8234,23445,3825,3964,23327,23926,33743,24565,30663,15068,11097,3226,5776,18554,35024,13718,10414,26747,23486,12582,11713,30153,32271,15433,18523,32912,15390,15551,13683,5315,4751,10682,10037,13675,26784,23518,8497,852,16827,15773,2982,33493,25598,22769,14827,14287,4285,4082,18669,15571,30187,32630,10435,16343,13908,6740,29797,12266,30759,26063,8731,17675,26035,9791,21802,22877,17670,21195,891,20330,30174,33542,4996,26330,3215,12729,30720,29536,11188,22799,22079,4108,8315,17690,30188,7660,13328,26354,34997,14598,10566,31409,24125,14365,27268,21167,16933,10099,9022,6966,9388,22504,15842,6093,22241,13400,34164,28966,27477,16086,21858,19144,26227,7279,4264,32888,24146,23670,28226,21890,16590,33133,20596,26077,24966,26702,9977,8474,22223,22137,5845,6251,26181,12674,4837,1623,19003,7450,11567,5872,24977,5880,8160,4819,15603,9476,5482,30313,19424,21537,26326,31156,17188,13909,4083,33005,28644,6939,32399,25500,32801,28499,34108,24552,3121,8528,6525,29105,23797,14047,6686,26774,469,7299,6989,18637,19715,33912,27954,33120,22674,11799,14738,16225,8537,25468,2551,7562,23042,23759,5752,811,25619,23443,1087,18750,13959,27820,6268,34717,18997,3112,753,34342,28191,24464,29786,24903,14656,26600,33800,1644,21489,31654,19069,30687,20597,614,7430,26523,13933,31445,23482,8779,4765,21024,2101,1110,9510,19620,15401,1686,12598,20216,13650,16813,25284,24680,30551,19472,34054,34955,4539,4025,10644,13115,7382,1363,34984,6640,30748,25375,8880,4133,19877,4098,21602,19849,5400,34579,702,34493,5563,31362,9317,33339,16000,8323,27048,785,21337,3818,22547,12616,6485,13534,22068,3957,14440,32575,31349,4607,30702,1808,20893,17980,28660,1133,20979,32214,20099,13349,14717,26567,9276,17781,33356,2764,23918,24306,17912,5912,29710,20942,23520,33086,22222,24427,25567,29044,29070,30533,12111,7688,687,27745,16160,32363,23872,23308,20991,33526,28813,17858,17141,1494,14734,22585,32224,15711,31855,20129,30094,11013,2783,6084,12114,13564,19603,15645,9464,13263,31658,5036,28475,14014,31072,22653,15518,6417,15862,10716,32953,10359,32672,32314,3711,20422,8833,1679,27776,31287,10529,1895,25878,5377,21619,20092,20430,15682,5720,9303,12971,23792,5354,18712,34880,10128,7322,23491,31824,29267,1715,9759,12531,20705,6429,18479,31051,32086,14009,23329,33290,13809,30484,13569,15034,7197,17283,34149,28805,28418,8088,27138,19591,9595,9517,31295,28437,26416,21834,2476,3011,31507,14247,29418,15659,32910,9093,21320,1599,27160,32385,26704,8075,7143,10142,33112,3751,18783,27100,19879,10457,11696,33158,33169,26963,2842,34843,32493,4592,34062,15043,29817,24754,9503,7179,22120,28747,25930,1138,34441,22926,17209,23747,16623,10917,11622,1305,33442,31410,23745,5996,9706,4218,13826,30867,12858,304,32037,16805,442,31622,7696,13099,23587,20987,2307,10712,23707,31862,15144,1861,8201,17029,593,33987,23994,15480,30327,11531,31015,270,10447,6294,6744,10497,28918,11596,21263,17310,22889,4543,23522,29123,28113,6840,5614,7864,31618,28175,28544,34094,20086,17337,621,18186,13502,7651,22201,23416,9484,2371,20769,32553,33209,1927,14939,10252,15846,26367,20048,20726,9159,13597,16512,7376,27527,15294,5961,29885,521,25512,3515,8871,13596,18222,13424,15382,5441,18369,34776,5090,11087,2963,12388,22389,32691,15086,26630,30480,34315,21865,29901,14352,21055,33003,20423,11021,29127,24899,5453,27881,33416,26012,31845,34443,5814,8213,11111,27590,31537,27641,34435,30755,24378,7392,1657,17745,27340,18594,31791,4020,34220,2026,32413,14804,34016,23517,23361,8624,29275,711,1286,29434,15912,11434,11361,16595,20937,34028,24136,3214,34543,17536,7676,5025,12017,27682,1180,13722,26052,25659,642,7331,22883,26289,18851,26397,33028,6045,2111,12665,25255,33036,1168,20206,2544,9644,18774,9701,30970,30319,8593,32858,1559,33610,18469,8338,10903,25395,7317,19662,30278,20550,17698,11851,13709,23189,15811,16377,4399,26637,29768,24898,5155,14021,13083,34508,7096,6095,12308,17025,15687,19340,7650,27694,13454,27288,13360,32568,9928,10007,23393,19610,9430,14965,31040,33181,18406,30744,29087,12906,22637,34702,16314,31472,2872,33227,3531,20585,33651,23857,32761,18349,2419,17109,23476,29162,17687,22348,17353,31371,5336,18304,25737,31764,31945,2984,4249,14485,12686,22906,23497,25781,29448,17324,32337,10217,25882,15364,25316,28731,19016,5696,14454,14455,3014,19770,12413,14596,34419,9717,6816,20667,24148,783,31358,4239,7472,6207,2991,16137,23037,8233,11928,48,18432,9846,13278,10407,20274,23294,9143,29708,33645,5669,31226,20817,8859,20936,26220,22844,29513,14548,21980,16098,17915,20109,22656,9576,19074,9452,20857,15843,2755,9989,22166,15977,25055,25702,22761,13618,6083,234,10139,8362,12075,11454,9769,17019,964,10632,15941,3211,30800,628,32603,2697,7549,23238,21253,13300,19606,4450,33287,26080,5852,6507,5778,4547,30359,130,23677,32681,7580,16294,32492,21177,5939,1189,13330,26596,23053,29251,5153,12553,7351,34095,8987,14936,18204,31683,13470,32794,27298,32305,1671,20976,5241,5349,21738,24047,21434,22854,19043,17374,5533,1341,15111,27783,2549,31440,32346,28305,2492,22082,18990,21670,16643,30225,590,13111,498,24770,4227,9589,25187,26010,14615,16338,13531,25646,33307,21814,7216,32793,14961,12643,4378,15358,24217,33332,11448,27921,24179,34662,32269,15861,18467,33959,20350,30526,994,12584,663,11356,31278,16144,1510,11562,10850,28518,5117,1303,24402,13901,30802,5871,11954,10742,13259,27992,32474,18927,8960,34810,19019,11876,17095,32688,31576,6920,23597,27178,34300,6200,8661,28965,28953,19307,935,1986,10181,32698,5554,25212,12165,34593,20147,11745,1393,25538,23977,9688,13016,4276,19039,20011,34320,21,31171,12921,8734,24820,6108,11942,4346,5976,4628,23171,3632,11880,29818,27356,7202,15950,7535,21863,16099,11382,19802,25949,31900,11572,16202,939,19622,2348,5792,13399,31346,14541,33483,30495,33760,11733,33528,7189,21961,22766,6190,6326,16214,22639,393,25557,7575,23608,1829,33197,26365,20222,33874,32272,7929,32344,10454,20775,30874,17829,727,30530,8287,12945,16019,16176,14622,14262,2221,22578,34950,27229,31225,12669,4037,22423,27918,20765,17432,22212,19477,15614,22093,33335,5864,34937,27136,15821,30634,1163,29577,10887,27070,33918,34752,32872,2896,15573,4477,22784,27770,19106,27463,13018,26319,357,20074,26713,21392,18827,29868,34750,10521,8391,27132,21610,8460,725,19948,4845,13694,11437,24803,18266,1627,3415,13107,30733,20224,17958,16266,27257,19075,21585,30170,25596,5914,21135,20055,3525,16771,26897,20046,20582,25261,24505,32783,23544,6410,21094,2384,14863,14775,11166,19150,18741,29776,4666,3549,14084,28852,25545,19067,33126,23051,12143,19503,22532,19580,5589,15529,24208,28398,11001,15216,34282,30817,9458,23577,32755,8045,11606,25581,21604,23570,15380,15461,23618,5163,16801,12037,1534,34235,25791,18293,10091,29954,7845,19727,25144,12241,32325,1823,5502,15450,12377,23501,10105,32879,2016,15120,30320,18641,12502,5281,13483,24420,5141,34433,14189,4409,20804,15890,26344,9775,27351,1447,19109,27116,34209,25439,11665,23226,13255,5991,3289,4679,27064,7599,15911,2902,2591,13323,30469,3355,23380,7597,26295,20770,30697,31059,25951,3468,10328,18493,34247,201,27165,5809,15193,34076,27617,7719,13132,11600,12579,2728,15007,25183,17309,30372,137,7540,20103,20317,27687,22375,10916,8962,21073,11455,17201,2830,9311,18892,32262,3225,31019,10935,7956,7556,23456,3373,29975,1324,24224,2501,26801,7329,522,33087,1414,2721,30091,26651,7055,30146,20586,5109,617,23625,8027,2867,18701,5059,27062,14635,17124,24822,19717,29068,7011,14670,19960,5604,30052,25698,6188,4719,22218,34564,24895,14722,28993,27252,8775,21528,27309,10975,28362,32180,5679,18,31681,5262,3545,30381,3231,28593,31763,17871,4784,20752,10201,12630,20789,32470,17673,22541,12033,32967,6351,26726,34678,21433,8273,2918,21740,7524,31852,18306,20773,886,27241,23216,12529,3773,21928,29086,21271,7902,33452,19169,35017,32564,4154,19573,8693,27025,25007,14043,23281,29202,32788,21569,24340,34633,21713,13769,5711,10177,32597,16997,14963,34742,31687,30562,33469,11936,22484,9671,4029,30918,16383,2881,3764,16958,16319,30932,2660,17529,26445,259,30786,34303,29988,15618,5948,4874,18385,11883,28216,24627,28430,9378,32729,20292,15287,25652,15574,5641,17360,17192,34528,3607,7957,13651,26524,12667,33597,17274,7294,13509,6138,23882,30341,13522,33002,28213,3232,15346,15409,22993,3266,29508,26285,22866,22760,8071,8923,18489,3911,33614,4949,28136,18125,11724,20344,9037,23746,26506,3883,20093,28138,2841,2255,18229,2553,26281,5173,20611,11585,19990,6080,15785,34663,32508,29458,12190,2138,24724,8799,19789,32898,92,21330,16782,24033,6431,1793,547,16259,19597,17161,12251,16687,17812,4730,7652,8873,28139,30953,10659,12167,32080,18690,7326,28949,1331,27507,2451,14744,1300,25537,1224,4237,10417,7246,8701,32813,31478,26323,14834,26982,31215,15881,31311,19999,24322,14633,23990,27015,24004,15074,30505,31640,28842,23121,28062,29496,3115,14469,12197,18874,26685,34440,21386,11678,16850,25134,25442,19848,14554,33097,4540,13702,20377,3619,6702,32820,2621,11533,20082,15239,13699,14691,12654,7572,30230,22720,2222,27049,17219,19851,792,29008,33696,24083,955,33798,13317,27589,8125,32301,15243,12397,27699,17075,1178,12426,28110,9145,7214,16707,13138,28050,27844,34208,32198,1389,13195,19831,27227,1527,29364,21997,10141,9263,15732,34294,4323,2678,24065,21441,3024,13628,28511,19036,14486,2578,10526,24922,16557,8350,14873,23499,33283,21750,33839,22519,33694,14293,18573,1188,15014,6379,6247,18913,2572,23427,2526,12950,30250,3518,30365,24203,16858,6595,23140,17058,1102,16200,13287,20313,27919,14410,9462,22339,24067,16429,29244,31809,12875,426,28738,22478,22078,10754,25824,29264,2759,14832,27310,28576,7399,21824,15839,12267,17617,481,6187,21498,12275,24242,33130,16321,26221,3709,20378,24585,2118,22001,22466,18611,19028,16712,26361,4976,7171,4875,24652,31432,28486,20589,21013,21355,15651,2667,21415,2431,25977,15321,19183,24508,11906,19448,34912,22704,16918,22509,22949,23422,5467,34791,14170,31550,27901,25173,28619,1106,27125,17386,17595,24087,8536,15165,28967,928,15354,31494,9189,26309,2937,12910,9305,26715,27026,6156,19842,13572,28978,18856,23547,5455,33394,30066,29098,12314,32534,1675,5383,6926,6442,9399,27244,31848,17416,19534,27741,222,20054,2555,13109,13988,24879,1617,1629,28956,32592,9330,3858,22363,25360,33156,28930,5588,13695,4742,2125,14728,21374,26620,19265,33242,31642,4402,11077,30616,17499,26296,14560,1135,22092,1285,17792,20262,27902,4185,2610,16365,18319,31391,14050,3989,1244,6793,30159,7923,2905,6518,14983,14076,29622,13576,33699,31748,26910,12972,10884,6925,23962,13546,32917,9961,840,4214,14085,8222,33499,6806,23557,23388,3922,7502,21539,32890,3086,32752,31277,6978,2175,7753,33773,32930,3923,25886,21176,29881,23590,23509,16487,34203,13910,7013,11482,24878,23473,14296,15593,16868,12622,10681,3963,13082,32033,13646,10510,20822,28919,26850,27181,27686,7785,7038,23532,12431,13804,1375,30,21072,17406,947,14972,9698,4330,31718,27299,27176,16245,22697,29326,5267,4653,18799,12532,19520,21731,29960,16724,16932,17297,16777,10845,34240,14307,13788,5782,26312,30747,24807,14591,4497,33553,6689,11365,2335,24000,1424,5139,7723,33348,15395,7713,12009,26016,27538,29460,31169,13739,2512,13963,12378,16756,10352,5138,11443,15809,19436,23734,15339,493,34705,22322,18004,4376,30479,7958,16369,11858,3429,20438,1582,33637,13928,3842,2376,19858,24709,20302,28038,28296,22370,15234,10695,3734,11315,23111,16988,1197,27804,27215,32322,11864,28736,15121,18905,17977,20155,30504,8119,23274,13491,7997,15989,12352,13283,29393,27582,4692,12133,29198,3256,31708,23011,13797,26682,13588,28017,14929,17069,18239,22729,4921,5718,18763,10137,10940,4236,16744,9071,26160,30745,11840,23904,9890,32995,5140,9438,24112,3272,25517,27521,5626,28622,29435,10506,2849,22542,7044,17491,8337,17119,21005,6414,19140,10074,6704,26691,22118,14457,13980,30595,8412,21797,4093,25037,1847,22960,20718,14497,31270,15913,22813,12639,1876,25143,4310,1041,30835,1349,28340,13870,32785,28553,24283,22221,32606,34396,32753,33182,34630,24615,22104,13612,31084,13659,24871,13406,28798,7405,3182,11921,111,34347,28780,29176,3604,7973,33108,16949,5806,11811,4090,16547,12611,10938,30685,25326,17494,16123,25453,4024,9505,23504,15607,12874,18129,15891,32845,18103,28541,3576,28034,21442,6844,26392,7560,17222,1947,15020,30028,14641,12370,28219,944,22834,18212,25155,4572,17821,12534,8831,26483,16633,4969,23489,4091,24367,12031,23451,8366,25540,57,116,5684,30493,2370,19110,28307,15696,20016,554,20525,30182,6482,10336,11301,14249,9387,6447,34831,29073,23066,31893,12902,23315,8990,21919,17028,2470,26718,33222,26586,34442,3406,25034,10210,23828,186,24246,26518,10318,16386,32645,26954,34289,14937,8970,10033,29309,4573,31132,14918,622,3451,28399,15690,23695,19966,7680,31024,32706,7738,19467,34942,30461,9770,8035,28461,29636,12109,30734,28508,21050,21169,5232,11639,2441,13196,6213,8069,27287,3853,5457,29676,5436,9380,3581,9950,8124,27557,4743,12908,30292,10786,27855,24010,27660,13440,25707,14233,24755,32685,18924,19007,17282,21376,3471,31231,12500,22686,6047,12978,12492,15823,25903,16926,33616,10429,4191,24223,23713,21652,14511,6189,732,13361,6815,27067,5530,24031,22820,1068,32497,29858,6250,25413,3378,1415,22199,11028,16440,28195,32991,9179,4055,29582,1794,26472,27573,16937,34542,27568,7372,505,4297,2095,32480,17805,198,19708,9433,32308,3079,15399,9211,33186,28320,15694,18309,11337,22989,34977,18560,11857,28617,9954,7761,33977,23935,10229,17976,10282,23155,23176,34278,32499,26059,20503,10124,9283,31008,5465,32795,28549,30756,23265,17078,30406,11080,15761,19463,6724,15475,30791,26947,23655,801,26072,22121,2936,23614,7136,19064,10552,29982,152,1021,5078,10585,10733,13918,25511,24592,16482,12751,9806,6577,6026,26045,31348,5714,23552,11675,26131,20567,19634,31182,9936,17562,14765,1339,29005,4103,4500,12096,33058,23780,27701,11646,24414,16421,17442,13511,20189,27,5892,23813,25228,5295,7749,33910,5370,5184,22556,19082,1251,11168,8431,793,34646,16093,16559,33162,18298,33294,32916,3157,17979,5805,32548,8442,13787,24620,17113,27999,21868,26153,21949,32937,26334,27929,7490,8317,5168,30023,5302,4842,19162,10418,2011,29493,27145,18156,34963,33214,14397,30701,31265,6458,24860,28809,15578,28877,24345,15710,291,12090,20728,32673,10753,19893,815,29136,13798,8284,33031,21588,10871,7790,34128,17666,3356,22973,26590,22012,4280,1484,20867,23868,5218,1480,28577,34311,11005,17890,1233,18971,19691,2623,15341,17475,280,3739,20906,17857,23462,18473,32815,10508,34216,2298,19350,13966,14374,9549,7823,19813,7615,23375,33148,27221,21984,638,21185,25379,5129,29121,35003,3722,3606,31351,21859,17233,17590,30808,26961,12474,32381,19375,11083,4681,158,32371,33428,26505,3105,31143,7207,34430,4492,26135,13667,2611,8249,7991,15308,17241,11759,13784,6249,13108,19553,34936,10048,12025,34375,3282,13000,6900,3128,11009,22690,19747,31300,2034,8748,27487,23118,34659,22100,7610,1932,22471,1763,19781,33822,33686,23237,6036,5345,16378,25162,11993,30154,28414,7584,23563,29744,5775,33268,16914,30894,23123,17212,10793,27953,19306,23539,18812,33691,6982,8238,19638,17985,29530,26304,19869,29093,3795,27381,23770,1614,34288,21430,29897,12484,8086,21149,30127,33381,1806,6956,7381,24024,14967,5521,33035,15845,23900,19314,26522,507,24507,33063,677,11765,14341,20607,5350,22922,4369,7853,29692,23915,11350,34506,31833,23320,4856,31558,2249,24225,2792,23258,16195,2185,2328,5061,20858,16830,29751,3742,28297,4759,9244,22190,12601,7844,2910,13970,24228,29191,10763,15397,13375,14108,26418,27983,1668,24289,101,5907,22024,15413,9879,22482,11254,10067,3882,1712,2072,20992,28779,29944,308,25896,7483,18058,2362,967,29819,25461,11287,20750,28724,19613,13665,22311,22081,19731,25441,4632,18793,33353,22548,5045,26858,30116,7034,31725,20930,24666,22449,10576,32964,2208,2943,8652,4960,18525,6076,19217,15669,18695,4781,22985,4496,15188,8290,6930,1060,646,25539,11614,6621,1943,30346,29812,23495,19540,23347,12836,23280,5572,4014,17661,4240,23272,27625,29704,1584,32669,34103,9347,20319,1326,7563,25389,10993,14636,11929,32775,10168,13276,8452,16654,34541,5784,7404,25297,1260,23471,32408,23196,15067,10408,7829,34088,25236,15353,14007,21640,31342,16252,20874,2392,9850,18849,1099,13157,7595,7237,7393,22898,14012,7175,8470,10904,25717,12566,16746,4457,238,4636,17118,9951,25306,8868,5043,12953,9792,30073,16056,7700,31100,13412,1984,26635,30220,34855,2356,18446,19024,3813,1999,3338,18771,33207,17111,31359,5282,4278,3119,28794,31159,26040,28173,11935,19602,25019,2389,27376,32396,14221,33897,12125,3720,28293,31124,22977,8128,11351,26353,6722,5710,1744,11248,24360,19011,8130,30164,25331,29809,34367,25103,26811,21759,10944,31716,15435,19577,29840,24515,29629,28613,14364,23947,30860,8877,18590,16257,22233,25380,20855,10848,15311,18643,8203,15172,26603,13535,22860,13778,26178,25870,27285,25580,12015,27243,30177,18792,20570,2710,30344,3054,618,27990,4437,8787,3191,15715,11878,3730,22511,6627,15915,29766,12604,1250,31033,18604,4389,20505,31071,14344,8830,16637,4453,4522,16750,11790,30892,6726,27537,32225,20177,3183,5075,21708,19629,30880,33718,5713,34092,30269,2421,31304,6037,23464,6897,9668,9841,851,20460,14949,12797,34675,23343,17316,14585,9336,1931,2550,3455,22555,32585,11825,30467,5425,17305,32513,23376,20447,21955,86,16223,6729,16227,18099,26769,23604,9633,2422,28378,25623,21243,7113,2808,12014,31887,14424,4840,10923,33737,8858,20897,2897,25772,17254,15441,27526,7933,9591,23825,8797,24021,4826,10402,232,12460,9824,33401,13038,33704,18397,31971,25583,20398,35010,33323,11494,25039,6713,6132,16094,2542,11780,2825,20650,16808,22130,12984,31894,7200,10156,6339,34930,19940,8848,9272,1104,31238,32420,26260,30067,15535,6817,2234,7101,3046,8590,32026,31374,30286,16709,4622,28253,24923,4315,19073,2180,25566,28985,4141,4895,22069,15533,34734,12420,32987,10047,6533,13658,23164,23243,31216,11504,5954,6371,30812,19023,5971,33942,12026,18300,13543,31758,14077,31556,21142,8424,16352,26067,24761,34000,15742,26821,20886,32100,25859,6,4273,7765,8837,25491,34025,13971,4848,3686,32905,34504,32145,26640,24844,29171,34145,19979,17363,7234,13837,18274,5201,24861,13175,19586,28104,30648,1077,17117,29553,28074,29064,7530,4052,3329,4063,10790,16818,7758,1140,19804,5816,12661,32095,20538,28247,26435,17317,28388,337,28790,11176,17520,31750,21622,14649,14321,32498,10663,4176,8802,804,1516,33343,32172,8291,399,5286,19449,13609,11313,26553,16863,4667,19647,24602,18926,10515,21914,15280,16614,6160,10616,33640,23035,27628,7079,18237,27793,4041,15632,1340,19654,33096,18056,33653,3638,31597,2635,20759,6975,18757,14814,19371,21631,903,22336,25246,8599,10677,12047,8944,15542,24153,22046,27162,33406,1278,27157,26804,18589,23798,4488,10676,14224,24804,33205,10778,4099,4687,28787,2692,21828,1741,17006,19252,2414,1477,12457,18919,20803,28295,7129,26964,24796,814,29532,21147,14406,25999,3139,12680,19093,9825,2296,1398,1513,28033,32697,596,25835,24484,15189,9878,32058,18881,10321,15347,1649,1126,24935,24811,15880,2741,32558,23282,18290,6166,31447,19357,31590,12754,26488,13280,16621,17330,21317,23135,6852,17642,34897,1000,15357,17522,28133,33319,22169,14818,28540,27152,13748,19229,6594,28824,28233,30336,8195,4701,28276,1350,9541,32044,27532,13984,8911,20362,28951,11418,7941,36,16124,26740,8240,6657,26830,4510,19980,15611,24124,3390,9737,24161,16499,27386,29657,30173,34967,22210,29951,7508,4964,1416,16462,14204,4989,31672,4469,20521,28448,21714,14438,1129,9907,7553,32627,23941,32292,27126,23346,28739,31794,19387,26863,4351,781,24590,20882,16095,22802,47,18535,15138,19497,27777,14174,11515,5592,2003,1901,31511,32750,24463,18371,26565,34808,267,26679,15648,17519,7292,23500,31089,28781,19722,5522,13191,25094,10437,29108,12048,14069,17474,15730,7944,26605,5722,32083,9280,33930,29765,22550,14933,18003,5119,29475,18923,16824,33866,17878,15757,3690,23235,15208,22470,27528,17876,640,12195,22711,21194,1371,20513,8997,2673,27894,9136,19612,31303,13951,18717,32099,7686,31863,7274,32039,11667,33744,19867,20613,2548,28677,1295,31594,28498,15330,29441,21236,18760,34629,4284,6081,25934,15748,1934,34883,3375,17022,8375,21643,17712,26147,29351,11015,19168,6550,23837,32524,6451,11873,9285,20023,2907,33590,13348,7239,30431,30470,27851,23754,15005,29573,20872,3915,22249,11895,23534,4337,33894,351,19840,30950,2020,16410,7421,31701,33604,8763,15923,27163,17055,23335,30163,5661,28465,7784,31721,31061,3141,27827,33644,3372,23466,8042,32705,31869,9372,11002,19832,15604,31652,4395,19793,15793,23067,23385,4034,30882,8115,27194,1567,405,6034,1019,22954,7866,3025,26775,23601,29085,22269,29588,25145,5293,13028,26053,7718,20943,20356,27959,13208,29257,27739,21244,24020,1859,4549,27564,10226,3166,33729,27724,26169,21760,1735,28230,14423,21875,31464,12786,12373,34049,7243,9572,25063,3078,635,18015,17018,16406,29800,28568,14867,16270,19286,17036,8487,22324,19319,3558,14169,33204,16597,12761,21864,21311,2151,27038,4671,5944,5989,22188,16011,17579,29523,4451,17560,1650,7480,11619,26332,8231,13545,16191,20446,29341,14924,23283,8931,31402,33363,9479,7270,16569,25114,17914,17452,9602,18631,29956,24145,25292,26699,5057,25807,3385,22671,8154,31753,981,16670,3405,24478,13824,9264,21574,11186,8760,21765,8131,30651,17299,31841,32461,20738,14675,29019,10084,631,17550,8548,30222,23052,6473,2386,9571,17437,34589,34749,29394,29353,27815,23450,28742,11937,13185,22740,12883,10250,30234,29318,26905,7833,16527,34075,17379,28051,29767,34259,19356,12826,21303,450,12252,32600,7594,7704,6035,13023,14128,13394,30898,9192,6949,33973,4343,15920,5432,26172,6725,13903,27817,34709,6310,11952,22715,8318,17421,17916,17711,738,16558,7734,8043,23250,12454,29631,16890,17728,1779,7985,13187,28363,21471,4884,32139,34488,33454,2245,17950,20409,11118,13012,25330,5009,3388,3899,13621,21247,4380,33159,29943,27207,4575,29266,27731,6159,32144,32218,2235,25325,4358,11644,2435,12690,17323,1092,22371,11372,1703,13337,17513,6972,11130,31649,14448,18917,12194,21378,644,1347,20935,21535,19277,27275,2780,19653,32059,2758,25321,1426,1923,24827,21308,7878,14956,29401,4968,23621,8699,27075,12038,5049,31722,21046,9894,6306,31810,5617,19527,29643,23077,19355,17528,2732,4064,25446,15966,12307,8866,32217,14078,21922,19705,32760,1151,24647,24416,13054,12932,1431,14178,5379,16468,33450,5772,2325,29163,21393,22841,7088,8096,10051,17606,4866,27849,22280,2008,34962,1511,29587,33857,12658,8540,17824,5102,4909,29803,12773,19380,2875,25278,18746,15901,4112,21837,22778,29831,155,15776,5748,29165,32245,31784,23738,20307,23658,16181,20808,11158,4768,5520,28185,4441,17148,25477,22004,29313,12350,3613,22526,30622,5636,28488,21518,26246,22565,16132,29120,31152,15590,16231,12259,18226,21974,29931,13433,10896,33235,27892,370,3629,14180,28580,32976,26403,25993,13779,11474,31747,15750,20983,2190,14687,6275,7506,21669,29531,16178,20616,13359,18062,17461,22054,15897,19807,27742,26698,758,6878,33280,26069,20050,5646,1198,26261,17467,10548,7148,6902,22837,17755,34666,20002,30175,1962,14715,28359,22588,9862,2133,33752,29886,29594,19501,18097,22115,6828,29813,15135,16289,27359,10648,7552,31230,4094,8727,28266,12593,11815,27056,3205,3748,31240,27559,32204,27967,22099,674,7921,8605,25744,2158,16728,18407,20890,8003,15108,4778,9530,16653,20871,14877,16109,21044,31953,7051,31074,15436,25593,23496,2880,32766,34544,8305,19786,16281,1849,7690,22056,33350,24998,11773,29653,14482,32459,25008,13893,29709,26351,30384,19651,8020,29440,17852,15889,2195,30765,28470,20392,26820,7938,22240,13415,11269,4657,13352,18744,18519,5615,29773,17446,34035,9534,14725,496,30588,10120,15810,3258,5514,32031,33581,3885,30203,10096,29899,4432,18768,11059,5026,11778,16356,16831,3333,16719,16349,9969,13796,4834,29846,21884,26005,13478,21422,30394,26960,17072,12918,4502,13790,29855,7582,30056,11808,3704,9889,21163,12901,14177,22988,24596,2239,9088,33497,18136,5444,33871,809,33077,29910,5405,27284,10412,16872,6561,4106,24580,1950,25900,25217,27363,5732,17410,7063,14947,5568,32416,10711,16396,34616,21755,15600,28144,27706,8976,7519,1621,2191,9953,839,25269,5372,2662,29746,27853,7884,19147,16055,12132,33342,23222,30125,18008,28416,23187,10488,25006,25871,10553,31646,11294,4483,16372,4835,1026,27578,30911,19052,33677,17086,17171,25229,27927,23593,3371,7359,16517,22367,2365,17400,26171,17292,320,22494,3081,16110,33726,3302,8199,9133,8514,27492,2231,16293,21143,34501,8373,34187,5374,33300,9859,3068,15656,10597,34263,11058,693,31398,24309,32851,7990,30737,15077,10658,18383,29355,5323,33529,3177,8179,20843,11812,17050,33890,22387,12496,28352,359,31434,34242,11449,10337,21734,20948,34592,34261,6786,16757,13133,4428,10998,1294,30131,23076,11291,16344,30316,29604,26159,33623,21295,20287,1107,34537,30179,33465,3675,12808,29518,23942,11496,18539,25071,6762,9456,22170,18601,5490,15139,27071,28385,8743,16206,4504,1464,5404,26587,7528,28657,34785,651,91,30124,29900,2172,27977,8834,21840,25301,30680,16054,3865,7768,8429,2167,10123,25609,24875,28118,12105,5766,5002,243,25927,34096,32885,9015,24621,3571,14256,26709,10512,22971,10496,16574,27997,15749,21662,27675,20655,12199,12699,18162,31126,163,19344,23409,28085,14331,21716,31552,12811,31929,33056,33953,26485,23732,7913,9124,8709,10238,26797,13482,11658,19568,13548,14773,10305,3669,29504,11379,20133,19951,33924,24274,32718,26111,30136,30245,21934,24128,16976,7165,22858,24696,8919,34013,16583,34492,13043,21764,31129,32438,25079,9628,11498,13554,24196,29076,3250,9447,11462,21292,17453,1922,30907,5064,19131,17457,26545,14843,33631,13625,33598,17366,8721,29024,25789,6140,24023,28681,1069,10946,22733,17286,7090,33896,25481,33383,10636,19782,11092,1746,19163,26324,25324,25121,13342,5394,24532,29965,2248,23536,11817,21707,10228,17370,12618,5951,30007,28990,6527,28092,22871,26531,870,22701,12332,31692,32447,27525,24321,7877,31988,12406,21321,32012,17927,8850,22570,4967,16616,18128,6572,11305,14340,18640,17861,6655,7000,5878,17722,25854,27730,2677,14328,27877,772,9178,31122,18628,23924,15115,24497,2445,23426,29477,10573,8081,33155,17823,29432,27353,32121,5819,26833,18232,11722,25058,27106,7828,24723,25230,21227,21170,23842,25745,20940,25065,15986,15102,25420,29344,14901,15594,13514,7994,29923,10976,9624,16323,18638,12711,7394,33508,27518,12215,11431,30070,11992,29094,19363,15453,33135,20517,29499,27746,12659,1433,30919,10767,18499,31479,12543,22124,24236,1109,25846,19535,7979,20261,8327,775,9245,25663,6453,1696,4689,576,6832,21964,7661,26885,31476,12063,28698,24401,11322,24304,12228,7943,6526,21831,7576,1202,12238,5558,12765,8306,16139,33515,14372,34063,15270,13044,8236,34262,33971,3332,13181,9191,16154,5318,24993,14639,11107,5213,18440,29017,19245,33770,3513,4118,13601,19232,25022,741,20210,34854,25113,27063,28421,8942,23184,29952,13437,18920,25905,19364,19389,24824,2338,32052,6052,7988,34198,21634,2983,20662,29116,16015,33969,25291,32143,4026,3868,5483,19035,7039,411,18476,2052,28952,937,25029,7275,15137,6390,11867,16525,22924,10333,13672,6118,10232,26865,17898,1800,32268,749,14893,1112,19385,32782,14147,27232,31064,5643,27931,381,30532,2971,23580,27450,2522,23097,4182,31363,5738,31589,11320,7970,6618,8597,5694,2021,1456,20358,19600,4745,28992,1732,27674,27891,22982,13731,26218,5528,22647,18399,29192,25733,34168,21028,30137,2423,21283,22742,10912,17147,33965,8824,9765,3887,14896,13370,29075,17224,17489,13822,314,26969,33929,7669,14046,29135,15080,22238,11042,16549,29473,13747,3522,10598,24683,30754,1162,6012,13932,14981,9167,30849,9655,22884,11239,29281,29597,18796,62,11304,10159,3409,1639,20672,4561,21269,7045,22599,1217,18353,8207,11911,19670,28943,6113,21584,11011,6987,17862,3083,14323,28109,8710,10539,33816,34265,27910,22629,28066,23708,5565,4981,20072,19713,2916,858,32216,1155,1919,31001,14271,8554,24425,4501,8105,10483,21157,9059,16489,5197,28849,33338,3982,16428,16698,23101,28013,33004,30482,4645,12347,30240,10340,18785,3622,17599,11777,3171,10965,15494,12022,5860,4998,20238,19733,14059,32318,29102,25529,5342,15238,13521,15183,10579,32833,11573,24859,11207,24029,31619,3947,11255,12340,10312,8510,23598,8615,23741,14849,17278,813,18811,17883,34373,3049,4095,21591,16127,29099,5915,33719,33443,30409,13614,10686,10222,21348,11169,12401,12802,9404,13121,25140,6317,23669,15506,6324,8252,28080,6385,27201,1030,18536,31751,29218,18152,30376,5825,25765,33978,23262,16526,5236,32256,26119,27900,27673,1761,5843,10039,12882,4514,20778,22402,11810,14135,13615,16989,4054,15228,15625,22186,14516,25669,32593,28567,31275,11497,26973,24693,20564,34228,11988,20005,25227,13921,16397,34767,30692,23649,27172,14460,19221,9181,24089,19796,9289,16681,34407,13967,9952,29635,30525,27913,834,12538,26783,1814,15442,30246,22063,19345,20359,18897,4956,10462,8028,119,27818,31858,29035,24702,32834,7265,26007,13363,3348,10726,22669,27399,13345,5497,20425,1730,14167,29027,27523,24279,18908,34920,409,31094,20675,3580,1558,27449,29544,8838,29521,12771,5832,2351,17932,26352,13987,16071,15803,23665,13855,2873,17963,20,3671,25319,25770,14208,19515,302,30345,20242,29030,24407,31744,9012,29936,28535,9020,5462,11568,5341,17035,29912,5559,10554,15126,20665,34972,15668,861,31502,14506,25543,28187,12743,15105,1379,6057,12580,8754,27978,13193,10243,18335,28863,5492,17137,15180,24554,10534,28183,22023,5229,23835,29807,16563,6400,14476,8791,752,33256,32738,34115,22490,15205,22441,5698,31679,26132,21948,33441,35009,22648,21205,20015,15101,32313,9300,14109,16927,28122,33906,1335,26346,24737,33217,19512,20502,22109,11785,26717,14074,4551,17321,6569,6679,26503,28386,34632,26359,4599,3931,5331,5771,2528,14726,13938,4027,4999,9922,8420,32500,27975,30424,34653,31990,3903,1538,9978,7080,17259,19631,27430,32276,12664,14984,21476,30999,26886,10224,32038,3188,1788,26512,17340,3167,5717,34755,26788,14653,10629,12122,30979,12041,26763,24812,23490,16598,12463,1598,26668,21286,18346,16083,19341,28016,14793,17458,20012,3823,14467,29842,14777,14685,797,478,33,32824,24799,10046,15070,4558,2263,30378,7364,5452,5538,18503,13915,13539,20696,1034,23023,15693,8781,23519,11932,28981,17619,3334,3605,1612,26665,16205,26896,21739,34559,14212,21553,29376,22197,34156,7497,1982,25756,26867,1836,18265,18048,29928,807,33250,29381,5701,2972,2947,21973,10093,397,16760,23863,23993,8867,25430,29155,13180,27324,25077,30916,2279,3937,30478,12284,22516,9660,23205,18903,29805,26653,14746,20336,31975,11108,31776,5842,1720,17868,32925,18599,20631,16150,18201,15716,29314,15678,12523,8629,3656,31429,3777,25808,22942,9561,19863,18180,23790,5211,1171,10459,31606,22803,21154,6008,10570,20179,5092,24913,33605,18401,30360,10860,8983,14051,33679,18144,6931,16835,25840,22112,24143,11310,1075,17471,26876,9531,8588,18706,21852,28114,2970,6661,10611,5486,2302,6484,20329,1676,14327,21427,26121,11578,6857,29154,26302,9809,29866,20524,26062,11033,32010,3057,9279,4550,13937,23244,25956,14166,4724,6066,6441,3618,3297,22055,12467,27122,1689,32946,7094,4805,11818,10160,11566,5454,18247,22708,34738,8110,730,6046,17584,4282,30287,13091,24756,30077,16414,13380,16626,16938,34560,29998,27368,22306,29510,25498,14973,33378,28674,30272,32992,7126,29991,28831,23856,15559,15799,23762,21556,823,18654,28447,25692,4059,31433,25741,13168,20904,24870,31463,11133,31555,6367,23878,34747,15355,7793,22873,10386,777,12533,15331,8118,30369,24460,497,32692,28068,33958,2012,12671,23776,19855,31119,1796,34252,23953,4686,24054,30623,23720,18508,5188,671,25108,6177,22987,34477,21544,15454,29526,34510,6153,3872,11191,11069,24328,26079,10399,24834,2086,32798,1076,1149,22584,13757,20213,24459,16856,18661,29488,988,34236,20142,4556,25712,1619,15509,16532,12004,31540,1635,4862,21617,20120,29650,31608,6099,5968,21436,7252,15736,31578,32412,32832,24783,14970,12614,32008,33788,32004,34535,8363,1084,5580,27445,17714,22316,8928,2518,21014,550,16400,31350,23358,4368,679,11838,16716,3327,12798,2651,14980,5663,23492,20277,31662,18492,10235,12151,8061,23102,14431,11854,34545,13832,26092,23905,33149,19677,10127,6393,174,24363,28366,17009,8666,26629,1411,27540,7682,15088,7453,27543,32821,16427,6301,3930,33012,10902,15307,9881,5935,26719,26793,16260,24546,2986,23616,5077,16067,13583,6875,10363,17880,2829,417,22728,13149,15487,34110,17296,17903,20756,1907,6703,4536,5544,13723,20322,21112,29173,24489,19097,13595,9836,17622,18893,9238,6961,30795,25405,4879,5317,26941,9904,20479,16560,22292,11061,33368,23368,9175,9056,1602,27654,34446,16248,32132,34848,31889,28867,32003,34533,18238,26890,22447,19139,32124,15725,12433,7894,29126,23537,29060,20457,30270,24538,33092,13768,30570,9092,21189,17427,8520,5022,33685,30887,2154,33141,22507,16973,16695,3673,31323,24992,4900,10870,28446,23142,25376,9997,31336,34444,799,34827,18682,2267,3162,2976,9173,20823,13199,3460,23646,8788,11280,30291,18122,21305,30466,17973,25132,7787,33606,19697,10748,2102,25939,33675,18558,34078,5167,31208,9820,33964,7554,12505,31352,22162,23996,3820,5299,21805,20228,8411,22600,15946,12415,26766,22328,17694,18857,17705,5259,16688,22611,31378,7993,15265,34254,11157,22268,30548,3740,32151,30957,10756,2816,9169,26232,21666,8080,18379,30652,22764,31062,2524,15812,16945,11559,1230,33001,34206,7193,20913,24294,20041,9064,17125,18978,26818,6464,14133,21966,30968,33137,30984,20391,7106,7232,28232,14890,21555,22195,7074,34982,9821,27735,16470,915,28452,20145,23906,5510,30128,20914,24877,5587,30969,34841,2930,2166,9149,16751,12366,21913,34916,16407,29040,1858,8737,28228,26985,27068,28623,34625,14694,3639,5517,4820,35031,32979,12077,32922,4232,21469,8166,3713,11138,12634,11132,16003,23369,22893,25953,12934,14607,34779,8903,12822,34766,26560,15951,30370,17046,29627,29214,5677,34391,845,15369,29791,22620,2593,27438,2381,23571,1111,2006,6131,5879,12603,24945,18532,32969,32737,33649,9945,11909,16720,3430,18466,26992,29286,29331,24746,12948,25690,17840,33142,9254,974,23867,943,8757,6031,12256,17372,25883,20171,28830,19989,15758,22695,10070,7551,2241,29011,31180,30271,3423,4569,24408,25555,1358,29031,18361,14823,16450,25203,8299,32034,12608,25508,23268,11282,11794,12156,28268,28006,11899,24690,6024,5942,5290,6327,20498,26198,13996,31688,23408,16696,1243,19542,9000,5541,29292,33255,11210,14914,6102,18839,13060,29871,22145,11051,10009,18956,25032,5469,2473,2900,30963,15531,8021,8618,29833,12741,5187,11792,1738,27649,26555,12968,32855,20140,11292,10354,19203,4654,30866,24368,1731,30732,31314,9188,25118,29579,32336,25710,22597,1307,27909,2417,24028,10440,12384,33972,607,7817,15362,31319,17318,3466,27717,20839,7467,24545,16347,178,19927,5420,32884,20381,19487,10750,14954,33115,24825,27149,4789,4786,7825,5498,25392,31489,26546,9284,7398,9707,16513,12540,10277,30236,27031,3400,12434,17005,2852,17038,3020,19665,28935,6347,11593,31499,17764,27407,17975,8800,8025,25550,32105,167,30541,19526,5955,27486,27535,31857,18697,12555,4039,6270,14950,33216,34688,11371,28184,32644,7120,5378,15662,21950,1615,17371,30405,28803,33884,24207,9537,12759,6016,1386,1706,27981,7125,1760,6808,17497,18230,4340,27375,31101,18534,1446,20254,27341,20403,18548,2868,24358,14137,18064,331,9618,33854,20202,27955,4760,4096,32510,34080,23306,11112,25911,4917,17013,16140,489,15201,14472,17676,419,23591,77,31827,24943,34992,16461,18045,28654,34933,6295,32029,5990,3803,21139,4803,17865,13761,11679,3458,212,22022,21788,10468,4430,15458,24492,34685,22748,27481,2131,31696,9728,1966,9242,3473,5190,19,13473,10267,16608,32069,28746,29516,18938,9210,11837,3670,28396,28361,25697,9116,28070,15261,24909,17208,14872,15166,14795,34612,5050,2062,29673,21111,1661,12343,8849,28699,33967,23259,15754,22245,32233,15176,16898,17268,12518,953,20565,26548,18824,29065,7008,31789,7308,33666,1978,28539,1338,30810,10651,17892,29884,31934,24005,19136,8133,31661,5275,15445,33881,11597,18634,24100,33034,2212,23615,15721,25551,18779,17616,17256,29078,10779,34082,30190,27089,20283,7792,29047,4000,21830,4293,4583,21661,19189,3528,6104,31150,15536,10999,11672,3274,16097,25074,5399,30194,10863,26270,22138,26329,17777,19509,367,15832,35011,2922,27411,11809,22501,27650,18935,3284,6304,32808,8244,21953,27452,273,13793,23463,3750,31099,10294,1682,27556,27541,27519,8915,16579,32915,15290,14931,20444,6678,26122,22365,13913,26660,32410,10788,34364,9903,31214,16172,32781,1387,24068,19560,20617,10749,5094,13226,34896,19551,15276,20328,23079,1287,19271,20036,22888,5509,6584,32529,1114,22806,31724,19071,13436,24717,3895,2068,5932,18071,33591,24362,25950,25471,8843,25505,21416,25812,28235,9512,9132,24365,30080,6403,30718,11139,24267,32374,3040,33547,23802,34420,1388,1586,26648,30295,33571,28258,29859,3791,29404,5519,34614,27709,65,8909,6573,8596,17187,18091,13298,34368,27922,13457,14597,26906,8082,25570,14648,5007,22083,24040,34007,2236,29879,9096,32626,31116,5988,33357,9567,29481,32415,1094,542,28889,7212,14889,17809,2714,22703,8825,12537,3994,29872,12839,2703,27692,1384,33777,2782,2353,31730,17459,2944,9260,11463,29639,15708,9333,21531,23195,21207,15146,20881,26495,13740,26634,8068,25220,20847,13838,2314,13382,9196,11698,18922,17275,18707,31926,18387,19499,9729,29732,3389,30768,9180,21520,22900,24140,28598,8296,4930,4018,2814,24461,6742,13982,11402,2520,4140,32886,27297,5849,3838,26382,28701,13429,19181,24469,32448,7625,10821,17422,29736,11460,11053,912,21583,2726,6968,20205,9081,19037,3199,7897,24234,1018,19095,29738,12293,21294,13435,6882,2426,24341,17842,31947,30556,34142,24547,16550,6778,31492,8560,3229,21522,24030,1798,34721,29609,31951,19626,23270,8341,21334,7289,33072,3295,24233,23778,11898,30050,3792,33707,23699,2434,9787,968,23290,31519,17480,20248,10175,13434,1548,5658,34040,15763,30728,14878,16582,11199,32684,33040,28886,786,27841,29780,13985,32608,2425,13733,14354,20118,24817,6222,4584,27446,14927,27423,21384,7947,28714,29921,20818,31501,13302,2496,19006,5148,6071,7802,751,23174,7663,33893,25082,31296,29574,30195,27134,32789,1374,14801,26162,27613,24262,9740,33233,31224,418,11162,16740,29319,12756,6706,6963,20059,16388,6734,2681,10562,25639,29118,5104,31581,29423,25691,8808,19360,5781,8031,64,13611,34655,336,906,10899,1660,6681,31318,26033,19644,8985,1551,14996,6325,2729,24436,13858,4951,360,25107,8206,28954,24390,3856,16483,19054,24692,9875,1820,8211,27088,13671,19301,29479,8486,531,11295,29752,684,26360,2756,26083,20320,27335,23647,10671,7019,10890,15476,29932,28107,16180,23931,6623,6838,6585,26933,5744,6652,20535,13886,24144,28132,11994,22006,13305,30249,10838,27128,1880,3608,12341,189,15372,31288,16734,8681,16182,20354,4646,19792,3264,261,10332,20273,34154,7188,33344,20835,33712,29679,28817,30324,24357,23673,16384,12487,29484,26253,15664,20959,22605,26958,13649,817,27009,14379,34770,21114,3634,20710,5886,15198,29999,19122,34998,23457,1865,33551,2156,948,10612,6825,9039,5508,6260,24833,16676,9069,29143,28244,2567,4338,13874,1887,8235,34405,18400,6634,29922,31032,28509,14263,3342,33260,21898,9480,14757,9358,1911,10441,27069,14799,29287,12386,2110,9721,27866,1573,1440,34582,10981,30863,1818,18059,14028,146,26,3102,6743,27236,20663,22173,16085,12958,34497,25885,1566,22418,34871,21276,20474,5343,416,8370,26583,31815,17455,10315,27636,5983,33545,29595,3582,1956,32378,9983,8168,6513,2418,31029,32137,13587,3022,17769,6467,18780,34381,21849,26684,19518,34704,9547,17708,11769,20159,21879,23089,26582,6727,22589,30294,4727,28745,11938,22225,5412,9696,1192,17012,1751,30735,25470,9426,12859,29269,11358,29196,14515,30716,11587,16843,12677,30064,5004,29015,17026,18259,28043,14392,11720,23146,2188,177,17239,32243,24043,32819,8847,26642,18291,9389,34730,7881,14121,29,4841,7192,12888,13698,14586,12783,25294,11795,11231,16345,32940,15929,23439,17344,31317,10654,11131,12749,32957,3298,22061,28067,5838,16754,3453,11153,3797,30425,24885,7634,1466,5943,8672,28303,22540,34575,22818,18032,30560,27517,4355,14294,23922,4046,29724,22446,13603,21508,6521,139,14273,5223,26086,21991,649,1691,18574,1637,25050,28711,16442,27034,34800,25891,9408,3552,12237,4650,16401,13712,338,34708,22521,8221,27390,20854,22319,23559,5325,16498,5635,7820,12320,29617,20310,21196,5903,22835,23447,33131,24048,10369,12089,19153,9533,14907,33419,16488,34417,27111,2618,5413,26374,25724,26128,3851,32015,12264,3404,32072,20824,2734,5277,31636,33167,3061,13110,15264,31979,26714,16953,8703,13131,29828,2478,25304,7807,13162,22923,1369,30054,5550,14720,13631,1736,32739,27878,10755,1234,10230,3492,34079,24874,23150,7361,3661,12305,8304,26165,5743,33098,6927,18209,2532,5309,33620,29184,18497,1073,15952,29182,22759,784,30395,10400,29547,4151,3090,25052,33033,34641,18456,8974,962,13105,15983,19559,17839,16639,24019,17048,2085,13009,31448,23690,5799,3439,25244,27695,18994,3341,28308,8529,31261,22277,11364,24987,8577,32777,15719,2694,33762,24562,11086,13887,3223,12436,15885,28638,20772,20633,4320,8955,6340,555,6460,13705,19124,21709,23967,22425,17707,13602,14112,13690,28609,1400,21925,21335,25272,27323,9223,17625,24466,16664,29415,27624,30441,28705,2361,6158,6487,31919,2220,22859,34623,23860,29895,26705,23566,13926,33026,25970,10426,22684,8512,31205,28261,21690,4629,8986,18463,26882,25948,5152,88,15965,13760,13126,11737,21833,7456,29500,20420,15620,5170,11078,34188,7969,34002,140,17160,19077,19809,14079,16982,18457,2711,31937,18742,71,10341,30769,12572,4147,7374,11695,13648,14045,23634,13247,13888,11616,21270,31655,5250,24771,29151,7876,20465,6298,31985,34137,14917,14333,27957,9800,33009,32502,1894,13032,25073,7695,11285,16955,20442,27502,29204,1413,11471,23850,10692,10083,4560,24790,14203,6110,21056,34287,29556,17044,27696,22552,15200,11016,27893,9262,23952,15219,13503,12319,3896,24286,6631,13008,33916,30392,17087,10875,13398,15737,14536,541,31669,24473,25314,19187,34387,9629,6896,19543,22139,14411,24946,25452,21092,17923,905,15285,2448,3620,31017,13563,11669,14033,17577,4370,25433,27565,10278,1996,17933,24455,3502,16732,18627,34418,6397,31435,8477,12504,32959,30612,1211,25998,25128,22564,4611,6680,22857,7601,33303,34448,14060,15371,18365,20366,8642,34792,30104,11527,12222,4291,33991,3538,1169,25298,15024,16994,28168,8336,34112,5619,29199,32518,27668,12088,14741,12139,15624,17440,12860,28758,32563,2860,3227,24577,17411,31424,25036,34837,14647,6913,6884,14462,12642,8104,18591,11868,16877,17796,16780,16910,34190,32990,298,3487,14988,12546,34351,15336,29335,18814,4045,8821,29748,29788,2334,18392,33956,9166,33414,35005,30885,55,21197,30628,1560,22569,16511,1213,13759,33817,29125,31775,20161,14571,10618,11925,28083,32523,14846,31583,3050,15444,29771,25100,27560,12762,19569,31813,27570,26703,15683,10387,16432,32664,21365,9630,3807,2680,20802,33022,26486,9645,30938,28594,15231,1425,12070,27431,3776,17688,19845,6269,30751,4825,30101,15962,30042,20966,720,24685,32908,26214,1951,28031,4970,20681,2157,11739,26978,18283,26843,16962,31996,22736,19292,25530,2807,3938,27655,5450,11702,5921,30086,27336,3293,26093,25056,34656,19102,17502,6472,33417,34217,25438,9024,1399,15036,3806,8752,4179,31927,29271,11863,21581,3659,24537,4918,23474,8551,10774,22614,3039,9990,32805,31011,8059,13076,21749,26955,34863,29567,31235,12981,14425,7284,30285,26184,13148,21369,13445,20230,30603,9102,12182,6457,13025,10019,17709,30186,29291,22591,34598,14165,11446,24612,21201,19935,9649,9832,17853,4764,1989,11438,18036,34045,33453,9477,20686,29336,4871,19922,56,23691,6203,31181,6768,25630,31912,15866,25398,18745,26269,27338,24904,12519,12253,32234,29621,13253,33189,12974,28373,9900,17846,1857,19315,25404,23553,33246,21724,6445,8311,27292,21379,13570,8897,22836,17178,27598,15196,34860,34281,18614,28856,21421,23234,30284,509,13644,12060,33413,26313,5001,23214,2114,26720,31247,19678,1298,29696,11025,31765,11507,6229,2280,11645,828,9066,12781,19548,30029,11749,10856,8430,25617,34594,13092,18170,25419,11342,9281,22919,21298,25440,25444,11126,21002,26057,2489,19170,23091,7223,30267,20089,24107,5417,6025,17747,19031,10259,6603,16371,4735,23751,34735,31557,9844,31086,27721,23291,20938,3276,27330,28708,3647,1866,28170,17045,11197,20699,27862,4783,2980,31286,10985,27432,16690,32629,10044,4452,17057,34244,17040,8809,17430,899,11346,25597,14518,27974,21722,19442,18131,34849,20481,24636,9500,26749,5518,10557,29122,33506,20660,7263,13303,31394,1547,29774,28602,7119,936,7585,21496,3267,14539,27609,30317,9794,32719,24574,1704,5840,19685,17424,6192,19915,27503,33272,1553,16222,32382,3796,34569,26164,25928,8578,22869,18585,31651,30782,19261,28321,19233,3737,21779,27180,3065,2540,27584,33132,8466,11430,17669,1926,25868,29569,30349,14680,21349,25888,9131,1047,17105,27282,28157,11770,30361,20981,3798,8352,4413,24150,18419,23394,15686,31694,31834,7476,3888,13153,33212,25826,21943,20265,2766,17054,6995,3646,14209,24202,11892,11450,5837,14600,8271,18198,10396,16900,18183,29252,740,7386,6581,8386,18730,4809,7449,27936,26841,31177,7912,4905,18486,538,4183,3035,18081,23425,9933,11762,18364,20651,22842,1955,28163,10536,9667,34561,1995,8440,32484,27065,9420,34346,29392,31773,25147,23954,34450,1758,21224,17652,34720,10242,9193,12263,4674,34573,30208,5980,28673,18006,34969,20348,1474,23999,22896,12693,28059,3693,15660,5945,10897,30263,2391,7464,15886,7531,10461,34039,681,26439,27093,34850,14430,2092,29730,17778,22910,20387,13528,5829,4885,6695,24912,12565,18322,9763,10886,12385,17683,587,30985,16367,1724,164,7683,29501,3769,16419,30700,17920,19416,21512,22084,6490,29607,10351,30022,13367,16221,17232,26922,10898,30550,21905,23407,10292,5924,29377,724,17173,28159,1032,17954,29033,29185,18810,2654,16794,26400,23602,6635,29642,21906,21911,21190,3257,22650,29978,14310,31579,28156,7323,15500,11743,9335,25338,9091,7014,2638,2607,32612,18485,23406,12011,19844,11047,28117,15032,18932,4705,23198,11150,10397,27651,11121,12613,15743,1729,300,30564,8523,22439,14335,21963,2898,23688,27563,8885,23652,18358,20389,33310,31097,8404,28717,16768,2437,4959,24686,26616,22717,9396,3521,9909,5008,27772,18829,33947,30129,21353,9718,22608,2889,18865,4195,21821,14836,17235,1640,26591,20489,34959,11297,32511,45,4010,46,10103,11336,18025,19719,11656,26805,34968,25749,27727,20007,8241,32619,1240,32054,22627,4684,33274,7904,856,5440,1057,31005,8644,9421,31543,9307,30910,2135,24960,6212,9250,26450,13508,3990,25674,31393,11953,26677,20371,6491,21491,8505,31411,15867,16807,8407,15118,2329,11694,3397,31779,34773,6054,31076,21649,33876,12271,22665,31667,24339,28685,13441,17884,25876,26925,13992,23816,10113,6063,7832,5969,34269,19194,20946,3834,30670,12079,6885,24078,30390,19596,28820,10587,23209,26904,10634,14632,28485,19330,26192,4582,20083,322,27494,5012,16485,4072,16234,34298,3133,10569,28933,2650,1051,24846],"8760":[7936,6074,600,8446,3250,4058,7998,4830,5679,8018,3903,7647,3993,7792,5133,2352,6857,354,4075,3602,915,5256,2640,6614,1316,292,7830,5808,2552,4900,4201,8276,8262,2268,1929,4842,8535,480,8307,887,6044,5403,2692,4156,6241,4164,2995,5141,1035,7291,8408,6817,1960,1326,1042,4946,493,1604,3810,5255,3775,3731,6799,6284,5998,7225,5247,1461,8524,538,5937,5933,5131,3066,4759,7263,4619,832,32,5200,7299,7492,3673,7328,6421,1536,5623,3954,6734,2452,1965,391,1529,1237,2973,8177,7475,5474,2017,5107,5946,2379,3636,3076,8438,1063,940,1231,3544,973,3882,4557,596,3127,3585,3603,7076,663,6172,5380,1259,4230,8000,4219,8149,695,4225,1386,2203,4104,153,2521,6163,3951,6900,158,2975,8019,446,6039,3286,4920,6837,3684,1601,54,1249,4892,7625,3686,3813,2557,2412,4824,5339,1554,7015,172,3496,3304,6524,1088,8325,7118,8258,6582,4033,337,5246,4134,6719,7819,6570,7473,8363,5322,5810,3677,1761,2911,4015,1882,4485,8488,2400,6446,7735,6296,782,1881,3482,715,2638,5765,184,1385,4582,2443,2666,6147,7556,6580,703,8602,1472,4325,3981,5056,667,8405,85,5911,4658,5588,1665,580,7522,2710,4520,573,8654,4699,2040,7879,3170,2029,7393,1036,3537,2787,6814,4443,3422,3785,4728,7771,4669,6365,2365,520,618,3017,4415,4671,6974,701,4289,455,2568,6258,3300,4101,6587,1017,288,6468,7631,6891,283,2525,3992,563,3223,5585,6394,1215,5832,1139,14,4089,8117,2741,7212,2226,1747,4726,7405,5241,4589,8655,6959,1753,3461,2853,5118,4601,3582,2185,96,6411,3832,5398,5366,2353,6113,3766,817,1327,8504,5161,2880,4652,1429,8492,3754,251,5008,1886,5345,2060,2759,6166,7378,1744,324,1383,953,1148,7720,3629,5257,2088,1323,3880,78,4829,2296,3717,5238,2960,6023,4416,6650,6544,1915,5277,5302,1390,6668,2457,4872,4665,1451,6141,5931,2990,6013,1832,2205,418,12,512,5676,1380,8618,2456,5285,6034,5655,6595,5778,5127,2129,2373,433,3718,2948,8671,1561,2560,5674,6110,830,7826,7628,3231,5248,4985,147,5524,3914,4276,6084,6480,613,4522,6899,1944,1841,1433,149,1623,3326,2472,1335,1031,8134,5523,518,5799,2833,6505,2907,367,3780,7494,7599,265,3531,7287,5824,5514,3923,3676,5187,676,2775,3929,3018,202,8560,4839,8603,8061,3105,3397,1555,7127,5600,6171,90,8373,62,1250,6433,4687,303,5762,51,2637,3072,6622,1190,5103,6951,3297,3770,7793,6522,5535,3034,3788,2669,7458,6264,2288,387,7062,8712,2193,2589,1208,4237,8343,4644,1622,2506,5276,1440,1637,6419,1112,4680,1796,6025,6403,6884,4805,6929,3841,7613,6720,8540,6382,4073,3051,5172,2487,2703,7888,1746,5061,5450,4055,5928,6727,2272,852,2066,2314,4301,2742,6519,4735,3999,7512,4673,4895,6090,653,8700,3679,1740,210,275,6806,4264,6183,3852,4020,2492,7153,5709,3487,1027,6020,5261,7282,7128,4964,6634,1073,7496,1587,3233,886,6351,5662,5643,7029,3446,4061,8327,4781,3277,4275,6108,6288,2052,6210,4654,6612,4799,7032,1793,6711,570,3656,3802,4766,170,7808,5645,7762,6758,3343,3187,3584,7184,3998,7718,5391,2536,793,1399,5175,3375,4251,2943,5216,3258,6629,2161,1725,7600,6786,290,4909,452,6003,3855,3131,3119,5189,1630,899,3376,2213,1924,306,5731,3901,7783,2735,5801,632,3519,6051,2942,286,8151,2999,6724,4752,1129,2725,7377,4871,4172,1487,758,7741,1766,2463,914,5020,1189,3032,6130,1617,7122,6193,2826,1599,1583,2952,2867,2933,4631,3873,811,5923,8157,8508,3552,3262,4390,3925,4305,4260,4648,1970,5961,4358,909,1305,5583,6465,220,7537,519,1264,2600,5996,7214,3980,2162,5027,5310,2436,1280,7955,4263,6751,6228,1282,1673,7658,7809,5557,4335,5721,8376,4861,3986,1255,6901,7596,7957,7167,4053,1039,1571,208,7728,2512,6514,3468,735,2864,1864,1611,2668,5117,5267,891,5844,6177,1381,7517,3494,1940,3128,3389,7025,3742,7693,6472,4353,4018,3608,4427,7067,35,6992,4593,168,1028,5064,3920,3781,6457,5682,6839,1306,6129,5838,3074,250,3261,8715,5459,598,3064,6334,4932,5786,1677,3978,4046,890,3800,3691,1033,3457,8251,1584,4800,1462,3851,1764,7769,8212,4141,5664,4876,4319,4262,6976,4614,3683,6017,1412,5229,7446,1436,7247,7205,8088,1593,5217,4440,1328,1010,7899,2402,8069,8024,7614,2535,3773,6749,1950,6525,3600,1656,369,7143,8456,1269,1931,8695,7916,6436,7239,5143,5864,41,5011,3777,4481,2278,5653,7886,7997,8754,7344,4060,7843,5530,302,2440,2197,8114,8614,5075,7317,3062,6660,4280,7637,178,1801,4243,7789,8406,1912,3707,3172,2249,1691,7666,8449,4533,4343,7860,4079,1743,6156,4926,1079,3546,1372,7573,5675,7370,1213,3535,6271,2756,1047,5893,541,1018,1808,6456,6832,448,6204,5771,8597,5312,8705,3267,4295,654,4433,517,7654,7098,8331,8355,3526,8171,4411,2301,6240,4177,8572,7733,5024,2438,5368,7805,7776,3858,8544,3817,3427,7506,6252,5956,1917,2684,3871,7157,8165,8048,6939,718,5897,2318,7711,1628,3557,5177,6985,6429,7524,2997,171,6633,8332,5607,440,3484,4444,2656,6393,3182,2466,4678,1056,1634,5695,3747,2190,6549,3327,2004,543,4372,625,496,1109,4538,3678,984,8615,2516,3282,5362,554,2871,8224,127,5927,3087,5711,1479,7162,2246,1927,774,2652,1424,2427,7634,122,938,8272,4864,25,4984,7272,6925,2186,1471,3497,2537,6015,5058,5157,2555,7177,6987,6151,1320,405,5308,5764,1048,7187,6370,4116,728,2227,3828,764,3764,4776,2100,3301,8045,4566,4712,2109,3927,4304,5887,1552,1376,559,6165,5203,6313,4008,8216,8098,6455,4574,8387,1183,2446,4308,2024,2346,7056,3481,1902,6680,3234,1230,5822,4583,3462,6932,3969,2728,8377,4859,4856,3834,5081,1700,7257,7427,2053,748,2447,8717,7523,8686,1367,1170,5251,5299,4530,8008,1922,4115,6741,8731,5226,3440,6437,857,1206,8141,3653,8496,5823,8213,2273,708,305,3016,6330,6828,3541,7766,2483,4282,4120,897,7325,7150,2829,8159,7615,8006,6056,835,4217,3532,5041,5652,2095,2727,2612,7330,8699,5135,5717,2772,7139,1252,5373,3177,5030,4958,7004,8174,129,4518,6434,6905,1094,4683,3909,8497,1539,4552,2390,3456,114,5411,6617,5489,6301,2579,5716,7053,7951,6407,7265,1452,5579,2745,8166,7351,8543,2584,3915,28,1185,8010,83,5180,2471,8207,7486,3465,5890,7468,8264,7533,4806,1291,7962,7060,6366,5966,661,8025,331,6562,2704,536,1995,2154,558,997,4322,7866,6251,7526,3837,6214,6115,5393,6876,2971,2788,4509,2792,5156,7345,4624,4773,6154,6153,2642,1654,5171,1378,4384,3659,8064,5208,5418,7208,7407,2147,7636,5722,1629,1085,4733,8091,2821,885,5615,8256,3444,7777,3108,6359,2734,8294,6849,633,423,7624,2480,3043,216,5488,3130,4399,6254,1274,2289,6031,4868,5554,3507,1734,4754,4234,3046,2901,792,795,5595,797,7915,3048,2947,800,8608,1647,3988,5960,393,8051,3899,666,169,7606,8619,5968,3749,8314,1425,463,3783,6448,8587,2504,4019,7084,7023,650,1862,2051,5466,4797,1346,401,1400,2789,5502,1194,6369,7121,411,714,4249,3198,754,5630,2311,5419,5875,1806,4597,4180,6144,5573,3818,362,5353,3319,4458,4634,7856,8636,4185,4127,3022,1307,6651,3941,6546,4918,4664,2903,6526,2009,7454,6551,2784,4558,4029,4666,5370,8062,7384,6581,7781,8414,1156,4306,6616,6599,2655,8409,4745,1281,4194,933,1314,7335,5431,4737,1737,6192,7854,4974,4949,4108,3895,4980,3155,1614,908,235,4695,1732,5979,1911,1932,1717,8528,659,3857,1373,2603,881,366,7619,8473,5481,252,524,6685,203,4388,3614,5707,1513,4738,6636,4050,4632,6304,6643,6848,4068,962,5212,1416,5666,7242,1595,5572,1480,2013,4770,1227,8616,587,1374,5385,6679,3287,10,2458,4080,4638,7629,7690,4110,5359,1442,3643,7134,227,7039,704,4494,1232,1481,5949,7333,4314,4475,2800,7823,5055,5547,3827,8049,7322,4561,7845,7203,6012,1059,5551,3435,7702,7985,4866,1762,8748,4213,3232,1494,2711,6138,1375,1294,8284,1151,2982,1557,7008,8604,3054,2699,8395,3511,7697,7081,6853,2631,4629,660,3687,5147,2778,5624,965,4338,2238,6860,4315,6058,2468,1200,4575,8128,7703,7478,8624,1781,3075,3382,2925,2531,2605,6699,6965,1186,1032,1853,7674,6068,142,7444,7072,8234,6618,5086,805,8457,705,1174,4059,2762,5667,3815,6523,8293,736,5243,1979,212,7349,4071,3525,328,2449,3641,2016,1443,7499,7865,6852,3486,4128,706,3467,2307,2158,882,4798,539,4696,87,457,4748,6721,5296,1525,4376,5702,6653,4499,8588,4109,5034,2122,6447,7607,3434,3092,4395,5971,2184,4988,1752,3578,8241,2019,7924,510,5429,3589,98,7360,2931,2900,4711,2895,2815,482,373,5211,2987,3721,815,4911,2407,2515,3975,5981,6014,6261,8569,4873,6083,3324,4426,977,37,498,6194,1509,4702,5532,3601,3953,7180,6827,1248,1517,3255,4004,3693,2941,1286,8419,3003,5051,7018,2068,1369,3120,2604,1289,7298,7388,7079,6105,2598,2753,5797,1141,2824,1824,3081,876,8060,187,2422,2514,1582,6,1640,4661,3955,5290,4605,5335,4294,7748,6493,5609,8274,4146,2357,6464,5712,1296,5115,4168,3384,3917,2989,1095,1598,1820,5638,336,8068,6594,7669,6267,8706,104,3728,6329,284,1986,3906,5438,1600,8411,2229,7756,2766,4809,5728,4810,4133,7376,6119,5760,8187,4599,264,1703,6347,4026,2846,8287,8095,4618,6638,8728,177,4701,2673,6182,2835,2467,3838,6918,1524,5995,2058,2713,1730,4679,1099,6086,2454,6863,5680,1508,4541,7986,3272,8230,841,4828,3090,3681,7685,753,7858,5361,4468,6198,5669,5210,1082,2099,7862,6235,1540,8660,8430,6047,6199,5355,2071,6694,2141,4132,8150,8252,3191,1741,7319,3787,7402,5242,2054,2717,606,5536,1077,8428,608,2264,1723,3564,5570,7041,7421,755,151,5500,5433,341,6274,2556,2621,5174,7944,5602,3791,6250,8247,4436,241,48,7445,2450,8431,7087,5121,7877,6340,7341,5648,4016,8368,4095,5751,4082,4017,744,1195,842,2899,6322,794,5880,1025,2369,6967,3294,4293,5371,4157,5900,5504,3669,1053,1709,958,7977,4823,1736,4816,7868,7207,6984,3322,2841,3884,6805,936,3241,6520,3348,6835,8606,375,2215,6709,5839,6248,6217,4035,8577,6973,6956,4775,6856,3934,8305,7321,7914,4328,4562,8020,6687,8118,6092,955,1312,5997,3734,1321,4928,3356,966,5812,7699,4404,2565,1873,105,1350,5783,4479,2522,4875,8646,3610,952,6902,2761,6645,3491,3053,3464,8110,4929,6202,6024,2341,3626,6069,2172,5125,3889,6473,7036,5326,4903,4874,6911,231,2418,1453,5098,6131,7842,6132,4571,5548,3150,2079,7689,5994,6716,3156,7995,4350,6317,542,5412,6686,3697,3259,8531,6309,1050,1711,7426,5713,8461,4145,5363,3970,5190,568,2956,5729,3153,2601,2708,4889,365,2653,7419,485,1349,926,3991,1246,3026,2497,5737,4514,5932,2267,2043,434,679,1504,4504,5406,8688,1953,6790,3500,190,5223,662,2253,4491,1666,350,2828,1590,7528,5073,1511,5507,1421,1958,1301,6367,5577,1866,1774,3410,2010,6845,4913,6691,807,3861,2570,631,3649,2843,3789,6659,2562,2553,889,6000,4175,8366,412,1458,5197,3849,3759,4232,1122,5522,8542,7466,4931,2648,3499,224,674,3194,7160,4845,1096,1149,1432,7164,7828,45,8123,4692,3360,1437,3178,7010,7894,1093,2689,6424,1731,769,5037,5646,4412,6558,2313,3488,217,7289,4088,2223,7099,1804,5610,3419,1456,7576,7656,398,7807,5857,115,5142,869,2269,2597,2240,4957,5899,6756,323,1782,3083,343,7593,7757,1739,2437,4235,1457,7379,5730,6160,5021,4495,4432,3910,2277,6665,8555,6953,3313,2319,7688,1984,6789,4506,6881,6712,5917,956,791,6033,3663,4126,1538,3854,4024,6104,3341,8491,5036,2225,4344,8394,3025,8365,7406,585,5475,4625,4813,8083,3812,8526,4550,1608,3367,8558,7470,5537,1521,8727,5509,7019,4684,3002,7285,161,2827,7649,1169,7416,8361,4568,4850,4970,1160,8657,334,3236,1825,4455,4182,6921,413,3671,1977,6364,4066,92,8503,8313,6440,1299,4719,3129,4425,3705,6978,516,4155,7882,4362,5989,6542,3605,6257,2030,6847,3293,6909,5468,5219,8600,6794,3351,8222,4725,400,3751,3429,1621,6336,2881,7102,7648,1815,5869,3819,8273,2559,4939,621,7983,1271,475,4449,2073,8139,6836,1444,3395,6445,6435,737,6377,5483,7668,1706,2123,2153,297,7507,2491,5160,2785,4190,508,1060,6955,6609,6379,1497,1991,2920,5417,20,6040,6112,4267,5319,4435,6399,2116,320,6535,5179,4271,7077,8100,486,7218,5796,4330,7074,7640,8,1840,3240,2255,6672,2216,5188,2293,5531,3372,3844,1495,1676,6872,4833,4545,6630,2345,8724,2639,927,197,1422,7595,2130,1153,4787,2635,5611,1616,6809,1210,5782,8346,7519,1620,4724,5126,4166,5834,5745,4778,7106,2003,575,4969,426,4690,8120,2810,5275,7535,864,1356,1242,3942,1464,8073,4341,3210,6885,136,4587,124,6216,1212,673,4336,8304,112,2250,4537,3555,3724,7775,5311,3001,8208,6050,2310,3784,8386,3409,925,3245,4870,6278,2573,8711,2774,7137,3807,2617,8594,7401,2675,5527,640,5650,2089,2667,6021,5767,5589,677,652,3771,8589,6725,8261,4130,6308,4482,4027,3134,1165,1992,4137,3276,7851,295,1563,6279,3099,5442,4879,7055,6337,7867,8523,5962,6145,6283,4947,2387,5382,5939,6740,6753,8479,3863,2015,6286,2050,1619,763,4979,3154,3239,466,4610,6374,8649,1574,4835,5072,3400,180,3826,8416,2845,2419,665,7952,4869,1919,1903,6244,3080,6098,8121,1745,1265,8209,3295,2879,7073,7357,4768,2101,1224,4233,4065,4316,1816,5584,4941,1303,4428,5658,4122,7544,1594,4906,368,1159,2070,4139,3047,3517,6596,5477,2685,3253,1090,2779,1236,7821,7230,1990,4380,710,6913,2395,7221,1003,6344,167,560,8182,3096,680,6305,2243,8651,5850,8596,2930,5178,6501,3385,6353,6702,7953,1417,5002,6292,5314,818,2374,6788,8710,2940,3140,370,6352,2152,3772,198,2855,4723,5014,4938,8031,4507,5209,846,8032,2957,1697,1868,3393,7511,6816,444,2320,91,1669,2981,872,4208,2528,8158,3207,7760,5159,3590,505,4560,7429,7681,7459,8005,5137,4160,6489,7831,4995,8367,2451,8219,656,5758,828,2731,3038,4952,2330,2245,6867,4707,308,294,4653,6273,6155,3307,1239,8113,1650,6941,1398,578,6327,7587,4138,1211,2831,1466,8498,6293,8249,4534,3835,4450,2619,6583,7456,3335,1998,7256,4999,7632,473,5356,1176,8369,3298,5798,4302,4400,3104,389,7026,1854,2561,378,2391,5842,5341,3799,1493,408,3938,5936,1066,6259,3033,1355,309,267,7101,1777,4857,5227,1974,639,3036,8545,6149,395,4439,1811,888,1918,1631,6502,5183,4615,6584,6969,3876,6624,5447,3719,999,4598,7800,1831,1068,6249,4299,3195,484,2636,5139,2628,3285,989,5563,97,7268,5699,4950,6815,4639,5039,1136,8420,6864,31,7420,5080,2832,6494,215,2558,1015,4148,3317,5342,5775,6982,1821,339,233,5598,427,5644,5347,7276,1389,6996,607,3364,3750,7543,2507,4379,6927,7274,1270,2461,808,6887,8016,1661,229,8201,236,2748,5591,5873,2151,4633,1411,1057,5192,7387,8759,4144,642,1161,3399,5970,4606,6239,22,3067,8684,7970,6690,5720,6706,992,1052,4720,7582,2119,6077,630,5657,8465,5436,4349,6059,1946,2081,3091,5499,2415,3209,8193,2348,6993,6518,6454,7670,6506,5478,1551,8135,7707,4203,8350,7591,9,3662,406,3331,6438,72,414,2212,8573,7873,1137,7463,853,3478,5145,3536,5697,5777,4785,6556,1329,2923,2662,4250,2398,7412,2641,8690,5487,5378,7709,5501,5818,2582,2469,4935,778,492,5201,865,5427,4834,8257,4212,3437,3121,6898,2195,668,5266,6386,2705,5678,1108,4956,4848,4218,4567,8228,1465,1535,4430,273,8058,3506,6639,3205,4259,4300,2210,5439,3161,5111,7495,7887,214,7687,157,7562,4375,7318,6798,3622,7172,5357,7182,3374,5614,5985,3591,3447,2951,6961,1952,4755,5732,36,8661,376,4930,1938,332,2168,875,8716,126,312,5428,1272,1877,5853,2242,432,8090,5774,3450,879,8556,4084,7700,7469,537,957,942,6930,8156,8519,4003,2247,8694,8565,5744,86,4154,7209,237,4715,3919,4556,6893,6094,784,8640,3573,181,1192,7861,2160,3655,3790,4009,397,7758,6723,102,2571,5641,7438,1982,2294,4143,3021,4744,1849,4013,6081,4010,7816,3260,803,5749,6294,5891,7857,7585,3480,4758,651,4022,2113,1157,7297,8707,3010,3455,5807,626,6824,3371,770,3362,3040,8750,5616,6243,8452,7912,5817,8501,4077,741,3388,2445,6515,1138,1413,1906,3947,123,6623,7012,2280,4762,6738,5415,8663,5239,3070,3225,4825,7278,6096,743,6157,6471,1567,2878,3030,6328,5317,1710,3904,2481,3056,5176,120,2170,5224,7058,4858,1041,1001,3708,2671,7815,289,4377,5628,6802,1365,4417,5095,3769,3735,8485,1117,904,13,4256,8322,5696,978,4563,5613,7181,1586,2809,4348,2874,5868,7436,2027,5460,3349,1694,3164,4382,3242,7248,7558,2431,3406,4788,5471,5884,3378,8133,7838,5214,7570,1124,2335,6410,4674,8622,3786,4178,8082,2593,8291,6768,1360,6928,1450,7336,5846,686,1606,453,5102,8296,2624,8691,2230,67,622,6061,7938,2377,664,6253,2056,3741,6350,3688,844,6673,4577,5795,7050,6662,7978,637,6812,3107,911,3146,2308,1423,7396,8071,949,3185,6481,7820,2356,6644,6574,8035,8132,8178,7347,7880,4609,2045,8326,2862,6488,3369,4573,6851,4512,4176,3336,8752,574,5836,7251,6804,4937,2460,6980,2769,2916,4559,7836,7471,687,489,2257,2910,8551,2572,4364,6742,46,7514,2496,6957,3913,6354,7530,5327,5295,7110,4469,7089,460,602,1292,2798,7943,6203,137,3159,5861,2554,8697,5520,8179,6527,6773,6509,5167,4998,3212,211,6964,5204,2421,1839,8388,2776,8417,66,2530,8701,6461,6628,2115,6889,8027,6894,7602,6442,5859,7714,6428,402,5292,1605,4270,581,3148,1541,8679,700,2814,829,4500,2876,6999,534,4466,3454,5035,916,8489,6563,5580,4685,2914,2839,1455,4517,4543,5457,3868,8375,1786,7539,2803,2904,8172,3994,7238,8576,4662,3101,8111,5735,7030,1310,2157,6564,5023,6072,4751,3729,6968,4688,1589,313,7462,6376,1959,4329,7091,4477,7417,3416,2403,8529,4163,4238,3142,4667,6396,7138,5163,7326,7003,954,986,5926,1901,4327,5605,3098,3023,2057,638,7626,254,4967,7768,721,6049,2921,6225,7937,2309,3530,6717,5867,1363,2002,8666,6290,2795,4291,113,1045,6206,7210,3579,5727,6037,1996,8152,4677,5303,5781,6246,6667,557,2173,6229,4229,8402,6833,8434,8359,1833,8124,5149,7385,7813,6744,6414,2432,380,8206,5915,6237,7605,5978,5320,7363,2539,6648,3418,5909,2145,8146,2219,7070,4527,6091,8435,1441,5191,3824,1542,3442,2435,3805,8235,4771,165,6346,8453,1684,8012,3874,1872,3565,4117,2760,6335,2347,1575,7313,7386,8168,8341,5279,5047,6032,4184,3757,5087,3520,7202,388,6196,6589,7833,1284,2969,2448,5820,7732,2397,2755,282,775,8647,6772,7586,1468,4852,3617,7449,5186,6781,780,2014,2434,6028,1564,7430,8739,4179,60,583,238,6321,7078,4152,5683,6600,4750,4284,7467,7561,5284,8085,2098,7712,74,69,8486,6450,7822,7972,110,3460,8130,3085,6796,4942,4765,7723,6826,1963,7876,4940,2208,2426,8470,5410,6916,2237,2751,4097,5332,3035,1474,4036,6075,4590,3883,6383,561,4451,6743,5920,4849,4,3201,2898,5444,3268,6782,5003,7773,6757,4826,430,5425,3114,8268,4031,1505,4704,2201,3283,8260,8516,2394,3149,691,2585,5975,8467,3477,8353,6360,2509,4663,3523,8632,3302,8749,643,7557,569,821,8115,1883,6854,5,4710,155,6266,5237,7567,1145,1484,6627,7695,6531,5677,5621,4966,5517,1949,8696,5346,6087,1565,4836,8147,5158,5364,4647,3907,6224,1331,346,3586,5852,262,5750,8627,6871,6474,6510,685,8462,6118,479,7724,1076,7676,8495,1267,1783,3937,8041,2114,3926,4226,734,1834,2891,8301,1080,314,8483,8352,3713,6875,2117,4851,5258,1751,7457,934,2527,6897,4531,6640,6332,6646,5408,6395,8593,5392,918,3243,6097,1581,777,5130,2464,6212,2706,6568,7198,3065,1939,4222,469,8429,2428,930,7921,7491,7740,5153,1470,8167,6071,7192,6420,8140,5134,2350,6170,6276,867,7574,1166,8735,3380,3103,6397,5561,7645,684,3699,4199,5788,8014,8205,4087,620,2474,3744,5719,1668,7124,6882,1049,3189,3836,4424,3667,3158,5806,4418,6695,8512,1204,5940,2616,1322,7275,5053,5397,1370,4135,5596,8549,2477,6907,8349,2104,4812,5387,5544,5515,321,4181,3887,6896,3363,614,4535,4564,6577,5560,4448,1352,4912,1222,2485,5672,6731,1865,2179,1860,5733,6810,4355,5552,4990,8254,5992,2877,1359,3058,8740,5718,7727,7739,1800,8362,6054,6991,7967,2611,1625,462,5622,4951,1134,7200,2133,635,8698,2442,2085,8214,7020,4486,3041,7163,234,7116,4162,5245,983,530,1845,300,2860,2444,1439,2482,5895,4635,3638,566,3842,4777,1662,2502,4636,109,1187,7885,8738,2262,7307,6890,176,4763,2332,3132,4169,3945,2292,2146,7906,3333,3246,8226,24,2423,6099,4718,8047,8730,7474,6761,3466,3872,3060,6682,4193,6793,2929,7201,6813,7431,6413,6606,974,1925,4337,2872,1,576,8474,982,4438,174,8620,5096,699,5757,5889,379,3580,6620,3870,2008,2044,3361,3635,1785,4346,1754,5490,4307,6795,4209,4959,7630,7889,6983,627,6590,3864,1071,5914,7154,1548,7310,1490,1209,5375,3244,3822,8112,2577,786,5076,2200,7893,5376,2266,221,3604,7722,1994,5542,8347,2035,8142,1527,1247,5826,6764,5860,8513,7752,7342,2674,2182,878,2499,3510,2349,2252,449,6895,2167,1263,3441,4627,2233,8127,2738,1506,6914,6591,2729,8183,3623,204,545,5833,515,1667,3078,2545,3760,556,7835,3767,2806,7743,7675,6632,6495,3611,6312,3111,256,2224,1473,967,200,2924,4837,3495,1897,6787,3831,8451,152,3428,553,669,1857,6449,6503,6373,1878,3558,3898,898,819,1523,1089,7064,1483,8559,1203,2625,2887,8745,4546,5700,3995,2749,7295,4703,5233,3896,4021,5493,7324,7391,5632,2178,6784,7948,3848,7942,5673,7584,18,5298,6470,2520,494,1972,4257,6944,3473,2548,7390,7601,2645,693,5840,6466,7217,1610,7156,7094,5574,4814,6508,8311,4727,2127,3412,7541,3169,3377,5448,2590,1923,5525,5743,604,2563,2012,6444,6380,8518,6088,146,2882,5862,2852,3270,2893,2888,4114,1920,1971,6430,7281,4457,6949,4192,2325,762,8633,7314,319,6552,2047,6053,1438,143,726,5198,6126,1205,4585,3644,6070,166,5122,991,1140,8380,4934,8480,634,7803,6906,5225,5963,8186,4221,1887,30,5792,526,8629,529,565,8702,5738,474,7691,2610,1690,6358,7327,1295,5012,6089,7917,6971,1518,1531,5870,6314,3474,280,8527,2169,2084,5426,4063,139,6669,6221,3670,2950,7746,1330,6265,29,2222,7080,6831,5776,3897,1154,8522,65,1065,5343,2181,7047,2285,7708,592,7988,7734,6540,344,1311,7580,348,7594,7311,2576,6707,7617,4772,1898,5510,7755,8641,8683,814,3449,4741,948,461,3732,1445,5309,6218,7513,4340,5329,6626,4884,5967,3900,7229,4038,7925,6121,1533,3013,6729,3598,2324,6371,7228,2683,6920,7694,2746,5435,7555,6715,435,4821,8333,3624,2486,4914,6842,2067,3471,3956,5042,8571,4544,5656,5863,333,1103,4783,4532,5291,1338,7439,8399,8370,1332,121,7125,6452,3820,859,5449,7398,1641,5955,7598,4963,5445,5006,5626,993,8653,4867,767,3275,4793,7673,7497,8298,1663,458,7806,2724,5018,3214,945,8464,8437,8541,7277,5739,2606,3875,6355,3139,6188,6797,2376,995,7231,2059,2143,1788,2209,6735,5759,2688,5264,1712,1347,5432,8755,6316,4811,5044,4040,8758,588,196,7726,1798,248,5230,1683,2248,7092,207,7095,5982,4529,3542,8221,796,5194,655,1827,382,3386,5938,7005,4312,3476,1612,1419,860,6125,8505,4103,2359,8552,7254,733,8017,2777,4898,6109,3453,5301,8309,4373,77,3551,929,4339,1098,3485,7031,7655,7761,6718,3746,4734,488,7253,8553,6683,4987,1198,7489,4318,3859,263,1500,3893,5249,4676,2869,3432,2372,980,5954,1780,8704,3634,8747,7223,5723,2743,837,307,7082,1171,2425,3905,3436,4480,1334,7066,4576,6027,2794,3860,5947,1807,4981,7316,3383,3595,2388,7778,5916,798,5119,3806,3803,2592,4659,4368,4245,8534,5576,8336,2038,5803,7410,4656,2087,7453,2885,4296,8401,4285,990,5185,358,6553,4740,3689,5340,7437,2072,4085,3339,3609,4989,8074,5703,8357,3093,4965,1449,2813,4131,2908,2005,3776,6085,2936,883,8582,7255,1585,2295,422,8324,7946,75,4098,5424,7395,2429,5263,4272,3248,1285,3162,6736,7993,6007,2586,7484,2231,732,1685,4843,4206,4165,1573,809,4161,363,1988,5352,3569,2333,3845,1813,1218,6291,2518,6116,2602,3303,5405,2354,7190,2697,5571,3247,6133,8468,3989,3082,1489,3902,5202,2041,3556,8218,4503,7875,4113,2149,8318,5022,4100,2805,63,6859,7175,7364,4311,6834,5369,8591,7383,2767,6458,5627,4983,2198,2284,338,2206,1810,8421,8554,5232,2175,8292,5693,8143,6952,3365,7994,3265,8676,6576,5097,3846,2822,7540,1726,5384,4649,761,2510,3756,4827,3706,2327,1609,7839,801,2765,4463,4650,274,7696,7479,5052,1520,1724,5866,2897,4502,2358,3031,5508,5234,6277,359,3413,5918,4657,8510,3392,7296,8280,1478,6904,6381,1167,8439,1558,1172,937,3271,76,3690,7745,6962,4730,3407,3366,838,5294,2859,8404,7021,8319,1688,6324,892,7947,4470,3305,1626,1779,689,2938,2128,5815,7832,7435,7643,3417,7900,3483,3344,1749,6697,603,6938,5104,5736,4216,2124,5876,3257,2733,960,70,3596,3823,3513,6460,2758,6174,7817,353,3183,1775,4554,3865,7502,4757,3063,4808,2409,730,2964,540,1008,6315,5879,4076,5213,7183,7725,1401,2716,6041,6684,2192,779,7292,4953,160,5401,6310,2687,8340,3778,7627,1162,1660,3423,4756,7409,1180,6423,7052,4894,4356,8517,6829,1244,2241,2207,7173,7151,822,7337,7550,4274,2271,7236,3814,4893,5925,6565,7508,2118,7215,8650,2972,1814,3199,4006,3685,1147,425,731,7362,1899,8013,1526,947,4332,195,3613,1324,2588,3534,1064,6830,3642,3516,1603,3593,6703,261,247,8450,4780,5770,8072,4188,5694,4357,1945,1410,5566,111,527,2317,1407,1029,6674,1283,1976,623,4007,491,6022,870,1055,2286,4586,8490,5559,2396,7910,5491,8137,4919,2985,6977,4602,5441,8753,2078,2261,3216,6780,6299,8547,7440,6300,7487,8204,205,8444,3279,6490,7991,6406,1016,4483,4729,3321,2270,1759,4317,5452,2726,8642,7165,3173,8176,1276,3147,8070,4398,5480,6877,4034,5455,970,2988,7780,2937,935,8037,617,2693,53,7521,2747,2599,8190,5181,1973,8271,7855,1652,1175,3288,2752,8475,1768,2039,6838,23,1278,4910,4977,7527,7848,6975,3208,7590,6412,5629,7901,8670,4210,240,44,2632,2695,972,6625,7411,7354,5063,5404,593,4782,7224,5288,6318,1597,2159,3357,3957,5085,8153,3666,7518,6362,2633,6120,1758,8242,4044,5642,7608,6516,2654,8267,3712,4159,2932,8138,7027,3563,2541,1738,3736,5379,6869,1113,2032,4125,1999,5934,4361,7927,2889,5513,787,162,7071,7480,5049,7293,5565,5569,3599,4603,5148,1226,7802,5528,6588,7569,7898,7083,4331,6035,6245,8210,2791,7166,5026,5784,2312,771,6137,2361,2493,4689,2618,8131,8129,2719,8173,8093,8107,2549,5715,1054,894,4202,7987,1776,396,3213,1716,1197,5351,7485,6491,5316,816,7024,3323,404,4298,3501,7375,8643,6139,1875,5941,3124,4429,5942,8240,7227,2326,3646,551,5848,3867,616,4954,8059,243,450,2063,5904,5769,8063,919,2142,1537,4628,5195,7320,1867,8306,8499,6416,2595,1317,5964,384,5958,2413,7038,2187,4090,3627,1556,2106,5924,6226,4012,5705,7904,7399,7956,1196,7369,3019,8315,6776,6357,7144,1118,2416,3793,702,8744,3394,226,4717,361,2340,6818,5495,3568,2316,7784,5886,1043,584,4865,4406,7923,7332,2849,59,3309,230,2533,7109,946,1659,2953,2670,4819,6201,1560,6635,5856,5734,6880,3997,4888,2773,5150,3560,2967,8066,464,4011,4789,8054,6733,2627,4102,4112,4917,7787,2494,2819,8081,3117,8398,1803,1258,5066,244,52,3625,225,2991,6675,3946,5108,4408,5144,6948,1221,4682,820,3621,4313,7075,4324,4265,4700,2983,2093,8155,1078,765,2034,4623,961,788,5092,3631,1914,8160,6298,4465,1805,7093,43,8122,6342,6499,7554,8658,6320,8312,6372,4402,6972,2511,2587,6387,420,5236,5069,552,3952,7662,8494,1014,6775,1144,6477,3583,5789,6135,751,5394,4224,599,1382,6333,8592,5659,441,4394,2126,636,5921,707,7935,6714,3543,2300,8390,1420,2737,2488,5908,8407,6026,7788,7452,4025,8440,7529,8263,7112,3657,4498,3042,7891,5221,5802,7423,8586,3141,4795,921,6140,3411,5660,7639,2608,8726,1087,4899,2368,854,3044,4121,8737,242,6295,7588,1396,5710,3738,3122,3726,2912,6862,2455,3664,6341,507,7372,3665,3296,8637,3123,2996,6586,3752,4986,4321,7115,3184,2459,1393,601,3592,2136,670,1201,6592,3211,4354,4041,688,6870,3160,7054,5593,8725,3973,3527,2439,605,2321,6726,1651,4167,8662,2629,4231,8052,8392,1819,132,8685,4761,7002,6389,7564,4612,8729,8104,2650,2581,3125,6057,8578,1044,199,939,310,7057,3503,3175,8055,8244,2802,7199,823,7424,2462,7538,4536,3755,709,1812,4246,4227,5015,5123,5099,4244,3222,39,4608,6326,8225,7971,6268,4054,5140,8233,3847,4681,8126,2890,6602,5421,5689,8378,836,7145,1114,6619,4580,6868,8612,5827,3165,3219,4617,4099,5152,1828,6045,5048,2433,1387,3218,3924,3224,4191,1748,5244,4565,4093,8400,2836,8103,8477,7922,862,4183,8564,7301,8445,394,3743,2092,2065,3524,3976,8136,1395,3006,6942,1046,6388,7896,8348,8677,5581,228,6078,5113,839,5586,8736,8708,1852,2275,987,7683,5688,1961,4890,6960,8303,5485,374,3701,6822,5165,4158,610,2764,2371,4924,7503,383,745,4611,7107,6912,6937,6356,4672,2946,988,8080,6390,4198,499,5991,2977,1261,4174,4421,7193,1858,4524,8382,3071,5458,8458,1348,7179,6923,3069,506,720,5114,3804,1061,5220,3672,8220,4187,1102,5013,8584,4369,7572,7016,3193,5768,1214,3959,5492,8638,2135,5516,5360,4961,7149,1223,7178,3661,5093,8290,3632,7448,3310,6181,1516,7939,1884,2364,3438,4716,4310,7909,5033,8364,8029,6285,2974,6998,2676,5465,2305,7135,6496,2337,2323,1863,356,6134,628,8734,8673,5399,8487,7604,2189,4214,8255,4732,8084,6215,2854,1908,2591,6179,2935,2574,5883,8351,1792,2782,6319,4698,4694,5634,8502,4736,1657,7356,4442,2517,8384,7505,3612,6886,6759,7233,2188,3962,2478,194,2408,1164,5124,3206,5849,6732,5388,7232,360,6479,1624,7919,1168,3390,877,6011,8191,270,5787,2626,4471,4901,2594,7189,1302,8581,1904,3680,4392,3354,1220,4119,6100,4072,3549,7682,3996,5383,6010,6122,950,2672,5454,5587,8078,4739,2718,403,2235,6066,7361,8089,1040,7902,1607,5344,4241,8238,4419,3118,4767,279,7620,4334,1559,4407,8050,2978,8250,4056,7597,2801,8075,7945,1460,3152,7767,2393,8011,1722,2696,2524,7973,8282,5040,4905,2055,1981,768,1545,2665,6656,1905,595,416,1051,7380,6935,3289,5661,2281,3387,154,6693,1435,2367,6453,813,7542,4993,442,1627,5881,4333,1251,528,4228,6763,2808,4005,8039,2343,1503,5473,4863,3050,4136,2661,4365,4908,4769,8094,6067,826,2856,2430,4292,1081,4923,3508,2750,5828,5169,1874,4697,3972,8211,6065,5025,2329,5031,2297,209,6281,8422,4070,5440,4570,7148,750,2968,2709,4853,4915,4747,1238,4721,3933,8525,6517,806,8162,8145,7490,3338,7738,4883,641,4367,409,4691,4028,7979,8472,7890,3521,8079,4261,100,5878,5090,5553,3315,6936,7581,7786,8374,7611,5606,1254,7155,1930,2909,5423,5546,7698,8246,3316,6150,2171,3359,6808,3682,3607,7037,1528,5205,2883,6654,7790,223,4247,3796,1408,5847,3181,6064,5324,5943,8345,1817,511,447,2984,8481,8539,192,3057,3166,7920,7818,6943,5240,6769,4916,7100,117,1549,3714,7931,5065,5950,7520,2090,3252,6728,5922,3640,1013,5381,2386,3651,3633,738,490,5640,3645,4637,268,1486,4255,579,8105,7892,2649,1632,8329,8751,2033,7352,4549,6409,4268,1913,2740,513,2865,7085,6247,4437,3135,2232,6195,1262,2863,8036,2566,866,4997,293,6222,3567,5742,7161,2283,1658,1512,2847,3936,3113,2700,6692,5486,905,6958,3990,2096,742,2858,1418,6676,340,5984,278,2679,3325,7022,7300,6924,2965,3797,1120,5930,1871,902,5420,3639,6539,3084,8427,3391,5304,8217,1655,5604,4142,2848,399,5070,19,1339,3515,3106,4383,7065,3694,7812,2331,917,5091,2069,421,1030,5430,1618,2214,4396,2664,7872,3829,6866,5976,188,2263,5078,8760,1532,8506,7334,6106,3,4303,4709,5007,624,4473,4211,8170,6123,3055,2844,1293,2892,3794,4551,6919,1769,7088,4972,8389,678,7525,1488,3308,3433,7549,7545,3505,1894,3839,7235,1158,8566,943,2500,910,1674,804,5259,7086,5538,1698,7312,3000,7113,1277,564,8689,4464,8181,3620,5957,2121,6569,6280,4223,3328,8360,4774,119,1496,1900,3137,3891,7949,2020,6487,4792,4381,2021,5283,7042,5094,7969,4660,713,6671,8644,1427,2137,5746,3448,2424,7338,8372,6846,8585,1111,2622,1342,179,619,342,7678,6343,4542,6417,1850,4847,7259,4547,4753,1846,8563,2797,7309,1152,711,3856,3238,2103,1191,4039,311,7846,611,4489,7905,7770,2406,612,6349,8057,7679,7959,8537,1058,2132,5328,6954,3489,8713,7418,6748,5300,7764,5805,500,7657,6167,6670,4286,1026,5367,4600,8623,419,5800,93,4266,2816,7034,2183,831,8279,5740,2138,7811,6677,3928,7382,3575,3136,371,4982,3334,4459,1431,7014,79,981,5001,3493,156,1633,3720,7131,438,6101,4630,8379,159,182,3180,7954,7500,5929,1219,5207,6082,5919,3151,4553,682,3472,2479,5945,2744,1075,2076,6963,790,1802,2834,4978,5543,2730,4258,549,186,7284,5654,5043,4461,6550,4047,7197,3983,2228,3215,1100,5794,5988,5155,4555,2505,352,5639,3340,3722,7716,7243,5619,7731,1240,3979,5755,7176,3809,7140,7763,456,2218,4091,2958,6220,4960,3028,5825,6511,3888,5088,6117,7252,7982,7211,2194,8164,95,330,7933,4646,5877,3421,4374,544,1985,2111,4111,1177,7422,2690,2583,8693,1935,8682,971,3280,6048,3145,1337,4205,8286,7294,8721,3443,7721,88,315,8300,975,1428,2465,3922,2630,6401,8424,2236,1309,8277,3654,8243,1351,1304,4236,5402,7096,3358,2389,2083,1692,2025,8672,8432,8454,7926,3110,6823,7132,4431,5390,7960,5558,5903,3733,4422,2722,3144,7642,5307,3138,671,4620,7488,4140,1964,7061,2532,1888,6521,7713,7389,6055,2790,3943,4801,7825,5952,6227,6001,7929,2475,3200,8590,7660,7565,1844,8667,3024,6607,6242,8664,259,4105,5470,1763,4822,4968,6771,8334,3566,3668,5726,8484,3192,304,2498,1955,3342,5323,4171,5534,5953,3095,40,4523,7791,3748,1315,6498,1279,4803,4749,3562,4472,8626,4281,5905,2375,454,131,8202,3264,6443,5497,3420,2660,3027,8356,8681,1366,696,8239,445,3004,3704,2739,7930,5855,2720,2986,6661,4410,4591,4283,8043,4693,4992,7013,4151,2783,3332,3463,7120,6205,8002,8678,8515,5016,2049,8288,896,6820,1720,4045,5414,1288,3628,2913,49,6030,8675,4519,6878,3204,4904,1119,4501,1325,7903,5865,7871,6545,7515,1507,6287,5811,8033,5851,1300,3985,3821,15,317,1469,7571,1861,5395,3862,8285,2287,269,3539,6002,5590,6500,747,6476,4540,201,6405,8371,3948,923,4078,5105,6966,1072,8611,597,4454,2315,3890,1448,7219,4708,2970,325,468,3398,1547,7623,7765,443,4153,2351,8253,7941,1578,7737,7105,3570,8040,1704,4539,2110,318,2091,1454,1596,503,2538,7869,6236,6168,3674,6004,1714,5684,3725,7653,5691,7017,7343,3808,2896,6696,1182,1216,2164,4147,2962,7226,2382,322,3935,6986,7801,8546,2513,6770,2338,3008,1983,6148,2470,73,7753,7804,5166,2838,6548,1377,5271,1679,7795,2944,7451,2028,8741,6561,532,8021,1491,5512,5649,6418,3203,4579,4484,3908,1836,3597,827,1890,6507,364,7147,3571,3939,2615,7097,739,4052,1664,58,8570,4594,525,6997,6710,8742,4686,2082,571,4643,1155,712,2732,7719,7271,8101,2698,2508,8004,7928,1062,2046,5505,4714,7677,2202,2139,6641,7895,2360,7464,2107,3964,8042,7706,6260,1002,8289,6538,3648,7158,3879,6425,2204,6560,8723,8448,281,6541,675,8423,3263,4902,5888,1969,6708,4309,2007,8109,1345,7730,7976,4441,1671,2519,2258,4528,7136,1107,8665,2417,2567,2077,7701,5136,3692,6200,1648,7194,6492,1009,5965,8415,4510,8609,7534,1515,1131,2196,1951,6173,4862,868,7028,6760,6233,5526,4345,5162,994,4818,1127,6009,6613,6567,2166,7481,8317,3737,6269,8321,615,3115,1855,8601,6114,2244,2102,8200,1997,5549,6547,4569,2939,6537,6647,5555,6504,2279,7283,6107,1707,5885,1128,7222,27,2405,429,7841,3320,4067,6754,1257,1426,6080,2643,2026,1022,8339,6398,4150,5582,3650,4149,6705,1682,4592,7432,6663,4405,5464,6392,1876,21,2037,6231,8175,1070,3089,4278,847,5506,2963,4387,4254,3475,845,8630,8026,478,173,4248,4000,8009,4496,1870,7794,4613,1097,2495,1498,3402,6093,4493,7069,2546,3299,3414,4453,107,2623,2763,521,4621,2607,7589,266,1954,3850,3745,2754,2613,1115,1942,1570,690,7968,4051,629,7878,3005,5959,6400,3512,1646,1791,7911,7358,7547,5665,5741,2959,8645,6819,7425,5050,7616,7043,1135,4713,5434,8169,7981,7652,6777,3439,6892,7171,7532,900,3977,3968,103,2915,118,1368,7884,8056,150,1199,33,694,6615,5987,1034,5046,3274,6282,884,6745,5215,68,5269,6103,4287,4452,128,5462,3619,4705,550,5315,6585,8281,1576,7331,7996,7622,1687,1083,3415,3715,2062,6858,3509,4393,8203,8674,6102,8195,5089,4844,5756,5578,6573,4815,5182,5463,1397,3226,5109,8077,6497,1735,7237,6922,2823,7950,2807,1388,582,6005,5906,3314,6621,4645,3269,7509,7460,253,465,6933,7033,316,5313,7810,502,4378,3833,7638,345,3730,7068,3877,5701,2927,3020,1110,8215,1842,2259,6652,1298,1795,1253,1544,6076,1229,5374,5218,1719,3987,6391,8030,4497,4840,163,5564,417,3723,3892,5773,7400,2276,6029,6536,1522,4049,5354,6234,7863,3561,3965,7750,271,2564,5635,3292,7774,8099,4370,2850,5472,2011,5986,6019,6873,3912,272,4252,6747,4123,1729,7220,2410,1245,3470,6883,2812,4596,3408,4975,1835,5835,5498,8119,1123,8426,8053,7262,1591,5059,185,1225,4572,533,8044,5651,4273,3514,1550,6162,1980,6700,3533,1588,6578,101,7990,6637,5779,3290,1838,47,3930,5032,5054,7715,3540,8022,6186,135,4764,4048,998,7246,7747,7577,4897,6657,8338,2094,5980,1313,2884,4841,1892,7170,4526,1308,291,7853,5060,6079,717,5120,4548,5106,1989,740,6903,907,7367,8718,1404,1121,2211,8703,2723,5400,2658,4170,6270,6307,1207,7612,5494,1403,8756,3100,4476,7717,2156,7368,647,4516,1341,1354,351,2830,6990,5206,8245,8385,3702,6408,4446,7414,4359,4578,8459,2155,3967,5837,6513,1217,3430,3528,246,5409,2609,3143,4352,8692,6213,7114,8148,4323,7339,7989,4622,4279,4320,920,206,7551,4277,7348,2023,1502,3782,5687,3768,193,7751,7907,7824,8229,5809,8575,6185,1178,5948,1344,7672,6989,5637,7827,1851,2870,4855,5902,7710,7560,8507,922,2484,8038,4371,7290,522,5377,3230,5601,6947,3550,3126,7365,3015,5901,8007,1463,8538,6348,6767,8116,2526,8460,3217,94,7963,439,8743,7958,7646,5780,5446,3186,3921,8471,1936,1693,2804,7126,772,3235,4860,8265,781,3492,8639,5451,6275,1926,5983,6598,1287,84,7834,5631,5199,1379,5935,8595,1297,903,7394,2678,3202,1968,1038,2256,6207,4460,7428,3545,1809,1889,8188,4996,6297,1447,467,1268,1318,4288,4513,6601,2707,514,5519,645,2659,8161,3522,6143,3866,577,471,644,6384,8323,5101,672,3572,5254,8266,7814,277,7250,8391,3009,6593,5816,3179,2875,1357,5112,6302,6482,5556,5337,3765,1260,42,840,4189,255,5894,7749,7141,108,5386,3502,729,2543,850,5599,7350,1733,7603,646,7374,4423,2411,4943,407,7840,2120,944,1319,5999,4604,296,1947,6161,4037,8337,3518,3761,7267,5692,1592,7498,3547,6843,3504,1772,8410,6159,5482,951,2260,4290,8478,3452,5772,5154,6874,1477,7133,7847,232,1672,1572,5518,7744,4242,2840,7258,1519,4351,3548,1562,7476,6111,8065,2363,833,1847,7371,8482,410,3577,6940,4360,1181,3971,979,6238,141,7559,7049,301,589,219,7195,8076,4584,1143,5184,6402,7472,327,594,567,1837,2336,1568,5461,2979,8223,3370,8097,4042,7304,7504,5539,6713,6164,390,5045,1635,285,5083,964,6311,7874,7618,2290,2596,8001,5708,5252,5969,5972,6533,7610,874,2817,6060,3350,4670,4215,5260,3647,8358,415,7441,2036,3355,4492,5479,6142,6752,8466,4880,3459,2818,8652,1765,2490,1173,723,7266,5129,8580,495,8567,5618,1241,756,2086,5790,858,1727,8198,5704,5541,4626,55,3529,1956,2966,2994,4907,3227,6404,4505,6209,1414,7583,7006,4642,3825,1132,3112,1934,1879,8579,6755,5330,824,752,1818,3404,1760,5168,2134,8125,2647,5793,1514,7563,1941,3469,7908,8722,4607,7260,6289,4014,3220,5681,2868,2399,7306,7240,8231,562,8669,3458,8598,2902,1106,893,7159,1105,7142,2686,4973,3949,4297,5896,3618,428,218,3885,7516,2702,1340,5821,7045,4240,1830,5017,2080,2529,1615,2074,5079,8617,2657,6272,3698,5592,472,1681,7000,3554,6178,1928,3630,5625,4641,8550,6432,7273,6658,4796,8232,5231,6950,5262,1799,1966,4854,7007,5057,7117,3696,7704,3594,8189,6306,7373,3424,1361,11,4508,5071,5545,8034,4347,8455,8086,7044,1256,7940,3739,6263,1644,4742,969,2251,6062,2061,8269,7667,2303,5289,4094,776,3479,4588,3197,7975,3306,175,2006,1007,6792,8383,5287,4092,4891,5562,8046,1686,5858,6575,1689,497,7852,3816,5907,5872,431,1907,1701,1678,1364,2381,963,7196,8412,4791,4239,7302,3373,1391,3346,1266,3798,1715,4478,535,7119,1409,7493,4456,2954,5766,5831,5529,5706,1602,5973,5278,913,1569,4922,7288,5349,766,7303,2176,6361,5413,8621,1790,1019,6095,2681,8302,4962,697,4386,4002,222,871,848,8509,89,1649,3538,8583,4032,4731,1895,8425,7849,1243,1074,144,2366,2550,1092,2976,7279,6766,6603,4896,5396,3675,80,8607,7130,7859,1126,7450,7048,6783,7798,3830,5084,1534,7245,4414,5110,968,6762,2934,481,8227,2064,5910,61,6945,4397,6152,932,6704,7992,4474,657,6528,3256,5668,3278,2370,4488,5138,1184,6807,7934,789,6303,7035,531,8330,6462,7568,4921,2701,548,586,8441,5062,6331,2861,6190,392,2018,2992,3174,2928,3963,7913,3014,7392,1130,3133,6666,5993,1643,2362,5754,3703,716,5028,8194,5437,5698,851,2781,1353,5365,4096,5265,2476,7191,1728,5272,1910,287,7329,71,2614,1067,5100,7772,590,3221,7359,4955,2180,3163,3559,722,7403,8108,6483,7552,7123,3881,8236,3431,1188,3498,8625,26,2140,683,2768,106,8668,1510,6730,783,8163,6038,8605,3077,6063,6036,7659,3157,3918,6800,5173,2239,2048,148,727,6981,5321,2031,6931,2075,1773,1822,4971,6995,985,3762,6825,4786,3695,1784,7779,7641,7269,1023,2097,2825,3109,8185,4197,6363,7009,4107,2148,2105,6543,7578,2873,4129,8613,189,3576,2420,2949,1993,8732,4722,4269,8433,1577,2634,8283,8184,7461,8757,6611,8680,6459,1430,2714,4086,5306,692,3229,4802,6791,8557,2575,1530,7185,1492,2199,1392,6146,5620,299,5763,1718,4820,6554,5636,3086,130,2334,1202,3658,5333,2955,724,5193,658,4832,5293,5082,2392,6512,8320,7103,8275,276,2842,2298,1670,8719,7340,6422,5724,5305,8297,3840,1358,7635,4794,133,7216,1333,5235,8393,5331,5170,6865,7980,6529,2177,4887,4746,7353,1125,6722,3012,4640,1275,1696,8308,802,6426,6325,3381,2694,4881,1638,4490,941,2144,6681,3811,8443,3237,6988,609,3102,7742,134,6441,476,6785,5077,6052,8342,5690,1086,2112,2131,547,1467,1859,5761,4838,2721,6678,501,4106,8436,8548,4207,1546,4706,5841,4403,2646,7966,3405,2793,7883,6345,4886,6008,1778,5074,7961,138,2680,5469,6701,7413,861,6850,649,8656,5633,6375,4462,3779,2796,1909,3869,2302,451,3094,5318,6688,8316,6323,3266,6698,3606,7305,1869,4790,8533,4831,2,2383,7844,1233,4023,7206,2220,8106,6197,6184,5268,8476,6855,509,3886,2757,7063,6572,785,843,3740,3716,5010,7040,5009,2770,3011,8199,1705,1394,4467,4668,4933,4434,6841,757,7241,5874,3318,3311,8144,6555,81,504,7796,2886,6189,4064,5336,4882,7782,2919,3171,16,5019,6485,4196,2022,3068,1975,5132,4885,8067,4363,2344,7870,3616,6765,1415,3940,1789,2534,3615,8335,2663,2501,7932,1020,2001,5453,3637,6779,5819,3490,17,5540,8381,3758,5830,3574,1787,1937,8447,6994,6642,3795,4804,6158,2291,749,38,4413,6451,4401,6604,1579,7308,7415,1653,3753,2000,3878,4200,8628,5443,8278,4124,1680,5334,6136,7011,7213,7111,6888,386,3700,3037,7705,6605,6256,2282,2906,6970,34,1101,1916,6778,8746,5612,6774,1362,5829,2926,7244,6431,2894,6169,2217,1675,1234,849,3587,1756,6006,7051,2780,2414,5951,3960,4511,3950,8631,116,2786,5814,7286,3061,5603,1343,5389,4991,812,3426,6016,2473,855,82,5892,4846,5671,5854,7881,7090,6175,5898,7974,719,3894,6208,4074,4385,7592,3116,347,873,6475,355,3801,1721,5372,8015,1475,6043,4784,2165,5196,1639,381,1891,8096,5685,385,2644,6219,760,8248,6746,4043,1406,4030,8562,2851,5912,8610,8237,8259,3088,7999,3254,5974,2544,2384,7001,7566,4326,2299,6655,5407,5029,5116,7684,7579,5845,4069,5843,372,470,2578,7729,1613,6532,5663,298,2811,3352,6664,4118,5550,6811,8709,1770,7621,7477,6946,4525,4743,6486,7146,7644,4581,2234,2385,7536,3966,810,4186,5038,326,2917,6917,4195,6255,7104,1750,1104,856,7270,437,7249,7434,7108,6879,6737,8087,555,4760,2404,7575,5813,2453,377,4409,6191,2523,2125,3425,8511,8648,996,5281,4779,5568,2857,3353,436,6608,1843,145,8299,3029,1004,7686,2163,1566,5575,2254,4057,8270,3284,1880,759,912,7799,2918,4447,1885,3167,2322,258,3763,2580,5416,8493,7169,7650,1856,725,1713,7455,3660,3982,7186,5647,6415,8396,2380,8403,901,6844,3345,5752,6018,7680,7661,7397,6187,50,459,834,2503,6128,3652,3379,125,4366,7553,5146,6339,1084,4948,4062,1543,3944,6385,3588,3052,8180,249,931,329,2542,4253,7671,7234,7264,5068,959,7785,5882,3843,3196,5913,1742,8197,6840,5273,2866,6368,7059,1005,2306,1636,2712,1771,4925,1459,773,3251,5753,191,1553,5358,5338,1501,5511,7531,6649,5128,3581,7483,1434,2328,164,825,5990,1978,3368,3079,6427,5004,7548,1235,8634,6739,4927,5725,3176,6232,1767,3049,2342,4204,7754,3792,7609,1826,3312,7433,6484,8514,1116,7129,6211,2108,2569,7850,1695,1580,3853,7442,2682,6467,5476,8295,7447,5617,4616,6262,3168,8354,5067,3931,5714,4445,3396,1896,5325,3911,7918,8023,3553,2540,477,5594,1957,7408,424,6469,1091,5977,1962,6934,5944,8733,3709,8328,6223,6557,2191,4083,1708,483,8659,4595,3774,2993,3337,6530,4651,2922,5496,5270,6478,2304,1193,6631,523,7355,2651,7665,335,6230,6046,8028,3329,349,5228,880,2489,1933,1948,5597,1179,7315,8714,2150,1146,6463,2355,3984,4220,4001,3190,8102,1142,3961,1943,7482,7829,6915,4420,1336,8599,1485,7964,5785,1133,924,4655,928,5000,7204,8536,5005,3727,5567,6439,8720,8092,8500,6566,6124,2799,1012,8469,8154,5521,2691,7046,5286,5871,5282,357,1000,6338,4521,6534,3039,3932,2771,3281,698,7501,213,4081,7,5222,2042,1150,8530,1829,1702,1371,2620,4675,7280,5533,8463,4877,8344,5280,487,6180,1848,7152,7323,4994,99,681,3330,6689,5164,5804,3403,2221,8192,2905,7651,1069,3045,4515,1290,1823,2980,6176,2551,140,3228,4389,6801,5348,4944,2677,6910,3451,3097,1011,4807,1402,3291,3710,2547,6821,591,6861,6378,8574,6908,7984,3073,8003,5670,260,8520,7346,1037,1642,3445,799,3059,5151,7965,7633,6073,1645,648,4487,2945,57,5253,1699,5791,8397,8196,7736,5608,5297,8568,1797,1482,5274,3007,2441,1893,1163,1006,976,2998,1273,7546,7404,3347,7168,8521,239,8310,2401,7664,2265,7443,1476,5250,7759,7366,7174,3188,4878,6127,1921,6926,1446,3249,2820,3711,1024,7692,5503,7663,5686,3916,5748,7797,4391,8561,1228,5747,4945,2378,7465,8442,56,183,4173,3273,4936,7381,2274,895,2174,906,1405,6579,7897,64,7510,8635,245,7261,3401,8413,1967,1757,4976,2339,5484,7837,6750,6979,1499,8687,1794,2715,5422,3958,6610,6559,7864,1021,6042,572,546,3974,2736,4342,2961,2837,257,5456,1755,7188,6571,5467,1384,8532,863,5350,746,6803,4817,1987,8418,6597]} \ No newline at end of file diff --git a/src/core/reopt_multinode.jl b/src/multinode/reopt_multinode.jl similarity index 74% rename from src/core/reopt_multinode.jl rename to src/multinode/reopt_multinode.jl index a41a80a35..c98c4d720 100644 --- a/src/core/reopt_multinode.jl +++ b/src/multinode/reopt_multinode.jl @@ -2,7 +2,7 @@ function add_variables!(m::JuMP.AbstractModel, ps::AbstractVector{REoptInputs{T}}) where T <: AbstractScenario - + print(" Adding variables\n") dvs_idx_on_techs = String[ "dvSize", "dvPurchaseSize", @@ -16,10 +16,12 @@ function add_variables!(m::JuMP.AbstractModel, ps::AbstractVector{REoptInputs{T} "dvStorageEnergy", ] dvs_idx_on_storagetypes_time_steps = String[ - "dvDischargeFromStorage" + "dvDischargeFromStorage", + "dvStorageToGrid" ] for p in ps _n = string("_", p.s.site.node) + for dv in dvs_idx_on_techs x = dv*_n m[Symbol(x)] = @variable(m, [p.techs.all], base_name=x, lower_bound=0) @@ -31,13 +33,14 @@ function add_variables!(m::JuMP.AbstractModel, ps::AbstractVector{REoptInputs{T} end for dv in dvs_idx_on_storagetypes - x = dv*_n + x = dv*_n m[Symbol(x)] = @variable(m, [p.s.storage.types.elec], base_name=x, lower_bound=0) - end + end for dv in dvs_idx_on_storagetypes_time_steps - x = dv*_n + x = dv*_n m[Symbol(x)] = @variable(m, [p.s.storage.types.all, p.time_steps], base_name=x, lower_bound=0) + # add in the definition end dv = "dvGridToStorage"*_n @@ -61,7 +64,20 @@ function add_variables!(m::JuMP.AbstractModel, ps::AbstractVector{REoptInputs{T} dv = "MinChargeAdder"*_n m[Symbol(dv)] = @variable(m, base_name=dv, lower_bound=0) - if !isempty(p.s.electric_tariff.export_bins) + dv = "dvFuelUsage"*_n + m[Symbol(dv)] = @variable(m, [p.techs.gen, 0:p.time_steps[end]], base_name=dv, lower_bound=0) + + dv = "binGenIsOnInTS"*_n + m[Symbol(dv)] = @variable(m, [p.techs.gen, 0:p.time_steps[end]], base_name=dv, lower_bound=0) + + #if !isempty(p.s.storage.types.elec_no_simultaneous_charge_discharge) + # @warn "Adding binary variable to prevent simultaneous battery charge/discharge. Some solvers are very slow with integer variables." + #end + + #dv = "binBattCharging"*_n + #m[Symbol(dv)] = @variable(m, [p.s.storage.types.elec_no_simultaneous_charge_discharge, p.time_steps], base_name=dv, Bin) + + if !isempty(p.s.electric_tariff.export_bins) dv = "dvProductionToGrid"*_n m[Symbol(dv)] = @variable(m, [p.techs.elec, p.s.electric_tariff.export_bins, p.time_steps], base_name=dv, lower_bound=0) end @@ -84,7 +100,23 @@ function add_variables!(m::JuMP.AbstractModel, ps::AbstractVector{REoptInputs{T} ex_name = "TotalPerUnitProdOMCosts"*_n m[Symbol(ex_name)] = 0 - + + ex_name = "TotalFuelCosts"*_n + m[Symbol(ex_name)] = 0 + + ex_name = "TotalFuelCosts" + m[Symbol(ex_name)] = 0 + + if !isempty(p.techs.gen) + add_gen_constraints(m, p; _n = _n ) + m[Symbol("TotalPerUnitProdOMCosts"*_n)] += m[Symbol("TotalGenPerUnitProdOMCosts"*_n)] + m[Symbol("TotalFuelCosts"*_n)] += m[Symbol("TotalGenFuelCosts"*_n)] + end + + if !isempty(p.s.electric_tariff.export_bins) + add_export_constraints(m, p; _n=_n) + end + add_elec_utility_expressions(m, p; _n=_n) ################################# Objective Function ######################################## @@ -95,9 +127,14 @@ function add_variables!(m::JuMP.AbstractModel, ps::AbstractVector{REoptInputs{T} ## Fixed O&M, tax deductible for owner m[Symbol("TotalPerUnitSizeOMCosts"*_n)] * (1 - p.s.financial.owner_tax_rate_fraction) + - + + # Production O&M cost and fuel costs + m[Symbol("TotalFuelCosts"*_n)] + + m[Symbol("TotalPerUnitProdOMCosts"*_n)] + + # Utility Bill, tax deductible for offtaker, including export benefit m[Symbol("TotalElecBill"*_n)] * (1 - p.s.financial.offtaker_tax_rate_fraction) + ); end end @@ -105,31 +142,26 @@ end function build_reopt!(m::JuMP.AbstractModel, ps::AbstractVector{REoptInputs{T}}) where T <: AbstractScenario add_variables!(m, ps) - @warn "Outages are not currently modeled in multinode mode." - @warn "Diesel generators are not currently modeled in multinode mode." - @warn "Emissions and renewable energy fractions are not currently modeling in multinode mode." + @warn "Emissions and renewable energy fractions are not currently modeled in multinode mode." + for p in ps _n = string("_", p.s.site.node) - - for b in p.s.storage.types.all + + for b in p.s.storage.types.all if p.s.storage.attr[b].max_kw == 0 || p.s.storage.attr[b].max_kwh == 0 - @constraint(m, [ts in p.time_steps], m[Symbol("dvStoredEnergy"*_n)][b, ts] == 0) + @info "\n For node $(_n), the storage input size was 0 kW or 0 kWh, so the battery will not be used" + @constraint(m, [ts in p.time_steps], m[Symbol("dvStoredEnergy"*_n)][b, ts] == 0) @constraint(m, m[Symbol("dvStorageEnergy"*_n)][b] == 0) @constraint(m, m[Symbol("dvStoragePower"*_n)][b] == 0) @constraint(m, [t in p.techs.elec, ts in p.time_steps_with_grid], m[Symbol("dvProductionToStorage"*_n)][b, t, ts] == 0) @constraint(m, [ts in p.time_steps], m[Symbol("dvDischargeFromStorage"*_n)][b, ts] == 0) @constraint(m, [ts in p.time_steps], m[Symbol("dvGridToStorage"*_n)][b, ts] == 0) - else - add_storage_size_constraints(m, p, b; _n=_n) - add_general_storage_dispatch_constraints(m, p, b; _n=_n) - if b in p.s.storage.types.elec - add_elec_storage_dispatch_constraints(m, p, b; _n=_n) - elseif b in p.s.storage.types.hot - add_hot_thermal_storage_dispatch_constraints(m, p, b; _n=_n) - elseif b in p.s.storage.types.cold - add_cold_thermal_storage_dispatch_constraints(m, p, b; _n=_n) - end + @constraint(m, [ts in p.time_steps], m[Symbol("dvStorageToGrid"*_n)][b,ts] == 0) + else + add_storage_size_constraints(m, p, b; _n=_n) + add_general_storage_dispatch_constraints(m, p, b; _n=_n) + add_elec_storage_dispatch_constraints(m, p, b; _n=_n) end end @@ -137,21 +169,21 @@ function build_reopt!(m::JuMP.AbstractModel, ps::AbstractVector{REoptInputs{T}}) add_storage_sum_grid_constraints(m, p; _n=_n) end - add_production_constraints(m, p; _n=_n) - if !isempty(p.techs.all) add_tech_size_constraints(m, p; _n=_n) if !isempty(p.techs.no_curtail) add_no_curtail_constraints(m, p; _n=_n) end end - - add_elec_load_balance_constraints(m, p; _n=_n) - - if !isempty(p.s.electric_tariff.export_bins) - add_export_constraints(m, p; _n=_n) - end - + + # Only apply the load balance constraint to nodes that aren't the facility meter node. The facility meter node may be used as a meter for the multinode network, so the "grid_import" is set to the power flow through the line upstream of that node + if string(p.s.site.node) != p.s.settings.facilitymeter_node + add_elec_load_balance_constraints(m, p; _n=_n) + add_production_constraints(m, p; _n=_n) + else + print("\n Not applying the REopt load balance constraint to the node $(_n) because it is the facility meter node. No technologies should be applied to it. \n") + end + if !isempty(p.s.electric_tariff.monthly_demand_rates) add_monthly_peak_constraint(m, p; _n=_n) end diff --git a/src/results/electric_storage.jl b/src/results/electric_storage.jl index ef07eb48c..a6cfbd0de 100644 --- a/src/results/electric_storage.jl +++ b/src/results/electric_storage.jl @@ -44,9 +44,14 @@ function add_electric_storage_results(m::JuMP.AbstractModel, p::REoptInputs, d:: end r["residual_value"] = value(m[:residual_value]) end + + BattExport = (m[Symbol("dvStorageToGrid"*_n)][b, ts] for ts in p.time_steps) + r["storage_to_grid_series_kw"] = round.(value.(BattExport), digits = 3) + else r["soc_series_fraction"] = [] r["storage_to_load_series_kw"] = [] + r["storage_to_grid_series_kw"] = [] end d[b] = r diff --git a/src/results/financial.jl b/src/results/financial.jl index 9f40459fc..919cf803d 100644 --- a/src/results/financial.jl +++ b/src/results/financial.jl @@ -61,9 +61,9 @@ function add_financial_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _ r["lifecycle_storage_capital_costs"] = value(m[Symbol("TotalStorageCapCosts"*_n)]) # Storage capital costs (including replacements) r["lifecycle_om_costs_after_tax"] = r["lifecycle_om_costs_before_tax"] * (1 - p.s.financial.owner_tax_rate_fraction) # Fixed & Variable O&M if !isempty(p.techs.fuel_burning) - r["lifecycle_fuel_costs_after_tax"] = value(m[:TotalFuelCosts]) * (1 - p.s.financial.offtaker_tax_rate_fraction) - else - r["lifecycle_fuel_costs_after_tax"] = 0.0 + r["lifecycle_fuel_costs_after_tax"] = value(m[Symbol("TotalFuelCosts"*_n)]) * (1 - p.s.financial.offtaker_tax_rate_fraction) + else + r["lifecycle_fuel_costs_after_tax"] = 0.0 end if !(Symbol("TotalCHPStandbyCharges"*_n) in keys(m.obj_dict)) # CHP standby charges not currently included in multi-node modeling m[Symbol("TotalCHPStandbyCharges"*_n)] = 0.0 diff --git a/src/results/generator.jl b/src/results/generator.jl index ec9c2efb7..7c7085df1 100644 --- a/src/results/generator.jl +++ b/src/results/generator.jl @@ -25,45 +25,45 @@ function add_generator_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _ r = Dict{String, Any}() - GenPerUnitSizeOMCosts = @expression(m, p.third_party_factor * p.pwf_om * sum(m[:dvSize][t] * p.om_cost_per_kw[t] for t in p.techs.gen)) + GenPerUnitSizeOMCosts = @expression(m, p.third_party_factor * p.pwf_om * sum(m[Symbol("dvSize"*_n)][t] * p.om_cost_per_kw[t] for t in p.techs.gen)) GenPerUnitProdOMCosts = @expression(m, p.third_party_factor * p.pwf_om * p.hours_per_time_step * - sum(m[:dvRatedProduction][t, ts] * p.production_factor[t, ts] * p.s.generator.om_cost_per_kwh + sum(m[Symbol("dvRatedProduction"*_n)][t, ts] * p.production_factor[t, ts] * p.s.generator.om_cost_per_kwh for t in p.techs.gen, ts in p.time_steps) ) - r["size_kw"] = round(value(sum(m[:dvSize][t] for t in p.techs.gen)), digits=2) + r["size_kw"] = round(value(sum(m[Symbol("dvSize"*_n)][t] for t in p.techs.gen)), digits=2) r["lifecycle_fixed_om_cost_after_tax"] = round(value(GenPerUnitSizeOMCosts) * (1 - p.s.financial.owner_tax_rate_fraction), digits=0) - r["lifecycle_variable_om_cost_after_tax"] = round(value(m[:TotalPerUnitProdOMCosts]) * (1 - p.s.financial.owner_tax_rate_fraction), digits=0) - r["lifecycle_fuel_cost_after_tax"] = round(value(m[:TotalGenFuelCosts]) * (1 - p.s.financial.offtaker_tax_rate_fraction), digits=2) - r["year_one_fuel_cost_before_tax"] = round(value(m[:TotalGenFuelCosts]) / p.pwf_fuel["Generator"], digits=2) + r["lifecycle_variable_om_cost_after_tax"] = round(value(m[Symbol("TotalPerUnitProdOMCosts"*_n)]) * (1 - p.s.financial.owner_tax_rate_fraction), digits=0) + r["lifecycle_fuel_cost_after_tax"] = round(value(m[Symbol("TotalGenFuelCosts"*_n)]) * (1 - p.s.financial.offtaker_tax_rate_fraction), digits=2) + r["year_one_fuel_cost_before_tax"] = round(value(m[Symbol("TotalGenFuelCosts"*_n)]) / p.pwf_fuel["Generator"], digits=2) r["year_one_variable_om_cost_before_tax"] = round(value(GenPerUnitProdOMCosts) / (p.pwf_om * p.third_party_factor), digits=0) r["year_one_fixed_om_cost_before_tax"] = round(value(GenPerUnitSizeOMCosts) / (p.pwf_om * p.third_party_factor), digits=0) if !isempty(p.s.storage.types.elec) generatorToBatt = @expression(m, [ts in p.time_steps], - sum(m[:dvProductionToStorage][b, t, ts] for b in p.s.storage.types.elec, t in p.techs.gen)) + sum(m[Symbol("dvProductionToStorage"*_n)][b, t, ts] for b in p.s.storage.types.elec, t in p.techs.gen)) else - generatorToBatt = zeros(length(p.time_steps)) + generatorToBatt = zeros(length(p.time_steps)) end r["electric_to_storage_series_kw"] = round.(value.(generatorToBatt), digits=3) generatorToGrid = @expression(m, [ts in p.time_steps], - sum(m[:dvProductionToGrid][t, u, ts] for t in p.techs.gen, u in p.export_bins_by_tech[t]) + sum(m[Symbol("dvProductionToGrid"*_n)][t, u, ts] for t in p.techs.gen, u in p.export_bins_by_tech[t]) ) r["electric_to_grid_series_kw"] = round.(value.(generatorToGrid), digits=3) generatorToLoad = @expression(m, [ts in p.time_steps], - sum(m[:dvRatedProduction][t, ts] * p.production_factor[t, ts] * p.levelization_factor[t] + sum(m[Symbol("dvRatedProduction"*_n)][t, ts] * p.production_factor[t, ts] * p.levelization_factor[t] for t in p.techs.gen) - generatorToBatt[ts] - generatorToGrid[ts] ) r["electric_to_load_series_kw"] = round.(value.(generatorToLoad), digits=3) - GeneratorFuelUsed = @expression(m, sum(m[:dvFuelUsage][t, ts] for t in p.techs.gen, ts in p.time_steps) / p.s.generator.fuel_higher_heating_value_kwh_per_gal) + GeneratorFuelUsed = @expression(m, sum(m[Symbol("dvFuelUsage"*_n)][t, ts] for t in p.techs.gen, ts in p.time_steps) / p.s.generator.fuel_higher_heating_value_kwh_per_gal) r["annual_fuel_consumption_gal"] = round(value(GeneratorFuelUsed), digits=2) AverageGenProd = @expression(m, - p.hours_per_time_step * sum(m[:dvRatedProduction][t,ts] * p.production_factor[t, ts] * + p.hours_per_time_step * sum(m[Symbol("dvRatedProduction"*_n)][t,ts] * p.production_factor[t, ts] * p.levelization_factor[t] for t in p.techs.gen, ts in p.time_steps) ) diff --git a/src/results/pv.jl b/src/results/pv.jl index 4c5774faa..d053a1bb5 100644 --- a/src/results/pv.jl +++ b/src/results/pv.jl @@ -45,7 +45,7 @@ function add_pv_results(m::JuMP.AbstractModel, p::REoptInputs, d::Dict; _n="") r["annual_energy_exported_kwh"] = 0.0 if !isempty(p.s.electric_tariff.export_bins) PVtoGrid = @expression(m, [ts in p.time_steps], - sum(m[:dvProductionToGrid][t, u, ts] for u in p.export_bins_by_tech[t])) + sum(m[Symbol("dvProductionToGrid"*_n)][t, u, ts] for u in p.export_bins_by_tech[t])) r["electric_to_grid_series_kw"] = round.(value.(PVtoGrid), digits=3).data r["annual_energy_exported_kwh"] = round( diff --git a/src/results/results.jl b/src/results/results.jl index 9b79d13a8..1a0d2fe9f 100644 --- a/src/results/results.jl +++ b/src/results/results.jl @@ -47,9 +47,9 @@ function reopt_results(m::JuMP.AbstractModel, p::REoptInputs; _n="") time_elapsed = time() - tstart @debug "Base results processing took $(round(time_elapsed, digits=3)) seconds." - if !isempty(p.techs.gen) && isempty(_n) # generators not included in multinode model - tstart = time() - add_generator_results(m, p, d) + if !isempty(p.techs.gen) + tstart = time() + add_generator_results(m, p, d; _n) time_elapsed = time() - tstart @debug "Generator results processing took $(round(time_elapsed, digits=3)) seconds." end diff --git a/test/Manifest.toml b/test/Manifest.toml new file mode 100644 index 000000000..b29eb7737 --- /dev/null +++ b/test/Manifest.toml @@ -0,0 +1,497 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.8.5" +manifest_format = "2.0" +project_hash = "9ccf56466bcd305fca27b2c2c2ce6d8348655628" + +[[deps.ArnoldiMethod]] +deps = ["LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "d57bd3762d308bded22c3b82d033bff85f6195c6" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.4.0" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BenchmarkTools]] +deps = ["Compat", "JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "e38fbc49a620f5d0b660d7f543db1009fe0f8336" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.6.0" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1b96ea4a01afe0ea4090c5c8039690672dd13f2e" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.9+0" + +[[deps.CSV]] +deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] +git-tree-sha1 = "deddd8725e5e1cc49ee205a1964256043720a6c3" +uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +version = "0.10.15" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "1713c74e00545bfe14605d2a2be1712de8fbcb58" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.25.1" + +[[deps.ChangesOfVariables]] +deps = ["InverseFunctions", "LinearAlgebra", "Test"] +git-tree-sha1 = "799b25ca3a8a24936ae7b5c52ad194685fc3e6ef" +uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" +version = "0.1.9" + +[[deps.CodecBzip2]] +deps = ["Bzip2_jll", "TranscodingStreams"] +git-tree-sha1 = "84990fa864b7f2b4901901ca12736e45ee79068c" +uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" +version = "0.8.5" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.8" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools"] +git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.1" + +[[deps.Compat]] +deps = ["Dates", "LinearAlgebra", "TOML", "UUIDs"] +git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.16.0" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.1+0" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.20" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.DotEnv]] +deps = ["PrecompileTools"] +git-tree-sha1 = "92e88cb68a5b10545234f46dfaeb2fa8a8a50c45" +uuid = "4dc1fcf4-5e3b-5448-94ab-0c38ec0385c1" +version = "1.0.0" + +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] +git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.8.3" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Test"] +git-tree-sha1 = "2ec417fc319faa2d768621085cc1feebbdee686b" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.23" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"] +git-tree-sha1 = "a2df1b776752e3f344e5116c06d75a10436ab853" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.38" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.Glob]] +git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" +uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" +version = "1.3.1" + +[[deps.Graphs]] +deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "1dc470db8b1131cfc7fb4c115de89fe391b9e780" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.12.0" + +[[deps.HiGHS]] +deps = ["HiGHS_jll", "MathOptInterface", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "b07cf87cb3bcbd65d1d3fcf4143d4a44abe33d20" +uuid = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" +version = "1.13.0" + +[[deps.HiGHS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "26694f04567e584b054b9f33a810cec52adafa38" +uuid = "8fd58aa0-07eb-5a78-9b36-339c94fd15ea" +version = "1.9.0+0" + +[[deps.Inflate]] +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.5" + +[[deps.InfrastructureModels]] +deps = ["JuMP", "Memento"] +git-tree-sha1 = "f9c1f6bdac8ad3fca6fc24fcf68256958ad84c28" +uuid = "2030c09a-7f63-5d83-885d-db604e0e9cc0" +version = "0.7.8" + +[[deps.InlineStrings]] +deps = ["Parsers"] +git-tree-sha1 = "45521d31238e87ee9f9732561bfee12d4eebd52d" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.4.2" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.InverseFunctions]] +deps = ["Dates", "Test"] +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.17" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "e2222959fbc6c19554dc15174c81bf7bf3aa691c" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.4" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "a007feb38b422fbdab534406aeca1b86823cb4d6" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.7.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JSON3]] +deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] +git-tree-sha1 = "1d322381ef7b087548321d3f878cb4c9bd8f8f9b" +uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" +version = "1.14.1" + +[[deps.JuMP]] +deps = ["LinearAlgebra", "MacroTools", "MathOptInterface", "MutableArithmetics", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays"] +git-tree-sha1 = "cf832644f225dbe721bb9b97bf432007765fc695" +uuid = "4076af6c-e467-56ae-b986-b466b2749572" +version = "1.24.0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LogExpFunctions]] +deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.28" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "5d4d2d9904227b8bd66386c1138cf4d5ffa826bf" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "0.4.9" + +[[deps.MacroTools]] +git-tree-sha1 = "72aebe0b5051e5143a079a4685a46da330a40472" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.15" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MathOptInterface]] +deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON3", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] +git-tree-sha1 = "cfc8c22e3b0157430fc80eb6ef46546483356ea9" +uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +version = "1.36.0" + +[[deps.Memento]] +deps = ["Dates", "Distributed", "Requires", "Serialization", "Sockets", "Test", "UUIDs"] +git-tree-sha1 = "bb2e8f4d9f400f6e90d57b34860f6abdc51398e5" +uuid = "f28f55f0-a522-5efc-85c2-fe41dfb9b2d9" +version = "1.4.1" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "9c0bc309df575c85422232eedfb74d5a9c155401" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "1.6.3" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "030ea22804ef91648f29b7ad3fc15fa49d0e6e71" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.3" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.20+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1346c9208249809840c91b26703912dff463d335" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.6+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "cc4054e898b852042d7b503313f7ad03de99c3dd" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.8.0" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.PolyhedralRelaxations]] +deps = ["DataStructures", "ForwardDiff", "JuMP", "Logging", "LoggingExtras"] +git-tree-sha1 = "05f2adc696ae9a99be3de99dd8970d00a4dccefe" +uuid = "2e741578-48fa-11ea-2d62-b52c946f73a0" +version = "0.3.5" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.3" + +[[deps.PowerModelsDistribution]] +deps = ["CSV", "Dates", "FilePaths", "Glob", "Graphs", "InfrastructureModels", "JSON", "JuMP", "LinearAlgebra", "Logging", "LoggingExtras", "PolyhedralRelaxations", "SparseArrays", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "0fd46ba894971c0de0237296074b90a9c474618e" +uuid = "d7431456-977f-11e9-2de3-97ff7677985e" +version = "0.16.0" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.1" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.3" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "712fb0231ee6f9120e005ccd56297abbc053e7e0" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.8" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SparseArrays]] +deps = ["LinearAlgebra", "Random"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SpecialFunctions]] +deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "64cca0c26b4f31ba18f13f6c12af7c85f478cfde" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.5.0" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "e3be13f448a43610f978d29b7adf78c76022467a" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.12" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.3" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[deps.StructTypes]] +deps = ["Dates", "UUIDs"] +git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8" +uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" +version = "1.11.0" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.0" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.12.0" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.11.3" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.WeakRefStrings]] +deps = ["DataAPI", "InlineStrings", "Parsers"] +git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" +uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" +version = "1.4.2" + +[[deps.WorkerUtilities]] +git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" +uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" +version = "1.6.1" + +[[deps.Xpress]] +deps = ["Libdl", "MathOptInterface"] +git-tree-sha1 = "f48ea69baa747f63b0d08c89ce7bc38d8ef62bd4" +uuid = "9e70acf3-d6c9-5be6-b5bd-4e2c73e3e054" +version = "0.17.1" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.12+3" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl", "OpenBLAS_jll"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.1.1+0" diff --git a/test/Project.toml b/test/Project.toml index 066554eb4..75c86f290 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -5,6 +5,7 @@ HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" +PowerModelsDistribution = "d7431456-977f-11e9-2de3-97ff7677985e" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Xpress = "9e70acf3-d6c9-5be6-b5bd-4e2c73e3e054" diff --git a/test/data/multinode_powerflow_network.dss b/test/data/multinode_powerflow_network.dss new file mode 100644 index 000000000..e814b9a22 --- /dev/null +++ b/test/data/multinode_powerflow_network.dss @@ -0,0 +1,32 @@ +clear + +Set DefaultBaseFrequency = 60 + +New object=circuit.OptimizationCircuit +~ basekv=22.7 pu=1.0 r1=0.001 x1=0.01 r0=0.001 x0=0.01 !basekv=22.7 ISC3=629276 ISC1=1048 +~ baseMVA=1 + +! LineCodes +New linecode.410Amp nphases=1 R1=0.057 X1=0.855 R0=0.0 X0=0.0 C1=0 C0=0 Units=kft normamps=3000 emergamps=3000 !rmatrix = [1.2] xmatrix = [.001] + +! Transformers +New Transformer.1b phases=1 Buses=[2 3] kVs=[22.7 4.16] kVAs=[1000 1000] Conns=[Wye Wye] %rs=[0 0] %LoadLoss=0.01 !The 2-element vectors have one value for each winding + +! Loads (note: Don't apply a load to REopt's facility meter node) +New Load.Load4 Phases=1 Bus1=4.1 kV=4.16 kW=1.0 PF=0.95 +New Load.Load5 Phases=1 Bus1=5.1 kV=4.16 kW=1.0 PF=0.95 +New Load.Load6 Phases=1 Bus1=6.1 kV=4.16 kW=1.0 PF=0.95 +New Load.Load7 Phases=1 Bus1=7.1 kV=4.16 kW=1.0 PF=0.95 + +! Lines +New Line.line0_1 Phases=1 Bus1=sourcebus Bus2=1 LineCode=410Amp Length=0.1 Units=kft +New Line.line1_2 Phases=1 Bus1=1 Bus2=2 LineCode=410Amp Length=0.1 Units=kft +New Line.line3_4 Phases=1 Bus1=3 Bus2=4 LineCode=410Amp Length=0.1 Units=kft +New Line.line4_5 Phases=1 Bus1=4 Bus2=5 LineCode=410Amp Length=0.1 Units=kft +New Line.line4_6 Phases=1 Bus1=4 Bus2=6 LineCode=410Amp Length=0.1 Units=kft +New Line.line4_7 Phases=1 Bus1=4 Bus2=7 LineCode=410Amp Length=0.1 Units=kft + +Set Tolerance=0.03 + +Set voltagebases=[22.7 4.16] + diff --git a/test/runtests.jl b/test/runtests.jl index 8cd312196..d8f16a899 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -10,6 +10,7 @@ using Random using DelimitedFiles using Logging Random.seed!(42) +using PowerModelsDistribution if "Xpress" in ARGS @testset "test_with_xpress" begin @@ -27,7 +28,7 @@ else # run HiGHS tests logger = SimpleLogger() results = nothing with_logger(logger) do - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(model, "./scenarios/simultaneous_charge_discharge.json") end @test any(.&( @@ -44,6 +45,7 @@ else # run HiGHS tests ) ) ā‰ˆ false end + @testset "hybrid profile" begin electric_load = REopt.ElectricLoad(; blended_doe_reference_percents = [0.2, 0.2, 0.2, 0.2, 0.2], @@ -125,7 +127,7 @@ else # run HiGHS tests end @testset "January Export Rates" begin - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) data = JSON.parsefile("./scenarios/monthly_rate.json") # create wholesale_rate with compensation in January > retail rate @@ -144,14 +146,14 @@ else # run HiGHS tests end @testset "Blended tariff" begin - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(model, "./scenarios/no_techs.json") @test results["ElectricTariff"]["year_one_energy_cost_before_tax"] ā‰ˆ 1000.0 @test results["ElectricTariff"]["year_one_demand_cost_before_tax"] ā‰ˆ 136.99 end @testset "Solar and Storage" begin - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(model, "./scenarios/pv_storage.json") @test r["PV"]["size_kw"] ā‰ˆ 216.6667 atol=0.01 @@ -162,7 +164,7 @@ else # run HiGHS tests # TODO test MPC with outages @testset "MPC" begin - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_mpc(model, "./scenarios/mpc.json") @test maximum(r["ElectricUtility"]["to_load_series_kw"][1:15]) <= 98.0 @test maximum(r["ElectricUtility"]["to_load_series_kw"][16:24]) <= 97.0 @@ -175,7 +177,7 @@ else # run HiGHS tests @testset "MPC Multi-node" begin # not doing much yet; just testing that two identical sites have the same costs - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) ps = MPCInputs[] push!(ps, MPCInputs("./scenarios/mpc_multinode1.json")); push!(ps, MPCInputs("./scenarios/mpc_multinode2.json")); @@ -183,6 +185,18 @@ else # run HiGHS tests @test r[1]["Costs"] ā‰ˆ r[2]["Costs"] end + @testset "Multinode with power flow" begin + inputs = JSON.parsefile("./scenarios/multinode_powerflow.json") + inputs["PMD_network_input"] = PowerModelsDistribution.parse_file("./data/multinode_powerflow_network.dss") + inputs["optimizer"] = HiGHS.Optimizer + + results, model, model_BAU = REopt.Multinode_Model(inputs) + + @test results["REopt_results"][6]["ElectricStorage"]["size_kw"] ā‰ˆ 22.54 atol=0.01 + @test results["REopt_results"][6]["ElectricStorage"]["size_kwh"] ā‰ˆ 55.34 atol=0.01 + + end + @testset "Complex Incentives" begin """ This test was compared against the API test: @@ -190,7 +204,7 @@ else # run HiGHS tests when using the hardcoded levelization_factor in this package's REoptInputs function. The two LCC's matched within 0.00005%. (The Julia pkg LCC is 1.0971991e7) """ - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(model, "./scenarios/incentives.json") @test results["Financial"]["lcc"] ā‰ˆ 1.096852612e7 atol=1e4 end @@ -199,7 +213,7 @@ else # run HiGHS tests d = JSON.parsefile("scenarios/no_techs.json") d["ElectricLoad"] = Dict("loads_kw" => repeat([1.0], 35040), "year" => 2017) d["Settings"] = Dict("time_steps_per_hour" => 4) - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(model, d) @test results["ElectricLoad"]["annual_calculated_kwh"] ā‰ˆ 8760 end @@ -408,7 +422,7 @@ else # run HiGHS tests ), ) p = REoptInputs(reopt_inputs) - model = Model(optimizer_with_attributes(HiGHS.Optimizer,"output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer,"output_flag" => false, "log_to_console" => false)) results = run_reopt(model, p) simresults = simulate_outages(results, p) @@ -441,7 +455,7 @@ else # run HiGHS tests reopt_inputs = JSON.parsefile("./scenarios/backup_reliability_reopt_inputs.json") reopt_inputs["ElectricLoad"]["annual_kwh"] = 4*reopt_inputs["ElectricLoad"]["annual_kwh"] p = REoptInputs(reopt_inputs) - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(model, p) simresults = simulate_outages(results, p) reliability_inputs = Dict( @@ -629,7 +643,7 @@ else # run HiGHS tests d["HotThermalStorage"]["max_gal"] = 0.0 s = Scenario(d) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, inputs) @test sum(results["ExistingBoiler"]["thermal_to_dhw_load_series_mmbtu_per_hour"]) ā‰ˆ 0.0 atol=0.01 @test sum(results["ExistingBoiler"]["thermal_to_space_heating_load_series_mmbtu_per_hour"]) ā‰ˆ 0.0 atol=0.01 @@ -644,14 +658,14 @@ else # run HiGHS tests @testset "Net Metering Limit and Wholesale" begin #case 1: net metering limit is met by PV d = JSON.parsefile("./scenarios/net_metering.json") - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, d) @test results["PV"]["size_kw"] ā‰ˆ 30.0 atol=1e-3 #case 2: wholesale rate is high, big-M is met d["ElectricTariff"]["wholesale_rate"] = 5.0 d["PV"]["can_wholesale"] = true - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, d) @test results["PV"]["size_kw"] ā‰ˆ 7440.0 atol=1e-3 #max benefit provides the upper bound @@ -659,7 +673,7 @@ else # run HiGHS tests d["ElectricTariff"]["wholesale_rate"] = 0 d["PV"]["min_kw"] = 50 d["Site"]["renewable_electricity_min_fraction"] = 0.35 - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, d) @test sum(results["PV"]["electric_to_grid_series_kw"]) ā‰ˆ 0.0 atol=1e-3 @test results["ElectricTariff"]["lifecycle_export_benefit_after_tax"] ā‰ˆ 0.0 atol=1e-3 @@ -668,7 +682,7 @@ else # run HiGHS tests @testset "Heating loads and addressable load fraction" begin # Default LargeOffice CRB with SpaceHeatingLoad and DomesticHotWaterLoad are served by ExistingBoiler - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, "./scenarios/thermal_load.json") @test round(results["ExistingBoiler"]["annual_fuel_consumption_mmbtu"], digits=0) ā‰ˆ 12904 @@ -685,7 +699,7 @@ else # run HiGHS tests s = Scenario(data) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, inputs) @test round(results["ExistingBoiler"]["annual_fuel_consumption_mmbtu"], digits=0) ā‰ˆ 8760 * (0.5 * 0.6 + 0.5 * 0.8 + 0.3 * 0.7) atol = 1.0 @@ -730,7 +744,7 @@ else # run HiGHS tests data_sizing = JSON.parsefile("./scenarios/chp_sizing.json") s = Scenario(data_sizing) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) results = run_reopt(m, inputs) @test round(results["CHP"]["size_kw"], digits=0) ā‰ˆ 263.0 atol=50.0 @@ -782,7 +796,7 @@ else # run HiGHS tests s = Scenario(data_cost_curve) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt(m, inputs) init_capex_total_expected = init_capex_chp_expected + init_capex_pv_expected @@ -837,7 +851,7 @@ else # run HiGHS tests s = Scenario(data) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt(m, inputs) tot_elec_load = results["ElectricLoad"]["load_series_kw"] @@ -871,7 +885,7 @@ else # run HiGHS tests data["DomesticHotWaterLoad"]["fuel_loads_mmbtu_per_hour"] = repeat([6.0], 8760) data["SpaceHeatingLoad"]["fuel_loads_mmbtu_per_hour"] = repeat([6.0], 8760) #part 1: supplementary firing not used when less efficient than the boiler and expensive - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) s = Scenario(data) inputs = REoptInputs(s) results = run_reopt(m1, inputs) @@ -888,7 +902,7 @@ else # run HiGHS tests data["CHP"]["supplementary_firing_capital_cost_per_kw"] = 10 data["CHP"]["reduces_demand_charges"] = false data["ExistingBoiler"]["efficiency"] = 0.85 - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) s = Scenario(data) inputs = REoptInputs(s) results = run_reopt(m2, inputs) @@ -898,7 +912,7 @@ else # run HiGHS tests end @testset "CHP to Waste Heat" begin - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) d = JSON.parsefile("./scenarios/chp_waste.json") results = run_reopt(m, d) @test sum(results["CHP"]["thermal_curtailed_series_mmbtu_per_hour"]) ā‰ˆ 4174.455 atol=1e-3 @@ -911,8 +925,8 @@ else # run HiGHS tests s = Scenario(input_data) inputs = REoptInputs(s) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) results = run_reopt([m1,m2], inputs) @test abs(results["Financial"]["simple_payback_years"] - 8.12) <= 0.02 end @@ -954,8 +968,8 @@ else # run HiGHS tests "exogenous_inputs" => u ) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt([m1,m2], d) @test (occursin("not supported by the solver", string(r["Messages"]["errors"])) || occursin("REopt scenarios solved either with errors or non-optimal solutions", string(r["Messages"]["errors"]))) # @test Meta.parse(r["FlexibleHVAC"]["purchased"]) === false @@ -964,8 +978,8 @@ else # run HiGHS tests # put in a time varying fuel cost, which should make purchasing the FlexibleHVAC system economical # with flat ElectricTariff the ExistingChiller does not benefit from FlexibleHVAC d["ExistingBoiler"]["fuel_cost_per_mmbtu"] = rand(Float64, (8760))*(50-5).+5; - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) r = run_reopt([m1,m2], d) @test (occursin("not supported by the solver", string(r["Messages"]["errors"])) || occursin("REopt scenarios solved either with errors or non-optimal solutions", string(r["Messages"]["errors"]))) # all of the savings are from the ExistingBoiler fuel costs @@ -975,8 +989,8 @@ else # run HiGHS tests # now increase the FlexibleHVAC installed_cost to the fuel costs savings + 100 and expect that the FlexibleHVAC is not purchased # d["FlexibleHVAC"]["installed_cost"] = fuel_cost_savings + 100 - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) r = run_reopt([m1,m2], d) @test (occursin("not supported by the solver", string(r["Messages"]["errors"])) || occursin("REopt scenarios solved either with errors or non-optimal solutions", string(r["Messages"]["errors"]))) # @test Meta.parse(r["FlexibleHVAC"]["purchased"]) === false @@ -985,8 +999,8 @@ else # run HiGHS tests # add TOU ElectricTariff and expect to benefit from using ExistingChiller intelligently d["ElectricTariff"] = Dict("urdb_label" => "5ed6c1a15457a3367add15ae") - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt([m1,m2], d) @test (occursin("not supported by the solver", string(r["Messages"]["errors"])) || occursin("REopt scenarios solved either with errors or non-optimal solutions", string(r["Messages"]["errors"]))) @@ -1001,8 +1015,8 @@ else # run HiGHS tests # now increase the FlexibleHVAC installed_cost to the fuel costs savings + elec_cost_savings # + 100 and expect that the FlexibleHVAC is not purchased # d["FlexibleHVAC"]["installed_cost"] = fuel_cost_savings + elec_cost_savings + 100 - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt([m1,m2], d) @test (occursin("not supported by the solver", string(r["Messages"]["errors"])) || occursin("REopt scenarios solved either with errors or non-optimal solutions", string(r["Messages"]["errors"]))) # @test Meta.parse(r["FlexibleHVAC"]["purchased"]) === false @@ -1016,7 +1030,7 @@ else # run HiGHS tests check to make sure that PV does NOT export unless the site load is met first for the month of January. =# @testset "Do not allow_simultaneous_export_import" begin - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) data = JSON.parsefile("./scenarios/monthly_rate.json") # create wholesale_rate with compensation in January > retail rate @@ -1064,7 +1078,7 @@ else # run HiGHS tests # p.s.electric_tariff.energy_rates[2*t-1] = 0 # p.s.electric_tariff.energy_rates[2*t] = 10.0 # end - # m = Model(optimizer_with_attributes(Xpress.Optimizer, "OUTPUTLOG" => 0)) + # m = JuMP.Model(optimizer_with_attributes(Xpress.Optimizer, "OUTPUTLOG" => 0)) # results = run_reopt(m, p) # @test results["ElectricStorage"]["size_kw"] ā‰ˆ 11.13 atol=0.05 @@ -1085,8 +1099,8 @@ else # run HiGHS tests end @testset "Solar and ElectricStorage w/BAU and degradation" begin - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) d = JSON.parsefile("scenarios/pv_storage.json"); d["Settings"] = Dict{Any,Any}("add_soc_incentive" => false) results = run_reopt([m1,m2], d) @@ -1107,14 +1121,14 @@ else # run HiGHS tests d = JSON.parsefile("scenarios/pv_storage.json"); d["ElectricStorage"]["model_degradation"] = true - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r_degr = run_reopt(m, d) avg_soc_degr = sum(r_degr["ElectricStorage"]["soc_series_fraction"]) / 8760 @test avg_soc_no_degr > avg_soc_degr # test the replacement strategy ## Cannot test with open source solvers. # d["ElectricStorage"]["degradation"] = Dict("maintenance_strategy" => "replacement") - # m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + # m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) # set_optimizer_attribute(m, "mip_rel_gap", 0.01) # r = run_reopt(m, d) # @test occursin("not supported by the solver", string(r["Messages"]["errors"])) @@ -1128,15 +1142,15 @@ else # run HiGHS tests # test minimum_avg_soc_fraction d["ElectricStorage"]["minimum_avg_soc_fraction"] = 0.72 - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) set_optimizer_attribute(m, "mip_rel_gap", 0.01) r = run_reopt(m, d) @test round(sum(r["ElectricStorage"]["soc_series_fraction"])/8760, digits=2) >= 0.72 end @testset "Outage with Generator, outage simulator, BAU critical load outputs" begin - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) p = REoptInputs("./scenarios/generator.json") results = run_reopt([m1,m2], p) @test results["Generator"]["size_kw"] ā‰ˆ 9.55 atol=0.01 @@ -1151,7 +1165,7 @@ else # run HiGHS tests @testset "Minimize Unserved Load" begin d = JSON.parsefile("./scenarios/outage.json") - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) results = run_reopt(m, d) @test results["Outages"]["expected_outage_cost"] ā‰ˆ 0 atol=0.1 @@ -1165,7 +1179,7 @@ else # run HiGHS tests d["Financial"]["microgrid_upgrade_cost_fraction"] = 0.3 d["PV"]["min_kw"] = 200.0 d["PV"]["max_kw"] = 200.0 - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) results = run_reopt(m, d) @test value(m[:binMGTechUsed]["PV"]) ā‰ˆ 0 @test sum(results["Outages"]["unserved_load_per_outage_kwh"]) ā‰ˆ 24.16 atol=0.1 @@ -1174,25 +1188,25 @@ else # run HiGHS tests Scenario with $0.001/kWh value_of_lost_load_per_kwh, 12x169 hour outages, 1kW load/hour, and min_resil_time_steps = 168 - should meet 168 kWh in each outage such that the total unserved load is 12 kWh =# - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) results = run_reopt(m, "./scenarios/nogridcost_minresilhours.json") @test sum(results["Outages"]["unserved_load_per_outage_kwh"]) ā‰ˆ 12 # testing dvUnserved load, which would output 100 kWh for this scenario before output fix - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) results = run_reopt(m, "./scenarios/nogridcost_multiscenario.json") @test sum(results["Outages"]["unserved_load_per_outage_kwh"]) ā‰ˆ 60 @test results["Outages"]["expected_outage_cost"] ā‰ˆ 485.43270 atol=1.0e-5 #avg duration (3h) * load per time step (10) * present worth factor (16.18109) @test results["Outages"]["max_outage_cost_per_outage_duration"][1] ā‰ˆ 161.8109 atol=1.0e-5 # Scenario with generator, PV, electric storage - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) results = run_reopt(m, "./scenarios/outages_gen_pv_stor.json") @test results["Outages"]["expected_outage_cost"] ā‰ˆ 3.54476923e6 atol=10 @test results["Financial"]["lcc"] ā‰ˆ 8.63559824639e7 rtol=0.001 # Scenario with generator, PV, wind, electric storage - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) results = run_reopt(m, "./scenarios/outages_gen_pv_wind_stor.json") @test value(m[:binMGTechUsed]["Generator"]) ā‰ˆ 1 @test value(m[:binMGTechUsed]["PV"]) ā‰ˆ 1 @@ -1206,8 +1220,8 @@ else # run HiGHS tests input_data = JSON.parsefile("./scenarios/wind_outages.json") s = Scenario(input_data) inputs = REoptInputs(s) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) results = run_reopt([m1,m2], inputs) # Check that supply-to-load is equal to critical load during outages, including wind @@ -1222,7 +1236,7 @@ else # run HiGHS tests end @testset "Multiple Sites" begin - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) ps = [ REoptInputs("./scenarios/pv_storage.json"), REoptInputs("./scenarios/monthly_rate.json"), @@ -1234,7 +1248,7 @@ else # run HiGHS tests @testset verbose=true "Rate Structures" begin @testset "Tiered Energy" begin - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, "./scenarios/tiered_energy_rate.json") @test results["ElectricTariff"]["year_one_energy_cost_before_tax"] ā‰ˆ 2342.88 @test results["ElectricUtility"]["annual_energy_supplied_kwh"] ā‰ˆ 24000.0 atol=0.1 @@ -1250,7 +1264,7 @@ else # run HiGHS tests data["ElectricLoad"]["loads_kw"][8] = 100.0 data["ElectricLoad"]["year"] = 2022 inputs = REoptInputs(Scenario(data)) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, inputs) # Expected result is 100 kW demand for January, 35% of that for all other months and # with 5x other $10.5/kW cold months and 6x $11.5/kW warm months @@ -1270,7 +1284,7 @@ else # run HiGHS tests d["ElectricTariff"]["demand_lookback_months"] = [1,0,0,1,0,0,0,0,0,0,0,1] # Jan, April, Dec d["ElectricTariff"]["blended_annual_energy_rate"] = 0.01 - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(m, REoptInputs(Scenario(d))) monthly_peaks = [300,300,300,400,300,500,300,300,300,300,300,300] # 300 = 400*0.75. Sets peak in all months excpet April and June @@ -1291,7 +1305,7 @@ else # run HiGHS tests d["ElectricTariff"]["blended_annual_energy_rate"] = 0.01 d["ElectricTariff"]["demand_lookback_range"] = 6 - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(m, REoptInputs(Scenario(d))) monthly_peaks = [225, 225, 225, 400, 300, 500, 375, 375, 375, 375, 375, 375] @@ -1301,14 +1315,14 @@ else # run HiGHS tests end @testset "Blended tariff" begin - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(model, "./scenarios/no_techs.json") @test results["ElectricTariff"]["year_one_energy_cost_before_tax"] ā‰ˆ 1000.0 @test results["ElectricTariff"]["year_one_demand_cost_before_tax"] ā‰ˆ 136.99 end @testset "Coincident Peak Charges" begin - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(model, "./scenarios/coincident_peak.json") @test results["ElectricTariff"]["year_one_coincident_peak_cost_before_tax"] ā‰ˆ 15.0 end @@ -1316,7 +1330,7 @@ else # run HiGHS tests @testset "URDB sell rate" begin #= The URDB contains at least one "Customer generation" tariff that only has a "sell" key in the energyratestructure (the tariff tested here) =# - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) p = REoptInputs("./scenarios/URDB_customer_generation.json") results = run_reopt(model, p) @test results["PV"]["size_kw"] ā‰ˆ p.max_sizes["PV"] @@ -1327,7 +1341,7 @@ else # run HiGHS tests logger = SimpleLogger() with_logger(logger) do # Testing a 15-min post with a urdb_response with multiple n_energy_tiers - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.1)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.1)) p = REoptInputs("./scenarios/subhourly_with_urdb.json") results = run_reopt(model, p) @test length(p.s.electric_tariff.export_rates[:WHL]) ā‰ˆ 8760*4 @@ -1354,7 +1368,7 @@ else # run HiGHS tests @testset "Tiered TOU Demand" begin data = JSON.parsefile("./scenarios/tiered_tou_demand.json") - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(model, data) max_demand = data["ElectricLoad"]["annual_kwh"] / 8760 tier1_max = data["ElectricTariff"]["urdb_response"]["demandratestructure"][1][1]["max"] @@ -1365,7 +1379,7 @@ else # run HiGHS tests end # # tiered monthly demand rate TODO: expected results? - # m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + # m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) # data = JSON.parsefile("./scenarios/tiered_energy_rate.json") # data["ElectricTariff"]["urdb_label"] = "59bc22705457a3372642da67" # s = Scenario(data) @@ -1377,7 +1391,7 @@ else # run HiGHS tests d["ElectricTariff"] = Dict( "urdb_label" => "6272e4ae7eb76766c247d469" ) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, d) @test occursin("URDB energy tiers have non-standard units of", string(results["Messages"])) end @@ -1393,7 +1407,7 @@ else # run HiGHS tests end @testset "Wind" begin - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) d = JSON.parsefile("./scenarios/wind.json") results = run_reopt(m, d) @test results["Wind"]["size_kw"] ā‰ˆ 3752 atol=0.1 @@ -1413,12 +1427,12 @@ else # run HiGHS tests TODO: will these discrepancies be addressed once NMIL binaries are added? =# - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) d["Site"]["land_acres"] = 60 # = 2 MW (with 0.03 acres/kW) results = run_reopt(m, d) @test results["Wind"]["size_kw"] == 2000.0 # Wind should be constrained by land_acres - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) d["Wind"]["min_kw"] = 2001 # min_kw greater than land-constrained max should error results = run_reopt(m, d) @test "errors" ∈ keys(results["Messages"]) @@ -1428,8 +1442,8 @@ else # run HiGHS tests @testset "Multiple PVs" begin logger = SimpleLogger() with_logger(logger) do - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt([m1,m2], "./scenarios/multiple_pvs.json") ground_pv = results["PV"][findfirst(pv -> pv["name"] == "ground", results["PV"])] @@ -1450,7 +1464,7 @@ else # run HiGHS tests end @testset "Thermal Energy Storage + Absorption Chiller" begin - model = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + model = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) data = JSON.parsefile("./scenarios/thermal_storage.json") s = Scenario(data) p = REoptInputs(s) @@ -1527,7 +1541,7 @@ else # run HiGHS tests input_data = JSON.parsefile("./scenarios/heat_cool_energy_balance_inputs.json") s = Scenario(input_data) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt(m, inputs) # Annual cooling **thermal** energy load of CRB is based on annual cooling electric energy (from CRB models) and a conditional COP depending on the peak cooling thermal load @@ -1827,8 +1841,8 @@ else # run HiGHS tests input_data["DomesticHotWaterLoad"]["annual_mmbtu"] = 0.5 * 8760 s = Scenario(input_data) inputs = REoptInputs(s) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt([m1,m2], inputs) # BAU boiler loads @@ -1846,7 +1860,7 @@ else # run HiGHS tests ## Scenario 1: Solar, Storage, Fixed Generator post_name = "off_grid.json" post = JSON.parsefile("./scenarios/$post_name") - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) scen = Scenario(post) r = run_reopt(m, scen) @@ -1879,7 +1893,7 @@ else # run HiGHS tests post["ElectricStorage"]["max_kw"] = 0.0 post["Generator"]["min_turn_down_fraction"] = 0.0 - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(m, post) # Test generator outputs @@ -1902,14 +1916,14 @@ else # run HiGHS tests post["ElectricStorage"]["max_kw"] = 0.0 post["Generator"]["min_turn_down_fraction"] = 0.0 - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(m, post) # Test generator outputs - @test typeof(r) == Model # this is true when the model is infeasible + @test typeof(r) == JuMP.Model # this is true when the model is infeasible ### Scenario 3: Indonesia. Wind (custom prod) and Generator only - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01, "presolve" => "on")) post_name = "wind_intl_offgrid.json" post = JSON.parsefile("./scenarios/$post_name") post["ElectricLoad"]["loads_kw"] = [10.0 for i in range(1,8760)] @@ -1982,8 +1996,8 @@ else # run HiGHS tests # Call REopt s = Scenario(input_data) inputs = REoptInputs(s) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt([m1,m2], inputs) ghp_option_chosen = results["GHP"]["ghp_option_chosen"] @@ -2022,7 +2036,7 @@ else # run HiGHS tests ghp_data = JSON.parsefile("scenarios/ghp_urbanopt.json") s = Scenario(ghp_data) ghp_inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt(m, ghp_inputs) ghp_lcc = results["Financial"]["lcc"] ghp_lccc = results["Financial"]["lifecycle_capital_costs"] @@ -2045,7 +2059,7 @@ else # run HiGHS tests ghx_data = JSON.parsefile("scenarios/ghx_urbanopt.json") s = Scenario(ghx_data) ghx_inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt(m, ghx_inputs) ghx_lcc = results["Financial"]["lcc"] ghx_lccc = results["Financial"]["lifecycle_capital_costs"] @@ -2069,8 +2083,8 @@ else # run HiGHS tests inputs = REoptInputs(input_data) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt([m1,m2], inputs) calculated_ghp_capital_costs = ((input_data["GHP"]["ghpghx_responses"][1]["outputs"]["number_of_boreholes"]* @@ -2109,8 +2123,8 @@ else # run HiGHS tests inputs = REoptInputs(input_data) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt([m1,m2], inputs) pop!(input_data["GHP"], "ghpghx_inputs", nothing) @@ -2134,7 +2148,7 @@ else # run HiGHS tests s_wwhp = Scenario(input_data_wwhp) inputs_wwhp = REoptInputs(s_wwhp) - m3 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m3 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results_wwhp = run_reopt(m3, inputs_wwhp) @@ -2172,8 +2186,8 @@ else # run HiGHS tests 3) International - all emissions should be zero unless provided """ - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) post_name = "cambium.json" post = JSON.parsefile("./scenarios/$post_name") @@ -2270,8 +2284,8 @@ else # run HiGHS tests inputs["Generator"]["fuel_avail_gal"] = 1000 end - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) results = run_reopt([m1, m2], inputs) if !isnothing(ER_target[i]) @@ -2345,8 +2359,8 @@ else # run HiGHS tests inputs["ElectricStorage"]["max_kwh"] = results["ElectricStorage"]["size_kwh"] inputs["Financial"]["CO2_cost_per_tonne"] = results["Financial"]["breakeven_cost_of_emissions_reduction_per_tonne_CO2"] inputs["Settings"]["include_climate_in_objective"] = true - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "presolve" => "on")) results = run_reopt([m1, m2], inputs) @test results["Financial"]["breakeven_cost_of_emissions_reduction_per_tonne_CO2"] ā‰ˆ inputs["Financial"]["CO2_cost_per_tonne"] atol=1e-1 elseif i == 3 @@ -2404,8 +2418,8 @@ else # run HiGHS tests input_data["DomesticHotWaterLoad"]["annual_mmbtu"] = heat_load_multiplier * dhw_load.annual_mmbtu / input_data["ExistingBoiler"]["efficiency"] s = Scenario(input_data) inputs = REoptInputs(s) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt([m1,m2], inputs) # The expected values below were directly copied from the REopt_API V2 expected values @@ -2499,7 +2513,7 @@ else # run HiGHS tests s = Scenario(input_data) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false, "mip_rel_gap" => 0.01)) results = run_reopt(m, inputs) thermal_techs = ["ExistingBoiler", "CHP", "SteamTurbine"] @@ -2556,7 +2570,7 @@ else # run HiGHS tests d["ProcessHeatLoad"]["annual_mmbtu"] = 0.2 * 8760 s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) #first run: Boiler produces the required heat instead of the electric heater - electric heater should not be purchased @@ -2570,7 +2584,7 @@ else # run HiGHS tests d["ElectricTariff"]["monthly_energy_rates"] = [0,0,0,0,0,0,0,0,0,0,0,0] s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) annual_thermal_prod = 0.8 * 8760 #80% efficient boiler --> 0.8 MMBTU of heat load per hour @@ -2592,7 +2606,7 @@ else # run HiGHS tests d["SpaceHeatingLoad"]["annual_mmbtu"] = 1.0 * 8760 s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["ASHPSpaceHeater"]["size_ton"] ā‰ˆ 0.0 atol=0.1 @test results["ASHPSpaceHeater"]["annual_thermal_production_mmbtu"] ā‰ˆ 0.0 atol=0.1 @@ -2608,7 +2622,7 @@ else # run HiGHS tests s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) annual_thermal_prod = 0.8 * 8760 #80% efficient boiler --> 0.8 MMBTU of heat load per hour annual_ashp_consumption = sum(0.8 * REopt.KWH_PER_MMBTU / p.heating_cop["ASHPSpaceHeater"][ts] for ts in p.time_steps) @@ -2626,7 +2640,7 @@ else # run HiGHS tests s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) annual_ashp_consumption += 0.1 * sum(REopt.KWH_THERMAL_PER_TONHOUR / p.cooling_cop["ASHPSpaceHeater"][ts] for ts in p.time_steps) @@ -2641,7 +2655,7 @@ else # run HiGHS tests d["ExistingBoiler"]["fuel_cost_per_mmbtu"] = 0 s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["ASHPSpaceHeater"]["annual_electric_consumption_kwh"] ā‰ˆ annual_ashp_consumption rtol=1e-4 @test results["ASHPSpaceHeater"]["annual_thermal_production_tonhour"] ā‰ˆ 876.0 atol=1e-4 @@ -2655,7 +2669,7 @@ else # run HiGHS tests d["DomesticHotWaterLoad"]["annual_mmbtu"] = 0.5 * 8760 s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["ASHPWaterHeater"]["size_ton"] ā‰ˆ 0.0 atol=0.1 @test results["ASHPWaterHeater"]["annual_thermal_production_mmbtu"] ā‰ˆ 0.0 atol=0.1 @@ -2670,7 +2684,7 @@ else # run HiGHS tests s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) annual_thermal_prod = 0.4 * 8760 #80% efficient boiler --> 0.8 MMBTU of heat load per hour annual_ashp_consumption = sum(0.4 * REopt.KWH_PER_MMBTU / p.heating_cop["ASHPWaterHeater"][ts] for ts in p.time_steps) @@ -2695,7 +2709,7 @@ else # run HiGHS tests s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["ASHPWaterHeater"]["annual_electric_consumption_kwh"] ā‰ˆ sum(0.4 * REopt.KWH_PER_MMBTU / p.heating_cop["ASHPWaterHeater"][ts] for ts in p.time_steps) rtol=1e-4 @@ -2705,7 +2719,7 @@ else # run HiGHS tests d["ASHPSpaceHeater"]["force_into_system"] = false s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["ASHPWaterHeater"]["annual_electric_consumption_kwh"] ā‰ˆ sum(0.4 * REopt.KWH_PER_MMBTU / p.heating_cop["ASHPWaterHeater"][ts] for ts in p.time_steps) rtol=1e-4 @@ -2716,7 +2730,7 @@ else # run HiGHS tests d["ASHPWaterHeater"]["force_into_system"] = false s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["ASHPSpaceHeater"]["annual_thermal_production_mmbtu"] ā‰ˆ 0.4 * 8760 rtol=1e-4 @@ -2739,7 +2753,7 @@ else # run HiGHS tests s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) #Case 1: ASHP systems run to meet full site load as they are oversized and dispatch is forced @@ -2756,7 +2770,7 @@ else # run HiGHS tests s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) #Case 2: ASHP systems run to meet at capacity as they are undersized and dispatch is forced, Space Heater is heat only @@ -2770,7 +2784,7 @@ else # run HiGHS tests s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) #Case 3: ASHP present but does not run because dispatch is not forced and boiler fuel is cheap @@ -2786,7 +2800,7 @@ else # run HiGHS tests d["ASHPWaterHeater"]["min_ton"] = 0.0 s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["ASHPSpaceHeater"]["size_ton"] ā‰ˆ 0.0 atol=1e-4 @test results["ASHPWaterHeater"]["size_ton"] ā‰ˆ 0.0 atol=1e-4 @@ -2800,7 +2814,7 @@ else # run HiGHS tests d["Boiler"]["fuel_cost_per_mmbtu"] = 0.0 s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["Boiler"]["size_mmbtu_per_hour"] ā‰ˆ 24.0 atol=0.1 @@ -2820,7 +2834,7 @@ else # run HiGHS tests d["Boiler"]["can_serve_process_heat"] = true s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["Boiler"]["size_mmbtu_per_hour"] ā‰ˆ 8.0 atol=0.1 @test results["Boiler"]["annual_thermal_production_mmbtu"] ā‰ˆ 70080.0 atol=0.1 @@ -2838,7 +2852,7 @@ else # run HiGHS tests d["Boiler"]["can_serve_process_heat"] = false s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["Boiler"]["size_mmbtu_per_hour"] ā‰ˆ 16.0 atol=0.1 @test results["Boiler"]["annual_thermal_production_mmbtu"] ā‰ˆ 140160.0 atol=0.1 @@ -2858,7 +2872,7 @@ else # run HiGHS tests d["ExistingBoiler"]["retire_in_optimal"] = true s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["Boiler"]["size_mmbtu_per_hour"] ā‰ˆ 24.0 atol=0.1 @test results["Boiler"]["annual_thermal_production_mmbtu"] ā‰ˆ 210240.0 atol=0.1 @@ -2874,7 +2888,7 @@ else # run HiGHS tests d["ExistingBoiler"]["retire_in_optimal"] = false s = Scenario(d) p = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, p) @test results["Boiler"]["size_mmbtu_per_hour"] ā‰ˆ 0.0 atol=0.1 @test results["Boiler"]["annual_thermal_production_mmbtu"] ā‰ˆ 0.0 atol=0.1 @@ -2890,8 +2904,8 @@ else # run HiGHS tests d["Site"]["CO2_emissions_reduction_min_fraction"] = 0.50 s = Scenario(d) p = REoptInputs(s) - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) results = run_reopt([m1,m2], p) @test results["Boiler"]["size_mmbtu_per_hour"] ā‰ˆ 12.0 atol=0.1 @test results["Boiler"]["annual_thermal_production_mmbtu"] ā‰ˆ 105120.0 atol=0.1 @@ -2903,8 +2917,8 @@ else # run HiGHS tests # Throw a handled error d = JSON.parsefile("./scenarios/logger.json") - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt([m1,m2], d) @test r["status"] == "error" @test "Messages" ∈ keys(r) @@ -2914,7 +2928,7 @@ else # run HiGHS tests @test length(r["Messages"]["warnings"]) > 0 @test r["Messages"]["has_stacktrace"] == false - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(m, d) @test r["status"] == "error" @test "Messages" ∈ keys(r) @@ -2927,8 +2941,8 @@ else # run HiGHS tests @test isa(REoptInputs(d), Dict) # Using filepath - n1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - n2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + n1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + n2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt([n1,n2], "./scenarios/logger.json") @test r["status"] == "error" @test "Messages" ∈ keys(r) @@ -2937,7 +2951,7 @@ else # run HiGHS tests @test length(r["Messages"]["errors"]) > 0 @test length(r["Messages"]["warnings"]) > 0 - n = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + n = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(n, "./scenarios/logger.json") @test r["status"] == "error" @test "Messages" ∈ keys(r) @@ -2950,8 +2964,8 @@ else # run HiGHS tests d["ElectricLoad"]["doe_reference_name"] = "MidriseApartment" d["ElectricTariff"]["urdb_label"] = "62c70a6c40a0c425535d387x" - m1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - m2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt([m1,m2], d) @test r["status"] == "error" @test "Messages" ∈ keys(r) @@ -2960,7 +2974,7 @@ else # run HiGHS tests @test length(r["Messages"]["errors"]) > 0 @test length(r["Messages"]["warnings"]) > 0 - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(m, d) @test r["status"] == "error" @test "Messages" ∈ keys(r) @@ -2973,8 +2987,8 @@ else # run HiGHS tests @test isa(REoptInputs(d), Dict) # Using filepath - n1 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) - n2 = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + n1 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + n2 = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt([n1,n2], "./scenarios/logger.json") @test r["status"] == "error" @test "Messages" ∈ keys(r) @@ -2983,7 +2997,7 @@ else # run HiGHS tests @test length(r["Messages"]["errors"]) > 0 @test length(r["Messages"]["warnings"]) > 0 - n = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + n = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(n, "./scenarios/logger.json") @test r["status"] == "error" @test "Messages" ∈ keys(r) @@ -3110,7 +3124,7 @@ else # run HiGHS tests d["ElectricStorage"]["max_duration_hours"] = 8 s = Scenario(d) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false, "log_to_console" => false)) r = run_reopt(m, inputs) # Test battery size_kwh = size_hw * duration @test r["ElectricStorage"]["size_kw"]*8 - r["ElectricStorage"]["size_kwh"] ā‰ˆ 0.0 atol = 0.1 @@ -3140,7 +3154,7 @@ else # run HiGHS tests input_data["ElectricLoad"]["loads_kw"][31*24+29*24+3*24+16] = peak_load s = Scenario(input_data) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, inputs) # TOU Energy charges @@ -3171,7 +3185,7 @@ else # run HiGHS tests input_data["ElectricLoad"]["loads_kw"][31*24+28*24+8] = peak_load s = Scenario(input_data) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, inputs) flat_rate = input_data["ElectricTariff"]["urdb_response"]["flatdemandstructure"][3][1]["rate"] if year == 2024 # Leap year @@ -3199,7 +3213,7 @@ else # run HiGHS tests s = Scenario(input_data) inputs = REoptInputs(s) - m = Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) + m = JuMP.Model(optimizer_with_attributes(HiGHS.Optimizer, "mip_rel_gap" => 0.01, "output_flag" => false, "log_to_console" => false)) results = run_reopt(m, inputs) electric_load = results["ElectricLoad"]["load_series_kw"] @@ -3247,5 +3261,8 @@ else # run HiGHS tests @test s.cooling_load.loads_kw_thermal[end-24+1:end] == s.cooling_load.loads_kw_thermal[1:24] end + + + end end \ No newline at end of file diff --git a/test/scenarios/mpc_multinode1.json b/test/scenarios/mpc_multinode1.json index 14cbe1ff1..674b95fcb 100644 --- a/test/scenarios/mpc_multinode1.json +++ b/test/scenarios/mpc_multinode1.json @@ -108,5 +108,8 @@ 100, 100, 100, 100, 100, 100, 100, 100, 100], "export_limit_kw_by_time_step": [100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100] + }, + "Settings": { + "facilitymeter_node": "N/A" } } \ No newline at end of file diff --git a/test/scenarios/mpc_multinode2.json b/test/scenarios/mpc_multinode2.json index 56932d2b7..2b4212911 100644 --- a/test/scenarios/mpc_multinode2.json +++ b/test/scenarios/mpc_multinode2.json @@ -109,5 +109,8 @@ 100, 100, 100, 100, 100, 100, 100, 100, 100], "export_limit_kw_by_time_step": [100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100] + }, + "Settings": { + "facilitymeter_node": "N/A" } } \ No newline at end of file diff --git a/test/scenarios/multinode_powerflow.json b/test/scenarios/multinode_powerflow.json new file mode 100644 index 000000000..0cbdeb4ac --- /dev/null +++ b/test/scenarios/multinode_powerflow.json @@ -0,0 +1 @@ +{"number_of_outages_to_simulate":15,"optimizer":"HiGHS.Optimizer","substation_node":"0","generate_CSV_of_outputs":false,"bus_coordinates":"","generator_fuel_gallon_available":{"4":500,"8":500},"PMD_network_input":"","voltage_plot_time_step":3,"multinode_type":"BehindTheMeter","outages_vector":[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,7000,7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013,7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,7043,7044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7086,7087,7088,7089,7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,7100],"run_BAU_case":false,"critical_load_fraction":{"20":1.2,"5":0.9,"2":0.75,"7":0.15,"9":0.8,"18":0.9,"14":0.5},"bus_phase_voltage_upper_bound_per_unit":1.05,"critical_load_timeseries":{"1":[5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0],"20":[1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5],"5":[12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0],"2":[7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0],"7":[14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0],"9":[2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0],"18":[1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5],"14":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]},"log_solver_output_to_console":false,"generators_only_run_during_grid_outage":true,"generate_results_plots":false,"folder_location":"./data","single_outage_start_time_step":4002,"time_steps_for_results_dashboard":[4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200],"model_transformer_upgrades":false,"PMD_time_steps":[5,6,7,8,9,10,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010],"model_type":"PowerModelsDistribution","model_subtype":"LPUBFDiagPowerModel","run_outage_simulator":true,"model_switches":false,"optimizer_tolerance":0.01,"model_outages_with_outages_vector":false,"bus_phase_voltage_lower_bound_per_unit":0.95,"substation_import_limit":2000,"time_steps_per_hour":1,"length_of_simulated_outages_time_steps":[6],"facilitymeter_node":"1","REopt_inputs_list":[{"ElectricUtility":{"interconnection_limit_kw":50000,"net_metering_limit_kw":50000},"ElectricTariff":{"blended_annual_demand_rate":8,"wholesale_rate":0.04,"blended_annual_energy_rate":0.16},"Site":{"latitude":39.91,"renewable_electricity_max_fraction":1.0,"longitude":-105.23,"node":1,"land_acres":1000000,"renewable_electricity_min_fraction":0.0},"ElectricLoad":{"loads_kw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"year":2017},"PV":{"name":"PV","location":"ground","can_net_meter":false,"can_export_beyond_nem_limit":false,"max_kw":0,"can_wholesale":false,"min_kw":0},"Financial":{"analysis_years":25,"elec_cost_escalation_rate_fraction":0.0,"third_party_ownership":false,"owner_tax_rate_fraction":0.0,"owner_discount_rate_fraction":0.0564,"offtaker_tax_rate_fraction":0.0,"offtaker_discount_rate_fraction":0.0564},"Settings":{"facilitymeter_node":"1","time_steps_per_hour":1}},{"ElectricUtility":{},"ElectricTariff":{"blended_annual_demand_rate":0,"wholesale_rate":0.0001,"blended_annual_energy_rate":0.0001},"Site":{"latitude":39.91,"renewable_electricity_max_fraction":1.0,"longitude":-105.23,"node":4,"land_acres":1000,"renewable_electricity_min_fraction":0.0},"ElectricLoad":{"loads_kw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"year":2017},"Generator":{"federal_rebate_per_kw":0,"macrs_itc_reduction":0,"can_net_meter":false,"min_turn_down_fraction":0,"can_export_beyond_nem_limit":false,"federal_itc_fraction":0.0,"om_cost_per_kwh":0,"only_runs_during_grid_outage":false,"macrs_bonus_fraction":0.0,"sells_energy_back_to_grid":true,"state_ibi_max":0.0,"min_kw":0,"state_rebate_max":0,"production_incentive_per_kwh":0,"fuel_renewable_energy_fraction":0,"macrs_option_years":0,"production_incentive_max_benefit":0.0,"production_incentive_years":0,"utility_ibi_fraction":0,"max_kw":500,"can_wholesale":true,"existing_kw":0,"state_rebate_per_kw":0,"installed_cost_per_kw":250.0,"utility_ibi_max":0.0,"can_curtail":false,"utility_rebate_max":0.0,"om_cost_per_kw":10.0,"fuel_avail_gal":500,"utility_rebate_per_kw":0,"production_incentive_max_kw":0.0,"state_ibi_fraction":0,"fuel_cost_per_gallon":3.61},"Financial":{"analysis_years":25,"elec_cost_escalation_rate_fraction":0.0,"third_party_ownership":false,"owner_tax_rate_fraction":0.0,"owner_discount_rate_fraction":0.0564,"offtaker_tax_rate_fraction":0.0,"offtaker_discount_rate_fraction":0.0564},"Settings":{"facilitymeter_node":"1","time_steps_per_hour":1}},{"ElectricStorage":{"max_kw":0,"can_export_to_grid":true,"min_kwh":0,"max_kwh":0,"min_kw":0},"ElectricUtility":{},"ElectricTariff":{"blended_annual_demand_rate":0,"wholesale_rate":0.0001,"blended_annual_energy_rate":0.0001},"Site":{"latitude":39.91,"renewable_electricity_max_fraction":1.0,"longitude":-105.23,"node":5,"land_acres":1000000,"renewable_electricity_min_fraction":0.0},"ElectricLoad":{"loads_kw":[25.497773053680888,23.39781003690162,25.95629025188688,23.743895763810656,26.608130194813004,24.145977980408055,26.825572541044423,16.87089044830032,15.391822405341788,12.191888382416195,13.69300237118244,11.107551346604097,12.838513493321868,10.711403507213355,12.70406467379226,11.095822780929765,17.366881922208286,22.923515496816805,25.840918342253477,23.79874770654885,26.736631636694565,24.154967929252805,26.9027807961966,24.26258817081062,26.998145264127736,24.32352709406613,27.012939780170008,24.295728401576895,26.943731085436873,24.28836753561711,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,60.05963671271281,31.82677885278486,21.708129465396613,23.67904525638152,22.242235745397167,25.00062543075582,23.615172798229633,26.40506082735753,24.202102239050358,26.721976136872275,24.48090293809536,27.060302782379463,24.751554016044782,27.376501157067093,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,60.05963671271281,32.364714122460285,22.490149701197613,25.201066625508762,23.45425117933867,26.081081797868638,24.080653995776515,26.497067579464694,23.96790372019468,25.962488972952826,23.95725798063581,27.054644695619352,25.2697068787455,28.123745990230457,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,60.05963671271281,32.47594948837209,22.505872859348763,25.049232266110064,23.221890918198714,25.68917822507391,23.68980474109942,26.25442144094838,24.205315445111733,26.914916449405876,24.69892256466261,27.359281178902094,25.00991165890149,27.72501852083772,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,60.05963671271281,35.56621010264247,25.131947632498395,28.83380730709101,26.20111206212928,29.541494534385585,26.573366006407216,29.86052981914704,26.93268985604928,30.118464057428444,27.229390774868175,30.194862932682227,27.27562032101703,30.23219311666494,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,60.05963671271281,34.22011318862907,23.884141031629397,26.654315335063274,24.40561320880494,26.88345969005937,24.45120857224434,26.940358194834555,24.637880215998734,27.2348436130674,25.059387313777982,28.14277650679254,25.987442858880346,29.021526243447497,26.441266217985433,26.31776846278929,23.67670166977661,30.188488375425198,30.188488375425198,30.188488375425198,22.665102066539237,22.665102066539237,22.665102066539237,22.665102066539237,17.215411765188218,23.78330389331348,26.86119975921837,24.939801355285184,28.10648552179077,25.891620679535144,29.05291737047685,26.604487291576515,29.52577712579205,26.955720081685307,29.735780976195016,27.177064674424845,29.84255102703112,27.41019453866376,29.93581977524303,20.14887686960103,18.77764909184041,15.425789974890115,17.03628950381853,13.71812727632601,15.423768819510196,12.63975016372542,14.494287258535778,12.443845782906857,18.475398887887405,24.008373915356813,26.913962723965756,24.99164819900385,27.97775312314461,25.650893125835417,28.59417404078856,26.069067023498985,28.794893976901125,26.138489751306285,28.86130304902872,26.23367498339901,28.97467702405497,26.1644937087522,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,60.05963671271281,30.737926458893547,20.818915171651213,22.60886080331538,21.300071165069976,23.357885939355317,21.983359401161046,23.808116986409907,21.770470118642265,23.09113181715653,21.388344886549397,23.126757313045513,21.646664462369824,23.23352940578947,33.62310125563046,39.98256865971753,48.98310285710963,55.92060285432351,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,27.496280650137106,18.01474294117046,19.35657813247683,18.53591880905608,19.923719673998317,18.931059571370426,20.44886701766032,19.341508947465083,20.980711539921494,20.436478881523982,22.513587010860526,21.257601620920724,23.40865722185016,33.62310125563046,39.98256865971753,48.98310285710963,56.2124233315291,55.860532404291526,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,28.696741895365875,19.320644384998293,21.78242274224546,20.89911207783949,22.737085128359585,21.5047536030837,23.277541614446445,21.71970566119218,23.37101410731075,21.876913981734443,23.802459236569348,22.345911942812272,24.25415644934308,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,55.933003868338524,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,57.72406864485139,27.9524894256876,18.86301241977772,21.47775716665431,20.801256744734562,22.75310582410749,21.155934192061608,23.143637701645105,21.43674291992565,23.437894643698726,21.700625270061987,23.87398385308544,22.06871968615211,24.124630816699344,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.01787634664417,55.860532404291526,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,57.72406864485139,28.663916931083087,19.220553428537784,21.55715288218423,20.697997371317662,22.521255394812023,21.389068752539963,23.121175192458516,21.49870453478534,22.948517886027954,21.475433378591724,23.281613472149004,21.915348280202473,23.65721445168208,21.962421623007575,26.31776846278929,23.67670166977661,30.188488375425198,29.799394405655324,29.666852491576336,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,9.734431362586008,19.03907666454045,21.089484315469058,20.71425337927658,22.439240451464617,20.966932967859496,22.333106755969613,20.946864185483722,22.524653064007584,21.210794579567608,22.815538792017314,21.39240287763743,22.980005451246416,21.420059883691387,22.700348359285428,13.738679820988427,11.003808296726115,9.229979724964357,9.270235393317803,7.743641121398055,8.253182843764872,7.016347150255764,7.701157866572239,7.122275071030208,10.112442307331339,18.719612440197807,19.94571838514751,19.127816916248214,20.55692432153246,20.11028302645142,22.125585270111717,21.096370864315002,22.850861071668252,21.597659412255634,23.371934203551593,21.882702803802175,23.62508827578356,22.196842125239858,24.30803126400979,15.565413465167543,13.766240524108323,11.616885603391728,12.989933649337642,10.937686609028557,11.992831356300702,10.0432389749785,11.245933339590435,10.051227421754325,13.523578544770247,21.422255384923265,23.107527134038857,21.70228111568693,23.397287630771455,21.838839420401342,23.478765067853985,21.94218197360204,23.70613639619324,22.17441451799475,23.95114448272319,22.279791997644082,23.994951818156924,22.45892169022137,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,58.23330351444162,31.9199152488651,21.839340966899687,23.930508618441973,22.25225449529616,24.27661576612562,22.48115252931428,24.486672743283854,22.616427383798456,24.59950073397525,22.690006485807608,24.606962676772994,22.667384168006954,24.6088210321659,33.62310125563046,39.98256865971753,48.98310285710963,56.30969682384976,55.860532404291526,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,57.72406864485139,27.554381815660395,18.117555069555824,19.57420706168272,18.93577182238144,21.17002824247906,20.85723942929683,23.253360731387016,21.70493907212596,24.06755865279852,22.12192560299623,24.10467280004678,21.996946921984048,23.864075128904734,33.62310125563046,39.98256865971753,48.98310285710963,55.92060285432351,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,57.711667630836374,29.76655858808067,20.491516759245112,22.572203777421294,21.25804736857267,22.990105386307025,21.41451845372806,23.23045267896583,21.78910727561827,23.79873209377509,22.108680224141708,23.870672524578296,22.04308058830938,23.91026619572328,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.2124233315291,55.872933418306545,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,57.72406864485139,27.07729410862137,17.59885541103868,18.60430812086403,18.015234210843115,18.98909128761675,18.298757247802566,19.696360840648047,19.393520786093188,21.751424938503547,21.027578403495816,22.467295880496255,21.022943698087044,22.473646088044248,21.096777267218712,26.31776846278929,23.67670166977661,29.702120913334667,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,7.020455192557139,18.069582287380936,19.610405426722007,18.969829570407082,20.48418477895949,19.20761412277004,20.440666925286052,18.981163753190533,19.715831895569448,18.329346102839658,19.183180547518262,18.30286939223948,19.44752192644114,18.578189881404715,19.90312534919287,11.704426543083175,8.836048368561514,6.961844742056307,6.738009162043135,5.585330706769024,5.737522545283948,5.161133097108945,5.406679211386041,5.1927148126306015,5.715092204654181,16.501254227444164,17.20750729922667,16.911818779619267,17.7264525965267,17.263752606362083,18.167750510870448,17.925533732171196,19.979006704502538,19.79280684580076,21.949440893310655,20.639840806574018,22.558438654271537,20.788744773709837,33.03946030097565,39.436130747838625,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,24.846189141106002,16.275607131358186,16.729771419399583,17.77203445821376,18.544336642227364,19.991087595666496,19.94129305691611,20.38912386528221,19.7156403532757,19.74465293752996,18.47253458525575,18.048995358970505,17.437959007786272,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,24.62279938606818,16.22186014925329,16.42730131527056,17.521971515251142,17.424144654210835,18.739356722935423,18.276098610927612,19.60613892536058,18.865873398526315,20.09916727908444,18.891557141473204,19.802552803467155,18.695741958873924,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,26.64315721237746,17.323876578585203,18.445637522405686,18.165800844848235,20.119494232091043,19.684825235228573,21.762665846974613,20.767726736399723,22.732973187950233,21.025393400121516,22.309809896566385,20.05300861669076,21.094418531317576,33.03946030097565,39.39892770530634,48.46146697326076,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,26.560923866282355,17.442688084286516,18.910516280569954,18.294369070931747,19.404393641655656,18.42616835625574,19.604162589683686,18.725749743583545,20.089338537874053,18.97220814368278,20.032353729732268,18.7978265894563,20.00680715845003,33.11386638604023,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,24.62279938606818,15.812513888554475,16.892065438910528,16.986845329676267,18.150414192267114,17.872107985701962,19.38514050332386,18.620229826433892,20.231601538964085,19.435361333584748,21.13529904888079,20.043541950953887,22.111613112069733,20.873863161893137,24.491435264761712,23.67670166977661,30.188488375425198,30.188488375425198,30.188488375425198,22.665102066539237,22.665102066539237,22.665102066539237,22.665102066539237,10.583612478073768,21.048202867277155,23.07518442715977,21.684549669973247,23.94939995794945,22.640194862897587,25.372191741487992,23.59337049882389,25.987308388272645,23.861545235998904,26.071641121467195,23.60690305352529,25.465617127323675,23.23891905805337,25.295455467742126,14.10569811882903,13.89328950264003,11.320452230873103,12.309355997127573,10.244150605741636,11.394216051495494,9.720111475265522,11.020160374918044,9.743866971259502,11.40539193144919,19.302988673950384,22.954102036853634,21.562109891261183,23.6545123436298,22.42412165342983,24.954460677426827,23.36851388819797,25.90462508283639,24.00209054643436,26.427983671399396,24.050673525326864,26.19397897107858,23.86371978984884,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.11514983920845,55.88533443256518,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,26.57470812163869,19.19367394058541,21.7716468939811,21.034457072638947,23.151208350717933,22.033431691122246,24.269006452331464,22.818718035541007,25.15682949827985,23.33038974680294,25.301711550152355,23.270499710731507,25.163174661925442,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.11514983920845,55.88533443256518,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,25.9661479009404,18.919203567059732,21.94094783319161,21.05763796355522,23.100062923234187,21.399651807182124,23.359401010395924,21.53549766092531,23.567126227288142,21.64923928691977,23.613238864693585,21.92304544241828,24.252314992938043,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.40697031641404,56.30969682384976,51.60559583061015,55.8977354465802,55.8977354465802,55.8977354465802,55.860532404291526,28.398073215119265,20.977076951289316,23.262590481463306,21.773201990332808,23.791080679289287,22.209434128250237,24.289358870925604,22.462903436659985,24.426429224527183,22.563520456983717,24.3651661036674,22.372348663596053,24.33386750085984,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,29.555580308860424,21.62124983852601,23.652823015145117,21.92673587525797,24.200719370561803,22.743832865743954,25.326144665653906,23.448742265911832,25.820640393378582,23.88389817868148,26.137759294141365,23.807761188310266,26.23459887915684,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,51.800142815495086,55.88533443256518,55.8977354465802,55.8977354465802,55.8977354465802,27.82732318253918,20.66875642406771,22.728907278424604,21.472788806433876,23.388469056211616,21.905862024969302,23.70250107420683,22.293807630853546,24.532541446163865,22.860258478927427,24.658217003255654,22.78246334595852,24.87991736427636,23.24716192968451,24.491435264761712,23.67670166977661,30.188488375425198,29.617248435029023,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,6.284977279911152,16.24130176347247,20.004781881006867,19.207443920711786,20.65453888886098,19.720913083105028,21.924353513354884,20.56722157419454,21.954859433124557,20.750759793120295,22.915246578137843,21.8697378436209,23.772542081244044,22.14891236676513,24.37157375456049,13.306024719754513,12.218050150467754,9.859854484742893,10.896914666773002,9.424348921595573,10.611854874309456,9.29674298806344,10.481637661995471,9.191391647256062,10.752628061558154,18.909072204982,22.500959808600914,21.33353085836886,23.36424542178923,21.832242190848852,23.833987870404506,22.2631596268253,24.327844344013194,22.715662464220923,24.871997351219655,23.15469071500695,25.3723717795506,23.152754361082795,33.62310125563046,38.156235461689946,48.98310285710963,56.11514983920845,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,25.968493658812726,18.811183491944664,20.611560813357187,19.368234726874267,21.19948245003204,20.567412717714895,22.750116079922158,21.259637121107048,22.94207681322759,21.229878536198214,23.661385132150446,21.907454390493815,23.33595126270121,33.62310125563046,36.32990226341875,48.60640990159839,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,22.585591719846906,16.83049028504479,17.744652067119834,17.56195009851027,18.81808139117888,18.505499788486574,20.01097905601894,19.62945055545796,22.36461408416261,21.527349691198367,23.414647737015294,21.99470404391994,23.923271994597414,33.62310125563046,36.32990226341875,48.98310285710963,56.40697031641404,56.30969682384976,55.823329361759235,51.6676009014161,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,24.573054480098012,18.975204200444352,21.04566546118728,20.587556276253228,22.668472682191602,21.35784920601562,23.58149634894737,21.884858624024034,23.794904271844363,21.917806926829652,23.389048161101986,21.21833645288536,23.23550819954171,33.62310125563046,36.32990226341875,48.98310285710963,55.823329361759235,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,23.863931431841777,18.339789686067206,19.92416171249008,19.106670895870938,20.445009844117376,19.438158072105384,20.061457193587817,18.579332130358953,19.51624649901955,18.634782416337156,19.75613007610464,18.903279147277708,19.908751888468235,33.11386638604023,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,22.983992003478136,17.283289263465456,18.144484574152568,17.537390920261153,18.477396492128257,17.87401969455826,18.959552119283796,18.39788058536206,20.187963013694308,19.39454276889953,20.95680727421558,19.661192387912827,21.053861406259784,19.778080056994103,22.09386212616743,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.630578133163822,12.711014036159273,17.4443500281065,17.030803541165948,18.260301711953293,17.98785496791275,19.187301082396836,18.41933414582693,19.644099141096767,18.647730159564254,19.351709799064984,18.06268290645593,19.511059511219138,19.173009526989254,20.850057076564642,8.447107407209684,8.980209957793727,6.869057557067169,6.482354972919241,5.058702432881551,4.217733531222169,4.217733531222169,4.53055867392978,5.084603701537774,5.494375682908422,13.404790597272836,17.48796540712534,18.195669857488827,18.074164491564673,19.217060355810382,19.719521198157345,20.90699970301279,20.80495912508725,21.825638530298864,21.626952072830992,22.643087109826322,22.19718768110714,23.50166716859019,33.62310125563046,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,28.904036575220264,22.396645935816824,24.89524651219449,23.247299478928046,25.55566947273381,23.4366204416542,25.77134092062648,23.694972899677225,26.54724851024163,24.845863743088817,27.780354765006916,25.40231221068129,28.16309619325092,33.62310125563046,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,31.026215947644737,24.10298958978229,27.181794615076214,24.564069702858646,27.582037507898654,24.930288711358514,28.14315422990112,25.462008063672375,28.71440675203758,26.047413802173047,29.496843758387655,26.362117789829835,29.090838627789466,31.796768057359262,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,29.09197958183253,24.419734801018773,27.32658080980575,25.195817037983804,28.104613465490264,25.525961267601872,28.32694072440108,25.81123322232255,28.46178999264018,26.016053730453045,28.816325585559404,26.29817450054361,29.057589634546126,31.796768057359262,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,27.934047081975226,23.31079789601719,25.618840474697926,23.206854807479992,24.365021381984118,21.86169273280001,25.49442951551907,23.43317660008333,23.52760059749596,21.442821696366774,22.783988268789727,21.183831641954747,22.646481655682692,31.796768057359262,36.32990226341875,48.98310285710963,56.11514983920845,55.84813139003289,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,22.78080844180811,18.628721069818432,19.790099419243248,19.097626762202243,20.98185855366843,20.31692312417763,22.03304066687828,20.74045367569815,23.0092364539859,21.917646607330568,24.171804708112,22.472874249436607,24.81267874190283,21.00635514892935,22.665102066539237,23.67670166977661,30.188488375425198,30.188488375425198,30.188488375425198,22.665102066539237,22.665102066539237,22.665102066539237,22.665102066539237,9.769697306487451,14.963913954945497,22.2358975869009,20.919999194986914,22.637819775923074,21.22214524431877,23.13088737141911,21.809107913031784,23.981517182239156,22.430513281910535,24.577174286738263,22.785299893289608,24.98672037719643,22.98728417836494,23.043892287896668,11.72777975770074,12.915494313822027,10.599896130488425,11.4621334507671,9.427919945909615,10.155676663866213,8.806809651338908,9.175260422968513,8.036551480686523,9.96098026488331,14.980442987911145,22.331931091734432,21.085457271013727,22.679525820698473,21.365751308180823,23.233542017226426,21.777919771623576,23.588586612091284,21.904168682805686,23.72196537763084,22.000059229143858,23.74373605641862,22.022128195229186,21.959702401001547,11.154259369032603,13.006721019493693,11.092089645255232,12.425006509211325,10.473753635064446,11.364461148242713,9.461677003278284,10.033610930066015,8.330009694249863,10.556658142530916,15.396368685546035,22.639886837187852,21.174425817943494,22.793485480997305,21.391141265250685,23.172087768510725,21.625000942658264,23.248633310153252,21.655751241818727,23.409108217553882,21.844239003435835,23.74177064590002,22.108442450176753,31.796768057359262,36.32990226341875,48.98310285710963,56.40697031641404,56.2124233315291,55.860532404291526,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,22.77708320072127,19.037730942004224,21.37480600197509,20.58987181979954,22.742026931597277,21.32858115927668,23.20126157639242,21.6929214539166,23.798295186278096,22.052168494964885,24.080480315334565,21.98018661540813,23.563692788345747,31.796768057359262,36.32990226341875,48.98310285710963,56.40697031641404,55.823329361759235,55.872933418306545,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,22.123165100427425,18.47303509210272,20.304090442434482,19.39123133783047,21.727076439675784,20.613225073712204,22.57951704590674,21.06060221774279,22.858656883244716,21.225692644409246,23.173724418418658,21.413180457197942,23.130531473851466,29.97043485933168,36.2326287710981,48.44906595924574,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,19.069343543157387,17.448139574685754,19.23989322506143,18.718155198096117,20.321874324303632,19.583869402641824,21.337065540806236,19.965801386332014,22.333731628688227,20.86159482567431,22.556081507836467,20.998422318995157,22.86084545158348,29.97043485933168,36.32990226341875,48.691282379904024,55.88533443256518,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,19.699483879901262,17.8824324238004,19.26030225700436,18.77935608492183,20.31064752009352,19.413829945411468,20.91819883976991,20.165847754351905,22.13858987215408,20.91596590365831,22.665894957526888,21.52520990379125,23.329844041553432,18.229980302725284,22.665102066539237,23.38488119252229,29.666852491576336,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,5.490431855583064,9.499436606836824,18.552947180734773,18.521974453429802,20.05641959369676,18.870153227796415,20.484618477998215,19.372203775538768,20.95507192403146,19.44767417234423,20.889993706787173,19.592999401121393,20.8961040326376,19.586622605115597,17.593438911402956,8.422318632469041,9.062579386034118,7.4297654206485335,8.387257587370424,7.335324889548717,7.886792557402906,6.597816237294567,7.158567961637231,6.475390149233915,7.545665618130855,10.74636522004975,19.782980431357235,19.186792553113026,20.63678143213013,19.274503389004096,20.772401249571402,19.496265893604622,21.05118277039095,20.00337726274164,21.913649927633514,20.3722238144916,21.894515667745488,20.807901180320815,29.97043485933168,36.32990226341875,48.98310285710963,56.40697031641404,56.01787634664417,55.823329361759235,51.64279887314244,55.8977354465802,55.8977354465802,55.8977354465802,55.860532404291526,23.17782901205737,20.87542998801476,22.90992167084781,21.50573372810691,23.403004414080936,21.813436911117336,23.765403816614675,21.96278009020188,23.797426622429793,21.845106871324802,23.558687276277496,21.849805489372443,23.595852841053826,29.97043485933168,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,22.75463527237966,20.339602686679708,22.037529263947185,20.756986852067715,22.474061812875934,21.11735763147169,22.873591960878727,21.470926348978516,23.346759753621544,21.80202972003666,23.726133001949037,22.163786619775294,24.246695351913743,29.97043485933168,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,24.33450927093411,21.920677890114657,24.492336495798014,22.773942254206418,25.03291847727747,23.028805169629564,25.313545614082006,23.322572317732757,25.68736147839216,23.688099558540316,26.284744120823504,24.240049578613167,26.72392813056273,28.144101661060485,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,24.184589960621327,21.673193730421378,24.016719881079915,22.418050717737472,24.81855513133359,23.048961042686894,25.38457611976551,23.27419666404848,25.474685288374395,23.344405214549095,25.534459887478082,23.408067923109368,25.352187325971254,28.144101661060485,36.32990226341875,48.98310285710963,56.11514983920845,55.88533443256518,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,19.356059395968135,17.921014136335977,20.112383909225155,19.437071746046307,21.008908213032292,19.70618496818012,21.402351639285627,20.714202489369878,22.653079339163018,20.94599676189979,21.65278211243214,19.3839176262337,20.20962521632573,13.318637420246572,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,5.661898711809637,7.823727692866783,18.536406061687916,18.38482854424383,20.187534455882187,19.386771657204303,21.309257026929558,20.11145924340031,21.85075794202163,20.92446645052917,22.732265292140998,21.218638258982335,23.1139128113949,21.461495438688278,17.716555372338235,10.391532759012152,11.901692055720112,10.027276697035692,11.359262167446378,9.777611089114894,11.580315115197509,10.18887320156233,12.17659784559973,10.662583044403918,12.865965710784423,13.034366950298157,24.430903137994303,22.470762462820893,24.69197368163247,22.667793567886754,24.92947113820044,22.939374926402092,25.520772883716976,23.50034585430368,26.026275134218277,23.559028945900852,25.828194121781806,23.428648790646577,28.144101661060485,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,23.034308991502904,22.623869923367934,25.751875189764736,23.92330296581087,26.55217258086528,24.284479983064415,26.955280706928676,24.71531489472759,27.482289917669448,25.10423267482101,27.80535324709634,25.31514467833689,27.834422427183465,28.144101661060485,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,56.40697031641404,21.99220829319349,21.45956831967282,23.890628335808625,22.491565094676098,25.25794833059355,23.643284566348292,26.351336776586415,24.055972711769556,26.458077908860336,23.813037324047826,25.330258510060652,22.5957377713001,23.885344273301833,26.31776846278929,36.32990226341875,48.98310285710963,56.40697031641404,56.30969682384976,55.823329361759235,51.6303978588838,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,19.36513924749367,18.879060595102732,20.206797422495736,19.22349366425963,20.61147131658772,19.572136259003134,21.676466164088467,20.898241702616218,22.89880710883834,21.787361707124788,23.94063104104292,22.562958976542326,24.585765722711397,26.31776846278929,36.32990226341875,48.98310285710963,56.40697031641404,55.92060285432351,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,18.29906842547625,18.12142711801141,19.501496904365204,18.938914083540276,20.767039829533147,20.268858089265507,22.528527162020527,21.161943402071312,22.75300866206513,21.241779298552977,22.570635507539738,20.97152345266325,22.172917469884183,26.31776846278929,35.746261309007565,48.43666494498711,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,17.743688028604108,17.787751595468908,19.369757098081966,18.872721245329114,20.47323263183044,19.673280669649397,21.273115658883967,20.040809281034434,21.64568423795169,20.799269545801952,22.25063748611676,20.903417629686594,22.244261132832502,13.39180518032587,22.567828574121133,23.1054617294048,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,6.640295715430121,8.584271030860378,19.235370917791258,18.65697371864012,20.290703224592967,19.377645623802476,21.170725288139067,19.865971793661583,21.318505983149578,19.79083805280969,21.335000168329362,20.63588700321441,22.460206246317544,20.856947797561077,14.764215425319266,8.738976439052951,9.224192844776152,7.270929522055519,7.206345268159299,5.768617060989504,5.579106462939095,4.739536422873768,4.438631491353916,4.941566462622132,5.196263528972924,7.88636922267202,16.985243474226884,18.21741644842933,17.852102473795917,19.32181229669769,18.657798827614076,20.124047516981744,18.890235655754818,20.121893268856205,18.873605209957404,20.085380526723082,18.86001154570005,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,5.22753630493626,16.596647050991947,18.08025758333479,17.76776113054078,19.017167057648233,18.228530387783223,19.602902406732312,18.74286721584063,20.320689574447027,19.294160819437433,21.08604719857356,19.8946833743354,33.0642623292493,37.66986799959942,48.98310285710963,56.11514983920845,55.860532404291526,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,16.429487963923123,7.128751130403903,19.796652267063767,19.27331093246005,20.846082197291814,19.61897687096612,20.91723957355023,19.722400441355887,21.140236487999374,19.957081943685417,21.34618035610274,20.4521616731325,21.912000197061776,33.331280778424855,37.57259450703515,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,16.096231014437077,6.798847153509054,19.30141224720523,18.824185368446766,20.36949637186793,19.495344883978056,21.101656532610065,20.184971739314438,22.323193420644188,21.13636898259811,22.73301337636158,21.194541301801998,22.569908287969444,33.62310125563046,38.156235461689946,48.496735395019094,55.84813139003289,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.06365868601162,5.875614159909347,18.671777718273283,18.811545360954465,20.52465393257005,19.279854943024635,20.36573211169738,19.208022452595316,20.405373243941025,19.30096752931389,20.62187117316403,19.685230314474538,21.237474984757306,33.051861315234284,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,16.645618311510745,7.62075618640946,20.676635729666952,19.840780235868156,22.095724215691057,21.18924900993178,23.384608351274352,21.63262126592586,23.728960134534834,21.812516013407503,23.91176567579367,21.946934885613135,24.052126731872995,21.97713378229497,24.491435264761712,23.67670166977661,30.188488375425198,30.188488375425198,30.188488375425198,22.665102066539237,22.665102066539237,22.470555081703026,22.081461112030603,8.768047706482125,8.266034371637504,10.321727843753951,20.572012521523245,22.54240717276185,21.434262534776817,23.849908750046435,22.54958440134485,24.7746942418926,22.57955267749951,24.305858700786743,22.282258160865915,24.050390341038682,22.155370719079997,23.744766074865737,12.622320973529664,12.033767922318242,9.978334060304936,10.362661332670427,8.054685839470318,8.521726250291879,7.202907025762501,7.634370640649107,6.64340804546538,7.246724954234194,6.514995199489377,7.623512851456314,18.482818168119866,20.38630446262472,19.68167032007324,21.419134038843026,20.50375810226418,22.538213141089248,21.019920648856555,22.50042213229277,21.06843785384287,22.797308369651198,21.407878747756502,33.62310125563046,37.76714149192008,48.46146697326076,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,16.2986158956577,16.682559855777473,18.109266857592043,18.01816946938871,19.874971637806574,19.129725140313738,20.5898285668333,19.384363141671827,20.828333076554674,19.50713253308675,20.91413217652383,33.11386638604023,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,5.0654385128983845,16.94389136304372,17.811469078387326,18.710555617695668,19.16563090407829,20.017591789936514,20.245443294159834,20.983305006159217,20.97330464466149,22.061667948966416,22.005270777940595,22.66893479090514,33.62310125563046,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.09196329270068,55.823329361759235,55.88533443256518,55.8977354465802,55.8977354465802,17.396063161809167,7.919220046930675,20.85638452633018,20.60707999976317,22.441709791060624,21.170504364122287,22.926975607801303,21.56704858765242,23.38947659903117,21.922816691027194,23.685643036333385,21.96831894539827,23.5583431002943,33.62310125563046,36.32990226341875,48.78855587222469,55.84813139003289,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,16.19669077777025,6.9450128596637235,17.44182465092139,18.631931351744598,20.02800731936204,19.242485826197925,20.79256258701063,19.79416462927713,21.378615071470662,20.714071102367765,22.210708553299938,20.885866476954252,22.339540125858566,33.62310125563046,36.32990226341875,48.98310285710963,56.2124233315291,55.84813139003289,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.361530992477455,6.3700796748427875,17.1906543820918,18.60333214840466,20.374636827205702,19.254469867901932,20.93219434770061,19.66843652669546,21.43919679230786,20.15198479349359,22.471194249189526,20.906545272873522,22.732776487303752,20.859015710625705,22.276008096866814,23.130263757702817,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,5.508549759001899,5.449424625356187,6.345014021203563,15.455735815711133,18.654301648390426,18.036304302490908,18.918824741471468,17.944980551224855,19.088897162953963,18.678686198608325,20.49941689602194,19.654418859739256,21.533970795629898,20.656753081307563,22.287160164526163,8.790740356006363,9.330598105414994,7.327203821763357,7.103714772905757,5.437074174730685,4.501184459262249,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.62012202266998,16.71187242181778,16.99077421748228,18.210301208389563,17.546514695205765,18.49825831051569,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,13.349399522090915,15.175732720264662,16.042156658037026,16.358415368535006,16.624078362974338,17.250613999430815,17.38522330409334,18.03834850509226,18.383590772971083,19.464080800222284,19.78491053246391,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.168268929354804,6.1484179223170665,16.881825960983026,18.395407015708276,20.120073941780014,19.106464831126722,20.799483965712376,19.63077458744032,21.504975810854084,20.184100832060363,22.084418097160718,20.798621007152885,22.864785892051298,31.796768057359262,35.746261309007565,48.44906595924574,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,14.722694503947787,17.135849877649907,18.470619627866515,17.762128774543147,18.599078173093137,17.931573306451945,19.011135420880137,18.362512741642465,19.558781411041874,18.837980776619606,20.18142495232983,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.789262546835605,17.038001492152436,16.98556919598405,17.81729128484562,17.277572728935613,18.20773356619449,17.638830179701053,18.693354478254264,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.953368316730174,5.641730814135162,15.609317229216314,18.319510038513645,18.839193401099404,19.436583155212915,19.551872458118094,19.930463565505764,19.614849788301022,19.86211299815433,19.557985218096515,19.932303107145618,19.653563697225184,18.165678797801604,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.638513681865776,4.6920831153610285,5.002730262718323,14.409248552750606,17.260675335180725,18.085736385046257,18.476144718084562,18.709735057671523,18.922442310453263,19.139001995859516,18.43624254296488,19.011107661389396,18.780805261418102,19.09173284562233,15.109469678398327,7.2509018085644215,6.2239655748472815,5.824135704971282,5.526326749392484,5.613356928554697,5.489012847686271,5.293776149757935,4.761714958362127,4.967310897130354,5.5037444146357295,6.163278707632271,7.203462022804812,15.320982007717447,19.697240691934503,19.47922361435972,19.932768802627162,19.722110133302238,20.569316249828606,20.490700806321676,21.2371631769247,20.842119199463603,21.4685022449607,20.838465272843255,29.436397961224184,35.78346435129624,48.44906595924574,55.872933418306545,55.88533443256518,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,17.437986835903363,7.792441216385631,16.820571112094925,19.67422119332469,21.50667176067266,20.22275622108039,22.893158792647593,21.439037089739408,23.47558805518593,21.75839144939328,24.030201292052144,22.125595946563454,24.101200896293527,29.97043485933168,36.32990226341875,48.98310285710963,56.11514983920845,55.860532404291526,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,16.38189093793367,6.904693147923241,15.829017507968745,18.867566145051256,20.603783889008064,19.367691268851324,20.719117911612305,20.04461195929048,21.756578243485023,20.94207524300902,22.90168603282815,21.316534243294026,22.94529037338337,29.97043485933168,36.32990226341875,48.42426393097209,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,14.589090862883065,5.712858014802345,13.569331669799952,17.950961003604437,18.060209512107498,18.43213895986555,18.80534656244331,19.41423694867998,19.546502487948544,19.79622264480026,19.7471478750939,20.241561816488222,20.092653207828896,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,11.773714493327873,15.969991451103578,16.211437422636735,16.983025114818805,16.881753496239583,17.90524786502924,17.381661951976923,18.241517816527224,17.688759225820643,18.532072090299586,17.905170763025552,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,14.106739014393558,5.289460769020042,12.739097335234142,17.81996958211397,18.10502527624237,20.465385275315263,19.44594967501347,20.692622792439543,19.564144734224868,21.488841167015863,20.176321599580923,22.08533086614448,20.414952003346475,16.511800532641768,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.404458956887337,16.085524335852753,16.55401961927907,17.23892633747019,17.63165873629218,18.172083160720486,18.32651397098172,18.686568880833274,18.74382645657818,18.93310877326828,13.226270864034706,7.889163700031315,7.102719596763171,6.502184095701239,5.687819110650436,4.938004937441617,4.28347877464373,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.856469972822334,17.19451263787002,16.316455989519927,16.119390256774352,16.872386659544638,17.25811291750422,27.63486679147026,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,14.775029763170128,5.984269447786814,13.78581051785372,17.880084371196585,17.87325346294473,18.307751197731356,18.62251348399242,19.358260019497727,19.252983657564954,19.548345236926043,19.394322787599716,19.76235391071009,19.500715589353316,27.63486679147026,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.574807438210422,6.198084049554589,14.393266567450567,17.42696446645822,18.618634302343466,18.018931464439937,19.472165793888227,18.63650457912973,19.343687612488676,17.932313766253877,18.684077684781588,17.830871650817887,18.67165576394652,27.63486679147026,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.52226921436655,6.397271745274745,13.178296868535314,17.94274776218363,18.9951516607961,18.191674071103613,19.363032355712342,18.51497239292375,20.012479072821897,19.150167561349004,20.63427448512626,19.430653427130558,20.945534836555257,27.63486679147026,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,16.447119049830874,7.0872724113115275,14.010500960149836,18.844862308653138,20.44424367747597,19.629386153835064,21.176066133039097,20.085091405001393,21.886761677970224,20.92055593831027,23.333406434027708,21.847784258252616,23.89123328374362,28.144101661060485,36.32990226341875,48.691282379904024,55.860532404291526,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.803333303761217,6.49366493813043,13.50273072279541,18.39504019605189,20.131881900121154,19.286996645012934,20.73930909985524,19.540186773141915,21.371795309603886,20.159468613235035,21.985057469699274,20.323903355123104,22.05631120531298,13.712202183189557,22.09386212616743,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.678849158639391,11.35562591655597,17.527939204324177,19.115731281778398,18.568317851660304,20.41544786211669,19.525638285471636,20.96571899689523,19.435622834335177,21.083642898213984,19.83177180329559,21.516689100260056,12.7579258785903,10.006156978259552,7.939357609787158,8.147136370722782,6.423926303448894,6.147490828405878,4.883630425826,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,10.276260372586407,16.869579976903317,17.242642102591294,18.203207950510812,17.360363990288388,17.67766144474322,16.768680669525448,17.570521856408696,17.721518476150898,19.054662709640716,18.546879601423722,25.808533593199066,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,9.696733125743418,15.175732720264662,15.514059471159696,16.71543584999687,17.24972068232523,17.71426090904149,18.038169433377277,18.493128552726716,18.67294913069587,19.0043071387249,19.02558125467075,25.808533593199066,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,9.696733125743418,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.481072607266574,15.83929801848229,15.862354002019494,16.406653804292144,16.272726856864264,25.808533593199066,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,9.696733125743418,15.175732720264662,16.701239938569135,16.3973147695744,16.684601576892078,16.88551359546593,17.950683900117184,17.63214521169472,18.94481417434747,18.196245719522487,19.544603325508362,25.808533593199066,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,9.696733125743418,15.377825786745946,16.228086941174308,16.698135832001817,16.94059574439091,17.540513151004905,18.17498312744315,18.106431913856692,18.552530539472183,18.622814660368984,18.917613136179384,25.808533593199066,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.104308639541975,6.037740588573772,12.263852674188023,17.424138473893176,18.51642629196988,17.8168422100949,18.873998386101388,18.236169169004164,19.822760963417043,18.978866227531427,20.599288060422772,19.413505875242194,20.78645582860954,10.149485227668336,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.62980825558553,16.266139933882847,16.22461322353685,17.115708566386864,17.15451471433274,18.57829133426243,18.048029406030665,19.046903685707647,8.985887867847444,7.4686124226350215,5.689167014588456,4.838719326200958,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.191943582344436,15.88354165193701,16.036000219521327,16.617387205928928,17.03605838919141,17.48182512544878,18.11845312148946,18.458040461953665,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.94925175633097,16.26589488874099,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.592364636395159,15.615352340957491,16.14319435364413,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,16.02867698308965,15.705942962894413,15.4650764151193,16.313095585745494,17.231842079923254,18.113758132379587,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.556351010749474,16.43245682197132,18.011537499728178,17.53753607543297,18.55243742945376,18.201976109533646,19.51161442937891,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,7.870399927569668,15.68541140473851,16.456959141502626,17.385681507244286,17.153343967271447,19.275115466137176,18.63776928035979,19.939744683461385,18.69699336213559,20.00031916513269,18.771358566702972,8.910205335606857,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,7.090187844785119,6.596866013795711,7.791792459652417,10.766446656300213,19.22345368506485,18.244080570636044,19.238166604967002,18.27767793445001,19.32123006067244,18.543901841537256,19.92918654113274,18.980912395545516,20.4369015765706,19.20372369307547,9.175666518551898,7.320529910077628,7.4565548814328615,6.0137570674050185,5.792895730573983,4.889482871727016,4.238149039109561,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,7.8881755333256764,16.2181046523528,16.869423268436293,17.204403294027554,17.645704638567945,17.843851814207376,18.27944065465757,18.31529734539609,18.691851348879894,18.820794779190333,19.278042151286243,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.39341044307018,6.003392667920055,10.625206103589145,17.30094317563584,18.388528540628855,17.87914996613127,19.330217037316753,18.558222945714665,20.24014557194074,19.058179786314383,20.5373829291138,19.338058008268632,20.90461247767729,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,6.044066729395919,15.687697332106715,16.281120927511747,16.96820973980247,17.301696560017447,17.81986663302165,17.94975533769478,18.27215845332117,18.350833854596694,18.775731477829602,18.631960551194886,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,6.434275891897064,16.045804832931584,16.761978907383135,16.794728976302544,18.07213388721156,17.40017120408618,18.497993241853052,18.08343470472822,19.53714315734845,18.595022381142073,20.106828891830098,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.8155692730458455,7.512804249922661,16.585289954829147,17.315080947661702,16.932451686706724,17.553798311117028,17.172419127963224,18.227398709430005,17.57463863995733,18.67778924155358,18.0533864796119,19.391972459802332,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,16.24671489347424,16.37904576309916,16.93169470418029,16.543702627029493,17.29491087569899,16.91108491057755,17.59437200823136,5.751607641583352,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.613834540283895,16.457008894019612,16.575887275911903,15.922721632167582,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.121213052307878,5.642737600481418,8.073081684290196,16.66600289807703,17.377998436548367,16.952055432335914,17.946664541179153,17.465483423989053,18.667467960778627,18.148030601545603,19.672785053592808,18.763336980442745,18.564006303278695,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,6.044066729395919,16.301347232126087,17.16273913117753,17.670022805890884,18.335481707887787,18.574941153840193,18.99928377644965,19.083827752498326,19.568450468344714,19.4931780621028,18.113562231082643,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.417044502200023,16.27041784271154,16.722408938369792,17.38268552907291,15.807879884147864,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,14.677584147813851,5.82805610837333,8.078854157428363,17.67140125632397,17.75489775715675,18.24657299840517,18.209913673833025,18.4125945159254,18.071764384014138,18.40824658459364,18.278643210895353,18.669483448553017,16.76997767824596,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.507944623498174,15.964370827287643,16.95741962249597,16.752115846909618,17.608418740381623,17.201968413870738,16.345475456482614,6.239409367302289,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.78921494926382,16.61687242938206,17.322603559364588,17.666132018009183,16.22611976924617,6.702574156737589,5.887815217046708,4.851959685270964,4.606185120881449,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.477573944598106,15.718270846073858,15.71369095518508,16.357287144228344,16.790450014813437,16.990942743591145,15.568964205974877,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.605691171737819,15.951467737715582,16.335037039086778,16.762125934565695,17.189861203711533,17.722179979965905,17.90970824702299,16.61494054640219,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.548554344425426,15.871269911052385,15.94440904420101,16.899453577252864,16.642224752465655,17.292555798992602,16.91982953193066,17.9907178384049,14.15495238109529,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.733173132178774,12.62523559549733,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,56.13767087295222,56.28395420683125,55.97544005243436,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.48026583816577,16.05590878025816,16.583265564826704,13.273424908303841,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,56.091661133309415,56.07995096392947,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.940092260386885,12.326043131429007,4.9920357906341035,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.548794301326945,16.033834803207174,16.8711674524901,16.616714075856024,13.683125145714747,5.45156923565818,4.680280301973795,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.957267295364229,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.756016555990975,56.46661327669079,56.65691830418193,56.9539605743899,57.1330030489968,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.00039277778002,52.17566832651177,56.78411296426439,56.99114937665099,57.2199627533847,57.84315240368967,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.78108861200293,56.50485485142976,56.659876574478616,56.63993592397005,56.87072036823064,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.89887522737342,56.22205787455502,56.52969711247706,56.55769859939838,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.420828527878703,12.294553394845689,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.655591912279284,12.45356752599746,4.785665554866186,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.462745308789028,12.086550678591843,4.606185379235157,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.647141905579747,4.683156358907393,4.778186897131699,5.356882508335632,5.191009837412228,5.705520913217834,5.50338451798169,15.224685197920792,16.555671204686696,17.028817660361014,16.63799157015725,17.291872010032602,16.798237799543628,17.29972944521703,16.78620077398891,17.539605746983753,13.522745325049014,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.600186468221795,15.94109550827399,16.153259085557675,16.3473928134796,16.72058862197309,11.36106253949718,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.974435124968004,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.566859873052424,15.456308550166703,10.138425986776246,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.990852302948497,16.190738814508336,10.93118846432289,4.9406552647115,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.9830563789299,56.0247520655122,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,5.413198887223914,5.2654112782978935,13.097928704972958,16.49556224277744,17.13113601870681,16.697523255750326,17.190796179859134,16.611298815635973,17.141558503267497,16.718175676642897,17.407995028878407,11.378263174826067,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.657284622481228,15.837693977489652,16.519843127187688,16.351234538104233,16.94782467601876,16.47945729689888,16.913885287122792,16.74607444466372,12.173822129080309,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,56.062354223473456,56.47178564288943,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,4.217733531222169,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.16402131249773,22.49136243038314,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.96371330072113,56.08214424853283,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,52.01796221927891,57.03120255901329,57.43910884572373,58.732543900817895,60.04077473071304,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,56.210713753522,56.856513127804035,52.92274376149766,58.32313140444066,61.08424167763283,63.55310670406928,63.4334375885707,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.908154882299165,56.255807547538886,52.19429948646604,56.8264536948873,57.11390967976472,57.81677679596989,60.16221131469479,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.542372503832613,16.021699881305768,16.717172346024142,10.97355971055049,5.261606763355276,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.03631849181032,52.27217506010913,57.063928407802486,57.40272023810109,60.43208322417281,62.4784347500312,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.347228200690836,52.70487170788365,57.415669391956484,58.43648585104489,60.19611425732506,59.660514561684124,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.9237242509295,56.302208291449226,52.40862227270496,57.10112130109026,57.33941509221699,57.26706657164673,57.276424700323496,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.79491813370604,56.563718662480696,56.800979501889536,57.09080033723406,56.875248848778,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.990408157319344,56.62112826446104,57.088311093050116,53.17506206011926,60.566926937015445,61.79794922307463,58.51350699842717,57.27181670018592,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,4.217733531222169,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.215940087978936,22.578071710804874,22.60776759415809,22.644982511021432,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.945207305472636,52.15159509711573,57.04538113618623,57.50933158180399,60.41603641082618,62.507840772680986,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,56.23778543799621,56.96500564997112,53.510238096658576,62.35720557328285,66.4435869244019,69.58881926415313,71.2538734493657,19.203074599958665,5.699778026000787,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.511357286203214,56.829478926177345,58.80172077334165,63.661617204779745,63.83863239989105,71.44956244460835,72.33483007598318,66.0195224594018,60.7920634656858,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,56.018304611825954,56.79755508062435,57.32710358795612,53.63627490604879,59.335041007521916,58.04623750550715,56.57830382236957,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.50935453108098,52.757543795953126,57.503634176800965,57.26764860442398,56.79203809713393,56.75030489579055,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.899220201171836,22.80386731927226,24.673451060930834,28.938228795558917,32.872679089664565,8.244010263234777,11.554218630484613,10.179905646929006,7.976506999745562,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,6.159563094575651,11.58228429341698,13.891408738686774,16.294682790997843,14.454842929549256,15.20959502949644,13.480832255223431,10.429128312790006,12.514084693293452,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.94418431039175,57.2307349636001,59.63544664128041,64.72943598773611,63.454973800637674,70.33079232474795,72.34322098806473,74.2939145712844,72.79654650530043,19.181650865424412,8.250469873358249,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.470413595468871,11.526754196241397,17.30961681327854,11.821667682985638,9.280984533119614,5.1935841294441465,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.69324679771587,57.27228539230249,57.94356064953954,61.27759500797261,59.194944453675994,67.10323303885163,70.68647662548845,68.88839094409408,62.07460400267935,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.4738679875194,56.293266049876095,57.142317362297746,57.52473761729589,55.85469963680628,63.27269204485714,64.78540401963569,65.3381809755514,63.60087261674215,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.764638692504356,53.131586917490495,59.69331805861311,62.337129838744,65.11333053493821,67.50490978939116,15.803611824649261,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.734341857611994,22.515257776101464,22.77192193030886,22.707174463766176,22.78164457204647,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.497174907418206,56.89810179066261,57.83147043396405,62.091400985542236,61.54203443937503,70.05172569866286,72.35651386879908,74.26756224658102,77.22089737037598,26.28743502268323,13.642702288674425,15.020406545654831,15.943506933105517,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.139021825561436,52.782372373633095,58.77283045538753,63.30473404904467,65.40011513685205,67.07454661154837,16.012634546968616,10.166832846134191,6.669222983299592,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.4738679875194,56.821068237186466,57.82085986839153,62.989758089358254,62.57246278724327,70.54527368973497,73.67872344822726,76.00636841740439,74.62018892327578,22.02046837185853,11.567641253113333,13.36892517690749,14.565351468890487,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,36.35704310507555,49.800718827110266,61.00979258696869,64.44826875818188,67.15581830350956,64.51183672810873,71.54409537439513,69.26048659075563,62.46448746581156,60.78410071476241,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,35.82066739382853,48.543451881753334,56.93451993855293,57.38894126651049,58.69972312695672,56.991435965093366,65.18657634558492,66.31680362067132,66.81575330833293,68.32887526815453,15.666330992170197,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,22.15586719690029,23.167466800113296,29.81485761856218,30.329438042690697,30.72625464913151,25.77644030001474,29.83685280664869,32.60943154806026,29.70832212950544,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,8.501664955569302,11.717930854693694,14.76694228667755,16.13794936410868,16.888530345811347,12.249641593244023,8.502914292610345,12.144821802119882,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,35.82066739382853,49.39256651190602,58.29516201696258,63.71177549373497,70.2875102764841,70.65267147138087,76.80968509973043,78.07063384243305,79.85257509248862,81.24776173697096,28.270033720142163,12.947726600131636,12.416762458361784,15.206819395684313,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,36.23922785100396,50.342463310379536,62.48319740306115,67.60876279251197,71.52266341663656,69.35847372837006,76.77562324752287,79.1458089111436,79.80959630543414,77.47919346219763,23.45752559486251,10.842022776144553,8.083770261744068,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,36.11778882064038,49.95273913369701,61.22896262812392,66.17661880048222,71.28843028023554,69.51703889079236,77.71575485297683,78.29037439069627,72.32527249994952,67.94577864826607,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.21360226393259,52.37321125992013,57.63283503783475,60.229671530003166,63.040263279739484,60.37757575165601,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,4.217733531222169,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.164763261055285,22.421405447206965,22.601110329148177,22.569118387818786,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.50705677510825,53.20290516245364,58.49625380189523,60.46530126125809,60.351797894753275,57.548067739330904,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,56.9884128788334,57.711591948182395,57.912979002047116,59.541035192793125,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,35.82066739382853,48.4738679875194,56.82467535313584,57.4762854669912,57.68081323004103,54.10521340362851,62.29723096066101,64.07991000069298,60.560067188815964,57.68439816801165,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.52304460439108,52.95944695769633,57.459522487179164,57.625958487508726,59.922080447945405,62.34423206085083,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,4.217733531222169,22.15586719690029,23.167466800113296,29.800673495250148,30.381014184588356,30.84423661576881,24.780822148950342,26.57980835806452,28.504269043475023,30.275861744173472,6.073008393791261,6.86133775227444,4.768672426043806,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.90046580432533,52.31241311385564,57.32774381134311,57.48652449142938,57.73475792364849,60.288418869453444,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,22.15586719690029,35.82066739382853,48.4738679875194,56.35475162996566,57.33794156959283,59.809230992092736,59.953354695806205,65.12813736912935,65.58206767059076,64.51492613977052,63.20926382199526,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,56.23037486483182,57.12578740315659,53.31059060542239,59.71374752115748,64.10734542038969,61.820909306349016,57.54943307423887,13.664800196903878,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,22.15586719690029,35.82066739382853,48.4738679875194,56.216562167424236,57.12137918364122,57.455822203109186,55.341938495878885,62.90433373269645,64.49833965537177,65.15385047730653,63.08898535619502,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,22.15586719690029,35.82066739382853,48.4738679875194,55.8977354465802,55.90911196036892,56.66191323826762,53.13365334274959,57.68971581913146,57.50903484314263,56.95962685075546,56.53182612048073,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,4.217733531222169,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,22.15586719690029,35.82066739382853,48.4738679875194,56.29431507433722,57.252018066746906,58.6467809292943,58.44230455561065,66.56880016161467,68.69778114424973,70.27942543668539,71.65007578789246,21.152258178403983,10.028633831692233,7.589663203505125,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,22.15586719690029,35.82066739382853,48.65128289004411,57.24810900194217,60.54928965829258,65.82881311798121,63.49461929281024,70.66108693839276,72.7821684303423,73.63356350469857,74.34326960945101,19.365735155728665,5.5932253361659106,4.731235513891084,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,23.982200395074038,35.82066739382853,48.4738679875194,56.091173921093315,57.069332120306115,57.97690275194865,58.17737361535437,67.03292388863302,70.25112333932951,71.9643135363921,73.39324109102677,21.05656775033841,7.585412631690041,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,23.982200395074038,35.82066739382853,48.52227403563426,57.09860236608457,58.95516738314435,65.74148443675047,66.00450282823901,73.19465336377536,73.34054800431873,71.21355767829273,68.16092688958277,15.559357333057367,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,23.982200395074038,35.82066739382853,48.4738679875194,56.756760844088234,57.54331449471225,59.37273902749843,59.091709751759176,67.21776557007915,69.14241821265975,66.714332240429,58.26940477695369,13.664800196903878,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,6.044066729395919,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,6.044066729395919,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,56.795906917958746,57.424790654255986,53.3145688076769,60.173606968339584,62.70264858226037,60.086835221694336,57.56768220518944,13.664800196903878,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.98050243303811,52.866155442200984,57.88555517623187,59.619988384964344,58.22490313499392,57.11972154264681,13.664800196903878,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,56.68548202090438,57.46068935917846,53.38960471498605,60.484150854460665,64.36243820712646,66.06997104949201,67.47717570087144,13.664800196903878,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,23.982200395074038,35.82066739382853,48.4738679875194,56.76381833239068,57.623150144460645,60.14855950185128,59.35207362163403,67.06267729019422,60.97151081478025,57.22960265618423,57.03488493543184,13.664800196903878,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,23.982200395074038,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,56.502018261709665,53.11058114103099,57.76587394941355,58.48357968888761,60.48548083595984,62.59286815967475,13.664800196903878,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,7.870399927569668,22.15586719690029,23.167466800113296,29.67925350583497,29.784218136868756,30.412984017101294,23.101482696764197,25.11835184598897,28.270154637960182,30.232753451872213,4.217733531222169,5.354101935960224,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,7.870399927569668,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,25.808533593199066,35.82066739382853,48.4738679875194,55.92203737759679,56.905188720568646,57.707669834140184,55.081470248913675,64.37675433785492,67.42808991233682,68.59310729987561,69.72165945897643,16.442619233998883,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,25.808533593199066,35.82066739382853,48.53503032923875,57.070806497775315,57.53243488000288,58.074998564022046,57.327339772455,64.19836709551156,64.54133252800194,64.54091177273976,64.21359226611152,13.664800196903878,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,25.808533593199066,35.82066739382853,48.4738679875194,55.8977354465802,56.40004621097832,57.23885346977373,53.24332680056631,60.468226986052464,63.22797206076108,64.35427969985705,63.36163812188428,13.664800196903878,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,25.808533593199066,35.82066739382853,48.4738679875194,56.28900888164894,57.19858113135743,58.02493901929116,56.92951048598769,63.60321609194193,62.57024113196786,64.61435363816086,66.84630337284591,13.664800196903878,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,25.808533593199066,35.82066739382853,48.4738679875194,56.406564208016505,57.4281447068412,60.35477503522426,59.794815173131816,67.0166754497678,68.76105176720856,70.75095737087923,72.74324595825593,21.907370397498788,9.439122930516932,10.405513420289545,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,7.870399927569668,22.15586719690029,23.176417512521045,30.348117965110603,30.765741908489282,33.542253630390135,29.32274713261095,31.722972099971805,34.032303364632,35.57325196158097,12.634870769997681,12.387969082855449,14.246767650034066,12.87193252727725,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,7.870399927569668,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,5.649803478202341,10.282221215298373,11.523495249027624,12.8883603262489,12.235806273016694,10.249853614498704,11.319731049787816,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,25.808533593199066,35.82066739382853,48.58888382386566,57.293081248883496,59.676763430286215,64.82327705141014,64.38720807334781,72.04814007342806,74.08246690881182,75.2863409470746,75.12097076090836,24.35727999480258,11.427444988549283,14.364205460861982,15.34710327535993,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,25.808533593199066,35.82066739382853,48.4738679875194,56.924667708715084,58.0126947805424,63.47990174717083,63.542472565578514,71.79845247184761,75.03319965632288,76.72674246027991,77.96878704318698,26.900582085312735,13.160969690269333,16.73578195277469,15.594865155422363,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,27.63486679147026,35.82066739382853,49.37885469912416,59.466699083701144,66.7893364734031,73.02067878716473,73.08137095510108,80.6460939356798,83.29239419577438,80.08611131044538,76.99943562513185,26.304308236577462,11.621189468570378,12.801227167981,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,27.63486679147026,35.82066739382853,48.669025813629794,57.42905624571539,60.99058290911439,66.1584535471506,64.49050571441794,70.84005568657412,72.63143586460626,67.50245830894282,65.08868541226484,13.664800196903878,4.217733531222169,9.696733125743418,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,27.63486679147026,35.82066739382853,48.4738679875194,56.56518267949117,57.458577887069715,60.43248502229015,58.94659571311785,66.30752589663808,66.06250633362473,66.18408538877439,67.93867630337729,16.48130523217175,7.137390706917935,9.696733125743418,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,23.23634618817274,30.3394282650783,30.781223467554554,31.86501448185615,27.107207183249248,30.74443484751252,33.35190689211315,35.331720848432425,10.300088653019792,6.002070599401508,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,27.63486679147026,35.82066739382853,48.4738679875194,55.8977354465802,56.04786661628795,57.07843268458798,53.62783302337524,61.810274212156614,65.76052364184153,67.68292965641668,66.35507291563032,13.664800196903878,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,27.63486679147026,35.82066739382853,48.4738679875194,55.96287705027931,56.76790916273199,57.44066196930553,53.91263871238474,62.41539477006085,65.70826680187353,68.24289932815432,69.53599780159749,13.664800196903878,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,27.63486679147026,35.82066739382853,48.4738679875194,55.8977354465802,56.37617755386792,57.18761755278939,53.24765891110145,59.022208310483684,62.60879927002605,64.86470603657335,66.24451839785567,13.664800196903878,4.217733531222169,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,27.63486679147026,35.82066739382853,48.4738679875194,56.02670747590304,56.94354957310947,57.45036269351319,53.758301823014456,62.41102171637071,64.15300437148557,61.16174376682472,58.69171348136391,13.664800196903878,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,9.696733125743418,22.15586719690029,23.167466800113296,29.67925350583497,29.913004403907326,30.58880567557708,23.932276746780726,27.941553143449468,30.454017285508407,28.721955595716437,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,56.18144170158193,57.014226327156784,57.10071201936374,13.664800196903878,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.98337696920507,56.69011838757256,52.935440415957615,57.705349439512744,58.07238443450619,59.87759309181285,61.1740948892186,13.664800196903878,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,56.238400680126645,56.6768969293967,56.653685420338185,56.57700408883965,13.664800196903878,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,11.523066323917165,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.975120393742955,56.758740751429,52.94707694807513,57.55576427752689,58.01551101501117,60.3089548550927,59.86965809813895,13.664800196903878,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,4.217733531222169,15.66665590817075,15.768619669706828,16.068943893471417,16.182945544908232,16.303483892198727,16.69929723898582,16.803292587885903,16.916428762734224,16.792034313392644,17.199799375756744,17.234739602627155,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.679013929449077,16.19556525342427,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.735583128368866,56.75898909694507,57.08964455921824,57.164042233231335,57.043242880313535,13.664800196903878,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.7950009851068,14.866701508840888,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.550985691531338,15.95459369798573,16.19988913264708,16.557854852733307,14.961601438875872,5.819195756155333,4.857688051353067,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,56.08146781884091,56.75998798884981,52.97700548665236,57.624900656608965,57.738684067326425,57.70559601857644,58.295586919282904,13.664800196903878,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,9.021945631756273,16.244417349933794,16.80060930525583,16.503881357669385,17.110721168385023,16.647164159774185,17.18735757978679,16.65270876177534,17.152314547556916,16.847435070200085,18.000919602269896,17.58126500966422,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.409402928201086,15.839461626491534,16.17230830346885,16.976244767447238,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,52.04126824023836,56.899273289641606,57.254057417852984,57.45306408275505,57.36322652416389,13.664800196903878,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.86689707667885,56.769660678574105,57.041896738856956,57.27573721538289,57.09322263284901,13.664800196903878,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,13.349399522090915,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.228833407956095,22.474890923616048,22.72560558864238,22.93779957402345,4.217733531222169,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,7.870399927569668,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,33.11386638604023,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,9.696733125743418,15.175732720264662,15.175732720264662,15.175732720264662,15.860699953103904,15.862916155398597,16.151460299781583,17.207631367230253,16.91304665590848,17.732633047636995,17.352213816284205,18.655882044598393,33.11386638604023,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,9.696733125743418,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.570517005548725,15.94112296789903,15.423505328595747,15.175732720264662,15.175732720264662,15.521094232716239,15.175732720264662,33.11386638604023,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,56.037720362634296,56.42764320734933,13.664800196903878,9.696733125743418,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.610688924595234,15.676157471098612,16.223183531465725,16.17976800391233,33.11386638604023,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.89940554872547,51.970723010762555,56.83777516508484,57.17504490469842,57.42951812416403,57.46363949468307,13.664800196903878,9.696733125743418,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.67541699918902,16.299123651195913,33.11386638604023,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,9.696733125743418,15.175732720264662,15.175732720264662,15.175732720264662,15.681722914168128,15.991873816503624,16.944597395831607,16.764582376087336,17.688770959975628,17.274687148628797,18.266674867741948,17.53158955706375,18.567684782368843,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,6.813729514805987,6.761931497477527,13.754297279926245,18.51567293874663,19.89429504912638,18.89216944821342,20.338957984236046,19.17511884607736,20.66353451715095,19.475248382113122,21.07472005957678,19.63983570606862,21.14943378168772,19.71801760486693,21.27149336016516,8.741488691431211,9.920037614118275,8.300842321848181,9.259758693408216,7.680865174068826,8.37609093297061,7.025054780595684,7.89651932778137,6.931594857631985,7.676639565580241,6.943064625707925,15.641330332503738,18.360165833761172,19.610668452307443,18.677430937240263,19.94174613910922,18.715342303004313,20.1117972275185,19.20825483674892,20.82612138437756,19.537078752290583,21.31758865751777,19.988798938226793,21.64682969970055,8.974547720857204,9.881881847452238,7.700861174027199,7.8180929784566935,6.347777429318724,6.350320269241176,5.307915813429911,5.123201058468336,4.742327839551648,4.862381491729302,5.106059085558365,12.901796053610594,16.89697850632164,17.426850811485473,17.964267987357296,18.35316636030025,18.438785251359594,18.55073933740668,18.424039887664396,18.690094826262296,18.57105215404387,18.703489989192892,18.49842296743368,33.11386638604023,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.792095517070207,16.426364685245087,17.019299407540032,17.1970572481914,17.397727856554088,17.41766609909891,17.562290363717512,33.11386638604023,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.083382428204343,13.083898618962559,17.72161764487437,17.391102992704603,18.35032640272458,17.68518669798791,18.678323348341664,18.097253403615692,19.328474440390313,18.48487488449293,19.91604682599684,19.073578939731252,20.360392521560772,33.11386638604023,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,11.523066323917165,15.175732720264662,15.175732720264662,16.187975757320583,16.72805289336481,16.720926097666773,17.014709125229064,17.0272582662022,17.365418563421173,17.714588397957503,17.818270400815504,17.7124827191109,33.11386638604023,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,11.523066323917165,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,16.159514903134035,16.792302262461593,17.14483820060815,17.571317048729806,17.79692292330631,18.407424552452778,18.52784887440264,19.08119441674129,23.982200395074038,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,11.523066323917165,15.794603294703782,16.77469723843782,16.78073011822709,17.99809032136522,17.59045750788874,18.597645593721392,17.7453126166218,18.733360233770178,17.94386945495289,18.545961310686724,17.410221351622326,17.840730472292954,7.658685417850063,5.468407150518479,4.293511019936707,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.810066561157212,16.863581599819263,16.85968617336179,17.931001943816806,17.469538553088064,18.463383488986338,33.11386638604023,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,56.17473067766019,56.51477552246571,56.68329568005937,56.625721006503944,13.664800196903878,13.349399522090915,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.389833843066551,16.026613683849508,16.21443021225318,16.789675411005014,16.837116638673088,17.78691531068119,33.11386638604023,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.914147912366383,14.775537970297462,17.245511327561466,17.93125263607617,18.203520441683498,18.627405659273474,18.915981900980256,19.39334933034342,19.412571696958082,19.896540392087065,19.992112504021012,20.31635565906579,19.99022742199188,33.11386638604023,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,13.349399522090915,15.407626774234132,16.12812212144724,16.41976214125573,16.77088137878316,17.0739300497301,17.442117077962674,16.822109007156907,16.611479522031967,17.2131036118491,17.67415005789277,17.746909035047253,33.11386638604023,37.647000591856106,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,13.349399522090915,15.175732720264662,15.175732720264662,15.46185350156049,16.523714010749433,17.240163966203802,18.115616830368268,18.601818902405828,18.986962631490574,19.074428615036698,19.39901827597417,19.248663902110696,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,16.437166857864227,16.193919831354336,19.464219991089863,18.42836687327079,19.80480750506859,18.788321551482266,20.174476114271023,18.8648516236941,20.32910607650595,19.238955437182586,21.04858408677258,19.73591683999772,21.592663016285048,20.209002840636504,25.808533593199066,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.582088835298941,5.00624968248106,14.750891050573678,17.108860715345163,17.799483814223247,18.153529249694106,18.38035849402338,18.186213098502094,18.430255401989307,18.299367793912815,18.366021954570098,18.068356551176418,18.627589684095554,18.624501904776064,18.475590336803524,10.45703894980671,6.4305377108340736,5.510328818832933,4.483220929918422,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.68415676948536,15.955872189067223,17.107560519068546,17.204914881239926,18.355483660578685,17.838280650375538,18.903974440200873,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,15.175732720264662,15.890023071059957,16.87712764730797,16.438033238605428,16.83272984568164,16.39081340259749,17.267969784626676,17.32561729129579,18.74675866080071,17.96033907465383,18.819443362056038,17.92565371107265,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,15.175732720264662,15.737452900545122,16.15229700161382,16.53328311289086,16.76774107965081,17.311740475053604,17.63060531596891,17.755169466009082,17.605818364028785,17.677759027825378,17.542655260696367,17.708618960581422,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.920922631411806,56.16555532747116,56.26215079661419,13.664800196903878,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.93733467009026,16.24010207100261,16.370434152515227,16.730268765268843,16.812726088948583,17.154336426863168,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.94195885755377,56.13591335882157,56.28003731565102,56.088856586513884,13.664800196903878,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.73726984384905,16.060003497233183,16.27544311651189,16.721348205723046,17.497494425171368,33.11386638604023,39.473333790127306,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,13.664800196903878,15.175732720264662,15.175732720264662,15.175732720264662,15.761820452526395,16.665999202729818,16.665461625719143,17.41997433093078,17.042700161018164,18.36231332958539,17.908085064420238,18.420077350317253,17.136885803492792,17.58299012572836,25.808533593199066,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,4.217733531222169,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.902163668703635,16.176105365619577,16.285478585464716,16.641003961036596,16.812115308797402,16.94494012898061,11.386313136192143,5.370628123989902,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.685869818445896,16.126348709342754,16.382663844939255,16.502315225046587,16.72415065565119,16.82306003694833,17.048304502874295,33.11386638604023,41.2996669883985,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,56.10131441763727,55.99954389522214,15.491133395077629,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.687853503427025,16.46786178309157,16.386560846124087,16.972987797242276,16.89962134252772,18.3387172420922,33.11386638604023,41.2996669883985,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.491133395077629,15.175732720264662,15.175732720264662,15.175732720264662,15.175732720264662,15.611910171827956,16.19477752865812,17.030613350643108,16.97797808885436,18.170085726790877,17.729760463362137,19.036310451344733,18.326450585014122,33.11386638604023,41.2996669883985,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,16.432723395931045,16.623462722923165,16.7919166668612,17.139723759016032,17.554321648904036,18.333217321542556,18.887380663552513,19.49890713820082,19.583120138569434,20.074107962870187,19.784675354265506,19.793244317485737,19.234374950021728,33.11386638604023,41.2996669883985,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,18.22674108849704,18.084501076940413,20.041871735625087,19.479990040962694,21.501019899908027,20.090109961239925,21.866726409953614,20.324923344257368,22.073892423425125,20.444367907873318,22.1627799659556,20.474733150967527,22.158329854965142,33.051861315234284,41.2996669883985,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,55.8977354465802,15.491133395077629,15.175732720264662,15.855028017415723,15.995780226684433,16.464255128013054,17.37704188441904,18.070232671584158,18.777004621732374,18.82800019651371,19.33743397882334,19.11406455499204,19.36139333248272,18.95512857492323,18.912913531588448,27.63486679147026,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,4.217733531222169,6.044066729395919,15.175732720264662,15.175732720264662,16.409614175573314,16.55480696717282,17.487571112593614,17.188802826919282,18.266210923194496,17.702006077620187,18.845833593594477,17.834205502457515,18.114551465041234,16.89862810451299,17.72733799239311,12.538348750289916,9.274163176061816,8.392805162181066,9.54662561587575,8.06465864360467,9.158380463058235,7.82280194151786,8.928139998010513,7.850849877756028,9.409907860685678,10.25548008882631,21.331559479258395,20.221660692903193,22.429044798267753,20.937912683714654,23.0640657236953,21.7708742982424,23.908410657396786,22.195476915525635,24.5825470520976,22.700022688565607,25.133568431352735,23.079882877941348,25.303217130805216,28.144101661060485,36.32990226341875,48.98310285710963,56.11514983920845,55.872933418306545,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,28.345412051477236,19.079799938877358,21.385802774889626,20.2490895224731,22.543128699268845,21.438334421761898,23.704046058051166,21.851095198534896,24.1423529451381,22.250348158345506,24.83134409054259,22.855435490939776,25.248776965215075,29.97043485933168,36.32990226341875,48.78855587222469,55.872933418306545,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,26.521342530363647,17.553114273255584,19.55094837246237,18.95280225728429,20.735192693641878,19.577601809471567,21.286092933535514,19.659609948968725,21.13113302465028,19.58939325804852,21.152532879457553,19.662808673580038,20.997577983072752,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,26.43078043713183,17.028746274953832,18.09651885951681,17.73861333908451,19.40414706877977,18.924198179865964,20.67777333166506,19.46101896229479,21.04672404166603,19.784516083626443,21.61145288485858,20.286879771945983,21.781286152467672,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,26.967533412516765,17.710584568817957,19.21863347107248,18.46400007565232,19.705853270985514,18.657910286860467,19.936937600170832,18.851503918670808,20.17207196307691,18.989937779044674,20.24012698548048,18.997585199559996,19.964673430586526,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,24.62279938606818,15.175732720264662,15.637660164948356,16.51425697835359,16.550005357863107,17.69176021303312,17.276571650415722,18.13816859519419,17.4006399450232,18.37712673687465,17.760661082429863,18.991079198002605,17.92240367086178,14.706215292807597,6.142135860608344,6.04132344261296,4.973045011941782,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,7.870399927569668,16.05284128568782,16.46486739789432,16.834336920387507,17.100310388331373,16.989571504576205,17.059574888638558,16.943159618495333,17.0972244165621,16.99772644454244,17.13767254685592,16.976240604139974,17.07464678715598,16.8668128266425,13.284587694730854,5.7136894241961524,5.320034560830093,4.497089517552391,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,4.217733531222169,7.870399927569668,15.175732720264662,16.094789719178394,16.801968316795417,17.165541066225373,17.343788816885358,17.39830501980855,17.324521504131486,16.856559439394765,16.550565316344148,16.413473981254523,16.75025848305413,16.92405277155571,17.081821576421987,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,26.125243844903473,17.04730285495307,18.616778052515006,18.22782843561967,19.79829093515144,19.00323691230416,20.700937095691625,19.554370373388178,21.278554373966436,20.001469259001517,21.844700190699996,20.41740845110466,22.10802952416472,29.46119998949784,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,26.80893938025528,17.67669886004873,19.493713289763498,18.831065132834215,20.62020804181837,19.537693252759514,21.477126710279897,20.123110174211867,22.19649424552909,20.54519518667604,22.430022947013,20.60045544669334,22.288705751756133,31.242889536779014,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,27.315270651870733,17.770364178643685,18.826114845557978,18.069524040812826,19.10886892784852,18.346692233012753,19.55319425851397,18.58365827081619,19.717742995461325,18.76226003219692,19.852212751142225,18.820391319131463,19.933365167177417,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,59.55040184312259,27.778907267529586,18.232366712632658,19.64770608636947,18.634323466993468,19.99371642454603,18.875934244561353,20.37043479558192,19.017303445603428,20.481232176999182,19.30150189616099,20.751981132268956,19.47300853686087,21.286114326708546,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.860532404291526,61.314729970587834,30.54609408983967,21.03229161176761,23.007864498767223,21.518919689165493,23.651746365035326,22.066083846544473,24.333633991472908,22.61444621012255,25.013957854833343,23.035876178540146,25.188369850215764,23.032756268107466,25.070898006323624,21.028633545032147,22.665102066539237,23.67670166977661,30.188488375425198,30.188488375425198,30.188488375425198,22.665102066539237,22.665102066539237,22.665102066539237,22.665102066539237,16.42399503393026,21.415594960787118,23.757774714997254,22.270063343585715,24.670493244976125,22.8427316236487,25.253715344078522,23.17546824287236,25.331370814979714,23.131975269915568,25.29921941279667,23.225649443379822,25.485032511491447,23.19800346621542,23.120625668324628,11.559258900737131,12.686708269107815,10.038941984347172,9.901745407455742,7.837050195699072,8.134164817442597,6.731556672493775,7.236117908849701,6.7195730298555,13.457778751126611,18.413249999477802,19.85061097623196,19.07183002908358,20.509410485704795,19.283908123520348,20.54807137209219,19.20130403481215,20.137155339211198,18.766435235597015,19.944353481121393,19.238348506513827,21.00664234986857,19.665311061645884,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,26.555092304447747,17.51556354924205,19.402190479365427,18.718371999513693,20.16788403556792,18.958714325033178,20.603103746891527,19.58089352955353,21.65541121172432,20.231431825329544,22.080085998099833,20.382430176005045,21.949329390213563,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,27.78450673223778,18.503468207359113,20.253792602207653,19.36791162875321,20.786771679111265,19.58137696337407,20.954958525000634,19.70237694949349,21.06506485254189,19.824977599248992,21.316120292539853,20.07662925470483,21.49403724199684,31.287533187769036,35.82066739382853,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,27.538664378320288,18.049784786459337,19.27919420662124,18.60949280194709,20.153476304357017,19.401882622529612,21.073473773448185,19.998891863533753,21.73829593390112,20.50350398638577,22.287508624747115,21.484695888722054,23.171947161533517,19.611645132687638,11.866502824452501,9.66747616662961,10.223228366790195,8.506515782100765,9.488749884413732,8.290138061361986,9.404221055200768,8.329944325987013,9.70721423354973,14.161110994971132,21.246244340633705,20.19084190479609,22.120508530279555,21.317252209806302,23.13840011932118,21.712840156150996,23.459852771780277,21.735929974376727,23.308781874336166,21.666835939333325,23.364930198413163,21.782378897952533,23.524005932660515,33.62310125563046,36.32990226341875,48.88582936478896,55.860532404291526,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,26.850338811751996,17.646940723951815,19.264484933099688,18.573028622490934,19.9350521371522,18.884372141108834,20.318694365843,19.248288046408536,20.829684370395423,19.69816664925991,21.60982412110926,20.379758377410436,22.173256747646743,20.288414140997542,22.15586719690029,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,12.062258953923129,17.725100858015495,18.8501174172492,18.16159253616728,19.194929913090018,18.25091526685753,19.123536106890608,18.313066583499644,19.586520349887518,18.86089858082744,20.31561387463166,19.49679428523353,21.186819593888888,20.067032327588947,21.57365022673386,9.222487780808832,10.31369542466552,8.421304920489398,8.907060535175795,7.398897788708393,7.833093373267492,6.63570671821264,7.285958939573919,6.896451160176049,13.697550589563262,18.589470436316837,19.86606340729923,19.001029709366815,20.34853551053545,19.326449571050997,20.69362955069699,19.763976836883693,21.716626302132827,20.771833986270227,22.84103540095696,21.534002649363053,23.046578929587803,20.899918115437533,33.03946030097565,35.80826637956989,48.4738679875194,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,27.140556569016017,17.81288117214936,19.258921995464277,18.639218928372895,20.45310970738516,19.62793758693661,21.570867276602968,20.184260920271367,22.042338975014786,20.600800328453552,23.001367965526057,21.794448944424236,23.820950794872427,33.62310125563046,36.32990226341875,48.594008887339754,55.860532404291526,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.92503733491607,19.158110768137206,20.748119650735802,19.68209694207185,21.80820368423982,21.02097245281866,23.52571134351123,21.860310298628274,24.092650893896725,22.27908983158656,24.54091485109707,22.578940780738975,24.79119199342545,33.62310125563046,36.32990226341875,48.98310285710963,56.30969682384976,55.84813139003289,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.497060050760464,19.013900719740036,20.85749124211211,19.786556473653047,21.773745670751886,20.585620901856263,23.05266101624519,21.311487741418528,23.119342305503448,21.592714894562164,24.115486579873124,22.621956140032466,24.958145305578824,33.62310125563046,36.32990226341875,48.98310285710963,55.92060285432351,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.580295142466415,19.258094730887358,21.640106663147513,20.939142093219225,23.661958274929116,22.185033949253075,24.796123441198528,23.14810689378044,26.19874901855463,24.13537138571131,27.307529098982283,25.162864823354685,28.61234551020051,33.62310125563046,36.32990226341875,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,61.885969910984,35.91205331844415,25.032884533181445,28.1504641591314,25.397648333789235,28.56555457740204,25.67950840610877,28.65469440363123,25.650830315554423,28.654979618085015,25.69748488120242,28.643966654615024,25.61314051880223,28.77217063600398,25.99407313417419,22.665102066539237,23.67670166977661,30.188488375425198,30.188488375425198,30.188488375425198,22.665102066539237,22.665102066539237,22.665102066539237,22.665102066539237,19.770864471253716,24.05782862677356,27.261644077064265,24.687036848262586,27.562552619640538,24.679623305431353,27.65888974555152,24.934793139066073,27.707487680431743,24.72377805205548,27.135301371037606,24.260414665284753,26.82649509716337,23.97516455137967,26.384015499271936,12.251072925745474,12.64123641189581,8.648018592108647,8.491342417253719,6.93523005946748,7.228685352963984,6.2500874694816915,6.754040257764111,6.11076574700496,12.661732422091973,17.87056348380118,19.230748630437855,18.673251494695556,19.951958872982026,18.563396245007482,19.858219197144862,19.021247420242776,20.597446349415705,19.613971771557317,21.83796657492197,20.03449480432796,20.93341976774158,19.534104568818485,33.046900909677,37.57259450703515,48.43666494498711,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.88056885456095,19.412568641514394,21.10186168162986,20.33582577239085,22.357393553524954,21.15188474084868,22.930954962159873,21.605505873826747,23.227718454928848,21.567659809818654,23.257212720778398,21.766890470893177,23.424673426506814,33.62310125563046,38.156235461689946,48.691282379904024,55.88533443256518,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.735759841876057,19.53272997875741,21.261100716176347,20.753962917515956,22.462506316048092,21.22048406766679,23.127030807132922,21.64940471453817,23.324512463500024,21.631618066030914,22.889839774554783,21.460095589552097,23.17342120697983,33.62310125563046,38.156235461689946,48.98310285710963,56.2124233315291,55.84813139003289,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.479592111260256,19.04445074369112,20.690739018549877,19.657089698368956,21.965754221564726,20.931040638414647,22.92207404937183,21.437433692718663,23.488226215613665,21.80035663219467,23.6793638140793,21.726920434379096,23.771026877384543,33.62310125563046,38.156235461689946,48.88582936478896,55.860532404291526,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.69383726714327,19.31232006610016,21.12759918541314,20.392064869536302,22.15347167128504,20.8394128653732,22.77950901805902,21.25007737799616,22.96301084258472,21.29104417383363,23.290636682163854,21.656867057863337,23.551920691155786,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,51.800142815495086,56.2124233315291,56.40697031641404,56.40697031641404,61.885969910984,30.85415229440256,20.899587958133342,22.527536749744907,20.972768784527524,22.739840533454018,21.273371603409647,22.86252991726915,21.375496231068144,23.124880223025706,21.512996896558573,23.29814631729962,22.02700049881033,24.412969760343074,22.688868997626425,24.491435264761712,23.67670166977661,30.188488375425198,30.188488375425198,30.188488375425198,22.665102066539237,22.665102066539237,22.665102066539237,22.665102066539237,18.759041682716415,23.564929852282344,26.290426235331058,24.18121853682492,26.86147467484803,24.280799334753222,26.535900678708554,24.209670077074065,26.621440134931333,24.246254086412375,26.742722763490455,24.518824753773558,27.062799286290403,24.657667706000417,27.145340460158057,15.545063036810506,15.948036893906336,13.285088506924865,15.279202706376768,12.771028673215191,14.707884524029241,12.34949468185036,14.595827650650195,12.853981529513383,21.31924873049636,24.579349544806078,27.21879512559849,25.022395838448826,28.018797093315058,25.64691425583219,28.409731030417635,25.94818404120591,28.77268808985534,26.059652026311074,28.91394964546821,26.436037843967448,29.240850674634512,26.471975395737825,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,61.885969910984,36.19969896880536,25.28275894020558,28.22955200462157,25.889506886993523,29.374114448948685,26.06660237517267,29.334371365337955,26.481935473692555,29.631084525079753,26.55395487307758,29.877469224211232,26.692681310827545,29.154960744615362,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,61.885969910984,33.60164124901524,23.81467854185881,26.95877927241912,24.993533956455572,27.82529554687845,25.331173531167646,28.026229973330537,25.644511035028124,28.856954857711035,26.384522319328546,29.215114252258214,26.615004246867212,29.646311962760922,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.40697031641404,56.40697031641404,56.40697031641404,61.885969910984,32.741980733559764,22.785772332375416,25.41740616001044,23.479426270097978,25.8671673749277,23.4294470472546,25.599236054791138,23.421410877250374,25.4278531225191,23.124947504616404,24.75145753086234,22.55179818103454,24.400244377827853,33.62310125563046,38.156235461689946,48.98310285710963,56.40697031641404,56.30969682384976,55.823329361759235,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,29.55125359951344,20.52448688929697,22.344513893528074,21.154371135784668,22.98425438321585,21.649231962659155,23.55249552208896,22.170476226917717,23.79818807107694,21.85670244296631,23.727994664196313,22.20987545743257,24.233890997113754,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,55.84813139003289,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.243297942261787,18.689180339427356,19.925975556133682,19.12297753048619,21.44612533202381,20.878144534659153,22.945652369828178,21.619508025747532,24.059157201371743,22.52182387687032,24.868358190884024,22.795852967939027,25.40982713803623,23.347642365967324,26.31776846278929,23.67670166977661,30.188488375425198,29.99394139054026,29.64205046330268,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,13.07991123646656,18.742003697916736,20.31131869396234,19.263021580817096,20.597759085811244,19.60134907161961,21.386898852759714,20.69258065026026,22.463708023920486,21.44142476303417,23.439319537967318,22.169660751650213,24.379849840660725,22.702765640475388,24.364132124625062,14.978303389695435,12.31703335259123,9.913620668460283,9.817866520065522,7.8629771195727525,8.498508971626242,7.531830635846252,9.375939302450236,9.537964755547458,16.361278484810338,20.641653066281616,21.92647660080758,20.64964014754664,22.199840941915767,20.852734668202142,22.35026484980987,21.178284389178774,22.839454103008073,21.460597549611265,23.3570509347157,22.08700214572977,24.226195007343858,22.722200819336365,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,55.84813139003289,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,27.58302023107584,18.09975494979682,19.58467708956214,18.56677983522933,19.684737140439072,19.244602974999044,22.54423360750056,21.304936497388642,23.082405777074676,21.3023644654218,23.283367897119646,21.731117441467863,24.139995644324205,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,55.933003868338524,55.8977354465802,51.68000191543111,55.860532404291526,55.88533443256518,55.872933418306545,61.314729970587834,30.36064929585396,20.479840941382918,22.145711100713417,20.837246101283416,22.54880835292384,21.122867776518525,22.68103295729598,21.091817395446252,21.61603823189507,20.20271722132049,23.18046375266902,22.074712348369324,23.867367455173902,33.62310125563046,39.98256865971753,48.88582936478896,55.860532404291526,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.3564708352745,18.6608683406565,20.07080391674624,19.17537989857619,20.92190119661375,19.64306269983762,21.006044441164637,20.288198603381495,22.54431324156547,21.02173608791043,22.819718224086582,21.32838549014483,22.9514512134618,33.62310125563046,39.98256865971753,48.399461902698434,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,26.58172393155609,17.627708569178786,19.02752264906234,18.52772803096028,20.13117222390041,19.22636279080935,20.89674192728445,19.30141642537301,20.64623046377087,19.814788834777847,20.721693083581602,19.19393044347667,21.470594425831,33.62310125563046,39.98256865971753,48.594008887339754,55.88533443256518,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,27.357963239292374,18.172601996794633,19.765797266561375,19.040667006525684,20.38611407794073,19.395639614790262,20.694943938546178,18.904082226317744,19.552152432851734,18.34874703030865,18.797268333965917,18.140599909144107,19.4180224201406,18.688179653273785,25.808533593199066,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,14.72469681885009,19.69434757970965,21.20940748711165,20.117307746611807,22.248187474861766,20.609580736460376,22.050313985765598,20.88973647850789,22.6198229693062,21.449072359585692,23.311784335955345,21.69601008817857,23.51455730663875,21.787860541140635,23.36047915401183,14.377429169894283,12.1999435342191,10.209770963637707,11.278935803175193,9.63130777520036,10.724833247590253,9.239381660636596,10.71829246022265,9.646249002334732,16.760462511783413,21.111601653188472,22.781933498632544,21.289641353300933,23.09652167247354,21.64021487912305,23.350245554465552,21.70197821005801,23.334309876527897,21.55936315978649,23.01839328587815,21.44304776168324,23.39024030591628,21.943699567690118,23.806791060247832,14.831378338021917,12.258782753968,9.651005571080065,9.528833402349235,7.871935543320986,8.230255935372154,6.767011608965653,7.005352970233119,6.2264517649030555,12.878002509606661,18.282277756139706,19.817766147143562,19.06044852403766,20.210537374103822,19.147215703681237,20.58406480980133,19.113263764934185,20.085998918454404,19.381840696856116,20.051177853814877,18.645997668811198,20.432958212771503,19.883381932945085,33.331280778424855,39.98256865971753,48.42426393097209,55.8977354465802,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,28.809148536618103,19.326865371549502,20.78191414066985,19.69428447772406,21.936564876722265,21.103916335850666,22.878711914357666,21.56777265935149,23.43554868053204,21.92703816100852,23.771460615255492,22.25715418851175,24.236267354564855,33.62310125563046,39.98256865971753,48.98310285710963,56.40697031641404,56.40697031641404,56.40697031641404,52.18923678502134,56.30969682384976,55.823329361759235,56.11514983920845,61.885969910984,31.585534798012034,21.774836740945116,24.046674734730196,22.458739605719682,24.819097787887543,22.79796912030607,24.42650332611981,22.1376599657808,23.715781909787278,22.296192099271178,24.539016751378604,22.388162674599567,24.11412866382147,33.62310125563046,39.98256865971753,48.98310285710963,56.01787634664417,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,29.62635992763618,20.6914828869398,22.654964220721364,21.346767086776012,23.33996817769356,21.872135994918626,23.661867916176696,22.114455522556113,23.768002807821347,22.163694386429814,24.20414419354813,22.546689742895587,24.42944446126824,33.62310125563046,39.98256865971753,48.78855587222469,55.872933418306545,55.8977354465802,55.8977354465802,51.68000191543111,55.8977354465802,55.8977354465802,55.8977354465802,61.37673504115017,27.57359279295711,18.170753528199803,19.3948647595468,18.563901406728068,19.82034594112281,18.39691967671441,19.06538248930379,18.23011748696047,19.355755270583277,18.285376422881516,19.294757284283985,18.505927737577892,20.281434890748613,19.334508798484126,25.808533593199066,23.167466800113296,29.67925350583497,29.67925350583497,29.67925350583497,22.15586719690029,22.15586719690029,22.15586719690029,22.15586719690029,13.721136948364512,19.16871372227575,20.696952514329617,19.77526448040764,21.83272102699658,21.148460659353322,22.775199315255932,21.473001499844795,23.197315936352208,21.622547454505632,23.191973437817918,21.982770716159518,24.43809423060951,22.80025674632859,24.666945166685853,15.29046883165574,12.811507333681874,10.316874122881396,9.955595180863524,7.764683905582736,8.785776031414573,8.02220090313812,8.63281678406536,7.707462207165049,14.965422564049504,19.928851544806356,22.051879130821913,20.864975005359238,22.605963709714942,21.56016355172871,23.639953177656313,22.004849070119405],"year":2017},"PV":{"array_type":0,"existing_kw":0,"module_type":0,"tilt":25,"can_net_meter":false,"installed_cost_per_kw":1790,"azimuth":180,"min_kw":0,"name":"PV","location":"ground","max_kw":250,"can_wholesale":true},"Financial":{"analysis_years":25,"elec_cost_escalation_rate_fraction":0.0,"third_party_ownership":false,"owner_tax_rate_fraction":0.0,"owner_discount_rate_fraction":0.0564,"offtaker_tax_rate_fraction":0.0,"offtaker_discount_rate_fraction":0.0564},"Settings":{"facilitymeter_node":"1","time_steps_per_hour":1}},{"ElectricStorage":{"max_kw":500,"can_export_to_grid":true,"min_kwh":0,"max_kwh":5000,"min_kw":0},"ElectricUtility":{},"ElectricTariff":{"blended_annual_demand_rate":0,"wholesale_rate":0.0001,"blended_annual_energy_rate":0.0001},"Site":{"latitude":39.91,"renewable_electricity_max_fraction":1.0,"longitude":-105.23,"node":6,"land_acres":10000000,"renewable_electricity_min_fraction":0.0},"ElectricLoad":{"loads_kw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"year":2017},"PV":{"array_type":0,"existing_kw":0,"module_type":0,"tilt":25,"can_net_meter":false,"installed_cost_per_kw":1790,"azimuth":180,"min_kw":0,"name":"PV","location":"ground","max_kw":0,"can_wholesale":true},"Financial":{"analysis_years":25,"elec_cost_escalation_rate_fraction":0.0,"third_party_ownership":false,"owner_tax_rate_fraction":0.0,"owner_discount_rate_fraction":0.0564,"offtaker_tax_rate_fraction":0.0,"offtaker_discount_rate_fraction":0.0564},"Settings":{"facilitymeter_node":"1","time_steps_per_hour":1}},{"ElectricStorage":{"max_kw":0,"can_export_to_grid":true,"min_kwh":0,"max_kwh":0,"min_kw":0},"ElectricUtility":{},"ElectricTariff":{"blended_annual_demand_rate":0,"wholesale_rate":0.0001,"blended_annual_energy_rate":0.0001},"Site":{"latitude":39.91,"renewable_electricity_max_fraction":1.0,"longitude":-105.23,"node":7,"land_acres":1000,"renewable_electricity_min_fraction":0.0},"ElectricLoad":{"loads_kw":[20.701006646125556,19.64268296121553,21.359487278797236,20.29583800119676,22.280907497304902,20.85140816556991,22.66644730304172,14.313136817597407,33.19539818584284,32.58839462198341,58.18306121906106,57.97373666488019,74.9777271340343,74.60751152704665,74.60584793002599,74.72771654380601,78.34359886062893,67.5722097805881,50.49724316357581,17.595563122349006,19.44070490795866,20.24134792538121,20.600164137986226,20.99978374718011,21.723141024694574,22.029773201928315,22.05208429930147,22.273149951346127,22.215095991437945,22.46053362589987,38.60454422894002,44.936389100766384,66.82934811421204,98.26141304955661,97.89444256945056,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8465855940464,101.45747860584973,108.31894356244334,84.95780535085274,85.02267330005293,76.48455807229888,30.206995220650622,19.04246226023631,19.60283449221581,21.18327132440927,20.581709297024076,22.160462966660656,21.260056728201793,22.910676227299295,21.8289704964416,38.568641071894106,44.95175487602786,67.06383865225735,98.66944927905044,98.39971419146016,97.98752865566816,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.2907325534247,108.34499498908416,85.06614563137094,85.18099388571244,76.64411438771201,30.712106003905824,19.567380220230447,19.956126093229532,20.60510409298386,20.28532715010938,21.27718441804967,21.78743557542141,23.301094078507603,23.01783225357532,38.612806081727804,44.902481811912104,66.68403204925389,98.1068476169801,97.83367564605356,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.27633247096243,108.30411673014528,85.01378273881689,85.11898521023245,76.56970375677614,30.32780756772341,19.21154285511707,19.53333667399241,21.255238572408615,20.80005536338757,22.52979400363821,21.561398287235285,23.305696859049764,22.150042119974593,38.584022815934595,45.01302436692364,67.178176087707,98.81057944687802,98.3512286367477,98.0923241168533,97.88748833763961,97.8318148803986,97.8318148803986,97.9626085324059,101.72456943548673,108.73109591718202,85.4435381672681,85.575287582568,77.04979256689005,33.41712477182393,22.317756970911525,23.805864924438282,23.6798851972642,24.632832460743163,24.82469229009789,25.596918430405324,25.71745771372708,26.153829032029837,38.13544021760661,36.832424566845084,49.992040765275206,75.20197824923936,98.20320263802208,97.96356468044583,97.86973575857844,97.84652998519897,97.87337666137101,98.07888679877395,101.6980098413321,108.60109763371032,76.70933012025837,59.60465270846221,59.67205964057779,42.520751272118595,17.59085758603193,20.182740184978503,20.094566088981413,21.78610389270974,21.182822155755137,23.33880525683771,22.529534683334028,24.689164589323955,23.183208135495647,18.46792633082136,33.199057686706055,32.374906565487755,57.70338744138624,57.394125788363006,74.4100421494217,74.38885264264972,74.38885264264972,74.51773069620461,78.3006612620393,67.52098637246195,50.450491908122046,18.309624334912264,21.34765962327317,21.631104689944568,23.579494828754505,23.031269668018002,25.29294422118997,24.35266793404543,26.038303532936037,24.885160322911315,26.57966742448073,25.28773947264311,38.733831844159816,45.418720541283854,67.22769813457639,98.69688735926567,98.28991076274087,98.0198452462789,97.95197619732447,97.83658357593944,97.8318148803986,97.92886539400729,101.62798156868992,108.56972387726834,85.26749454337663,85.39560103835571,76.8738416514727,32.00076706134054,21.320158484987903,22.069735559868622,23.014442583375367,22.894634536504338,23.72215442439352,23.474038743851203,24.305059917039333,23.709568505608193,38.677281411659585,45.06970102655068,67.16542410143596,98.8447401803447,98.64503813464985,98.36828922933414,98.24785555567455,98.00184291577625,97.83465080202342,97.90679000575622,101.4933072199918,108.31915950957107,84.9500897313095,85.01514107892115,76.4616828997424,29.88208494993125,17.26082509547096,18.03773126808763,18.194258089797106,18.07775464907203,18.3210983662929,18.61394686440558,18.98728720781036,19.00418348711685,38.07451722349825,44.46295036074059,66.6545473366391,98.29818882740948,98.01229602768589,97.85456500301389,97.84830439146714,97.865705582256,97.86293102404807,97.90298805469088,101.31853983525971,108.05981938712256,84.68520179594688,84.75632283067303,76.1883134777982,29.612929828496608,16.096273830113823,16.387248902064858,16.48991629703625,16.70222924457739,16.730214672543784,17.913331901606508,18.122352544377243,19.129709481565325,38.074504916323754,44.45709285905451,66.43260730030343,98.0025915211232,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,107.96640629946131,84.69825439191104,84.82916855202573,76.2951036320064,29.672929361397035,16.65533095997447,16.851622787087788,17.709978958966868,18.042776672041043,18.355798738798,18.904376965819512,19.268305665974054,19.656304466211456,38.122190169212864,44.50086745891661,66.44807316311962,97.94075801157119,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.49765001813081,107.82682570679194,84.51034643114919,84.72996132491565,76.22434758937094,29.666553387574524,16.51104894001889,16.773118919086894,16.701645858355864,17.274065755323935,17.749987271420498,18.04699457732546,18.541090071356013,18.57292250374518,37.411948344484024,35.82233975960444,49.48470258433298,75.06012142279872,98.28980223474753,98.08303449447845,97.91621458771117,97.83367564605356,97.8318148803986,97.8318148803986,99.5470168136544,108.09163081356826,76.21984558726464,59.10865497351897,59.19281289108807,42.07866930302441,15.790689470677197,16.15941895828338,16.555221393477957,16.994197159479178,17.345411425659982,18.039635490877664,18.15496276320637,18.73239236628242,18.40700733985011,12.12532006886871,32.713126985612874,32.068638041898005,57.479629341810686,57.220280996963844,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,76.17271883102515,67.27763308592453,50.16533997800454,15.615801510569959,16.02751026631331,16.122779515469702,16.389794048198784,16.956847168628244,17.263280337903492,17.565262116389928,17.780622163833797,18.01760228490163,18.153948329223905,18.222836420758085,18.069224061217994,11.287083369302362,32.75524337123582,32.276276302646906,57.83722899869395,57.70033095465722,74.7243619888341,74.59178172050387,74.4884637021689,74.48902472024979,76.25732562064499,67.31350459813305,50.191058921132196,15.497882203560616,15.654720098678617,15.966110736367487,16.185967319177518,17.157865573602578,17.942935321529657,18.703458078792316,18.612586366892454,19.29865269517655,18.999432682982274,19.911362930239047,38.204525997259616,44.67417029785169,66.95976711258368,98.75216915129062,98.60764453226066,98.46802792209799,98.3305571652752,98.18920869746137,98.20403246942975,98.20552931100825,99.95929269951519,108.3862331899899,85.01005123987859,85.08014826984339,76.50943004919827,29.849265963016627,16.789868579204352,17.484586685708244,18.14487284803436,18.774328198405417,18.910521002808654,19.336538976200956,19.30347415853611,19.906392192833042,38.30028966493613,44.75678424829524,67.05616247763545,98.87205547069415,98.74034424723943,98.62347659839045,98.56675950318075,98.52055758421338,98.49872978666681,98.47439733696186,100.16606580859789,108.54870161052858,85.16975458222214,85.24271195089581,76.67604965842278,30.098054092634978,17.847911700916832,18.617243715295952,19.465227856957643,19.46522441677194,20.08427458668233,19.856978308825244,20.37350301685184,20.130046440683692,38.383187836097285,44.73415142117237,66.7112885630197,98.07045323869966,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.4995107837858,107.9448877076599,84.62386178157183,84.71501969974771,76.18977083915745,29.612929828496608,16.54301503478959,16.87528870269002,18.11350773877597,18.388034115803144,19.22411346917811,18.841323269801705,19.442063639214297,18.91524408183899,38.06050650553361,44.45362489554672,66.56455519328621,98.21322346790336,97.88176774342413,97.8318148803986,97.8318148803986,97.86852836397797,97.95266376197837,98.01994919512352,99.80156707592921,108.23707382144461,84.89117940841292,84.98961861430304,76.42671740395508,29.747368571041708,16.625043630648324,17.09732763003135,17.400718983956324,18.050154291661734,18.320384772095572,18.520018587213613,18.56610168823884,18.878227353324622,37.60159453281009,36.02282642143294,49.45599153848749,74.77648736017171,97.89656489924806,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.49765001813081,107.82682570679194,75.90991013628057,58.806930688064256,58.865376476718716,41.710744099805034,15.497882203560616,15.497882203560616,15.785079498025116,16.127424426298113,16.671442885158726,17.107315451869557,17.102350680215437,17.476842953741734,17.390866934962297,11.165440976714796,32.63404500036139,31.893551438913615,57.2823292237632,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.44738391984089,74.59235789702439,67.26880327795566,50.127011366995454,15.497882203560616,15.592386710976358,15.763395416615367,15.840584124407115,15.819255698334388,16.292915015465656,16.16040498813047,16.14958761051092,16.268012331645018,16.35300610365715,16.453921580614793,37.66475893021502,44.15176858765182,66.33518688466336,98.0440196354279,97.84789771707123,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,107.82682570679194,84.38386346954734,84.39562404011379,75.85752102342303,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.56384451533353,16.674879272256653,16.90147471646747,17.47041372196369,17.478770170302816,37.74920630827622,44.13964844917561,66.20159347929709,97.86521685481952,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,107.82682570679194,84.38386346954734,84.38386346954734,75.85177258519974,29.612929828496608,16.096273830113823,16.26349570752663,16.36101786891684,16.373978591858226,16.259182357019515,16.096273830113823,16.096273830113823,16.096273830113823,37.22961637199071,43.79703658749262,65.98902680511316,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,107.82682570679194,84.38386346954734,84.38386346954734,75.80186372204,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.130666025303885,16.243962559029175,16.24502618984062,16.241105421186123,16.250967936114286,37.49503375452075,43.95833005983361,66.01478207917964,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,107.82682570679194,84.38386346954734,84.41575020713088,75.94056166752826,29.612929828496608,16.182918693194427,16.435017131136,16.699133232397337,16.72538316914471,16.84935613523946,16.703532417814603,16.7238938856577,16.619611717193894,37.70139953770878,44.13162559613329,66.23141129233184,97.86510516060275,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,107.82682570679194,84.38386346954734,84.44382481171193,75.93704024516934,29.612929828496608,16.096273830113823,16.096273830113823,15.497882203560616,15.629360877006661,15.684219970388549,15.698162752715714,15.712430262493662,15.806182908581471,36.94240710805197,33.80928402982967,48.99944508935536,74.411792489568,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,107.82682570679194,75.77168722162732,58.55605873681338,58.66883039989786,41.580918410001075,15.497882203560616,15.497882203560616,15.497882203560616,15.609679506139079,15.895970100007855,15.990093164384314,16.499018990854665,16.84114229997715,17.379818019678417,8.80061987609916,32.650695280546586,32.108969427792324,57.46859135244326,57.21335301117344,74.38885264264972,74.38885264264972,74.47544046247629,74.61875265997772,74.78099497515154,67.37922093586599,50.266885611633654,15.791973693822655,17.112796452225158,18.17432276784238,19.454629841237043,19.706729485812797,21.05715441449123,20.896323540150167,21.408765906621564,20.812230280201575,21.077493501133468,20.642297295970547,38.36280777497397,43.01461929409925,66.59986741449063,98.08843964076378,97.83912700588851,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.83367564605356,106.39368536828678,84.80987367976724,84.91740236227047,76.39113095220166,29.89025681874009,17.757504789001995,18.896174912196088,19.970067394405543,20.339739392397714,21.085117797645946,20.822185854162615,21.273006506115422,20.9367625859107,38.33528124921443,43.01944688855624,66.63718501087718,98.09703473975193,97.83367564605356,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.84013922719565,106.32404328917882,84.7036705682921,84.83915360544806,76.32373647924334,29.80716320980336,16.875957650615796,18.23606694203993,18.737150147857694,19.88937793234683,19.74269435244736,20.551849677838835,20.034630255060396,20.801096125281756,38.24100734361431,42.923433115652244,66.49812384374106,97.95687318618113,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,106.1609905690597,84.50433006759393,84.75555157162529,76.25444874334784,29.718927096218067,16.54623687931443,16.88498648454512,17.280046336016206,18.188028779639,17.94431257471328,18.69762913312351,18.54194448963072,19.754799530152308,38.10285202846148,42.78218449960303,66.38542552418753,97.92530247289235,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.83527237166906,106.36550729541709,84.78770201442234,84.91152903395513,76.35948401355891,29.789910655832635,16.971964384509434,18.013480138739276,18.50514159208337,18.978660133545837,19.10800035421389,19.416757691583637,19.261661869738223,19.796536760999278,38.11687336792322,42.87738689142298,66.8225630154103,98.66074178291265,98.57655924554861,98.515049752749,98.47323373548224,98.41719614641127,98.36560254176825,98.33261143917018,98.37287937337223,106.77835294971315,85.09990675859808,85.16510437322637,76.59305457989824,30.010458708355863,17.887223361367926,19.33650298976981,19.294501156688337,20.04701964823867,20.248142506817867,20.79585741463946,20.454605290051553,21.23026691130888,37.951423332132556,34.56962979328676,49.50370509496332,74.75300889523257,97.85201644730259,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,106.26675192454476,76.20885892762823,59.127101837958016,59.193542439088,42.06122022637132,15.829055569943073,16.531371397861435,17.680148115604094,18.465302963135226,18.889922343078705,19.02158458073558,19.2004236684315,19.664588739885044,20.068078075075352,10.882279217049115,32.52314117401293,31.730800617265118,57.19201557233152,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,65.49367583597511,50.01327512723199,15.497882203560616,15.658945519243183,15.866817486965727,16.0343475082614,16.10133278272,16.831437942724666,17.571634243192992,18.284145982911586,19.04142575673362,19.12881035318025,19.55806477979712,38.10593852870932,42.83779681217341,66.54869262269395,98.0504072398142,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8339220285607,97.96628984829132,106.46245250726234,84.79743511532575,84.90384245401069,76.36477279319136,29.73523377944082,16.728755148329714,17.495500452316026,18.513896138583622,18.75911073426312,19.72590764499456,19.683126646786796,20.64995979935504,19.950535168746995,38.21447572230489,42.85245640272479,66.38467004936109,97.88462493708832,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,106.1609905690597,84.49193177152384,84.64930986137037,76.10410060994003,29.612929828496608,16.263973143662756,16.68655315773735,16.771886432254053,16.90815690670472,17.819303445892047,18.347804670806042,18.961579203861092,18.29070117299757,37.88205530194057,40.91898860552655,66.12864172853952,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,104.49515543132749,84.38386346954734,84.38386346954734,75.79286136018919,29.612929828496608,16.096273830113823,16.096273830113823,16.382293506849358,16.75476191185684,17.497024804891666,18.07556459698777,18.573909021762503,18.81429551973753,37.96325802464995,40.99374875717222,66.5751940655424,98.39729837105575,98.02228554226106,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,104.49515543132749,84.52784312600743,84.70100739468775,76.19343733294201,29.65796152283392,16.547124828949094,16.86301255945913,17.845147678179927,18.198449559914554,18.32168403260878,18.185899491461676,17.898900637718093,18.550199382072083,37.99528361920823,40.96383698878954,66.21865685537664,97.85042752958701,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,104.49515543132749,84.39776700406681,84.54789895738061,76.02396351272756,29.612929828496608,16.133115032207577,16.142487207088568,15.497882203560616,15.529299305747507,15.61312796895799,15.650126907471954,15.802840932325912,15.785467616758304,36.90145529344164,32.007333710694546,48.84149041570075,74.39267764376109,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,104.49515543132749,75.77168722162732,58.61598169652403,58.70730315601434,41.57820876749186,15.497882203560616,15.497882203560616,15.497882203560616,15.609351757640168,15.819747181681185,15.942253745913431,16.00997353937804,16.031745817229638,16.30878312652029,6.251403486927917,32.02813853917117,31.3850962958856,57.16450014680973,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,63.82784069824288,49.935158477816906,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.150933883668245,16.208445134930034,16.096273830113823,16.096273830113823,16.21265757967665,16.51436823912574,37.54802360101472,40.708123435707236,66.1711900636844,97.84359164514649,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,104.49515543132749,84.38386346954734,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.233796331065196,16.494470188496873,16.62780046506467,16.76625076009408,17.797993535998785,18.00608502632667,18.896340803898163,38.068049519710385,41.24911210214295,66.94354250231962,98.75171550141427,98.58701832381523,98.59504367554688,98.63046802210694,98.64450925835065,98.58180316001197,98.50798361039546,98.53725630353249,105.25874306765178,85.22791739652857,85.34380563449555,76.80772135829223,30.391346172043605,18.844573327802735,19.830068472824316,20.38380415402074,21.391386780915468,22.174365552422483,22.86631815206321,23.08258263347209,23.517456288107795,38.717396510355904,41.9037204020668,67.45206262670048,99.17539189838304,98.95125470519777,98.7279695564012,98.5472404654302,98.62097054339188,98.62128440947097,98.71106976298509,98.81502389118745,105.54690097120819,85.51422395141081,85.59738489687847,77.03299789975628,31.98221104973221,20.65323037669249,22.30850321258489,22.527014360916173,23.746225000292338,23.72192388535777,25.01053211748861,24.277995662269696,24.721276695352653,37.067996706377166,41.991001965296874,67.5151680151102,99.2991559756734,99.12773728595424,99.01807116311821,98.97700916842061,98.93577620270068,98.8927018458498,98.79472964404768,98.73753897227725,103.88651970097601,85.60944175667265,85.70938056645562,77.17935824560954,32.2109836483186,21.472704621386878,22.21684032851742,23.213908417003193,23.05911571639876,24.014436963775438,23.782897983240023,24.748938925226277,24.291570407808443,37.067996706377166,41.96707212855872,67.11067574771424,98.46774520239923,97.99466737205798,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.84245118195768,98.17022441613926,103.48870854470944,85.19508864671354,85.2367605829134,76.6246366046576,29.98640356349745,16.855351392252185,19.488920349120228,19.147962410104853,17.616232540692785,17.619175446682494,17.546409402618647,17.770426712973975,17.775522865402507,35.78225941730759,32.46275679691692,49.185320018762624,74.53788369871751,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8492431068729,97.9268562570754,103.07149201755858,76.14448912788788,58.9842124575998,59.07092591230451,41.96188337541558,15.497882203560616,15.916721786659098,16.049900769685603,17.048328541058932,17.83165384813065,18.720989424710957,18.831082029572404,19.635227193563153,17.78632485877661,9.631191241791239,32.61300854103395,31.87369203446459,57.40119347777396,57.46554658512794,74.78371189992423,74.80215021621555,74.73901117678592,74.75352961115692,74.74990909190464,62.36306667647246,50.26470370439316,15.676540954637082,16.002435412904248,16.68967738062017,17.110980820104313,18.320907676339687,18.11183473122897,19.49807535460736,18.827969556409062,20.212262537580703,19.33651556112402,20.65261936662133,17.701658789426517,10.484201451659597,32.74679511361189,32.00491070040638,57.45077296494854,57.227773036456256,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.51377307425248,62.24724082455354,50.15619246248391,15.609647843047604,15.96272188195289,16.466104239674568,17.194224346871124,17.687352687524964,18.516641945980187,18.73955850895438,19.00166633036774,19.160276854755757,19.31001668206435,19.42449823418137,36.40308699552382,41.189568895306316,66.82804432553037,98.66503946200051,98.51849547770995,98.37252103846924,98.1098910137276,97.86687363782886,97.8318148803986,97.8318148803986,98.0094578626261,103.22879245651941,84.87828093728666,84.93365296894835,76.35196996430061,29.683997722859726,16.64510582810223,16.835833768183356,17.163753108120495,17.89851451356951,18.18677352554691,18.618210352869205,18.865118312305313,19.25019221449285,36.4500061111438,41.13143004561501,66.71996846324365,98.49189482753606,98.22918667236128,98.03290928885428,97.83654515112799,97.8318148803986,97.83367564605356,97.84975472450624,97.90449980157248,103.05585523162438,84.76984129161087,84.88136072013862,76.34042650871878,29.6944107204986,16.697320478872292,16.820264663842444,17.748687629538477,18.50192773956229,18.68964902243337,19.237910776170555,18.899268032115,19.08351175820959,36.38612030412822,41.06410958498235,66.4843515907584,98.0623169632544,97.83504324429798,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,84.51623073610912,84.67810684443955,76.15478338453408,29.612929828496608,16.317430943204094,16.611391683566406,16.773367595958828,16.97133891056087,17.73744352391743,17.948925282089483,18.293700098853765,18.18238762046779,34.56213592077335,40.84747282942104,66.12741446322714,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,84.38386346954734,84.43554105197606,75.959142848621,29.612929828496608,16.14791557274906,16.35324800963165,15.898510236156717,16.10090936707532,16.127617929999808,16.659959596596014,17.04592555517993,17.27933740174942,33.93426704867863,32.30214623010608,49.01131067209106,74.41930260058695,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,75.87427510147859,58.81761282498099,58.91951193752781,41.793194916524286,15.497882203560616,15.611034497327962,15.894345152898515,16.066194915137594,16.165689890689812,17.113782696128922,17.662161723574663,17.884897575115925,14.984709936160513,7.745161991797293,32.36685475140974,31.67296477429825,57.22055284439897,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,60.496170422778434,49.95034224444689,15.497882203560616,15.497882203560616,15.560452150409299,15.683142118297269,15.898656329860572,16.51412191238932,16.59555119192396,16.568526662038597,16.71947838181031,17.017240951056735,17.211285279426953,34.41670813608308,40.823429706025664,66.39444688842143,98.2013504689234,98.13208648449402,98.05677156017971,97.95784812733791,97.86951342706547,97.8355364122128,97.85187231732287,97.92346874594836,101.35035657555514,84.69716094555167,84.80836500683021,76.21848415455834,29.612929828496608,16.096273830113823,16.26857730107593,16.534642017203414,16.529531120279017,16.7503733412805,16.628734658050497,16.833373981244467,17.921662027984134,34.645485495098235,41.069404534035684,66.68567181211047,98.50334440880391,98.334861876213,98.21978667843315,98.14781052386094,98.1302401960288,98.17317207080858,98.18144271988845,98.25648698176923,101.6883392585918,84.99990765089113,85.08153645383474,76.52208603622054,29.853642400033817,16.842188703336184,17.553759728324405,18.172558019185985,18.59640801788064,18.580938407938113,18.97817797722057,18.974706005684382,19.3363871363487,34.851354223717486,41.26550239685987,66.848150620827,98.6153855663063,98.4232215260638,98.18114578319603,98.20405354934759,98.1811181091225,98.17363308130976,98.19622994035642,98.2424645830169,101.63519770047789,84.92728705513389,84.99042796031073,76.41881772391226,29.68384905850921,16.688923326888002,16.82118380337475,17.599863007708155,18.327570151932232,18.54249164667226,19.199161936011304,19.274903290463076,20.054056234988256,34.93757234674488,41.35192116612307,66.89665576437228,98.54226949919284,98.21664546358546,98.06319066442983,97.89702080062746,97.89087917887328,98.02156916341082,98.18979268490732,98.32597383373567,101.75610287064217,85.09270398404729,85.20113863859719,76.65327901561382,30.223424813197415,18.09646405429662,19.383836125635828,19.674826533222035,20.696786936915725,20.597365279631223,21.82947844072126,21.539861575851752,22.610126069012658,33.52925407630067,41.54969448430416,67.04376341711328,98.67493840362573,98.42251026541197,98.19793327274989,98.10552762655315,97.99480883200218,97.90394605889715,97.98058867312326,98.18589229096864,101.67161207250874,85.02605694656198,85.1231020278208,76.57576129888486,30.151457922413016,18.056294302166716,19.29648283556998,18.95413109157118,19.736467870156904,19.56152546431913,20.326736756252288,19.98808563302521,20.520947216905114,32.71937618216528,32.679038695681015,49.43525110824208,74.7553915330709,97.85758781905703,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,75.97951815289575,58.98026023219539,59.070790767662466,41.91231719464917,15.539007766937875,15.894972199066862,16.14127351972622,16.62847821185424,16.812481021980133,16.17060762156233,16.05226453145696,15.953187969834158,10.912452377118765,5.847596460574189,32.203287197008265,31.57122921839525,57.16727063768877,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,58.83033528504621,49.96524324266699,15.497882203560616,15.540973388997408,15.806440705528276,16.0618064114256,16.403298779002142,17.66059341444882,17.853454279956217,18.260516820865146,18.366788275618305,18.82138870589503,18.814835905629504,32.983711589756545,41.04753805617115,66.66008648542663,98.48562769444646,98.36215319271943,98.28780505372538,98.27613792229997,98.28318517169394,98.3038434059422,98.33147955236743,98.3944659151824,100.14057491595219,85.10802993145542,85.17573527823775,76.61109135108569,30.07594071721623,17.86661615066643,18.782591785531285,19.961354736905037,20.20634959506529,21.013983323942718,20.64450272004684,21.187347857389184,20.816589233957288,33.4440939371739,41.4436228744736,66.84352469226188,98.40618185858861,98.10595681850073,97.88564147180128,97.8318148803986,97.8318148803986,97.8318148803986,97.85280012920116,98.1205407229495,100.01793988246925,85.11355590504218,85.26681792813754,76.72710573524641,30.813795244802886,19.548345483052973,20.351065535276124,21.433162398502567,21.71919056141275,22.50759053935527,22.473649074248048,23.137223837180844,22.80784912855291,33.58318894124912,41.56437207260942,66.93047064276774,98.38728847041901,97.95534136890221,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.99586983301772,99.87348359214432,84.93643223236903,85.05564881307252,76.53102413114841,30.233755184960895,18.568108998301682,20.0989615590909,20.23086719214322,21.158569952089373,20.50518773983844,20.51638176905676,19.510767584979206,19.604147403090213,31.438881289092972,41.10687105612864,66.6027719008123,98.23000938417849,97.96070206451687,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.85132752569581,97.96940494419098,99.73047725565799,84.70018697824385,84.76685712830292,76.1982335961584,29.612929828496608,16.229459660835953,16.603003573194744,16.76585425089403,17.835848443525933,18.482177203126426,19.12761276610687,19.734839569341762,19.973724162957627,31.47330466908769,41.18124939551878,66.59531417392365,98.14953259692865,97.85473512789466,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.49995158219373,84.52719757697197,84.65151489822848,76.13167471321127,29.612929828496608,16.37717339005783,16.707657877543987,16.23310775310888,16.780157185109815,17.20968697987721,17.064805932637068,17.329141130155296,17.06787307011005,30.574666140831138,32.27714312778752,49.21288479339871,74.65983408920582,97.84359602612263,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.4995107837858,75.97214698205376,58.90733254302138,58.996596994036416,41.868774873354745,15.497882203560616,15.814189083205312,16.035137221364273,16.109273588268557,16.23091946113018,16.92620999198569,17.014942251067055,17.331577027461925,10.418767855106726,32.69590120052573,32.14652099361777,57.64253046190169,57.49188351949894,74.52668332883297,74.41048559466937,74.38885264264972,74.38885264264972,74.42603118741874,57.17907387285114,41.73247393155486,15.497882203560616,15.497882203560616,15.722846378754195,15.936290099801688,16.110747886729595,16.167986323443667,17.20237861865833,17.169299902790463,17.715535592528635,17.796644903326786,18.50500982464545,37.94912913620789,44.34531643635552,66.5823580017918,98.2696831585783,97.90732318688889,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,76.05468778038195,84.38386346954734,75.83540743122464,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.180953480338637,16.28005339703191,16.275480975827335,16.389156673556492,16.38306595528573,37.49743001589386,43.969303825896226,66.2448915019223,97.9654596553321,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,84.38386346954734,75.79018254910201,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.16232816378567,16.282466204960556,16.537330070445822,16.583806247192,17.14779413724467,37.70894545251734,42.576287730669115,66.57841898386054,98.35389030111385,98.04024583092396,97.83367564605356,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.42490151530835,84.62571659145921,76.1391947444585,29.612929828496608,16.16390659837199,16.288418837314453,16.507976810209804,16.54295713808227,16.73308412416708,16.68848870485968,17.18899399860863,17.333965149638942,37.802049923152325,42.555118088255455,66.48393322468289,98.22288869746195,97.91750377818163,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.49376521577811,84.64965235002855,76.12852745788096,29.612929828496608,16.173006301750625,16.414274767320958,16.73070768857669,16.71873166429698,17.573948943931512,17.928047501687136,17.954420200314093,18.09113182595019,37.913286395233115,42.660032663078454,66.60481812274745,98.32475564251001,97.97009769864762,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,84.50517919587021,76.09338290885613,29.612929828496608,16.096273830113823,16.224642826596902,16.319213906444446,15.806121024772386,15.919389393883904,15.986918180873806,16.142983765469452,16.77551618397987,37.135438753317395,33.85915670218331,49.158501952059005,74.67133328573426,97.84817050443955,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.88187016891136,66.09574159977491,59.043185639536574,59.14975076143667,42.0315106923283,15.70335564040507,16.16398962538303,16.935490066878288,17.451789538877364,17.971069953047508,18.114324659061747,18.587081910819297,18.60365632609269,18.89536974253745,10.279794563453505,32.940726608499745,32.39672585351261,57.88970873643981,57.62360289475616,74.72087361289216,74.6181306904571,74.61761677694616,74.67070308978124,74.72159430060992,57.322124102805255,40.21799913502351,15.65673731000972,16.13093639884916,16.98871079172186,18.296393610566525,18.67084921731949,19.65193986251939,19.527770172594554,20.040744061650205,19.405974072793917,20.06594769483081,19.477237687366404,38.22540915313178,42.919840617754595,66.82833149327129,98.538965691032,98.16116768843206,97.86265823617548,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.44217579091308,84.64012619074497,76.15860101997805,29.612929828496608,16.24686711433306,16.648793988909894,16.65973526237992,16.894676386744685,16.894992702852416,17.772652343445426,17.851180080605786,18.55464659162058,37.916347061992255,42.59408115244927,66.47385524948615,98.17278700075674,97.86342439719508,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,84.38386346954734,75.7735479872823,29.612929828496608,16.096273830113823,16.096273830113823,16.280525699993238,16.34037944572703,16.54949584565323,16.507679100997198,16.683013686543433,16.593605681005624,37.640700956883855,40.78943817263424,66.42455458713695,98.20617610757306,97.89843743272532,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,84.38386346954734,75.86017393390503,29.612929828496608,16.096273830113823,16.17038785323304,16.399985318978068,16.688880652106125,16.890311740039582,17.84994671586325,18.015089310653483,18.582075963032132,37.92069027247224,41.03246428038116,66.73517938229433,98.5632718478206,98.39655756453209,98.29421621392646,98.22518066301191,98.14758233995283,98.06939230777569,98.0443783081824,98.07969657743328,98.12258802399252,74.78040097771974,84.90617392902675,76.37808377194695,29.6812728894368,16.689631246692564,16.83343549644242,17.670423013058066,18.36334506316329,18.59132204007755,19.119738155403226,18.942080024266527,19.348647918025662,38.104080038408696,41.11860876998084,66.65065375368621,98.36424877577018,98.0830868256619,97.85554204490117,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.84485601058982,97.94189484714234,74.62702618382106,83.05973373519738,76.16902223567865,29.612929828496608,16.13443338153337,16.459940405141037,16.61047105955486,16.184315388371534,16.511028062811974,16.9614170058738,17.378087905694105,17.369343317241338,37.346064024201944,32.4589522633549,49.491736023113205,75.0730148765778,98.14479744399263,97.85895059308429,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.8238520708608,57.158453672615934,58.95502559841485,41.831017914177075,15.497882203560616,15.631280621199782,15.907358047123749,16.05604833197886,16.194643602574867,16.840418400955482,17.27423016325273,17.39657698306695,17.443095613327472,6.866674599247494,32.61691325806017,32.053335736885415,57.577478866196095,57.4099797598777,74.4676009558062,74.39096813423161,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,39.99852677309822,13.83204706582839,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.42499922316611,16.541967755588306,17.190006106054767,17.543756008605587,18.568071309300585,37.91617293437779,40.933617360067146,66.47184555283009,98.2089712197598,97.90071968479194,97.8318148803986,97.8318148803986,98.92273114485945,106.58410297182867,110.51985718277959,110.92823092745466,110.9502877812722,83.30600937233375,85.22442222624129,75.90849365545952,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,35.40301516311662,40.34665171141565,66.01829210938702,97.86242938765798,97.8318148803986,97.8318148803986,98.13506836906912,99.93063953580403,102.85035626550886,103.83784072727687,103.28864436958521,99.6531748335495,74.8334548658855,82.7340672951902,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.135267963536826,16.488038327376767,35.80270982789142,40.62285149057014,66.24248984203489,98.04086306396799,97.84257317812454,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,82.85540363650688,76.04927403501907,29.612929828496608,16.096273830113823,16.195052081097888,16.413702589953935,16.700877634122435,16.698292901572927,17.45456788702297,17.880830320194278,17.99829173860176,36.21835738992979,40.93812270402924,66.53215851774604,98.28209659896883,97.92847317360538,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,82.7180283318151,75.80138438435449,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.131368032505147,16.300273708997178,16.440347269089184,35.802703071264425,40.55056983673607,66.10733486425165,97.8941039736487,97.8318148803986,97.8318148803986,98.01425066513356,99.72147162673255,103.52214207597511,106.28256007381248,107.18736194298637,107.5902489724213,80.68526120938414,83.54552946612108,75.81586079150918,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,34.84345434605674,31.71217010142939,48.736430501742575,74.40240580396421,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.77667639472973,56.900993324256575,58.73397182175027,41.67337719287977,15.497882203560616,15.497882203560616,15.533553428109759,15.668902607434566,15.719583424254694,15.824807012550034,15.866877489849509,15.961224180970891,14.304629805778822,6.031474250762131,32.480362215974516,31.984469831052035,57.43979070544998,57.19571558098688,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,39.940147651272284,13.83204706582839,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.659018566977554,16.272531114483343,16.126863996381413,16.35139083397684,16.387980035445658,16.42972303124977,34.240182369783824,40.62318462058994,66.15862251963476,97.97341225199955,97.84699877889152,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.83367564605356,74.57810611927724,81.43203730314336,76.20690656588786,29.612929828496608,16.096273830113823,16.28034511543111,16.6177639723365,16.713527167323434,17.372941077907576,17.709271946369274,18.221472120700888,18.10184930758188,34.63957011566486,41.0607473699584,66.66410271806214,98.48250634224262,98.3229302393198,98.19229269085095,98.123325266939,98.06469871461069,97.9940619138958,97.94069380465473,98.04230652349356,98.13634128820696,74.7879256844286,81.56409642945292,76.37348029689299,29.612929828496608,16.642164994604684,16.844669795191926,18.146578840579938,18.208396973954578,19.22960392428329,19.0605520193502,20.082202792059654,19.38271697502857,34.90839502838599,41.29402285904931,66.81105469083974,98.5374071960894,98.25245663803379,98.04946522707846,97.97666234781978,97.9549115032686,97.85035365810003,97.88316713652212,97.96739036583259,97.99350145957312,74.662159627616,81.46341197329723,76.24926857793652,29.612929828496608,16.204907072879507,16.491756030576873,16.842274615851334,17.127119917526535,17.92976408940765,18.465128259761254,18.434209684318542,18.888074917970044,34.760699193948916,41.147495480614786,66.6657392652782,98.4081878096311,98.09990522762132,97.84752391058566,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.39071340880896,81.164412581877,76.0038848199001,29.612929828496608,16.096273830113823,16.096273830113823,16.216831899644134,16.482424804308614,16.48627083637454,16.647050938792585,16.671940955349523,17.125341723841984,34.49680800674764,40.858773268959204,66.31831022752102,98.05340792002745,97.83989547690483,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,81.05219319408289,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,33.46930541108147,32.024702545745896,49.05989810103808,74.66890386453703,97.88226936317376,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.77667639472973,55.31701966579277,58.81175974405683,41.774829447576,15.497882203560616,15.632348788499902,15.869952166353094,15.93027139670029,16.28341735274757,16.90801737150568,17.64568818284832,17.40798059005463,12.886989649450669,7.183219495237606,32.666724203882175,32.0923182798834,57.5333406542407,57.25886371618624,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,39.940147651272284,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.15494574132828,16.304567869235406,16.360378935417547,32.487153655341615,40.66026056000362,66.25719930572339,98.04123032621919,97.88723015352505,97.8318148803986,97.8318148803986,97.8318148803986,97.85016445973606,101.02584797741555,103.53162376340927,99.99738838459278,74.8067926163029,81.12451621980217,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,32.17040426019645,40.50311720944361,66.12489115813504,97.96167863744608,97.83367564605356,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,81.13587943815341,75.95294547834048,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.239467838026535,16.36405510698413,16.454021220944856,16.52587070696456,16.569134016758017,32.661372889345294,40.82481649111003,66.47102900806375,98.32300917706681,98.22662566808211,98.12734878103116,98.02731082594624,98.0604362109086,98.0186648611426,97.88056323568928,97.86038676308512,97.92775004932263,74.63030779059872,81.35494400406617,76.08571890394855,29.612929828496608,16.096273830113823,16.111207448553714,16.333191235350167,16.187172903498926,16.12478531604221,16.12609650871472,16.172894275985538,16.275739674081315,32.65152379488802,40.83685790050036,66.3460693740868,98.11039305957357,97.90723391441517,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8344170486078,97.8492550748848,97.87005627629843,74.57131618617325,79.69095279992365,76.11916431548558,29.612929828496608,16.096273830113823,16.096273830113823,16.206248789730893,16.431300356472896,16.59639488638802,16.68561671491253,16.8000715689435,17.361602263933126,32.89784359723574,40.98942692578514,66.60672911532556,98.43266524251693,98.32539909888307,98.21991592176724,98.17094424107502,98.08468296936594,97.99346314015118,97.94090403856198,97.95567958449504,98.02772660670124,74.71199247216671,79.82157364440826,76.27238954604614,29.612929828496608,16.328096236558515,16.677183215802778,16.765117478267104,17.080430393546123,17.601520821921017,18.344508878550716,18.620917887840474,19.174794291405842,32.5974630834756,32.61048798489343,49.57660020466144,75.17705821623892,98.33576457210842,98.04755673611437,97.87583456345139,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.85273055800934,66.00784252071405,53.939445044687425,59.00206069351994,41.880547463770625,15.497882203560616,15.668816593160557,15.983236680934922,16.09156340720313,16.58253077314027,17.174059699876974,17.412183954007922,17.634601259823125,11.211542075695604,7.470767018992435,32.68352143066981,32.17533786983828,57.66473551101082,57.39208384151021,74.40486037745075,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,39.940147651272284,10.500376790313517,15.497882203560616,15.497882203560616,15.604744048197306,15.903630119376865,16.096069564479727,16.69405406830302,16.710162774316974,17.3042794818307,17.679141948091942,18.029592111222744,31.23305269612494,40.9399824428173,66.47245318937817,98.27349614125215,98.05072379660334,97.84078640094393,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,79.38635805635066,75.78271265300333,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.334072618865754,30.824210177272036,40.61499248845544,66.15472103095628,97.98709180709747,97.84489476115066,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,79.38635805635066,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.138613037285715,16.324974408992546,30.778377687192627,40.57309987833293,66.12524630008903,97.96740623779442,97.83741190819404,97.8318148803986,97.8318148803986,98.3432177213611,100.5315627291292,103.05784842650284,104.15406860836129,104.03599078646131,77.97080057290944,79.9474290881607,76.13837252933344,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,30.220906905964096,40.28159076468594,65.98627570741561,97.85152865122694,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,79.38635805635066,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.258242474311537,30.7585534486998,40.56627528413384,66.1556965449479,98.02025922532722,97.8742556794217,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,79.38635805635066,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.612830713727059,30.161060706824745,32.00830422322303,49.029433765501665,74.62796064834873,97.87990499604307,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.88178777935848,53.75251731674483,58.851027113837695,41.70688873032991,15.497882203560616,15.497882203560616,15.497882203560616,15.656285808163078,15.886977878493068,16.01801536601044,16.116262855534252,16.125877787220887,7.817804004617925,5.967178232297357,32.46843265243072,32.000010012428575,57.53977765957882,57.30759499283046,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,39.940147651272284,8.834541652530866,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.117818119759075,29.084298023818857,40.547100082363094,66.07331281429562,97.87256091484191,97.8318148803986,97.8318148803986,97.8318148803986,97.8995987756423,99.42650718340929,102.42129077776583,103.54939795084857,103.99175253767936,79.47205105323073,78.31214669187469,75.83371901119385,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.903263504988647,40.40778421723583,65.99823606420928,97.8428942202708,97.8318148803986,100.79795236356838,106.04586054957606,106.93155926159713,108.41837106067635,110.13297986129939,109.7728735044741,106.73465307388365,79.99791319042906,79.07557682030759,76.07494414175993,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.469903201424152,40.13975221258359,65.79950403712417,97.8318148803986,98.10611714770445,102.01988368422272,105.18305311251834,107.91895440702112,110.54351115301101,113.4839786822295,110.24162153411604,105.84093184203265,81.0203700159511,82.83847199276903,77.52510691176596,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.481407823848013,40.13754409638536,65.79802811359731,97.8318148803986,97.84970829715206,102.30203653519021,106.72950649494746,108.9922720715287,111.03013692410438,112.06007143799309,111.80311564919585,110.32917234675347,83.22934642902702,83.17956491723282,77.05815910024832,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.80518067027737,40.33169340485413,65.9420618378985,97.83648290022055,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.44392896750892,102.51301256811155,102.698967847939,102.64994521873332,78.95948022376142,78.54408697083193,75.80298356922648,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,28.410576185876018,31.928202760823982,48.916644249485635,74.5589547749168,97.84801369645548,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.77667639472973,51.88399417485843,58.5858531836336,41.55995641824162,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.75965908029883,15.773539463416844,15.903045688891591,15.851493655970456,5.953629973460544,5.875918438474995,32.526101881500075,32.06094906971266,57.77390147996941,57.65360104234291,74.72076822237965,74.75774540512147,74.78138491429934,74.77650088532614,74.73439462334835,57.359698059412416,40.26191911436127,8.834541652530866,15.497882203560616,15.5758231550072,15.78330015594795,15.79425853695831,15.893969058704329,16.53697990630537,16.715250561894848,16.952544465990822,17.561971587004045,17.476205723871338,27.923201615448416,40.92529303777693,66.43043469315718,98.19541420340819,98.05366777121235,97.86633252374081,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,77.72052291811417,75.78972502351405,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.31085111143846,16.47239509947131,27.585342284875956,40.764209431639735,66.43588346111629,98.32668517758977,98.21610822621753,98.08777553813306,97.9916861873902,97.9131514569051,97.85505540357178,97.86898326037517,97.89363461165965,97.94455496596383,74.59798531532046,78.00674169917151,76.10043263868538,29.612929828496608,16.096273830113823,16.125531957261607,16.465891169075174,16.624114746267967,16.749981487976946,16.78465136383555,17.76835302386151,17.722970831919252,27.904312441245356,40.911001007088636,66.41729631870912,98.18326716600077,98.02781625182016,97.88289624868615,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,76.05468778038195,75.82725495806817,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.109812515196648,16.33335447708611,16.455091374963192,16.50236853679959,27.59198841788452,40.72802102736229,66.34802018019738,98.18368551140179,98.02159996135026,97.87949682400685,97.83626426994662,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,76.13940913393945,75.95305486558605,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.111261330979872,16.317243271929,16.542219796704998,16.570556010660347,16.77350005140363,27.747748772591873,40.74241865142528,66.28367009837939,98.06374060602343,97.90485175309875,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.41744059547072,76.22831172025953,76.01477128941612,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.522303296579091,15.72195946939966,15.917626029006822,15.95019368691508,27.061558520319817,32.11903213749589,49.091277728734376,74.70419808329798,97.99371565491552,97.8401935774201,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.77667639472973,50.218159036924504,58.55340210139232,41.46599091924173,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,5.502871377015993,5.502871377015993,31.924429727882153,31.551867974953527,57.19278652781715,57.16450014680973,75.03089913912551,78.27201162963289,81.61803153069575,83.62921875589785,84.45586530940741,66.62452132638707,45.028592559317566,7.168706514748218,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.85746583861605,40.13617263367424,65.78965653314074,98.07220781510061,101.52277254093785,106.06027368621767,108.96593654453619,109.51782624446015,110.30600510559199,111.51036056269184,111.42657649346157,110.61315700697939,85.94665771241023,79.82738834086143,75.85188647797267,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,27.165962050445142,40.444682118529755,66.15328306025728,98.05225086328647,97.92197505445708,97.83849250611053,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.83367564605356,97.89835767203252,74.54456853730727,76.26979576916102,76.00611951356635,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.125466274186113,16.387421439003774,16.604241872687346,16.649234501707234,15.510228935067667,27.851070473810967,40.89639327977111,66.46564865856723,98.27875214928717,98.18908480125792,98.02585748350732,97.8706653136697,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,76.09668885304536,75.96197720301818,29.612929828496608,16.096273830113823,16.096273830113823,16.124659341900628,16.383329559295053,16.515630788944915,16.644721021019897,16.72438428833346,15.396553394262977,27.80174622665228,40.83503887962792,66.43749893547411,98.22225683847265,98.02618575113779,97.84992923792697,97.8318148803986,97.8318148803986,97.84350335193793,99.97968035352365,100.98092353202624,100.91444296406995,75.5037400372213,76.28785770121011,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,27.270470471214004,40.47743912890262,66.1324403157131,98.01976578864397,97.91782816354515,97.84007693140941,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.83367564605356,74.53358486639617,76.35078952823444,76.11538480986329,29.612929828496608,16.096273830113823,16.096273830113823,16.12399452907576,15.53323847883834,15.765083671552738,15.820608289063008,15.920912583594783,14.307826491862464,27.097651718997014,32.14475045353078,49.14517605231796,74.72755026387725,97.94829292996832,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.77667639472973,48.55232389914186,58.592149133945085,41.48868567263206,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,13.85633186450114,5.542537951850336,5.502871377015993,32.11971172310538,31.743723182196906,57.36030724402643,57.186837537906044,74.40058613366048,75.37776728385728,78.48785873113972,80.2759751597113,80.78445492041638,58.3648249868674,39.940147651272284,5.502871377015993,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.467385517752435,27.38619485462272,40.5111986548144,66.096577664291,97.92183530898329,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,74.38885264264972,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,27.235253036220122,40.395361037443216,65.95531567587693,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,74.38885264264972,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.135107750412846,14.711776598385338,27.67777649571275,40.79217514365036,66.36662812770285,98.18087175434944,98.04831183325305,97.89278186685932,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,74.38885264264972,75.8031881126048,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,13.003709740891884,27.56775598175992,40.664691180891204,66.2332920714032,98.03458761922674,97.89720935203097,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.04976352009888,100.2952535000453,100.50202215301772,77.0388970323639,74.9236631449579,75.78553763781979,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.9970748793415,40.2128043934874,65.82352905556083,97.88277755388333,101.56755421531737,105.81536077117018,109.33502884816671,113.35961097722624,112.43505662700365,108.15557441613741,104.3844893295115,102.82271360913869,76.78329445337036,74.75709431481683,75.77834964200385,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,26.512840614033326,31.72289286862205,48.73027638502897,74.39403872247968,97.8318148803986,98.57690898692084,101.70937225136096,105.93205304079085,108.41409664342201,110.30424375602445,110.19676520161018,108.2453304542247,71.20573162025997,49.03847888513489,58.54733472578733,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,5.502871377015993,5.502871377015993,31.789355883830382,31.55450578301873,57.265690747908415,57.172000704698746,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,39.940147651272284,5.502871377015993,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,27.175831027010535,40.34031325252507,65.94678446410694,97.83403231186918,97.8318148803986,98.40932608737441,104.42904230866732,108.24269383726259,110.75597983613497,113.5536562044832,114.00123296074585,112.37479344123149,86.97389768545011,82.91961052273152,80.47726202150344,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.817487030332256,40.09959879108679,65.78403214643174,97.8883936435641,102.94675188218439,109.15649980645772,113.22813995561286,115.96141062926162,116.31511924262522,118.88973704456794,120.71980043056179,118.33699330642702,90.75966941011245,87.44147273495507,84.51153199096058,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.76919567650585,40.1034936102737,65.78595657844077,98.6051187079056,106.05689051522202,112.65559319534862,116.59144064172115,117.69992418629089,118.81628164190906,120.98590798923712,122.86301906665095,123.55906939496658,96.42070551174623,91.7006823832023,85.3085026083993,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.626214681152668,40.06292882273275,65.78461839748287,97.8318148803986,100.03229142272768,108.80380863597216,112.29879421177408,114.95118305706227,115.57116493266535,114.79914151905312,116.79038560350867,118.07334126016288,92.7790121138368,89.32642845034803,84.75878682416588,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.7291164116528,40.12534416136375,65.8254427716256,97.8318148803986,97.8318148803986,98.2571201245943,105.38437906423559,109.40910652592538,112.20741133390298,114.34895441151488,113.95387483975142,113.96591932106932,89.0726954725831,85.31337893032376,81.13692014740327,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,26.278924422563502,31.57058280461118,48.63249233944495,74.38885264264972,97.8318148803986,97.8318148803986,98.26785175978425,103.05228119116038,108.0344823908868,106.9844898647177,103.7810788717833,100.44163706386182,65.9564897421813,48.55232389914186,56.8814995880551,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,5.502871377015993,5.502871377015993,31.774458094241634,31.574724335080134,57.28779059307975,57.18217263842023,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,39.940147651272284,5.502871377015993,13.83204706582839,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,5.502871377015993,5.502871377015993,31.70963512654239,31.46880918928062,57.1738869115817,57.16450014680973,74.38885264264972,74.50895065981568,74.79850974910015,77.94465162164545,80.42638782780197,60.45601772872134,40.39065288141537,5.502871377015993,13.83204706582839,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.80810639922942,40.15457434173635,65.87570049623085,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.83367564605356,74.47842831391264,74.58474243331213,74.35749287578196,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,27.438076037622317,40.56298283484366,66.15121752229177,97.9741258367673,97.84794883148493,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,74.38885264264972,74.1058520838951,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,27.20988604598023,40.40021220606991,66.02976082969133,97.8606864953728,97.8318148803986,97.8318148803986,100.1091023450002,103.440284215752,106.3699992340864,107.27839728963929,107.89816600160775,108.75893659891743,82.31928682675833,77.77306341416973,74.33820455431315,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.914630000135794,40.253169431460556,65.94107246090094,97.83699843037618,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,74.38885264264972,74.38885264264972,74.1058520838951,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,26.428201975856656,31.742324279992136,48.85363695525623,74.59795988922016,97.89146339273017,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.77667639472973,48.55232389914186,56.8814995880551,41.32655956658152,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,5.502871377015993,5.502871377015993,31.884709647401735,31.60500898327713,57.25312331328231,57.16636091296896,74.38885264264972,76.92346562411161,81.31479002869459,83.70551923545351,85.42012514013433,66.81487858863898,43.72212338875541,5.502871377015993,13.83204706582839,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.60684895734595,39.97613558192075,65.77667639472973,98.15066272992902,101.62558851695668,109.11528643461318,113.05995358870695,116.51306986049357,119.21325463746733,120.41976140698253,119.84056634803105,119.83287482486503,94.07212003318593,88.15897222961031,81.3476720970263,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.864957503496687,40.23164672785487,65.91325681698866,97.8318148803986,97.8318148803986,97.8318148803986,97.95580620922772,102.00587832579342,107.7152809610832,110.1823397127136,108.15424081432826,105.51698049921568,78.15340246814316,74.61330117407879,72.44001694616287,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.811911236151854,40.19592246480241,65.89498514116916,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.20320146046367,101.27231586669023,101.66108459847104,101.79205863243041,101.67240831290297,77.94814557667577,74.73668432579737,72.44001694616287,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,27.062796134377237,40.42206930164645,66.14149890866324,98.05235445310079,97.96848438149696,97.87219705178042,97.83367564605356,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.86628241279655,74.55618540247757,74.65214184041542,72.76059132638407,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.129006926698656,27.4847122845359,40.698064443227615,66.39971161504269,98.23092292208217,98.12709968260121,98.06843614410381,98.02461713829857,97.92347357117403,97.93059382221337,97.8761654365726,97.8318148803986,97.8318148803986,74.38885264264972,74.46891624152467,72.61781849874919,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.561688706182746,26.881076765202337,31.969924420800353,48.93245578306749,74.50511316878745,97.8318148803986,97.8318148803986,97.8318148803986,99.58792415807936,103.77841545865735,107.53783350411969,110.54852228576006,109.71871562545178,73.18503704908306,52.49691111580109,55.28486248512704,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,5.502871377015993,5.502871377015993,31.49966800584903,31.336879603362345,57.308991738584446,60.605236208676224,83.15575057947423,85.28861895120326,87.27317348731802,90.98358772694688,92.13620518569812,75.1760125224185,55.017042164471036,5.502871377015993,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.48258959345876,39.94200841712896,65.77667639472973,97.85330579863073,102.89436345208948,110.08892562460845,114.60395405160922,116.61896041544243,114.3442761497493,113.33045899389901,111.5776852062793,108.32021273697613,80.81895295778106,77.9236388001248,73.06028723451494,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.751889619712884,40.12249413322774,65.81863722574732,97.8318148803986,97.8318148803986,103.87473303919559,112.00451647788654,108.41199981838874,103.67198576025287,103.2303144791298,102.8763787155829,102.76597443457574,79.4291453543799,79.19014440928927,73.51460619655546,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.815883260411724,40.13775173836636,65.8305112125648,97.8318148803986,97.8318148803986,103.52450775114586,112.56057238172723,117.54844297956595,120.78799838805607,122.20188000088557,121.82570738127384,121.74233244973004,93.86730386045402,88.77608554914873,82.21279380892794,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.55816772125185,39.95420403062623,65.77667639472973,99.48891611561906,107.63550356984575,114.5186551015463,118.43105408369043,122.50191141625031,124.73856000938093,127.59648447263201,126.21155498630668,123.18152067787558,96.82920622203105,91.493410912368,82.12673952926431,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.67469221532045,40.01437433511575,65.77667639472973,97.87994192170143,102.76026412516563,108.86819870781223,110.38443690532537,113.73135357374585,116.44036608871764,120.84793342822772,123.75305369700513,121.5188288950535,93.78645349968487,89.05457212164896,81.31276046838617,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,26.08239211384761,31.473434548540716,48.58829889138817,74.38885264264972,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.87854840419436,98.41435341430488,98.57616624859244,65.77667639472973,48.55232389914186,55.215664450322876,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,5.502871377015993,5.502871377015993,31.757653695673028,31.484150094031072,57.17890881675168,57.16450014680973,74.38885264264972,74.39584304222228,76.3085011980725,80.88177391807271,81.8775677704048,61.87615681208698,41.438779603806935,5.502871377015993,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.91534895291036,40.146376014766474,65.80172656158035,97.8318148803986,98.60803251943346,105.88817530933184,109.92882650937945,112.86180551578688,115.02347279835577,117.317491403416,117.77243542858771,117.28460034470407,91.36243366932347,87.6426426264999,80.08281087676295,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.660900651198748,40.029419566839316,65.77667639472973,97.8318148803986,100.29815239769773,108.91140335684968,114.08831284265382,118.21850915756353,121.30313771706574,125.38811491501166,126.44594493586936,125.79065131154975,98.7693054574112,93.42414160880506,86.48497695352614,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.559375539074352,39.96927195659278,65.77667639472973,97.8318148803986,99.87175066194068,111.39488932376237,117.72864006684206,120.97631094366207,122.24524535782298,123.15891214933659,120.89337405980973,118.82637644564129,90.97668271052153,86.82850830217383,81.29396021176147,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.642375731460696,40.005063451996875,65.77667639472973,97.8318148803986,102.97324783065946,109.31256420907732,113.32047137129236,116.90249654449465,118.93635330363091,119.11601026516071,119.58480739269658,117.02108905746829,88.35574515910342,85.37073600354867,79.3482180688537,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.629772381654817,39.989382467419155,65.77667639472973,99.20411799768205,103.07664069268698,101.83978085146964,103.64089783426489,109.75924108168026,111.98679592059412,115.60589454253844,113.3724994333241,111.15638414249645,85.62651927309895,81.34563124087924,77.46109538944339,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,25.962576844618745,31.3387238740976,48.55232389914186,78.5697727246365,111.1956352787639,116.37417098209997,120.12226175308301,123.51230671206336,123.4267074780567,118.79613999322424,119.3774673279186,120.18915168362395,80.13352712639156,55.45350785256973,56.195611292898626,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,5.502871377015993,5.502871377015993,31.34332082866764,31.327971403352283,58.47729361377888,62.093218338027135,86.92283741019105,91.31759463834521,90.36758094526208,90.39918110508422,92.35508936108646,72.85099733129364,51.0185855241481,5.502871377015993,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.547422281600063,39.96771014056975,65.77667639472973,97.8318148803986,100.24158540487576,107.51843625932084,111.1939421958779,112.52798569445817,109.50931484490842,107.99638155080012,109.67452409346694,109.30070089735936,84.75312213580462,82.01643788704467,75.74243775048762,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.618229654571635,40.00241285610035,65.77667639472973,97.8318148803986,98.41916857804468,106.57789093929644,113.38734717913549,118.08713330015098,121.97389906440192,125.73553679989746,126.90568520711275,126.67746905638388,99.58969341337249,92.98410700650886,85.55264076385389,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.45170808108417,39.940147651272284,65.77667639472973,99.36526415359923,108.07651349754182,115.8515506315915,122.31755403695482,126.40700324133887,130.47287303377516,135.28261697610776,137.09876499370233,135.4394642033907,104.99268247033773,99.14401608407232,89.87123882616237,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.4234916528895,39.940147651272284,67.63158309672045,112.86531576937965,121.63534635222963,127.77135985941844,133.53988977677434,136.660588477949,137.25727237292895,130.29239478898543,124.86205035735276,122.26104794010445,95.25500331726617,92.14267088017708,86.42520332469158,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,11.0987684168163,26.4234916528895,39.940147651272284,65.77667639472973,102.48949229127341,112.45905838915361,118.20248236793677,121.10425258373984,120.3846459328544,118.80068724423846,110.91173988496064,104.48629306909548,103.70935686677338,79.0744670844624,75.67674466652012,72.9137786167232,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,25.96684638526373,31.39224444619923,48.55418466499854,74.38885264264972,102.07496738331213,112.38349609146913,117.6510042624345,121.69711642990661,119.50151257633753,114.15413931191418,114.16496888521722,112.18732797368199,70.82881898832781,48.78981727496056,55.215664450322876,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,5.502871377015993,5.502871377015993,31.330470222176423,31.327971403352283,58.84731776837824,65.03409005112115,91.0142390721241,96.45197263569318,100.54934970147514,105.08980623469427,107.79516567060384,93.64907002604589,74.18281259421427,5.502871377015993,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,42.25727518699418,76.95060855522195,117.04553949853894,120.97092662214105,125.6274209163248,132.14410040127524,137.6402064679573,141.92432403142908,144.61184843082356,141.68674666506695,140.33434064188916,112.56420441011846,104.65831199238042,94.64556946161152,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,39.940147651272284,70.31204270819302,112.58904032162023,118.06282414404768,124.89032704706412,128.92629983659066,131.62913326106616,133.90656987249042,136.5407292345714,134.6061521575771,130.13101590026676,103.32117139429286,98.83006582447167,93.57506383010502,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,5.502871377015993,5.502871377015993,32.31580343980532,38.44651825742021,70.80096437702464,75.94292657169159,102.54214268084755,105.95264345311136,109.17656810203071,112.29313358569914,107.62204545826597,86.43842306185377,61.50221519650035,5.502871377015993,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,39.940147651272284,67.85643702173516,112.1421927568485,117.38458128961415,121.4506306536631,123.28170081499928,126.77321200796328,131.4354064659264,129.86349888858624,123.3692247396983,115.23676575396928,87.0060318014464,82.46598805723143,73.80979221904173,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.44445294640567,39.940147651272284,65.77667639472973,104.23024970177914,111.92783043814221,117.05188847842842,120.69530048617536,122.37039852878252,123.51543784431233,124.49635951307451,121.98258530110675,120.93421888859284,96.35918731750509,93.02409186450316,87.55372749126502,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,25.825100026336287,31.327971403352283,48.55232389914186,74.38885264264972,101.15298341804308,110.56968681219405,117.64056217557805,120.28951456564333,122.42887482139521,125.8265909759737,129.3246398706692,128.7046671553806,84.65736188068057,58.70673361348576,61.112717005972925,42.060832863517874,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,5.502871377015993,5.502871377015993,31.327971403352283,31.327971403352283,57.16450014680973,60.11792503316166,86.86203396857454,89.20560879191623,88.15301834337345,88.80303158846131,89.80794459388065,71.39800229198899,51.23799170837319,5.502871377015993,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,39.940147651272284,65.77667639472973,99.63402182111021,108.38050522405594,113.02306800305901,117.30946197527885,122.32150500827456,123.69064989307886,120.44137682349978,119.27743963696454,118.85285562054476,93.78846460371942,90.46170705393287,85.9547437226089,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,39.940147651272284,66.3033335656377,109.90956136805472,117.05436438749055,122.83553380622733,127.62833370768833,132.48101453458406,135.37613860285597,138.5332880203127,141.87354020645387,141.08777976163634,113.76128530779188,110.03669249275514,102.04224329939372,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,39.940147651272284,65.77667639472973,97.8318148803986,99.71290514225537,105.66266824673312,113.69681027637965,119.324513968229,123.81925914137504,126.79911790884378,128.78604703638388,129.69125340509754,104.58036691415315,99.56422351441684,92.4166695984816,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,39.940147651272284,65.9621935950976,108.9812361975152,116.67418247531866,124.07252656277096,129.13658263500366,133.51426781337082,137.5524470188956,141.04777512218342,138.62557485421496,135.94730840285894,112.26884579391404,109.247612521613,100.36537497432397,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,44.96418151960537,77.72802829769908,117.72928332302547,122.48161258794477,126.89302858674496,129.0098525798937,132.39543475981645,131.46792005927122,125.74519770899064,123.54091468989863,122.87526626241062,97.1441779757024,94.00799379716166,88.50276767225286,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,25.825100026336287,31.327971403352283,48.76996866501887,83.20866651025798,113.82189485036999,118.71977647612178,121.26913804649523,125.5968650061339,126.68729939095475,127.29208729958535,129.5443327541814,127.32189547931347,85.60889452595929,61.59299615306087,66.22782261785447,48.9207808451541,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,5.502871377015993,5.502871377015993,31.327971403352283,32.25187767035046,65.48756601361279,69.95863430817735,94.12339762261075,98.01637107825401,101.29590728547763,99.8479153400729,95.56559802296378,76.85757886196986,58.42356156180384,5.502871377015993,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,12.764603554598951,26.4234916528895,39.940147651272284,67.5892343123152,112.23146899131777,118.74204252407071,125.03856589930693,131.08709301407507,136.44534431584563,138.65331526514905,142.76343153532096,144.9123630010917,143.30119107395987,111.20998358623712,104.79672100069344,97.50286923538509,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.4234916528895,39.948063211042495,74.23315556430484,116.0369754149452,122.57861423511302,131.93672762793184,138.10766543268852,140.61747071678036,142.44686818431765,145.47268284979813,146.6526794382127,143.2442154058542,112.80778487205197,107.45889191115117,100.84130069480621,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.4234916528895,43.93493789846015,79.12041246974509,120.34226583969837,126.98943566263807,132.40526189135323,135.5749199774418,139.7530287974349,143.15667916318964,144.67105562284223,140.80366418646773,135.42640702878208,108.27160960388365,102.24707077653665,94.90126364375001,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.4234916528895,42.71197081339114,78.68868821811643,119.16372226595635,125.37121722837708,132.39514567086016,135.6718984520298,140.2468625752393,141.0903254370374,134.1012909333897,129.06581176572902,126.87640703120026,100.07046763849696,97.17767547839699,93.97237146154278,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.4234916528895,39.940147651272284,65.77667639472973,97.8318148803986,100.76698696069478,108.07544930861984,111.05718861866387,118.834961738363,123.5579701178951,125.39212138272971,124.18708593137133,114.73003988135571,82.8365130030878,78.07045892559034,73.076944411712,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,13.83204706582839,25.956002969225832,31.4093397080497,48.55465623668781,74.38885264264972,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.77667639472973,48.55232389914186,55.215664450322876,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,13.83204706582839,5.502871377015993,5.502871377015993,31.327971403352283,31.327971403352283,57.16450014680973,57.16450014680973,81.06389082341542,87.25555691467238,88.49249818819116,88.4052777449232,88.42568607695743,68.01077668024301,42.865297209656184,5.502871377015993,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.4234916528895,39.940147651272284,65.77667639472973,103.66120244033569,111.24829998719142,115.91319297063431,121.12883334422688,124.95362186478705,127.8287815464944,120.71567503003206,115.51484243945862,118.07627770068301,96.71033707724135,94.65539950926075,91.41805005991296,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.4234916528895,39.940147651272284,65.77667639472973,98.16346251714758,102.67383847810272,110.37950911752077,118.90530941331092,124.02080257416678,125.52939667126944,126.27453627227226,120.9731489453991,115.37004745197639,87.68184767629025,85.53325935218919,82.42298386205613,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.4234916528895,39.940147651272284,65.77667639472973,97.8318148803986,97.8318148803986,98.08500164050048,102.73054856213703,106.01212080935865,106.87739927327193,106.15041466678004,105.44206546907111,104.61704546691091,77.46551926464635,75.01989193307412,74.36257205586118,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.47863485564925,39.955388519750855,65.77667639472973,97.8318148803986,97.8318148803986,98.65392939327194,103.85868405877504,113.67960448075674,119.87745576098202,122.77451442857671,124.27510599052319,124.69590525453702,97.039872020525,93.26866979876007,91.59158755165465,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,14.430438692331174,26.4234916528895,39.940147651272284,65.97756010384985,108.97505842463988,115.56888119052223,119.19633268452128,121.17584546240307,124.78446340930054,125.70686001784377,124.152519552191,121.52878026417504,117.81133085057063,90.22503292705414,85.49100734156993,80.92121079350797,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,13.83204706582839,25.842752248116224,31.327971403352283,48.55232389914186,74.38885264264972,99.88857127960095,108.91528532729114,115.35752606046137,117.83199425394714,120.23158177477087,123.12422012115891,125.24964645542047,125.04078512845017,87.48488788818099,64.51956129544652,67.73756813865434,47.7401166502356,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,5.502871377015993,5.502871377015993,31.327971403352283,33.02256437744934,67.37064971793774,71.78669213896966,93.27624607421727,94.63875952568051,96.62695500896237,98.95705116271142,101.16639383759463,85.9827210385586,62.22854462871827,5.502871377015993,13.83204706582839,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,26.4234916528895,39.940147651272284,65.78225368846662,105.92854445527692,112.8141923451332,117.18053659074305,119.64760625749881,121.11284819101805,124.3328320702208,126.53337124719616,126.03392599466189,126.00552544908756,100.69990951499642,95.90612094905158,89.46950861848512,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,26.4234916528895,39.940147651272284,65.77667639472973,97.8318148803986,99.69085872552851,104.33236011574317,110.80983406681754,116.80028084490336,118.64423550846611,121.38862378947066,123.46073556799111,123.18544643488255,96.14250483727034,90.62866024816735,85.1757392855602,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,26.4234916528895,39.940147651272284,65.77667639472973,104.0882262908391,113.5247647354375,120.36071565958183,123.98683132043891,123.66745454519219,124.20399077894534,122.9347568029353,120.88334740829293,119.309381960704,92.83796039409951,88.50566983496289,84.50142337414374,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,26.4234916528895,39.940147651272284,65.77667639472973,97.8318148803986,103.16239246514215,110.98799554422598,115.64177874838323,118.11548534184493,120.85566162744539,118.92194441332909,116.13794250860596,114.73188593483763,88.14832803846183,85.29513995298458,81.4783055504322,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,26.558067430834942,39.96225151344776,65.77667639472973,101.7059822628242,109.41704595697294,114.43889303918701,117.89415263042714,120.66062258775507,122.26464033498259,123.60496737968101,120.40750572862841,116.90713445972915,90.88847749461753,87.94217476186284,84.8243413784208,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,25.914687633036166,31.344270098454032,48.55232389914186,74.38885264264972,99.57230762810866,107.55349548823047,115.21676787724243,118.06403181094637,116.43438630137132,110.61051904718356,105.78155969224441,105.16165441867456,72.75084642437747,50.11874630860185,58.54733472578733,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,5.502871377015993,5.502871377015993,31.52886710458775,31.409190012747796,57.16450014680973,57.16450014680973,74.38885264264972,74.38885264264972,75.00411468461408,76.6357733596222,76.67290053633677,57.52675400135373,39.940147651272284,5.502871377015993,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,26.58826923340178,40.02237352342398,65.77667639472973,97.8318148803986,97.8318148803986,97.90746000263532,101.09622448975558,107.08641964359315,113.3278155326702,116.96438077967898,117.96822037736813,118.15556730794695,93.63182122595853,89.18370042132044,84.39299440659303,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,26.478835885876002,39.94200841712896,65.77667639472973,102.93262085660454,111.74452700279956,118.15295891570591,122.52712408968205,126.47973318349698,128.81653406772648,131.44425610779655,132.83326594492482,132.74360326176782,106.09788690671827,97.87247787598086,91.22791617953926,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,26.4234916528895,39.940147651272284,66.91571435840538,110.24455978592371,117.66392445791777,124.37976518610522,126.83384918931701,130.38145356961,133.24727752885042,134.8494771185422,135.387557332229,127.94772641944168,98.15080865758138,94.49097264061177,92.06335304617504,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.089326790672146,39.940147651272284,65.77667639472973,101.58063276180806,109.51163265004858,115.95714067013459,121.13894788504321,125.93738460261935,130.03182686217485,132.93687558055566,134.49019072332192,130.95324882253402,101.09733614076505,96.6433927021801,93.47492487103054,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.089326790672146,39.940147651272284,66.02091537718003,109.1041898501943,116.20803493723476,124.55952505317397,129.8813652409117,133.39489667719482,133.51435543894445,131.05945649450044,126.97568742232616,124.25740931681197,97.29698525972844,92.60279478282996,89.73941592412281,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,27.490935164118937,31.327971403352283,48.55232389914186,80.24953380602484,112.96488806573159,119.13968292664929,123.85597437623554,128.16242263478816,129.64673754523437,128.13887774319764,116.90145535216755,109.55291927465798,74.78992499038554,53.469027122892925,59.54653165008237,41.393917892704884,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,7.168706514748218,5.502871377015993,31.327971403352283,31.327971403352283,57.16450014680973,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,39.940147651272284,7.168706514748218,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.40310626753964,40.10453225963779,65.79288373725133,97.8318148803986,97.8318148803986,100.38646964264449,107.53419269158893,114.14167263822624,114.97530306573145,116.5495516379367,118.13190147055481,117.2800490248482,91.27649597163003,89.43866459658605,84.47816824922957,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.089326790672146,39.940147651272284,65.77667639472973,98.77438245557472,107.12578389002822,113.79588127116749,116.40529445611891,118.9095297541518,120.60371079426118,120.39223234789127,117.14793248848876,113.66236831682048,87.7282012926071,85.07501623566726,80.01064910505286,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.166116809516435,39.958516345391516,65.77667639472973,97.8318148803986,98.98188398463667,103.56675882737875,111.93385191636608,117.70043354334457,119.60328091967162,119.78309555499303,111.96417862052199,105.29196564190707,78.291719033725,76.58488016958873,75.87627495858733,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.29210679991374,40.022808866538384,65.77667639472973,98.23691583269088,106.12313769736532,113.22305683174746,116.65790689334534,120.14341115788807,124.0518284943157,125.75753430681785,126.76074056552635,125.64268243595234,98.490567789123,96.66835961838214,91.58479150595943,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,28.089326790672146,39.940147651272284,65.77667639472973,106.05108400586926,114.07466109223174,118.94623494877108,122.44047116889313,125.88815096244787,118.89847827946618,112.49827422094573,111.64272488691986,111.23590330474055,82.30012458996403,77.39150909668096,76.20055182184807,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,27.66345317084667,31.405293991263306,48.55232389914186,74.38885264264972,99.02709155212102,106.34505324551685,113.8789997794587,117.72040428050924,120.01197883993972,121.7881132473671,122.9756424477118,122.12348194344244,81.67208149389153,56.53162213024736,58.79437974059232,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,8.834541652530866,5.502871377015993,31.327971403352283,31.327971403352283,58.10322506082086,63.667394426962176,87.80493739287007,92.33461369423577,95.21878739770541,97.12344896811604,98.07034506822382,76.95131996261229,45.13121646679769,8.834541652530866,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,29.890114855951815,39.99074748639413,65.77667639472973,97.8318148803986,104.06225005381043,114.60540508455564,120.98648511426316,124.23921419360859,117.31321467213087,116.9245286701022,122.65766173898623,122.72611041054668,95.30562367959085,92.26458313680966,85.62313334331871,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,29.75516192840437,39.940147651272284,65.77667639472973,99.75056072530253,108.2441669914155,115.96320919796455,120.76580096934873,124.71006696106893,127.48968703646293,128.5858766276311,129.4732824922891,126.83491074400563,96.20231680620134,94.4924523521097,88.64442136975329,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,29.75516192840437,39.940147651272284,66.00742471032864,108.17200760987885,112.86728246711809,116.90212751482618,119.82945696660339,121.00367305771091,121.14737055923898,122.09605338408473,121.43897269112455,115.40351564428673,83.45937306604513,83.02389456243891,79.63878664536928,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,29.854114119167548,39.9645438672244,65.77667639472973,97.8318148803986,103.89703953402253,111.8277427644242,115.3461836981383,118.91832222045115,121.73210279836256,123.15937476438035,121.11752140770233,118.1982212131195,90.53284699523347,90.70146902268294,84.74608683929486,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,29.75516192840437,39.940147651272284,65.77667639472973,102.1055143948974,109.81822583679647,115.67797687728807,119.75058340079482,121.75197150235117,119.74992290056896,123.41675578217728,125.82489578126355,123.06362638196384,98.27312051389816,94.38490184137274,84.60062059126797,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,29.156770301901588,31.327971403352283,48.55232389914186,77.88758642641677,112.3309772688407,119.88721463188833,124.02039586296019,126.97015331357733,128.81539645711385,131.41683556762203,134.38143402013083,134.2534887307524,94.62618617008046,71.9175846236402,71.30673341076755,46.78050892223787,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,8.834541652530866,5.502871377015993,31.347470911923462,34.565377212939346,67.18963329030004,72.21447515293217,95.43317920681535,98.8550186699143,101.81048237975737,103.94780489768128,106.8830759034238,94.5907740618135,72.09848445115449,10.500376790313517,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,29.75516192840437,39.940147651272284,65.77667639472973,105.29586194532108,115.60676201312673,123.26153874041671,128.83107302430815,131.93695865080122,134.71731176616794,136.78573373208937,137.95602012744627,136.77268516815616,106.94779833190624,103.98927277761415,93.96151016246924,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,29.75516192840437,39.940147651272284,66.4455268584071,111.03202383644148,118.04462667605388,124.52228411428877,129.26055522215003,133.45786194395578,136.14396044605266,137.84911805513164,137.18856762353127,137.16380743464023,109.21910244104608,106.54100741605555,94.12945614095909,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,29.75516192840437,39.940147651272284,65.7870909078596,107.61899726453113,115.13382586157677,122.80330766704084,128.39664578453414,133.34320266913113,137.6517922366686,140.15214435858394,141.44711499959706,141.12043537414527,112.47933800480128,108.27305792695833,98.11206151711782,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,31.42099706618702,39.940147651272284,72.02351198776428,117.36481893170317,125.41881355335059,133.42812101735464,139.3196606172908,143.27243068071456,146.33534464965499,141.86331078855693,137.67854560077208,138.03792058973755,107.81453519645036,105.51877472677869,96.53882724476294,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,31.42099706618702,39.940147651272284,67.0713889489497,112.02728006363277,119.43160472254944,125.65695612160565,128.6617963394471,130.63638474485018,132.529731669873,128.82272078963302,128.27458100407648,128.30109183768442,94.49580030637055,91.56773847267469,84.68290839730138,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,30.82260543963381,31.327971403352283,48.55232389914186,77.70570002708102,111.96742072892717,118.77188249209709,121.48512466403936,124.72384615816095,123.92890338303046,124.17703480377253,126.70203516016603,128.29658230350623,90.33774401184832,69.78019822001087,69.92831034314003,48.6551026380738,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,5.502871377015993,31.545438140186157,35.04327104161448,68.06617878774958,71.09569332876185,94.24424346655239,99.24009326711789,102.60201270578035,104.83934386689216,105.28198027786304,84.69793637933485,57.03097380648294,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,5.502871377015993,31.4844903136381,31.337933827025978,57.26948504134214,59.02853253351565,82.30913296859745,87.22113683528532,89.84270954655251,92.01847164357363,92.87213838673632,75.09863229764326,52.38067183447289,12.166211928045742,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,31.80015273071732,40.19746034071717,65.84188927066586,97.8318148803986,97.8318148803986,97.8653966165367,103.68578090393663,110.96162805496692,116.40918225424699,121.45147167854546,122.8749793503275,120.73789493250592,92.02036665779187,92.41579796122598,82.29857290701575,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,31.60368654453602,40.05203773609751,65.77864609833819,97.8318148803986,101.67482227714105,113.75678545684167,121.14750089428729,124.93154519774279,128.76291900314342,130.6952317589102,127.68106455836684,123.1013992917673,95.0379356212496,96.43419010987668,85.82395791531219,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,31.575376608066794,39.99008798520026,65.77667639472973,99.52722753049005,108.01025387187322,115.35139552628813,120.16559944098944,124.42930631553439,127.83166938127442,130.77492247862637,131.6675375891392,125.75823354550239,93.64472737791219,95.42161834078662,85.16622655209261,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,31.544642450893303,39.97739078034298,65.77667639472973,97.91833580411142,104.7159717064416,112.45687549115091,116.37262264388173,119.56350511159148,123.05481658035174,125.54242933046412,126.68621132551115,127.03636193627284,98.38360473057497,98.10147610456998,89.19228540745452,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,30.831834795146865,31.32983216920896,48.55232389914186,75.69833731285344,108.85035174715551,115.1734741982784,117.84292970739527,122.4357299709362,123.80923115105857,121.1632854010082,120.50703777728346,119.50102308444896,81.03732603290273,65.06318775734105,60.33086633223866,41.33197006040086,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,10.500376790313517,5.502871377015993,31.361928454205657,31.342443224702055,60.71674538517524,67.12045339812249,92.8404691171166,97.61891010760921,99.26813929904122,95.7312019410956,90.4455068541975,72.65581167765855,51.76048629138419,13.83204706582839,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.37473236922426,40.1907103857348,65.89950000180346,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8999824181454,98.29720379709862,100.1683884127424,102.71694867343604,104.17730585840876,80.2942776697767,85.51680069200697,76.26872029851955,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.37949332751148,40.161310526848844,65.9026659393143,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,98.30009705918597,105.26642459999367,112.1599472278782,112.89096154980257,111.77833113398688,84.35030725733517,87.48364553754612,76.33053671833146,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.55103963595275,40.28719607362555,65.96665037754285,97.83787864603488,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.99535588925144,100.1983640125221,103.14503500040807,104.84254833006567,80.65415156458599,84.65717442704236,76.09251519269517,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.51941851985635,40.18665816515537,65.82118816305972,97.8318148803986,101.61430162481062,109.88992700090591,114.99234279018759,119.30316722838515,121.83787911764442,122.90739605239469,122.83806090584582,119.87047989608442,89.32560612882497,91.03072790900238,79.44893604340999,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.37182492458391,40.141390523586296,65.82337579602624,97.8318148803986,97.8318148803986,97.8318148803986,99.71873054507194,105.56816738962657,107.32245515798195,106.66506380802784,106.19969300269057,104.26794199516736,77.0937250313038,84.79119764106132,75.78564857565254,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,32.82113420388329,31.56100106688681,48.67735926147809,74.38885264264972,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,65.77667639472973,58.54733472578733,58.55413510354585,41.408510561526334,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,12.166211928045742,5.502871377015993,31.870318997753902,31.58431162420924,57.183274652089025,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.59505490923188,75.52687597013626,57.49022679447904,39.959280889110836,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.69340187550963,40.32590521895419,65.97885108089932,97.83367564605356,97.85046394594681,104.25233566780832,110.24368428001607,112.48530322822579,115.00928675844634,117.39962672193074,117.81377430874214,116.39693123471405,87.29360347008787,90.10386657144358,76.6896229829177,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.34983980269515,40.09191641693994,65.78283260864403,97.8318148803986,101.01664398628185,110.12658238711039,114.4483128382738,117.04707746572403,120.28577871699277,122.77279404880063,120.15612301092833,116.54563357083373,87.11965116727545,93.07839469090419,81.51877074151335,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.398271160224844,40.202551593290146,65.96126425683642,97.85525695721626,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.87961422993133,74.53730304692499,84.63261055408877,76.0468975849061,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.109190790794848,16.246272447703117,16.38983258505592,35.96016300554082,40.75799369035506,66.31418926595686,98.04408633387328,97.83520281207512,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8823824889733,98.11502358846617,76.05468778038195,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,35.5326507458873,40.436555048076094,66.00411562664154,97.83721148962982,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,76.05468778038195,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,34.73919076779719,31.730134024769548,48.7670861886648,74.3957624974114,97.8318148803986,99.44165566144801,104.70707121690918,109.33463832559475,111.88525081744231,112.20920958694163,111.1991871778512,109.16674010872045,72.65776303845075,58.92406001098355,58.54733472578733,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,13.83204706582839,5.502871377015993,31.922630180771318,31.570278966570296,57.171477475058246,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,41.60598278900451,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,35.54984799462314,40.49516782458432,66.12058783390124,97.86311686507558,97.8318148803986,97.8318148803986,97.8318148803986,97.9779077613056,98.82221840501646,102.46334953429012,105.0953847199881,106.07375348534374,82.17337498737024,85.23692252977037,75.84064094238246,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,35.12674821065888,40.15921721884989,65.80432780447981,97.9304492368905,104.98065176731077,110.94635114897606,115.77160868245952,118.79019818896116,119.35353382286931,118.96092088841293,119.47658708325312,119.86840401834964,93.39337518686183,93.30772296210489,81.03828234835565,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,35.17359037363644,40.22744077363936,65.96665239406259,97.85256602835315,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.86689117686106,77.90012883733888,84.6237758946729,76.06132986007994,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.18707640765885,16.47356259688321,16.519272294625967,36.01992486009863,40.81811697403151,66.39220821768814,98.06134436789651,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,77.72052291811417,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,35.59447424540302,40.55573919296621,66.09800584838958,97.83727874477383,97.8318148803986,100.0032636669001,107.12627217371941,110.78054464095366,113.65745150818175,115.7648355057824,114.92610929708192,112.01524987393843,86.3423908811349,88.66770071156185,76.42448155352557,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,34.57961843827245,31.628734547472874,48.71492971370776,74.38885264264972,97.8318148803986,98.28249351046432,104.8243882637479,109.09049386694016,111.47257233812941,114.3574514962473,112.45074938888364,107.61818366915814,72.97099106226771,59.0502045401625,58.55439244454438,41.32298222994733,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,13.83204706582839,5.502871377015993,31.599558735377087,31.34520053412755,57.21262120511514,58.85067317503853,81.55142358666535,83.85147801552839,86.27620414768812,88.41593094410086,89.49772356356205,70.6430320215893,48.28959888290707,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,36.82315106815669,40.197556069230885,65.83086502479571,97.8318148803986,98.61289915409593,106.33523851161812,110.67958777209184,114.4401923294009,115.80742099703065,117.15622916726336,117.68927529951053,113.5057136230507,87.08635423492613,89.91411283605336,77.17237543559405,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,36.5697814268083,40.035487692878085,65.7791762751136,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,79.38635805635066,84.38386346954734,75.7858707468121,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.111961044169313,16.31937624006576,37.54852807036543,40.71956613352769,66.29939443374458,97.96595951119424,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,79.38635805635066,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,36.82843805717607,40.22102701198157,65.86277377466644,97.8318148803986,97.90916328157766,102.4272236042551,105.60673130060441,105.47450057698656,105.4586029182448,107.18614225462464,110.19778894113287,110.5856601002592,86.61075662121671,84.97972776094406,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,36.9902408117896,40.2552764094867,65.86984550619347,97.8318148803986,99.7422051085824,107.66854839184404,112.39563536988948,116.43596609154906,118.63630945986854,120.65316898315923,120.64957113626522,117.77235620038925,90.06856356097926,86.62165512480217,76.21579381718752,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,36.312987614064426,31.746143078300864,48.87502591176536,74.4464706249886,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.93781029386989,99.59623785751097,101.15391956729006,99.26367900344441,70.79191141257996,58.54733472578733,58.54733472578733,41.32484299580401,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.531247040636506,15.67845768443826,5.768431451135507,32.281376102913775,31.96238040496946,57.584695959096,57.468198478021314,74.59325424685804,74.51960624513274,74.51581910457037,74.62528573818598,74.70374423020647,57.29373286630093,45.16266177101415,15.497882203560616,15.681997755192564,16.016067373497055,16.064165185802565,16.43731617422147,17.00617821779697,17.431164750215114,17.656282458855152,17.876769928095943,17.987163905388133,18.1717642877679,18.253037952035193,8.295670522384691,32.87929034950497,32.4166076265561,57.98742632879814,57.77515223655181,74.77224971679469,74.7360292912023,74.72742251919199,74.70038163436838,74.70498050707782,57.31916274447487,46.869166245952954,15.497882203560616,15.66743063369454,15.982487446629474,15.998817366674661,16.134818098202604,16.32599862836524,17.870646215447437,17.99001642464963,18.495491338574997,18.602146314355988,19.193807313101228,38.1093587962557,41.17721384584442,66.65962651318854,98.17784270116384,97.85091705173095,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,81.05219319408289,84.41173737822336,75.92330874111404,29.612929828496608,16.096273830113823,16.096273830113823,16.17423712080717,16.206877632311237,16.36739559265895,16.40181115900525,16.485941525539264,16.45250622650334,37.57828533077652,40.70900217979563,66.2120832612073,97.86047952854015,97.8318148803986,97.8318148803986,97.89960532996179,98.823143802517,101.93698721598452,104.1966773518622,105.2965664837362,104.78017477948238,82.01249646078675,84.42202563119764,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,37.19234698343583,42.155984730399396,66.21129610548915,98.10501249223847,98.00393482733907,97.90307821364667,97.83367564605356,97.83367564605356,97.8355364122128,97.8318148803986,97.8318148803986,97.89553893444365,81.22952364045862,84.66311305348417,76.10912289985735,29.612929828496608,16.096273830113823,16.096273830113823,16.260589616662376,16.447981429958386,16.567108762089884,16.70111751762696,17.052455678599305,17.506714012579444,37.870373981457284,42.6125837798868,66.42797437468205,97.96198162117645,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,81.05219319408289,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.569602647696511,15.603208184112717,36.830335981153134,33.720020538262524,49.04835182590883,74.48448125468538,97.8318148803986,97.87533329466393,98.16522253497504,100.14268583594918,102.23269031417108,102.12135487252154,102.3371459920315,102.91001265835322,72.8617766080862,58.54733472578733,58.54733472578733,41.337941818680584,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.749303454033376,15.845543559217434,16.04295611742759,7.687503832609485,32.30675753539848,31.633114682552293,57.17124987407008,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,46.60348820230203,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.584822897399372,16.25067201892665,16.297425339611284,16.45221365717214,16.297738594784242,16.20406434038462,37.414406278534244,42.215631348342036,66.08388219957075,97.8373269496304,97.8318148803986,98.18708878859694,101.74206768799175,105.8824531342738,108.08760717391635,110.6708841753657,111.29254277730291,108.80809990899182,85.98376233425817,84.75323205050195,75.79774656256608,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,37.28086765316981,42.16589097587021,65.95807342773664,97.8318148803986,97.87346177927955,100.75436335346303,107.12874466896845,111.26354148180467,112.16401602113363,113.51308038064417,112.6128115238078,109.84435142285446,89.50139155952525,85.47726189332346,76.10702370582938,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,37.201144524164135,42.1963066163628,66.19829372182471,97.9193230551657,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,82.7180283318151,84.41367049654625,75.94443995286687,29.612929828496608,16.096273830113823,16.17518368238586,16.351709609189804,16.60224269234059,16.62680702038523,17.325055085545728,17.459441711468333,17.862410820770272,37.80980279117861,42.57660840622124,66.33310202007814,97.88295104164736,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,82.7180283318151,84.38386346954734,75.83784983499686,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.18796913537124,37.44058945516573,42.29754845072832,66.09208274496447,97.8318148803986,97.8318148803986,98.3399513249614,102.41227068677831,104.36159101866419,102.92449711847622,99.4417066084487,98.42351011429388,98.00630725651469,82.7180283318151,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.664533645659597,15.89444302056704,16.03592458231461,16.120350196333867,16.180019831596315,37.15015942747402,35.65655717288158,49.38656519577868,75.04100510758983,98.33102115996338,98.21729811859647,98.12806902147385,98.07809140805107,98.00906607487585,97.95562387076237,97.9181996025488,98.05708230743545,74.54548403474976,59.08254340275226,59.12580816213043,41.984199524324495,15.497882203560616,15.916816339550381,15.943445079556879,16.23764406423874,16.532728662085088,17.338036480461838,17.73915730676438,18.065023049719795,18.594191038172998,11.956717141980986,32.82921858049421,32.06929054835519,57.45088898971584,57.19590530428135,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,57.16450014680973,48.26932334008468,15.497882203560616,15.497882203560616,15.538111628387474,15.653350147827835,15.665954796445893,15.75791164955837,16.420366088883604,16.39685095500283,16.406243369862423,16.524169376820392,16.639445792410214,37.62340663422886,44.038640551472334,66.26287324919929,97.93306856291437,97.8318148803986,97.8318148803986,97.8318148803986,97.8506638905104,98.08171603093868,98.2592798863232,98.26292297304852,98.24252180850905,84.63228016303628,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.19244280015609,16.35453127221985,37.41394883322383,44.00579360104123,66.14377371639853,97.83662156608224,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,84.38386346954734,84.38386346954734,75.77854639664396,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.16970877147614,16.255281111846273,16.333969996466553,16.354388893420378,37.4382137999115,43.99986401923761,66.3052934206222,97.94058636635859,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,84.38386346954734,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,37.32494255528014,43.90714672815902,66.06520081928102,97.8318148803986,97.8318148803986,97.83719479522642,98.60589934611495,102.3545021567936,106.51723524468794,108.63598118083807,108.59383658380641,105.18897523012294,85.17045993400217,84.39607116390899,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,37.07499724931128,43.71700849237497,65.95938695007187,97.8318148803986,97.8318148803986,101.01382174108826,106.8760627477865,108.03165129902592,108.08587618308128,109.2088439472439,108.37126054248857,104.89719869121465,85.6228842479143,84.45104272352359,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,36.64533317167533,35.308335119598546,48.87644492536346,74.38885264264972,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.83336358722796,97.84245069585492,97.84222666298221,97.8413847985136,75.77168722162732,58.54733472578733,58.54733472578733,41.33937615586213,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.637601996350917,15.552073736224987,15.497882203560616,15.497882203560616,8.834541652530866,31.869708048445585,31.355882497781923,57.16450014680973,57.32907499543296,76.47750139079642,78.74746603010003,81.64837696846631,82.83717035978177,83.16523253920666,61.372602113178566,50.025836112928125,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,37.04446768901765,45.38671776380533,65.91298701935418,97.8318148803986,97.8318148803986,98.44439129474316,102.10492945188633,107.27558373025529,108.9084108481049,110.81754973224807,110.5760902713975,108.1321781308071,87.17258329879597,84.75360136204954,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,36.97086715316174,45.33889193821046,65.9163228548306,97.8318148803986,97.8318148803986,98.0245262733844,100.38319241482593,103.88585069092589,105.94635173552473,108.8893396098526,108.67158041951512,106.18592772205562,85.37368888231013,84.49306071952263,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,37.152637661862286,45.40555480116522,65.93447251885132,97.8318148803986,97.8318148803986,97.8318148803986,98.47043488524577,100.64520161823782,101.18340261838131,101.4577356266457,101.63473739190106,102.87113153757473,84.89011261198317,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.162476002568262,16.276618196145797,16.50164817594057,37.45761444793409,45.706087997036406,66.25011599093177,97.87260605331775,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.49765001813081,84.38386346954734,84.38386346954734,75.77168722162732,29.612929828496608,16.096273830113823,16.096273830113823,16.25023574767866,16.396648778854317,16.564022191700026,16.596010548162912,16.567818791903253,16.511311538138344,37.545080861026086,45.74976407228526,66.28696555152256,97.89922981909095,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.49765001813081,84.41633890331936,84.63823048166196,76.18132470898956,29.65633397583107,16.473543128517136,16.73565499028169,17.031209972344858,17.233693716764726,17.41880213711492,17.766514164398238,17.77208394194733,18.08313890014849,37.32926002031452,37.39504592142328,49.28628151528261,74.63290472463066,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,99.49765001813081,75.77168722162732,58.54733472578733,58.54733472578733,41.4377257983228,15.497882203560616,15.497882203560616,15.497882203560616,15.646353179009825,15.760434990603915,15.86908507597383,15.878312616316556,15.900145962696142,15.812664419049886,10.617625418437518,32.08584599714851,31.558959042479433,57.166631876443326,57.16450014680973,74.38885264264972,74.38885264264972,74.45824804274802,74.6136686138281,74.60291145622496,58.83033528504621,49.935158477816906,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.181264241209295,16.160806026709192,16.096273830113823,16.096273830113823,16.096273830113823,32.39728648649321,40.728399686152066,66.42121388206036,98.26158485865243,98.10988653240454,97.94847633493511,97.89039247905018,97.86532346008474,97.8318148803986,97.8318148803986,99.65903281533772,108.20843930159052,84.89669786202995,85.00980058632314,76.45518712841005,29.839562979811316,16.85241906494825,17.970197787886285,18.80667335395878,19.32697234749911,20.049273833971014,20.29524136080798,20.92812698815658,20.753596194389466,33.280605042371825,41.08062926099779,66.30861757601689,97.90491321534982,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,107.91363559843963,84.69205935936135,84.85365191950042,76.33447619664844,29.817512969251954,16.839196973818215,17.84811736550835,18.656742097457673,18.951823851905285,19.695455702255302,20.029483135410498,20.857501597696047,20.6712102468261,34.88291268333332,41.03205792094356,66.22181180313223,97.84811719752078,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,107.82682570679194,84.39924005484723,84.58689375914452,76.10343441162136,29.612929828496608,16.37398618423912,16.507722817269414,16.756780882335423,16.633892432327123,16.86773217571309,17.333827539185055,17.795719081746945,17.38962078082526,34.39180018853576,40.78556789049387,66.31470226323462,98.07693543798176,97.85551801760704,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,107.84242994451412,84.52536869290259,84.62164623551443,76.09188255059628,29.612929828496608,16.18077401789739,16.45936958502946,16.690880116046458,16.71096030807743,17.374015381145984,17.79091146888779,18.483840156010483,18.1820089210854,34.55870703292023,40.81895266872626,66.26859930702855,97.94716086667597,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8629908237671,101.27505967738432,108.02191575096812,84.67559816831827,84.77539866168897,76.21323996779674,29.612929828496608,16.096273830113823,16.252357887623774,15.911700326696735,15.903822042387276,16.09120132951042,15.996574261967915,16.173986995207745,15.985033303966059,33.81714377985687,32.09473139611417,48.80942978437666,74.38885264264972,97.8318148803986,97.8318148803986,98.13471438286989,99.83061326634764,99.9282660708866,98.97897278414636,101.43681885126963,107.82682570679194,75.77168722162732,58.54733472578733,58.56518935214374,41.49192192854126,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.655180660997068,15.638865483834126,12.166211928045742,5.502871377015993,32.02393806768071,31.66160430267988,57.291543354476545,57.16903533400339,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,77.72052291811417,67.15951097370733,49.970940705399116,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,15.497882203560616,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.92183255665904,40.39724347213831,65.88642348443891,97.8318148803986,97.8318148803986,97.8318148803986,97.8787707417584,98.56195747883955,98.79066683731948,98.56879857779136,101.45070846479372,107.82682570679194,84.38386346954734,84.38386346954734,75.78389865908127,29.612929828496608,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,16.096273830113823,33.74244481453339,40.288276863512294,65.8966694943753,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,107.82682570679194,84.38386346954734,84.49992474649049,76.02107081691969,29.612929828496608,16.096273830113823,16.35825303518501,16.51570557268142,16.74907819352965,17.20629211417641,17.85496538310461,18.233081478407016,18.36325786454321,34.56693823107811,40.73847300565401,65.99364129816071,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,101.16348515586304,107.82682570679194,84.38872109164231,84.54124862250765,76.05624324474599,29.612929828496608,16.247497743089014,16.618439554657613,16.734632356088152,17.78828545007573,18.106993667690823,18.36141780237896,18.521950680283194,18.533364821733397,36.21913782245311,40.852388491028634,66.32502212700902,98.03859165138836,97.84673071488916,97.8318148803986,97.8318148803986,97.8318148803986,97.86157385835602,97.91008922317043,101.30860174269439,108.03463795235002,84.64966833040543,84.71048846491257,76.13466119710534,29.612929828496608,16.096273830113823,16.161160050172942,16.336205355549012,16.480717355017884,16.537882097894368,16.60936210767648,16.631439345336858,16.696294285942464,36.10781650128264,40.93891296162774,66.55480997611961,98.34248612456902,98.23721171044569,98.14182868116717,98.09558593259149,98.05569133742969,98.04037312379585,98.03912321486777,101.41786571481511,108.16079974422885,84.78913825148922,84.85897624615534,76.28391601677312,29.612929828496608,16.230037255526042,16.488161179719878,16.01825471449936,16.10700509442349,16.206542288506753,16.68786521556188,17.082852145060038,17.57139884953346,35.76480899171928,32.56046812671829,49.60664533055247,75.24555851655417,98.53040768914924,98.43886467520448,98.39355649402471,98.36329148659891,98.36852629016487,98.40620785601095,103.44762764293311,108.49925161478201,76.56748439803911,59.44119659261971,59.51355947322048,42.38883200373191,16.204829715319526,18.240542547252293,18.645954883675653,20.09952391239126,19.643151933465123,20.790765444863172,19.97686079462252,21.0668318302533,18.379942964159884,10.981851161279085,33.09775405960008,32.40070960091768,57.79925901001376,57.65196788372717,74.71480827397714,74.59965780086164,74.59054539018138,74.74627437028212,79.98262017900582,67.52039671768281,50.42573308526054,16.64740065550669,18.235586797595253,19.490438214089455,19.61090627225972,20.55946336863742,20.644932337435215,21.439781573733242,20.88975701030483,21.84171074640637,21.25704329137068,21.983242244474344,36.808434291646805,41.306717437085815,66.52351261194035,98.06483269744692,97.83413527085926,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.84506717122068,108.01212395517057,84.69897777638988,84.80406167553683,76.2420681668336,29.612929828496608,16.28227783045004,16.456414992049716,16.460102563684664,16.49458431917778,16.549407634134127,16.787201298586158,17.69256324358818,17.702918175644395,36.15582812161433,40.628687145667584,65.89560908989459,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.82682570679194,84.38900300352294,84.55500299406829,76.06026845818087,29.612929828496608,16.174469397660364,16.33908372640201,16.685438952671237,17.076218132146987,17.77680563155068,18.191436344321204,18.242463097801185,18.38684335368345,36.162749369435204,40.705788961426904,66.013910124747,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.83003400785785,84.54157948352672,84.69644792908045,76.1642197938135,29.612929828496608,16.317179192488435,16.489887016604797,16.12600798253987,16.109336845015456,16.7702568678238,17.21350215566126,17.392301594867686,17.70151865123815,15.844654910633531,7.659123875202522,32.68323353029535,32.26455426223098,57.888438614914236,57.77822444396589,74.88047786136786,74.80744615275341,74.75039077791034,74.75023978601497,79.77768035564314,67.38698355307693,50.24723892198098,15.497882203560616,15.691160039766327,15.991369103612204,16.221874238326176,17.193023723369816,18.005288361903556,18.72042575046158,18.71673121691702,19.45524442572686,19.26823717283115,19.90854010641169,36.49713033879158,41.13508090110996,66.5941218989351,98.43573073475386,98.37107266043066,98.32219423633882,98.28178299409434,98.25159031311513,98.24962046881926,98.24519968067155,103.29812506766912,108.3695915706032,85.0059760995529,85.09359343515462,76.54031336776742,29.86278326719122,17.032349215486263,17.93540458291052,18.067102272436756,17.990310830077778,18.62520923433022,18.501192178864237,19.164848355995684,18.933117662522914,37.67027453710523,32.55665589422608,49.266593100362115,74.61278415586368,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.83450112805536,75.99327421825228,58.927131966773885,59.00219328511386,41.8493347630644,15.497882203560616,15.65817510447126,15.987163701506587,16.052592441418643,16.610428271416236,17.111041517953716,18.106549875817567,17.787513249481183,18.28413749598055,7.489191804229536,32.2794669984214,31.74343913801934,57.20464181984768,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,79.45016209800372,67.1959893630544,50.06812523220025,15.497882203560616,15.497882203560616,15.58008524088276,15.592874957907295,15.740541073210203,16.449849699648603,16.638841548244358,16.868490981553805,17.734184720907155,17.98298630594133,18.5188099854243,37.95623596697807,40.85001675722204,66.11134904658226,97.83861341963974,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.87656248452357,84.59069229034566,84.70081085284366,76.15470087413331,29.612929828496608,16.21327664377507,16.594450358365478,16.736960169197143,18.314187571698906,18.177205316506765,18.963317125896587,18.361295494632326,19.03117403972868,37.943784676224524,40.89279258378027,66.22767746877338,97.89310989849798,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.86446970011814,107.96028231607775,84.61844748354439,84.71828970409908,76.1879223218807,29.612929828496608,16.454341238695033,16.668712925015473,17.008930441699853,17.93694639575357,18.31007134287986,18.98123139580396,19.31605394551805,19.771004803761965,38.115105461161924,41.10797318728909,66.48106699021287,98.08858552505012,97.83367564605356,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.97365250114201,108.14220374153953,84.78370964116371,84.8569368427698,76.31705189076455,29.762767655034118,16.820535144390842,17.899183410212448,18.729495354093615,19.079029546386387,19.792522575743966,19.91617568998877,20.530928082531794,20.43422567317779,38.269716648011695,41.20576331657047,66.59986738373101,98.090992035376,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.83240346353477,107.99880587447346,84.71161563440045,84.8233359126313,76.28715704808748,29.746343283755653,16.73218046877334,17.234183315505152,18.075115207620787,18.273317686586438,18.94143483451347,19.59232774264588,20.57711169478763,20.56025926891099,38.20313292248932,41.161117987869936,66.48903545833791,98.1524331374471,97.88020457957522,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.93525014773549,108.10262426906279,84.79853646488941,84.94511208418437,76.43513131367732,29.940618653955273,17.897251858713812,18.943506030483423,19.879308964977575,20.315385228471307,21.622049464063014,21.637185164708526,23.18489173362886,23.14531903048637,38.115315812409555,33.17624110405762,49.83664778743644,75.27488195145972,98.33091660601158,98.15017428941421,98.0959543808528,98.31919716609427,98.63129979137044,98.79082064094631,103.84913050729703,108.89410609624794,76.96831803148876,59.84689332438452,59.925547169717696,42.805840052088925,19.406953742308804,21.36121006720251,22.356059107119126,22.4869870176394,23.144668280504103,22.998275581485043,23.465041247465674,23.52006219436674,24.146010564825403,13.727732516615973,33.42014120786888,32.73051379844956,58.0889020170775,57.89755489222951,75.03738612833537,75.05786339720736,75.20787976243955,75.29874888765741,80.41505867043078,67.78546406833875,50.673116107904896,18.42236124129471,20.778909892737403,21.050575028538322,21.969134091694535,21.918571496785948,23.057397769052788,22.55630930016387,22.764802408057214,22.282618458284844,22.75128412280215,22.140759869116504,38.60743453845723,41.41231064936576,66.45298926579993,97.89354033747065,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.82974605700736,84.51949066240007,84.66619269867424,76.09136531202131,29.612929828496608,16.096273830113823,16.262946947656967,16.452347412841036,16.63821958316117,17.142084405510236,16.88853309428953,16.754557949431874,17.085455469982094,37.82482680567545,42.46927668071607,66.01506856718349,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.8444634854194,84.58582191057388,84.7178022327643,76.18910965465619,29.662843988361374,16.509236510831304,16.798478525455753,17.46713548235547,18.113635101689,17.940882571950144,18.610068371666465,18.437749049467424,19.134840012554317,37.98156583984146,42.654992603734385,66.33089712844576,97.88589031053938,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8339765799833,102.93428515201977,108.092092437749,84.78147483101434,84.86788489656685,76.31272407481683,29.670184297273817,16.632123883042826,17.027859383346396,17.83433981859408,18.126896812011253,18.355488866930678,18.181611769261504,18.65103934613904,18.798238231598535,38.013747344203004,42.7769526392785,66.68375549559751,98.42624483779059,98.18130753490591,97.91505518718829,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.86982471629747,108.08737325207923,84.7642888839161,84.84791284631956,76.29253678793849,29.612929828496608,16.603719334331387,16.780566137734326,17.757947550075134,18.235356552742456,18.68605447685296,18.82200099717983,18.943591122624486,19.268544743727922,38.139541594876235,42.77303182251798,66.32772604701947,97.87086240011027,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.93931676250605,84.6824726293513,84.78830495533856,76.23137562509856,29.612929828496608,16.504459814310913,16.715272164070612,16.855170150543643,17.09495665835728,17.638090710536314,17.819772418898022,18.380466530492125,18.29313916821086,37.477115797493504,34.164040759459496,49.367871444425234,74.94180883443283,98.26312847552173,98.07072725746112,97.83849252728928,97.97148957631418,98.19318216817959,98.23942789236992,103.27336839495521,108.33516981708621,76.39698249413651,59.23631719223648,59.27357298801619,42.1447943385813,15.752725527270062,16.27455997347251,16.799585516181693,17.776214415040286,17.55928162232884,18.513482990599616,18.400675059255313,19.865907045013884,19.206298583690888,12.337538664414158,33.20829996559442,32.74184240587916,58.36646762650445,58.261451156974076,75.3636386953467,75.32752732822496,75.33881810213369,75.37209612135321,80.43105499038873,67.81907898351315,50.685484890879806,17.762973012519073,20.61529468831223,20.124399868374745,21.461159927301896,20.63895904707449,22.633439766337194,21.545264867483493,23.046190340693606,22.036365177086093,23.609263921885603,22.31471012797765,38.68723607301812,43.4201424539397,67.29761253512012,99.07581657901639,98.91933990778483,98.78727231249574,98.69291909297364,98.30949081748442,98.35239720767021,98.51848608795898,103.74085337677472,108.85586492423776,85.50429761809542,85.60525828652621,77.0836682368761,32.226309820221495,21.563697600299413,22.383154247316636,23.43495499223656,23.240337322928596,24.251190849733337,24.152827651560322,25.070168617635463,24.490953516575424,38.733831844159816,43.681087691613314,67.44845409462182,99.13028540699686,99.01459565679788,98.57655694815827,98.17626692637664,98.0011810127102,97.99572063476096,98.1893768678459,103.65427878156602,108.9538729393095,85.58549284055148,85.64404377465006,77.16280569296013,33.56027077456544,22.01854176115054,23.44382003489175,23.872309366536644,24.545920553517952,24.526663323415175,25.480522295054495,24.934086251498574,24.65329421048123,38.733831844159816,43.69376954964095,67.31060980865428,98.77260876333305,98.39637080928844,97.96453925601702,97.8318148803986,97.8318148803986,97.8683460224871,98.11472574562573,103.41314805528698,108.63132223359008,85.34950884297267,85.4798923513028,76.98010882867264,32.01359216997584,21.214207374944515,21.88554290648576,23.10766510543293,23.504023520585854,24.591228079770033,24.231486591795278,25.191955860734137,25.116981593771495,38.733831844159816,43.53512061597256,66.96077777725255,98.36098531565318,97.94082210452582,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,103.10824948991014,108.43850040601902,85.13011934558713,85.21668093401658,76.66811050169049,30.626767310149887,18.993093991932223,19.44009947107609,20.2170795625798,20.02439028283323,20.41787383196449,19.86006159671024,20.148945724917,19.95039251396821,38.24453123188591,42.919901717143055,66.73112334520295,98.33138949375859,97.89776799910015,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.92969552081004,108.17425188945165,84.84554385717837,84.9347799599296,76.3777734966748,29.767696151822662,16.894391791617018,17.42157940221949,18.255737046819963,17.71456853375035,18.44402075762129,18.10844065004966,19.307196426917056,18.78848501844455,37.642921700912964,35.999173879204086,49.28224338578413,74.58462644686828,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.93998717741337,76.06796811600466,58.92884651482931,59.01518156776352,41.93480935991383,15.705404203147015,16.193422238570452,17.269135158057026,18.186753732187846,18.744969874430645,19.29353150880762,19.391931595374487,20.175878560437493,20.264079447555858,13.459645179650296,32.556588862820476,31.775838410982157,57.20612105583219,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,79.46074940756262,67.2320862721481,50.11573021444247,15.497882203560616,15.688363195056814,15.943982740499852,16.07563333680186,16.710422959117636,18.068396052090648,18.347470983079113,19.223008578073298,19.2601486900132,20.325799386352813,19.92983985655506,38.152184128045874,44.50640447994551,66.55075998253639,98.1750633525239,97.95298878572997,97.91601326299892,97.89208118499411,97.8355364122128,98.01765072618393,98.17017422098425,103.21411770732672,108.25986427445478,84.84792342308916,84.91226933471002,76.34444544870476,29.612929828496608,16.572878662810027,16.712431369467073,17.5563369698989,17.814786447161875,18.799918319202323,18.90163379754758,19.952480164819953,19.803121499932182,38.241984138869995,44.634865254348675,66.84720305724122,98.5036700411925,98.18260307597644,97.97761614501825,97.86366493436665,97.88861514960999,97.87428726400051,97.927876354357,103.02256140750904,108.0799888188002,84.71266746804191,84.79417934158297,76.20837669349626,29.612929828496608,16.288404924437582,16.78847622950375,17.50991345432127,17.96583340399941,18.093682937331742,18.672090654393774,18.90151750612971,19.81016183027831,38.15714987306535,44.5025709855495,66.47968076323903,98.25067418989094,97.99284020699731,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,103.02110743575865,108.22714181575347,84.86144481123308,84.92930062044199,76.35731734049727,29.683859174842656,16.634361854675625,16.790549064507406,17.110223016825376,16.875834847689774,17.128363125194912,18.803953277333978,19.350422605769523,19.554931104938134,38.10619685981451,44.46415441429206,66.37797480998708,97.88788837501805,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.89144991629068,84.58618295282733,84.68321444791674,76.1427154013568,29.612929828496608,16.260748824249465,16.42377942008614,16.7012732918358,17.124592296053503,17.566916954937707,18.127815429789877,18.192980011817816,18.559180109827732,37.9209579757803,44.23278798990772,66.15980929722438,97.87888365173639,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.82682570679194,84.3857242352023,84.49184206438144,76.00573716447988,29.612929828496608,16.14179333913383,16.345298801110683,15.720668143909293,15.893218917645735,16.123255714867565,15.964426151102733,15.972612192329006,16.949195917312984,37.225708563572645,35.614239169926606,48.95709109558223,74.40005025072416,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.82682570679194,75.80828814719942,58.77774400637741,58.88420735479328,41.750735888041675,15.497882203560616,15.596929076304608,15.587066321048038,15.564985634831302,15.522764813252449,15.497882203560616,15.529701145437736,15.71744892116267,15.791779677998564,8.988743651218156,32.11698987487798,31.684024742470243,57.44753638218061,57.41482991091577,74.61374571910879,74.70042576332372,74.80124794893773,74.85565976825612,79.88706069492096,67.40481963995725,50.258040761103175,15.554967222958393,16.049844700704575,16.098757920174886,16.44010370017925,17.139450237719515,18.076424560464858,18.744750533054912,18.939648667835602,19.21327156762268,19.32353373562371,19.446719246724385,38.119166620536184,44.536780205651006,66.79303966569229,98.57931917528998,98.43187964343706,98.34541057488998,98.29709780601722,98.25326643837613,98.26340896691322,98.18953991650221,103.26154588359871,108.38044318695303,85.00135334023673,85.06313295389894,76.50735599434893,29.83697954123313,16.796521144905856,17.37001234312509,17.221909157278002,17.77245966057165,17.530647126275642,18.145464417322255,18.17729224444222,19.11855366915286,18.72689353851062,12.823916486377856,32.5892242737751,31.83277742366024,57.3042239058256,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.38885264264972,79.41530452106849,67.21443768378477,50.113587377814085,15.497882203560616,15.563692441677562,15.682925778606227,15.940424386683627,15.828159492811052,16.477350893099477,16.608357631590227,16.520162490620258,16.39157985670362,17.074327779271215,17.692027878573196,37.89442836388062,44.27778874849241,66.28400191899763,97.8792144537575,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.9184101463756,84.67181083765139,84.7598015198572,76.20759595493998,29.65746876719881,16.536403113533602,16.801730188352344,17.499796920836516,18.345508807609338,18.344652974593995,19.11907965283794,19.024043255739564,19.95598979787529,38.14159442967502,44.521482719611306,66.48958032711616,97.99411078336179,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.87562034481428,108.1844850181685,84.90358546901689,85.00198287057185,76.4723948270951,30.06476835597908,17.81134924221114,18.142025018303237,18.415333562025655,18.29737585420744,19.308607825846146,19.46974395201064,19.705873340461295,19.429148502931483,38.09375627718924,44.45794016918536,66.32661066048153,97.86069897318751,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.98264301892895,84.74693803300372,84.85866474352409,76.30475470306503,29.772736387757185,16.850314352292195,17.46942422666767,17.75258655523497,17.822853339502803,18.34491381013703,18.69696926770553,19.182655749751518,19.21476102548142,37.47897577721508,35.83711078029373,49.20999038337256,74.56924859084327,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.82932029359526,107.83932947708102,75.96705927046726,58.86289177998726,58.92649908464915,41.76628735930665,15.497882203560616,15.497882203560616,15.497882203560616,15.529200546856929,15.595143149299615,15.605904826549281,15.759884375072174,16.006842455083827,16.11059705942339,9.864076697539353,32.368636246861726,31.735631499975483,57.21750166496435,57.16450014680973,74.38885264264972,74.38885264264972,74.38885264264972,74.46695668253842,79.68559613583571,67.30997739851315,50.165154873089925,15.543693268811092,16.011391022105343,16.431214408558976,17.195702119908127,17.57104511747925,18.529330741864417,18.576693027811707,18.824110432949716,19.33185169304342,20.241489639117447,20.318373899474935,38.23157913343659,44.589997615465215,66.62285065213344,98.25408515598157,97.88727324673856,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,97.8318148803986,102.90246568521215,108.13099552291034,84.80946558942048,84.88732781082311,76.34180583747053,29.76498800675206,16.821208809883622,17.33868305979315],"year":2017},"PV":{"array_type":0,"existing_kw":0,"module_type":0,"tilt":25,"can_net_meter":false,"installed_cost_per_kw":1790,"azimuth":180,"min_kw":0,"name":"PV","location":"ground","max_kw":0,"can_wholesale":true},"Financial":{"analysis_years":25,"elec_cost_escalation_rate_fraction":0.0,"third_party_ownership":false,"owner_tax_rate_fraction":0.0,"owner_discount_rate_fraction":0.0564,"offtaker_tax_rate_fraction":0.0,"offtaker_discount_rate_fraction":0.0564},"Settings":{"facilitymeter_node":"1","time_steps_per_hour":1}}],"line_upgrade_options":{"Option1":{"locations":["line2_3","line1_2"],"cost_per_meter":0,"voltage_kv":4.16,"max_amps":1},"Option5":{"locations":["line2_3","line1_2"],"cost_per_meter":5000,"voltage_kv":4.16,"max_amps":300},"Option4":{"locations":["line2_3","line1_2"],"cost_per_meter":20,"voltage_kv":4.16,"max_amps":100},"Option3":{"locations":["line2_3","line1_2"],"cost_per_meter":12,"voltage_kv":4.16,"max_amps":15},"Option2":{"locations":["line2_3","line1_2"],"cost_per_meter":5,"voltage_kv":4.16,"max_amps":5}},"display_results":false,"generate_same_pv_production_profile_for_each_node":true,"allow_export_beyond_substation":true,"substation_export_limit":125,"single_outage_end_time_step":4007,"pv_inputs_for_standardized_pv_production_profile":{"array_type":0,"latitude":39.91,"module_type":0,"tilt":20,"inv_eff_fraction":0.96,"longitude":-105.23,"losses":0.14,"gcr":0.4,"azimuth":180,"dc_ac_ratio":1.2},"model_line_upgrades":false,"critical_load_method":"Fraction","number_of_plots_from_outage_simulator":1,"transformer_upgrade_options":{},"substation_line":"line0_1","switch_open_timesteps":{},"bus_neutral_voltage_upper_bound_per_unit":0.1} \ No newline at end of file