diff --git a/Cargo.lock b/Cargo.lock index e28fd1277..14b0f90be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -651,27 +651,27 @@ dependencies = [ [[package]] name = "cranelift-assembler-x64" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f248321c6a7d4de5dcf2939368e96a397ad3f53b6a076e38d0104d1da326d37" +checksum = "046d4b584c3bb9b5eb500c8f29549bec36be11000f1ba2a927cef3d1a9875691" dependencies = [ "cranelift-assembler-x64-meta", ] [[package]] name = "cranelift-assembler-x64-meta" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab6d78ff1f7d9bf8b7e1afbedbf78ba49e38e9da479d4c8a2db094e22f64e2bc" +checksum = "b9b194a7870becb1490366fc0ae392ccd188065ff35f8391e77ac659db6fb977" dependencies = [ "cranelift-srcgen", ] [[package]] name = "cranelift-bforest" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b6005ba640213a5b95382aeaf6b82bf028309581c8d7349778d66f27dc1180b" +checksum = "bb6a4ab44c6b371e661846b97dab687387a60ac4e2f864e2d4257284aad9e889" dependencies = [ "cranelift-entity", "wasmtime-internal-core", @@ -679,9 +679,9 @@ dependencies = [ [[package]] name = "cranelift-bitset" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fb5b134a12b559ff0c0f5af0fcd755ad380723b5016c4e0d36f74d39485340" +checksum = "b8b7a44150c2f471a94023482bda1902710746e4bed9f9973d60c5a94319b06d" dependencies = [ "serde", "serde_derive", @@ -690,9 +690,9 @@ dependencies = [ [[package]] name = "cranelift-codegen" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85837de8be7f17a4034a6b08816f05a3144345d2091937b39d415990daca28f4" +checksum = "01b06598133b1dd76758b8b95f8d6747c124124aade50cea96a3d88b962da9fa" dependencies = [ "bumpalo", "cranelift-assembler-x64", @@ -718,9 +718,9 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e433faa87d38e5b8ff469e44a26fea4f93e58abd7a7c10bad9810056139700c9" +checksum = "6190e2e7bcf0a678da2f715363d34ed530fedf7a2f0ab75edaefef72a70465ff" dependencies = [ "cranelift-assembler-x64-meta", "cranelift-codegen-shared", @@ -731,24 +731,24 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5397ba61976e13944ca71230775db13ee1cb62849701ed35b753f4761ed0a9b7" +checksum = "f583cf203d1aa8b79560e3b01f929bdacf9070b015eec4ea9c46e22a3f83e4a0" [[package]] name = "cranelift-control" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc81c88765580720eb30f4fc2c1bfdb75fcbf3094f87b3cd69cecca79d77a245" +checksum = "803159df35cc398ae54473c150b16d6c77e92ab2948be638488de126a3328fbc" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463feed5d46cf8763f3ba3045284cf706dd161496e20ec9c14afbb4ba09b9e66" +checksum = "3109e417257082d88087f5bcce677525bdaa8322b88dd7f175ed1a1fd41d546c" dependencies = [ "cranelift-bitset", "serde", @@ -758,9 +758,9 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c5eca7696c1c04ab4c7ed8d18eadbb47d6cc9f14ec86fe0881bf1d7e97e261" +checksum = "14db6b0e0e4994c581092df78d837be2072578f7cb2528f96a6cf895e56dee63" dependencies = [ "cranelift-codegen", "log", @@ -770,15 +770,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1153844610cc9c6da8cf10ce205e45da1a585b7688ed558aa808bbe2e4e6d77" +checksum = "ec66ea5025c7317383699778282ac98741d68444f956e3b1d7b62f12b7216e67" [[package]] name = "cranelift-native" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97b583fe9a60f06b0464cee6be5a17f623fd91b217aaac99b51b339d19911af" +checksum = "373ade56438e6232619d85678477d0a88a31b3581936e0503e61e96b546b0800" dependencies = [ "cranelift-codegen", "libc", @@ -787,9 +787,9 @@ dependencies = [ [[package]] name = "cranelift-srcgen" -version = "0.130.0" +version = "0.130.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8594dc6bb4860fa8292f1814c76459dbfb933e1978d8222de6380efce45c7cee" +checksum = "ef53619d3cd5c78fd998c6d9420547af26b72e6456f94c2a8a2334cb76b42baa" [[package]] name = "crc-fast" @@ -1212,9 +1212,9 @@ checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" [[package]] name = "fastrand" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a043dc74da1e37d6afe657061213aa6f425f855399a11d3463c6ecccc4dfda1f" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "fd-lock" @@ -1535,6 +1535,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + [[package]] name = "hdrhistogram" version = "7.5.4" @@ -1556,7 +1562,7 @@ checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" dependencies = [ "atomic-polyfill", "hash32", - "rustc_version 0.4.1", + "rustc_version", "serde", "spin 0.9.8", "stable_deref_trait", @@ -1874,12 +1880,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] @@ -2713,9 +2719,9 @@ dependencies = [ [[package]] name = "pulley-interpreter" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7975f0975fa2c047bf47d617bdf716689e42ee82b159bd000ead7330d7697a1b" +checksum = "010dec3755eb61b2f1051ecb3611b718460b7a74c131e474de2af20a845938af" dependencies = [ "cranelift-bitset", "log", @@ -2725,9 +2731,9 @@ dependencies = [ [[package]] name = "pulley-macros" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210c0386ef0ddedb337ec99b91e560ae9c341415ef75958cb39ddb537bb0c84" +checksum = "ad360c32e85ca4b083ac0e2b6856e8f11c3d5060dafa7d5dc57b370857fa3018" dependencies = [ "proc-macro2", "quote", @@ -3182,32 +3188,23 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.28", + "semver", ] [[package]] name = "rustc_version_runtime" -version = "0.1.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6de8ecd7fad7731f306f69b6e10ec5a3178c61e464dcc06979427aa4cc891145" +checksum = "2dd18cd2bae1820af0b6ad5e54f4a51d0f3fcc53b05f845675074efcc7af071d" dependencies = [ - "rustc_version 0.2.3", - "semver 0.9.0", + "rustc_version", + "semver", ] [[package]] @@ -3352,15 +3349,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - [[package]] name = "semver" version = "1.0.28" @@ -3371,12 +3359,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - [[package]] name = "serde" version = "1.0.228" @@ -3852,9 +3834,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.51.0" +version = "1.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd1c4c0fc4a7ab90fc15ef6daaa3ec3b893f004f915f2392557ed23237820cd" +checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c" dependencies = [ "bytes", "libc", @@ -4441,7 +4423,7 @@ dependencies = [ "bitflags", "hashbrown 0.15.5", "indexmap", - "semver 1.0.28", + "semver", ] [[package]] @@ -4453,7 +4435,7 @@ dependencies = [ "bitflags", "hashbrown 0.16.1", "indexmap", - "semver 1.0.28", + "semver", "serde", ] @@ -4466,7 +4448,7 @@ dependencies = [ "bitflags", "hashbrown 0.16.1", "indexmap", - "semver 1.0.28", + "semver", "serde", ] @@ -4483,9 +4465,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54fa9f298901a64ed3eae16b130f0b30c80dbb74a9e7f129a791f4e74649b917" +checksum = "ce205cd643d661b5ba5ba4717e13730262e8cdbc8f2eacbc7b906d45c1a74026" dependencies = [ "addr2line", "async-trait", @@ -4508,7 +4490,7 @@ dependencies = [ "pulley-interpreter", "rayon", "rustix 1.1.4", - "semver 1.0.28", + "semver", "serde", "serde_derive", "serde_json", @@ -4536,9 +4518,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a3aaaa3a522f443af67a7ed8d4efa20b0c3784e1031980537fbfcb497f70a7" +checksum = "0b8b78abf3677d4a0a5db82e5015b4d085ff3a1b8b472cbb8c70d4b769f019ce" dependencies = [ "anyhow", "cpp_demangle", @@ -4552,7 +4534,7 @@ dependencies = [ "object", "postcard", "rustc-demangle", - "semver 1.0.28", + "semver", "serde", "serde_derive", "sha2 0.10.9", @@ -4567,9 +4549,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-cache" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0454f53d6c91d9a3b30be6d5dbd27e8ff595fddaafe69665df908fc385bbd836" +checksum = "8e4fd4103ba413c0da2e636f73490c6c8e446d708cbde7573703941bc3d6a448" dependencies = [ "base64 0.22.1", "directories-next", @@ -4587,9 +4569,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-component-macro" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0d00d29ed90a63d2445072860a8a42d7151390157236a69bc3ae056786e9c9" +checksum = "0d3d6914f34be2f9d78d8ee9f422e834dfc204e71ccce697205fae95fed87892" dependencies = [ "anyhow", "proc-macro2", @@ -4602,15 +4584,15 @@ dependencies = [ [[package]] name = "wasmtime-internal-component-util" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acfd639ca7ab9e1cc37f053edd95bed6a7bed16370a8b2643dc7d9ef3047935" +checksum = "3751b0616b914fdd87fe1bf804694a078f321b000338e6476bc48a4d6e454f21" [[package]] name = "wasmtime-internal-core" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e671917bb6856ae360cb59d7aaf26f1cfd042c7b924319dd06fd380739fc0b2e" +checksum = "22632b187e1b0716f1b9ac57ad29013bed33175fcb19e10bb6896126f82fac67" dependencies = [ "anyhow", "hashbrown 0.16.1", @@ -4620,9 +4602,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-cranelift" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dfd752e1dcf79eeeadc6f2681e2fb4a9f0b5534d18c5b9b93faccd0de2c80c" +checksum = "8b3ca07b3e0bb3429674b173b5800577719d600774dd81bff58f775c0aaa64ee" dependencies = [ "cfg-if", "cranelift-codegen", @@ -4647,9 +4629,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-fiber" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1e9171af643316c11d6ebe52f31f6e2a5d6d1d270de9167a7b7b6f0e3f72982" +checksum = "20c8b2c9704eb1f33ead025ec16038277ccb63d0a14c31e99d5b765d7c36da55" dependencies = [ "cc", "cfg-if", @@ -4662,9 +4644,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-jit-debug" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe23134536b9883ffc2afcffae23f7ffbcb1791e2d9fac6d6464a37ea4c8fdd" +checksum = "d950310d07391d34369f62c48336ebb14eacbd4d6f772bb5f349c24e838e0664" dependencies = [ "cc", "object", @@ -4674,9 +4656,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-jit-icache-coherence" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3112806515fac8495883885eb8dbdde849988ae91fe6beb544c0d7c0f4c9aa" +checksum = "3606662c156962d096be3127b8b8ae8ee2f8be3f896dad29259ff01ddb64abfd" dependencies = [ "cfg-if", "libc", @@ -4686,9 +4668,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-unwinder" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dafc29c6e538273fda8409335137654751bdf24beab65702b7866b0a85ee108a" +checksum = "75eef0747e52dc545b075f64fd0e0cc237ae738e641266b1970e07e2d744bc32" dependencies = [ "cfg-if", "cranelift-codegen", @@ -4699,9 +4681,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-versioned-export-macros" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772f2b105b7fdd3dfb2cdf70c297baaeb96fe76a95cdc6fa516f713f04090c73" +checksum = "d8b0a5dab02a8fb527f547855ecc0e05f9fdc3d5bd57b8b080349408f9a6cece" dependencies = [ "proc-macro2", "quote", @@ -4710,9 +4692,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-winch" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d556c3b176aba3cce565b2bafcdc049e7410ac1d86bf1ef663a035d9ded0dddc" +checksum = "8007342bd12ff400293a817973f7ecd6f1d9a8549a53369a9c1af357166f1f1e" dependencies = [ "cranelift-codegen", "gimli", @@ -4727,9 +4709,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-wit-bindgen" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c47507f09e68462a0ed9f351ef410584a52e01d7ec92bc588bf7fa597ce528ef" +checksum = "7900c3e3c1d6e475bc225d73b02d6d5484815f260022e6964dca9558e50dd01a" dependencies = [ "anyhow", "bitflags", @@ -4740,9 +4722,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf7fc1eb83dd0d5a368c78d2bad2660f69c03e3c07ce2dd6d1e50fc2b9ff14db" +checksum = "ed3e3ddcfad69e9eb025bd19bff70dad45bafe1d6eacd134c0ffdfc4c161d045" dependencies = [ "async-trait", "bitflags", @@ -4770,9 +4752,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi-io" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "315fd7192148233c2c61753b5e8e2456e0ff96dd649f079148977554139ea4dc" +checksum = "3ca5dd3b9f04a851c422d05f333366722742da46bff9369ae0191f32cf83565a" dependencies = [ "async-trait", "bytes", @@ -4823,9 +4805,9 @@ dependencies = [ [[package]] name = "wiggle" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e79079e7f5a8c034307bb5e61b2e63bc668e17d139705a7dea5afceab02510" +checksum = "cc1b1135efc8e5a008971897bea8d41ca56d8d501d4efb807842ae0a1c78f639" dependencies = [ "bitflags", "thiserror 2.0.18", @@ -4837,9 +4819,9 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9165e5b08a6463d247b5c1292aaab16b103d0d8f5941b60d7bc0c38125eb9ffe" +checksum = "a7bc2b0d50ec8773b44fbfe1da6cb5cc44a92deaf8483233dcf0831e6db33172" dependencies = [ "heck", "proc-macro2", @@ -4851,9 +4833,9 @@ dependencies = [ [[package]] name = "wiggle-macro" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb0a5b9476150428eead9ce1a5c83e8fd6aac29806f48c6dbf77d50a067473a" +checksum = "2d6c7d44ea552e1fbfdcd7a2cd83f5c2d1e803d5b1a11e3462c06888b77f455f" dependencies = [ "proc-macro2", "quote", @@ -4894,9 +4876,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" -version = "43.0.0" +version = "43.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca3d76763e4ddc48ede73792d067396ba5ee74c3c581db90e6638fe6b46bf52" +checksum = "eb9f45f7172a2628c8317766e427babc0a400f9d10b1c0f0b0617c5ed5b79de6" dependencies = [ "cranelift-assembler-x64", "cranelift-codegen", @@ -5286,7 +5268,7 @@ dependencies = [ "id-arena", "indexmap", "log", - "semver 1.0.28", + "semver", "serde", "serde_derive", "serde_json", @@ -5305,7 +5287,7 @@ dependencies = [ "id-arena", "indexmap", "log", - "semver 1.0.28", + "semver", "serde", "serde_derive", "serde_json", @@ -5324,7 +5306,7 @@ dependencies = [ "id-arena", "indexmap", "log", - "semver 1.0.28", + "semver", "serde", "serde_derive", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index c6502017d..9c4edada1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -129,7 +129,7 @@ enum_dispatch = "0.3.13" flate2 = "1.1.9" heck = "0.5" hmac = "=0.13.0" -indexmap = "2.13" +indexmap = "2.14" itertools = "0.14.0" libloading = "0.9" lru = "0.16.3" diff --git a/pumpkin-codegen/src/block.rs b/pumpkin-codegen/src/block.rs index 52476d97c..4459f18e1 100644 --- a/pumpkin-codegen/src/block.rs +++ b/pumpkin-codegen/src/block.rs @@ -492,6 +492,9 @@ impl PistonBehavior { impl BlockState { /// Bit flag indicating this state is an air block. const IS_AIR: u16 = 1 << 0; + + const IS_LIQUID: u16 = 1 << 5; + /// Bit flag indicating this state receives random tick events. const HAS_RANDOM_TICKS: u16 = 1 << 9; @@ -505,6 +508,10 @@ impl BlockState { self.state_flags & Self::IS_AIR != 0 } + pub const fn is_liquid(&self) -> bool { + self.state_flags & Self::IS_LIQUID != 0 + } + /// Emits the `BlockState { … }` struct literal token stream for code generation. fn to_tokens(&self) -> TokenStream { let mut tokens = TokenStream::new(); @@ -763,6 +770,7 @@ pub fn build() -> TokenStream { let mut random_tick_states = Vec::new(); let mut air_states = Vec::new(); + let mut liquid_states = Vec::new(); let mut constants_list = Vec::new(); let mut block_from_name_entries = Vec::new(); @@ -858,6 +866,10 @@ pub fn build() -> TokenStream { let state_id = LitInt::new(&state.id.to_string(), Span::call_site()); air_states.push(state_id); } + if state.is_liquid() { + let state_id = LitInt::new(&state.id.to_string(), Span::call_site()); + liquid_states.push(state_id); + } let mut matched_be_id = 1; @@ -961,6 +973,7 @@ pub fn build() -> TokenStream { let shapes = blocks_assets.shapes.iter().map(ToTokens::to_token_stream); let air_state_ids = quote! { #(#air_states)|* }; + let liquid_state_ids = quote! { #(#liquid_states)|* }; let block_props = block_properties.iter().map(ToTokens::to_token_stream); let properties = property_enums.values().map(ToTokens::to_token_stream); @@ -1060,6 +1073,11 @@ pub fn build() -> TokenStream { matches!(state_id, #air_state_ids) } + #[inline(always)] + pub fn is_liquid(state_id: u16) -> bool { + matches!(state_id, #liquid_state_ids) + } + #[inline(always)] pub fn has_random_ticks(state_id: u16) -> bool { #mod_ident::#contains_ident(state_id) diff --git a/pumpkin-codegen/src/configured_feature.rs b/pumpkin-codegen/src/configured_feature.rs index 759a30ed4..b7a9df6bf 100644 --- a/pumpkin-codegen/src/configured_feature.rs +++ b/pumpkin-codegen/src/configured_feature.rs @@ -582,7 +582,7 @@ pub fn value_to_configured_feature(v: &Value) -> TokenStream { }) } } - + // All TODO/empty features "minecraft:fossil" => { quote! { ConfiguredFeature::Fossil(crate::generation::feature::features::fossil::FossilFeature {}) } diff --git a/pumpkin-codegen/src/damage_type.rs b/pumpkin-codegen/src/damage_type.rs index 12a2970ef..907bdaae5 100644 --- a/pumpkin-codegen/src/damage_type.rs +++ b/pumpkin-codegen/src/damage_type.rs @@ -114,7 +114,7 @@ pub fn build() -> TokenStream { quote! { use crate::tag::{RegistryKey, Tag, Taggable}; - + #[derive(Clone, Copy, Debug, PartialEq)] pub struct DamageType { pub death_message_type: DeathMessageType, diff --git a/pumpkin-codegen/src/loot.rs b/pumpkin-codegen/src/loot.rs index 3b1287627..04db56926 100644 --- a/pumpkin-codegen/src/loot.rs +++ b/pumpkin-codegen/src/loot.rs @@ -292,9 +292,7 @@ pub enum LootConditionStruct { AllOf, /// Passes with the given probability. #[serde(rename = "minecraft:random_chance")] - RandomChance { - chance: f32, - }, + RandomChance { chance: f32 }, /// Passes with probability scaled by an enchantment level. #[serde(rename = "minecraft:random_chance_with_enchanted_bonus")] RandomChanceWithEnchantedBonus, diff --git a/pumpkin-data/src/generated/block.rs b/pumpkin-data/src/generated/block.rs index 932010e41..4209d3c75 100644 --- a/pumpkin-data/src/generated/block.rs +++ b/pumpkin-data/src/generated/block.rs @@ -3315,6 +3315,10563 @@ pub fn is_air(state_id: u16) -> bool { matches!(state_id, 0 | 15292 | 15293) } #[inline(always)] +pub fn is_liquid(state_id: u16) -> bool { + matches!( + state_id, + 45 | 47 + | 49 + | 51 + | 53 + | 55 + | 57 + | 59 + | 61 + | 63 + | 65 + | 67 + | 69 + | 71 + | 73 + | 75 + | 77 + | 79 + | 81 + | 83 + | 86 + | 87 + | 88 + | 89 + | 90 + | 91 + | 92 + | 93 + | 94 + | 95 + | 96 + | 97 + | 98 + | 99 + | 100 + | 101 + | 102 + | 103 + | 104 + | 105 + | 106 + | 107 + | 108 + | 109 + | 110 + | 111 + | 112 + | 113 + | 114 + | 115 + | 116 + | 117 + | 163 + | 252 + | 254 + | 256 + | 258 + | 260 + | 262 + | 264 + | 266 + | 268 + | 270 + | 272 + | 274 + | 276 + | 278 + | 280 + | 282 + | 284 + | 286 + | 288 + | 290 + | 292 + | 294 + | 296 + | 298 + | 300 + | 302 + | 304 + | 306 + | 308 + | 310 + | 312 + | 314 + | 316 + | 318 + | 320 + | 322 + | 324 + | 326 + | 328 + | 330 + | 332 + | 334 + | 336 + | 338 + | 340 + | 342 + | 344 + | 346 + | 348 + | 350 + | 352 + | 354 + | 356 + | 358 + | 360 + | 362 + | 364 + | 366 + | 368 + | 370 + | 372 + | 374 + | 376 + | 378 + | 380 + | 382 + | 384 + | 386 + | 388 + | 390 + | 392 + | 394 + | 396 + | 398 + | 400 + | 402 + | 404 + | 406 + | 408 + | 410 + | 412 + | 414 + | 416 + | 418 + | 420 + | 422 + | 424 + | 426 + | 428 + | 430 + | 432 + | 434 + | 436 + | 438 + | 440 + | 442 + | 444 + | 446 + | 448 + | 450 + | 452 + | 454 + | 456 + | 458 + | 460 + | 462 + | 464 + | 466 + | 468 + | 470 + | 472 + | 474 + | 476 + | 478 + | 480 + | 482 + | 484 + | 486 + | 488 + | 490 + | 492 + | 494 + | 496 + | 498 + | 500 + | 502 + | 504 + | 506 + | 508 + | 510 + | 512 + | 514 + | 516 + | 518 + | 520 + | 522 + | 524 + | 526 + | 528 + | 530 + | 532 + | 534 + | 536 + | 538 + | 540 + | 542 + | 544 + | 546 + | 548 + | 550 + | 552 + | 554 + | 556 + | 558 + | 2187 + | 2189 + | 2191 + | 2193 + | 2195 + | 2197 + | 2199 + | 2201 + | 2203 + | 2205 + | 2207 + | 2209 + | 2211 + | 2213 + | 2215 + | 2217 + | 2219 + | 2221 + | 2223 + | 2225 + | 2227 + | 2229 + | 2231 + | 2233 + | 2254 + | 2255 + | 2256 + | 2600 + | 2602 + | 2604 + | 2606 + | 2608 + | 2610 + | 2612 + | 2614 + | 2616 + | 2618 + | 2620 + | 2622 + | 2624 + | 2626 + | 2628 + | 2630 + | 2632 + | 2634 + | 2636 + | 2638 + | 2640 + | 2642 + | 2644 + | 2646 + | 2648 + | 2650 + | 2652 + | 2654 + | 2656 + | 2658 + | 2660 + | 2662 + | 2664 + | 2666 + | 2668 + | 2670 + | 2672 + | 2674 + | 2676 + | 2678 + | 2680 + | 2682 + | 2684 + | 2686 + | 2688 + | 2690 + | 2692 + | 2694 + | 2696 + | 2698 + | 2700 + | 2702 + | 2704 + | 2706 + | 2708 + | 2710 + | 2712 + | 2714 + | 2716 + | 2718 + | 2720 + | 2722 + | 2724 + | 2726 + | 2728 + | 2730 + | 2732 + | 2734 + | 2736 + | 2738 + | 2740 + | 2742 + | 2744 + | 2746 + | 2748 + | 2750 + | 2752 + | 2754 + | 2756 + | 2758 + | 2760 + | 2762 + | 2764 + | 2766 + | 2768 + | 2770 + | 2772 + | 2774 + | 2776 + | 2778 + | 2780 + | 2782 + | 2784 + | 2786 + | 2788 + | 2790 + | 2792 + | 2794 + | 2796 + | 2798 + | 2800 + | 2802 + | 2804 + | 2806 + | 2808 + | 2810 + | 2812 + | 2814 + | 2816 + | 2818 + | 2820 + | 2822 + | 2824 + | 2826 + | 2828 + | 2830 + | 2832 + | 2834 + | 2836 + | 2838 + | 2840 + | 2842 + | 2844 + | 2846 + | 2848 + | 2850 + | 2852 + | 2854 + | 2856 + | 2858 + | 2860 + | 2862 + | 2864 + | 2866 + | 2868 + | 2870 + | 2872 + | 2874 + | 2876 + | 2878 + | 2880 + | 2882 + | 2884 + | 2886 + | 2888 + | 2890 + | 2892 + | 2894 + | 2896 + | 2898 + | 2900 + | 2902 + | 2904 + | 2906 + | 2908 + | 2910 + | 2912 + | 2914 + | 2916 + | 2918 + | 2920 + | 2922 + | 2924 + | 2926 + | 2928 + | 2930 + | 2932 + | 2934 + | 2936 + | 2938 + | 2940 + | 2942 + | 2944 + | 2946 + | 2948 + | 2950 + | 2952 + | 2954 + | 2956 + | 2958 + | 2960 + | 2962 + | 2964 + | 2966 + | 2968 + | 2970 + | 2972 + | 2974 + | 2976 + | 2978 + | 2980 + | 2982 + | 2984 + | 2986 + | 2988 + | 2990 + | 2992 + | 2994 + | 2996 + | 2998 + | 3000 + | 3002 + | 3004 + | 3006 + | 3008 + | 3010 + | 3012 + | 3014 + | 3016 + | 3018 + | 3020 + | 3022 + | 3024 + | 3026 + | 3028 + | 3030 + | 3032 + | 3034 + | 3036 + | 3038 + | 3040 + | 3042 + | 3044 + | 3046 + | 3048 + | 3050 + | 3052 + | 3054 + | 3056 + | 3058 + | 3060 + | 3062 + | 3064 + | 3066 + | 3068 + | 3070 + | 3072 + | 3074 + | 3076 + | 3078 + | 3080 + | 3082 + | 3084 + | 3086 + | 3088 + | 3090 + | 3092 + | 3094 + | 3096 + | 3098 + | 3100 + | 3102 + | 3104 + | 3106 + | 3108 + | 3110 + | 3112 + | 3114 + | 3116 + | 3118 + | 3120 + | 3122 + | 3124 + | 3126 + | 3128 + | 3130 + | 3132 + | 3134 + | 3136 + | 3138 + | 3140 + | 3142 + | 3144 + | 3146 + | 3148 + | 3150 + | 3152 + | 3154 + | 3156 + | 3158 + | 3160 + | 3162 + | 3164 + | 3166 + | 3168 + | 3170 + | 3172 + | 3174 + | 3176 + | 3178 + | 3180 + | 3182 + | 3184 + | 3186 + | 3188 + | 3190 + | 3192 + | 3194 + | 3196 + | 3198 + | 3200 + | 3202 + | 3204 + | 3206 + | 3208 + | 3210 + | 3212 + | 3214 + | 3216 + | 3218 + | 3220 + | 3222 + | 3224 + | 3226 + | 3228 + | 3230 + | 3232 + | 3234 + | 3236 + | 3238 + | 3240 + | 3242 + | 3244 + | 3246 + | 3248 + | 3250 + | 3252 + | 3254 + | 3256 + | 3258 + | 3260 + | 3262 + | 3264 + | 3266 + | 3268 + | 3270 + | 3272 + | 3274 + | 3276 + | 3278 + | 3280 + | 3282 + | 3284 + | 3286 + | 3288 + | 3290 + | 3292 + | 3294 + | 3296 + | 3298 + | 3300 + | 3302 + | 3304 + | 3306 + | 3308 + | 3310 + | 3312 + | 3314 + | 3316 + | 3318 + | 3320 + | 3322 + | 3324 + | 3326 + | 3328 + | 3330 + | 3332 + | 3334 + | 3336 + | 3338 + | 3340 + | 3342 + | 3344 + | 3346 + | 3348 + | 3350 + | 3352 + | 3354 + | 3356 + | 3358 + | 3360 + | 3362 + | 3364 + | 3366 + | 3907 + | 3909 + | 3911 + | 3913 + | 3915 + | 3917 + | 3919 + | 3921 + | 3923 + | 3925 + | 3927 + | 3929 + | 3931 + | 3933 + | 3935 + | 3937 + | 3939 + | 3941 + | 3943 + | 3945 + | 3947 + | 3949 + | 3951 + | 3953 + | 3955 + | 3957 + | 3959 + | 3961 + | 3963 + | 3965 + | 3967 + | 3969 + | 3971 + | 3973 + | 3975 + | 3977 + | 3979 + | 3981 + | 3983 + | 3985 + | 3987 + | 3989 + | 3991 + | 3993 + | 3995 + | 3997 + | 3999 + | 4001 + | 4003 + | 4005 + | 4007 + | 4009 + | 5335 + | 5337 + | 5339 + | 5341 + | 5343 + | 5345 + | 5347 + | 5349 + | 5351 + | 5353 + | 5355 + | 5357 + | 5359 + | 5361 + | 5363 + | 5365 + | 5367 + | 5369 + | 5371 + | 5373 + | 5375 + | 5377 + | 5379 + | 5381 + | 5383 + | 5385 + | 5387 + | 5389 + | 5391 + | 5393 + | 5395 + | 5397 + | 5399 + | 5401 + | 5403 + | 5405 + | 5407 + | 5409 + | 5411 + | 5413 + | 5415 + | 5417 + | 5419 + | 5421 + | 5423 + | 5425 + | 5427 + | 5429 + | 5431 + | 5433 + | 5435 + | 5437 + | 5439 + | 5441 + | 5443 + | 5445 + | 5447 + | 5449 + | 5451 + | 5453 + | 5455 + | 5457 + | 5459 + | 5461 + | 5463 + | 5465 + | 5467 + | 5469 + | 5471 + | 5473 + | 5475 + | 5477 + | 5479 + | 5481 + | 5483 + | 5485 + | 5487 + | 5489 + | 5491 + | 5493 + | 5495 + | 5497 + | 5499 + | 5501 + | 5503 + | 5505 + | 5507 + | 5509 + | 5511 + | 5513 + | 5515 + | 5517 + | 5519 + | 5521 + | 5523 + | 5525 + | 5527 + | 5529 + | 5531 + | 5533 + | 5535 + | 5537 + | 5539 + | 5541 + | 5543 + | 5545 + | 5547 + | 5549 + | 5551 + | 5553 + | 5555 + | 5557 + | 5559 + | 5561 + | 5563 + | 5565 + | 5567 + | 5569 + | 5571 + | 5573 + | 5575 + | 5577 + | 5579 + | 5581 + | 5583 + | 5585 + | 5587 + | 5589 + | 5591 + | 5593 + | 5595 + | 5597 + | 5599 + | 5601 + | 5603 + | 5605 + | 5607 + | 5609 + | 5611 + | 5613 + | 5615 + | 5617 + | 5619 + | 5621 + | 5623 + | 5625 + | 5627 + | 5629 + | 5631 + | 5633 + | 5635 + | 5637 + | 5639 + | 5641 + | 5643 + | 5645 + | 5647 + | 5649 + | 5651 + | 5653 + | 5719 + | 5721 + | 5723 + | 5725 + | 5727 + | 5729 + | 5731 + | 5733 + | 5735 + | 5737 + | 5739 + | 5741 + | 5743 + | 5745 + | 5747 + | 5749 + | 5751 + | 5753 + | 5755 + | 5757 + | 5759 + | 5761 + | 5763 + | 5765 + | 5767 + | 5769 + | 5771 + | 5773 + | 5775 + | 5777 + | 5779 + | 5781 + | 5783 + | 5785 + | 5787 + | 5789 + | 5791 + | 5793 + | 5795 + | 5797 + | 5799 + | 5801 + | 5803 + | 5805 + | 5807 + | 5809 + | 5811 + | 5813 + | 5815 + | 5817 + | 5819 + | 5821 + | 5823 + | 5825 + | 5827 + | 5829 + | 5831 + | 5833 + | 5835 + | 5837 + | 5839 + | 5841 + | 5843 + | 5845 + | 5847 + | 5849 + | 5851 + | 5853 + | 5855 + | 5857 + | 5859 + | 5861 + | 5863 + | 5865 + | 5867 + | 5869 + | 5871 + | 5873 + | 5875 + | 5877 + | 5879 + | 5881 + | 5883 + | 5885 + | 5887 + | 5889 + | 5891 + | 5893 + | 5895 + | 5897 + | 5899 + | 5901 + | 5903 + | 5905 + | 5907 + | 5909 + | 5911 + | 5913 + | 5915 + | 5917 + | 5919 + | 5921 + | 5923 + | 5925 + | 5927 + | 5929 + | 5931 + | 5933 + | 5935 + | 5937 + | 5939 + | 5941 + | 5943 + | 5945 + | 5947 + | 5949 + | 5951 + | 5953 + | 5955 + | 5957 + | 5959 + | 5961 + | 5963 + | 5965 + | 5967 + | 5969 + | 5971 + | 5973 + | 5975 + | 5977 + | 5979 + | 5981 + | 5983 + | 5985 + | 5987 + | 5989 + | 5991 + | 5993 + | 5995 + | 5997 + | 5999 + | 6001 + | 6003 + | 6005 + | 6007 + | 6009 + | 6011 + | 6013 + | 6015 + | 6017 + | 6019 + | 6021 + | 6023 + | 6025 + | 6027 + | 6029 + | 6031 + | 6033 + | 6035 + | 6037 + | 6039 + | 6041 + | 6043 + | 6045 + | 6047 + | 6049 + | 6051 + | 6053 + | 6055 + | 6057 + | 6059 + | 6061 + | 6063 + | 6065 + | 6067 + | 6069 + | 6071 + | 6073 + | 6075 + | 6077 + | 6079 + | 6081 + | 6083 + | 6085 + | 6087 + | 6089 + | 6091 + | 6093 + | 6095 + | 6097 + | 6099 + | 6101 + | 6103 + | 6105 + | 6107 + | 6109 + | 6111 + | 6113 + | 6115 + | 6117 + | 6119 + | 6121 + | 6123 + | 6125 + | 6127 + | 6129 + | 6131 + | 6133 + | 6135 + | 6137 + | 6139 + | 6141 + | 6143 + | 6145 + | 6147 + | 6149 + | 6151 + | 6153 + | 6155 + | 6157 + | 6159 + | 6161 + | 6163 + | 6165 + | 6167 + | 6169 + | 6171 + | 6173 + | 6175 + | 6177 + | 6179 + | 6181 + | 6183 + | 6185 + | 6187 + | 6189 + | 6191 + | 6193 + | 6195 + | 6197 + | 6199 + | 6201 + | 6203 + | 6205 + | 6207 + | 6209 + | 6211 + | 6213 + | 6215 + | 6217 + | 6219 + | 6221 + | 6223 + | 6225 + | 6227 + | 6229 + | 6231 + | 6233 + | 6235 + | 6237 + | 6239 + | 6241 + | 6243 + | 6245 + | 6247 + | 6249 + | 6251 + | 6253 + | 6255 + | 6257 + | 6259 + | 6261 + | 6263 + | 6265 + | 6267 + | 6269 + | 6271 + | 6273 + | 6275 + | 6277 + | 6279 + | 6281 + | 6283 + | 6285 + | 6287 + | 6289 + | 6291 + | 6293 + | 6295 + | 6297 + | 6299 + | 6301 + | 6303 + | 6305 + | 6307 + | 6309 + | 6311 + | 6313 + | 6315 + | 6317 + | 6319 + | 6321 + | 6323 + | 6325 + | 6327 + | 6329 + | 6331 + | 6333 + | 6335 + | 6337 + | 6339 + | 6341 + | 6343 + | 6345 + | 6347 + | 6349 + | 6351 + | 6353 + | 6355 + | 6357 + | 6359 + | 6361 + | 6363 + | 6365 + | 6367 + | 6369 + | 6371 + | 6373 + | 6375 + | 6377 + | 6379 + | 6381 + | 6383 + | 6385 + | 6387 + | 6389 + | 6391 + | 6393 + | 6395 + | 6397 + | 6399 + | 6401 + | 6403 + | 6405 + | 6407 + | 6409 + | 6411 + | 6413 + | 6415 + | 6417 + | 6419 + | 6421 + | 6423 + | 6425 + | 6427 + | 6429 + | 6431 + | 6433 + | 6435 + | 6437 + | 6439 + | 6441 + | 6443 + | 6445 + | 6447 + | 6449 + | 6451 + | 6453 + | 6455 + | 6457 + | 6459 + | 6461 + | 6463 + | 6465 + | 6467 + | 6469 + | 6471 + | 6473 + | 6475 + | 6477 + | 6479 + | 6481 + | 6483 + | 6485 + | 6487 + | 6489 + | 6491 + | 6493 + | 6495 + | 6497 + | 6499 + | 6501 + | 6503 + | 6505 + | 6507 + | 6509 + | 6511 + | 6513 + | 6515 + | 6517 + | 6519 + | 6521 + | 6523 + | 6525 + | 6527 + | 6529 + | 6531 + | 6533 + | 6535 + | 6537 + | 6539 + | 6541 + | 6543 + | 6545 + | 6547 + | 6549 + | 6551 + | 6553 + | 6555 + | 6557 + | 6559 + | 6561 + | 6563 + | 6565 + | 6567 + | 6569 + | 6571 + | 6573 + | 6575 + | 6577 + | 6579 + | 6581 + | 6583 + | 6585 + | 6587 + | 6589 + | 6591 + | 6593 + | 6595 + | 6597 + | 6599 + | 6601 + | 6603 + | 6605 + | 6607 + | 6609 + | 6611 + | 6613 + | 6615 + | 6617 + | 6619 + | 6621 + | 6623 + | 6625 + | 6627 + | 6629 + | 6631 + | 6633 + | 6635 + | 6637 + | 6639 + | 6641 + | 6643 + | 6645 + | 6647 + | 6649 + | 6651 + | 6653 + | 6655 + | 6657 + | 6659 + | 6661 + | 6663 + | 6665 + | 6667 + | 6669 + | 6671 + | 6673 + | 6675 + | 6677 + | 6679 + | 6681 + | 6683 + | 6685 + | 6687 + | 6689 + | 6691 + | 6693 + | 6695 + | 6697 + | 6699 + | 6701 + | 6703 + | 6705 + | 6707 + | 6709 + | 6711 + | 6713 + | 6715 + | 6717 + | 6719 + | 6721 + | 6723 + | 6725 + | 6727 + | 6729 + | 6731 + | 6733 + | 6735 + | 6737 + | 6739 + | 6741 + | 6743 + | 6745 + | 6747 + | 6749 + | 6751 + | 6753 + | 6755 + | 6757 + | 6759 + | 6761 + | 6763 + | 6765 + | 6767 + | 6769 + | 6965 + | 6966 + | 6969 + | 6970 + | 6973 + | 6974 + | 6977 + | 6978 + | 6981 + | 6982 + | 6985 + | 6986 + | 6989 + | 6990 + | 6993 + | 6994 + | 7114 + | 7116 + | 7118 + | 7120 + | 7122 + | 7124 + | 7126 + | 7128 + | 7130 + | 7132 + | 7134 + | 7136 + | 7138 + | 7140 + | 7142 + | 7144 + | 7146 + | 7148 + | 7150 + | 7152 + | 7154 + | 7156 + | 7158 + | 7160 + | 7162 + | 7164 + | 7166 + | 7168 + | 7170 + | 7172 + | 7174 + | 7176 + | 7178 + | 7180 + | 7182 + | 7184 + | 7186 + | 7188 + | 7190 + | 7192 + | 7194 + | 7196 + | 7198 + | 7200 + | 7202 + | 7204 + | 7206 + | 7208 + | 7210 + | 7212 + | 7214 + | 7216 + | 7218 + | 7220 + | 7222 + | 7224 + | 7226 + | 7228 + | 7230 + | 7232 + | 7234 + | 7236 + | 7238 + | 7240 + | 7242 + | 7244 + | 7246 + | 7248 + | 7250 + | 7252 + | 7254 + | 7256 + | 7258 + | 7260 + | 7262 + | 7264 + | 7266 + | 7268 + | 7270 + | 7272 + | 7274 + | 7276 + | 7278 + | 7280 + | 7282 + | 7284 + | 7286 + | 7288 + | 7290 + | 7292 + | 7294 + | 7296 + | 7298 + | 7300 + | 7302 + | 7304 + | 7306 + | 7308 + | 7310 + | 7312 + | 7314 + | 7316 + | 7318 + | 7320 + | 7322 + | 7324 + | 7326 + | 7328 + | 7330 + | 7332 + | 7334 + | 7336 + | 7338 + | 7340 + | 7342 + | 7344 + | 7346 + | 7348 + | 7350 + | 7352 + | 7354 + | 7356 + | 7358 + | 7360 + | 7362 + | 7364 + | 7366 + | 7368 + | 7370 + | 7372 + | 7374 + | 7376 + | 7378 + | 7380 + | 7382 + | 7384 + | 7386 + | 7388 + | 7390 + | 7392 + | 7394 + | 7396 + | 7398 + | 7400 + | 7402 + | 7404 + | 7406 + | 7408 + | 7410 + | 7412 + | 7414 + | 7416 + | 7418 + | 7420 + | 7422 + | 7424 + | 7426 + | 7428 + | 7430 + | 7432 + | 7434 + | 7436 + | 7438 + | 7440 + | 7442 + | 7444 + | 7446 + | 7448 + | 7450 + | 7452 + | 7454 + | 7456 + | 7458 + | 7460 + | 7462 + | 7464 + | 7466 + | 7468 + | 7470 + | 7472 + | 7474 + | 7476 + | 7478 + | 7480 + | 7482 + | 7484 + | 7486 + | 7488 + | 7490 + | 7492 + | 7494 + | 7496 + | 7498 + | 7500 + | 7502 + | 7504 + | 7506 + | 7508 + | 7510 + | 7512 + | 7514 + | 7516 + | 7518 + | 7520 + | 7522 + | 7524 + | 7526 + | 7528 + | 7530 + | 7532 + | 7534 + | 7536 + | 7538 + | 7540 + | 7542 + | 7544 + | 7546 + | 7548 + | 7550 + | 7552 + | 7554 + | 7556 + | 7558 + | 7560 + | 7562 + | 7564 + | 7566 + | 7568 + | 7570 + | 7572 + | 7574 + | 7576 + | 7578 + | 7580 + | 7582 + | 7584 + | 7586 + | 7588 + | 7590 + | 7592 + | 7594 + | 7596 + | 7598 + | 7600 + | 7602 + | 7604 + | 7606 + | 7608 + | 7610 + | 7612 + | 7614 + | 7616 + | 7618 + | 7620 + | 7622 + | 7624 + | 7626 + | 7628 + | 7630 + | 7632 + | 7634 + | 7636 + | 7638 + | 7640 + | 7642 + | 7644 + | 7646 + | 7648 + | 7650 + | 7652 + | 7654 + | 7656 + | 7658 + | 7660 + | 7662 + | 7664 + | 7666 + | 7668 + | 7670 + | 7672 + | 7674 + | 7676 + | 7678 + | 7680 + | 7682 + | 7684 + | 7686 + | 7688 + | 7690 + | 7692 + | 7694 + | 7696 + | 7698 + | 7700 + | 7702 + | 7704 + | 7706 + | 7708 + | 7710 + | 7712 + | 7714 + | 7716 + | 7718 + | 7720 + | 7722 + | 7724 + | 7726 + | 7728 + | 7730 + | 7732 + | 7734 + | 7736 + | 7738 + | 7740 + | 7742 + | 7744 + | 7746 + | 7748 + | 7750 + | 7752 + | 7958 + | 7959 + | 7962 + | 7963 + | 7966 + | 7967 + | 7970 + | 7971 + | 7974 + | 7975 + | 7978 + | 7979 + | 7982 + | 7983 + | 7986 + | 7987 + | 7990 + | 7991 + | 7994 + | 7995 + | 7998 + | 7999 + | 8002 + | 8003 + | 8006 + | 8007 + | 8010 + | 8011 + | 8014 + | 8015 + | 8018 + | 8019 + | 8022 + | 8023 + | 8026 + | 8027 + | 8030 + | 8031 + | 8034 + | 8035 + | 8038 + | 8039 + | 8042 + | 8043 + | 8046 + | 8047 + | 8050 + | 8051 + | 8054 + | 8055 + | 8058 + | 8059 + | 8062 + | 8063 + | 8066 + | 8067 + | 8070 + | 8071 + | 8074 + | 8075 + | 8078 + | 8079 + | 8082 + | 8083 + | 8086 + | 8087 + | 8090 + | 8091 + | 8094 + | 8095 + | 8098 + | 8099 + | 8102 + | 8103 + | 8106 + | 8107 + | 8110 + | 8111 + | 8114 + | 8115 + | 8118 + | 8119 + | 8122 + | 8123 + | 8126 + | 8127 + | 8130 + | 8131 + | 8134 + | 8135 + | 8138 + | 8139 + | 8142 + | 8143 + | 8146 + | 8147 + | 8150 + | 8151 + | 8154 + | 8155 + | 8158 + | 8159 + | 8162 + | 8163 + | 8166 + | 8167 + | 8170 + | 8171 + | 8174 + | 8175 + | 8178 + | 8179 + | 8182 + | 8183 + | 8186 + | 8187 + | 8190 + | 8191 + | 8194 + | 8195 + | 8198 + | 8199 + | 8202 + | 8203 + | 8206 + | 8207 + | 8210 + | 8211 + | 8214 + | 8215 + | 8218 + | 8219 + | 8222 + | 8223 + | 8226 + | 8227 + | 8230 + | 8231 + | 8234 + | 8235 + | 8238 + | 8239 + | 8242 + | 8243 + | 8246 + | 8248 + | 8250 + | 8252 + | 8254 + | 8256 + | 8258 + | 8260 + | 8262 + | 8264 + | 8266 + | 8268 + | 8270 + | 8272 + | 8274 + | 8276 + | 8278 + | 8280 + | 8282 + | 8284 + | 8286 + | 8288 + | 8290 + | 8292 + | 8294 + | 8296 + | 8298 + | 8300 + | 8301 + | 8304 + | 8305 + | 8308 + | 8309 + | 8312 + | 8313 + | 8316 + | 8317 + | 8320 + | 8321 + | 8324 + | 8325 + | 8328 + | 8329 + | 8390 + | 8391 + | 8394 + | 8395 + | 8398 + | 8399 + | 8402 + | 8403 + | 8406 + | 8407 + | 8410 + | 8411 + | 8414 + | 8415 + | 8418 + | 8419 + | 8422 + | 8423 + | 8426 + | 8427 + | 8430 + | 8431 + | 8434 + | 8435 + | 8438 + | 8439 + | 8442 + | 8443 + | 8446 + | 8447 + | 8450 + | 8451 + | 8454 + | 8455 + | 8458 + | 8459 + | 8462 + | 8463 + | 8466 + | 8467 + | 8470 + | 8471 + | 8474 + | 8475 + | 8478 + | 8479 + | 8482 + | 8483 + | 8486 + | 8487 + | 8490 + | 8491 + | 8494 + | 8495 + | 8498 + | 8499 + | 8502 + | 8503 + | 8506 + | 8507 + | 8510 + | 8511 + | 8514 + | 8515 + | 8518 + | 8519 + | 8522 + | 8523 + | 8526 + | 8527 + | 8530 + | 8531 + | 8534 + | 8535 + | 8538 + | 8539 + | 8542 + | 8543 + | 8546 + | 8547 + | 8550 + | 8551 + | 8554 + | 8555 + | 8558 + | 8559 + | 8562 + | 8563 + | 8566 + | 8567 + | 8570 + | 8571 + | 8574 + | 8575 + | 8578 + | 8579 + | 8582 + | 8583 + | 8586 + | 8587 + | 8590 + | 8591 + | 8594 + | 8595 + | 8598 + | 8599 + | 8602 + | 8603 + | 8606 + | 8607 + | 8610 + | 8611 + | 8614 + | 8615 + | 8618 + | 8619 + | 8622 + | 8623 + | 8626 + | 8627 + | 8630 + | 8631 + | 8634 + | 8635 + | 8638 + | 8639 + | 8642 + | 8643 + | 8678 + | 8680 + | 8682 + | 8684 + | 8686 + | 8688 + | 8690 + | 8692 + | 8694 + | 8696 + | 8698 + | 8700 + | 8702 + | 8704 + | 8706 + | 8708 + | 8710 + | 8712 + | 8714 + | 8716 + | 8718 + | 8720 + | 8722 + | 8724 + | 8726 + | 8728 + | 8730 + | 8732 + | 8734 + | 8736 + | 8738 + | 8740 + | 8742 + | 8744 + | 8746 + | 8748 + | 8750 + | 8752 + | 8754 + | 8756 + | 8758 + | 8760 + | 8762 + | 8764 + | 8766 + | 8768 + | 8770 + | 8772 + | 8774 + | 8776 + | 8778 + | 8780 + | 8782 + | 8784 + | 8786 + | 8788 + | 8790 + | 8792 + | 8794 + | 8796 + | 8798 + | 8800 + | 8802 + | 8804 + | 8806 + | 8808 + | 8810 + | 8812 + | 8814 + | 8816 + | 8818 + | 8820 + | 8822 + | 8824 + | 8826 + | 8828 + | 8830 + | 8832 + | 8834 + | 8836 + | 8838 + | 8840 + | 8842 + | 8844 + | 8846 + | 8848 + | 8850 + | 8852 + | 8854 + | 8856 + | 8858 + | 8860 + | 8862 + | 8864 + | 8866 + | 8868 + | 8870 + | 8872 + | 8874 + | 8876 + | 8878 + | 8880 + | 8882 + | 8884 + | 8886 + | 8888 + | 8890 + | 8892 + | 8894 + | 8896 + | 8898 + | 8900 + | 8902 + | 8904 + | 8906 + | 8908 + | 8910 + | 8912 + | 8914 + | 8916 + | 8923 + | 8925 + | 8927 + | 8929 + | 8931 + | 8933 + | 8935 + | 8937 + | 8939 + | 8941 + | 8943 + | 8945 + | 8947 + | 8949 + | 8951 + | 8953 + | 8955 + | 8957 + | 8959 + | 8961 + | 8963 + | 8965 + | 8967 + | 8969 + | 8971 + | 8973 + | 8975 + | 8977 + | 8979 + | 8981 + | 8983 + | 8985 + | 8987 + | 8989 + | 8991 + | 8993 + | 8995 + | 8997 + | 8999 + | 9001 + | 9003 + | 9005 + | 9007 + | 9009 + | 9010 + | 9011 + | 9015 + | 9016 + | 9017 + | 9021 + | 9022 + | 9023 + | 9027 + | 9028 + | 9029 + | 9033 + | 9034 + | 9035 + | 9039 + | 9040 + | 9041 + | 9045 + | 9046 + | 9047 + | 9051 + | 9052 + | 9053 + | 9057 + | 9058 + | 9059 + | 9063 + | 9064 + | 9065 + | 9069 + | 9070 + | 9071 + | 9075 + | 9076 + | 9077 + | 9081 + | 9082 + | 9083 + | 9087 + | 9088 + | 9089 + | 9093 + | 9094 + | 9095 + | 9099 + | 9100 + | 9101 + | 9105 + | 9106 + | 9107 + | 9111 + | 9112 + | 9113 + | 9117 + | 9118 + | 9119 + | 9123 + | 9124 + | 9125 + | 9129 + | 9130 + | 9131 + | 9135 + | 9136 + | 9137 + | 9141 + | 9142 + | 9143 + | 9147 + | 9148 + | 9149 + | 9153 + | 9154 + | 9155 + | 9159 + | 9160 + | 9161 + | 9165 + | 9166 + | 9167 + | 9171 + | 9172 + | 9173 + | 9177 + | 9178 + | 9179 + | 9183 + | 9184 + | 9185 + | 9189 + | 9190 + | 9191 + | 9195 + | 9196 + | 9197 + | 9201 + | 9202 + | 9203 + | 9207 + | 9208 + | 9209 + | 9213 + | 9214 + | 9215 + | 9219 + | 9220 + | 9221 + | 9225 + | 9226 + | 9227 + | 9231 + | 9232 + | 9233 + | 9237 + | 9238 + | 9239 + | 9243 + | 9244 + | 9245 + | 9249 + | 9250 + | 9251 + | 9255 + | 9256 + | 9257 + | 9261 + | 9262 + | 9263 + | 9267 + | 9268 + | 9269 + | 9273 + | 9274 + | 9275 + | 9279 + | 9280 + | 9281 + | 9285 + | 9286 + | 9287 + | 9291 + | 9292 + | 9293 + | 9297 + | 9298 + | 9299 + | 9303 + | 9304 + | 9305 + | 9309 + | 9310 + | 9311 + | 9315 + | 9316 + | 9317 + | 9321 + | 9322 + | 9323 + | 9327 + | 9328 + | 9329 + | 9335 + | 9336 + | 9339 + | 9340 + | 9343 + | 9344 + | 9347 + | 9348 + | 9351 + | 9352 + | 9355 + | 9356 + | 9359 + | 9360 + | 9363 + | 9364 + | 9367 + | 9369 + | 9371 + | 9373 + | 9375 + | 9377 + | 9379 + | 9381 + | 9383 + | 9385 + | 9387 + | 9389 + | 9391 + | 9393 + | 9395 + | 9397 + | 9399 + | 9401 + | 9403 + | 9405 + | 9407 + | 9409 + | 9411 + | 9413 + | 9415 + | 9417 + | 9419 + | 9421 + | 9423 + | 9425 + | 9427 + | 9429 + | 9431 + | 9433 + | 9435 + | 9437 + | 9439 + | 9441 + | 9443 + | 9445 + | 9493 + | 9495 + | 9497 + | 9499 + | 9501 + | 9503 + | 9505 + | 9507 + | 9509 + | 9511 + | 9513 + | 9515 + | 9517 + | 9519 + | 9521 + | 9523 + | 9525 + | 9527 + | 9529 + | 9531 + | 9533 + | 9535 + | 9537 + | 9539 + | 9541 + | 9543 + | 9545 + | 9547 + | 9549 + | 9551 + | 9553 + | 9555 + | 9557 + | 9559 + | 9561 + | 9563 + | 9565 + | 9567 + | 9569 + | 9571 + | 9575 + | 9577 + | 9579 + | 9581 + | 9728 + | 9730 + | 9732 + | 9734 + | 9736 + | 9738 + | 9740 + | 9742 + | 9744 + | 9746 + | 9748 + | 9750 + | 9752 + | 9754 + | 9756 + | 9758 + | 9760 + | 9762 + | 9764 + | 9766 + | 9768 + | 9770 + | 9772 + | 9774 + | 9776 + | 9778 + | 9780 + | 9782 + | 9784 + | 9786 + | 9788 + | 9790 + | 9792 + | 9794 + | 9796 + | 9798 + | 9800 + | 9802 + | 9804 + | 9806 + | 9808 + | 9810 + | 9812 + | 9814 + | 9816 + | 9818 + | 9820 + | 9822 + | 9824 + | 9826 + | 9828 + | 9830 + | 9832 + | 9834 + | 9836 + | 9838 + | 9840 + | 9842 + | 9844 + | 9846 + | 9848 + | 9850 + | 9852 + | 9854 + | 9856 + | 9858 + | 9860 + | 9862 + | 9864 + | 9866 + | 9868 + | 9870 + | 9872 + | 9874 + | 9876 + | 9878 + | 9880 + | 9882 + | 9884 + | 9886 + | 9888 + | 9890 + | 9892 + | 9894 + | 9896 + | 9898 + | 9900 + | 9902 + | 9904 + | 9906 + | 9908 + | 9910 + | 9912 + | 9914 + | 9916 + | 9918 + | 9920 + | 9922 + | 9924 + | 9926 + | 9928 + | 9930 + | 9932 + | 9934 + | 9936 + | 9938 + | 9940 + | 9942 + | 9944 + | 9946 + | 9948 + | 9950 + | 9952 + | 9954 + | 9956 + | 9958 + | 9960 + | 9962 + | 9964 + | 9966 + | 9981 + | 9982 + | 9983 + | 9987 + | 9988 + | 9989 + | 9993 + | 9994 + | 9995 + | 9999 + | 10000 + | 10001 + | 10005 + | 10006 + | 10007 + | 10011 + | 10012 + | 10013 + | 10017 + | 10018 + | 10019 + | 10023 + | 10024 + | 10025 + | 10029 + | 10030 + | 10031 + | 10035 + | 10036 + | 10037 + | 10041 + | 10042 + | 10043 + | 10047 + | 10048 + | 10049 + | 10053 + | 10054 + | 10055 + | 10059 + | 10060 + | 10061 + | 10065 + | 10066 + | 10067 + | 10071 + | 10072 + | 10073 + | 10077 + | 10078 + | 10079 + | 10083 + | 10084 + | 10085 + | 10089 + | 10090 + | 10091 + | 10095 + | 10096 + | 10097 + | 10101 + | 10102 + | 10103 + | 10107 + | 10108 + | 10109 + | 10113 + | 10114 + | 10115 + | 10119 + | 10120 + | 10121 + | 10125 + | 10126 + | 10127 + | 10131 + | 10132 + | 10133 + | 10137 + | 10138 + | 10139 + | 10143 + | 10144 + | 10145 + | 10149 + | 10150 + | 10151 + | 10155 + | 10156 + | 10157 + | 10161 + | 10162 + | 10163 + | 10167 + | 10168 + | 10169 + | 10173 + | 10174 + | 10175 + | 10179 + | 10180 + | 10181 + | 10185 + | 10186 + | 10187 + | 10191 + | 10192 + | 10193 + | 10197 + | 10198 + | 10199 + | 10203 + | 10204 + | 10205 + | 10209 + | 10210 + | 10211 + | 10215 + | 10216 + | 10217 + | 10221 + | 10222 + | 10223 + | 10227 + | 10228 + | 10229 + | 10233 + | 10234 + | 10235 + | 10239 + | 10240 + | 10241 + | 10245 + | 10246 + | 10247 + | 10251 + | 10252 + | 10253 + | 10257 + | 10258 + | 10259 + | 10263 + | 10264 + | 10265 + | 10269 + | 10270 + | 10271 + | 10275 + | 10276 + | 10277 + | 10281 + | 10282 + | 10283 + | 10287 + | 10288 + | 10289 + | 10293 + | 10294 + | 10295 + | 10299 + | 10300 + | 10301 + | 10305 + | 10306 + | 10307 + | 10311 + | 10312 + | 10313 + | 10317 + | 10318 + | 10319 + | 10323 + | 10324 + | 10325 + | 10329 + | 10330 + | 10331 + | 10335 + | 10336 + | 10337 + | 10341 + | 10342 + | 10343 + | 10347 + | 10348 + | 10349 + | 10353 + | 10354 + | 10355 + | 10359 + | 10360 + | 10361 + | 10365 + | 10366 + | 10367 + | 10371 + | 10372 + | 10373 + | 10377 + | 10378 + | 10379 + | 10383 + | 10384 + | 10385 + | 10389 + | 10390 + | 10391 + | 10395 + | 10396 + | 10397 + | 10401 + | 10402 + | 10403 + | 10407 + | 10408 + | 10409 + | 10413 + | 10414 + | 10415 + | 10419 + | 10420 + | 10421 + | 10425 + | 10426 + | 10427 + | 10431 + | 10432 + | 10433 + | 10437 + | 10438 + | 10439 + | 10443 + | 10444 + | 10445 + | 10449 + | 10450 + | 10451 + | 10455 + | 10456 + | 10457 + | 10461 + | 10462 + | 10463 + | 10467 + | 10468 + | 10469 + | 10473 + | 10474 + | 10475 + | 10479 + | 10480 + | 10481 + | 10485 + | 10486 + | 10487 + | 10491 + | 10492 + | 10493 + | 10497 + | 10498 + | 10499 + | 10503 + | 10504 + | 10505 + | 10509 + | 10510 + | 10511 + | 10515 + | 10516 + | 10517 + | 10521 + | 10522 + | 10523 + | 10527 + | 10528 + | 10529 + | 10533 + | 10534 + | 10535 + | 10539 + | 10540 + | 10541 + | 10545 + | 10546 + | 10547 + | 10551 + | 10552 + | 10553 + | 10557 + | 10558 + | 10559 + | 10563 + | 10564 + | 10565 + | 10569 + | 10570 + | 10571 + | 10575 + | 10576 + | 10577 + | 10581 + | 10582 + | 10583 + | 10587 + | 10588 + | 10589 + | 10593 + | 10594 + | 10595 + | 10599 + | 10600 + | 10601 + | 10605 + | 10606 + | 10607 + | 10611 + | 10612 + | 10613 + | 10617 + | 10618 + | 10619 + | 10623 + | 10624 + | 10625 + | 11207 + | 11209 + | 11211 + | 11213 + | 11215 + | 11217 + | 11219 + | 11221 + | 11223 + | 11225 + | 11227 + | 11229 + | 11328 + | 11330 + | 11332 + | 11334 + | 11336 + | 11338 + | 11340 + | 11342 + | 11344 + | 11346 + | 11348 + | 11350 + | 11352 + | 11354 + | 11356 + | 11358 + | 11360 + | 11362 + | 11364 + | 11366 + | 11368 + | 11370 + | 11372 + | 11374 + | 11376 + | 11378 + | 11380 + | 11382 + | 11384 + | 11386 + | 11388 + | 11390 + | 11392 + | 11394 + | 11396 + | 11398 + | 11400 + | 11402 + | 11404 + | 11406 + | 11408 + | 11410 + | 11412 + | 11414 + | 11416 + | 11418 + | 11420 + | 11422 + | 11424 + | 11426 + | 11428 + | 11430 + | 11460 + | 11461 + | 11464 + | 11465 + | 11468 + | 11469 + | 11472 + | 11473 + | 11476 + | 11477 + | 11480 + | 11481 + | 11484 + | 11485 + | 11488 + | 11489 + | 11492 + | 11493 + | 11496 + | 11497 + | 11500 + | 11501 + | 11504 + | 11505 + | 11508 + | 11509 + | 11512 + | 11513 + | 11516 + | 11517 + | 11520 + | 11521 + | 11524 + | 11525 + | 11528 + | 11529 + | 11532 + | 11533 + | 11536 + | 11537 + | 11540 + | 11541 + | 11544 + | 11545 + | 11548 + | 11549 + | 11552 + | 11553 + | 11556 + | 11557 + | 11560 + | 11561 + | 11564 + | 11565 + | 11568 + | 11569 + | 11572 + | 11573 + | 11576 + | 11577 + | 11580 + | 11581 + | 11584 + | 11585 + | 11588 + | 11589 + | 11592 + | 11593 + | 11596 + | 11597 + | 11600 + | 11601 + | 11604 + | 11605 + | 11608 + | 11609 + | 11612 + | 11613 + | 11616 + | 11617 + | 11620 + | 11621 + | 11624 + | 11625 + | 11628 + | 11629 + | 11632 + | 11633 + | 11636 + | 11637 + | 11640 + | 11641 + | 11644 + | 11645 + | 11648 + | 11649 + | 11652 + | 11653 + | 11656 + | 11657 + | 11660 + | 11661 + | 11664 + | 11665 + | 11668 + | 11669 + | 11672 + | 11673 + | 11676 + | 11677 + | 11680 + | 11681 + | 11684 + | 11685 + | 11688 + | 11689 + | 11692 + | 11693 + | 11696 + | 11697 + | 11700 + | 11701 + | 11704 + | 11705 + | 11708 + | 11709 + | 11712 + | 11713 + | 11716 + | 11717 + | 11720 + | 11721 + | 11724 + | 11725 + | 11728 + | 11729 + | 11732 + | 11733 + | 11736 + | 11737 + | 11740 + | 11741 + | 11744 + | 11745 + | 11748 + | 11749 + | 11752 + | 11753 + | 11756 + | 11757 + | 11760 + | 11761 + | 11764 + | 11765 + | 11768 + | 11769 + | 11772 + | 11773 + | 11776 + | 11777 + | 11780 + | 11781 + | 11784 + | 11785 + | 11788 + | 11789 + | 11792 + | 11793 + | 11796 + | 11797 + | 11800 + | 11801 + | 11804 + | 11805 + | 11808 + | 11809 + | 11812 + | 11813 + | 11816 + | 11817 + | 11820 + | 11821 + | 11824 + | 11825 + | 11828 + | 11829 + | 11832 + | 11833 + | 11836 + | 11837 + | 11840 + | 11841 + | 11844 + | 11845 + | 11848 + | 11849 + | 11852 + | 11853 + | 11856 + | 11857 + | 11860 + | 11861 + | 11864 + | 11865 + | 11868 + | 11869 + | 11872 + | 11873 + | 11876 + | 11877 + | 11880 + | 11881 + | 11884 + | 11885 + | 11888 + | 11889 + | 11892 + | 11893 + | 11896 + | 11897 + | 11900 + | 11901 + | 11904 + | 11905 + | 11908 + | 11909 + | 11912 + | 11913 + | 11916 + | 11917 + | 11920 + | 11921 + | 11924 + | 11925 + | 11928 + | 11929 + | 11932 + | 11933 + | 11936 + | 11937 + | 11940 + | 11941 + | 11944 + | 11945 + | 11948 + | 11949 + | 11952 + | 11953 + | 11956 + | 11957 + | 11960 + | 11961 + | 11964 + | 11965 + | 11968 + | 11969 + | 11972 + | 11974 + | 11976 + | 11978 + | 11980 + | 11982 + | 11984 + | 11986 + | 11988 + | 11990 + | 11992 + | 11994 + | 11996 + | 11998 + | 12000 + | 12002 + | 12004 + | 12006 + | 12008 + | 12010 + | 12012 + | 12014 + | 12016 + | 12018 + | 12020 + | 12022 + | 12024 + | 12026 + | 12028 + | 12030 + | 12032 + | 12034 + | 12036 + | 12038 + | 12040 + | 12042 + | 12044 + | 12046 + | 12048 + | 12050 + | 12052 + | 12054 + | 12056 + | 12058 + | 12060 + | 12062 + | 12064 + | 12066 + | 12068 + | 12070 + | 12072 + | 12074 + | 12076 + | 12078 + | 12080 + | 12082 + | 12084 + | 12086 + | 12088 + | 12090 + | 12092 + | 12094 + | 12096 + | 12098 + | 12100 + | 12102 + | 12104 + | 12106 + | 12108 + | 12110 + | 12112 + | 12114 + | 12116 + | 12118 + | 12120 + | 12122 + | 12124 + | 12126 + | 12128 + | 12130 + | 12132 + | 12134 + | 12136 + | 12138 + | 12140 + | 12142 + | 12144 + | 12146 + | 12148 + | 12150 + | 12152 + | 12154 + | 12156 + | 12158 + | 12160 + | 12162 + | 12164 + | 12166 + | 12168 + | 12170 + | 12172 + | 12174 + | 12176 + | 12178 + | 12180 + | 12182 + | 12184 + | 12186 + | 12188 + | 12190 + | 12192 + | 12194 + | 12196 + | 12198 + | 12200 + | 12202 + | 12204 + | 12206 + | 12208 + | 12210 + | 12212 + | 12214 + | 12216 + | 12218 + | 12220 + | 12222 + | 12224 + | 12226 + | 12228 + | 12230 + | 12232 + | 12234 + | 12236 + | 12238 + | 12240 + | 12242 + | 12244 + | 12246 + | 12248 + | 12250 + | 12252 + | 12254 + | 12256 + | 12258 + | 12260 + | 12262 + | 12264 + | 12266 + | 12268 + | 12270 + | 12272 + | 12274 + | 12276 + | 12278 + | 12280 + | 12282 + | 12284 + | 12286 + | 12288 + | 12290 + | 12292 + | 12294 + | 12296 + | 12298 + | 12300 + | 12302 + | 12304 + | 12306 + | 12308 + | 12310 + | 12312 + | 12314 + | 12316 + | 12318 + | 12320 + | 12322 + | 12324 + | 12326 + | 12328 + | 12330 + | 12332 + | 12334 + | 12336 + | 12338 + | 12340 + | 12342 + | 12344 + | 12346 + | 12348 + | 12350 + | 12352 + | 12354 + | 12356 + | 12358 + | 12360 + | 12362 + | 12364 + | 12366 + | 12368 + | 12370 + | 12372 + | 12374 + | 12376 + | 12378 + | 12380 + | 12382 + | 12384 + | 12386 + | 12388 + | 12390 + | 12392 + | 12394 + | 12396 + | 12398 + | 12400 + | 12402 + | 12404 + | 12406 + | 12408 + | 12410 + | 12412 + | 12414 + | 12416 + | 12418 + | 12420 + | 12422 + | 12424 + | 12426 + | 12428 + | 12430 + | 12432 + | 12434 + | 12436 + | 12438 + | 12440 + | 12442 + | 12444 + | 12446 + | 12448 + | 12450 + | 12452 + | 12454 + | 12456 + | 12458 + | 12460 + | 12462 + | 12464 + | 12466 + | 12468 + | 12470 + | 12472 + | 12474 + | 12476 + | 12478 + | 12480 + | 12482 + | 12484 + | 12486 + | 12488 + | 12490 + | 12492 + | 12494 + | 12496 + | 12498 + | 12500 + | 12502 + | 12504 + | 12506 + | 12508 + | 12510 + | 12512 + | 12514 + | 12516 + | 12518 + | 12520 + | 12522 + | 12524 + | 12526 + | 12528 + | 12530 + | 12533 + | 12535 + | 12537 + | 12539 + | 12541 + | 12543 + | 12545 + | 12547 + | 12549 + | 12551 + | 12553 + | 12555 + | 12557 + | 12559 + | 12561 + | 12563 + | 12565 + | 12567 + | 12569 + | 12571 + | 12573 + | 12575 + | 12577 + | 12579 + | 12581 + | 12583 + | 12585 + | 12587 + | 12589 + | 12591 + | 12593 + | 12595 + | 12597 + | 12599 + | 12601 + | 12603 + | 12605 + | 12607 + | 12609 + | 12611 + | 12613 + | 12615 + | 12617 + | 12619 + | 12621 + | 12623 + | 12625 + | 12627 + | 12629 + | 12634 + | 12636 + | 12638 + | 12640 + | 12642 + | 12644 + | 12646 + | 12648 + | 12650 + | 12652 + | 12654 + | 12656 + | 12658 + | 12660 + | 12662 + | 12664 + | 12666 + | 12668 + | 12670 + | 12672 + | 12674 + | 12676 + | 12678 + | 12680 + | 12682 + | 12684 + | 12686 + | 12688 + | 12690 + | 12692 + | 12694 + | 12696 + | 12698 + | 12700 + | 12702 + | 12704 + | 12706 + | 12708 + | 12710 + | 12712 + | 12714 + | 12716 + | 12718 + | 12720 + | 12722 + | 12724 + | 12726 + | 12728 + | 12730 + | 12732 + | 12734 + | 12736 + | 12738 + | 12740 + | 12742 + | 12744 + | 12746 + | 12748 + | 12750 + | 12752 + | 12754 + | 12756 + | 12758 + | 12760 + | 12762 + | 12764 + | 12766 + | 12768 + | 12770 + | 12772 + | 12774 + | 12776 + | 12778 + | 12780 + | 12782 + | 12784 + | 12786 + | 12788 + | 12790 + | 12792 + | 12794 + | 12796 + | 12798 + | 12800 + | 12802 + | 12804 + | 12806 + | 12808 + | 12810 + | 12812 + | 12814 + | 12816 + | 12818 + | 12820 + | 12822 + | 12824 + | 12826 + | 12828 + | 12830 + | 12832 + | 12834 + | 12836 + | 12838 + | 12840 + | 12842 + | 12844 + | 12846 + | 12848 + | 12850 + | 12852 + | 12854 + | 12856 + | 12858 + | 12860 + | 12862 + | 12864 + | 12866 + | 12868 + | 12870 + | 12872 + | 12874 + | 12876 + | 12878 + | 12880 + | 12882 + | 12884 + | 12886 + | 12888 + | 12890 + | 13250 + | 13252 + | 13254 + | 13256 + | 13258 + | 13260 + | 13262 + | 13264 + | 13266 + | 13268 + | 13270 + | 13272 + | 13274 + | 13276 + | 13278 + | 13280 + | 13282 + | 13284 + | 13286 + | 13288 + | 13290 + | 13292 + | 13294 + | 13296 + | 13298 + | 13300 + | 13302 + | 13304 + | 13306 + | 13308 + | 13310 + | 13312 + | 13314 + | 13316 + | 13318 + | 13320 + | 13322 + | 13324 + | 13326 + | 13328 + | 13330 + | 13332 + | 13334 + | 13336 + | 13338 + | 13340 + | 13342 + | 13344 + | 13346 + | 13348 + | 13350 + | 13352 + | 13354 + | 13356 + | 13358 + | 13360 + | 13362 + | 13364 + | 13366 + | 13368 + | 13370 + | 13372 + | 13374 + | 13376 + | 13378 + | 13380 + | 13382 + | 13384 + | 13386 + | 13388 + | 13390 + | 13392 + | 13394 + | 13396 + | 13398 + | 13400 + | 13402 + | 13404 + | 13406 + | 13408 + | 13410 + | 13412 + | 13414 + | 13416 + | 13418 + | 13420 + | 13422 + | 13424 + | 13426 + | 13428 + | 13430 + | 13432 + | 13434 + | 13436 + | 13438 + | 13440 + | 13442 + | 13444 + | 13446 + | 13448 + | 13450 + | 13452 + | 13454 + | 13456 + | 13458 + | 13460 + | 13462 + | 13464 + | 13466 + | 13468 + | 13470 + | 13472 + | 13474 + | 13476 + | 13478 + | 13772 + | 13773 + | 13776 + | 13777 + | 13780 + | 13781 + | 13784 + | 13785 + | 13788 + | 13789 + | 13792 + | 13793 + | 13796 + | 13797 + | 13800 + | 13801 + | 13804 + | 13805 + | 13808 + | 13809 + | 13812 + | 13813 + | 13816 + | 13817 + | 13820 + | 13821 + | 13824 + | 13825 + | 13828 + | 13829 + | 13832 + | 13833 + | 13836 + | 13837 + | 13840 + | 13841 + | 13844 + | 13845 + | 13848 + | 13849 + | 13852 + | 13853 + | 13856 + | 13857 + | 13860 + | 13861 + | 13864 + | 13865 + | 13868 + | 13869 + | 13872 + | 13873 + | 13876 + | 13877 + | 13880 + | 13881 + | 13884 + | 13885 + | 13888 + | 13889 + | 13892 + | 13893 + | 13896 + | 13897 + | 13900 + | 13901 + | 13904 + | 13905 + | 13908 + | 13909 + | 13912 + | 13913 + | 13916 + | 13917 + | 13920 + | 13921 + | 13924 + | 13925 + | 13928 + | 13929 + | 13932 + | 13933 + | 13936 + | 13937 + | 13940 + | 13941 + | 13944 + | 13945 + | 13948 + | 13949 + | 13952 + | 13953 + | 13956 + | 13957 + | 13960 + | 13961 + | 13964 + | 13965 + | 13968 + | 13969 + | 13972 + | 13973 + | 13976 + | 13977 + | 13980 + | 13981 + | 13984 + | 13985 + | 13988 + | 13989 + | 13992 + | 13993 + | 13996 + | 13997 + | 14000 + | 14001 + | 14004 + | 14005 + | 14008 + | 14009 + | 14012 + | 14013 + | 14016 + | 14017 + | 14020 + | 14021 + | 14024 + | 14025 + | 14028 + | 14029 + | 14032 + | 14033 + | 14036 + | 14037 + | 14040 + | 14041 + | 14044 + | 14045 + | 14048 + | 14049 + | 14052 + | 14053 + | 14056 + | 14057 + | 14716 + | 14718 + | 14720 + | 14722 + | 14724 + | 14726 + | 14728 + | 14730 + | 14732 + | 14734 + | 14736 + | 14738 + | 14740 + | 14742 + | 14744 + | 14746 + | 14748 + | 14750 + | 14752 + | 14754 + | 14756 + | 14758 + | 14760 + | 14762 + | 14764 + | 14766 + | 14768 + | 14770 + | 14772 + | 14774 + | 14776 + | 14778 + | 14780 + | 14782 + | 14784 + | 14786 + | 14788 + | 14790 + | 14792 + | 14794 + | 15062 + | 15063 + | 15064 + | 15065 + | 15066 + | 15067 + | 15068 + | 15069 + | 15070 + | 15071 + | 15072 + | 15073 + | 15074 + | 15075 + | 15076 + | 15077 + | 15078 + | 15079 + | 15080 + | 15081 + | 15082 + | 15083 + | 15084 + | 15085 + | 15086 + | 15087 + | 15088 + | 15105 + | 15107 + | 15109 + | 15111 + | 15113 + | 15115 + | 15117 + | 15119 + | 15121 + | 15123 + | 15125 + | 15127 + | 15129 + | 15131 + | 15133 + | 15135 + | 15147 + | 15149 + | 15151 + | 15153 + | 15155 + | 15157 + | 15159 + | 15161 + | 15163 + | 15165 + | 15167 + | 15169 + | 15171 + | 15173 + | 15175 + | 15177 + | 15179 + | 15181 + | 15183 + | 15185 + | 15187 + | 15189 + | 15191 + | 15193 + | 15195 + | 15197 + | 15199 + | 15201 + | 15203 + | 15205 + | 15207 + | 15209 + | 15211 + | 15213 + | 15215 + | 15217 + | 15219 + | 15221 + | 15223 + | 15225 + | 15227 + | 15229 + | 15231 + | 15233 + | 15235 + | 15237 + | 15239 + | 15241 + | 15243 + | 15245 + | 15247 + | 15249 + | 15251 + | 15253 + | 15255 + | 15257 + | 15259 + | 15261 + | 15263 + | 15265 + | 15267 + | 15269 + | 15271 + | 15273 + | 15276 + | 15294 + | 15295 + | 15296 + | 15298 + | 15300 + | 15302 + | 15304 + | 15306 + | 15308 + | 15310 + | 15312 + | 15314 + | 15316 + | 15318 + | 15320 + | 15322 + | 15324 + | 15326 + | 15328 + | 15330 + | 15332 + | 15334 + | 15336 + | 15338 + | 15340 + | 15342 + | 15344 + | 15346 + | 15348 + | 15350 + | 15352 + | 15354 + | 15356 + | 15358 + | 15360 + | 15362 + | 15364 + | 15366 + | 15368 + | 15370 + | 15372 + | 15374 + | 15376 + | 15378 + | 15380 + | 15382 + | 15384 + | 15386 + | 15388 + | 15390 + | 15392 + | 15394 + | 15396 + | 15398 + | 15400 + | 15402 + | 15404 + | 15406 + | 15408 + | 15410 + | 15412 + | 15414 + | 15416 + | 15418 + | 15420 + | 15422 + | 15424 + | 15426 + | 15428 + | 15430 + | 15432 + | 15434 + | 15436 + | 15438 + | 15440 + | 15442 + | 15444 + | 15446 + | 15448 + | 15450 + | 15452 + | 15454 + | 15456 + | 15458 + | 15460 + | 15462 + | 15464 + | 15466 + | 15468 + | 15470 + | 15472 + | 15474 + | 15476 + | 15478 + | 15480 + | 15482 + | 15484 + | 15486 + | 15488 + | 15490 + | 15492 + | 15494 + | 15496 + | 15498 + | 15500 + | 15502 + | 15504 + | 15506 + | 15508 + | 15510 + | 15512 + | 15514 + | 15516 + | 15518 + | 15520 + | 15522 + | 15524 + | 15526 + | 15528 + | 15530 + | 15532 + | 15534 + | 15536 + | 15538 + | 15540 + | 15542 + | 15544 + | 15546 + | 15548 + | 15550 + | 15552 + | 15554 + | 15556 + | 15558 + | 15560 + | 15562 + | 15564 + | 15566 + | 15568 + | 15570 + | 15572 + | 15574 + | 15576 + | 15578 + | 15580 + | 15582 + | 15584 + | 15586 + | 15588 + | 15590 + | 15592 + | 15594 + | 15596 + | 15598 + | 15600 + | 15602 + | 15604 + | 15606 + | 15608 + | 15610 + | 15612 + | 15614 + | 15616 + | 15618 + | 15620 + | 15622 + | 15624 + | 15626 + | 15628 + | 15630 + | 15632 + | 15634 + | 15636 + | 15638 + | 15640 + | 15642 + | 15644 + | 15646 + | 15648 + | 15650 + | 15652 + | 15654 + | 15656 + | 15658 + | 15660 + | 15662 + | 15664 + | 15666 + | 15668 + | 15670 + | 15672 + | 15674 + | 15676 + | 15678 + | 15680 + | 15682 + | 15684 + | 15686 + | 15688 + | 15690 + | 15692 + | 15694 + | 15696 + | 15698 + | 15700 + | 15702 + | 15704 + | 15706 + | 15708 + | 15710 + | 15712 + | 15714 + | 15716 + | 15718 + | 15720 + | 15722 + | 15724 + | 15726 + | 15728 + | 15730 + | 15732 + | 15734 + | 15736 + | 15738 + | 15740 + | 15742 + | 15744 + | 15746 + | 15748 + | 15750 + | 15752 + | 15754 + | 15756 + | 15758 + | 15760 + | 15762 + | 15764 + | 15766 + | 15768 + | 15770 + | 15772 + | 15774 + | 15776 + | 15778 + | 15780 + | 15782 + | 15784 + | 15786 + | 15788 + | 15790 + | 15792 + | 15794 + | 15796 + | 15798 + | 15800 + | 15802 + | 15804 + | 15806 + | 15808 + | 15810 + | 15812 + | 15814 + | 15816 + | 15818 + | 15820 + | 15822 + | 15824 + | 15826 + | 15828 + | 15830 + | 15832 + | 15834 + | 15836 + | 15838 + | 15840 + | 15842 + | 15844 + | 15846 + | 15848 + | 15850 + | 15852 + | 15854 + | 15856 + | 15858 + | 15860 + | 15862 + | 15864 + | 15866 + | 15868 + | 15870 + | 15872 + | 15874 + | 15876 + | 15878 + | 15880 + | 15882 + | 15884 + | 15886 + | 15888 + | 15890 + | 15892 + | 15894 + | 15896 + | 15898 + | 15900 + | 15902 + | 15904 + | 15906 + | 15908 + | 15910 + | 15912 + | 15914 + | 15916 + | 15918 + | 15920 + | 15922 + | 15924 + | 15926 + | 15928 + | 15930 + | 15932 + | 15934 + | 15936 + | 15938 + | 15940 + | 15942 + | 15944 + | 15946 + | 15948 + | 15950 + | 15952 + | 15954 + | 15956 + | 15958 + | 15960 + | 15962 + | 15964 + | 15966 + | 15968 + | 15970 + | 15972 + | 15974 + | 15976 + | 15978 + | 15980 + | 15982 + | 15984 + | 15986 + | 15988 + | 15990 + | 15992 + | 15994 + | 15996 + | 15998 + | 16000 + | 16002 + | 16004 + | 16006 + | 16008 + | 16010 + | 16012 + | 16014 + | 16016 + | 16018 + | 16020 + | 16022 + | 16024 + | 16026 + | 16028 + | 16030 + | 16032 + | 16034 + | 16036 + | 16038 + | 16040 + | 16042 + | 16044 + | 16046 + | 16048 + | 16050 + | 16052 + | 16054 + | 16056 + | 16058 + | 16060 + | 16062 + | 16064 + | 16066 + | 16068 + | 16070 + | 16072 + | 16074 + | 16076 + | 16078 + | 16080 + | 16082 + | 16084 + | 16086 + | 16088 + | 16090 + | 16092 + | 16094 + | 16096 + | 16098 + | 16100 + | 16102 + | 16104 + | 16106 + | 16108 + | 16110 + | 16112 + | 16114 + | 16116 + | 16118 + | 16120 + | 16122 + | 16124 + | 16126 + | 16128 + | 16130 + | 16132 + | 16134 + | 16136 + | 16138 + | 16140 + | 16142 + | 16144 + | 16146 + | 16148 + | 16150 + | 16152 + | 16154 + | 16156 + | 16158 + | 16160 + | 16162 + | 16164 + | 16166 + | 16168 + | 16170 + | 16172 + | 16174 + | 16176 + | 16178 + | 16180 + | 16182 + | 16184 + | 16186 + | 16188 + | 16190 + | 16192 + | 16194 + | 16196 + | 16198 + | 16200 + | 16202 + | 16204 + | 16206 + | 16208 + | 16210 + | 16212 + | 16214 + | 16216 + | 16218 + | 16220 + | 16222 + | 16224 + | 16226 + | 16228 + | 16230 + | 16232 + | 16234 + | 16236 + | 16238 + | 16240 + | 16242 + | 16244 + | 16246 + | 16248 + | 16250 + | 16252 + | 16254 + | 16256 + | 16258 + | 16260 + | 16262 + | 16264 + | 16266 + | 16268 + | 16270 + | 16272 + | 16274 + | 16276 + | 16278 + | 16280 + | 16282 + | 16284 + | 16286 + | 16288 + | 16290 + | 16292 + | 16294 + | 16296 + | 16298 + | 16300 + | 16302 + | 16304 + | 16306 + | 16308 + | 16310 + | 16312 + | 16314 + | 16316 + | 16318 + | 16320 + | 16322 + | 16324 + | 16326 + | 16328 + | 16330 + | 16332 + | 16334 + | 16336 + | 16338 + | 16340 + | 16342 + | 16344 + | 16346 + | 16348 + | 16350 + | 16352 + | 16354 + | 16356 + | 16358 + | 16360 + | 16362 + | 16364 + | 16366 + | 16368 + | 16370 + | 16372 + | 16374 + | 16376 + | 16378 + | 16380 + | 16382 + | 16384 + | 16386 + | 16388 + | 16390 + | 16392 + | 16394 + | 16396 + | 16398 + | 16400 + | 16402 + | 16404 + | 16406 + | 16408 + | 16410 + | 16412 + | 16414 + | 16416 + | 16418 + | 16420 + | 16422 + | 16424 + | 16426 + | 16428 + | 16430 + | 16432 + | 16434 + | 16436 + | 16438 + | 16440 + | 16442 + | 16444 + | 16446 + | 16448 + | 16450 + | 16452 + | 16454 + | 16456 + | 16458 + | 16460 + | 16462 + | 16464 + | 16466 + | 16468 + | 16470 + | 16472 + | 16474 + | 16476 + | 16478 + | 16480 + | 16482 + | 16484 + | 16486 + | 16488 + | 16490 + | 16492 + | 16494 + | 16495 + | 16496 + | 16500 + | 16501 + | 16502 + | 16506 + | 16507 + | 16508 + | 16512 + | 16513 + | 16514 + | 16518 + | 16519 + | 16520 + | 16524 + | 16525 + | 16526 + | 16530 + | 16531 + | 16532 + | 16536 + | 16537 + | 16538 + | 16542 + | 16543 + | 16544 + | 16548 + | 16549 + | 16550 + | 16554 + | 16555 + | 16556 + | 16560 + | 16561 + | 16562 + | 16566 + | 16567 + | 16568 + | 16572 + | 16573 + | 16574 + | 16578 + | 16579 + | 16580 + | 16584 + | 16585 + | 16586 + | 16590 + | 16591 + | 16592 + | 16596 + | 16597 + | 16598 + | 16602 + | 16603 + | 16604 + | 16608 + | 16609 + | 16610 + | 16614 + | 16615 + | 16616 + | 16620 + | 16621 + | 16622 + | 16626 + | 16627 + | 16628 + | 16632 + | 16633 + | 16634 + | 16638 + | 16639 + | 16640 + | 16644 + | 16645 + | 16646 + | 16650 + | 16651 + | 16652 + | 16656 + | 16657 + | 16658 + | 16662 + | 16663 + | 16664 + | 16668 + | 16669 + | 16670 + | 16674 + | 16675 + | 16676 + | 16680 + | 16681 + | 16682 + | 16686 + | 16687 + | 16688 + | 16692 + | 16693 + | 16694 + | 16698 + | 16699 + | 16700 + | 16704 + | 16705 + | 16706 + | 16710 + | 16711 + | 16712 + | 16716 + | 16717 + | 16718 + | 16722 + | 16723 + | 16724 + | 16728 + | 16729 + | 16730 + | 16734 + | 16735 + | 16736 + | 16740 + | 16741 + | 16742 + | 16746 + | 16747 + | 16748 + | 16752 + | 16753 + | 16754 + | 16758 + | 16759 + | 16760 + | 16764 + | 16765 + | 16766 + | 16770 + | 16771 + | 16772 + | 16776 + | 16777 + | 16778 + | 16782 + | 16783 + | 16784 + | 16788 + | 16789 + | 16790 + | 16794 + | 16795 + | 16796 + | 16800 + | 16801 + | 16802 + | 16806 + | 16807 + | 16808 + | 16812 + | 16813 + | 16814 + | 16818 + | 16819 + | 16820 + | 16824 + | 16825 + | 16826 + | 16830 + | 16831 + | 16832 + | 16836 + | 16837 + | 16838 + | 16842 + | 16843 + | 16844 + | 16848 + | 16849 + | 16850 + | 16854 + | 16855 + | 16856 + | 16860 + | 16861 + | 16862 + | 16866 + | 16867 + | 16868 + | 16872 + | 16873 + | 16874 + | 16878 + | 16879 + | 16880 + | 16884 + | 16885 + | 16886 + | 16890 + | 16891 + | 16892 + | 16896 + | 16897 + | 16898 + | 16902 + | 16903 + | 16904 + | 16908 + | 16909 + | 16910 + | 16914 + | 16915 + | 16916 + | 16920 + | 16921 + | 16922 + | 16926 + | 16927 + | 16928 + | 16932 + | 16933 + | 16934 + | 16938 + | 16939 + | 16940 + | 16944 + | 16945 + | 16946 + | 16950 + | 16951 + | 16952 + | 16956 + | 16957 + | 16958 + | 16962 + | 16963 + | 16964 + | 16968 + | 16969 + | 16970 + | 16974 + | 16975 + | 16976 + | 16980 + | 16981 + | 16982 + | 16986 + | 16987 + | 16988 + | 16992 + | 16993 + | 16994 + | 16998 + | 16999 + | 17000 + | 17004 + | 17005 + | 17006 + | 17010 + | 17011 + | 17012 + | 17016 + | 17017 + | 17018 + | 17022 + | 17023 + | 17024 + | 17028 + | 17029 + | 17030 + | 17034 + | 17035 + | 17036 + | 17040 + | 17041 + | 17042 + | 17046 + | 17047 + | 17048 + | 17052 + | 17053 + | 17054 + | 17058 + | 17059 + | 17060 + | 17064 + | 17065 + | 17066 + | 17070 + | 17071 + | 17072 + | 17076 + | 17077 + | 17078 + | 17082 + | 17083 + | 17084 + | 17088 + | 17089 + | 17090 + | 17094 + | 17095 + | 17096 + | 17100 + | 17101 + | 17102 + | 17106 + | 17107 + | 17108 + | 17112 + | 17113 + | 17114 + | 17118 + | 17119 + | 17120 + | 17124 + | 17125 + | 17126 + | 17130 + | 17131 + | 17132 + | 17136 + | 17137 + | 17138 + | 17142 + | 17143 + | 17144 + | 17148 + | 17149 + | 17150 + | 17154 + | 17155 + | 17156 + | 17160 + | 17161 + | 17162 + | 17166 + | 17167 + | 17168 + | 17172 + | 17173 + | 17174 + | 17178 + | 17179 + | 17180 + | 17184 + | 17185 + | 17186 + | 17190 + | 17191 + | 17192 + | 17196 + | 17197 + | 17198 + | 17202 + | 17203 + | 17204 + | 17208 + | 17209 + | 17210 + | 17214 + | 17215 + | 17216 + | 17220 + | 17221 + | 17222 + | 17226 + | 17227 + | 17228 + | 17232 + | 17233 + | 17234 + | 17238 + | 17239 + | 17240 + | 17244 + | 17245 + | 17246 + | 17250 + | 17251 + | 17252 + | 17256 + | 17257 + | 17258 + | 17262 + | 17263 + | 17264 + | 17268 + | 17269 + | 17270 + | 17274 + | 17275 + | 17276 + | 17280 + | 17281 + | 17282 + | 17286 + | 17287 + | 17288 + | 17292 + | 17293 + | 17294 + | 17298 + | 17299 + | 17300 + | 17304 + | 17305 + | 17306 + | 17310 + | 17311 + | 17312 + | 17316 + | 17317 + | 17318 + | 17322 + | 17323 + | 17324 + | 17328 + | 17329 + | 17330 + | 17334 + | 17335 + | 17336 + | 17340 + | 17341 + | 17342 + | 17346 + | 17347 + | 17348 + | 17352 + | 17353 + | 17354 + | 17358 + | 17359 + | 17360 + | 17364 + | 17365 + | 17366 + | 17370 + | 17371 + | 17372 + | 17376 + | 17377 + | 17378 + | 17382 + | 17383 + | 17384 + | 17388 + | 17389 + | 17390 + | 17394 + | 17395 + | 17396 + | 17400 + | 17401 + | 17402 + | 17406 + | 17407 + | 17408 + | 17412 + | 17413 + | 17414 + | 17418 + | 17419 + | 17420 + | 17424 + | 17425 + | 17426 + | 17430 + | 17431 + | 17432 + | 17436 + | 17437 + | 17438 + | 17442 + | 17443 + | 17444 + | 17448 + | 17449 + | 17450 + | 17454 + | 17455 + | 17456 + | 17460 + | 17461 + | 17462 + | 17466 + | 17467 + | 17468 + | 17472 + | 17473 + | 17474 + | 17478 + | 17479 + | 17480 + | 17484 + | 17485 + | 17486 + | 17490 + | 17491 + | 17492 + | 17496 + | 17497 + | 17498 + | 17502 + | 17503 + | 17504 + | 17508 + | 17509 + | 17510 + | 17514 + | 17515 + | 17516 + | 17520 + | 17521 + | 17522 + | 17526 + | 17527 + | 17528 + | 17532 + | 17533 + | 17534 + | 17538 + | 17539 + | 17540 + | 17544 + | 17545 + | 17546 + | 17550 + | 17551 + | 17552 + | 17556 + | 17557 + | 17558 + | 17562 + | 17563 + | 17564 + | 17568 + | 17569 + | 17570 + | 17574 + | 17575 + | 17576 + | 17580 + | 17581 + | 17582 + | 17586 + | 17587 + | 17588 + | 17592 + | 17593 + | 17594 + | 17598 + | 17599 + | 17600 + | 17604 + | 17605 + | 17606 + | 17610 + | 17611 + | 17612 + | 17616 + | 17617 + | 17618 + | 17622 + | 17623 + | 17624 + | 17628 + | 17629 + | 17630 + | 17634 + | 17635 + | 17636 + | 17640 + | 17641 + | 17642 + | 17646 + | 17647 + | 17648 + | 17652 + | 17653 + | 17654 + | 17658 + | 17659 + | 17660 + | 17664 + | 17665 + | 17666 + | 17670 + | 17671 + | 17672 + | 17676 + | 17677 + | 17678 + | 17682 + | 17683 + | 17684 + | 17688 + | 17689 + | 17690 + | 17694 + | 17695 + | 17696 + | 17700 + | 17701 + | 17702 + | 17706 + | 17707 + | 17708 + | 17712 + | 17713 + | 17714 + | 17718 + | 17719 + | 17720 + | 17724 + | 17725 + | 17726 + | 17730 + | 17731 + | 17732 + | 17736 + | 17737 + | 17738 + | 17742 + | 17743 + | 17744 + | 17748 + | 17749 + | 17750 + | 17754 + | 17755 + | 17756 + | 17760 + | 17761 + | 17762 + | 17766 + | 17767 + | 17768 + | 17772 + | 17773 + | 17774 + | 17778 + | 17779 + | 17780 + | 17784 + | 17785 + | 17786 + | 17790 + | 17791 + | 17792 + | 17796 + | 17797 + | 17798 + | 17802 + | 17803 + | 17804 + | 17808 + | 17809 + | 17810 + | 17814 + | 17815 + | 17816 + | 17820 + | 17821 + | 17822 + | 17826 + | 17827 + | 17828 + | 17832 + | 17833 + | 17834 + | 17838 + | 17839 + | 17840 + | 17844 + | 17845 + | 17846 + | 17850 + | 17851 + | 17852 + | 17856 + | 17857 + | 17858 + | 17862 + | 17863 + | 17864 + | 17868 + | 17869 + | 17870 + | 17874 + | 17875 + | 17876 + | 17880 + | 17881 + | 17882 + | 17886 + | 17887 + | 17888 + | 17892 + | 17893 + | 17894 + | 17898 + | 17899 + | 17900 + | 17904 + | 17905 + | 17906 + | 17910 + | 17911 + | 17912 + | 17916 + | 17917 + | 17918 + | 17922 + | 17923 + | 17924 + | 17928 + | 17929 + | 17930 + | 17934 + | 17935 + | 17936 + | 17940 + | 17941 + | 17942 + | 17946 + | 17947 + | 17948 + | 17952 + | 17953 + | 17954 + | 17958 + | 17959 + | 17960 + | 17964 + | 17965 + | 17966 + | 17970 + | 17971 + | 17972 + | 17976 + | 17977 + | 17978 + | 17982 + | 17983 + | 17984 + | 17988 + | 17989 + | 17990 + | 17994 + | 17995 + | 17996 + | 18000 + | 18001 + | 18002 + | 18006 + | 18007 + | 18008 + | 18012 + | 18013 + | 18014 + | 18018 + | 18019 + | 18020 + | 18024 + | 18025 + | 18026 + | 18030 + | 18031 + | 18032 + | 18036 + | 18037 + | 18038 + | 18042 + | 18043 + | 18044 + | 18048 + | 18049 + | 18050 + | 18054 + | 18055 + | 18056 + | 18060 + | 18061 + | 18062 + | 18066 + | 18067 + | 18068 + | 18072 + | 18073 + | 18074 + | 18078 + | 18079 + | 18080 + | 18084 + | 18085 + | 18086 + | 18090 + | 18091 + | 18092 + | 18096 + | 18097 + | 18098 + | 18102 + | 18103 + | 18104 + | 18108 + | 18109 + | 18110 + | 18114 + | 18115 + | 18116 + | 18120 + | 18121 + | 18122 + | 18126 + | 18127 + | 18128 + | 18132 + | 18133 + | 18134 + | 18138 + | 18139 + | 18140 + | 18144 + | 18145 + | 18146 + | 18150 + | 18151 + | 18152 + | 18156 + | 18157 + | 18158 + | 18162 + | 18163 + | 18164 + | 18168 + | 18169 + | 18170 + | 18174 + | 18175 + | 18176 + | 18180 + | 18181 + | 18182 + | 18186 + | 18187 + | 18188 + | 18192 + | 18193 + | 18194 + | 18198 + | 18199 + | 18200 + | 18204 + | 18205 + | 18206 + | 18210 + | 18211 + | 18212 + | 18216 + | 18217 + | 18218 + | 18222 + | 18223 + | 18224 + | 18228 + | 18229 + | 18230 + | 18234 + | 18235 + | 18236 + | 18240 + | 18241 + | 18242 + | 18246 + | 18247 + | 18248 + | 18252 + | 18253 + | 18254 + | 18258 + | 18259 + | 18260 + | 18264 + | 18265 + | 18266 + | 18270 + | 18271 + | 18272 + | 18276 + | 18277 + | 18278 + | 18282 + | 18283 + | 18284 + | 18288 + | 18289 + | 18290 + | 18294 + | 18295 + | 18296 + | 18300 + | 18301 + | 18302 + | 18306 + | 18307 + | 18308 + | 18312 + | 18313 + | 18314 + | 18318 + | 18319 + | 18320 + | 18324 + | 18325 + | 18326 + | 18330 + | 18331 + | 18332 + | 18336 + | 18337 + | 18338 + | 18342 + | 18343 + | 18344 + | 18348 + | 18349 + | 18350 + | 18354 + | 18355 + | 18356 + | 18360 + | 18361 + | 18362 + | 18366 + | 18367 + | 18368 + | 18372 + | 18373 + | 18374 + | 18378 + | 18379 + | 18380 + | 18384 + | 18385 + | 18386 + | 18390 + | 18391 + | 18392 + | 18396 + | 18397 + | 18398 + | 18402 + | 18403 + | 18404 + | 18408 + | 18409 + | 18410 + | 18414 + | 18415 + | 18416 + | 18420 + | 18421 + | 18422 + | 18426 + | 18427 + | 18428 + | 18432 + | 18433 + | 18434 + | 18438 + | 18439 + | 18440 + | 18444 + | 18445 + | 18446 + | 18450 + | 18451 + | 18452 + | 18456 + | 18457 + | 18458 + | 18462 + | 18463 + | 18464 + | 18468 + | 18469 + | 18470 + | 18474 + | 18475 + | 18476 + | 18480 + | 18481 + | 18482 + | 18486 + | 18487 + | 18488 + | 18492 + | 18493 + | 18494 + | 18498 + | 18499 + | 18500 + | 18504 + | 18505 + | 18506 + | 18510 + | 18511 + | 18512 + | 18516 + | 18517 + | 18518 + | 18522 + | 18523 + | 18524 + | 18528 + | 18529 + | 18530 + | 18534 + | 18535 + | 18536 + | 18540 + | 18541 + | 18542 + | 18546 + | 18547 + | 18548 + | 18552 + | 18553 + | 18554 + | 18558 + | 18559 + | 18560 + | 18564 + | 18565 + | 18566 + | 18570 + | 18571 + | 18572 + | 18576 + | 18577 + | 18578 + | 18582 + | 18583 + | 18584 + | 18588 + | 18589 + | 18590 + | 18594 + | 18595 + | 18596 + | 18600 + | 18601 + | 18602 + | 18606 + | 18607 + | 18608 + | 18612 + | 18613 + | 18614 + | 18618 + | 18619 + | 18620 + | 18624 + | 18625 + | 18626 + | 18630 + | 18631 + | 18632 + | 18636 + | 18637 + | 18638 + | 18642 + | 18643 + | 18644 + | 18648 + | 18649 + | 18650 + | 18654 + | 18655 + | 18656 + | 18660 + | 18661 + | 18662 + | 18666 + | 18667 + | 18668 + | 18672 + | 18673 + | 18674 + | 18678 + | 18679 + | 18680 + | 18684 + | 18685 + | 18686 + | 18690 + | 18691 + | 18692 + | 18696 + | 18697 + | 18698 + | 18702 + | 18703 + | 18704 + | 18708 + | 18709 + | 18710 + | 18714 + | 18715 + | 18716 + | 18720 + | 18721 + | 18722 + | 18726 + | 18727 + | 18728 + | 18732 + | 18733 + | 18734 + | 18738 + | 18739 + | 18740 + | 18744 + | 18745 + | 18746 + | 18750 + | 18751 + | 18752 + | 18756 + | 18757 + | 18758 + | 18762 + | 18763 + | 18764 + | 18768 + | 18769 + | 18770 + | 18774 + | 18775 + | 18776 + | 18780 + | 18781 + | 18782 + | 18786 + | 18787 + | 18788 + | 18792 + | 18793 + | 18794 + | 18798 + | 18799 + | 18800 + | 18804 + | 18805 + | 18806 + | 18810 + | 18811 + | 18812 + | 18816 + | 18817 + | 18818 + | 18822 + | 18823 + | 18824 + | 18828 + | 18829 + | 18830 + | 18834 + | 18835 + | 18836 + | 18840 + | 18841 + | 18842 + | 18846 + | 18847 + | 18848 + | 18852 + | 18853 + | 18854 + | 18858 + | 18859 + | 18860 + | 18864 + | 18865 + | 18866 + | 18870 + | 18871 + | 18872 + | 18876 + | 18877 + | 18878 + | 18882 + | 18883 + | 18884 + | 18888 + | 18889 + | 18890 + | 18894 + | 18895 + | 18896 + | 18900 + | 18901 + | 18902 + | 18906 + | 18907 + | 18908 + | 18912 + | 18913 + | 18914 + | 18918 + | 18919 + | 18920 + | 18924 + | 18925 + | 18926 + | 18930 + | 18931 + | 18932 + | 18936 + | 18937 + | 18938 + | 18942 + | 18943 + | 18944 + | 18948 + | 18949 + | 18950 + | 18954 + | 18955 + | 18956 + | 18960 + | 18961 + | 18962 + | 18966 + | 18967 + | 18968 + | 18972 + | 18973 + | 18974 + | 18978 + | 18979 + | 18980 + | 18984 + | 18985 + | 18986 + | 18990 + | 18991 + | 18992 + | 18996 + | 18997 + | 18998 + | 19002 + | 19003 + | 19004 + | 19008 + | 19009 + | 19010 + | 19014 + | 19015 + | 19016 + | 19020 + | 19021 + | 19022 + | 19026 + | 19027 + | 19028 + | 19032 + | 19033 + | 19034 + | 19038 + | 19039 + | 19040 + | 19044 + | 19045 + | 19046 + | 19050 + | 19051 + | 19052 + | 19056 + | 19057 + | 19058 + | 19062 + | 19063 + | 19064 + | 19068 + | 19069 + | 19070 + | 19074 + | 19075 + | 19076 + | 19080 + | 19081 + | 19082 + | 19086 + | 19087 + | 19088 + | 19092 + | 19093 + | 19094 + | 19098 + | 19099 + | 19100 + | 19104 + | 19105 + | 19106 + | 19110 + | 19111 + | 19112 + | 19116 + | 19117 + | 19118 + | 19122 + | 19123 + | 19124 + | 19128 + | 19129 + | 19130 + | 19134 + | 19135 + | 19136 + | 19140 + | 19141 + | 19142 + | 19146 + | 19147 + | 19148 + | 19152 + | 19153 + | 19154 + | 19158 + | 19159 + | 19160 + | 19164 + | 19165 + | 19166 + | 19170 + | 19171 + | 19172 + | 19176 + | 19177 + | 19178 + | 19182 + | 19183 + | 19184 + | 19188 + | 19189 + | 19190 + | 19194 + | 19195 + | 19196 + | 19200 + | 19201 + | 19202 + | 19206 + | 19207 + | 19208 + | 19212 + | 19213 + | 19214 + | 19218 + | 19219 + | 19220 + | 19224 + | 19225 + | 19226 + | 19230 + | 19231 + | 19232 + | 19236 + | 19237 + | 19238 + | 19242 + | 19243 + | 19244 + | 19248 + | 19249 + | 19250 + | 19254 + | 19255 + | 19256 + | 19260 + | 19261 + | 19262 + | 19266 + | 19267 + | 19268 + | 19272 + | 19273 + | 19274 + | 19278 + | 19279 + | 19280 + | 19284 + | 19285 + | 19286 + | 19290 + | 19291 + | 19292 + | 19296 + | 19297 + | 19298 + | 19302 + | 19303 + | 19304 + | 19308 + | 19309 + | 19310 + | 19314 + | 19315 + | 19316 + | 19320 + | 19321 + | 19322 + | 19326 + | 19327 + | 19328 + | 19332 + | 19333 + | 19334 + | 19338 + | 19339 + | 19340 + | 19344 + | 19345 + | 19346 + | 19350 + | 19351 + | 19352 + | 19356 + | 19357 + | 19358 + | 19362 + | 19363 + | 19364 + | 19368 + | 19369 + | 19370 + | 19374 + | 19375 + | 19376 + | 19380 + | 19381 + | 19382 + | 19386 + | 19387 + | 19388 + | 19392 + | 19393 + | 19394 + | 19398 + | 19399 + | 19400 + | 19404 + | 19405 + | 19406 + | 19410 + | 19411 + | 19412 + | 19416 + | 19417 + | 19418 + | 19422 + | 19423 + | 19424 + | 19428 + | 19429 + | 19430 + | 19434 + | 19435 + | 19436 + | 19440 + | 19441 + | 19442 + | 19446 + | 19447 + | 19448 + | 19452 + | 19453 + | 19454 + | 19458 + | 19459 + | 19460 + | 19464 + | 19465 + | 19466 + | 19470 + | 19471 + | 19472 + | 19476 + | 19477 + | 19478 + | 19482 + | 19483 + | 19484 + | 19488 + | 19489 + | 19490 + | 19494 + | 19495 + | 19496 + | 19500 + | 19501 + | 19502 + | 19506 + | 19507 + | 19508 + | 19512 + | 19513 + | 19514 + | 19518 + | 19519 + | 19520 + | 19524 + | 19525 + | 19526 + | 19530 + | 19531 + | 19532 + | 19536 + | 19537 + | 19538 + | 19542 + | 19543 + | 19544 + | 19548 + | 19549 + | 19550 + | 19554 + | 19555 + | 19556 + | 19560 + | 19561 + | 19562 + | 19566 + | 19567 + | 19568 + | 19572 + | 19573 + | 19574 + | 19578 + | 19579 + | 19580 + | 19584 + | 19585 + | 19586 + | 19590 + | 19591 + | 19592 + | 19596 + | 19597 + | 19598 + | 19602 + | 19603 + | 19604 + | 19608 + | 19609 + | 19610 + | 19614 + | 19615 + | 19616 + | 19620 + | 19621 + | 19622 + | 19626 + | 19627 + | 19628 + | 19632 + | 19633 + | 19634 + | 19638 + | 19639 + | 19640 + | 19644 + | 19645 + | 19646 + | 19650 + | 19651 + | 19652 + | 19656 + | 19657 + | 19658 + | 19662 + | 19663 + | 19664 + | 19668 + | 19669 + | 19670 + | 19674 + | 19675 + | 19676 + | 19680 + | 19681 + | 19682 + | 19686 + | 19687 + | 19688 + | 19692 + | 19693 + | 19694 + | 19698 + | 19699 + | 19700 + | 19704 + | 19705 + | 19706 + | 19710 + | 19711 + | 19712 + | 19716 + | 19717 + | 19718 + | 19722 + | 19723 + | 19724 + | 19728 + | 19729 + | 19730 + | 19734 + | 19735 + | 19736 + | 19740 + | 19741 + | 19742 + | 19746 + | 19747 + | 19748 + | 19752 + | 19753 + | 19754 + | 19758 + | 19759 + | 19760 + | 19764 + | 19765 + | 19766 + | 19770 + | 19771 + | 19772 + | 19776 + | 19777 + | 19778 + | 19782 + | 19783 + | 19784 + | 19788 + | 19789 + | 19790 + | 19794 + | 19795 + | 19796 + | 19800 + | 19801 + | 19802 + | 19806 + | 19807 + | 19808 + | 19812 + | 19813 + | 19814 + | 19818 + | 19819 + | 19820 + | 19824 + | 19825 + | 19826 + | 19830 + | 19831 + | 19832 + | 19836 + | 19837 + | 19838 + | 19842 + | 19843 + | 19844 + | 19848 + | 19849 + | 19850 + | 19854 + | 19855 + | 19856 + | 19860 + | 19861 + | 19862 + | 19866 + | 19867 + | 19868 + | 19872 + | 19873 + | 19874 + | 19878 + | 19879 + | 19880 + | 19884 + | 19885 + | 19886 + | 19890 + | 19891 + | 19892 + | 19896 + | 19897 + | 19898 + | 19902 + | 19903 + | 19904 + | 19908 + | 19909 + | 19910 + | 19914 + | 19915 + | 19916 + | 19920 + | 19921 + | 19922 + | 19926 + | 19927 + | 19928 + | 19932 + | 19933 + | 19934 + | 19938 + | 19939 + | 19940 + | 19944 + | 19945 + | 19946 + | 19950 + | 19951 + | 19952 + | 19956 + | 19957 + | 19958 + | 19962 + | 19963 + | 19964 + | 19968 + | 19969 + | 19970 + | 19974 + | 19975 + | 19976 + | 19980 + | 19981 + | 19982 + | 19986 + | 19987 + | 19988 + | 19992 + | 19993 + | 19994 + | 19998 + | 19999 + | 20000 + | 20004 + | 20005 + | 20006 + | 20010 + | 20011 + | 20012 + | 20016 + | 20017 + | 20018 + | 20022 + | 20023 + | 20024 + | 20028 + | 20029 + | 20030 + | 20034 + | 20035 + | 20036 + | 20040 + | 20041 + | 20042 + | 20046 + | 20047 + | 20048 + | 20052 + | 20053 + | 20054 + | 20058 + | 20059 + | 20060 + | 20064 + | 20065 + | 20066 + | 20070 + | 20071 + | 20072 + | 20076 + | 20077 + | 20078 + | 20082 + | 20083 + | 20084 + | 20088 + | 20089 + | 20090 + | 20094 + | 20095 + | 20096 + | 20100 + | 20101 + | 20102 + | 20106 + | 20107 + | 20108 + | 20112 + | 20113 + | 20114 + | 20118 + | 20119 + | 20120 + | 20124 + | 20125 + | 20126 + | 20130 + | 20131 + | 20132 + | 20136 + | 20137 + | 20138 + | 20142 + | 20143 + | 20144 + | 20148 + | 20149 + | 20150 + | 20154 + | 20155 + | 20156 + | 20160 + | 20161 + | 20162 + | 20166 + | 20167 + | 20168 + | 20172 + | 20173 + | 20174 + | 20178 + | 20179 + | 20180 + | 20184 + | 20185 + | 20186 + | 20190 + | 20191 + | 20192 + | 20196 + | 20197 + | 20198 + | 20202 + | 20203 + | 20204 + | 20208 + | 20209 + | 20210 + | 20214 + | 20215 + | 20216 + | 20220 + | 20221 + | 20222 + | 20226 + | 20227 + | 20228 + | 20232 + | 20233 + | 20234 + | 20238 + | 20239 + | 20240 + | 20244 + | 20245 + | 20246 + | 20250 + | 20251 + | 20252 + | 20256 + | 20257 + | 20258 + | 20262 + | 20263 + | 20264 + | 20268 + | 20269 + | 20270 + | 20274 + | 20275 + | 20276 + | 20280 + | 20281 + | 20282 + | 20286 + | 20287 + | 20288 + | 20292 + | 20293 + | 20294 + | 20298 + | 20299 + | 20300 + | 20304 + | 20305 + | 20306 + | 20310 + | 20311 + | 20312 + | 20316 + | 20317 + | 20318 + | 20322 + | 20323 + | 20324 + | 20328 + | 20329 + | 20330 + | 20334 + | 20335 + | 20336 + | 20340 + | 20341 + | 20342 + | 20346 + | 20347 + | 20348 + | 20352 + | 20353 + | 20354 + | 20358 + | 20359 + | 20360 + | 20364 + | 20365 + | 20366 + | 20370 + | 20371 + | 20372 + | 20376 + | 20377 + | 20378 + | 20382 + | 20383 + | 20384 + | 20388 + | 20389 + | 20390 + | 20394 + | 20395 + | 20396 + | 20400 + | 20401 + | 20402 + | 20406 + | 20407 + | 20408 + | 20412 + | 20413 + | 20414 + | 20418 + | 20419 + | 20420 + | 20424 + | 20425 + | 20426 + | 20430 + | 20431 + | 20432 + | 20436 + | 20437 + | 20438 + | 20442 + | 20443 + | 20444 + | 20448 + | 20449 + | 20450 + | 20454 + | 20455 + | 20456 + | 20460 + | 20461 + | 20462 + | 20466 + | 20467 + | 20468 + | 20472 + | 20473 + | 20474 + | 20478 + | 20479 + | 20480 + | 20484 + | 20485 + | 20486 + | 20490 + | 20491 + | 20492 + | 20496 + | 20497 + | 20498 + | 20502 + | 20503 + | 20504 + | 20508 + | 20509 + | 20510 + | 20514 + | 20515 + | 20516 + | 20520 + | 20521 + | 20522 + | 20526 + | 20527 + | 20528 + | 20532 + | 20533 + | 20534 + | 20538 + | 20539 + | 20540 + | 20544 + | 20545 + | 20546 + | 20550 + | 20551 + | 20552 + | 20556 + | 20557 + | 20558 + | 20562 + | 20563 + | 20564 + | 20568 + | 20569 + | 20570 + | 20574 + | 20575 + | 20576 + | 20580 + | 20581 + | 20582 + | 20586 + | 20587 + | 20588 + | 20592 + | 20593 + | 20594 + | 20598 + | 20599 + | 20600 + | 20604 + | 20605 + | 20606 + | 20610 + | 20611 + | 20612 + | 20616 + | 20617 + | 20618 + | 20622 + | 20623 + | 20624 + | 20628 + | 20629 + | 20630 + | 20634 + | 20635 + | 20636 + | 20640 + | 20641 + | 20642 + | 20646 + | 20647 + | 20648 + | 20652 + | 20653 + | 20654 + | 20658 + | 20659 + | 20660 + | 20664 + | 20665 + | 20666 + | 20670 + | 20671 + | 20672 + | 20676 + | 20677 + | 20678 + | 20682 + | 20683 + | 20684 + | 20688 + | 20689 + | 20690 + | 20694 + | 20695 + | 20696 + | 20700 + | 20701 + | 20702 + | 20706 + | 20708 + | 20710 + | 20712 + | 20714 + | 20716 + | 20718 + | 20720 + | 20722 + | 20724 + | 20726 + | 20728 + | 20730 + | 20732 + | 20734 + | 20736 + | 20837 + | 20839 + | 20841 + | 20843 + | 20845 + | 20847 + | 20849 + | 20851 + | 20853 + | 20855 + | 20857 + | 20859 + | 20861 + | 20863 + | 20865 + | 20867 + | 20869 + | 20871 + | 20873 + | 20875 + | 20877 + | 20879 + | 20881 + | 20883 + | 20885 + | 20887 + | 20889 + | 20891 + | 20893 + | 20895 + | 20897 + | 20899 + | 20901 + | 20903 + | 20905 + | 20907 + | 20909 + | 20911 + | 20913 + | 20915 + | 20917 + | 20919 + | 20921 + | 20923 + | 20925 + | 20927 + | 20929 + | 20931 + | 20933 + | 20935 + | 20937 + | 20939 + | 21034 + | 21036 + | 21038 + | 21040 + | 21042 + | 21044 + | 21050 + | 21051 + | 21054 + | 21055 + | 21058 + | 21059 + | 21062 + | 21063 + | 21066 + | 21067 + | 21070 + | 21071 + | 21074 + | 21075 + | 21078 + | 21079 + | 21082 + | 21083 + | 21086 + | 21087 + | 21090 + | 21091 + | 21094 + | 21095 + | 21098 + | 21099 + | 21102 + | 21103 + | 21106 + | 21107 + | 21110 + | 21111 + | 21114 + | 21116 + | 21118 + | 21120 + | 21122 + | 21124 + | 21126 + | 21128 + | 21130 + | 21132 + | 21134 + | 21136 + | 21138 + | 21140 + | 21142 + | 21144 + | 21146 + | 21148 + | 21150 + | 21152 + | 21154 + | 21156 + | 21158 + | 21160 + | 21162 + | 21164 + | 21166 + | 21168 + | 21170 + | 21172 + | 21174 + | 21176 + | 21178 + | 21180 + | 21182 + | 21184 + | 21186 + | 21188 + | 21190 + | 21192 + | 21194 + | 21196 + | 21198 + | 21200 + | 21202 + | 21204 + | 21206 + | 21208 + | 21210 + | 21212 + | 21214 + | 21216 + | 21218 + | 21220 + | 21222 + | 21224 + | 21226 + | 21228 + | 21230 + | 21232 + | 21234 + | 21236 + | 21238 + | 21240 + | 21306 + | 21308 + | 21310 + | 21312 + | 21314 + | 21316 + | 21318 + | 21320 + | 21322 + | 21324 + | 21326 + | 21328 + | 21330 + | 21332 + | 21334 + | 21336 + | 21338 + | 21340 + | 21342 + | 21344 + | 21346 + | 21348 + | 21350 + | 21352 + | 21354 + | 21356 + | 21358 + | 21360 + | 21362 + | 21364 + | 21366 + | 21368 + | 21370 + | 21372 + | 21374 + | 21376 + | 21378 + | 21380 + | 21382 + | 21384 + | 21386 + | 21388 + | 21390 + | 21392 + | 21394 + | 21396 + | 21398 + | 21400 + | 21402 + | 21404 + | 21406 + | 21408 + | 21410 + | 21412 + | 21414 + | 21416 + | 21418 + | 21420 + | 21422 + | 21424 + | 21426 + | 21428 + | 21430 + | 21432 + | 21434 + | 21436 + | 21438 + | 21440 + | 21442 + | 21444 + | 21446 + | 21448 + | 21450 + | 21452 + | 21454 + | 21456 + | 21458 + | 21460 + | 21462 + | 21464 + | 21642 + | 21644 + | 21646 + | 21648 + | 21650 + | 21652 + | 21654 + | 21656 + | 21658 + | 21660 + | 21662 + | 21664 + | 21666 + | 21668 + | 21670 + | 21672 + | 21674 + | 21676 + | 21678 + | 21680 + | 21682 + | 21684 + | 21686 + | 21688 + | 21690 + | 21692 + | 21694 + | 21696 + | 21698 + | 21700 + | 21702 + | 21704 + | 21706 + | 21708 + | 21710 + | 21712 + | 21714 + | 21716 + | 21718 + | 21720 + | 21832 + | 21834 + | 21836 + | 21838 + | 21840 + | 21842 + | 21844 + | 21846 + | 21848 + | 21850 + | 21852 + | 21854 + | 21856 + | 21858 + | 21860 + | 21862 + | 21864 + | 21866 + | 21868 + | 21870 + | 21872 + | 21874 + | 21876 + | 21878 + | 21880 + | 21882 + | 21884 + | 21886 + | 21888 + | 21890 + | 21892 + | 21894 + | 21896 + | 21898 + | 21900 + | 21902 + | 21904 + | 21906 + | 21908 + | 21910 + | 21912 + | 21913 + | 21914 + | 21918 + | 21919 + | 21920 + | 21924 + | 21925 + | 21926 + | 21930 + | 21931 + | 21932 + | 21936 + | 21937 + | 21938 + | 21942 + | 21943 + | 21944 + | 21948 + | 21949 + | 21950 + | 21954 + | 21955 + | 21956 + | 21960 + | 21961 + | 21962 + | 21966 + | 21967 + | 21968 + | 21972 + | 21973 + | 21974 + | 21978 + | 21979 + | 21980 + | 21984 + | 21985 + | 21986 + | 21990 + | 21991 + | 21992 + | 21996 + | 21997 + | 21998 + | 22002 + | 22003 + | 22004 + | 22008 + | 22009 + | 22010 + | 22014 + | 22015 + | 22016 + | 22020 + | 22021 + | 22022 + | 22026 + | 22027 + | 22028 + | 22032 + | 22033 + | 22034 + | 22038 + | 22039 + | 22040 + | 22044 + | 22045 + | 22046 + | 22050 + | 22051 + | 22052 + | 22056 + | 22057 + | 22058 + | 22062 + | 22063 + | 22064 + | 22068 + | 22069 + | 22070 + | 22074 + | 22075 + | 22076 + | 22080 + | 22081 + | 22082 + | 22086 + | 22087 + | 22088 + | 22092 + | 22093 + | 22094 + | 22098 + | 22099 + | 22100 + | 22104 + | 22105 + | 22106 + | 22110 + | 22111 + | 22112 + | 22116 + | 22117 + | 22118 + | 22122 + | 22123 + | 22124 + | 22128 + | 22129 + | 22130 + | 22134 + | 22135 + | 22136 + | 22140 + | 22141 + | 22142 + | 22146 + | 22147 + | 22148 + | 22152 + | 22153 + | 22154 + | 22158 + | 22159 + | 22160 + | 22164 + | 22165 + | 22166 + | 22170 + | 22171 + | 22172 + | 22176 + | 22177 + | 22178 + | 22182 + | 22183 + | 22184 + | 22188 + | 22189 + | 22190 + | 22194 + | 22195 + | 22196 + | 22200 + | 22201 + | 22202 + | 22206 + | 22207 + | 22208 + | 22212 + | 22213 + | 22214 + | 22218 + | 22219 + | 22220 + | 22224 + | 22225 + | 22226 + | 22230 + | 22231 + | 22232 + | 22236 + | 22238 + | 22240 + | 22246 + | 22248 + | 22250 + | 22252 + | 22254 + | 22256 + | 22258 + | 22260 + | 22262 + | 22264 + | 22266 + | 22268 + | 22270 + | 22272 + | 22274 + | 22276 + | 22278 + | 22280 + | 22282 + | 22284 + | 22286 + | 22288 + | 22290 + | 22292 + | 22294 + | 22296 + | 22298 + | 22300 + | 22302 + | 22304 + | 22306 + | 22308 + | 22310 + | 22312 + | 22314 + | 22316 + | 22318 + | 22320 + | 22322 + | 22324 + | 22326 + | 22328 + | 22330 + | 22332 + | 22333 + | 22334 + | 22338 + | 22339 + | 22340 + | 22344 + | 22345 + | 22346 + | 22350 + | 22351 + | 22352 + | 22356 + | 22357 + | 22358 + | 22362 + | 22363 + | 22364 + | 22368 + | 22369 + | 22370 + | 22374 + | 22375 + | 22376 + | 22380 + | 22381 + | 22382 + | 22386 + | 22387 + | 22388 + | 22392 + | 22393 + | 22394 + | 22398 + | 22399 + | 22400 + | 22404 + | 22405 + | 22406 + | 22410 + | 22411 + | 22412 + | 22416 + | 22417 + | 22418 + | 22422 + | 22423 + | 22424 + | 22428 + | 22429 + | 22430 + | 22434 + | 22435 + | 22436 + | 22440 + | 22441 + | 22442 + | 22446 + | 22447 + | 22448 + | 22452 + | 22453 + | 22454 + | 22458 + | 22459 + | 22460 + | 22464 + | 22465 + | 22466 + | 22470 + | 22471 + | 22472 + | 22476 + | 22477 + | 22478 + | 22482 + | 22483 + | 22484 + | 22488 + | 22489 + | 22490 + | 22494 + | 22495 + | 22496 + | 22500 + | 22501 + | 22502 + | 22506 + | 22507 + | 22508 + | 22512 + | 22513 + | 22514 + | 22518 + | 22519 + | 22520 + | 22524 + | 22525 + | 22526 + | 22530 + | 22531 + | 22532 + | 22536 + | 22537 + | 22538 + | 22542 + | 22543 + | 22544 + | 22548 + | 22549 + | 22550 + | 22554 + | 22555 + | 22556 + | 22560 + | 22561 + | 22562 + | 22566 + | 22567 + | 22568 + | 22572 + | 22573 + | 22574 + | 22578 + | 22579 + | 22580 + | 22584 + | 22585 + | 22586 + | 22590 + | 22591 + | 22592 + | 22596 + | 22597 + | 22598 + | 22602 + | 22603 + | 22604 + | 22608 + | 22609 + | 22610 + | 22614 + | 22615 + | 22616 + | 22620 + | 22621 + | 22622 + | 22626 + | 22627 + | 22628 + | 22632 + | 22633 + | 22634 + | 22638 + | 22639 + | 22640 + | 22644 + | 22645 + | 22646 + | 22650 + | 22651 + | 22652 + | 22657 + | 22659 + | 22661 + | 22663 + | 22665 + | 22667 + | 22669 + | 22671 + | 22673 + | 22675 + | 22677 + | 22679 + | 22681 + | 22683 + | 22685 + | 22687 + | 22689 + | 22691 + | 22693 + | 22695 + | 22697 + | 22699 + | 22701 + | 22703 + | 22705 + | 22707 + | 22709 + | 22711 + | 22713 + | 22715 + | 22717 + | 22719 + | 22721 + | 22723 + | 22725 + | 22727 + | 22729 + | 22731 + | 22733 + | 22735 + | 22737 + | 22739 + | 22741 + | 22769 + | 22770 + | 22771 + | 22775 + | 22776 + | 22777 + | 22781 + | 22782 + | 22783 + | 22787 + | 22788 + | 22789 + | 22793 + | 22794 + | 22795 + | 22799 + | 22800 + | 22801 + | 22805 + | 22806 + | 22807 + | 22811 + | 22812 + | 22813 + | 22817 + | 22818 + | 22819 + | 22823 + | 22824 + | 22825 + | 22829 + | 22830 + | 22831 + | 22835 + | 22836 + | 22837 + | 22841 + | 22842 + | 22843 + | 22847 + | 22848 + | 22849 + | 22853 + | 22854 + | 22855 + | 22859 + | 22860 + | 22861 + | 22865 + | 22866 + | 22867 + | 22871 + | 22872 + | 22873 + | 22877 + | 22878 + | 22879 + | 22883 + | 22884 + | 22885 + | 22889 + | 22890 + | 22891 + | 22895 + | 22896 + | 22897 + | 22901 + | 22902 + | 22903 + | 22907 + | 22908 + | 22909 + | 22913 + | 22914 + | 22915 + | 22919 + | 22920 + | 22921 + | 22925 + | 22926 + | 22927 + | 22931 + | 22932 + | 22933 + | 22937 + | 22938 + | 22939 + | 22943 + | 22944 + | 22945 + | 22949 + | 22950 + | 22951 + | 22955 + | 22956 + | 22957 + | 22961 + | 22962 + | 22963 + | 22967 + | 22968 + | 22969 + | 22973 + | 22974 + | 22975 + | 22979 + | 22980 + | 22981 + | 22985 + | 22986 + | 22987 + | 22991 + | 22992 + | 22993 + | 22997 + | 22998 + | 22999 + | 23003 + | 23004 + | 23005 + | 23009 + | 23010 + | 23011 + | 23015 + | 23016 + | 23017 + | 23021 + | 23022 + | 23023 + | 23027 + | 23028 + | 23029 + | 23033 + | 23034 + | 23035 + | 23039 + | 23040 + | 23041 + | 23045 + | 23046 + | 23047 + | 23051 + | 23052 + | 23053 + | 23057 + | 23058 + | 23059 + | 23063 + | 23064 + | 23065 + | 23069 + | 23070 + | 23071 + | 23075 + | 23076 + | 23077 + | 23081 + | 23082 + | 23083 + | 23087 + | 23088 + | 23089 + | 23096 + | 23098 + | 23100 + | 23102 + | 23104 + | 23106 + | 23108 + | 23110 + | 23112 + | 23114 + | 23116 + | 23118 + | 23120 + | 23122 + | 23124 + | 23126 + | 23128 + | 23130 + | 23132 + | 23134 + | 23136 + | 23138 + | 23140 + | 23142 + | 23144 + | 23146 + | 23148 + | 23150 + | 23152 + | 23154 + | 23156 + | 23158 + | 23160 + | 23162 + | 23164 + | 23166 + | 23168 + | 23170 + | 23172 + | 23174 + | 23176 + | 23178 + | 23180 + | 23182 + | 23184 + | 23186 + | 23188 + | 23190 + | 23192 + | 23194 + | 23196 + | 23198 + | 23200 + | 23202 + | 23204 + | 23206 + | 23208 + | 23210 + | 23212 + | 23214 + | 23216 + | 23218 + | 23220 + | 23222 + | 23224 + | 23226 + | 23228 + | 23230 + | 23232 + | 23234 + | 23236 + | 23238 + | 23240 + | 23242 + | 23244 + | 23246 + | 23248 + | 23250 + | 23252 + | 23254 + | 23256 + | 23258 + | 23260 + | 23262 + | 23264 + | 23266 + | 23268 + | 23270 + | 23272 + | 23274 + | 23276 + | 23278 + | 23280 + | 23282 + | 23284 + | 23286 + | 23288 + | 23290 + | 23292 + | 23294 + | 23296 + | 23298 + | 23300 + | 23302 + | 23304 + | 23306 + | 23308 + | 23310 + | 23312 + | 23314 + | 23316 + | 23318 + | 23320 + | 23322 + | 23324 + | 23326 + | 23328 + | 23330 + | 23332 + | 23334 + | 23336 + | 23338 + | 23340 + | 23342 + | 23344 + | 23346 + | 23348 + | 23350 + | 23352 + | 23354 + | 23356 + | 23358 + | 23360 + | 23362 + | 23364 + | 23366 + | 23404 + | 23406 + | 23408 + | 23410 + | 23412 + | 23414 + | 23416 + | 23418 + | 23420 + | 23422 + | 23424 + | 23426 + | 23428 + | 23430 + | 23432 + | 23434 + | 23436 + | 23438 + | 23440 + | 23442 + | 23444 + | 23446 + | 23448 + | 23450 + | 23453 + | 23455 + | 23457 + | 23459 + | 23461 + | 23463 + | 23465 + | 23467 + | 23469 + | 23471 + | 23473 + | 23475 + | 23477 + | 23479 + | 23481 + | 23483 + | 23485 + | 23487 + | 23489 + | 23491 + | 23493 + | 23495 + | 23497 + | 23499 + | 23501 + | 23503 + | 23505 + | 23507 + | 23509 + | 23511 + | 23513 + | 23515 + | 23517 + | 23519 + | 23521 + | 23523 + | 23525 + | 23527 + | 23529 + | 23531 + | 23533 + | 23535 + | 23537 + | 23539 + | 23540 + | 23541 + | 23545 + | 23546 + | 23547 + | 23551 + | 23552 + | 23553 + | 23557 + | 23558 + | 23559 + | 23563 + | 23564 + | 23565 + | 23569 + | 23570 + | 23571 + | 23575 + | 23576 + | 23577 + | 23581 + | 23582 + | 23583 + | 23587 + | 23588 + | 23589 + | 23593 + | 23594 + | 23595 + | 23599 + | 23600 + | 23601 + | 23605 + | 23606 + | 23607 + | 23611 + | 23612 + | 23613 + | 23617 + | 23618 + | 23619 + | 23623 + | 23624 + | 23625 + | 23629 + | 23630 + | 23631 + | 23635 + | 23636 + | 23637 + | 23641 + | 23642 + | 23643 + | 23647 + | 23648 + | 23649 + | 23653 + | 23654 + | 23655 + | 23659 + | 23660 + | 23661 + | 23665 + | 23666 + | 23667 + | 23671 + | 23672 + | 23673 + | 23677 + | 23678 + | 23679 + | 23683 + | 23684 + | 23685 + | 23689 + | 23690 + | 23691 + | 23695 + | 23696 + | 23697 + | 23701 + | 23702 + | 23703 + | 23707 + | 23708 + | 23709 + | 23713 + | 23714 + | 23715 + | 23719 + | 23720 + | 23721 + | 23725 + | 23726 + | 23727 + | 23731 + | 23732 + | 23733 + | 23737 + | 23738 + | 23739 + | 23743 + | 23744 + | 23745 + | 23749 + | 23750 + | 23751 + | 23755 + | 23756 + | 23757 + | 23761 + | 23762 + | 23763 + | 23767 + | 23768 + | 23769 + | 23773 + | 23774 + | 23775 + | 23779 + | 23780 + | 23781 + | 23785 + | 23786 + | 23787 + | 23791 + | 23792 + | 23793 + | 23797 + | 23798 + | 23799 + | 23803 + | 23804 + | 23805 + | 23809 + | 23810 + | 23811 + | 23815 + | 23816 + | 23817 + | 23821 + | 23822 + | 23823 + | 23827 + | 23828 + | 23829 + | 23833 + | 23834 + | 23835 + | 23839 + | 23840 + | 23841 + | 23845 + | 23846 + | 23847 + | 23851 + | 23852 + | 23853 + | 23857 + | 23858 + | 23859 + | 23864 + | 23866 + | 23868 + | 23870 + | 23872 + | 23874 + | 23876 + | 23878 + | 23880 + | 23882 + | 23884 + | 23886 + | 23888 + | 23890 + | 23892 + | 23894 + | 23896 + | 23898 + | 23900 + | 23902 + | 23904 + | 23906 + | 23908 + | 23910 + | 23912 + | 23914 + | 23916 + | 23918 + | 23920 + | 23922 + | 23924 + | 23926 + | 23928 + | 23930 + | 23932 + | 23934 + | 23936 + | 23938 + | 23940 + | 23942 + | 23944 + | 23946 + | 23948 + | 23950 + | 23951 + | 23952 + | 23956 + | 23957 + | 23958 + | 23962 + | 23963 + | 23964 + | 23968 + | 23969 + | 23970 + | 23974 + | 23975 + | 23976 + | 23980 + | 23981 + | 23982 + | 23986 + | 23987 + | 23988 + | 23992 + | 23993 + | 23994 + | 23998 + | 23999 + | 24000 + | 24004 + | 24005 + | 24006 + | 24010 + | 24011 + | 24012 + | 24016 + | 24017 + | 24018 + | 24022 + | 24023 + | 24024 + | 24028 + | 24029 + | 24030 + | 24034 + | 24035 + | 24036 + | 24040 + | 24041 + | 24042 + | 24046 + | 24047 + | 24048 + | 24052 + | 24053 + | 24054 + | 24058 + | 24059 + | 24060 + | 24064 + | 24065 + | 24066 + | 24070 + | 24071 + | 24072 + | 24076 + | 24077 + | 24078 + | 24082 + | 24083 + | 24084 + | 24088 + | 24089 + | 24090 + | 24094 + | 24095 + | 24096 + | 24100 + | 24101 + | 24102 + | 24106 + | 24107 + | 24108 + | 24112 + | 24113 + | 24114 + | 24118 + | 24119 + | 24120 + | 24124 + | 24125 + | 24126 + | 24130 + | 24131 + | 24132 + | 24136 + | 24137 + | 24138 + | 24142 + | 24143 + | 24144 + | 24148 + | 24149 + | 24150 + | 24154 + | 24155 + | 24156 + | 24160 + | 24161 + | 24162 + | 24166 + | 24167 + | 24168 + | 24172 + | 24173 + | 24174 + | 24178 + | 24179 + | 24180 + | 24184 + | 24185 + | 24186 + | 24190 + | 24191 + | 24192 + | 24196 + | 24197 + | 24198 + | 24202 + | 24203 + | 24204 + | 24208 + | 24209 + | 24210 + | 24214 + | 24215 + | 24216 + | 24220 + | 24221 + | 24222 + | 24226 + | 24227 + | 24228 + | 24232 + | 24233 + | 24234 + | 24238 + | 24239 + | 24240 + | 24244 + | 24245 + | 24246 + | 24250 + | 24251 + | 24252 + | 24256 + | 24257 + | 24258 + | 24262 + | 24263 + | 24264 + | 24268 + | 24269 + | 24270 + | 24276 + | 24278 + | 24280 + | 24282 + | 24284 + | 24286 + | 24288 + | 24290 + | 24292 + | 24294 + | 24296 + | 24298 + | 24300 + | 24302 + | 24304 + | 24306 + | 24308 + | 24310 + | 24312 + | 24314 + | 24316 + | 24318 + | 24320 + | 24322 + | 24324 + | 24326 + | 24328 + | 24330 + | 24332 + | 24334 + | 24336 + | 24338 + | 24340 + | 24342 + | 24344 + | 24346 + | 24348 + | 24350 + | 24352 + | 24354 + | 24356 + | 24358 + | 24360 + | 24362 + | 24363 + | 24364 + | 24368 + | 24369 + | 24370 + | 24374 + | 24375 + | 24376 + | 24380 + | 24381 + | 24382 + | 24386 + | 24387 + | 24388 + | 24392 + | 24393 + | 24394 + | 24398 + | 24399 + | 24400 + | 24404 + | 24405 + | 24406 + | 24410 + | 24411 + | 24412 + | 24416 + | 24417 + | 24418 + | 24422 + | 24423 + | 24424 + | 24428 + | 24429 + | 24430 + | 24434 + | 24435 + | 24436 + | 24440 + | 24441 + | 24442 + | 24446 + | 24447 + | 24448 + | 24452 + | 24453 + | 24454 + | 24458 + | 24459 + | 24460 + | 24464 + | 24465 + | 24466 + | 24470 + | 24471 + | 24472 + | 24476 + | 24477 + | 24478 + | 24482 + | 24483 + | 24484 + | 24488 + | 24489 + | 24490 + | 24494 + | 24495 + | 24496 + | 24500 + | 24501 + | 24502 + | 24506 + | 24507 + | 24508 + | 24512 + | 24513 + | 24514 + | 24518 + | 24519 + | 24520 + | 24524 + | 24525 + | 24526 + | 24530 + | 24531 + | 24532 + | 24536 + | 24537 + | 24538 + | 24542 + | 24543 + | 24544 + | 24548 + | 24549 + | 24550 + | 24554 + | 24555 + | 24556 + | 24560 + | 24561 + | 24562 + | 24566 + | 24567 + | 24568 + | 24572 + | 24573 + | 24574 + | 24578 + | 24579 + | 24580 + | 24584 + | 24585 + | 24586 + | 24590 + | 24591 + | 24592 + | 24596 + | 24597 + | 24598 + | 24602 + | 24603 + | 24604 + | 24608 + | 24609 + | 24610 + | 24614 + | 24615 + | 24616 + | 24620 + | 24621 + | 24622 + | 24626 + | 24627 + | 24628 + | 24632 + | 24633 + | 24634 + | 24638 + | 24639 + | 24640 + | 24644 + | 24645 + | 24646 + | 24650 + | 24651 + | 24652 + | 24656 + | 24657 + | 24658 + | 24662 + | 24663 + | 24664 + | 24668 + | 24669 + | 24670 + | 24674 + | 24675 + | 24676 + | 24680 + | 24681 + | 24682 + | 24690 + | 24692 + | 24694 + | 24696 + | 24698 + | 24700 + | 24702 + | 24704 + | 24706 + | 24708 + | 24710 + | 24712 + | 24714 + | 24716 + | 24718 + | 24720 + | 24722 + | 24724 + | 24726 + | 24728 + | 24730 + | 24732 + | 24734 + | 24736 + | 24738 + | 24740 + | 24742 + | 24744 + | 24746 + | 24748 + | 24750 + | 24752 + | 24754 + | 24756 + | 24758 + | 24760 + | 24762 + | 24764 + | 24766 + | 24768 + | 24770 + | 24772 + | 24774 + | 24776 + | 24778 + | 24780 + | 24782 + | 24784 + | 24786 + | 24788 + | 24790 + | 24792 + | 24794 + | 24796 + | 24798 + | 24800 + | 24802 + | 24804 + | 24806 + | 24808 + | 24810 + | 24812 + | 24814 + | 24816 + | 24818 + | 24820 + | 24822 + | 24824 + | 24826 + | 24828 + | 24830 + | 24832 + | 24834 + | 24836 + | 24838 + | 24840 + | 24842 + | 24844 + | 24846 + | 24848 + | 24850 + | 24852 + | 24854 + | 24856 + | 24858 + | 24860 + | 24862 + | 24864 + | 24866 + | 24868 + | 24870 + | 24872 + | 24874 + | 24876 + | 24878 + | 24880 + | 24882 + | 24884 + | 24886 + | 24888 + | 24890 + | 24892 + | 24894 + | 24896 + | 24898 + | 24900 + | 24902 + | 24904 + | 24906 + | 24908 + | 24910 + | 24912 + | 24914 + | 24916 + | 24918 + | 24920 + | 24922 + | 24924 + | 24926 + | 24928 + | 24930 + | 24932 + | 24934 + | 24936 + | 24938 + | 24940 + | 24942 + | 24944 + | 24946 + | 24948 + | 24950 + | 24952 + | 24954 + | 24956 + | 24958 + | 24960 + | 24962 + | 24964 + | 24966 + | 24968 + | 24970 + | 24972 + | 24974 + | 24976 + | 24978 + | 24980 + | 24982 + | 24984 + | 24986 + | 24988 + | 24990 + | 24992 + | 24994 + | 24996 + | 24998 + | 25000 + | 25002 + | 25004 + | 25006 + | 25008 + | 25010 + | 25012 + | 25014 + | 25016 + | 25018 + | 25020 + | 25022 + | 25024 + | 25026 + | 25028 + | 25030 + | 25032 + | 25034 + | 25036 + | 25038 + | 25040 + | 25042 + | 25044 + | 25046 + | 25048 + | 25050 + | 25052 + | 25054 + | 25056 + | 25058 + | 25060 + | 25062 + | 25064 + | 25066 + | 25068 + | 25070 + | 25072 + | 25074 + | 25076 + | 25078 + | 25080 + | 25082 + | 25084 + | 25086 + | 25088 + | 25090 + | 25092 + | 25094 + | 25096 + | 25098 + | 25100 + | 25102 + | 25104 + | 25106 + | 25108 + | 25110 + | 25112 + | 25114 + | 25116 + | 25118 + | 25120 + | 25122 + | 25124 + | 25126 + | 25128 + | 25130 + | 25132 + | 25134 + | 25136 + | 25138 + | 25140 + | 25142 + | 25144 + | 25146 + | 25148 + | 25150 + | 25152 + | 25154 + | 25156 + | 25158 + | 25160 + | 25162 + | 25164 + | 25166 + | 25168 + | 25171 + | 25172 + | 25175 + | 25176 + | 25179 + | 25180 + | 25183 + | 25184 + | 25187 + | 25188 + | 25191 + | 25192 + | 25195 + | 25196 + | 25199 + | 25200 + | 25203 + | 25204 + | 25207 + | 25208 + | 25211 + | 25212 + | 25215 + | 25216 + | 25219 + | 25220 + | 25223 + | 25224 + | 25227 + | 25228 + | 25231 + | 25232 + | 25235 + | 25236 + | 25239 + | 25240 + | 25243 + | 25244 + | 25247 + | 25248 + | 25251 + | 25252 + | 25255 + | 25256 + | 25259 + | 25260 + | 25263 + | 25264 + | 25267 + | 25268 + | 25271 + | 25272 + | 25275 + | 25276 + | 25279 + | 25280 + | 25283 + | 25284 + | 25287 + | 25288 + | 25291 + | 25292 + | 25295 + | 25296 + | 25301 + | 25303 + | 25305 + | 25307 + | 25327 + | 25329 + | 25331 + | 25333 + | 25335 + | 25337 + | 25339 + | 25341 + | 25343 + | 25345 + | 25347 + | 25349 + | 25351 + | 25353 + | 25355 + | 25357 + | 25359 + | 25361 + | 25363 + | 25365 + | 25367 + | 25369 + | 25371 + | 25373 + | 25375 + | 25377 + | 25379 + | 25381 + | 25383 + | 25385 + | 25387 + | 25389 + | 25391 + | 25393 + | 25395 + | 25397 + | 25399 + | 25401 + | 25403 + | 25405 + | 25407 + | 25409 + | 25411 + | 25413 + | 25415 + | 25417 + | 25419 + | 25421 + | 25423 + | 25425 + | 25427 + | 25429 + | 25431 + | 25433 + | 25435 + | 25437 + | 25439 + | 25441 + | 25443 + | 25445 + | 25447 + | 25449 + | 25451 + | 25453 + | 25455 + | 25457 + | 25459 + | 25461 + | 25463 + | 25465 + | 25467 + | 25469 + | 25471 + | 25473 + | 25475 + | 25477 + | 25479 + | 25481 + | 25483 + | 25485 + | 25487 + | 25489 + | 25491 + | 25493 + | 25495 + | 25497 + | 25499 + | 25501 + | 25503 + | 25505 + | 25507 + | 25509 + | 25511 + | 25513 + | 25515 + | 25517 + | 25519 + | 25521 + | 25523 + | 25525 + | 25527 + | 25529 + | 25531 + | 25533 + | 25535 + | 25537 + | 25539 + | 25541 + | 25543 + | 25545 + | 25547 + | 25549 + | 25551 + | 25553 + | 25555 + | 25557 + | 25559 + | 25561 + | 25563 + | 25565 + | 25567 + | 25569 + | 25571 + | 25573 + | 25575 + | 25577 + | 25579 + | 25581 + | 25583 + | 25585 + | 25587 + | 25589 + | 25591 + | 25593 + | 25595 + | 25597 + | 25599 + | 25601 + | 25603 + | 25605 + | 25607 + | 25609 + | 25611 + | 25613 + | 25615 + | 25617 + | 25619 + | 25621 + | 25623 + | 25625 + | 25627 + | 25629 + | 25631 + | 25633 + | 25635 + | 25637 + | 25639 + | 25641 + | 25643 + | 25645 + | 25647 + | 25649 + | 25651 + | 25653 + | 25655 + | 25657 + | 25659 + | 25661 + | 25663 + | 25665 + | 25667 + | 25669 + | 25679 + | 25681 + | 25683 + | 25685 + | 25687 + | 25689 + | 25691 + | 25693 + | 25695 + | 25697 + | 25699 + | 25701 + | 25703 + | 25705 + | 25707 + | 25709 + | 25711 + | 25713 + | 25715 + | 25717 + | 25719 + | 25721 + | 25723 + | 25725 + | 25727 + | 25729 + | 25731 + | 25733 + | 25735 + | 25737 + | 25739 + | 25741 + | 25743 + | 25745 + | 25747 + | 25749 + | 25751 + | 25753 + | 25755 + | 25757 + | 25759 + | 25761 + | 25763 + | 25765 + | 25767 + | 25769 + | 25771 + | 25773 + | 25775 + | 25777 + | 25779 + | 25781 + | 25783 + | 25785 + | 25787 + | 25789 + | 25791 + | 25793 + | 25795 + | 25797 + | 25799 + | 25801 + | 25803 + | 25805 + | 25807 + | 25809 + | 25811 + | 25813 + | 25815 + | 25817 + | 25819 + | 25821 + | 25823 + | 25825 + | 25827 + | 25829 + | 25831 + | 25833 + | 25835 + | 25837 + | 25839 + | 25841 + | 25843 + | 25845 + | 25847 + | 25849 + | 25851 + | 25853 + | 25855 + | 25857 + | 25859 + | 25861 + | 25863 + | 25865 + | 25867 + | 25869 + | 25871 + | 25873 + | 25875 + | 25877 + | 25879 + | 25881 + | 25883 + | 25885 + | 25887 + | 25889 + | 25891 + | 25893 + | 25895 + | 25897 + | 25899 + | 25901 + | 25903 + | 25905 + | 25907 + | 25909 + | 25911 + | 25913 + | 25915 + | 25917 + | 25919 + | 25921 + | 25923 + | 25925 + | 25927 + | 25929 + | 25931 + | 25933 + | 25935 + | 25937 + | 25939 + | 25941 + | 25943 + | 25945 + | 25947 + | 25949 + | 25951 + | 25953 + | 25955 + | 25957 + | 25959 + | 25961 + | 25963 + | 25965 + | 25967 + | 25969 + | 25971 + | 25973 + | 25975 + | 25977 + | 25979 + | 25981 + | 25983 + | 25985 + | 25987 + | 25989 + | 25991 + | 25993 + | 25995 + | 25997 + | 25999 + | 26001 + | 26003 + | 26005 + | 26007 + | 26009 + | 26011 + | 26013 + | 26015 + | 26017 + | 26019 + | 26021 + | 26535 + | 26537 + | 26539 + | 26541 + | 26543 + | 26545 + | 26547 + | 26549 + | 26551 + | 26553 + | 26555 + | 26557 + | 26559 + | 26561 + | 26563 + | 26565 + | 26567 + | 26569 + | 26571 + | 26573 + | 26575 + | 26577 + | 26579 + | 26581 + | 26583 + | 26585 + | 26587 + | 26589 + | 26591 + | 26593 + | 26595 + | 26597 + | 26599 + | 26601 + | 26603 + | 26605 + | 26607 + | 26609 + | 26611 + | 26613 + | 26615 + | 26617 + | 26619 + | 26621 + | 26623 + | 26625 + | 26627 + | 26629 + | 26631 + | 26633 + | 26635 + | 26637 + | 26639 + | 26641 + | 26643 + | 26645 + | 26647 + | 26649 + | 26651 + | 26653 + | 26655 + | 26657 + | 26659 + | 26661 + | 26663 + | 26665 + | 26667 + | 26669 + | 26671 + | 26673 + | 26675 + | 26677 + | 26679 + | 26681 + | 26683 + | 26685 + | 26687 + | 26689 + | 26691 + | 26693 + | 26695 + | 26697 + | 26699 + | 26701 + | 26703 + | 26705 + | 26707 + | 26709 + | 26711 + | 26713 + | 26715 + | 26717 + | 26719 + | 26721 + | 26723 + | 26725 + | 26727 + | 26729 + | 26731 + | 26733 + | 26735 + | 26737 + | 26739 + | 26741 + | 26743 + | 26745 + | 26747 + | 26749 + | 26751 + | 26753 + | 26755 + | 26757 + | 26759 + | 26761 + | 26763 + | 26765 + | 26767 + | 26769 + | 26771 + | 26773 + | 26775 + | 26777 + | 26779 + | 26781 + | 26783 + | 26785 + | 26787 + | 26789 + | 26791 + | 26793 + | 26795 + | 26797 + | 26799 + | 26801 + | 26803 + | 26805 + | 26807 + | 26809 + | 26811 + | 26813 + | 26815 + | 26817 + | 26819 + | 26821 + | 26823 + | 26825 + | 26827 + | 26829 + | 26831 + | 26833 + | 26835 + | 26837 + | 26839 + | 26841 + | 26843 + | 26845 + | 26847 + | 26849 + | 26851 + | 26853 + | 26855 + | 26857 + | 26859 + | 26861 + | 26863 + | 26865 + | 26867 + | 26869 + | 26871 + | 26873 + | 26875 + | 26877 + | 26879 + | 26881 + | 26883 + | 26885 + | 26887 + | 26889 + | 26891 + | 26893 + | 26895 + | 26897 + | 26899 + | 26901 + | 26903 + | 26905 + | 26907 + | 26909 + | 26911 + | 26913 + | 26915 + | 26917 + | 26919 + | 26921 + | 26923 + | 26925 + | 26927 + | 26929 + | 26931 + | 26933 + | 26935 + | 26937 + | 26939 + | 26941 + | 26943 + | 26945 + | 26947 + | 26949 + | 26951 + | 26953 + | 26955 + | 26957 + | 26959 + | 26961 + | 26963 + | 26965 + | 26967 + | 26969 + | 26971 + | 26973 + | 26975 + | 26977 + | 26979 + | 26981 + | 26983 + | 26985 + | 26987 + | 26989 + | 26991 + | 26993 + | 26995 + | 26997 + | 26999 + | 27001 + | 27003 + | 27005 + | 27007 + | 27009 + | 27011 + | 27013 + | 27015 + | 27017 + | 27019 + | 27021 + | 27023 + | 27025 + | 27027 + | 27029 + | 27031 + | 27033 + | 27035 + | 27037 + | 27039 + | 27041 + | 27043 + | 27045 + | 27047 + | 27049 + | 27051 + | 27053 + | 27055 + | 27057 + | 27059 + | 27061 + | 27095 + | 27097 + | 27099 + | 27101 + | 27103 + | 27105 + | 27107 + | 27109 + | 27111 + | 27113 + | 27115 + | 27117 + | 27119 + | 27121 + | 27123 + | 27125 + | 27127 + | 27129 + | 27131 + | 27133 + | 27135 + | 27137 + | 27139 + | 27141 + | 27143 + | 27145 + | 27147 + | 27149 + | 27151 + | 27153 + | 27155 + | 27157 + | 27159 + | 27161 + | 27163 + | 27165 + | 27167 + | 27169 + | 27171 + | 27173 + | 27175 + | 27177 + | 27179 + | 27181 + | 27183 + | 27185 + | 27187 + | 27189 + | 27191 + | 27193 + | 27195 + | 27197 + | 27199 + | 27201 + | 27203 + | 27205 + | 27207 + | 27209 + | 27211 + | 27213 + | 27215 + | 27217 + | 27219 + | 27221 + | 27223 + | 27225 + | 27227 + | 27229 + | 27231 + | 27233 + | 27235 + | 27237 + | 27239 + | 27241 + | 27243 + | 27245 + | 27247 + | 27249 + | 27251 + | 27253 + | 27255 + | 27257 + | 27259 + | 27261 + | 27263 + | 27265 + | 27267 + | 27269 + | 27271 + | 27273 + | 27275 + | 27277 + | 27279 + | 27281 + | 27283 + | 27285 + | 27287 + | 27289 + | 27291 + | 27293 + | 27295 + | 27297 + | 27299 + | 27301 + | 27303 + | 27305 + | 27307 + | 27309 + | 27311 + | 27313 + | 27315 + | 27317 + | 27319 + | 27321 + | 27323 + | 27325 + | 27327 + | 27329 + | 27331 + | 27333 + | 27335 + | 27337 + | 27339 + | 27341 + | 27343 + | 27345 + | 27347 + | 27349 + | 27351 + | 27353 + | 27355 + | 27357 + | 27359 + | 27361 + | 27363 + | 27365 + | 27367 + | 27369 + | 27371 + | 27373 + | 27375 + | 27377 + | 27379 + | 27381 + | 27383 + | 27385 + | 27387 + | 27389 + | 27391 + | 27393 + | 27395 + | 27397 + | 27399 + | 27401 + | 27403 + | 27405 + | 27407 + | 27409 + | 27411 + | 27413 + | 27415 + | 27417 + | 27419 + | 27421 + | 27423 + | 27425 + | 27427 + | 27429 + | 27431 + | 27433 + | 27435 + | 27437 + | 27439 + | 27441 + | 27443 + | 27445 + | 27447 + | 27449 + | 27451 + | 27453 + | 27455 + | 27457 + | 27459 + | 27461 + | 27463 + | 27465 + | 27467 + | 27469 + | 27471 + | 27473 + | 27475 + | 27477 + | 27479 + | 27481 + | 27483 + | 27485 + | 27487 + | 27489 + | 27491 + | 27493 + | 27495 + | 27497 + | 27499 + | 27501 + | 27503 + | 27505 + | 27507 + | 27509 + | 27511 + | 27513 + | 27515 + | 27517 + | 27519 + | 27521 + | 27523 + | 27525 + | 27527 + | 27529 + | 27531 + | 27533 + | 27535 + | 27537 + | 27539 + | 27541 + | 27543 + | 27545 + | 27547 + | 27549 + | 27551 + | 27553 + | 27555 + | 27557 + | 27559 + | 27561 + | 27563 + | 27565 + | 27567 + | 27569 + | 27571 + | 27573 + | 27575 + | 27577 + | 27579 + | 27581 + | 27583 + | 27585 + | 27587 + | 27589 + | 27591 + | 27593 + | 27595 + | 27597 + | 27599 + | 27601 + | 27603 + | 27605 + | 27607 + | 27609 + | 27611 + | 27613 + | 27615 + | 27617 + | 27619 + | 27621 + | 27623 + | 27625 + | 27627 + | 27629 + | 27631 + | 27633 + | 27635 + | 27637 + | 27639 + | 27641 + | 27643 + | 27645 + | 27647 + | 27649 + | 27651 + | 27653 + | 27655 + | 27657 + | 27659 + | 27661 + | 27663 + | 27665 + | 27667 + | 27669 + | 27671 + | 27673 + | 27675 + | 27677 + | 27679 + | 27681 + | 27683 + | 27685 + | 27687 + | 27689 + | 27691 + | 27693 + | 27695 + | 27697 + | 27699 + | 27701 + | 27703 + | 27705 + | 27707 + | 27709 + | 27711 + | 27713 + | 27715 + | 27717 + | 27719 + | 27721 + | 27723 + | 27725 + | 27727 + | 27729 + | 27731 + | 27733 + | 27735 + | 27737 + | 27739 + | 27741 + | 27743 + | 27745 + | 27747 + | 27749 + | 27751 + | 27753 + | 27863 + | 27865 + | 27867 + | 27869 + | 27871 + | 27873 + | 27875 + | 27877 + | 27879 + | 27881 + | 27883 + | 27885 + | 27887 + | 27889 + | 27891 + | 27893 + | 27895 + | 27897 + | 27899 + | 27901 + | 27903 + | 27905 + | 27907 + | 27909 + | 27911 + | 27913 + | 27915 + | 27917 + | 27919 + | 27927 + | 27929 + | 27931 + | 27933 + | 27935 + | 27937 + | 27939 + | 27941 + | 27943 + | 27945 + | 27947 + | 27949 + | 27951 + | 27953 + | 27955 + | 27957 + | 27959 + | 27961 + | 27963 + | 27965 + | 27967 + | 27969 + | 27971 + | 27973 + | 27975 + | 27977 + | 27979 + | 27981 + | 27983 + | 27985 + | 27987 + | 27989 + | 27991 + | 27993 + | 27995 + | 27997 + | 27999 + | 28001 + | 28003 + | 28005 + | 28007 + | 28009 + | 28011 + | 28013 + | 28014 + | 28015 + | 28019 + | 28020 + | 28021 + | 28025 + | 28026 + | 28027 + | 28031 + | 28032 + | 28033 + | 28037 + | 28038 + | 28039 + | 28043 + | 28044 + | 28045 + | 28049 + | 28050 + | 28051 + | 28055 + | 28056 + | 28057 + | 28061 + | 28062 + | 28063 + | 28067 + | 28068 + | 28069 + | 28073 + | 28074 + | 28075 + | 28079 + | 28080 + | 28081 + | 28085 + | 28086 + | 28087 + | 28091 + | 28092 + | 28093 + | 28097 + | 28098 + | 28099 + | 28103 + | 28104 + | 28105 + | 28109 + | 28110 + | 28111 + | 28115 + | 28116 + | 28117 + | 28121 + | 28122 + | 28123 + | 28127 + | 28128 + | 28129 + | 28133 + | 28134 + | 28135 + | 28139 + | 28140 + | 28141 + | 28145 + | 28146 + | 28147 + | 28151 + | 28152 + | 28153 + | 28157 + | 28158 + | 28159 + | 28163 + | 28164 + | 28165 + | 28169 + | 28170 + | 28171 + | 28175 + | 28176 + | 28177 + | 28181 + | 28182 + | 28183 + | 28187 + | 28188 + | 28189 + | 28193 + | 28194 + | 28195 + | 28199 + | 28200 + | 28201 + | 28205 + | 28206 + | 28207 + | 28211 + | 28212 + | 28213 + | 28217 + | 28218 + | 28219 + | 28223 + | 28224 + | 28225 + | 28229 + | 28230 + | 28231 + | 28235 + | 28236 + | 28237 + | 28241 + | 28242 + | 28243 + | 28247 + | 28248 + | 28249 + | 28253 + | 28254 + | 28255 + | 28259 + | 28260 + | 28261 + | 28265 + | 28266 + | 28267 + | 28271 + | 28272 + | 28273 + | 28277 + | 28278 + | 28279 + | 28283 + | 28284 + | 28285 + | 28289 + | 28290 + | 28291 + | 28295 + | 28296 + | 28297 + | 28301 + | 28302 + | 28303 + | 28307 + | 28308 + | 28309 + | 28313 + | 28314 + | 28315 + | 28319 + | 28320 + | 28321 + | 28325 + | 28326 + | 28327 + | 28331 + | 28332 + | 28333 + | 28338 + | 28340 + | 28342 + | 28344 + | 28346 + | 28348 + | 28350 + | 28352 + | 28354 + | 28356 + | 28358 + | 28360 + | 28362 + | 28364 + | 28366 + | 28368 + | 28370 + | 28372 + | 28374 + | 28376 + | 28378 + | 28380 + | 28382 + | 28384 + | 28386 + | 28388 + | 28390 + | 28392 + | 28394 + | 28396 + | 28398 + | 28400 + | 28402 + | 28404 + | 28406 + | 28408 + | 28410 + | 28412 + | 28414 + | 28416 + | 28418 + | 28420 + | 28422 + | 28424 + | 28425 + | 28426 + | 28430 + | 28431 + | 28432 + | 28436 + | 28437 + | 28438 + | 28442 + | 28443 + | 28444 + | 28448 + | 28449 + | 28450 + | 28454 + | 28455 + | 28456 + | 28460 + | 28461 + | 28462 + | 28466 + | 28467 + | 28468 + | 28472 + | 28473 + | 28474 + | 28478 + | 28479 + | 28480 + | 28484 + | 28485 + | 28486 + | 28490 + | 28491 + | 28492 + | 28496 + | 28497 + | 28498 + | 28502 + | 28503 + | 28504 + | 28508 + | 28509 + | 28510 + | 28514 + | 28515 + | 28516 + | 28520 + | 28521 + | 28522 + | 28526 + | 28527 + | 28528 + | 28532 + | 28533 + | 28534 + | 28538 + | 28539 + | 28540 + | 28544 + | 28545 + | 28546 + | 28550 + | 28551 + | 28552 + | 28556 + | 28557 + | 28558 + | 28562 + | 28563 + | 28564 + | 28568 + | 28569 + | 28570 + | 28574 + | 28575 + | 28576 + | 28580 + | 28581 + | 28582 + | 28586 + | 28587 + | 28588 + | 28592 + | 28593 + | 28594 + | 28598 + | 28599 + | 28600 + | 28604 + | 28605 + | 28606 + | 28610 + | 28611 + | 28612 + | 28616 + | 28617 + | 28618 + | 28622 + | 28623 + | 28624 + | 28628 + | 28629 + | 28630 + | 28634 + | 28635 + | 28636 + | 28640 + | 28641 + | 28642 + | 28646 + | 28647 + | 28648 + | 28652 + | 28653 + | 28654 + | 28658 + | 28659 + | 28660 + | 28664 + | 28665 + | 28666 + | 28670 + | 28671 + | 28672 + | 28676 + | 28677 + | 28678 + | 28682 + | 28683 + | 28684 + | 28688 + | 28689 + | 28690 + | 28694 + | 28695 + | 28696 + | 28700 + | 28701 + | 28702 + | 28706 + | 28707 + | 28708 + | 28712 + | 28713 + | 28714 + | 28718 + | 28719 + | 28720 + | 28724 + | 28725 + | 28726 + | 28730 + | 28731 + | 28732 + | 28736 + | 28737 + | 28738 + | 28742 + | 28743 + | 28744 + | 28749 + | 28751 + | 28753 + | 28755 + | 28757 + | 28759 + | 28761 + | 28763 + | 28765 + | 28767 + | 28769 + | 28771 + | 28773 + | 28775 + | 28777 + | 28779 + | 28781 + | 28783 + | 28785 + | 28787 + | 28789 + | 28791 + | 28793 + | 28795 + | 28797 + | 28799 + | 28801 + | 28803 + | 28805 + | 28807 + | 28809 + | 28811 + | 28813 + | 28815 + | 28817 + | 28819 + | 28821 + | 28823 + | 28825 + | 28827 + | 28829 + | 28831 + | 28833 + | 28835 + | 28836 + | 28837 + | 28841 + | 28842 + | 28843 + | 28847 + | 28848 + | 28849 + | 28853 + | 28854 + | 28855 + | 28859 + | 28860 + | 28861 + | 28865 + | 28866 + | 28867 + | 28871 + | 28872 + | 28873 + | 28877 + | 28878 + | 28879 + | 28883 + | 28884 + | 28885 + | 28889 + | 28890 + | 28891 + | 28895 + | 28896 + | 28897 + | 28901 + | 28902 + | 28903 + | 28907 + | 28908 + | 28909 + | 28913 + | 28914 + | 28915 + | 28919 + | 28920 + | 28921 + | 28925 + | 28926 + | 28927 + | 28931 + | 28932 + | 28933 + | 28937 + | 28938 + | 28939 + | 28943 + | 28944 + | 28945 + | 28949 + | 28950 + | 28951 + | 28955 + | 28956 + | 28957 + | 28961 + | 28962 + | 28963 + | 28967 + | 28968 + | 28969 + | 28973 + | 28974 + | 28975 + | 28979 + | 28980 + | 28981 + | 28985 + | 28986 + | 28987 + | 28991 + | 28992 + | 28993 + | 28997 + | 28998 + | 28999 + | 29003 + | 29004 + | 29005 + | 29009 + | 29010 + | 29011 + | 29015 + | 29016 + | 29017 + | 29021 + | 29022 + | 29023 + | 29027 + | 29028 + | 29029 + | 29033 + | 29034 + | 29035 + | 29039 + | 29040 + | 29041 + | 29045 + | 29046 + | 29047 + | 29051 + | 29052 + | 29053 + | 29057 + | 29058 + | 29059 + | 29063 + | 29064 + | 29065 + | 29069 + | 29070 + | 29071 + | 29075 + | 29076 + | 29077 + | 29081 + | 29082 + | 29083 + | 29087 + | 29088 + | 29089 + | 29093 + | 29094 + | 29095 + | 29099 + | 29100 + | 29101 + | 29105 + | 29106 + | 29107 + | 29111 + | 29112 + | 29113 + | 29117 + | 29118 + | 29119 + | 29123 + | 29124 + | 29125 + | 29129 + | 29130 + | 29131 + | 29135 + | 29136 + | 29137 + | 29141 + | 29142 + | 29143 + | 29147 + | 29148 + | 29149 + | 29153 + | 29154 + | 29155 + | 29160 + | 29162 + | 29164 + | 29166 + | 29168 + | 29170 + | 29172 + | 29174 + | 29176 + | 29178 + | 29180 + | 29182 + | 29184 + | 29186 + | 29188 + | 29190 + | 29192 + | 29194 + | 29196 + | 29198 + | 29200 + | 29202 + | 29204 + | 29206 + | 29208 + | 29210 + | 29212 + | 29214 + | 29216 + | 29218 + | 29220 + | 29222 + | 29224 + | 29226 + | 29228 + | 29230 + | 29232 + | 29234 + | 29236 + | 29238 + | 29240 + | 29242 + | 29244 + | 29246 + | 29247 + | 29248 + | 29252 + | 29253 + | 29254 + | 29258 + | 29259 + | 29260 + | 29264 + | 29265 + | 29266 + | 29270 + | 29271 + | 29272 + | 29276 + | 29277 + | 29278 + | 29282 + | 29283 + | 29284 + | 29288 + | 29289 + | 29290 + | 29294 + | 29295 + | 29296 + | 29300 + | 29301 + | 29302 + | 29306 + | 29307 + | 29308 + | 29312 + | 29313 + | 29314 + | 29318 + | 29319 + | 29320 + | 29324 + | 29325 + | 29326 + | 29330 + | 29331 + | 29332 + | 29336 + | 29337 + | 29338 + | 29342 + | 29343 + | 29344 + | 29348 + | 29349 + | 29350 + | 29354 + | 29355 + | 29356 + | 29360 + | 29361 + | 29362 + | 29366 + | 29367 + | 29368 + | 29372 + | 29373 + | 29374 + | 29378 + | 29379 + | 29380 + | 29384 + | 29385 + | 29386 + | 29390 + | 29391 + | 29392 + | 29396 + | 29397 + | 29398 + | 29402 + | 29403 + | 29404 + | 29408 + | 29409 + | 29410 + | 29414 + | 29415 + | 29416 + | 29420 + | 29421 + | 29422 + | 29426 + | 29427 + | 29428 + | 29432 + | 29433 + | 29434 + | 29438 + | 29439 + | 29440 + | 29444 + | 29445 + | 29446 + | 29450 + | 29451 + | 29452 + | 29456 + | 29457 + | 29458 + | 29462 + | 29463 + | 29464 + | 29468 + | 29469 + | 29470 + | 29474 + | 29475 + | 29476 + | 29480 + | 29481 + | 29482 + | 29486 + | 29487 + | 29488 + | 29492 + | 29493 + | 29494 + | 29498 + | 29499 + | 29500 + | 29504 + | 29505 + | 29506 + | 29510 + | 29511 + | 29512 + | 29516 + | 29517 + | 29518 + | 29522 + | 29523 + | 29524 + | 29528 + | 29529 + | 29530 + | 29534 + | 29535 + | 29536 + | 29540 + | 29541 + | 29542 + | 29546 + | 29547 + | 29548 + | 29552 + | 29553 + | 29554 + | 29558 + | 29559 + | 29560 + | 29564 + | 29565 + | 29566 + | 29593 + | 29595 + | 29597 + | 29599 + | 29601 + | 29603 + | 29605 + | 29607 + | 29701 + ) +} +#[inline(always)] pub fn has_random_ticks(state_id: u16) -> bool { __random_ticks_bitset::random_ticks_contains(state_id) } diff --git a/pumpkin-protocol/src/java/client/play/chunk_data.rs b/pumpkin-protocol/src/java/client/play/chunk_data.rs index 23b38d955..05381bd76 100644 --- a/pumpkin-protocol/src/java/client/play/chunk_data.rs +++ b/pumpkin-protocol/src/java/client/play/chunk_data.rs @@ -2,6 +2,7 @@ use crate::WritingError; use crate::codec::bit_set::BitSet; use crate::{ClientPacket, VarInt, ser::NetworkWriteExt}; use pumpkin_data::block_state_remap::remap_block_state_for_version; +use pumpkin_data::packet::CURRENT_MC_VERSION; use pumpkin_data::packet::clientbound::PLAY_LEVEL_CHUNK_WITH_LIGHT; use pumpkin_macros::java_packet; use pumpkin_nbt::END_ID; @@ -62,35 +63,40 @@ impl ClientPacket for CChunkData<'_> { let non_empty_block_count = block_palette.non_air_block_count() as i16; blocks_and_biomes_buf.write_i16_be(non_empty_block_count)?; if version >= &MinecraftVersion::V_26_1 { - // TODO: New in 26.1, fluid count - blocks_and_biomes_buf.write_i16_be(0)?; + // New in 26.1, fluid count + let liquid_count = block_palette.liquid_block_count() as i16; + blocks_and_biomes_buf.write_i16_be(liquid_count)?; } let mut block_network = block_palette.convert_network(); - match &mut block_network.palette { - NetworkPalette::Single(registry_id) => { - *registry_id = remap_block_state_for_version(*registry_id, *version); - } - NetworkPalette::Indirect(palette) => { - for registry_id in palette.iter_mut() { + if version < &CURRENT_MC_VERSION { + match &mut block_network.palette { + NetworkPalette::Single(registry_id) => { *registry_id = remap_block_state_for_version(*registry_id, *version); } - } - NetworkPalette::Direct => { - let bits_per_entry = usize::from(block_network.bits_per_entry); - let values_per_i64 = 64 / bits_per_entry; - let id_mask = (1u64 << bits_per_entry) - 1; + NetworkPalette::Indirect(palette) => { + for registry_id in palette.iter_mut() { + *registry_id = + remap_block_state_for_version(*registry_id, *version); + } + } + NetworkPalette::Direct => { + let bits_per_entry = usize::from(block_network.bits_per_entry); + let values_per_i64 = 64 / bits_per_entry; + let id_mask = (1u64 << bits_per_entry) - 1; - for packed_word in &mut block_network.packed_data { - let mut remapped_word = 0u64; - let packed_word_u64 = *packed_word as u64; - for index in 0..values_per_i64 { - let shift = index * bits_per_entry; - let state_id = ((packed_word_u64 >> shift) & id_mask) as u16; - let remapped_id = remap_block_state_for_version(state_id, *version); - remapped_word |= u64::from(remapped_id) << shift; + for packed_word in &mut block_network.packed_data { + let mut remapped_word = 0u64; + let packed_word_u64 = *packed_word as u64; + for index in 0..values_per_i64 { + let shift = index * bits_per_entry; + let state_id = ((packed_word_u64 >> shift) & id_mask) as u16; + let remapped_id = + remap_block_state_for_version(state_id, *version); + remapped_word |= u64::from(remapped_id) << shift; + } + *packed_word = remapped_word as i64; } - *packed_word = remapped_word as i64; } } } diff --git a/pumpkin-world/src/block/entities/bell.rs b/pumpkin-world/src/block/entities/bell.rs index 53739cca9..a9f59f39e 100644 --- a/pumpkin-world/src/block/entities/bell.rs +++ b/pumpkin-world/src/block/entities/bell.rs @@ -20,8 +20,9 @@ pub struct BellBlockEntity { impl BellBlockEntity { pub const ID: &'static str = "minecraft:bell"; - pub fn new(position: BlockPos) -> Self { - BellBlockEntity { + #[must_use] + pub const fn new(position: BlockPos) -> Self { + Self { position, last_side_hit: AtomicCell::new(None), ring_ticks: AtomicCell::new(0), @@ -38,7 +39,7 @@ impl BellBlockEntity { self.ringing.store(true); } } - pub fn raiders_hear_bell(&self) -> bool { + pub const fn raiders_hear_bell(&self) -> bool { //TODO false diff --git a/pumpkin-world/src/block/entities/brewing_stand.rs b/pumpkin-world/src/block/entities/brewing_stand.rs index d1946b310..204c648fa 100644 --- a/pumpkin-world/src/block/entities/brewing_stand.rs +++ b/pumpkin-world/src/block/entities/brewing_stand.rs @@ -74,7 +74,7 @@ impl BrewingStandBlockEntity { } // Check item recipes first (potion -> splash potion, splash -> lingering) - for recipe in ITEM_RECIPES.iter() { + for recipe in &ITEM_RECIPES { if slot.get_item().id == recipe.from().id && recipe.ingredient().iter().any(|i| i.id == ingredient_id) { @@ -87,7 +87,7 @@ impl BrewingStandBlockEntity { slot.get_data_component::() && let Some(potion_id) = pc.potion_id { - for recipe in POTION_RECIPES.iter() { + for recipe in &POTION_RECIPES { if recipe.from().id as i32 == potion_id && recipe.ingredient().iter().any(|i| i.id == ingredient_id) { @@ -114,7 +114,7 @@ impl BrewingStandBlockEntity { let mut new_stack_opt: Option = None; // Try item recipes first (potion -> splash/lingering) - for recipe in ITEM_RECIPES.iter() { + for recipe in &ITEM_RECIPES { if slot.get_item().id == recipe.from().id && recipe.ingredient().iter().any(|i| i.id == ingredient_id) { @@ -143,7 +143,7 @@ impl BrewingStandBlockEntity { .get_data_component::() && let Some(potion_id) = pc.potion_id { - for recipe in POTION_RECIPES.iter() { + for recipe in &POTION_RECIPES { if recipe.from().id as i32 == potion_id && recipe.ingredient().iter().any(|i| i.id == ingredient_id) { diff --git a/pumpkin-world/src/chunk/format/linear.rs b/pumpkin-world/src/chunk/format/linear.rs index f1bf9e9d1..6c541000a 100644 --- a/pumpkin-world/src/chunk/format/linear.rs +++ b/pumpkin-world/src/chunk/format/linear.rs @@ -119,19 +119,16 @@ impl LinearFileHeader { } } - fn to_bytes(&self) -> Box<[u8]> { - let mut bytes: Vec = Vec::with_capacity(Self::FILE_HEADER_SIZE); - - bytes.put_u8(self.version as u8); - bytes.put_u64(self.newest_timestamp); - bytes.put_u8(self.compression_level); - bytes.put_u16(self.chunks_count); - bytes.put_u32(self.chunks_bytes as u32); - bytes.put_u64(self.region_hash); - - // This should be a clear code error if the size of the header is not the expected - // so we can unwrap the conversion safely or panic the entire program if not - bytes.into_boxed_slice() + fn to_bytes(&self) -> [u8; Self::FILE_HEADER_SIZE] { + let mut bytes = [0u8; Self::FILE_HEADER_SIZE]; + let mut buf = bytes.as_mut_slice(); + buf.put_u8(self.version as u8); + buf.put_u64(self.newest_timestamp); + buf.put_u8(self.compression_level); + buf.put_u16(self.chunks_count); + buf.put_u32(self.chunks_bytes as u32); + buf.put_u64(self.region_hash); + bytes } } diff --git a/pumpkin-world/src/chunk/palette.rs b/pumpkin-world/src/chunk/palette.rs index e26d832cb..455ef9f0e 100644 --- a/pumpkin-world/src/chunk/palette.rs +++ b/pumpkin-world/src/chunk/palette.rs @@ -2,7 +2,7 @@ use std::{collections::HashMap, hash::Hash, iter::repeat_n}; use pumpkin_data::{ Block, BlockState, - block_properties::{has_random_ticks, is_air}, + block_properties::{has_random_ticks, is_air, is_liquid}, chunk::Biome, fluid::Fluid, }; @@ -540,6 +540,25 @@ impl BlockPalette { } } + #[must_use] + pub fn liquid_block_count(&self) -> u16 { + match self { + Self::Homogeneous(registry_id) => { + if is_liquid(*registry_id) { + 0 + } else { + Self::VOLUME as u16 + } + } + Self::Heterogeneous(data) => data + .palette + .iter() + .zip(data.counts.iter()) + .filter_map(|(registry_id, count)| (!is_liquid(*registry_id)).then_some(*count)) + .sum(), + } + } + #[must_use] pub fn from_disk_nbt(nbt: ChunkSectionBlockStates) -> Self { let palette = nbt diff --git a/pumpkin-world/src/chunk_system/chunk_holder.rs b/pumpkin-world/src/chunk_system/chunk_holder.rs index 383648540..5fa3965da 100644 --- a/pumpkin-world/src/chunk_system/chunk_holder.rs +++ b/pumpkin-world/src/chunk_system/chunk_holder.rs @@ -4,7 +4,7 @@ use slotmap::Key; pub struct ChunkHolder { pub target_stage: StagedChunkEnum, - /// Minimum stage required by generation dependencies (e.g. StructureReferences neighbors). + /// Minimum stage required by generation dependencies (e.g. `StructureReferences` neighbors). /// May exceed `target_stage` when this chunk is needed by a neighbor's generation task /// but isn't in the player's view radius. Tasks up to this stage are scheduled but the /// chunk is not made public and is unloaded once the dependency is satisfied. diff --git a/pumpkin-world/src/chunk_system/generation_cache.rs b/pumpkin-world/src/chunk_system/generation_cache.rs index 98a561215..5c1e79b4b 100644 --- a/pumpkin-world/src/chunk_system/generation_cache.rs +++ b/pumpkin-world/src/chunk_system/generation_cache.rs @@ -363,7 +363,7 @@ impl Cache { &dimension, noise_router, global_structure_cache, - ) + ); } StagedChunkEnum::StructureReferences => self.chunks[mid] .get_proto_chunk_mut() diff --git a/pumpkin-world/src/chunk_system/schedule.rs b/pumpkin-world/src/chunk_system/schedule.rs index 7e8c057bd..a83a401d2 100644 --- a/pumpkin-world/src/chunk_system/schedule.rs +++ b/pumpkin-world/src/chunk_system/schedule.rs @@ -59,7 +59,7 @@ pub struct GenerationSchedule { chunk_map: HashMap, unload_chunks: HashSetType, - /// Tasks that are graph-ready (in_degree == 0) but cannot yet run because + /// Tasks that are graph-ready (`in_degree` == 0) but cannot yet run because /// one or more of their required neighbor chunks haven't been delivered yet. /// Parked here and re-queued by `check_waiting_tasks()` as chunk data arrives. waiting_for_chunks: HashSetType, diff --git a/pumpkin-world/src/generation/block_state_provider.rs b/pumpkin-world/src/generation/block_state_provider.rs index ae44a1cb6..859f48562 100644 --- a/pumpkin-world/src/generation/block_state_provider.rs +++ b/pumpkin-world/src/generation/block_state_provider.rs @@ -128,7 +128,7 @@ pub struct PillarBlockStateProvider { } impl PillarBlockStateProvider { - pub fn get(&self, _pos: BlockPos) -> &'static BlockState { + pub const fn get(&self, _pos: BlockPos) -> &'static BlockState { // TODO: random axis self.state } @@ -191,7 +191,7 @@ pub struct SimpleStateProvider { } impl SimpleStateProvider { - pub fn get(&self, _pos: BlockPos) -> &'static BlockState { + pub const fn get(&self, _pos: BlockPos) -> &'static BlockState { self.state } } diff --git a/pumpkin-world/src/generation/feature/features/end_spike.rs b/pumpkin-world/src/generation/feature/features/end_spike.rs index ae645716f..db5887904 100644 --- a/pumpkin-world/src/generation/feature/features/end_spike.rs +++ b/pumpkin-world/src/generation/feature/features/end_spike.rs @@ -47,7 +47,7 @@ impl EndSpikeFeature { let mut spikes = self.spikes.clone(); if spikes.is_empty() { let mut sizes: Vec = (0..10).collect(); - for i in (1..10_usize).rev() { + for i in (1..10usize).rev() { let j = random.next_bounded_i32(i as i32 + 1) as usize; sizes.swap(i, j); } @@ -129,9 +129,9 @@ impl EndSpikeFeature { // Iron-bar cage for guarded spikes: 5x5 walls + open top frame at dy=3. if spike.guarded { - for dy in 0_i32..=3 { - for dx in -2_i32..=2 { - for dz in -2_i32..=2 { + for dy in 0i32..=3 { + for dx in -2i32..=2 { + for dz in -2i32..=2 { // Only place on perimeter walls and the top frame let on_x_wall = dx.abs() == 2; let on_z_wall = dz.abs() == 2; diff --git a/pumpkin-world/src/generation/feature/features/forest_rock.rs b/pumpkin-world/src/generation/feature/features/forest_rock.rs index 52f3efdf8..796b8ef63 100644 --- a/pumpkin-world/src/generation/feature/features/forest_rock.rs +++ b/pumpkin-world/src/generation/feature/features/forest_rock.rs @@ -41,7 +41,7 @@ impl ForestRockFeature { let xr = random.next_bounded_i32(2); let yr = random.next_bounded_i32(2); let zr = random.next_bounded_i32(2); - let threshold = (xr + yr + zr) as f32 * 0.333_f32 + 0.5_f32; + let threshold = (xr + yr + zr) as f32 * 0.333f32 + 0.5f32; let threshold_sq = threshold * threshold; let start = BlockPos::new(pos.0.x - xr, pos.0.y - yr, pos.0.z - zr); diff --git a/pumpkin-world/src/generation/feature/features/underwater_magma.rs b/pumpkin-world/src/generation/feature/features/underwater_magma.rs index cce056d05..bed48088b 100644 --- a/pumpkin-world/src/generation/feature/features/underwater_magma.rs +++ b/pumpkin-world/src/generation/feature/features/underwater_magma.rs @@ -62,7 +62,7 @@ impl UnderwaterMagmaFeature { } // No open horizontal faces - for dir in BlockDirection::horizontal().iter() { + for dir in &BlockDirection::horizontal() { let neighbour = target.offset(dir.to_offset()); let n_id = GenerationCache::get_block_state(chunk, &neighbour.0).to_block_id(); if n_id == Block::WATER || n_id == Block::AIR { diff --git a/pumpkin-world/src/generation/feature/features/vegetation_patch.rs b/pumpkin-world/src/generation/feature/features/vegetation_patch.rs index fe2f99612..e2d4a13f7 100644 --- a/pumpkin-world/src/generation/feature/features/vegetation_patch.rs +++ b/pumpkin-world/src/generation/feature/features/vegetation_patch.rs @@ -25,7 +25,7 @@ pub struct VegetationPatchFeature { impl VegetationPatchFeature { /// Returns the block direction that points "into" the surface (down for floor, up for ceiling). - pub(crate) fn surface_direction(&self) -> pumpkin_data::BlockDirection { + pub(crate) const fn surface_direction(&self) -> pumpkin_data::BlockDirection { match self.surface { VerticalSurfaceType::Floor => pumpkin_data::BlockDirection::Down, VerticalSurfaceType::Ceiling => pumpkin_data::BlockDirection::Up, diff --git a/pumpkin-world/src/generation/noise/router/find_top_surface.rs b/pumpkin-world/src/generation/noise/router/find_top_surface.rs index acab73ede..f586adc84 100644 --- a/pumpkin-world/src/generation/noise/router/find_top_surface.rs +++ b/pumpkin-world/src/generation/noise/router/find_top_surface.rs @@ -17,6 +17,7 @@ pub struct FindTopSurface { } impl FindTopSurface { + #[must_use] pub const fn new( density_index: usize, upper_bound_index: usize, diff --git a/pumpkin-world/src/generation/rule/block_state_match.rs b/pumpkin-world/src/generation/rule/block_state_match.rs index 5c0fc111e..40e124930 100644 --- a/pumpkin-world/src/generation/rule/block_state_match.rs +++ b/pumpkin-world/src/generation/rule/block_state_match.rs @@ -8,7 +8,7 @@ pub struct BlockStateMatchRuleTest { impl BlockStateMatchRuleTest { #[must_use] - pub fn test(&self, state: RawBlockState) -> bool { + pub const fn test(&self, state: RawBlockState) -> bool { state.0 == self.block_state.id } } diff --git a/pumpkin-world/src/generation/structure/placement.rs b/pumpkin-world/src/generation/structure/placement.rs index f53f17dbf..bb6fb86f1 100644 --- a/pumpkin-world/src/generation/structure/placement.rs +++ b/pumpkin-world/src/generation/structure/placement.rs @@ -20,7 +20,7 @@ use crate::generation::noise::router::multi_noise_sampler::MultiNoiseSampler; /// This prevents chunk generation deadlocks by allowing chunks to query a pre-calculated /// mathematical layout in `O(1)` time instead of triggering cascading chunk loads. pub struct GlobalStructureCache { - /// A cached list of mathematically predicted (chunk_x, chunk_z) coordinates. + /// A cached list of mathematically predicted (`chunk_x`, `chunk_z`) coordinates. stronghold_chunks: OnceLock>, } impl GlobalStructureCache { @@ -35,8 +35,7 @@ impl GlobalStructureCache { pub fn get_stronghold_chunks(&self) -> &[(i32, i32)] { self.stronghold_chunks .get() - .map(|v| v.as_slice()) - .unwrap_or(&[]) + .map_or(&[], std::vec::Vec::as_slice) } /// Retrieves the list of chunk coordinates for Concentric Ring structures. diff --git a/pumpkin-world/src/generation/structure/structures/nether_fortress/corridor_balcony.rs b/pumpkin-world/src/generation/structure/structures/nether_fortress/corridor_balcony.rs index d9ab021b1..2a377b14c 100644 --- a/pumpkin-world/src/generation/structure/structures/nether_fortress/corridor_balcony.rs +++ b/pumpkin-world/src/generation/structure/structures/nether_fortress/corridor_balcony.rs @@ -72,7 +72,7 @@ impl StructurePieceBase for CorridorBalconyPiece { // In Java: `i` is 1 for EAST/SOUTH facing, 5 for WEST/NORTH. let i = match self.piece.piece.facing { - Some(BlockDirection::West) | Some(BlockDirection::North) => 5, + Some(BlockDirection::West | BlockDirection::North) => 5, _ => 1, }; diff --git a/pumpkin-world/src/generation/structure/structures/nether_fortress/mod.rs b/pumpkin-world/src/generation/structure/structures/nether_fortress/mod.rs index bd1086811..d16882dc8 100644 --- a/pumpkin-world/src/generation/structure/structures/nether_fortress/mod.rs +++ b/pumpkin-world/src/generation/structure/structures/nether_fortress/mod.rs @@ -117,6 +117,7 @@ impl PieceWeight { } } + #[must_use] pub const fn can_generate(&self) -> bool { self.limit == 0 || self.generated_count < self.limit } @@ -141,6 +142,7 @@ pub enum NetherFortressPieceType { CorridorNetherWartsRoom, } +#[must_use] pub fn get_bridge_piece_weights() -> Vec { vec![ PieceWeight::new(NetherFortressPieceType::Bridge, 30, 0, true), @@ -152,6 +154,7 @@ pub fn get_bridge_piece_weights() -> Vec { ] } +#[must_use] pub fn get_corridor_piece_weights() -> Vec { vec![ PieceWeight::new(NetherFortressPieceType::SmallCorridor, 25, 0, true), @@ -187,6 +190,7 @@ impl NetherFortressPiece { } } + #[must_use] pub const fn is_in_bounds(bb: &BlockBox) -> bool { bb.min.y > 10 } @@ -595,7 +599,7 @@ impl NetherFortressPiece { orientation, self.piece.chain_length, ) { - collector.add_piece(p) + collector.add_piece(p); } return; } diff --git a/pumpkin-world/src/generation/surface/rule.rs b/pumpkin-world/src/generation/surface/rule.rs index 642b05d5a..2f5278c56 100644 --- a/pumpkin-world/src/generation/surface/rule.rs +++ b/pumpkin-world/src/generation/surface/rule.rs @@ -45,7 +45,7 @@ impl BadLandsMaterialRule { pub struct BlockMaterialRule; impl BlockMaterialRule { - pub fn try_apply(state: &'static BlockState) -> &'static BlockState { + pub const fn try_apply(state: &'static BlockState) -> &'static BlockState { state } } diff --git a/pumpkin/Cargo.toml b/pumpkin/Cargo.toml index 6ab8715a9..a3799bad0 100644 --- a/pumpkin/Cargo.toml +++ b/pumpkin/Cargo.toml @@ -88,7 +88,7 @@ tokio-util = { workspace = true, features = ["rt"] } # System details & Rustc version sysinfo = "0.38" -rustc_version_runtime = "0.1.*" +rustc_version_runtime = "0.3" flate2.workspace = true console-subscriber = { workspace = true, optional = true }