diff --git a/Cargo.lock b/Cargo.lock index bc26d53..674fde0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -89,6 +89,24 @@ dependencies = [ "syn", ] +[[package]] +name = "actix-multipart" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9edfb0e7663d7fe18c8d5b668c9c1bcf79176b1dcc9d4da9592503209a6bfb0" +dependencies = [ + "actix-utils", + "actix-web", + "bytes", + "derive_more", + "futures-core", + "httparse", + "local-waker", + "log", + "mime", + "twoway", +] + [[package]] name = "actix-router" version = "0.5.0" @@ -382,6 +400,7 @@ dependencies = [ "libc", "num-integer", "num-traits", + "serde", "time 0.1.44", "winapi", ] @@ -568,6 +587,17 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +[[package]] +name = "futures-macro" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "futures-sink" version = "0.3.21" @@ -587,9 +617,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ "futures-core", + "futures-macro", "futures-task", "pin-project-lite", "pin-utils", + "slab", ] [[package]] @@ -656,6 +688,12 @@ dependencies = [ "walkdir", ] +[[package]] +name = "harsh" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6fce2283849822530a18d7d8eeb1719ac65a27cfb6649c0dc8dfd2d2cc5edfb" + [[package]] name = "hashbrown" version = "0.11.2" @@ -1123,9 +1161,13 @@ name = "rewot" version = "0.1.0" dependencies = [ "actix-files", + "actix-multipart", "actix-web", + "chrono", "clap", + "futures-util", "handlebars", + "harsh", "lazy_static", "log", "rag", @@ -1408,6 +1450,16 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "twoway" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c57ffb460d7c24cd6eda43694110189030a3d1dfe418416d9468fd1c1d290b47" +dependencies = [ + "memchr", + "unchecked-index", +] + [[package]] name = "typenum" version = "1.15.0" @@ -1420,6 +1472,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +[[package]] +name = "unchecked-index" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeba86d422ce181a719445e51872fa30f1f7413b62becb52e95ec91aa262d85c" + [[package]] name = "unicase" version = "2.6.0" diff --git a/Cargo.toml b/Cargo.toml index de17045..0d4ad62 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,9 +7,13 @@ edition = "2021" [dependencies] actix-files = "0.6.0" +actix-multipart = "0.4.0" actix-web = "4.0.1" +chrono = { version = "0.4.19", features = ["serde"] } clap = { version = "3.1.18", features = ["derive"] } +futures-util = "0.3.21" handlebars = { version = "4.2.2", features = ["dir_source"] } +harsh = "0.2.2" lazy_static = "1.4.0" log = { version = "0.4.17", features = ["std"] } rag = { git = "https://gitlab.com/rascul/rag", tag = "v0.2.0" } diff --git a/run.txt b/run.txt new file mode 100644 index 0000000..d070824 --- /dev/null +++ b/run.txt @@ -0,0 +1,18062 @@ +2022-06-20T16:13:01.017-0500 INF Configuration (see --help to change): +2022-06-20T16:13:01.017-0500 INF Options { address: "127.0.0.1", port: 8807, url: "http://localhost:8807", workers: 4 } +2022-06-20T16:13:01.034-0500 INF Starting 4 workers +2022-06-20T16:13:01.034-0500 INF Actix runtime found; starting in Actix runtime +2022-06-20T16:13:07.113-0500 INF wot_log: WotLog { + id: "9rAJZEzjYoXVY", + title: "nothing special", + player: "elam", + public: "", + raw: [ + 0, + 0, + 13, + 163, + 0, + 0, + 0, + 151, + 80, + 108, + 97, + 121, + 101, + 114, + 115, + 32, + 105, + 110, + 32, + 121, + 111, + 117, + 114, + 32, + 90, + 111, + 110, + 101, + 13, + 10, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 13, + 10, + 84, + 117, + 112, + 105, + 107, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 45, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 67, + 101, + 110, + 116, + 114, + 97, + 108, + 32, + 83, + 113, + 117, + 97, + 114, + 101, + 13, + 10, + 69, + 108, + 97, + 109, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 45, + 32, + 82, + 101, + 99, + 101, + 112, + 116, + 105, + 111, + 110, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 81, + 117, + 101, + 101, + 110, + 39, + 115, + 32, + 66, + 108, + 101, + 115, + 115, + 105, + 110, + 103, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 83, + 116, + 114, + 111, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 157, + 0, + 0, + 3, + 49, + 27, + 91, + 51, + 54, + 109, + 82, + 101, + 99, + 101, + 112, + 116, + 105, + 111, + 110, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 81, + 117, + 101, + 101, + 110, + 39, + 115, + 32, + 66, + 108, + 101, + 115, + 115, + 105, + 110, + 103, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 101, + 32, + 117, + 112, + 115, + 116, + 97, + 105, + 114, + 115, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 81, + 117, + 101, + 101, + 110, + 39, + 115, + 32, + 66, + 108, + 101, + 115, + 115, + 105, + 110, + 103, + 32, + 105, + 115, + 32, + 97, + 115, + 32, + 99, + 104, + 97, + 114, + 109, + 105, + 110, + 103, + 32, + 97, + 115, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 109, + 109, + 111, + 110, + 32, + 114, + 111, + 111, + 109, + 46, + 32, + 65, + 10, + 13, + 116, + 104, + 105, + 110, + 32, + 114, + 117, + 103, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 108, + 101, + 110, + 103, + 116, + 104, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 104, + 97, + 108, + 108, + 119, + 97, + 121, + 44, + 32, + 97, + 110, + 100, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 119, + 105, + 110, + 100, + 111, + 119, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 10, + 13, + 119, + 97, + 108, + 108, + 32, + 108, + 101, + 116, + 115, + 32, + 121, + 111, + 117, + 32, + 108, + 111, + 111, + 107, + 32, + 100, + 111, + 119, + 110, + 32, + 111, + 110, + 32, + 116, + 104, + 101, + 32, + 98, + 117, + 115, + 116, + 108, + 105, + 110, + 103, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 89, + 111, + 117, + 32, + 97, + 112, + 112, + 101, + 97, + 114, + 32, + 116, + 111, + 10, + 13, + 98, + 101, + 32, + 102, + 111, + 114, + 116, + 117, + 110, + 97, + 116, + 101, + 32, + 105, + 110, + 32, + 102, + 105, + 110, + 100, + 105, + 110, + 103, + 32, + 97, + 110, + 32, + 101, + 109, + 112, + 116, + 121, + 32, + 114, + 111, + 111, + 109, + 32, + 116, + 111, + 32, + 114, + 101, + 110, + 116, + 44, + 32, + 110, + 111, + 32, + 101, + 97, + 115, + 121, + 32, + 102, + 101, + 97, + 116, + 32, + 105, + 110, + 32, + 116, + 104, + 105, + 115, + 32, + 99, + 114, + 111, + 119, + 100, + 101, + 100, + 10, + 99, + 105, + 116, + 121, + 33, + 32, + 65, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 98, + 111, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 97, + 102, + 102, + 105, + 120, + 101, + 100, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 119, + 97, + 108, + 108, + 44, + 32, + 99, + 111, + 118, + 101, + 114, + 101, + 100, + 32, + 119, + 105, + 116, + 104, + 32, + 110, + 111, + 116, + 105, + 99, + 101, + 115, + 32, + 111, + 102, + 10, + 13, + 99, + 117, + 114, + 114, + 101, + 110, + 116, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 111, + 110, + 32, + 102, + 111, + 114, + 32, + 110, + 101, + 119, + 99, + 111, + 109, + 101, + 114, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 10, + 13, + 13, + 10, + 65, + 32, + 108, + 101, + 100, + 103, + 101, + 114, + 32, + 108, + 105, + 101, + 115, + 32, + 111, + 110, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 115, + 116, + 97, + 110, + 100, + 46, + 13, + 10, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 83, + 32, + 68, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 84, + 104, + 101, + 32, + 99, + 111, + 114, + 112, + 115, + 101, + 32, + 111, + 102, + 32, + 97, + 32, + 114, + 97, + 116, + 32, + 105, + 115, + 32, + 108, + 121, + 105, + 110, + 103, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 65, + 32, + 108, + 97, + 114, + 103, + 101, + 32, + 115, + 108, + 97, + 98, + 32, + 111, + 102, + 32, + 109, + 101, + 97, + 116, + 32, + 104, + 97, + 115, + 32, + 98, + 101, + 101, + 110, + 32, + 112, + 108, + 97, + 99, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 65, + 32, + 108, + 97, + 110, + 116, + 101, + 114, + 110, + 32, + 104, + 97, + 115, + 32, + 98, + 101, + 101, + 110, + 32, + 108, + 101, + 102, + 116, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 98, + 108, + 97, + 99, + 107, + 32, + 99, + 97, + 116, + 32, + 109, + 101, + 97, + 110, + 100, + 101, + 114, + 115, + 32, + 116, + 111, + 32, + 97, + 110, + 32, + 117, + 110, + 107, + 110, + 111, + 119, + 110, + 32, + 100, + 101, + 115, + 116, + 105, + 110, + 97, + 116, + 105, + 111, + 110, + 46, + 10, + 13, + 65, + 32, + 98, + 117, + 108, + 107, + 121, + 32, + 109, + 97, + 110, + 32, + 119, + 105, + 116, + 104, + 32, + 104, + 101, + 97, + 118, + 121, + 45, + 108, + 105, + 100, + 100, + 101, + 100, + 32, + 101, + 121, + 101, + 115, + 32, + 115, + 105, + 116, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 115, + 99, + 114, + 97, + 116, + 99, + 104, + 105, + 110, + 103, + 32, + 97, + 32, + 99, + 97, + 116, + 46, + 10, + 13, + 84, + 104, + 101, + 32, + 105, + 110, + 110, + 107, + 101, + 101, + 112, + 101, + 114, + 32, + 66, + 97, + 115, + 101, + 108, + 32, + 71, + 105, + 108, + 108, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 115, + 109, + 105, + 108, + 105, + 110, + 103, + 32, + 98, + 114, + 111, + 97, + 100, + 108, + 121, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 87, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 83, + 116, + 114, + 111, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 6, + 120, + 0, + 0, + 3, + 231, + 27, + 91, + 51, + 54, + 109, + 84, + 104, + 101, + 32, + 81, + 117, + 101, + 101, + 110, + 39, + 115, + 32, + 66, + 108, + 101, + 115, + 115, + 105, + 110, + 103, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 115, + 116, + 101, + 112, + 32, + 105, + 110, + 116, + 111, + 32, + 116, + 104, + 105, + 115, + 32, + 114, + 101, + 115, + 112, + 101, + 99, + 116, + 97, + 98, + 108, + 101, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 105, + 110, + 110, + 46, + 32, + 84, + 104, + 101, + 32, + 99, + 111, + 109, + 109, + 111, + 110, + 32, + 114, + 111, + 111, + 109, + 32, + 105, + 115, + 32, + 98, + 117, + 115, + 121, + 44, + 10, + 13, + 97, + 108, + 116, + 104, + 111, + 117, + 103, + 104, + 32, + 110, + 111, + 116, + 32, + 111, + 118, + 101, + 114, + 99, + 114, + 111, + 119, + 100, + 101, + 100, + 46, + 32, + 84, + 104, + 101, + 32, + 98, + 97, + 114, + 32, + 112, + 97, + 116, + 114, + 111, + 110, + 115, + 32, + 108, + 111, + 111, + 107, + 32, + 119, + 101, + 108, + 108, + 32, + 101, + 110, + 116, + 101, + 114, + 116, + 97, + 105, + 110, + 101, + 100, + 32, + 98, + 121, + 32, + 116, + 104, + 101, + 10, + 13, + 99, + 111, + 109, + 98, + 105, + 110, + 97, + 116, + 105, + 111, + 110, + 32, + 111, + 102, + 32, + 112, + 108, + 101, + 97, + 115, + 97, + 110, + 116, + 32, + 109, + 117, + 115, + 105, + 99, + 32, + 97, + 110, + 100, + 32, + 115, + 116, + 114, + 111, + 110, + 103, + 32, + 97, + 108, + 101, + 46, + 32, + 84, + 104, + 101, + 114, + 101, + 32, + 115, + 101, + 101, + 109, + 115, + 32, + 116, + 111, + 32, + 98, + 101, + 32, + 115, + 111, + 109, + 101, + 32, + 114, + 111, + 111, + 109, + 10, + 13, + 98, + 121, + 32, + 116, + 104, + 101, + 32, + 98, + 97, + 114, + 32, + 97, + 110, + 100, + 32, + 121, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 116, + 101, + 109, + 112, + 116, + 101, + 100, + 32, + 116, + 111, + 32, + 115, + 105, + 116, + 32, + 102, + 111, + 114, + 32, + 97, + 32, + 102, + 101, + 119, + 32, + 104, + 111, + 117, + 114, + 115, + 32, + 97, + 110, + 100, + 32, + 101, + 110, + 106, + 111, + 121, + 32, + 115, + 111, + 109, + 101, + 10, + 13, + 114, + 101, + 108, + 97, + 120, + 105, + 110, + 103, + 32, + 99, + 111, + 109, + 112, + 97, + 110, + 121, + 46, + 32, + 84, + 104, + 101, + 32, + 105, + 110, + 110, + 32, + 105, + 115, + 32, + 109, + 117, + 99, + 104, + 32, + 108, + 97, + 114, + 103, + 101, + 114, + 32, + 116, + 104, + 97, + 110, + 32, + 105, + 116, + 32, + 97, + 112, + 112, + 101, + 97, + 114, + 101, + 100, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 111, + 117, + 116, + 115, + 105, + 100, + 101, + 46, + 10, + 13, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 100, + 111, + 111, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 107, + 105, + 116, + 99, + 104, + 101, + 110, + 32, + 97, + 115, + 32, + 119, + 101, + 108, + 108, + 32, + 97, + 115, + 32, + 97, + 32, + 115, + 116, + 97, + 105, + 114, + 119, + 97, + 121, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 103, + 117, + 101, + 115, + 116, + 32, + 114, + 111, + 111, + 109, + 115, + 44, + 10, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 114, + 101, + 32, + 105, + 115, + 32, + 97, + 32, + 114, + 111, + 111, + 109, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 101, + 97, + 115, + 116, + 32, + 119, + 104, + 105, + 99, + 104, + 32, + 104, + 97, + 115, + 32, + 118, + 97, + 114, + 105, + 111, + 117, + 115, + 32, + 98, + 97, + 114, + 103, + 97, + 109, + 101, + 115, + 46, + 13, + 10, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 85, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 32, + 99, + 111, + 112, + 112, + 101, + 114, + 32, + 116, + 97, + 112, + 32, + 119, + 105, + 116, + 104, + 32, + 102, + 114, + 101, + 101, + 32, + 97, + 108, + 101, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 65, + 32, + 98, + 111, + 97, + 114, + 100, + 32, + 115, + 104, + 111, + 119, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 114, + 117, + 108, + 101, + 115, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 65, + 32, + 98, + 111, + 97, + 114, + 100, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 111, + 110, + 32, + 97, + 32, + 119, + 97, + 108, + 108, + 32, + 112, + 101, + 112, + 112, + 101, + 114, + 101, + 100, + 32, + 119, + 105, + 116, + 104, + 32, + 116, + 97, + 108, + 101, + 115, + 32, + 111, + 102, + 32, + 103, + 108, + 111, + 114, + 121, + 44, + 32, + 97, + 100, + 118, + 101, + 110, + 116, + 117, + 114, + 101, + 32, + 97, + 110, + 100, + 32, + 104, + 105, + 115, + 116, + 111, + 114, + 121, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 104, + 105, + 102, + 116, + 121, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 102, + 101, + 108, + 108, + 111, + 119, + 32, + 112, + 97, + 116, + 114, + 111, + 108, + 115, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 112, + 105, + 99, + 107, + 105, + 110, + 103, + 32, + 117, + 112, + 32, + 100, + 105, + 115, + 99, + 97, + 114, + 100, + 101, + 100, + 32, + 98, + 101, + 108, + 111, + 110, + 103, + 105, + 110, + 103, + 115, + 46, + 10, + 13, + 65, + 32, + 115, + 104, + 97, + 112, + 101, + 108, + 121, + 32, + 121, + 111, + 117, + 110, + 103, + 32, + 119, + 111, + 109, + 97, + 110, + 32, + 115, + 107, + 105, + 108, + 108, + 102, + 117, + 108, + 108, + 121, + 32, + 119, + 101, + 97, + 118, + 101, + 115, + 32, + 97, + 109, + 111, + 110, + 103, + 115, + 116, + 32, + 116, + 104, + 101, + 32, + 99, + 104, + 97, + 111, + 115, + 44, + 32, + 116, + 97, + 107, + 105, + 110, + 103, + 32, + 111, + 114, + 100, + 101, + 114, + 115, + 46, + 10, + 13, + 65, + 32, + 98, + 97, + 114, + 116, + 101, + 110, + 100, + 101, + 114, + 32, + 115, + 101, + 114, + 118, + 101, + 115, + 32, + 99, + 117, + 115, + 116, + 111, + 109, + 101, + 114, + 115, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 103, + 114, + 101, + 101, + 100, + 121, + 32, + 115, + 109, + 105, + 108, + 101, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 27, + 91, + 51, + 51, + 109, + 68, + 114, + 97, + 122, + 32, + 110, + 97, + 114, + 114, + 97, + 116, + 101, + 115, + 32, + 39, + 107, + 104, + 97, + 115, + 116, + 101, + 114, + 44, + 32, + 108, + 101, + 102, + 116, + 32, + 97, + 32, + 119, + 97, + 114, + 104, + 111, + 114, + 115, + 101, + 32, + 116, + 114, + 101, + 101, + 115, + 32, + 102, + 100, + 32, + 114, + 111, + 97, + 100, + 39, + 27, + 91, + 48, + 109, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 86, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 83, + 116, + 114, + 111, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 157, + 0, + 0, + 1, + 209, + 27, + 91, + 51, + 54, + 109, + 65, + 32, + 87, + 105, + 100, + 101, + 32, + 66, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 116, + 104, + 97, + 116, + 32, + 115, + 116, + 114, + 101, + 116, + 99, + 104, + 101, + 115, + 32, + 97, + 108, + 108, + 32, + 116, + 104, + 101, + 32, + 119, + 97, + 121, + 32, + 97, + 99, + 114, + 111, + 115, + 115, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 84, + 104, + 101, + 32, + 10, + 13, + 101, + 120, + 116, + 114, + 101, + 109, + 101, + 108, + 121, + 32, + 119, + 105, + 100, + 101, + 32, + 114, + 111, + 97, + 100, + 32, + 105, + 115, + 32, + 99, + 117, + 116, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 109, + 105, + 100, + 100, + 108, + 101, + 32, + 98, + 121, + 32, + 97, + 32, + 115, + 116, + 114, + 105, + 112, + 32, + 111, + 102, + 32, + 103, + 114, + 97, + 115, + 115, + 32, + 119, + 105, + 116, + 104, + 32, + 116, + 114, + 101, + 101, + 115, + 32, + 112, + 108, + 97, + 99, + 101, + 100, + 10, + 13, + 101, + 118, + 101, + 110, + 108, + 121, + 32, + 97, + 108, + 108, + 32, + 97, + 108, + 111, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 46, + 32, + 79, + 102, + 102, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 119, + 101, + 115, + 116, + 32, + 121, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 109, + 97, + 107, + 101, + 32, + 111, + 117, + 116, + 32, + 111, + 110, + 101, + 32, + 111, + 102, + 32, + 10, + 13, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 39, + 115, + 32, + 102, + 111, + 117, + 114, + 32, + 103, + 97, + 116, + 101, + 115, + 46, + 32, + 84, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 121, + 111, + 117, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 98, + 114, + 105, + 99, + 107, + 32, + 105, + 110, + 110, + 46, + 32, + 65, + 32, + 115, + 105, + 103, + 110, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 10, + 13, + 97, + 98, + 111, + 118, + 101, + 32, + 116, + 104, + 101, + 32, + 100, + 111, + 111, + 114, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 89, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 83, + 116, + 114, + 111, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 8, + 108, + 0, + 0, + 0, + 134, + 80, + 108, + 97, + 121, + 101, + 114, + 115, + 32, + 105, + 110, + 32, + 121, + 111, + 117, + 114, + 32, + 90, + 111, + 110, + 101, + 13, + 10, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 13, + 10, + 69, + 108, + 97, + 109, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 45, + 32, + 65, + 32, + 87, + 105, + 100, + 101, + 32, + 66, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 13, + 10, + 84, + 117, + 112, + 105, + 107, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 45, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 67, + 101, + 110, + 116, + 114, + 97, + 108, + 32, + 83, + 113, + 117, + 97, + 114, + 101, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 83, + 116, + 114, + 111, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 8, + 110, + 0, + 0, + 1, + 218, + 27, + 91, + 51, + 54, + 109, + 65, + 32, + 87, + 105, + 100, + 101, + 32, + 66, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 98, + 105, + 115, + 101, + 99, + 116, + 115, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 97, + 110, + 100, + 32, + 101, + 120, + 116, + 101, + 110, + 100, + 115, + 32, + 116, + 111, + 32, + 98, + 111, + 116, + 104, + 32, + 116, + 104, + 101, + 32, + 101, + 97, + 115, + 116, + 32, + 97, + 110, + 100, + 32, + 119, + 101, + 115, + 116, + 46, + 32, + 84, + 104, + 101, + 10, + 13, + 114, + 111, + 97, + 100, + 32, + 105, + 115, + 32, + 115, + 101, + 116, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 109, + 101, + 100, + 105, + 97, + 110, + 32, + 111, + 102, + 32, + 103, + 114, + 97, + 115, + 115, + 32, + 97, + 110, + 100, + 32, + 116, + 114, + 101, + 101, + 115, + 46, + 32, + 84, + 104, + 105, + 115, + 32, + 105, + 115, + 32, + 111, + 110, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 98, + 117, + 115, + 105, + 101, + 115, + 116, + 32, + 97, + 114, + 101, + 97, + 115, + 10, + 13, + 105, + 110, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 44, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 32, + 105, + 115, + 32, + 117, + 115, + 117, + 97, + 108, + 108, + 121, + 32, + 99, + 114, + 97, + 119, + 108, + 105, + 110, + 103, + 32, + 119, + 105, + 116, + 104, + 32, + 112, + 101, + 111, + 112, + 108, + 101, + 46, + 32, + 65, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 119, + 105, + 110, + 100, + 105, + 110, + 103, + 10, + 13, + 114, + 111, + 97, + 100, + 32, + 116, + 104, + 114, + 101, + 97, + 100, + 115, + 32, + 115, + 111, + 109, + 101, + 32, + 98, + 117, + 105, + 108, + 100, + 105, + 110, + 103, + 115, + 44, + 32, + 97, + 110, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 111, + 102, + 102, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 114, + 97, + 103, + 103, + 101, + 100, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 109, + 97, + 110, + 32, + 97, + 115, + 107, + 115, + 32, + 102, + 111, + 114, + 32, + 115, + 112, + 97, + 114, + 101, + 32, + 99, + 111, + 105, + 110, + 115, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 90, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 83, + 116, + 114, + 111, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 0, + 229, + 27, + 91, + 51, + 54, + 109, + 87, + 105, + 110, + 100, + 105, + 110, + 103, + 32, + 80, + 97, + 116, + 104, + 32, + 84, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 67, + 105, + 116, + 121, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 115, + 104, + 111, + 114, + 116, + 32, + 97, + 110, + 100, + 32, + 101, + 120, + 116, + 114, + 101, + 109, + 101, + 108, + 121, + 32, + 110, + 97, + 114, + 114, + 111, + 119, + 32, + 115, + 105, + 100, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 32, + 115, + 113, + 117, + 101, + 101, + 122, + 101, + 115, + 32, + 98, + 101, + 116, + 119, + 101, + 101, + 110, + 32, + 115, + 101, + 118, + 101, + 114, + 97, + 108, + 32, + 98, + 117, + 105, + 108, + 100, + 105, + 110, + 103, + 115, + 10, + 13, + 97, + 115, + 32, + 105, + 116, + 32, + 116, + 119, + 105, + 115, + 116, + 115, + 32, + 105, + 116, + 115, + 32, + 119, + 97, + 121, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 114, + 101, + 103, + 105, + 111, + 110, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 83, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 93, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 83, + 116, + 114, + 111, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 1, + 13, + 27, + 91, + 51, + 54, + 109, + 80, + 97, + 116, + 104, + 32, + 84, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 115, + 104, + 111, + 114, + 116, + 32, + 97, + 110, + 100, + 32, + 101, + 120, + 116, + 114, + 101, + 109, + 101, + 108, + 121, + 32, + 110, + 97, + 114, + 114, + 111, + 119, + 32, + 115, + 105, + 100, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 32, + 115, + 113, + 117, + 101, + 101, + 122, + 101, + 115, + 32, + 98, + 101, + 116, + 119, + 101, + 101, + 110, + 32, + 115, + 101, + 118, + 101, + 114, + 97, + 108, + 32, + 98, + 117, + 105, + 108, + 100, + 105, + 110, + 103, + 115, + 10, + 13, + 97, + 115, + 32, + 105, + 116, + 32, + 116, + 119, + 105, + 115, + 116, + 115, + 32, + 105, + 116, + 115, + 32, + 119, + 97, + 121, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 114, + 101, + 103, + 105, + 111, + 110, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 46, + 32, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 10, + 13, + 116, + 104, + 101, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 83, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 83, + 116, + 114, + 111, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 1, + 87, + 27, + 91, + 51, + 54, + 109, + 84, + 104, + 101, + 32, + 83, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 82, + 111, + 97, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 115, + 105, + 100, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 119, + 104, + 105, + 99, + 104, + 32, + 99, + 105, + 114, + 99, + 108, + 101, + 115, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 46, + 10, + 13, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 106, + 117, + 115, + 116, + 32, + 105, + 110, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 112, + 101, + 114, + 105, + 109, + 101, + 116, + 101, + 114, + 32, + 119, + 97, + 108, + 108, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 44, + 32, + 97, + 110, + 100, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 103, + 97, + 116, + 101, + 32, + 106, + 117, + 115, + 116, + 10, + 13, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 101, + 97, + 115, + 116, + 46, + 32, + 65, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 115, + 105, + 100, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 32, + 119, + 105, + 110, + 100, + 115, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 110, + 111, + 114, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 100, + 111, + 103, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 98, + 97, + 114, + 107, + 105, + 110, + 103, + 32, + 102, + 117, + 114, + 105, + 111, + 117, + 115, + 108, + 121, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 7, + 199, + 0, + 0, + 1, + 32, + 27, + 91, + 51, + 54, + 109, + 84, + 104, + 101, + 32, + 83, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 82, + 111, + 97, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 115, + 116, + 114, + 101, + 116, + 99, + 104, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 119, + 104, + 105, + 99, + 104, + 32, + 99, + 105, + 114, + 99, + 108, + 101, + 115, + 32, + 116, + 104, + 101, + 32, + 101, + 110, + 116, + 105, + 114, + 101, + 10, + 13, + 99, + 105, + 116, + 121, + 46, + 32, + 84, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 32, + 119, + 97, + 108, + 108, + 115, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 111, + 118, + 101, + 114, + 32, + 121, + 111, + 117, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 44, + 32, + 97, + 110, + 100, + 32, + 121, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 10, + 13, + 119, + 101, + 97, + 112, + 111, + 110, + 32, + 115, + 116, + 111, + 114, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 110, + 111, + 114, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 114, + 97, + 116, + 116, + 101, + 114, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 104, + 117, + 110, + 116, + 105, + 110, + 103, + 32, + 115, + 104, + 97, + 100, + 111, + 119, + 101, + 121, + 101, + 115, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 91, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 95, + 0, + 0, + 2, + 63, + 27, + 91, + 51, + 54, + 109, + 84, + 104, + 101, + 32, + 83, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 82, + 111, + 97, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 115, + 105, + 100, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 119, + 104, + 105, + 99, + 104, + 32, + 114, + 105, + 110, + 103, + 115, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 46, + 10, + 13, + 84, + 104, + 101, + 32, + 112, + 101, + 114, + 105, + 109, + 101, + 116, + 101, + 114, + 32, + 119, + 97, + 108, + 108, + 32, + 108, + 105, + 101, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 44, + 32, + 114, + 105, + 115, + 105, + 110, + 103, + 32, + 102, + 97, + 114, + 32, + 97, + 98, + 111, + 118, + 101, + 32, + 121, + 111, + 117, + 114, + 32, + 104, + 101, + 97, + 100, + 32, + 97, + 110, + 100, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 10, + 13, + 101, + 97, + 115, + 116, + 32, + 108, + 105, + 101, + 115, + 32, + 116, + 104, + 101, + 32, + 83, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 65, + 32, + 100, + 105, + 109, + 108, + 121, + 32, + 108, + 105, + 116, + 32, + 116, + 97, + 118, + 101, + 114, + 110, + 32, + 108, + 105, + 101, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 110, + 111, + 114, + 116, + 104, + 44, + 10, + 13, + 97, + 110, + 100, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 119, + 101, + 115, + 116, + 32, + 97, + 32, + 108, + 97, + 114, + 103, + 101, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 114, + 105, + 115, + 101, + 115, + 32, + 97, + 98, + 111, + 118, + 101, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 121, + 111, + 117, + 110, + 103, + 32, + 119, + 111, + 109, + 97, + 110, + 32, + 119, + 97, + 108, + 107, + 115, + 32, + 98, + 121, + 46, + 10, + 13, + 65, + 32, + 114, + 97, + 103, + 103, + 101, + 100, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 109, + 97, + 110, + 32, + 97, + 115, + 107, + 115, + 32, + 102, + 111, + 114, + 32, + 115, + 112, + 97, + 114, + 101, + 32, + 99, + 111, + 105, + 110, + 115, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 65, + 32, + 104, + 117, + 110, + 116, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 73, + 108, + 108, + 105, + 97, + 110, + 32, + 115, + 101, + 97, + 114, + 99, + 104, + 101, + 115, + 32, + 102, + 111, + 114, + 32, + 116, + 104, + 101, + 32, + 102, + 97, + 98, + 108, + 101, + 100, + 32, + 72, + 111, + 114, + 110, + 32, + 111, + 102, + 32, + 86, + 97, + 108, + 101, + 114, + 101, + 46, + 13, + 10, + 27, + 91, + 48, + 109, + 13, + 10, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 220, + 0, + 0, + 1, + 28, + 27, + 91, + 51, + 54, + 109, + 66, + 101, + 110, + 100, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 82, + 111, + 97, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 114, + 111, + 97, + 100, + 32, + 99, + 105, + 114, + 99, + 108, + 101, + 115, + 32, + 116, + 104, + 101, + 32, + 101, + 110, + 116, + 105, + 114, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 32, + 84, + 111, + 32, + 111, + 110, + 101, + 32, + 115, + 105, + 100, + 101, + 32, + 121, + 111, + 117, + 32, + 115, + 101, + 101, + 32, + 116, + 104, + 101, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 112, + 97, + 114, + 116, + 115, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 10, + 13, + 99, + 105, + 116, + 121, + 44, + 32, + 97, + 110, + 100, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 111, + 116, + 104, + 101, + 114, + 32, + 121, + 111, + 117, + 32, + 115, + 101, + 101, + 32, + 116, + 104, + 101, + 32, + 112, + 114, + 111, + 116, + 101, + 99, + 116, + 105, + 118, + 101, + 32, + 119, + 97, + 108, + 108, + 115, + 46, + 32, + 84, + 104, + 101, + 32, + 114, + 111, + 97, + 100, + 32, + 99, + 111, + 110, + 116, + 105, + 110, + 117, + 101, + 115, + 32, + 98, + 111, + 116, + 104, + 10, + 13, + 110, + 111, + 114, + 116, + 104, + 32, + 97, + 110, + 100, + 32, + 101, + 97, + 115, + 116, + 46, + 32, + 65, + 32, + 108, + 97, + 114, + 103, + 101, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 114, + 105, + 115, + 101, + 115, + 32, + 116, + 111, + 32, + 121, + 111, + 117, + 114, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 4, + 131, + 0, + 0, + 1, + 118, + 27, + 91, + 51, + 54, + 109, + 83, + 111, + 117, + 116, + 104, + 45, + 87, + 101, + 115, + 116, + 32, + 87, + 97, + 116, + 99, + 104, + 116, + 111, + 119, + 101, + 114, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 105, + 115, + 32, + 97, + 110, + 32, + 101, + 110, + 111, + 114, + 109, + 111, + 117, + 115, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 110, + 101, + 114, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 39, + 115, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 46, + 32, + 65, + 32, + 99, + 117, + 114, + 118, + 105, + 110, + 103, + 10, + 13, + 115, + 116, + 97, + 105, + 114, + 119, + 101, + 108, + 108, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 117, + 112, + 32, + 97, + 108, + 111, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 116, + 111, + 119, + 101, + 114, + 39, + 115, + 32, + 98, + 97, + 115, + 101, + 44, + 32, + 111, + 110, + 116, + 111, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 114, + 111, + 111, + 102, + 46, + 32, + 84, + 104, + 105, + 115, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 119, + 111, + 117, + 108, + 100, + 10, + 13, + 112, + 114, + 111, + 98, + 97, + 98, + 108, + 121, + 32, + 97, + 102, + 102, + 111, + 114, + 100, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 39, + 115, + 32, + 103, + 117, + 97, + 114, + 100, + 115, + 32, + 97, + 32, + 118, + 105, + 101, + 119, + 32, + 111, + 102, + 32, + 115, + 101, + 118, + 101, + 114, + 97, + 108, + 32, + 109, + 105, + 108, + 101, + 115, + 32, + 105, + 110, + 32, + 97, + 108, + 108, + 32, + 100, + 105, + 114, + 101, + 99, + 116, + 105, + 111, + 110, + 115, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 85, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 2, + 57, + 27, + 91, + 51, + 54, + 109, + 79, + 110, + 32, + 116, + 104, + 101, + 32, + 84, + 111, + 119, + 101, + 114, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 99, + 108, + 105, + 109, + 98, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 97, + 105, + 114, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 116, + 111, + 112, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 116, + 111, + 119, + 101, + 114, + 46, + 32, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 115, + 116, + 111, + 110, + 101, + 32, + 114, + 111, + 111, + 102, + 10, + 13, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 119, + 105, + 110, + 100, + 32, + 105, + 115, + 32, + 115, + 116, + 114, + 111, + 110, + 103, + 32, + 97, + 110, + 100, + 32, + 108, + 111, + 117, + 100, + 46, + 32, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 103, + 114, + 101, + 97, + 116, + 32, + 100, + 101, + 97, + 108, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 65, + 110, + 100, + 111, + 114, + 10, + 13, + 99, + 111, + 117, + 110, + 116, + 114, + 121, + 115, + 105, + 100, + 101, + 44, + 32, + 97, + 115, + 32, + 119, + 101, + 108, + 108, + 32, + 97, + 115, + 32, + 103, + 101, + 116, + 116, + 105, + 110, + 103, + 32, + 97, + 32, + 115, + 117, + 112, + 101, + 114, + 98, + 32, + 118, + 105, + 101, + 119, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 105, + 110, + 116, + 101, + 114, + 105, + 111, + 114, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 119, + 97, + 116, + 99, + 104, + 32, + 111, + 117, + 116, + 32, + 111, + 118, + 101, + 114, + 32, + 116, + 104, + 101, + 32, + 119, + 101, + 115, + 116, + 32, + 97, + 110, + 100, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 97, + 112, + 112, + 114, + 111, + 97, + 99, + 104, + 101, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 10, + 13, + 67, + 114, + 101, + 110, + 101, + 108, + 108, + 97, + 116, + 101, + 100, + 32, + 111, + 112, + 101, + 110, + 105, + 110, + 103, + 115, + 32, + 97, + 108, + 111, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 119, + 97, + 108, + 108, + 115, + 32, + 97, + 102, + 102, + 111, + 114, + 100, + 32, + 116, + 104, + 101, + 32, + 118, + 105, + 101, + 119, + 115, + 44, + 32, + 97, + 110, + 100, + 32, + 111, + 110, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 109, + 32, + 105, + 115, + 10, + 13, + 108, + 97, + 114, + 103, + 101, + 32, + 101, + 110, + 111, + 117, + 103, + 104, + 32, + 116, + 111, + 32, + 115, + 113, + 117, + 101, + 101, + 122, + 101, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 68, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 10, + 13, + 65, + 110, + 32, + 97, + 114, + 99, + 104, + 101, + 114, + 32, + 100, + 114, + 97, + 119, + 115, + 32, + 104, + 105, + 115, + 32, + 98, + 111, + 119, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 115, + 116, + 101, + 97, + 100, + 121, + 32, + 104, + 97, + 110, + 100, + 32, + 97, + 110, + 100, + 32, + 97, + 32, + 115, + 104, + 97, + 114, + 112, + 32, + 101, + 121, + 101, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 90, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 4, + 9, + 0, + 0, + 0, + 130, + 80, + 108, + 97, + 121, + 101, + 114, + 115, + 32, + 105, + 110, + 32, + 121, + 111, + 117, + 114, + 32, + 90, + 111, + 110, + 101, + 13, + 10, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 13, + 10, + 69, + 108, + 97, + 109, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 45, + 32, + 79, + 110, + 32, + 116, + 104, + 101, + 32, + 84, + 111, + 119, + 101, + 114, + 13, + 10, + 84, + 117, + 112, + 105, + 107, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 45, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 67, + 101, + 110, + 116, + 114, + 97, + 108, + 32, + 83, + 113, + 117, + 97, + 114, + 101, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 94, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 2, + 57, + 27, + 91, + 51, + 54, + 109, + 79, + 110, + 32, + 116, + 104, + 101, + 32, + 84, + 111, + 119, + 101, + 114, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 99, + 108, + 105, + 109, + 98, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 97, + 105, + 114, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 116, + 111, + 112, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 116, + 111, + 119, + 101, + 114, + 46, + 32, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 115, + 116, + 111, + 110, + 101, + 32, + 114, + 111, + 111, + 102, + 10, + 13, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 119, + 105, + 110, + 100, + 32, + 105, + 115, + 32, + 115, + 116, + 114, + 111, + 110, + 103, + 32, + 97, + 110, + 100, + 32, + 108, + 111, + 117, + 100, + 46, + 32, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 103, + 114, + 101, + 97, + 116, + 32, + 100, + 101, + 97, + 108, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 65, + 110, + 100, + 111, + 114, + 10, + 13, + 99, + 111, + 117, + 110, + 116, + 114, + 121, + 115, + 105, + 100, + 101, + 44, + 32, + 97, + 115, + 32, + 119, + 101, + 108, + 108, + 32, + 97, + 115, + 32, + 103, + 101, + 116, + 116, + 105, + 110, + 103, + 32, + 97, + 32, + 115, + 117, + 112, + 101, + 114, + 98, + 32, + 118, + 105, + 101, + 119, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 105, + 110, + 116, + 101, + 114, + 105, + 111, + 114, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 119, + 97, + 116, + 99, + 104, + 32, + 111, + 117, + 116, + 32, + 111, + 118, + 101, + 114, + 32, + 116, + 104, + 101, + 32, + 119, + 101, + 115, + 116, + 32, + 97, + 110, + 100, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 97, + 112, + 112, + 114, + 111, + 97, + 99, + 104, + 101, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 10, + 13, + 67, + 114, + 101, + 110, + 101, + 108, + 108, + 97, + 116, + 101, + 100, + 32, + 111, + 112, + 101, + 110, + 105, + 110, + 103, + 115, + 32, + 97, + 108, + 111, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 119, + 97, + 108, + 108, + 115, + 32, + 97, + 102, + 102, + 111, + 114, + 100, + 32, + 116, + 104, + 101, + 32, + 118, + 105, + 101, + 119, + 115, + 44, + 32, + 97, + 110, + 100, + 32, + 111, + 110, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 109, + 32, + 105, + 115, + 10, + 13, + 108, + 97, + 114, + 103, + 101, + 32, + 101, + 110, + 111, + 117, + 103, + 104, + 32, + 116, + 111, + 32, + 115, + 113, + 117, + 101, + 101, + 122, + 101, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 68, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 10, + 13, + 65, + 110, + 32, + 97, + 114, + 99, + 104, + 101, + 114, + 32, + 100, + 114, + 97, + 119, + 115, + 32, + 104, + 105, + 115, + 32, + 98, + 111, + 119, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 115, + 116, + 101, + 97, + 100, + 121, + 32, + 104, + 97, + 110, + 100, + 32, + 97, + 110, + 100, + 32, + 97, + 32, + 115, + 104, + 97, + 114, + 112, + 32, + 101, + 121, + 101, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 91, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 20, + 35, + 0, + 0, + 0, + 29, + 89, + 111, + 117, + 32, + 100, + 111, + 32, + 110, + 111, + 116, + 32, + 115, + 101, + 101, + 32, + 116, + 104, + 97, + 116, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 95, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 19, + 146, + 0, + 0, + 1, + 118, + 27, + 91, + 51, + 54, + 109, + 83, + 111, + 117, + 116, + 104, + 45, + 87, + 101, + 115, + 116, + 32, + 87, + 97, + 116, + 99, + 104, + 116, + 111, + 119, + 101, + 114, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 105, + 115, + 32, + 97, + 110, + 32, + 101, + 110, + 111, + 114, + 109, + 111, + 117, + 115, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 114, + 110, + 101, + 114, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 39, + 115, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 46, + 32, + 65, + 32, + 99, + 117, + 114, + 118, + 105, + 110, + 103, + 10, + 13, + 115, + 116, + 97, + 105, + 114, + 119, + 101, + 108, + 108, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 117, + 112, + 32, + 97, + 108, + 111, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 116, + 111, + 119, + 101, + 114, + 39, + 115, + 32, + 98, + 97, + 115, + 101, + 44, + 32, + 111, + 110, + 116, + 111, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 114, + 111, + 111, + 102, + 46, + 32, + 84, + 104, + 105, + 115, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 119, + 111, + 117, + 108, + 100, + 10, + 13, + 112, + 114, + 111, + 98, + 97, + 98, + 108, + 121, + 32, + 97, + 102, + 102, + 111, + 114, + 100, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 39, + 115, + 32, + 103, + 117, + 97, + 114, + 100, + 115, + 32, + 97, + 32, + 118, + 105, + 101, + 119, + 32, + 111, + 102, + 32, + 115, + 101, + 118, + 101, + 114, + 97, + 108, + 32, + 109, + 105, + 108, + 101, + 115, + 32, + 105, + 110, + 32, + 97, + 108, + 108, + 32, + 100, + 105, + 114, + 101, + 99, + 116, + 105, + 111, + 110, + 115, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 85, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 3, + 137, + 0, + 0, + 1, + 28, + 27, + 91, + 51, + 54, + 109, + 66, + 101, + 110, + 100, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 82, + 111, + 97, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 114, + 111, + 97, + 100, + 32, + 99, + 105, + 114, + 99, + 108, + 101, + 115, + 32, + 116, + 104, + 101, + 32, + 101, + 110, + 116, + 105, + 114, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 32, + 84, + 111, + 32, + 111, + 110, + 101, + 32, + 115, + 105, + 100, + 101, + 32, + 121, + 111, + 117, + 32, + 115, + 101, + 101, + 32, + 116, + 104, + 101, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 112, + 97, + 114, + 116, + 115, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 10, + 13, + 99, + 105, + 116, + 121, + 44, + 32, + 97, + 110, + 100, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 111, + 116, + 104, + 101, + 114, + 32, + 121, + 111, + 117, + 32, + 115, + 101, + 101, + 32, + 116, + 104, + 101, + 32, + 112, + 114, + 111, + 116, + 101, + 99, + 116, + 105, + 118, + 101, + 32, + 119, + 97, + 108, + 108, + 115, + 46, + 32, + 84, + 104, + 101, + 32, + 114, + 111, + 97, + 100, + 32, + 99, + 111, + 110, + 116, + 105, + 110, + 117, + 101, + 115, + 32, + 98, + 111, + 116, + 104, + 10, + 13, + 110, + 111, + 114, + 116, + 104, + 32, + 97, + 110, + 100, + 32, + 101, + 97, + 115, + 116, + 46, + 32, + 65, + 32, + 108, + 97, + 114, + 103, + 101, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 114, + 105, + 115, + 101, + 115, + 32, + 116, + 111, + 32, + 121, + 111, + 117, + 114, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 1, + 155, + 0, + 0, + 0, + 253, + 27, + 91, + 51, + 54, + 109, + 65, + 110, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 82, + 111, + 97, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 97, + 32, + 112, + 101, + 114, + 105, + 109, + 101, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 119, + 104, + 105, + 99, + 104, + 32, + 99, + 105, + 114, + 99, + 108, + 101, + 115, + 32, + 116, + 104, + 101, + 32, + 101, + 110, + 116, + 105, + 114, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 84, + 104, + 101, + 10, + 13, + 114, + 111, + 97, + 100, + 32, + 114, + 117, + 110, + 115, + 32, + 111, + 102, + 102, + 32, + 116, + 111, + 119, + 97, + 114, + 100, + 115, + 32, + 116, + 104, + 101, + 32, + 101, + 97, + 115, + 116, + 101, + 114, + 110, + 32, + 103, + 97, + 116, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 110, + 111, + 114, + 116, + 104, + 32, + 97, + 110, + 100, + 32, + 116, + 111, + 119, + 97, + 114, + 100, + 115, + 32, + 97, + 32, + 119, + 97, + 116, + 99, + 104, + 45, + 116, + 111, + 119, + 101, + 114, + 10, + 13, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 97, + 116, + 32, + 97, + 32, + 106, + 117, + 110, + 99, + 116, + 105, + 111, + 110, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 83, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 93, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 3, + 131, + 0, + 0, + 1, + 20, + 27, + 91, + 51, + 54, + 109, + 65, + 110, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 82, + 111, + 97, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 101, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 114, + 117, + 110, + 115, + 32, + 110, + 111, + 114, + 116, + 104, + 32, + 97, + 110, + 100, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 97, + 108, + 108, + 111, + 119, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 116, + 111, + 32, + 101, + 97, + 115, + 105, + 108, + 121, + 32, + 109, + 111, + 118, + 101, + 10, + 13, + 98, + 101, + 116, + 119, + 101, + 101, + 110, + 32, + 112, + 111, + 105, + 110, + 116, + 115, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 119, + 97, + 108, + 108, + 32, + 105, + 102, + 32, + 110, + 101, + 101, + 100, + 115, + 32, + 98, + 101, + 46, + 32, + 84, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 32, + 71, + 97, + 116, + 101, + 32, + 108, + 105, + 101, + 115, + 32, + 111, + 102, + 102, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 110, + 111, + 114, + 116, + 104, + 44, + 10, + 13, + 97, + 110, + 100, + 32, + 97, + 110, + 32, + 105, + 109, + 109, + 101, + 110, + 115, + 101, + 32, + 116, + 111, + 119, + 101, + 114, + 32, + 115, + 116, + 114, + 101, + 116, + 99, + 104, + 101, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 107, + 121, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 83, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 3, + 137, + 0, + 0, + 1, + 146, + 27, + 91, + 51, + 54, + 109, + 65, + 110, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 82, + 111, + 97, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 112, + 101, + 114, + 105, + 109, + 101, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 119, + 104, + 105, + 99, + 104, + 32, + 114, + 105, + 110, + 103, + 115, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 46, + 32, + 84, + 104, + 101, + 32, + 114, + 111, + 97, + 100, + 32, + 114, + 117, + 110, + 115, + 10, + 13, + 115, + 116, + 114, + 97, + 105, + 103, + 104, + 116, + 32, + 110, + 111, + 114, + 116, + 104, + 32, + 97, + 110, + 100, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 97, + 110, + 100, + 32, + 121, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 115, + 111, + 109, + 101, + 32, + 104, + 111, + 117, + 115, + 101, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 101, + 97, + 115, + 116, + 46, + 32, + 84, + 104, + 101, + 10, + 13, + 109, + 97, + 115, + 115, + 105, + 118, + 101, + 32, + 119, + 97, + 108, + 108, + 115, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 32, + 114, + 105, + 115, + 101, + 32, + 97, + 108, + 111, + 110, + 103, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 114, + 111, + 97, + 100, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 119, + 101, + 115, + 116, + 44, + 32, + 97, + 110, + 100, + 32, + 121, + 111, + 117, + 32, + 99, + 97, + 110, + 10, + 13, + 115, + 101, + 101, + 32, + 116, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 110, + 111, + 114, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 83, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 91, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 4, + 131, + 0, + 0, + 3, + 41, + 27, + 91, + 51, + 54, + 109, + 73, + 110, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 101, + 114, + 110, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 106, + 117, + 115, + 116, + 32, + 105, + 110, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 89, + 111, + 117, + 32, + 115, + 116, + 111, + 112, + 32, + 97, + 110, + 100, + 32, + 115, + 116, + 97, + 114, + 101, + 32, + 97, + 116, + 32, + 116, + 104, + 101, + 32, + 115, + 104, + 101, + 101, + 114, + 10, + 13, + 109, + 97, + 103, + 110, + 105, + 116, + 117, + 100, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 99, + 111, + 117, + 108, + 100, + 32, + 115, + 119, + 97, + 108, + 108, + 111, + 119, + 32, + 115, + 101, + 118, + 101, + 114, + 97, + 108, + 32, + 111, + 116, + 104, + 101, + 114, + 32, + 99, + 105, + 116, + 105, + 101, + 115, + 32, + 119, + 104, + 111, + 108, + 101, + 10, + 13, + 119, + 105, + 116, + 104, + 111, + 117, + 116, + 32, + 109, + 117, + 99, + 104, + 32, + 111, + 102, + 32, + 97, + 32, + 114, + 105, + 112, + 112, + 108, + 101, + 46, + 32, + 80, + 101, + 111, + 112, + 108, + 101, + 32, + 97, + 114, + 101, + 32, + 115, + 116, + 114, + 101, + 97, + 109, + 105, + 110, + 103, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 103, + 97, + 116, + 101, + 115, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 10, + 13, + 108, + 111, + 111, + 107, + 115, + 32, + 99, + 114, + 111, + 119, + 100, + 101, + 100, + 32, + 98, + 101, + 121, + 111, + 110, + 100, + 32, + 98, + 101, + 108, + 105, + 101, + 102, + 46, + 32, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 104, + 105, + 103, + 104, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 101, + 110, + 116, + 101, + 114, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 116, + 104, + 101, + 10, + 13, + 73, + 110, + 110, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 114, + 111, + 121, + 97, + 108, + 32, + 80, + 97, + 108, + 97, + 99, + 101, + 46, + 32, + 65, + 110, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 110, + 111, + 114, + 116, + 104, + 32, + 97, + 110, + 100, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 97, + 108, + 111, + 110, + 103, + 10, + 13, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 32, + 119, + 97, + 108, + 108, + 115, + 44, + 32, + 97, + 110, + 100, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 101, + 97, + 115, + 116, + 32, + 105, + 110, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 39, + 115, + 32, + 104, + 101, + 97, + 114, + 116, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 100, + 111, + 103, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 98, + 97, + 114, + 107, + 105, + 110, + 103, + 32, + 102, + 117, + 114, + 105, + 111, + 117, + 115, + 108, + 121, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 89, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 5, + 125, + 0, + 0, + 0, + 32, + 89, + 111, + 117, + 32, + 100, + 111, + 110, + 39, + 116, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 99, + 108, + 111, + 115, + 101, + 100, + 32, + 103, + 97, + 116, + 101, + 46, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 95, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 2, + 196, + 0, + 0, + 0, + 89, + 84, + 104, + 101, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 99, + 105, + 116, + 121, + 103, + 117, + 97, + 114, + 100, + 32, + 104, + 97, + 115, + 32, + 97, + 114, + 114, + 105, + 118, + 101, + 100, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 13, + 10, + 65, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 100, + 111, + 103, + 32, + 108, + 101, + 97, + 118, + 101, + 115, + 32, + 110, + 111, + 114, + 116, + 104, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 94, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 12, + 223, + 0, + 0, + 0, + 152, + 80, + 108, + 97, + 121, + 101, + 114, + 115, + 32, + 105, + 110, + 32, + 121, + 111, + 117, + 114, + 32, + 90, + 111, + 110, + 101, + 13, + 10, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 45, + 13, + 10, + 69, + 108, + 97, + 109, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 45, + 32, + 73, + 110, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 101, + 114, + 110, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 13, + 10, + 84, + 117, + 112, + 105, + 107, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 45, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 67, + 101, + 110, + 116, + 114, + 97, + 108, + 32, + 83, + 113, + 117, + 97, + 114, + 101, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 94, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 3, + 64, + 27, + 91, + 51, + 54, + 109, + 73, + 110, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 101, + 114, + 110, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 106, + 117, + 115, + 116, + 32, + 105, + 110, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 89, + 111, + 117, + 32, + 115, + 116, + 111, + 112, + 32, + 97, + 110, + 100, + 32, + 115, + 116, + 97, + 114, + 101, + 32, + 97, + 116, + 32, + 116, + 104, + 101, + 32, + 115, + 104, + 101, + 101, + 114, + 10, + 13, + 109, + 97, + 103, + 110, + 105, + 116, + 117, + 100, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 99, + 111, + 117, + 108, + 100, + 32, + 115, + 119, + 97, + 108, + 108, + 111, + 119, + 32, + 115, + 101, + 118, + 101, + 114, + 97, + 108, + 32, + 111, + 116, + 104, + 101, + 114, + 32, + 99, + 105, + 116, + 105, + 101, + 115, + 32, + 119, + 104, + 111, + 108, + 101, + 10, + 13, + 119, + 105, + 116, + 104, + 111, + 117, + 116, + 32, + 109, + 117, + 99, + 104, + 32, + 111, + 102, + 32, + 97, + 32, + 114, + 105, + 112, + 112, + 108, + 101, + 46, + 32, + 80, + 101, + 111, + 112, + 108, + 101, + 32, + 97, + 114, + 101, + 32, + 115, + 116, + 114, + 101, + 97, + 109, + 105, + 110, + 103, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 103, + 97, + 116, + 101, + 115, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 10, + 13, + 108, + 111, + 111, + 107, + 115, + 32, + 99, + 114, + 111, + 119, + 100, + 101, + 100, + 32, + 98, + 101, + 121, + 111, + 110, + 100, + 32, + 98, + 101, + 108, + 105, + 101, + 102, + 46, + 32, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 104, + 105, + 103, + 104, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 101, + 110, + 116, + 101, + 114, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 116, + 104, + 101, + 10, + 13, + 73, + 110, + 110, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 114, + 111, + 121, + 97, + 108, + 32, + 80, + 97, + 108, + 97, + 99, + 101, + 46, + 32, + 65, + 110, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 110, + 111, + 114, + 116, + 104, + 32, + 97, + 110, + 100, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 97, + 108, + 111, + 110, + 103, + 10, + 13, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 32, + 119, + 97, + 108, + 108, + 115, + 44, + 32, + 97, + 110, + 100, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 101, + 97, + 115, + 116, + 32, + 105, + 110, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 39, + 115, + 32, + 104, + 101, + 97, + 114, + 116, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 88, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 4, + 132, + 0, + 0, + 0, + 62, + 89, + 111, + 117, + 32, + 115, + 116, + 97, + 114, + 116, + 32, + 112, + 97, + 121, + 105, + 110, + 103, + 32, + 105, + 110, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 116, + 116, + 101, + 110, + 116, + 105, + 111, + 110, + 32, + 116, + 111, + 32, + 121, + 111, + 117, + 114, + 32, + 115, + 117, + 114, + 114, + 111, + 117, + 110, + 100, + 105, + 110, + 103, + 115, + 46, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 93, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 3, + 64, + 27, + 91, + 51, + 54, + 109, + 73, + 110, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 101, + 114, + 110, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 106, + 117, + 115, + 116, + 32, + 105, + 110, + 115, + 105, + 100, + 101, + 32, + 116, + 104, + 101, + 32, + 87, + 101, + 115, + 116, + 32, + 71, + 97, + 116, + 101, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 89, + 111, + 117, + 32, + 115, + 116, + 111, + 112, + 32, + 97, + 110, + 100, + 32, + 115, + 116, + 97, + 114, + 101, + 32, + 97, + 116, + 32, + 116, + 104, + 101, + 32, + 115, + 104, + 101, + 101, + 114, + 10, + 13, + 109, + 97, + 103, + 110, + 105, + 116, + 117, + 100, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 99, + 111, + 117, + 108, + 100, + 32, + 115, + 119, + 97, + 108, + 108, + 111, + 119, + 32, + 115, + 101, + 118, + 101, + 114, + 97, + 108, + 32, + 111, + 116, + 104, + 101, + 114, + 32, + 99, + 105, + 116, + 105, + 101, + 115, + 32, + 119, + 104, + 111, + 108, + 101, + 10, + 13, + 119, + 105, + 116, + 104, + 111, + 117, + 116, + 32, + 109, + 117, + 99, + 104, + 32, + 111, + 102, + 32, + 97, + 32, + 114, + 105, + 112, + 112, + 108, + 101, + 46, + 32, + 80, + 101, + 111, + 112, + 108, + 101, + 32, + 97, + 114, + 101, + 32, + 115, + 116, + 114, + 101, + 97, + 109, + 105, + 110, + 103, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 103, + 97, + 116, + 101, + 115, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 10, + 13, + 108, + 111, + 111, + 107, + 115, + 32, + 99, + 114, + 111, + 119, + 100, + 101, + 100, + 32, + 98, + 101, + 121, + 111, + 110, + 100, + 32, + 98, + 101, + 108, + 105, + 101, + 102, + 46, + 32, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 104, + 105, + 103, + 104, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 99, + 101, + 110, + 116, + 101, + 114, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 116, + 104, + 101, + 10, + 13, + 73, + 110, + 110, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 114, + 111, + 121, + 97, + 108, + 32, + 80, + 97, + 108, + 97, + 99, + 101, + 46, + 32, + 65, + 110, + 32, + 111, + 117, + 116, + 101, + 114, + 32, + 114, + 111, + 97, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 110, + 111, + 114, + 116, + 104, + 32, + 97, + 110, + 100, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 97, + 108, + 111, + 110, + 103, + 10, + 13, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 32, + 119, + 97, + 108, + 108, + 115, + 44, + 32, + 97, + 110, + 100, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 101, + 97, + 115, + 116, + 32, + 105, + 110, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 39, + 115, + 32, + 104, + 101, + 97, + 114, + 116, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 108, + 107, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 10, + 13, + 65, + 32, + 115, + 116, + 111, + 117, + 116, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 103, + 117, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 89, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 14, + 71, + 0, + 0, + 1, + 180, + 27, + 91, + 51, + 54, + 109, + 87, + 101, + 115, + 116, + 101, + 114, + 110, + 32, + 69, + 110, + 100, + 32, + 111, + 102, + 32, + 97, + 32, + 87, + 105, + 100, + 101, + 32, + 66, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 116, + 104, + 101, + 32, + 119, + 101, + 115, + 116, + 101, + 114, + 110, + 32, + 101, + 110, + 100, + 32, + 111, + 102, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 116, + 104, + 97, + 116, + 32, + 115, + 116, + 114, + 101, + 116, + 99, + 104, + 101, + 115, + 32, + 97, + 99, + 114, + 111, + 115, + 115, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 10, + 13, + 84, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 32, + 105, + 115, + 32, + 99, + 117, + 116, + 32, + 105, + 110, + 32, + 116, + 119, + 111, + 32, + 98, + 121, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 115, + 116, + 114, + 105, + 112, + 32, + 111, + 102, + 32, + 103, + 114, + 97, + 115, + 115, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 114, + 111, + 119, + 32, + 111, + 102, + 32, + 116, + 114, + 101, + 101, + 115, + 32, + 116, + 104, + 97, + 116, + 10, + 13, + 114, + 117, + 110, + 115, + 32, + 116, + 104, + 101, + 32, + 108, + 101, + 110, + 103, + 116, + 104, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 46, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 39, + 115, + 32, + 87, + 101, + 115, + 116, + 32, + 71, + 97, + 116, + 101, + 32, + 105, + 115, + 32, + 106, + 117, + 115, + 116, + 32, + 97, + 32, + 102, + 101, + 119, + 32, + 115, + 116, + 101, + 112, + 115, + 32, + 97, + 119, + 97, + 121, + 44, + 10, + 13, + 97, + 110, + 100, + 32, + 121, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 112, + 101, + 116, + 32, + 115, + 116, + 111, + 114, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 90, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 1, + 209, + 27, + 91, + 51, + 54, + 109, + 65, + 32, + 87, + 105, + 100, + 101, + 32, + 66, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 116, + 104, + 97, + 116, + 32, + 115, + 116, + 114, + 101, + 116, + 99, + 104, + 101, + 115, + 32, + 97, + 108, + 108, + 32, + 116, + 104, + 101, + 32, + 119, + 97, + 121, + 32, + 97, + 99, + 114, + 111, + 115, + 115, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 84, + 104, + 101, + 32, + 10, + 13, + 101, + 120, + 116, + 114, + 101, + 109, + 101, + 108, + 121, + 32, + 119, + 105, + 100, + 101, + 32, + 114, + 111, + 97, + 100, + 32, + 105, + 115, + 32, + 99, + 117, + 116, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 109, + 105, + 100, + 100, + 108, + 101, + 32, + 98, + 121, + 32, + 97, + 32, + 115, + 116, + 114, + 105, + 112, + 32, + 111, + 102, + 32, + 103, + 114, + 97, + 115, + 115, + 32, + 119, + 105, + 116, + 104, + 32, + 116, + 114, + 101, + 101, + 115, + 32, + 112, + 108, + 97, + 99, + 101, + 100, + 10, + 13, + 101, + 118, + 101, + 110, + 108, + 121, + 32, + 97, + 108, + 108, + 32, + 97, + 108, + 111, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 46, + 32, + 79, + 102, + 102, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 119, + 101, + 115, + 116, + 32, + 121, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 109, + 97, + 107, + 101, + 32, + 111, + 117, + 116, + 32, + 111, + 110, + 101, + 32, + 111, + 102, + 32, + 10, + 13, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 39, + 115, + 32, + 102, + 111, + 117, + 114, + 32, + 103, + 97, + 116, + 101, + 115, + 46, + 32, + 84, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 121, + 111, + 117, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 98, + 114, + 105, + 99, + 107, + 32, + 105, + 110, + 110, + 46, + 32, + 65, + 32, + 115, + 105, + 103, + 110, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 10, + 13, + 97, + 98, + 111, + 118, + 101, + 32, + 116, + 104, + 101, + 32, + 100, + 111, + 111, + 114, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 91, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 1, + 218, + 27, + 91, + 51, + 54, + 109, + 65, + 32, + 87, + 105, + 100, + 101, + 32, + 66, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 98, + 105, + 115, + 101, + 99, + 116, + 115, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 97, + 110, + 100, + 32, + 101, + 120, + 116, + 101, + 110, + 100, + 115, + 32, + 116, + 111, + 32, + 98, + 111, + 116, + 104, + 32, + 116, + 104, + 101, + 32, + 101, + 97, + 115, + 116, + 32, + 97, + 110, + 100, + 32, + 119, + 101, + 115, + 116, + 46, + 32, + 84, + 104, + 101, + 10, + 13, + 114, + 111, + 97, + 100, + 32, + 105, + 115, + 32, + 115, + 101, + 116, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 109, + 101, + 100, + 105, + 97, + 110, + 32, + 111, + 102, + 32, + 103, + 114, + 97, + 115, + 115, + 32, + 97, + 110, + 100, + 32, + 116, + 114, + 101, + 101, + 115, + 46, + 32, + 84, + 104, + 105, + 115, + 32, + 105, + 115, + 32, + 111, + 110, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 98, + 117, + 115, + 105, + 101, + 115, + 116, + 32, + 97, + 114, + 101, + 97, + 115, + 10, + 13, + 105, + 110, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 44, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 32, + 105, + 115, + 32, + 117, + 115, + 117, + 97, + 108, + 108, + 121, + 32, + 99, + 114, + 97, + 119, + 108, + 105, + 110, + 103, + 32, + 119, + 105, + 116, + 104, + 32, + 112, + 101, + 111, + 112, + 108, + 101, + 46, + 32, + 65, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 119, + 105, + 110, + 100, + 105, + 110, + 103, + 10, + 13, + 114, + 111, + 97, + 100, + 32, + 116, + 104, + 114, + 101, + 97, + 100, + 115, + 32, + 115, + 111, + 109, + 101, + 32, + 98, + 117, + 105, + 108, + 100, + 105, + 110, + 103, + 115, + 44, + 32, + 97, + 110, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 111, + 102, + 102, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 114, + 97, + 103, + 103, + 101, + 100, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 109, + 97, + 110, + 32, + 97, + 115, + 107, + 115, + 32, + 102, + 111, + 114, + 32, + 115, + 112, + 97, + 114, + 101, + 32, + 99, + 111, + 105, + 110, + 115, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 90, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 2, + 143, + 0, + 0, + 0, + 229, + 27, + 91, + 51, + 54, + 109, + 87, + 105, + 110, + 100, + 105, + 110, + 103, + 32, + 80, + 97, + 116, + 104, + 32, + 84, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 67, + 105, + 116, + 121, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 115, + 104, + 111, + 114, + 116, + 32, + 97, + 110, + 100, + 32, + 101, + 120, + 116, + 114, + 101, + 109, + 101, + 108, + 121, + 32, + 110, + 97, + 114, + 114, + 111, + 119, + 32, + 115, + 105, + 100, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 32, + 115, + 113, + 117, + 101, + 101, + 122, + 101, + 115, + 32, + 98, + 101, + 116, + 119, + 101, + 101, + 110, + 32, + 115, + 101, + 118, + 101, + 114, + 97, + 108, + 32, + 98, + 117, + 105, + 108, + 100, + 105, + 110, + 103, + 115, + 10, + 13, + 97, + 115, + 32, + 105, + 116, + 32, + 116, + 119, + 105, + 115, + 116, + 115, + 32, + 105, + 116, + 115, + 32, + 119, + 97, + 121, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 101, + 114, + 110, + 32, + 114, + 101, + 103, + 105, + 111, + 110, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 79, + 117, + 116, + 101, + 114, + 32, + 67, + 105, + 116, + 121, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 83, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 92, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 1, + 149, + 0, + 0, + 0, + 35, + 65, + 108, + 97, + 115, + 44, + 32, + 121, + 111, + 117, + 32, + 99, + 97, + 110, + 110, + 111, + 116, + 32, + 103, + 111, + 32, + 116, + 104, + 97, + 116, + 32, + 119, + 97, + 121, + 46, + 46, + 46, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 94, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 5, + 125, + 0, + 0, + 0, + 61, + 89, + 111, + 117, + 32, + 115, + 116, + 111, + 112, + 32, + 112, + 97, + 121, + 105, + 110, + 103, + 32, + 105, + 110, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 116, + 116, + 101, + 110, + 116, + 105, + 111, + 110, + 32, + 116, + 111, + 32, + 121, + 111, + 117, + 114, + 32, + 115, + 117, + 114, + 114, + 111, + 117, + 110, + 100, + 105, + 110, + 103, + 115, + 46, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 95, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 1, + 149, + 0, + 0, + 1, + 218, + 27, + 91, + 51, + 54, + 109, + 65, + 32, + 87, + 105, + 100, + 101, + 32, + 66, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 105, + 115, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 98, + 105, + 115, + 101, + 99, + 116, + 115, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 32, + 97, + 110, + 100, + 32, + 101, + 120, + 116, + 101, + 110, + 100, + 115, + 32, + 116, + 111, + 32, + 98, + 111, + 116, + 104, + 32, + 116, + 104, + 101, + 32, + 101, + 97, + 115, + 116, + 32, + 97, + 110, + 100, + 32, + 119, + 101, + 115, + 116, + 46, + 32, + 84, + 104, + 101, + 10, + 13, + 114, + 111, + 97, + 100, + 32, + 105, + 115, + 32, + 115, + 101, + 116, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 109, + 101, + 100, + 105, + 97, + 110, + 32, + 111, + 102, + 32, + 103, + 114, + 97, + 115, + 115, + 32, + 97, + 110, + 100, + 32, + 116, + 114, + 101, + 101, + 115, + 46, + 32, + 84, + 104, + 105, + 115, + 32, + 105, + 115, + 32, + 111, + 110, + 101, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 98, + 117, + 115, + 105, + 101, + 115, + 116, + 32, + 97, + 114, + 101, + 97, + 115, + 10, + 13, + 105, + 110, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 44, + 32, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 32, + 105, + 115, + 32, + 117, + 115, + 117, + 97, + 108, + 108, + 121, + 32, + 99, + 114, + 97, + 119, + 108, + 105, + 110, + 103, + 32, + 119, + 105, + 116, + 104, + 32, + 112, + 101, + 111, + 112, + 108, + 101, + 46, + 32, + 65, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 119, + 105, + 110, + 100, + 105, + 110, + 103, + 10, + 13, + 114, + 111, + 97, + 100, + 32, + 116, + 104, + 114, + 101, + 97, + 100, + 115, + 32, + 115, + 111, + 109, + 101, + 32, + 98, + 117, + 105, + 108, + 100, + 105, + 110, + 103, + 115, + 44, + 32, + 97, + 110, + 100, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 111, + 102, + 102, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 114, + 97, + 103, + 103, + 101, + 100, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 109, + 97, + 110, + 32, + 97, + 115, + 107, + 115, + 32, + 102, + 111, + 114, + 32, + 115, + 112, + 97, + 114, + 101, + 32, + 99, + 111, + 105, + 110, + 115, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 91, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 2, + 143, + 0, + 0, + 1, + 209, + 27, + 91, + 51, + 54, + 109, + 65, + 32, + 87, + 105, + 100, + 101, + 32, + 66, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 111, + 110, + 32, + 97, + 32, + 119, + 105, + 100, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 32, + 116, + 104, + 97, + 116, + 32, + 115, + 116, + 114, + 101, + 116, + 99, + 104, + 101, + 115, + 32, + 97, + 108, + 108, + 32, + 116, + 104, + 101, + 32, + 119, + 97, + 121, + 32, + 97, + 99, + 114, + 111, + 115, + 115, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 84, + 104, + 101, + 32, + 10, + 13, + 101, + 120, + 116, + 114, + 101, + 109, + 101, + 108, + 121, + 32, + 119, + 105, + 100, + 101, + 32, + 114, + 111, + 97, + 100, + 32, + 105, + 115, + 32, + 99, + 117, + 116, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 32, + 109, + 105, + 100, + 100, + 108, + 101, + 32, + 98, + 121, + 32, + 97, + 32, + 115, + 116, + 114, + 105, + 112, + 32, + 111, + 102, + 32, + 103, + 114, + 97, + 115, + 115, + 32, + 119, + 105, + 116, + 104, + 32, + 116, + 114, + 101, + 101, + 115, + 32, + 112, + 108, + 97, + 99, + 101, + 100, + 10, + 13, + 101, + 118, + 101, + 110, + 108, + 121, + 32, + 97, + 108, + 108, + 32, + 97, + 108, + 111, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 98, + 111, + 117, + 108, + 101, + 118, + 97, + 114, + 100, + 46, + 32, + 79, + 102, + 102, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 119, + 101, + 115, + 116, + 32, + 121, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 109, + 97, + 107, + 101, + 32, + 111, + 117, + 116, + 32, + 111, + 110, + 101, + 32, + 111, + 102, + 32, + 10, + 13, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 39, + 115, + 32, + 102, + 111, + 117, + 114, + 32, + 103, + 97, + 116, + 101, + 115, + 46, + 32, + 84, + 111, + 32, + 116, + 104, + 101, + 32, + 115, + 111, + 117, + 116, + 104, + 32, + 121, + 111, + 117, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 98, + 114, + 105, + 99, + 107, + 32, + 105, + 110, + 110, + 46, + 32, + 65, + 32, + 115, + 105, + 103, + 110, + 32, + 105, + 115, + 32, + 112, + 111, + 115, + 116, + 101, + 100, + 10, + 13, + 97, + 98, + 111, + 118, + 101, + 32, + 116, + 104, + 101, + 32, + 100, + 111, + 111, + 114, + 46, + 10, + 13, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 87, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 110, + 32, + 111, + 105, + 108, + 32, + 108, + 97, + 109, + 112, + 44, + 32, + 115, + 101, + 116, + 32, + 105, + 110, + 32, + 97, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 99, + 97, + 103, + 101, + 44, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 102, + 114, + 111, + 109, + 32, + 97, + 32, + 104, + 105, + 103, + 104, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 112, + 111, + 108, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 90, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 3, + 166, + 27, + 91, + 51, + 54, + 109, + 84, + 104, + 101, + 32, + 81, + 117, + 101, + 101, + 110, + 39, + 115, + 32, + 66, + 108, + 101, + 115, + 115, + 105, + 110, + 103, + 27, + 91, + 48, + 109, + 13, + 10, + 89, + 111, + 117, + 32, + 115, + 116, + 101, + 112, + 32, + 105, + 110, + 116, + 111, + 32, + 116, + 104, + 105, + 115, + 32, + 114, + 101, + 115, + 112, + 101, + 99, + 116, + 97, + 98, + 108, + 101, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 105, + 110, + 110, + 46, + 32, + 84, + 104, + 101, + 32, + 99, + 111, + 109, + 109, + 111, + 110, + 32, + 114, + 111, + 111, + 109, + 32, + 105, + 115, + 32, + 98, + 117, + 115, + 121, + 44, + 10, + 13, + 97, + 108, + 116, + 104, + 111, + 117, + 103, + 104, + 32, + 110, + 111, + 116, + 32, + 111, + 118, + 101, + 114, + 99, + 114, + 111, + 119, + 100, + 101, + 100, + 46, + 32, + 84, + 104, + 101, + 32, + 98, + 97, + 114, + 32, + 112, + 97, + 116, + 114, + 111, + 110, + 115, + 32, + 108, + 111, + 111, + 107, + 32, + 119, + 101, + 108, + 108, + 32, + 101, + 110, + 116, + 101, + 114, + 116, + 97, + 105, + 110, + 101, + 100, + 32, + 98, + 121, + 32, + 116, + 104, + 101, + 10, + 13, + 99, + 111, + 109, + 98, + 105, + 110, + 97, + 116, + 105, + 111, + 110, + 32, + 111, + 102, + 32, + 112, + 108, + 101, + 97, + 115, + 97, + 110, + 116, + 32, + 109, + 117, + 115, + 105, + 99, + 32, + 97, + 110, + 100, + 32, + 115, + 116, + 114, + 111, + 110, + 103, + 32, + 97, + 108, + 101, + 46, + 32, + 84, + 104, + 101, + 114, + 101, + 32, + 115, + 101, + 101, + 109, + 115, + 32, + 116, + 111, + 32, + 98, + 101, + 32, + 115, + 111, + 109, + 101, + 32, + 114, + 111, + 111, + 109, + 10, + 13, + 98, + 121, + 32, + 116, + 104, + 101, + 32, + 98, + 97, + 114, + 32, + 97, + 110, + 100, + 32, + 121, + 111, + 117, + 32, + 97, + 114, + 101, + 32, + 116, + 101, + 109, + 112, + 116, + 101, + 100, + 32, + 116, + 111, + 32, + 115, + 105, + 116, + 32, + 102, + 111, + 114, + 32, + 97, + 32, + 102, + 101, + 119, + 32, + 104, + 111, + 117, + 114, + 115, + 32, + 97, + 110, + 100, + 32, + 101, + 110, + 106, + 111, + 121, + 32, + 115, + 111, + 109, + 101, + 10, + 13, + 114, + 101, + 108, + 97, + 120, + 105, + 110, + 103, + 32, + 99, + 111, + 109, + 112, + 97, + 110, + 121, + 46, + 32, + 84, + 104, + 101, + 32, + 105, + 110, + 110, + 32, + 105, + 115, + 32, + 109, + 117, + 99, + 104, + 32, + 108, + 97, + 114, + 103, + 101, + 114, + 32, + 116, + 104, + 97, + 110, + 32, + 105, + 116, + 32, + 97, + 112, + 112, + 101, + 97, + 114, + 101, + 100, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 111, + 117, + 116, + 115, + 105, + 100, + 101, + 46, + 10, + 13, + 89, + 111, + 117, + 32, + 99, + 97, + 110, + 32, + 115, + 101, + 101, + 32, + 97, + 32, + 100, + 111, + 111, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 107, + 105, + 116, + 99, + 104, + 101, + 110, + 32, + 97, + 115, + 32, + 119, + 101, + 108, + 108, + 32, + 97, + 115, + 32, + 97, + 32, + 115, + 116, + 97, + 105, + 114, + 119, + 97, + 121, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 103, + 117, + 101, + 115, + 116, + 32, + 114, + 111, + 111, + 109, + 115, + 44, + 10, + 97, + 110, + 100, + 32, + 116, + 104, + 101, + 114, + 101, + 32, + 105, + 115, + 32, + 97, + 32, + 114, + 111, + 111, + 109, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 101, + 97, + 115, + 116, + 32, + 119, + 104, + 105, + 99, + 104, + 32, + 104, + 97, + 115, + 32, + 118, + 97, + 114, + 105, + 111, + 117, + 115, + 32, + 98, + 97, + 114, + 103, + 97, + 109, + 101, + 115, + 46, + 13, + 10, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 78, + 32, + 69, + 32, + 83, + 32, + 85, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 32, + 99, + 111, + 112, + 112, + 101, + 114, + 32, + 116, + 97, + 112, + 32, + 119, + 105, + 116, + 104, + 32, + 102, + 114, + 101, + 101, + 32, + 97, + 108, + 101, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 65, + 32, + 98, + 111, + 97, + 114, + 100, + 32, + 115, + 104, + 111, + 119, + 105, + 110, + 103, + 32, + 116, + 104, + 101, + 32, + 114, + 117, + 108, + 101, + 115, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 65, + 32, + 98, + 111, + 97, + 114, + 100, + 32, + 104, + 97, + 110, + 103, + 115, + 32, + 111, + 110, + 32, + 97, + 32, + 119, + 97, + 108, + 108, + 32, + 112, + 101, + 112, + 112, + 101, + 114, + 101, + 100, + 32, + 119, + 105, + 116, + 104, + 32, + 116, + 97, + 108, + 101, + 115, + 32, + 111, + 102, + 32, + 103, + 108, + 111, + 114, + 121, + 44, + 32, + 97, + 100, + 118, + 101, + 110, + 116, + 117, + 114, + 101, + 32, + 97, + 110, + 100, + 32, + 104, + 105, + 115, + 116, + 111, + 114, + 121, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 115, + 104, + 105, + 102, + 116, + 121, + 32, + 108, + 111, + 111, + 107, + 105, + 110, + 103, + 32, + 102, + 101, + 108, + 108, + 111, + 119, + 32, + 112, + 97, + 116, + 114, + 111, + 108, + 115, + 32, + 116, + 104, + 101, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 112, + 105, + 99, + 107, + 105, + 110, + 103, + 32, + 117, + 112, + 32, + 100, + 105, + 115, + 99, + 97, + 114, + 100, + 101, + 100, + 32, + 98, + 101, + 108, + 111, + 110, + 103, + 105, + 110, + 103, + 115, + 46, + 10, + 13, + 65, + 32, + 115, + 104, + 97, + 112, + 101, + 108, + 121, + 32, + 121, + 111, + 117, + 110, + 103, + 32, + 119, + 111, + 109, + 97, + 110, + 32, + 115, + 107, + 105, + 108, + 108, + 102, + 117, + 108, + 108, + 121, + 32, + 119, + 101, + 97, + 118, + 101, + 115, + 32, + 97, + 109, + 111, + 110, + 103, + 115, + 116, + 32, + 116, + 104, + 101, + 32, + 99, + 104, + 97, + 111, + 115, + 44, + 32, + 116, + 97, + 107, + 105, + 110, + 103, + 32, + 111, + 114, + 100, + 101, + 114, + 115, + 46, + 10, + 13, + 65, + 32, + 98, + 97, + 114, + 116, + 101, + 110, + 100, + 101, + 114, + 32, + 115, + 101, + 114, + 118, + 101, + 115, + 32, + 99, + 117, + 115, + 116, + 111, + 109, + 101, + 114, + 115, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 103, + 114, + 101, + 101, + 100, + 121, + 32, + 115, + 109, + 105, + 108, + 101, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 87, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 0, + 155, + 0, + 0, + 3, + 53, + 27, + 91, + 51, + 54, + 109, + 82, + 101, + 99, + 101, + 112, + 116, + 105, + 111, + 110, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 81, + 117, + 101, + 101, + 110, + 39, + 115, + 32, + 66, + 108, + 101, + 115, + 115, + 105, + 110, + 103, + 27, + 91, + 48, + 109, + 13, + 10, + 84, + 104, + 101, + 32, + 117, + 112, + 115, + 116, + 97, + 105, + 114, + 115, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 81, + 117, + 101, + 101, + 110, + 39, + 115, + 32, + 66, + 108, + 101, + 115, + 115, + 105, + 110, + 103, + 32, + 105, + 115, + 32, + 97, + 115, + 32, + 99, + 104, + 97, + 114, + 109, + 105, + 110, + 103, + 32, + 97, + 115, + 32, + 116, + 104, + 101, + 32, + 99, + 111, + 109, + 109, + 111, + 110, + 32, + 114, + 111, + 111, + 109, + 46, + 32, + 65, + 10, + 13, + 116, + 104, + 105, + 110, + 32, + 114, + 117, + 103, + 32, + 108, + 101, + 97, + 100, + 115, + 32, + 116, + 104, + 114, + 111, + 117, + 103, + 104, + 32, + 116, + 104, + 101, + 32, + 108, + 101, + 110, + 103, + 116, + 104, + 32, + 111, + 102, + 32, + 116, + 104, + 101, + 32, + 104, + 97, + 108, + 108, + 119, + 97, + 121, + 44, + 32, + 97, + 110, + 100, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 119, + 105, + 110, + 100, + 111, + 119, + 32, + 105, + 110, + 32, + 116, + 104, + 101, + 10, + 13, + 119, + 97, + 108, + 108, + 32, + 108, + 101, + 116, + 115, + 32, + 121, + 111, + 117, + 32, + 108, + 111, + 111, + 107, + 32, + 100, + 111, + 119, + 110, + 32, + 111, + 110, + 32, + 116, + 104, + 101, + 32, + 98, + 117, + 115, + 116, + 108, + 105, + 110, + 103, + 32, + 115, + 116, + 114, + 101, + 101, + 116, + 115, + 32, + 111, + 102, + 32, + 67, + 97, + 101, + 109, + 108, + 121, + 110, + 46, + 32, + 89, + 111, + 117, + 32, + 97, + 112, + 112, + 101, + 97, + 114, + 32, + 116, + 111, + 10, + 13, + 98, + 101, + 32, + 102, + 111, + 114, + 116, + 117, + 110, + 97, + 116, + 101, + 32, + 105, + 110, + 32, + 102, + 105, + 110, + 100, + 105, + 110, + 103, + 32, + 97, + 110, + 32, + 101, + 109, + 112, + 116, + 121, + 32, + 114, + 111, + 111, + 109, + 32, + 116, + 111, + 32, + 114, + 101, + 110, + 116, + 44, + 32, + 110, + 111, + 32, + 101, + 97, + 115, + 121, + 32, + 102, + 101, + 97, + 116, + 32, + 105, + 110, + 32, + 116, + 104, + 105, + 115, + 32, + 99, + 114, + 111, + 119, + 100, + 101, + 100, + 10, + 99, + 105, + 116, + 121, + 33, + 32, + 65, + 32, + 119, + 111, + 111, + 100, + 101, + 110, + 32, + 98, + 111, + 97, + 114, + 100, + 32, + 105, + 115, + 32, + 97, + 102, + 102, + 105, + 120, + 101, + 100, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 119, + 97, + 108, + 108, + 44, + 32, + 99, + 111, + 118, + 101, + 114, + 101, + 100, + 32, + 119, + 105, + 116, + 104, + 32, + 110, + 111, + 116, + 105, + 99, + 101, + 115, + 32, + 111, + 102, + 10, + 13, + 99, + 117, + 114, + 114, + 101, + 110, + 116, + 32, + 105, + 110, + 102, + 111, + 114, + 109, + 97, + 116, + 105, + 111, + 110, + 32, + 102, + 111, + 114, + 32, + 110, + 101, + 119, + 99, + 111, + 109, + 101, + 114, + 115, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 99, + 105, + 116, + 121, + 46, + 10, + 13, + 13, + 10, + 65, + 32, + 108, + 101, + 100, + 103, + 101, + 114, + 32, + 108, + 105, + 101, + 115, + 32, + 111, + 110, + 32, + 97, + 32, + 115, + 109, + 97, + 108, + 108, + 32, + 115, + 116, + 97, + 110, + 100, + 46, + 13, + 10, + 91, + 32, + 111, + 98, + 118, + 105, + 111, + 117, + 115, + 32, + 101, + 120, + 105, + 116, + 115, + 58, + 32, + 83, + 32, + 68, + 32, + 93, + 13, + 10, + 27, + 91, + 51, + 50, + 109, + 65, + 32, + 108, + 97, + 114, + 103, + 101, + 32, + 115, + 108, + 97, + 98, + 32, + 111, + 102, + 32, + 109, + 101, + 97, + 116, + 32, + 104, + 97, + 115, + 32, + 98, + 101, + 101, + 110, + 32, + 112, + 108, + 97, + 99, + 101, + 100, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 65, + 32, + 108, + 97, + 110, + 116, + 101, + 114, + 110, + 32, + 104, + 97, + 115, + 32, + 98, + 101, + 101, + 110, + 32, + 108, + 101, + 102, + 116, + 32, + 104, + 101, + 114, + 101, + 46, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 65, + 32, + 98, + 108, + 97, + 99, + 107, + 32, + 100, + 111, + 103, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 119, + 97, + 103, + 103, + 105, + 110, + 103, + 32, + 105, + 116, + 115, + 32, + 116, + 97, + 105, + 108, + 46, + 10, + 13, + 65, + 32, + 98, + 108, + 97, + 99, + 107, + 32, + 99, + 97, + 116, + 32, + 109, + 101, + 97, + 110, + 100, + 101, + 114, + 115, + 32, + 116, + 111, + 32, + 97, + 110, + 32, + 117, + 110, + 107, + 110, + 111, + 119, + 110, + 32, + 100, + 101, + 115, + 116, + 105, + 110, + 97, + 116, + 105, + 111, + 110, + 46, + 10, + 13, + 65, + 32, + 98, + 117, + 108, + 107, + 121, + 32, + 109, + 97, + 110, + 32, + 119, + 105, + 116, + 104, + 32, + 104, + 101, + 97, + 118, + 121, + 45, + 108, + 105, + 100, + 100, + 101, + 100, + 32, + 101, + 121, + 101, + 115, + 32, + 115, + 105, + 116, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 115, + 99, + 114, + 97, + 116, + 99, + 104, + 105, + 110, + 103, + 32, + 97, + 32, + 99, + 97, + 116, + 46, + 10, + 13, + 84, + 104, + 101, + 32, + 105, + 110, + 110, + 107, + 101, + 101, + 112, + 101, + 114, + 32, + 66, + 97, + 115, + 101, + 108, + 32, + 71, + 105, + 108, + 108, + 32, + 105, + 115, + 32, + 104, + 101, + 114, + 101, + 44, + 32, + 115, + 109, + 105, + 108, + 105, + 110, + 103, + 32, + 98, + 114, + 111, + 97, + 100, + 108, + 121, + 46, + 10, + 13, + 27, + 91, + 48, + 109, + 13, + 10, + 0, + 0, + 0, + 87, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 7, + 117, + 0, + 0, + 2, + 194, + 49, + 46, + 32, + 49, + 32, + 105, + 116, + 101, + 109, + 32, + 115, + 116, + 111, + 114, + 101, + 100, + 32, + 102, + 111, + 114, + 32, + 51, + 48, + 50, + 54, + 32, + 100, + 97, + 121, + 115, + 44, + 32, + 53, + 52, + 32, + 103, + 111, + 108, + 100, + 32, + 99, + 114, + 111, + 119, + 110, + 115, + 32, + 97, + 110, + 100, + 32, + 49, + 53, + 32, + 99, + 111, + 112, + 112, + 101, + 114, + 115, + 32, + 114, + 101, + 110, + 116, + 32, + 100, + 117, + 101, + 46, + 13, + 10, + 32, + 32, + 32, + 32, + 97, + 32, + 115, + 117, + 110, + 103, + 119, + 111, + 111, + 100, + 32, + 98, + 114, + 97, + 99, + 101, + 108, + 101, + 116, + 13, + 10, + 50, + 46, + 32, + 49, + 32, + 105, + 116, + 101, + 109, + 32, + 115, + 116, + 111, + 114, + 101, + 100, + 32, + 102, + 111, + 114, + 32, + 51, + 48, + 49, + 54, + 32, + 100, + 97, + 121, + 115, + 44, + 32, + 49, + 56, + 32, + 103, + 111, + 108, + 100, + 32, + 99, + 114, + 111, + 119, + 110, + 115, + 32, + 97, + 110, + 100, + 32, + 53, + 32, + 99, + 111, + 112, + 112, + 101, + 114, + 115, + 32, + 114, + 101, + 110, + 116, + 32, + 100, + 117, + 101, + 46, + 13, + 10, + 32, + 32, + 32, + 32, + 97, + 32, + 102, + 105, + 110, + 101, + 108, + 121, + 32, + 99, + 114, + 97, + 102, + 116, + 101, + 100, + 32, + 97, + 120, + 101, + 13, + 10, + 51, + 46, + 32, + 49, + 32, + 105, + 116, + 101, + 109, + 32, + 115, + 116, + 111, + 114, + 101, + 100, + 32, + 102, + 111, + 114, + 32, + 51, + 48, + 49, + 54, + 32, + 100, + 97, + 121, + 115, + 44, + 32, + 53, + 52, + 32, + 103, + 111, + 108, + 100, + 32, + 99, + 114, + 111, + 119, + 110, + 115, + 32, + 97, + 110, + 100, + 32, + 49, + 53, + 32, + 99, + 111, + 112, + 112, + 101, + 114, + 115, + 32, + 114, + 101, + 110, + 116, + 32, + 100, + 117, + 101, + 46, + 13, + 10, + 32, + 32, + 32, + 32, + 97, + 32, + 115, + 117, + 110, + 103, + 119, + 111, + 111, + 100, + 32, + 98, + 114, + 97, + 99, + 101, + 108, + 101, + 116, + 13, + 10, + 52, + 46, + 32, + 49, + 32, + 105, + 116, + 101, + 109, + 32, + 115, + 116, + 111, + 114, + 101, + 100, + 32, + 102, + 111, + 114, + 32, + 50, + 51, + 51, + 53, + 32, + 100, + 97, + 121, + 115, + 44, + 32, + 57, + 49, + 32, + 103, + 111, + 108, + 100, + 32, + 99, + 114, + 111, + 119, + 110, + 115, + 32, + 97, + 110, + 100, + 32, + 53, + 32, + 99, + 111, + 112, + 112, + 101, + 114, + 115, + 32, + 114, + 101, + 110, + 116, + 32, + 100, + 117, + 101, + 46, + 13, + 10, + 32, + 32, + 32, + 32, + 97, + 32, + 103, + 97, + 114, + 103, + 97, + 110, + 116, + 117, + 97, + 110, + 32, + 103, + 105, + 108, + 100, + 101, + 100, + 32, + 98, + 97, + 115, + 116, + 97, + 114, + 100, + 32, + 115, + 119, + 111, + 114, + 100, + 13, + 10, + 53, + 46, + 32, + 49, + 32, + 105, + 116, + 101, + 109, + 32, + 115, + 116, + 111, + 114, + 101, + 100, + 32, + 102, + 111, + 114, + 32, + 50, + 51, + 51, + 53, + 32, + 100, + 97, + 121, + 115, + 44, + 32, + 57, + 49, + 32, + 103, + 111, + 108, + 100, + 32, + 99, + 114, + 111, + 119, + 110, + 115, + 32, + 97, + 110, + 100, + 32, + 53, + 32, + 99, + 111, + 112, + 112, + 101, + 114, + 115, + 32, + 114, + 101, + 110, + 116, + 32, + 100, + 117, + 101, + 46, + 13, + 10, + 32, + 32, + 32, + 32, + 97, + 32, + 115, + 116, + 117, + 100, + 100, + 101, + 100, + 32, + 108, + 101, + 97, + 116, + 104, + 101, + 114, + 32, + 98, + 101, + 108, + 116, + 32, + 119, + 105, + 116, + 104, + 32, + 97, + 32, + 99, + 114, + 111, + 115, + 115, + 101, + 100, + 32, + 115, + 119, + 111, + 114, + 100, + 115, + 32, + 98, + 117, + 99, + 107, + 108, + 101, + 13, + 10, + 54, + 46, + 32, + 49, + 32, + 105, + 116, + 101, + 109, + 32, + 115, + 116, + 111, + 114, + 101, + 100, + 32, + 102, + 111, + 114, + 32, + 49, + 57, + 51, + 49, + 32, + 100, + 97, + 121, + 115, + 44, + 32, + 49, + 56, + 32, + 103, + 111, + 108, + 100, + 32, + 99, + 114, + 111, + 119, + 110, + 115, + 32, + 97, + 110, + 100, + 32, + 53, + 32, + 99, + 111, + 112, + 112, + 101, + 114, + 115, + 32, + 114, + 101, + 110, + 116, + 32, + 100, + 117, + 101, + 46, + 13, + 10, + 32, + 32, + 32, + 32, + 97, + 32, + 102, + 105, + 110, + 101, + 108, + 121, + 32, + 99, + 114, + 97, + 102, + 116, + 101, + 100, + 32, + 97, + 120, + 101, + 13, + 10, + 55, + 46, + 32, + 49, + 32, + 105, + 116, + 101, + 109, + 32, + 115, + 116, + 111, + 114, + 101, + 100, + 32, + 102, + 111, + 114, + 32, + 54, + 52, + 54, + 32, + 100, + 97, + 121, + 115, + 44, + 32, + 110, + 111, + 32, + 114, + 101, + 110, + 116, + 32, + 100, + 117, + 101, + 46, + 13, + 10, + 32, + 32, + 32, + 32, + 97, + 32, + 114, + 105, + 100, + 103, + 101, + 100, + 32, + 115, + 116, + 101, + 101, + 108, + 32, + 98, + 114, + 97, + 99, + 101, + 114, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 89, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 18, + 174, + 0, + 0, + 0, + 30, + 13, + 10, + 65, + 32, + 98, + 108, + 97, + 99, + 107, + 32, + 100, + 111, + 103, + 32, + 108, + 101, + 97, + 118, + 101, + 115, + 32, + 100, + 111, + 119, + 110, + 46, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 94, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + 0, + 0, + 26, + 185, + 0, + 0, + 0, + 124, + 13, + 10, + 27, + 91, + 51, + 51, + 109, + 75, + 104, + 97, + 115, + 116, + 101, + 114, + 32, + 110, + 97, + 114, + 114, + 97, + 116, + 101, + 115, + 32, + 39, + 79, + 104, + 32, + 73, + 39, + 109, + 32, + 104, + 101, + 97, + 100, + 101, + 100, + 32, + 111, + 102, + 102, + 32, + 116, + 111, + 111, + 32, + 101, + 110, + 100, + 101, + 100, + 32, + 117, + 112, + 32, + 119, + 111, + 114, + 107, + 105, + 110, + 103, + 32, + 53, + 32, + 104, + 111, + 117, + 114, + 115, + 32, + 112, + 97, + 115, + 116, + 32, + 109, + 121, + 32, + 115, + 104, + 105, + 102, + 116, + 32, + 115, + 111, + 32, + 73, + 39, + 109, + 32, + 116, + 105, + 114, + 101, + 100, + 32, + 97, + 110, + 100, + 32, + 103, + 111, + 105, + 110, + 103, + 32, + 116, + 111, + 32, + 98, + 101, + 100, + 39, + 27, + 91, + 48, + 109, + 13, + 10, + 13, + 10, + 0, + 0, + 0, + 94, + 0, + 0, + 0, + 25, + 42, + 32, + 72, + 80, + 58, + 72, + 101, + 97, + 108, + 116, + 104, + 121, + 32, + 77, + 86, + 58, + 84, + 105, + 114, + 105, + 110, + 103, + 32, + 62, + 32, + ], + client: TinTin, +} +2022-06-20T16:13:07.129-0500 INF 127.0.0.1 "POST /submit HTTP/1.1" 200 2376 "http://localhost:8807/submit" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0" 0.025488 +2022-06-20T16:13:07.236-0500 DBG error handling /static/ansi2html.css: No such file or directory (os error 2) +2022-06-20T16:13:07.236-0500 INF 127.0.0.1 "GET /static/ansi2html.css HTTP/1.1" 404 0 "http://localhost:8807/submit" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0" 0.000441 +2022-06-20T16:13:20.926-0500 INF SIGINT received; starting forced shutdown +2022-06-20T16:13:20.926-0500 DBG Paused accepting connections on 127.0.0.1:8807 +2022-06-20T16:13:20.926-0500 INF Shutting down idle worker +2022-06-20T16:13:20.927-0500 INF Shutting down idle worker +2022-06-20T16:13:20.926-0500 INF Shutting down idle worker +2022-06-20T16:13:20.927-0500 INF Shutting down idle worker +2022-06-20T16:13:20.926-0500 INF Accept thread stopped diff --git a/src/client/client.rs b/src/client/client.rs index 97a3bb6..c8040e7 100644 --- a/src/client/client.rs +++ b/src/client/client.rs @@ -1,10 +1,9 @@ /// mud client type use std::default::Default; - -use serde::Deserialize; +use std::fmt; /// client type to know log format -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, PartialEq)] pub enum Client { /// mudlet Mudlet, @@ -25,6 +24,17 @@ impl Default for Client { } } +impl fmt::Display for Client { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match &self { + Self::Mudlet => write!(f, "Mudlet"), + Self::TinTin => write!(f, "TinTin++"), + Self::ZMud => write!(f, "ZMud"), + Self::None => write!(f, "None"), + } + } +} + impl From<&String> for Client { fn from(s: &String) -> Self { match s.to_lowercase().as_str() { diff --git a/src/client/mod.rs b/src/client/mod.rs index 97f701f..e5d120a 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -1,5 +1,4 @@ mod client; -mod tintin; +pub mod mudlet; pub use client::Client; -pub use tintin::TinTin; diff --git a/src/client/mudlet.rs b/src/client/mudlet.rs new file mode 100644 index 0000000..8927dee --- /dev/null +++ b/src/client/mudlet.rs @@ -0,0 +1,87 @@ +use std::ops::Range; + +use serde_json::{Map, Value}; + +type Result = std::result::Result>; + +fn chunk32(chunk: &Vec) -> Result<(i32, i32)> { + let (delta_chunk, size_chunk) = { + let (mut delta_chunk, mut size_chunk): ([u8; 4], [u8; 4]) = ([0; 4], [0; 4]); + for i in 0..4 { + delta_chunk[i] = chunk[i]; + size_chunk[i] = chunk[i + 4]; + } + (delta_chunk, size_chunk) + }; + + let delta = i32::from_be_bytes(delta_chunk); + let size = i32::from_be_bytes(size_chunk); + + if size < 0 { + return Err("size is too small".into()); + } + + Ok((delta, size)) +} + +fn chunk64(delta_chunk: &Vec, size_chunk: &Vec) -> Result<(i32, i32)> { + let delta = i64::from_be_bytes(delta_chunk.as_slice().try_into()?); + let size = i32::from_be_bytes(size_chunk.as_slice().try_into()?); + + if delta > i32::MAX.into() { + return Err("delta out of range".into()); + } + + if size < 1 { + return Err("size should not be zero".into()); + } + + let delta: i32 = delta.try_into()?; + + Ok((delta, size)) +} + +pub fn parse_log(raw: &Vec) -> Result { + let mut raw = raw.to_owned(); + let mut chunks: Vec> = Vec::new(); + + while raw.len() > 0 { + let chunk: Vec = raw.drain(0..7).collect(); + if chunk.len() != 8 { + return Err("chunk size too small".into()); + } + + let (delta, size) = { + if let Ok((delta, size)) = chunk32(&chunk) { + (delta, size) + } else { + let next_chunk: Vec = raw.drain(0..3).collect(); + if next_chunk.len() != 4 { + return Err("next_chunk size too small".into()); + } + + if let Ok((delta, size)) = chunk64(&chunk, &next_chunk) { + (delta, size) + } else { + return Err("broken".into()); + } + } + }; + + let r = Range { start: 0 as usize, end: (size - 1) as usize }; + + let text_chunk: Vec = raw.drain(r).collect(); + if text_chunk.len() != size as usize { + return Err("text_chunk size too small".into()); + } + + let text: String = String::from_utf8_lossy(&text_chunk).into(); + + let mut bm: Map = Map::new(); + bm.insert("delta".into(), delta.into()); + bm.insert("text".into(), text.into()); + chunks.push(bm); + } + + Ok(chunks.into()) +} diff --git a/src/client/tintin.rs b/src/client/tintin.rs index e44ca3b..684c772 100644 --- a/src/client/tintin.rs +++ b/src/client/tintin.rs @@ -1 +1,5 @@ -pub struct TinTin {} +use serde_json::Value; + +pub fn parse_log(raw: &Vec) -> Value { + Value::Null +} diff --git a/src/form_data.rs b/src/form_data.rs index 90dd457..246ca22 100644 --- a/src/form_data.rs +++ b/src/form_data.rs @@ -2,35 +2,43 @@ use std::default::Default; +use actix_extract_multipart::{File, FileData}; use serde::Deserialize; +use crate::Client; + #[derive(Debug, Deserialize)] #[serde(default = "FormData::default")] pub struct FormData { + /// Client + #[serde(rename = "submit_client")] + pub client: Option, + /// Title #[serde(rename = "submit_title")] - pub title: String, + pub title: Option, /// Player #[serde(rename = "submit_player")] - pub player: String, + pub player: Option, /// Public #[serde(rename = "submit_public")] - pub public: String, + pub public: Option, - /// Log - #[serde(rename = "submit_log")] - pub log: String, + /// Replay + #[serde(rename = "submit_file")] + pub replay: Option, } impl Default for FormData { fn default() -> Self { Self { - title: String::new(), - player: String::new(), - public: String::new(), - log: String::new(), + client: None, + title: None, + player: None, + public: None, + replay: None, } } } diff --git a/src/main.rs b/src/main.rs index 73025e8..cb01925 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ mod action; mod client; -mod form_data; +//mod form_data; mod line; mod options; mod routes; @@ -14,7 +14,7 @@ use log::info; use action::Action; use client::Client; -use form_data::FormData; +//use form_data::FormData; use options::Options; use wot_log::WotLog; @@ -29,6 +29,7 @@ async fn main() -> std::io::Result<()> { // start logger rag::init().unwrap(); + rag::set_level_debug(); // load templates let mut handlebars = Handlebars::new(); @@ -46,6 +47,7 @@ async fn main() -> std::io::Result<()> { .service(routes::help::get) .service(routes::index::get) .service(routes::submit::get) + //.route("/submit", web::post().to(routes::submit::post)) .service(routes::submit::post) .service(Files::new("/static", "static").show_files_listing()) }) diff --git a/src/routes/submit/submit_post.rs b/src/routes/submit/submit_post.rs index a404b81..c3f4cd3 100644 --- a/src/routes/submit/submit_post.rs +++ b/src/routes/submit/submit_post.rs @@ -1,21 +1,20 @@ -use actix_web::{post, web, HttpResponse}; +use actix_multipart::Multipart; +use actix_web::{post, web, Error, HttpResponse}; + use handlebars::Handlebars; -use serde_json::json; -use crate::FormData; use crate::WotLog; #[post("/submit")] -pub async fn post(form: web::Form, hb: web::Data>) -> HttpResponse { - let form_data = form.into_inner(); - let wot_log = WotLog::from(&form_data); - wot_log.parse(); - - let data = json!({ - "name": "rewot" - }); +pub async fn post( + payload: Multipart, + hb: web::Data>, +) -> Result { + let mut wotlog = WotLog::from_payload(payload).await?; + wotlog.parse_log()?; - let body = hb.render("submit", &data).unwrap(); + //let body = hb.render("submit", &json!({})).unwrap(); + let body = format!("{:#?}", wotlog); - HttpResponse::Ok().body(body) + Ok(HttpResponse::Ok().body(body)) } diff --git a/src/wot_log.rs b/src/wot_log.rs index 35a415c..cfab795 100644 --- a/src/wot_log.rs +++ b/src/wot_log.rs @@ -1,62 +1,97 @@ -use lazy_static::lazy_static; -use log::{debug, error, info}; -use regex::Regex; -use serde::Deserialize; +use actix_multipart::Multipart; +use actix_web::Error; -use crate::default_false; -use crate::Action; -use crate::Client; -use crate::FormData; +use chrono::Utc; +use futures_util::StreamExt; +use harsh::Harsh; +use serde_json::Value; -#[derive(Debug, Deserialize)] +use crate::{client, Client}; + +#[derive(Debug)] pub struct WotLog { /// ID of the log - #[serde(default = "String::new")] pub id: String, /// Title of the log - #[serde(default = "String::new")] pub title: String, /// Name of the player - #[serde(default = "String::new")] pub player: String, /// Is the log public - #[serde(default = "default_false")] pub public: bool, - /// Log - #[serde(default = "String::new")] - pub log: String, + /// Raw bytes of file as received + pub raw: Vec, /// Client type - #[serde(default = "Client::default")] pub client: Client, + + /// Parsed JSON + pub json: Value, } -impl From<&FormData> for WotLog { - fn from(form_data: &FormData) -> Self { +impl WotLog { + pub fn new() -> Self { Self { - id: "".into(), - title: form_data.title.clone(), - player: form_data.player.clone(), - public: if form_data.public == "public" { true } else { false }, - log: form_data.log.clone(), client: Client::None, + id: { + let harsh = Harsh::default(); + let ts = Utc::now(); + harsh.encode(&[ts.timestamp_nanos() as u64]) + }, + player: String::new(), + public: false, + title: String::new(), + raw: Vec::new(), + json: Value::Null, } } -} -impl WotLog { - /// Read and parse the log - pub fn parse(self: &Self) { - let mut lineno: u128 = 1; - for line in self.log.lines() { - let line = line.trim_end_matches('\r'); + pub async fn from_payload(payload: Multipart) -> Result { + let mut payload = payload; + let mut wotlog = WotLog::new(); + + while let Some(item) = payload.next().await { + let mut field = item?; + let mut data: Vec = Vec::new(); - let action = Action::from(line); - lineno += 1; + while let Some(Ok(chunk)) = field.next().await { + for byte in chunk { + data.push(byte); + } + } + + match field.name() { + "submit_client" => { + //let b: Vec = data.iter().map(|b| *b).collect(); + wotlog.client = Client::from(&String::from_utf8_lossy(&data).to_string()) + } + "submit_player" => wotlog.player = String::from_utf8_lossy(&data).into(), + "submit_public" => { + if &data == "public".as_bytes() { + wotlog.public = true; + } + } + "submit_title" => wotlog.title = String::from_utf8_lossy(&data).into(), + "submit_file" => wotlog.raw = data.into(), + _ => {} + } } + + Ok(wotlog) + } + + /// Read and parse the log + pub fn parse_log(self: &mut Self) -> Result<(), Error> { + self.json = match self.client { + Client::Mudlet => client::mudlet::parse_log(&self.raw)?, + Client::TinTin => Value::Null, + Client::ZMud => Value::Null, + Client::None => Value::Null, + }; + + Ok(()) } }