diff --git a/.gitignore b/.gitignore index 97ebc10..03093e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target/ **/*.rs.bk -.DS_Store \ No newline at end of file +.DS_Store +wasm-pack.log \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index df85a9f..3116745 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,587 +1,751 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. [[package]] name = "aho-corasick" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" dependencies = [ - "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr", ] [[package]] name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi", ] [[package]] name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "termion", + "winapi", ] +[[package]] +name = "autocfg" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" + [[package]] name = "backtrace" -version = "0.3.9" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" dependencies = [ - "backtrace-sys 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "backtrace-sys", + "cfg-if", + "libc", + "rustc-demangle", + "winapi", ] [[package]] name = "backtrace-sys" -version = "0.1.23" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", + "libc", ] [[package]] name = "bitflags" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" [[package]] name = "byteorder" version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" [[package]] name = "cast" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427" [[package]] name = "cc" -version = "1.0.18" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" [[package]] name = "cfg-if" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" [[package]] name = "chess" version = "0.1.0" dependencies = [ - "criterion 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-derive 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "snapshot 0.1.0 (git+https://github.com/jacobgardner/snapshot-rs.git?branch=hjson)", - "uncover 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "criterion", + "lazy_static 1.2.0", + "num", + "num-derive", + "num-traits 0.2.6", + "snapshot", + "uncover", + "variant_count", +] + +[[package]] +name = "chess-web" +version = "0.1.0" +dependencies = [ + "chess", + "js-sys", + "lazy_static 1.2.0", + "wasm-bindgen", + "web-sys", ] [[package]] name = "chrono" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" dependencies = [ - "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer", + "num-traits 0.2.6", + "time", ] [[package]] name = "clap" version = "2.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" dependencies = [ - "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", ] [[package]] name = "criterion" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c47d2b548c5647e1a436dc0cb78d4ebf51b6bf7ab101ed76662828bdd4d3a24a" dependencies = [ - "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "criterion-plot 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "criterion-stats 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "csv 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "handlebars 0.32.4 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools-num 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "simplelog 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "atty", + "clap", + "criterion-plot", + "criterion-stats", + "csv", + "failure", + "failure_derive", + "handlebars", + "itertools", + "itertools-num", + "log", + "serde 1.0.83", + "serde_derive 1.0.83", + "serde_json", + "simplelog", + "walkdir", ] [[package]] name = "criterion-plot" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5f81689739e463ece7a6b62c6ec63bdab5c4e28fe05ff451769e87d1511411" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "cast", + "failure", + "failure_derive", + "itertools", ] [[package]] name = "criterion-stats" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff43cac80562f91ead0b617c1be74edf350adfaa195809d355de98dfc8f9237d" dependencies = [ - "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "thread-scoped 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cast", + "num-traits 0.2.6", + "num_cpus", + "rand", + "thread-scoped", ] [[package]] name = "csv" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fd1c44c58078cfbeaf11fbb3eac9ae5534c23004ed770cc4bfb48e658ae4f04" dependencies = [ - "csv-core 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "csv-core", + "serde 1.0.83", ] [[package]] name = "csv-core" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa5cdef62f37e6ffe7d1f07a381bc0db32b7a3ff1cac0de56cb0d81e71f53d65" dependencies = [ - "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr", ] [[package]] name = "difference" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" [[package]] name = "either" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" + +[[package]] +name = "env_logger" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] [[package]] name = "failure" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e945b93ec214c6e97b520ec6c5d80267fc97af327658ee5b9f35984626e51fbf" dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace", + "failure_derive", ] [[package]] name = "failure_derive" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c395a14ab27b42704e85bf2435c5c51f334ad7a96e16fe23c6e63a1cad6cc12" dependencies = [ - "proc-macro2 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24", + "quote 0.6.10", + "syn 0.15.23", + "synstructure", ] [[package]] name = "fs2" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "winapi", ] [[package]] name = "fuchsia-zircon" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "fuchsia-zircon-sys", ] [[package]] name = "fuchsia-zircon-sys" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "handlebars" version = "0.32.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89ec99d1594f285d4590fc32bac5f75cdab383f1123d504d27862c644a807dd" +dependencies = [ + "lazy_static 1.2.0", + "log", + "pest", + "pest_derive", + "quick-error", + "regex", + "serde 1.0.83", + "serde_json", +] + +[[package]] +name = "heck" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "pest_derive 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-segmentation", +] + +[[package]] +name = "humantime" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" +dependencies = [ + "quick-error", ] [[package]] name = "itertools" version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d47946d458e94a1b7bcabbf6521ea7c037062c81f534615abcad76e84d4970d" dependencies = [ - "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "either", ] [[package]] name = "itertools-num" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7" dependencies = [ - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6", ] [[package]] name = "itoa" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" + +[[package]] +name = "js-sys" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58cfec35fd4a94f3cf357d5cb7da71c71cd52720c2f2a7320090a8db5f06f655" +dependencies = [ + "wasm-bindgen", +] [[package]] name = "lazy_static" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" [[package]] name = "lazy_static" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" [[package]] name = "libc" -version = "0.2.42" +version = "0.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2857ec59fadc0773853c664d2d18e7198e83883e7060b63c924cb077bd5c74" [[package]] name = "linked-hash-map" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d262045c5b87c0861b3f004610afd0e2c851e2908d08b6c870cbb9d5f494ecd" dependencies = [ - "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_test 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 0.8.23", + "serde_test", ] [[package]] name = "log" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" dependencies = [ - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", ] [[package]] name = "memchr" -version = "2.0.2" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" +dependencies = [ + "cfg-if", + "libc", + "version_check", +] + +[[package]] +name = "minimax" +version = "0.1.0" + +[[package]] +name = "nom" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c349f68f25f596b9f44cf0e7c69752a5c633b0550c3ff849518bfba0233774a" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr", ] [[package]] name = "num" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db" dependencies = [ - "num-bigint 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-complex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", - "num-iter 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", - "num-rational 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits 0.2.6", ] [[package]] name = "num-bigint" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57450397855d951f1a41305e54851b1a7b8f5d2e349543a02a2effe25459f718" dependencies = [ - "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer", + "num-traits 0.2.6", ] [[package]] name = "num-complex" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "107b9be86cd2481930688277b675b0114578227f034674726605b8a482d8baf8" dependencies = [ - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6", ] [[package]] name = "num-derive" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8af1847c907c2f04d7bfd572fb25bbb4385c637fe5be163cf2f8c5d778fe1e7d" dependencies = [ - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6", + "proc-macro2 0.4.24", + "quote 0.6.10", + "syn 0.15.23", ] [[package]] name = "num-integer" version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" dependencies = [ - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6", ] [[package]] name = "num-iter" version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af3fdbbc3291a5464dc57b03860ec37ca6bf915ed6ee385e7c6c052c422b2124" dependencies = [ - "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer", + "num-traits 0.2.6", ] [[package]] name = "num-rational" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e96f040177bb3da242b5b1ecf3f54b5d5af3efbbfb18608977a5d2767b22f10" dependencies = [ - "num-bigint 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-bigint", + "num-integer", + "num-traits 0.2.6", ] [[package]] name = "num-traits" version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" dependencies = [ - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6", ] [[package]] name = "num-traits" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" [[package]] name = "num_cpus" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "pest" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fce5d8b5cc33983fc74f78ad552b5522ab41442c4ca91606e4236eb4b5ceefc" [[package]] name = "pest_derive" version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3294f437119209b084c797604295f40227cffa35c57220b1e99a6ff3bf8ee4" dependencies = [ - "pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)", + "pest", + "quote 0.3.15", + "syn 0.11.11", ] [[package]] name = "pretty_assertions" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d510007841e87c7a6d829a36f7f0acb72aef12e38cc89073fe39810c1d976ac" +dependencies = [ + "difference", +] + +[[package]] +name = "proc-macro2" +version = "0.4.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" dependencies = [ - "difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0", ] [[package]] name = "proc-macro2" -version = "0.4.9" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" dependencies = [ - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.2.1", ] [[package]] name = "quick-error" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" [[package]] name = "quote" version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" [[package]] name = "quote" -version = "0.6.4" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" +dependencies = [ + "proc-macro2 0.4.24", +] + +[[package]] +name = "quote" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "proc-macro2 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.26", ] [[package]] name = "rand" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" dependencies = [ - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-zircon", + "libc", + "winapi", ] [[package]] name = "redox_syscall" -version = "0.1.44" +version = "0.1.49" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f22c50afdcf3f0a31ebb6b47697f6a7c5e5a24967e842858118bce0615f0afad" [[package]] name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" dependencies = [ - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall", ] [[package]] name = "regex" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" dependencies = [ - "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick", + "memchr", + "regex-syntax", + "thread_local", + "utf8-ranges", ] [[package]] name = "regex-syntax" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" dependencies = [ - "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util", ] [[package]] name = "rustc-demangle" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b90379b8664dd83460d59bdc5dd1fd3172b8913788db483ed1325171eab2f7" [[package]] name = "ryu" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" [[package]] name = "same-file" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" dependencies = [ - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util", ] [[package]] name = "serde" version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" [[package]] name = "serde" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "157e12af46859e968da75dea9845530e13d03bcab2009a41b9b7bb3cf4eb3ec2" [[package]] name = "serde-hjson" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b833c5ad67d52ced5f5938b2980f32a9c1c5ef047f0b4fb3127e7a423c76153" dependencies = [ - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "linked-hash-map 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.2.11", + "linked-hash-map", + "num-traits 0.1.43", + "regex", + "serde 0.8.23", ] [[package]] name = "serde_codegen" version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c5d8a33087d8984f9535daa62a6498a08f6476050b00ab9339dd847e4c25cc" dependencies = [ - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_codegen_internals 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.3.15", + "serde_codegen_internals", + "syn 0.10.8", ] [[package]] name = "serde_codegen_internals" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afad7924a009f859f380e4a2e3a509a845c2ac66435fcead74a4d983b21ae806" dependencies = [ - "syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.10.8", ] [[package]] name = "serde_derive" version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce44e5f4264b39e9d29c875357b7cc3ebdfb967bb9e22bfb5e44ffa400af5306" dependencies = [ - "serde_codegen 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_codegen", ] [[package]] name = "serde_derive" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9469829702497daf2daf3c190e130c3fa72f719920f73c86160d43e8f8d76951" dependencies = [ - "proc-macro2 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24", + "quote 0.6.10", + "syn 0.15.23", ] [[package]] name = "serde_json" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545" dependencies = [ - "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa", + "ryu", + "serde 1.0.83", ] [[package]] name = "serde_test" version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5" dependencies = [ - "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 0.8.23", ] [[package]] name = "simplelog" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e95345f185d5adeb8ec93459d2dc99654e294cc6ccf5b75414d8ea262de9a13" dependencies = [ - "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono", + "log", + "term", ] [[package]] @@ -589,12 +753,12 @@ name = "snapshot" version = "0.1.0" source = "git+https://github.com/jacobgardner/snapshot-rs.git?branch=hjson#d3a9ccde231c53024c22b8ca023d47545c853852" dependencies = [ - "fs2 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "pretty_assertions 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)", - "serde-hjson 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)", - "snapshot-proc-macro 0.1.0 (git+https://github.com/jacobgardner/snapshot-rs.git?branch=hjson)", + "fs2", + "pretty_assertions", + "serde 0.8.23", + "serde-hjson", + "serde_derive 0.8.23", + "snapshot-proc-macro", ] [[package]] @@ -602,292 +766,374 @@ name = "snapshot-proc-macro" version = "0.1.0" source = "git+https://github.com/jacobgardner/snapshot-rs.git?branch=hjson#d3a9ccde231c53024c22b8ca023d47545c853852" dependencies = [ - "quote 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.10", + "syn 0.14.9", ] +[[package]] +name = "sourcefile" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3" + [[package]] name = "strsim" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" [[package]] name = "syn" version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fd09df59565db3399efbba34ba8a2fec1307511ebd245d0061ff9d42691673" dependencies = [ - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.3.15", + "unicode-xid 0.0.4", ] [[package]] name = "syn" version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" +dependencies = [ + "quote 0.3.15", + "synom", + "unicode-xid 0.0.4", +] + +[[package]] +name = "syn" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" dependencies = [ - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24", + "quote 0.6.10", + "unicode-xid 0.1.0", ] [[package]] name = "syn" -version = "0.14.5" +version = "0.15.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc" dependencies = [ - "proc-macro2 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24", + "quote 0.6.10", + "unicode-xid 0.1.0", ] [[package]] name = "syn" -version = "0.15.22" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fe99c6bd8b1cc636890bcc071842de909d902c81ac7dab53ba33c421ab8ffb" dependencies = [ - "proc-macro2 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.26", + "quote 1.0.9", + "unicode-xid 0.2.1", ] [[package]] name = "synom" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" dependencies = [ - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.0.4", ] [[package]] name = "synstructure" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" dependencies = [ - "proc-macro2 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.24", + "quote 0.6.10", + "syn 0.15.23", + "unicode-xid 0.1.0", ] [[package]] name = "term" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6b677dd1e8214ea1ef4297f85dbcbed8e8cdddb561040cc998ca2551c37561" +dependencies = [ + "byteorder", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "wincolor", ] [[package]] name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "redox_syscall", + "redox_termios", ] [[package]] name = "textwrap" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" dependencies = [ - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width", ] [[package]] name = "thread-scoped" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcbb6aa301e5d3b0b5ef639c9a9c7e2f1c944f177b460c04dc24c69b1fa2bd99" [[package]] name = "thread_local" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0", ] [[package]] name = "time" version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "redox_syscall", + "winapi", ] [[package]] name = "ucd-util" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" [[package]] name = "uncover" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93b8c2f1aec170216136efd4020bac2d0fa736760e54c16da538b4eda4a0d665" dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0", ] +[[package]] +name = "unicode-segmentation" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" + [[package]] name = "unicode-width" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" [[package]] name = "unicode-xid" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" [[package]] name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" [[package]] name = "utf8-ranges" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" + +[[package]] +name = "variant_count" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" +dependencies = [ + "quote 1.0.9", + "syn 1.0.69", +] [[package]] name = "vec_map" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" + +[[package]] +name = "version_check" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" [[package]] name = "walkdir" version = "2.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91f95b8f30407b9ca0c2de157281d3828bbed1fc1f55bea6eb54f40c52ec75ec" +dependencies = [ + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab7c242ebcb45bae45340986c48d1853eb2c1c52ff551f7724951b62a2c51429" +dependencies = [ + "lazy_static 1.2.0", + "log", + "proc-macro2 0.4.24", + "quote 0.6.10", + "syn 0.15.23", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e353f83716dec9a3597b5719ef88cb6c9e461ec16528f38aa023d3224b4e569" +dependencies = [ + "quote 0.6.10", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cc90b65fe69c3dd5a09684517dc79f42b847baa2d479c234d125e0a629d9b0a" +dependencies = [ + "proc-macro2 0.4.24", + "quote 0.6.10", + "syn 0.15.23", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a71a37df4f5845025f96f279d20bbe5b19cbcb77f5410a3a90c6c544d889a162" + +[[package]] +name = "wasm-bindgen-webidl" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b064b8b2336b5a6bf5f31bc95fc1310842395df29877d910cb6f8f791070f319" +dependencies = [ + "failure", + "heck", + "log", + "proc-macro2 0.4.24", + "quote 0.6.10", + "syn 0.15.23", + "wasm-bindgen-backend", + "weedle", +] + +[[package]] +name = "web-sys" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d7c588c2e5a091bc4532c5a87032955f9133b644e868b54d08ead0185dcc5b9" +dependencies = [ + "env_logger", + "failure", + "js-sys", + "sourcefile", + "wasm-bindgen", + "wasm-bindgen-webidl", +] + +[[package]] +name = "weedle" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26a4c67f132386d965390b8a734d5d10adbcd30eb5cc74bd9229af8b83f10044" dependencies = [ - "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "nom", ] [[package]] name = "winapi" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" dependencies = [ - "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi", ] [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[metadata] -"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" -"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" -"checksum backtrace-sys 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)" = "bff67d0c06556c0b8e6b5f090f0eac52d950d9dfd1d35ba04e4ca3543eaf6a7e" -"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" -"checksum cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427" -"checksum cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "2119ea4867bd2b8ed3aecab467709720b2d55b1bcfe09f772fd68066eaf15275" -"checksum cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efe5c877e17a9c717a0bf3613b2709f723202c4e4675cc8f12926ded29bcb17e" -"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" -"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" -"checksum criterion 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c47d2b548c5647e1a436dc0cb78d4ebf51b6bf7ab101ed76662828bdd4d3a24a" -"checksum criterion-plot 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6e649d6aacdbbdb94ec659561a309a71336fc5655ed408f3afd28df2fc0c4f4f" -"checksum criterion-stats 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ff43cac80562f91ead0b617c1be74edf350adfaa195809d355de98dfc8f9237d" -"checksum csv 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d54f6b0fd69128a2894b1a3e57af5849a0963c1cc77b165d30b896e40296452" -"checksum csv-core 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4dd8e6d86f7ba48b4276ef1317edc8cc36167546d8972feb4a2b5fec0b374105" -"checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" -"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" -"checksum failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7efb22686e4a466b1ec1a15c2898f91fa9cb340452496dca654032de20ff95b9" -"checksum failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "946d0e98a50d9831f5d589038d2ca7f8f455b1c21028c0db0e84116a12696426" -"checksum fs2 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -"checksum handlebars 0.32.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d89ec99d1594f285d4590fc32bac5f75cdab383f1123d504d27862c644a807dd" -"checksum itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0d47946d458e94a1b7bcabbf6521ea7c037062c81f534615abcad76e84d4970d" -"checksum itertools-num 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7" -"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" -"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" -"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" -"checksum libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1" -"checksum linked-hash-map 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6d262045c5b87c0861b3f004610afd0e2c851e2908d08b6c870cbb9d5f494ecd" -"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" -"checksum memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a3b4142ab8738a78c51896f704f83c11df047ff1bda9a92a661aa6361552d93d" -"checksum num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db" -"checksum num-bigint 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3eceac7784c5dc97c2d6edf30259b4e153e6e2b42b3c85e9a6e9f45d06caef6e" -"checksum num-complex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "68de83578789e0fbda3fa923035be83cf8bfd3b30ccfdecd5aa89bf8601f408e" -"checksum num-derive 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0d2c31b75c36a993d30c7a13d70513cb93f02acafdd5b7ba250f9b0e18615de7" -"checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" -"checksum num-iter 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)" = "af3fdbbc3291a5464dc57b03860ec37ca6bf915ed6ee385e7c6c052c422b2124" -"checksum num-rational 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e96f040177bb3da242b5b1ecf3f54b5d5af3efbbfb18608977a5d2767b22f10" -"checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -"checksum num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "630de1ef5cc79d0cdd78b7e33b81f083cbfe90de0f4b2b2f07f905867c70e9fe" -"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" -"checksum pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0fce5d8b5cc33983fc74f78ad552b5522ab41442c4ca91606e4236eb4b5ceefc" -"checksum pest_derive 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3294f437119209b084c797604295f40227cffa35c57220b1e99a6ff3bf8ee4" -"checksum pretty_assertions 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d510007841e87c7a6d829a36f7f0acb72aef12e38cc89073fe39810c1d976ac" -"checksum proc-macro2 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "cccdc7557a98fe98453030f077df7f3a042052fae465bb61d2c2c41435cfd9b6" -"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" -"checksum quote 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b71f9f575d55555aa9c06188be9d4e2bfc83ed02537948ac0d520c24d0419f1a" -"checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" -"checksum redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bcd297b87a545980a2d25a0beb72a1f490c31f0a9fde52fca35bfbb1ceb70" -"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" -"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" -"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" -"checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" -"checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" -"checksum serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" -"checksum serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "6fa52f19aee12441d5ad11c9a00459122bd8f98707cadf9778c540674f1935b6" -"checksum serde-hjson 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0b833c5ad67d52ced5f5938b2980f32a9c1c5ef047f0b4fb3127e7a423c76153" -"checksum serde_codegen 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c5d8a33087d8984f9535daa62a6498a08f6476050b00ab9339dd847e4c25cc" -"checksum serde_codegen_internals 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "afad7924a009f859f380e4a2e3a509a845c2ac66435fcead74a4d983b21ae806" -"checksum serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "ce44e5f4264b39e9d29c875357b7cc3ebdfb967bb9e22bfb5e44ffa400af5306" -"checksum serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "96a7f9496ac65a2db5929afa087b54f8fc5008dcfbe48a8874ed20049b0d6154" -"checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" -"checksum serde_test 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5" -"checksum simplelog 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e95345f185d5adeb8ec93459d2dc99654e294cc6ccf5b75414d8ea262de9a13" -"checksum snapshot 0.1.0 (git+https://github.com/jacobgardner/snapshot-rs.git?branch=hjson)" = "" -"checksum snapshot-proc-macro 0.1.0 (git+https://github.com/jacobgardner/snapshot-rs.git?branch=hjson)" = "" -"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)" = "58fd09df59565db3399efbba34ba8a2fec1307511ebd245d0061ff9d42691673" -"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" -"checksum syn 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4bad7abdf6633f07c7046b90484f1d9dc055eca39f8c991177b1046ce61dba9a" -"checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7" -"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" -"checksum synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb9b7550d063ea184027c9b8c20ac167cd36d3e06b3a40bceb9d746dc1a7b7" -"checksum term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5e6b677dd1e8214ea1ef4297f85dbcbed8e8cdddb561040cc998ca2551c37561" -"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" -"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" -"checksum thread-scoped 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bcbb6aa301e5d3b0b5ef639c9a9c7e2f1c944f177b460c04dc24c69b1fa2bd99" -"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c" -"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" -"checksum uncover 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "93b8c2f1aec170216136efd4020bac2d0fa736760e54c16da538b4eda4a0d665" -"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" -"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" -"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" -"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" -"checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" -"checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd" -"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" -"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "wincolor" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" +dependencies = [ + "winapi", + "winapi-util", +] diff --git a/Cargo.toml b/Cargo.toml index df78188..d622748 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,55 +1,6 @@ -[package] -name = "chess" -version = "0.1.0" -authors = ["Jacob Gardner "] -edition = "2018" - -[lib] -name = "lib" -path = "src/main.rs" - -[[bin]] -name = "chess_ai" -path = "src/main.rs" -test = false -bench = false -doctest = false - -[features] -strict = [] - -[dependencies] -failure = "^0.1.2" -num = "^0.2" -num-derive = "^0.2" -num-traits = "^0.2" -snapshot = { git = "https://github.com/jacobgardner/snapshot-rs.git", branch = "hjson" } -uncover = "^0.1.1" -lazy_static = "^1.2.0" - -[dev-dependencies] -criterion = "^0.2.5" - -[[bench]] -name = "pawn_generation" -harness = false - -[[bench]] -name = "rook_generation" -harness = false - -[[bench]] -name = "knight_generation" -harness = false - -[[bench]] -name = "bishop_generation" -harness = false - -[[bench]] -name = "queen_generation" -harness = false - -[[bench]] -name = "king_generation" -harness = false \ No newline at end of file +[workspace] +members = [ + "minimax", + "chess-lib", + "chess-web" +] \ No newline at end of file diff --git a/README.md b/README.md index 36f2288..417a041 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -Chess AI -======== +# Chess AI [![Build Status](https://travis-ci.org/jacobgardner/chessAI.svg?branch=master)](https://travis-ci.org/jacobgardner/chessAI) To benchmark, run: @@ -32,12 +31,12 @@ Stretch Goals: - [ ] Hooking up to Chess.com API to play against - [ ] Setting up tournament server for other AI to play against/rank. - [ ] Using lookups for boards to choose best move without searching (especially at the start) -- [ ] Uisng an evolutionary algorithm to tune parameters +- [ ] Using a genetic algorithm to tune parameters - [ ] Piece Values - [ ] How deep to search at any given time -Possible Optimizations: +Possible Optimizations: - [ ] Using premade boards for a lot of masks. NOTE: This actually may end up slower because the frequent lookups may thrash the cache diff --git a/chess-lib/Cargo.toml b/chess-lib/Cargo.toml new file mode 100644 index 0000000..0ee574e --- /dev/null +++ b/chess-lib/Cargo.toml @@ -0,0 +1,48 @@ +[package] +name = "chess" +version = "0.1.0" +authors = ["Jacob Gardner "] +edition = "2018" + +[lib] +name = "chess_lib" +path = "src/lib.rs" + +[features] +strict = [] + +[dependencies] +num = "^0.2" +num-derive = "^0.2" +num-traits = "^0.2" +uncover = "^0.1.1" +lazy_static = "^1.2.0" +variant_count = "1.0.0" + +[dev-dependencies] +criterion = "^0.2.5" +snapshot = { git = "https://github.com/jacobgardner/snapshot-rs.git", branch = "hjson" } + +[[bench]] +name = "pawn_generation" +harness = false + +[[bench]] +name = "rook_generation" +harness = false + +[[bench]] +name = "knight_generation" +harness = false + +[[bench]] +name = "bishop_generation" +harness = false + +[[bench]] +name = "queen_generation" +harness = false + +[[bench]] +name = "king_generation" +harness = false \ No newline at end of file diff --git a/benches/bishop_generation.rs b/chess-lib/benches/bishop_generation.rs similarity index 100% rename from benches/bishop_generation.rs rename to chess-lib/benches/bishop_generation.rs diff --git a/benches/king_generation.rs b/chess-lib/benches/king_generation.rs similarity index 100% rename from benches/king_generation.rs rename to chess-lib/benches/king_generation.rs diff --git a/benches/knight_generation.rs b/chess-lib/benches/knight_generation.rs similarity index 100% rename from benches/knight_generation.rs rename to chess-lib/benches/knight_generation.rs diff --git a/benches/pawn_generation.rs b/chess-lib/benches/pawn_generation.rs similarity index 100% rename from benches/pawn_generation.rs rename to chess-lib/benches/pawn_generation.rs diff --git a/benches/queen_generation.rs b/chess-lib/benches/queen_generation.rs similarity index 100% rename from benches/queen_generation.rs rename to chess-lib/benches/queen_generation.rs diff --git a/benches/rook_generation.rs b/chess-lib/benches/rook_generation.rs similarity index 100% rename from benches/rook_generation.rs rename to chess-lib/benches/rook_generation.rs diff --git a/chess-lib/chess-lib/tests/__snapshots__/bishop_move_generation.rs.snap b/chess-lib/chess-lib/tests/__snapshots__/bishop_move_generation.rs.snap new file mode 100644 index 0000000..b479e6a --- /dev/null +++ b/chess-lib/chess-lib/tests/__snapshots__/bishop_move_generation.rs.snap @@ -0,0 +1,1135 @@ +{ + "bishop_move_generation::test_generate_black_bishop_moves": + { + file: + [ + chess-lib + tests + bishop_move_generation.rs + ] + module_path: bishop_move_generation + test_function: test_generate_black_bishop_moves + recorded_value: + [ + + ''' + First Move + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bg1f2 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b b · · ║ 15 + 0x00 1 ║ · · · · N · · b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bg1h2 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · b ║ 15 + 0x00 1 ║ · · · · N · · b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bg1e3 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · b R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · · b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bg1d4 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b b · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · · b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bg1c5 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · b · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · · b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bg1b6 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · b · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · · b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bg1a7 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ b · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · · b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bh1g2 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · b · ║ 15 + 0x00 1 ║ · · · · N · b · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bh1xf3 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · b · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be2d1 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · b N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be2f1 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N b b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be2d3 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · b · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be2xf3 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · b · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4a2 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ b · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4b3 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · b · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4d3 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · b · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4b5 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · b · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4d5 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · b · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4a6 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ b · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4e6 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · b b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4f7 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · b · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bc4g8 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · b · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6a1 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ b · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6b2 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · b · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6c3 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · b · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6d4 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b b · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6xh4 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · b ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6e5 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · b · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6g5 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · b · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6e7 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · b · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6g7 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · b · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6d8 + + ╔═════════════════╗ + 0x38 8 ║ b · · b N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bf6h8 + + ╔═════════════════╗ + 0x38 8 ║ b · · · N · · b ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ba8xf3 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · b · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ba8e4 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · b · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ba8d5 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · b · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ba8c6 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · b · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ba8b7 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · b · · · · · · ║ 55 + 0x28 6 ║ · · · · · b · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · b · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · b · · · ║ 15 + 0x00 1 ║ · · · · N · b b ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + ] + } + "bishop_move_generation::test_generate_white_bishop_moves": + { + file: + [ + chess-lib + tests + bishop_move_generation.rs + ] + module_path: bishop_move_generation + test_function: test_generate_white_bishop_moves + recorded_value: + [ + + ''' + First Move + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd1c2 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r B · · · · · ║ 15 + 0x00 1 ║ · · · · · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd1e2 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · B · · · ║ 15 + 0x00 1 ║ · · · · · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd1xb3 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · B · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd1f3 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · B · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd1g4 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · B p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd1h5 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · B ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bh1g2 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · B · ║ 15 + 0x00 1 ║ · · · B · · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bh1f3 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · B · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be4b1 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · B · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be4c2 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r B · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be4g2 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · B · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be4d3 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · B · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be4f3 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · B · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be4f5 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · B · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be4g6 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · B · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Be4h7 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r B ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd5xb3 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · B · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd5c4 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · B · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd5c6 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · B · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd5e6 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd5b7 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · B · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd5f7 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · · · ║ 63 + 0x30 7 ║ · · · · · B r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Bd5g8 + + ╔═════════════════╗ + 0x38 8 ║ B · · n · · B · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ba8c6 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · B · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ba8b7 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · B · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · B · · · · ║ 39 + 0x18 4 ║ · · · · B · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · B · · · B ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + ] + } +} \ No newline at end of file diff --git a/tests/__snapshots__/castling_move_generation.rs.snap b/chess-lib/chess-lib/tests/__snapshots__/castling_move_generation.rs.snap similarity index 68% rename from tests/__snapshots__/castling_move_generation.rs.snap rename to chess-lib/chess-lib/tests/__snapshots__/castling_move_generation.rs.snap index 6d6232f..d4bd0fb 100644 --- a/tests/__snapshots__/castling_move_generation.rs.snap +++ b/chess-lib/chess-lib/tests/__snapshots__/castling_move_generation.rs.snap @@ -3,6 +3,7 @@ { file: [ + chess-lib tests castling_move_generation.rs ] @@ -15,82 +16,82 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8E7 + Ke8e7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · · · ♜ ║ 63 - 0x30 7 ║ · · · · ♚ · · · ║ 55 + 0x38 8 ║ r · · · · · · r ║ 63 + 0x30 7 ║ · · · · k · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8F7 + Ke8f7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · · · ♜ ║ 63 - 0x30 7 ║ · · · · · ♚ · · ║ 55 + 0x38 8 ║ r · · · · · · r ║ 63 + 0x30 7 ║ · · · · · k · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8D8 + Ke8d8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♚ · · · ♜ ║ 63 + 0x38 8 ║ r · · k · · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8F8 + Ke8f8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · ♚ · ♜ ║ 63 + 0x38 8 ║ r · · · · k · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -101,6 +102,7 @@ { file: [ + chess-lib tests castling_move_generation.rs ] @@ -113,99 +115,99 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BB5E2 + Bb5e2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 - 0x08 2 ║ · · · · ♗ · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x10 3 ║ · · · · r · · · ║ 23 + 0x08 2 ║ · · · · B · · · ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1D1 + Ke1d1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · ♔ · · · ♖ ║ 7 + 0x00 1 ║ R · · K · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1F1 + Ke1f1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · · ♔ · ♖ ║ 7 + 0x00 1 ║ R · · · · K · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1D2 + Ke1d2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 - 0x08 2 ║ · · · ♔ · · · · ║ 15 - 0x00 1 ║ ♖ · · · · · · ♖ ║ 7 + 0x10 3 ║ · · · · r · · · ║ 23 + 0x08 2 ║ · · · K · · · · ║ 15 + 0x00 1 ║ R · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1F2 + Ke1f2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 - 0x08 2 ║ · · · · · ♔ · · ║ 15 - 0x00 1 ║ ♖ · · · · · · ♖ ║ 7 + 0x10 3 ║ · · · · r · · · ║ 23 + 0x08 2 ║ · · · · · K · · ║ 15 + 0x00 1 ║ R · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -216,6 +218,7 @@ { file: [ + chess-lib tests castling_move_generation.rs ] @@ -228,677 +231,677 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8xA1 + Ra8xa1 ╔═════════════════╗ - 0x38 8 ║ · · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ · · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♜ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ r · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A2 + Ra8a2 ╔═════════════════╗ - 0x38 8 ║ · · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ · · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♜ · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x08 2 ║ r · · · · · · · ║ 15 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A3 + Ra8a3 ╔═════════════════╗ - 0x38 8 ║ · · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ · · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♜ · · · · · · · ║ 23 + 0x10 3 ║ r · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A4 + Ra8a4 ╔═════════════════╗ - 0x38 8 ║ · · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ · · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♜ · · · · · · · ║ 31 + 0x18 4 ║ r · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A5 + Ra8a5 ╔═════════════════╗ - 0x38 8 ║ · · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ · · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♜ · · · · · · · ║ 39 + 0x20 5 ║ r · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A6 + Ra8a6 ╔═════════════════╗ - 0x38 8 ║ · · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ · · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♜ · · · · · · · ║ 47 + 0x28 6 ║ r · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A7 + Ra8a7 ╔═════════════════╗ - 0x38 8 ║ · · · ♛ ♚ · ♞ ♜ ║ 63 - 0x30 7 ║ ♜ · · · · · · · ║ 55 + 0x38 8 ║ · · · q k · n r ║ 63 + 0x30 7 ║ r · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8B8 + Ra8b8 ╔═════════════════╗ - 0x38 8 ║ · ♜ · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ · r · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8C8 + Ra8c8 ╔═════════════════╗ - 0x38 8 ║ · · ♜ ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ · · r q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8xH1 + Rh8xh1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ · ║ 63 + 0x38 8 ║ r · · q k · n · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♜ ║ 7 + 0x00 1 ║ R · B · K B · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H2 + Rh8h2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ · ║ 63 + 0x38 8 ║ r · · q k · n · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · · · ♜ ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x08 2 ║ · · · · · · · r ║ 15 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H3 + Rh8h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ · ║ 63 + 0x38 8 ║ r · · q k · n · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · · · ♜ ║ 23 + 0x10 3 ║ · · · · · · · r ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H4 + Rh8h4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ · ║ 63 + 0x38 8 ║ r · · q k · n · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♜ ║ 31 + 0x18 4 ║ · · · · · · · r ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H5 + Rh8h5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ · ║ 63 + 0x38 8 ║ r · · q k · n · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · ♜ ║ 39 + 0x20 5 ║ · · · · · · · r ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H6 + Rh8h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ · ║ 63 + 0x38 8 ║ r · · q k · n · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · ♜ ║ 47 + 0x28 6 ║ · · · · · · · r ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H7 + Rh8h7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ · ║ 63 - 0x30 7 ║ · · · · · · · ♜ ║ 55 + 0x38 8 ║ r · · q k · n · ║ 63 + 0x30 7 ║ · · · · · · · r ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG8F6 + Ng8f6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · q k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG8H6 + Ng8h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · q k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · ♞ ║ 47 + 0x28 6 ║ · · · · · · · n ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG8E7 + Ng8e7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · · ♜ ║ 63 - 0x30 7 ║ · · · · ♞ · · · ║ 55 + 0x38 8 ║ r · · q k · · r ║ 63 + 0x30 7 ║ · · · · n · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8D1 + Qd8d1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ ♛ ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B q K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8D2 + Qd8d2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · ♛ · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x08 2 ║ · · · q · · · · ║ 15 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8D3 + Qd8d3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · ♛ · · · · ║ 23 + 0x10 3 ║ · · · q · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8D4 + Qd8d4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · ♛ · · · · ║ 31 + 0x18 4 ║ · · · q · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8H4 + Qd8h4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♛ ║ 31 + 0x18 4 ║ · · · · · · · q ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8A5 + Qd8a5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♛ · · · · · · · ║ 39 + 0x20 5 ║ q · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8D5 + Qd8d5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♛ · · · · ║ 39 + 0x20 5 ║ · · · q · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8G5 + Qd8g5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · ♛ · ║ 39 + 0x20 5 ║ · · · · · · q · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8B6 + Qd8b6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · ♛ · · · · · · ║ 47 + 0x28 6 ║ · q · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8D6 + Qd8d6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · ♛ · · · · ║ 47 + 0x28 6 ║ · · · q · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8F6 + Qd8f6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 + 0x28 6 ║ · · · · · q · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8C7 + Qd8c7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 - 0x30 7 ║ · · ♛ · · · · · ║ 55 + 0x38 8 ║ r · · · k · n r ║ 63 + 0x30 7 ║ · · q · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8D7 + Qd8d7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 - 0x30 7 ║ · · · ♛ · · · · ║ 55 + 0x38 8 ║ r · · · k · n r ║ 63 + 0x30 7 ║ · · · q · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8E7 + Qd8e7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♞ ♜ ║ 63 - 0x30 7 ║ · · · · ♛ · · · ║ 55 + 0x38 8 ║ r · · · k · n r ║ 63 + 0x30 7 ║ · · · · q · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8B8 + Qd8b8 ╔═════════════════╗ - 0x38 8 ║ ♜ ♛ · · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r q · · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - QD8C8 + Qd8c8 ╔═════════════════╗ - 0x38 8 ║ ♜ · ♛ · ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · q · k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8D7 + Ke8d7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ · · ♞ ♜ ║ 63 - 0x30 7 ║ · · · ♚ · · · · ║ 55 + 0x38 8 ║ r · · q · · n r ║ 63 + 0x30 7 ║ · · · k · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8E7 + Ke8e7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ · · ♞ ♜ ║ 63 - 0x30 7 ║ · · · · ♚ · · · ║ 55 + 0x38 8 ║ r · · q · · n r ║ 63 + 0x30 7 ║ · · · · k · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8F7 + Ke8f7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ · · ♞ ♜ ║ 63 - 0x30 7 ║ · · · · · ♚ · · ║ 55 + 0x38 8 ║ r · · q · · n r ║ 63 + 0x30 7 ║ · · · · · k · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8F8 + Ke8f8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ · ♚ ♞ ♜ ║ 63 + 0x38 8 ║ r · · q · k n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -909,6 +912,7 @@ { file: [ + chess-lib tests castling_move_generation.rs ] @@ -921,558 +925,558 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1B1 + Ra1b1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · ♖ ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ · R B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A2 + Ra1a2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♖ · · · · · · · ║ 15 - 0x00 1 ║ · · ♗ · ♔ ♗ · ♖ ║ 7 + 0x08 2 ║ R · · · · · · · ║ 15 + 0x00 1 ║ · · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A3 + Ra1a3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♖ · · · · · · · ║ 23 + 0x10 3 ║ R · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ · · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A4 + Ra1a4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♖ · · · · · · · ║ 31 + 0x18 4 ║ R · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ · · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A5 + Ra1a5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♖ · · · · · · · ║ 39 + 0x20 5 ║ R · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ · · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A6 + Ra1a6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♖ · · · · · · · ║ 47 + 0x28 6 ║ R · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ · · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A7 + Ra1a7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 - 0x30 7 ║ ♖ · · · · · · · ║ 55 + 0x38 8 ║ r · · q k · n r ║ 63 + 0x30 7 ║ R · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ · · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1xA8 + Ra1xa8 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ R · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♗ · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ · · B · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1G1 + Rh1g1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ ♖ · ║ 7 + 0x00 1 ║ R · B · K B R · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H2 + Rh1h2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · · · ♖ ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · · ║ 7 + 0x08 2 ║ · · · · · · · R ║ 15 + 0x00 1 ║ R · B · K B · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H3 + Rh1h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · · · ♖ ║ 23 + 0x10 3 ║ · · · · · · · R ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · · ║ 7 + 0x00 1 ║ R · B · K B · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H4 + Rh1h4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♖ ║ 31 + 0x18 4 ║ · · · · · · · R ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · · ║ 7 + 0x00 1 ║ R · B · K B · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H5 + Rh1h5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · ♖ ║ 39 + 0x20 5 ║ · · · · · · · R ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · · ║ 7 + 0x00 1 ║ R · B · K B · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H6 + Rh1h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · ♖ ║ 47 + 0x28 6 ║ · · · · · · · R ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · · ║ 7 + 0x00 1 ║ R · B · K B · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H7 + Rh1h7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 - 0x30 7 ║ · · · · · · · ♖ ║ 55 + 0x38 8 ║ r · · q k · n r ║ 63 + 0x30 7 ║ · · · · · · · R ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · · ║ 7 + 0x00 1 ║ R · B · K B · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1xH8 + Rh1xh8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♖ ║ 63 + 0x38 8 ║ r · · q k · n R ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ ♗ · · ║ 7 + 0x00 1 ║ R · B · K B · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BC1B2 + Bc1b2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♗ · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♗ · ♖ ║ 7 + 0x08 2 ║ · B · · · · · · ║ 15 + 0x00 1 ║ R · · · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BC1D2 + Bc1d2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · ♗ · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♗ · ♖ ║ 7 + 0x08 2 ║ · · · B · · · · ║ 15 + 0x00 1 ║ R · · · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BC1A3 + Bc1a3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♗ · · · · · · · ║ 23 + 0x10 3 ║ B · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · · · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BC1E3 + Bc1e3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♗ · · · ║ 23 + 0x10 3 ║ · · · · B · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · · · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BC1F4 + Bc1f4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · ♗ · · ║ 31 + 0x18 4 ║ · · · · · B · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · · · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BC1G5 + Bc1g5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · ♗ · ║ 39 + 0x20 5 ║ · · · · · · B · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · · · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BC1H6 + Bc1h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · ♗ ║ 47 + 0x28 6 ║ · · · · · · · B ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♗ · ♖ ║ 7 + 0x00 1 ║ R · · · K B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BF1E2 + Bf1e2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♗ · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ · · ♖ ║ 7 + 0x08 2 ║ · · · · B · · · ║ 15 + 0x00 1 ║ R · B · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BF1G2 + Bf1g2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · · ♗ · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ · · ♖ ║ 7 + 0x08 2 ║ · · · · · · B · ║ 15 + 0x00 1 ║ R · B · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BF1D3 + Bf1d3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · ♗ · · · · ║ 23 + 0x10 3 ║ · · · B · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · B · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BF1H3 + Bf1h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · · · ♗ ║ 23 + 0x10 3 ║ · · · · · · · B ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · B · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BF1C4 + Bf1c4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♗ · · · · · ║ 31 + 0x18 4 ║ · · B · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · B · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BF1B5 + Bf1b5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♗ · · · · · · ║ 39 + 0x20 5 ║ · B · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · B · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BF1A6 + Bf1a6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♗ · · · · · · · ║ 47 + 0x28 6 ║ B · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · B · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1E2 + Ke1e2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♔ · · · ║ 15 - 0x00 1 ║ ♖ · ♗ · · ♗ · ♖ ║ 7 + 0x08 2 ║ · · · · K · · · ║ 15 + 0x00 1 ║ R · B · · B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1F2 + Ke1f2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♛ ♚ · ♞ ♜ ║ 63 + 0x38 8 ║ r · · q k · n r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · ♔ · · ║ 15 - 0x00 1 ║ ♖ · ♗ · · ♗ · ♖ ║ 7 + 0x08 2 ║ · · · · · K · · ║ 15 + 0x00 1 ║ R · B · · B · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -1483,6 +1487,7 @@ { file: [ + chess-lib tests castling_move_generation.rs ] @@ -1495,660 +1500,660 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF3F1 + Rf3f1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ · · · ║ 23 + 0x10 3 ║ · · · · b · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♜ · ♖ ║ 7 + 0x00 1 ║ R · · · K r · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF3F2 + Rf3f2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ · · · ║ 23 - 0x08 2 ║ · · · · · ♜ · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x10 3 ║ · · · · b · · · ║ 23 + 0x08 2 ║ · · · · · r · · ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF3G3 + Rf3g3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ · ♜ · ║ 23 + 0x10 3 ║ · · · · b · r · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF3H3 + Rf3h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ · · ♜ ║ 23 + 0x10 3 ║ · · · · b · · r ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF3F4 + Rf3f4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ · · · · · ♜ · · ║ 31 - 0x10 3 ║ · · · · ♝ · · · ║ 23 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ · · · · · r · · ║ 31 + 0x10 3 ║ · · · · b · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF3xF5 + Rf3xf5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♜ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · r · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ · · · ║ 23 + 0x10 3 ║ · · · · b · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8xA1 + Ra8xa1 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♜ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ r · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A2 + Ra8a2 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 - 0x08 2 ║ ♜ · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x10 3 ║ · · · · b r · · ║ 23 + 0x08 2 ║ r · · · · · · · ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A3 + Ra8a3 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♜ · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ r · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A4 + Ra8a4 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ ♜ · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ r · · · · · · · ║ 31 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A5 + Ra8a5 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ ♜ · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ r · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A6 + Ra8a6 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♜ · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ r · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A7 + Ra8a7 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ ♜ · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x38 8 ║ · · · · k · · r ║ 63 + 0x30 7 ║ r · · · · · · · ║ 55 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8B8 + Ra8b8 ╔═════════════════╗ - 0x38 8 ║ · ♜ · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · r · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8C8 + Ra8c8 ╔═════════════════╗ - 0x38 8 ║ · · ♜ · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · r · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8D8 + Ra8d8 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · r k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8xH1 + Rh8xh1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♜ ║ 7 + 0x00 1 ║ R · · · K · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H2 + Rh8h2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 - 0x08 2 ║ · · · · · · · ♜ ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x10 3 ║ · · · · b r · · ║ 23 + 0x08 2 ║ · · · · · · · r ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H3 + Rh8h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · ♜ ║ 23 + 0x10 3 ║ · · · · b r · r ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H4 + Rh8h4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ · · · · · · · ♜ ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ · · · · · · · r ║ 31 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H5 + Rh8h5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · ♜ ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · r ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H6 + Rh8h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · ♜ ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · r ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H7 + Rh8h7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 - 0x30 7 ║ · · · · · · · ♜ ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x38 8 ║ r · · · k · · · ║ 63 + 0x30 7 ║ · · · · · · · r ║ 55 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8F8 + Rh8f8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ ♜ · · ║ 63 + 0x38 8 ║ r · · · k r · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8G8 + Rh8g8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♜ · ║ 63 + 0x38 8 ║ r · · · k · r · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3C1 + Be3c1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · ♝ · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · b · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3G1 + Be3g1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · ♝ ♖ ║ 7 + 0x00 1 ║ R · · · K · b R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3D2 + Be3d2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 - 0x08 2 ║ · · · ♝ · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x10 3 ║ · · · · · r · · ║ 23 + 0x08 2 ║ · · · b · · · · ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3F2 + Be3f2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 - 0x08 2 ║ · · · · · ♝ · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x10 3 ║ · · · · · r · · ║ 23 + 0x08 2 ║ · · · · · b · · ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3D4 + Be3d4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ · · · ♝ · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ · · · b · · · · ║ 31 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3F4 + Be3f4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ · · · · · ♝ · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ · · · · · b · · ║ 31 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3C5 + Be3c5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · ♝ · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · b · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3G5 + Be3g5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ ♝ · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R b · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3B6 + Be3b6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · ♝ · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · b · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3H6 + Be3h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · ♝ ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · b ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE3A7 + Be3a7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ ♝ · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x38 8 ║ r · · · k · · r ║ 63 + 0x30 7 ║ b · · · · · · · ║ 55 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 + 0x10 3 ║ · · · · · r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8E7 + Ke8e7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · · · ♜ ║ 63 - 0x30 7 ║ · · · · ♚ · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x38 8 ║ r · · · · · · r ║ 63 + 0x30 7 ║ · · · · k · · · ║ 55 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8D8 + Ke8d8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♚ · · · ♜ ║ 63 + 0x38 8 ║ r · · k · · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -2159,6 +2164,7 @@ { file: [ + chess-lib tests castling_move_generation.rs ] @@ -2171,711 +2177,711 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1B1 + Ra1b1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · ♖ · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · R · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1C1 + Ra1c1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♖ · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · R · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1D1 + Ra1d1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · R K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A2 + Ra1a2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 - 0x08 2 ║ ♖ · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x10 3 ║ · · · · b r · · ║ 23 + 0x08 2 ║ R · · · · · · · ║ 15 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A3 + Ra1a3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♖ · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ R · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A4 + Ra1a4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ ♖ · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ R · · · · · · · ║ 31 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A5 + Ra1a5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ ♖ · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ R · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A6 + Ra1a6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♖ · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ R · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A7 + Ra1a7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ ♖ · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x38 8 ║ r · · · k · · r ║ 63 + 0x30 7 ║ R · · · · · · · ║ 55 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1xA8 + Ra1xa8 ╔═════════════════╗ - 0x38 8 ║ ♖ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ R · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1F1 + Rh1f1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♖ · · ║ 7 + 0x00 1 ║ R · · · K R · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1G1 + Rh1g1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · ♖ · ║ 7 + 0x00 1 ║ R · · · K · R · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H2 + Rh1h2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 - 0x08 2 ║ · · · · · · · ♖ ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x10 3 ║ · · · · b r · · ║ 23 + 0x08 2 ║ · · · · · · · R ║ 15 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H3 + Rh1h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · ♖ ║ 23 + 0x10 3 ║ · · · · b r · R ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H4 + Rh1h4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ · · · · · · · ♖ ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ · · · · · · · R ║ 31 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H5 + Rh1h5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · ♖ ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · R ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H6 + Rh1h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · ♖ ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · R ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H7 + Rh1h7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ · · · · · · · ♖ ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x38 8 ║ r · · · k · · r ║ 63 + 0x30 7 ║ · · · · · · · R ║ 55 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1xH8 + Rh1xh8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♖ ║ 63 + 0x38 8 ║ r · · · k · · R ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5xF3 + Rf5xf3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 + 0x28 6 ║ · · · · B · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♖ · · ║ 23 + 0x10 3 ║ · · · · b R · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5F4 + Rf5f4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 + 0x28 6 ║ · · · · B · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · ♖ · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x18 4 ║ · · · · · R · · ║ 31 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5A5 + Rf5a5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ ♖ · · · · · · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ R · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5B5 + Rf5b5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · ♖ · · · · · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · R · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5C5 + Rf5c5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · ♖ · · · · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · R · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5D5 + Rf5d5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · R · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5E5 + Rf5e5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · ♖ · · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · R · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5G5 + Rf5g5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · · ♖ · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · · R · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5H5 + Rf5h5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · · · ♖ ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · · · R ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5F6 + Rf5f6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ ♖ · · ║ 47 + 0x28 6 ║ · · · · B R · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5F7 + Rf5f7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ · · · · · ♖ · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 + 0x38 8 ║ r · · · k · · r ║ 63 + 0x30 7 ║ · · · · · R · · ║ 55 + 0x28 6 ║ · · · · B · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF5F8 + Rf5f8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ ♖ · ♜ ║ 63 + 0x38 8 ║ r · · · k R · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 + 0x28 6 ║ · · · · B · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE6A2 + Be6a2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 - 0x08 2 ║ ♗ · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x10 3 ║ · · · · b r · · ║ 23 + 0x08 2 ║ B · · · · · · · ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE6B3 + Be6b3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · ♗ · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · B · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE6C4 + Be6c4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ · · ♗ · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ · · B · · · · · ║ 31 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE6D5 + Be6d5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · ♖ · · ║ 39 + 0x20 5 ║ · · · B · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE6D7 + Be6d7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ · · · ♗ · · · · ║ 55 + 0x38 8 ║ r · · · k · · r ║ 63 + 0x30 7 ║ · · · B · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE6F7 + Be6f7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ · · · · · ♗ · · ║ 55 + 0x38 8 ║ r · · · k · · r ║ 63 + 0x30 7 ║ · · · · · B · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE6C8 + Be6c8 ╔═════════════════╗ - 0x38 8 ║ ♜ · ♗ · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · B · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - BE6G8 + Be6g8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♗ ♜ ║ 63 + 0x38 8 ║ r · · · k · B r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1D1 + Ke1d1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 + 0x10 3 ║ · · · · b r · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · ♔ · · · ♖ ║ 7 + 0x00 1 ║ R · · K · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1E2 + Ke1e2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 + 0x28 6 ║ · · · · B · · · ║ 47 + 0x20 5 ║ · · · · · R · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♝ ♜ · · ║ 23 - 0x08 2 ║ · · · · ♔ · · · ║ 15 - 0x00 1 ║ ♖ · · · · · · ♖ ║ 7 + 0x10 3 ║ · · · · b r · · ║ 23 + 0x08 2 ║ · · · · K · · · ║ 15 + 0x00 1 ║ R · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -2886,6 +2892,7 @@ { file: [ + chess-lib tests castling_move_generation.rs ] @@ -2898,337 +2905,337 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8xA1 + Ra8xa1 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♜ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ r · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A2 + Ra8a2 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♜ · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x08 2 ║ r · · · · · · · ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A3 + Ra8a3 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♜ · · · · · · · ║ 23 + 0x10 3 ║ r · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A4 + Ra8a4 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♜ · · · · · · · ║ 31 + 0x18 4 ║ r · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A5 + Ra8a5 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♜ · · · · · · · ║ 39 + 0x20 5 ║ r · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A6 + Ra8a6 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♜ · · · · · · · ║ 47 + 0x28 6 ║ r · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A7 + Ra8a7 ╔═════════════════╗ - 0x38 8 ║ · · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ ♜ · · · · · · · ║ 55 + 0x38 8 ║ · · · · k · · r ║ 63 + 0x30 7 ║ r · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8B8 + Ra8b8 ╔═════════════════╗ - 0x38 8 ║ · ♜ · · ♚ · · ♜ ║ 63 + 0x38 8 ║ · r · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8C8 + Ra8c8 ╔═════════════════╗ - 0x38 8 ║ · · ♜ · ♚ · · ♜ ║ 63 + 0x38 8 ║ · · r · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8D8 + Ra8d8 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ ♚ · · ♜ ║ 63 + 0x38 8 ║ · · · r k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8xH1 + Rh8xh1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♜ ║ 7 + 0x00 1 ║ R · · · K · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H2 + Rh8h2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · · · ♜ ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x08 2 ║ · · · · · · · r ║ 15 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H3 + Rh8h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · · · ♜ ║ 23 + 0x10 3 ║ · · · · · · · r ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H4 + Rh8h4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♜ ║ 31 + 0x18 4 ║ · · · · · · · r ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H5 + Rh8h5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · ♜ ║ 39 + 0x20 5 ║ · · · · · · · r ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H6 + Rh8h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 + 0x38 8 ║ r · · · k · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · ♜ ║ 47 + 0x28 6 ║ · · · · · · · r ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8H7 + Rh8h7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · · ║ 63 - 0x30 7 ║ · · · · · · · ♜ ║ 55 + 0x38 8 ║ r · · · k · · · ║ 63 + 0x30 7 ║ · · · · · · · r ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8F8 + Rh8f8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ ♜ · · ║ 63 + 0x38 8 ║ r · · · k r · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH8G8 + Rh8g8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · ♜ · ║ 63 + 0x38 8 ║ r · · · k · r · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -3238,14 +3245,14 @@ O-O-O ╔═════════════════╗ - 0x38 8 ║ · · ♚ ♜ · · · ♜ ║ 63 + 0x38 8 ║ · · k r · · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -3255,99 +3262,99 @@ O-O ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · ♜ ♚ · ║ 63 + 0x38 8 ║ r · · · · r k · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8D7 + Ke8d7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · · · ♜ ║ 63 - 0x30 7 ║ · · · ♚ · · · · ║ 55 + 0x38 8 ║ r · · · · · · r ║ 63 + 0x30 7 ║ · · · k · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8E7 + Ke8e7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · · · ♜ ║ 63 - 0x30 7 ║ · · · · ♚ · · · ║ 55 + 0x38 8 ║ r · · · · · · r ║ 63 + 0x30 7 ║ · · · · k · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8F7 + Ke8f7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · · · ♜ ║ 63 - 0x30 7 ║ · · · · · ♚ · · ║ 55 + 0x38 8 ║ r · · · · · · r ║ 63 + 0x30 7 ║ · · · · · k · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8D8 + Ke8d8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · ♚ · · · ♜ ║ 63 + 0x38 8 ║ r · · k · · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE8F8 + Ke8f8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · · ♚ · ♜ ║ 63 + 0x38 8 ║ r · · · · k · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -3358,6 +3365,7 @@ { file: [ + chess-lib tests castling_move_generation.rs ] @@ -3370,337 +3378,337 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ R · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1B1 + Ra1b1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · ♖ · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · R · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1C1 + Ra1c1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♖ · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · R · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1D1 + Ra1d1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · R K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A2 + Ra1a2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♖ · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x08 2 ║ R · · · · · · · ║ 15 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A3 + Ra1a3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♖ · · · · · · · ║ 23 + 0x10 3 ║ R · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A4 + Ra1a4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♖ · · · · · · · ║ 31 + 0x18 4 ║ R · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A5 + Ra1a5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♖ · · · · · · · ║ 39 + 0x20 5 ║ R · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A6 + Ra1a6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♖ · · · · · · · ║ 47 + 0x28 6 ║ R · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1A7 + Ra1a7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ ♖ · · · · · · · ║ 55 + 0x38 8 ║ r · · · k · · r ║ 63 + 0x30 7 ║ R · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA1xA8 + Ra1xa8 ╔═════════════════╗ - 0x38 8 ║ ♖ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ R · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♖ ║ 7 + 0x00 1 ║ · · · · K · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1F1 + Rh1f1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ ♖ · · ║ 7 + 0x00 1 ║ R · · · K R · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1G1 + Rh1g1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · ♖ · ║ 7 + 0x00 1 ║ R · · · K · R · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H2 + Rh1h2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · · · ♖ ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x08 2 ║ · · · · · · · R ║ 15 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H3 + Rh1h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · · · ♖ ║ 23 + 0x10 3 ║ · · · · · · · R ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H4 + Rh1h4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♖ ║ 31 + 0x18 4 ║ · · · · · · · R ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H5 + Rh1h5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · ♖ ║ 39 + 0x20 5 ║ · · · · · · · R ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H6 + Rh1h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · ♖ ║ 47 + 0x28 6 ║ · · · · · · · R ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H7 + Rh1h7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 - 0x30 7 ║ · · · · · · · ♖ ║ 55 + 0x38 8 ║ r · · · k · · r ║ 63 + 0x30 7 ║ · · · · · · · R ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1xH8 + Rh1xh8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♖ ║ 63 + 0x38 8 ║ r · · · k · · R ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · ♔ · · · ║ 7 + 0x00 1 ║ R · · · K · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -3710,14 +3718,14 @@ O-O-O ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♔ ♖ · · · ♖ ║ 7 + 0x00 1 ║ · · K R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -3727,99 +3735,99 @@ O-O ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · · ♖ ♔ · ║ 7 + 0x00 1 ║ R · · · · R K · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1D1 + Ke1d1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · ♔ · · · ♖ ║ 7 + 0x00 1 ║ R · · K · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1F1 + Ke1f1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · · ♔ · ♖ ║ 7 + 0x00 1 ║ R · · · · K · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1D2 + Ke1d2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · ♔ · · · · ║ 15 - 0x00 1 ║ ♖ · · · · · · ♖ ║ 7 + 0x08 2 ║ · · · K · · · · ║ 15 + 0x00 1 ║ R · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1E2 + Ke1e2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♔ · · · ║ 15 - 0x00 1 ║ ♖ · · · · · · ♖ ║ 7 + 0x08 2 ║ · · · · K · · · ║ 15 + 0x00 1 ║ R · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - KE1F2 + Ke1f2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♚ · · ♜ ║ 63 + 0x38 8 ║ r · · · k · · r ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · ♔ · · ║ 15 - 0x00 1 ║ ♖ · · · · · · ♖ ║ 7 + 0x08 2 ║ · · · · · K · · ║ 15 + 0x00 1 ║ R · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H diff --git a/tests/__snapshots__/default_board_generation.rs.snap b/chess-lib/chess-lib/tests/__snapshots__/default_board_generation.rs.snap similarity index 56% rename from tests/__snapshots__/default_board_generation.rs.snap rename to chess-lib/chess-lib/tests/__snapshots__/default_board_generation.rs.snap index 77b15f0..e4c126a 100644 --- a/tests/__snapshots__/default_board_generation.rs.snap +++ b/chess-lib/chess-lib/tests/__snapshots__/default_board_generation.rs.snap @@ -3,6 +3,7 @@ { file: [ + chess-lib tests default_board_generation.rs ] @@ -15,354 +16,354 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PA7A5 + Pa7a5 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ · ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ · p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♟ · · · · · · · ║ 39 + 0x20 5 ║ p · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PA7A6 + Pa7a6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ · ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 - 0x28 6 ║ ♟ · · · · · · · ║ 47 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ · p p p p p p p ║ 55 + 0x28 6 ║ p · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PB7B5 + Pb7b5 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ · ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p · p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♟ · · · · · · ║ 39 + 0x20 5 ║ · p · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PB7B6 + Pb7b6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ · ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 - 0x28 6 ║ · ♟ · · · · · · ║ 47 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p · p p p p p p ║ 55 + 0x28 6 ║ · p · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PC7C5 + Pc7c5 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ · ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p · p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · ♟ · · · · · ║ 39 + 0x20 5 ║ · · p · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PC7C6 + Pc7c6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ · ♟ ♟ ♟ ♟ ♟ ║ 55 - 0x28 6 ║ · · ♟ · · · · · ║ 47 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p · p p p p p ║ 55 + 0x28 6 ║ · · p · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PD7D5 + Pd7d5 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ · ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p · p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♟ · · · · ║ 39 + 0x20 5 ║ · · · p · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PD7D6 + Pd7d6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ · ♟ ♟ ♟ ♟ ║ 55 - 0x28 6 ║ · · · ♟ · · · · ║ 47 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p · p p p p ║ 55 + 0x28 6 ║ · · · p · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PE7E5 + Pe7e5 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ · ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p · p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♟ · · · ║ 39 + 0x20 5 ║ · · · · p · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PE7E6 + Pe7e6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ · ♟ ♟ ♟ ║ 55 - 0x28 6 ║ · · · · ♟ · · · ║ 47 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p · p p p ║ 55 + 0x28 6 ║ · · · · p · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PF7F5 + Pf7f5 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ · ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p · p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♟ · · ║ 39 + 0x20 5 ║ · · · · · p · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PF7F6 + Pf7f6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ · ♟ ♟ ║ 55 - 0x28 6 ║ · · · · · ♟ · · ║ 47 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p · p p ║ 55 + 0x28 6 ║ · · · · · p · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PG7G5 + Pg7g5 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ · ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p · p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · ♟ · ║ 39 + 0x20 5 ║ · · · · · · p · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PG7G6 + Pg7g6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ · ♟ ║ 55 - 0x28 6 ║ · · · · · · ♟ · ║ 47 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p · p ║ 55 + 0x28 6 ║ · · · · · · p · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PH7H5 + Ph7h5 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ · ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · ♟ ║ 39 + 0x20 5 ║ · · · · · · · p ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PH7H6 + Ph7h6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ · ║ 55 - 0x28 6 ║ · · · · · · · ♟ ║ 47 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p · ║ 55 + 0x28 6 ║ · · · · · · · p ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NB8A6 + Nb8a6 ╔═════════════════╗ - 0x38 8 ║ ♜ · ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 - 0x28 6 ║ ♞ · · · · · · · ║ 47 + 0x38 8 ║ r · b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 + 0x28 6 ║ n · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NB8C6 + Nb8c6 ╔═════════════════╗ - 0x38 8 ║ ♜ · ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 - 0x28 6 ║ · · ♞ · · · · · ║ 47 + 0x38 8 ║ r · b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 + 0x28 6 ║ · · n · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG8F6 + Ng8f6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ · ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x38 8 ║ r n b k q b · r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG8H6 + Ng8h6 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ · ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 - 0x28 6 ║ · · · · · · · ♞ ║ 47 + 0x38 8 ║ r n b k q b · r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 + 0x28 6 ║ · · · · · · · n ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H @@ -373,6 +374,7 @@ { file: [ + chess-lib tests default_board_generation.rs ] @@ -385,354 +387,354 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PA2A3 + Pa2a3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♙ · · · · · · · ║ 23 - 0x08 2 ║ · ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ P · · · · · · · ║ 23 + 0x08 2 ║ · P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PA2A4 + Pa2a4 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♙ · · · · · · · ║ 31 + 0x18 4 ║ P · · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ · P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PB2B3 + Pb2b3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · ♙ · · · · · · ║ 23 - 0x08 2 ║ ♙ · ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ · P · · · · · · ║ 23 + 0x08 2 ║ P · P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PB2B4 + Pb2b4 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · ♙ · · · · · · ║ 31 + 0x18 4 ║ · P · · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ · ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P · P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PC2C3 + Pc2c3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · ♙ · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ · ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ · · P · · · · · ║ 23 + 0x08 2 ║ P P · P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PC2C4 + Pc2c4 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♙ · · · · · ║ 31 + 0x18 4 ║ · · P · · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ · ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P · P P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PD2D3 + Pd2d3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · ♙ · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ · ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ · · · P · · · · ║ 23 + 0x08 2 ║ P P P · P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PD2D4 + Pd2d4 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · ♙ · · · · ║ 31 + 0x18 4 ║ · · · P · · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ · ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P · P P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PE2E3 + Pe2e3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · ♙ · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ · ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ · · · · P · · · ║ 23 + 0x08 2 ║ P P P P · P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PE2E4 + Pe2e4 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♙ · · · ║ 31 + 0x18 4 ║ · · · · P · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ · ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P · P P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PF2F3 + Pf2f3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♙ · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ · ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ · · · · · P · · ║ 23 + 0x08 2 ║ P P P P P · P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PF2F4 + Pf2f4 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · ♙ · · ║ 31 + 0x18 4 ║ · · · · · P · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ · ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P · P P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PG2G3 + Pg2g3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · · ♙ · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ · ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ · · · · · · P · ║ 23 + 0x08 2 ║ P P P P P P · P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PG2G4 + Pg2g4 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · ♙ · ║ 31 + 0x18 4 ║ · · · · · · P · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ · ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P · P ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PH2H3 + Ph2h3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · · · ♙ ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ · ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ · · · · · · · P ║ 23 + 0x08 2 ║ P P P P P P P · ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PH2H4 + Ph2h4 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♙ ║ 31 + 0x18 4 ║ · · · · · · · P ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ · ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x08 2 ║ P P P P P P P · ║ 15 + 0x00 1 ║ R N B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NB1A3 + Nb1a3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ ♘ · · · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ · ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ N · · · · · · · ║ 23 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R · B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NB1C3 + Nb1c3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · ♘ · · · · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ · ♗ ♔ ♕ ♗ ♘ ♖ ║ 7 + 0x10 3 ║ · · N · · · · · ║ 23 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R · B K Q B N R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG1F3 + Ng1f3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · ♘ · · ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ · ♖ ║ 7 + 0x10 3 ║ · · · · · N · · ║ 23 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG1H3 + Ng1h3 ╔═════════════════╗ - 0x38 8 ║ ♜ ♞ ♝ ♚ ♛ ♝ ♞ ♜ ║ 63 - 0x30 7 ║ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ║ 55 + 0x38 8 ║ r n b k q b n r ║ 63 + 0x30 7 ║ p p p p p p p p ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · · · · · ♘ ║ 23 - 0x08 2 ║ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ║ 15 - 0x00 1 ║ ♖ ♘ ♗ ♔ ♕ ♗ · ♖ ║ 7 + 0x10 3 ║ · · · · · · · N ║ 23 + 0x08 2 ║ P P P P P P P P ║ 15 + 0x00 1 ║ R N B K Q B · R ║ 7 ╚═════════════════╝ A B C D E F G H diff --git a/chess-lib/chess-lib/tests/__snapshots__/king_move_generation.rs.snap b/chess-lib/chess-lib/tests/__snapshots__/king_move_generation.rs.snap new file mode 100644 index 0000000..cc36555 --- /dev/null +++ b/chess-lib/chess-lib/tests/__snapshots__/king_move_generation.rs.snap @@ -0,0 +1,319 @@ +{ + "king_move_generation::test_generate_black_king_moves": + { + file: + [ + chess-lib + tests + king_move_generation.rs + ] + module_path: king_move_generation + test_function: test_generate_black_king_moves + recorded_value: + [ + + ''' + First Move + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · k · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kf6e5 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · k · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kf6g5 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · k · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kf6e6 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · k · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kf6e7 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · k · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + ] + } + "king_move_generation::test_generate_white_king_moves": + { + file: + [ + chess-lib + tests + king_move_generation.rs + ] + module_path: king_move_generation + test_function: test_generate_white_king_moves + recorded_value: + [ + + ''' + First Move + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · K · · · · ║ 39 + 0x18 4 ║ · · · · K · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kd1c1 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · K · · · · ║ 39 + 0x18 4 ║ · · · · K · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · K · · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kd1e1 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · K · · · · ║ 39 + 0x18 4 ║ · · · · K · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · K · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ke4d4 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · K · · · · ║ 39 + 0x18 4 ║ · · · K · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ke4f4 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · K · · · · ║ 39 + 0x18 4 ║ · · · · · K · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ke4e5 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · K K · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Ke4f5 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · K · K · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kd5c4 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · K · K · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kd5d4 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · K K · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kd5c5 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · K · · · · · ║ 39 + 0x18 4 ║ · · · · K · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kd5e5 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · K · · · ║ 39 + 0x18 4 ║ · · · · K · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Kd5d6 + + ╔═════════════════╗ + 0x38 8 ║ K · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · K · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · K · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · K · · · K ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + ] + } +} \ No newline at end of file diff --git a/tests/__snapshots__/knight_move_generation.rs.snap b/chess-lib/chess-lib/tests/__snapshots__/knight_move_generation.rs.snap similarity index 53% rename from tests/__snapshots__/knight_move_generation.rs.snap rename to chess-lib/chess-lib/tests/__snapshots__/knight_move_generation.rs.snap index a28f0d6..b54c4ef 100644 --- a/tests/__snapshots__/knight_move_generation.rs.snap +++ b/chess-lib/chess-lib/tests/__snapshots__/knight_move_generation.rs.snap @@ -3,6 +3,7 @@ { file: [ + chess-lib tests knight_move_generation.rs ] @@ -15,473 +16,473 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG1F3 + Ng1f3 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♞ · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♞ ║ 7 + 0x18 4 ║ · · n · · · · N ║ 31 + 0x10 3 ║ · · · · · n · · ║ 23 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · · n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NG1H3 + Ng1h3 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · · · ♞ ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♞ ║ 7 + 0x18 4 ║ · · n · · · · N ║ 31 + 0x10 3 ║ · · · · · · · n ║ 23 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · · n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NH1F2 + Nh1f2 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ ♞ · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ · ║ 7 + 0x08 2 ║ · · · · n n · · ║ 15 + 0x00 1 ║ · · · · N · n · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NH1G3 + Nh1g3 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · · ♞ · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ · ║ 7 + 0x18 4 ║ · · n · · · · N ║ 31 + 0x10 3 ║ · · · · · · n · ║ 23 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE2C1 + Ne2c1 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · ♞ · ♘ · ♞ ♞ ║ 7 + 0x00 1 ║ · · n · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE2C3 + Ne2c3 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 - 0x10 3 ║ · · ♞ · · · · · ║ 23 + 0x18 4 ║ · · n · · · · N ║ 31 + 0x10 3 ║ · · n · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE2G3 + Ne2g3 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · · ♞ · ║ 23 + 0x18 4 ║ · · n · · · · N ║ 31 + 0x10 3 ║ · · · · · · n · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE2D4 + Ne2d4 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ ♞ · · · ♘ ║ 31 + 0x18 4 ║ · · n n · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE2F4 + Ne2f4 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · ♞ · ♘ ║ 31 + 0x18 4 ║ · · n · · n · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NC4B2 + Nc4b2 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♞ · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · n · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NC4D2 + Nc4d2 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · ♞ ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · n n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NC4A3 + Nc4a3 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ ♞ · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ n · · · · · · · ║ 23 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NC4E3 + Nc4e3 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · ♞ · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · n · · · ║ 23 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NC4A5 + Nc4a5 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 - 0x20 5 ║ ♞ · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x28 6 ║ · · · · · n · · ║ 47 + 0x20 5 ║ n · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NC4E5 + Nc4e5 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 - 0x20 5 ║ · · · · ♞ · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x28 6 ║ · · · · · n · · ║ 47 + 0x20 5 ║ · · · · n · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NC4B6 + Nc4b6 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · ♞ · · · ♞ · · ║ 47 + 0x28 6 ║ · n · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NC4D6 + Nc4d6 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · ♞ · ♞ · · ║ 47 + 0x28 6 ║ · · · n · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NF6E4 + Nf6e4 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · ♞ · · ♘ ║ 31 + 0x18 4 ║ · · n · n · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NF6G4 + Nf6g4 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · ♞ ♘ ║ 31 + 0x18 4 ║ · · n · · · n N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NF6D5 + Nf6d5 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♞ · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x20 5 ║ · · · n · · · · ║ 39 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NF6H5 + Nf6h5 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 + 0x38 8 ║ n · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · ♞ ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x20 5 ║ · · · · · · · n ║ 39 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NF6D7 + Nf6d7 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · ♞ · · · · ║ 55 + 0x38 8 ║ n · · · N · · · ║ 63 + 0x30 7 ║ · · · n · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NF6H7 + Nf6h7 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · ♞ ║ 55 + 0x38 8 ║ n · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · n ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NF6xE8 + Nf6xe8 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♞ · · · ║ 63 + 0x38 8 ║ n · · · n · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NF6G8 + Nf6g8 ╔═════════════════╗ - 0x38 8 ║ ♞ · · · ♘ · ♞ · ║ 63 + 0x38 8 ║ n · · · N · n · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NA8B6 + Na8b6 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 + 0x38 8 ║ · · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · ♞ · · · ♞ · · ║ 47 + 0x28 6 ║ · n · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NA8C7 + Na8c7 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · ♞ · · · · · ║ 55 - 0x28 6 ║ · · · · · ♞ · · ║ 47 + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · n · · · · · ║ 55 + 0x28 6 ║ · · · · · n · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♞ · · · · ♘ ║ 31 + 0x18 4 ║ · · n · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♞ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♞ ♞ ║ 7 + 0x08 2 ║ · · · · n · · · ║ 15 + 0x00 1 ║ · · · · N · n n ║ 7 ╚═════════════════╝ A B C D E F G H @@ -492,6 +493,7 @@ { file: [ + chess-lib tests knight_move_generation.rs ] @@ -504,422 +506,422 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND1xB2 + Nd1xb2 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♘ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♘ ║ 7 + 0x08 2 ║ · N · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND1F2 + Nd1f2 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · ♘ · · ║ 15 - 0x00 1 ║ · · · · · · · ♘ ║ 7 + 0x08 2 ║ · r · · · N · · ║ 15 + 0x00 1 ║ · · · · · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND1C3 + Nd1c3 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 - 0x10 3 ║ · · ♘ · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♘ ║ 7 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 + 0x10 3 ║ · · N · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND1E3 + Nd1e3 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 - 0x10 3 ║ · · · · ♘ · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♘ ║ 7 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 + 0x10 3 ║ · · · · N · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NH1F2 + Nh1f2 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x08 2 ║ · r · · · N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NH1G3 + Nh1g3 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 - 0x10 3 ║ · · · · · · ♘ · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 + 0x10 3 ║ · · · · · · N · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE4D2 + Ne4d2 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · ♘ · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · N · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE4F2 + Ne4f2 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · N · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE4C3 + Ne4c3 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · · ♘ · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · · N · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE4G3 + Ne4g3 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · · · · · · ♘ · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · · · · · · N · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE4C5 + Ne4c5 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · ♘ ♘ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · N N · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE4G5 + Ne4g5 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · ♘ · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · N · · N · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE4D6 + Ne4d6 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · ♘ · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · N · · · · ║ 47 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NE4F6 + Ne4f6 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · ♘ · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · N · · ║ 47 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND5C3 + Nd5c3 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 - 0x10 3 ║ · · ♘ · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x18 4 ║ · · · · N · · p ║ 31 + 0x10 3 ║ · · N · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND5E3 + Nd5e3 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 - 0x10 3 ║ · · · · ♘ · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x18 4 ║ · · · · N · · p ║ 31 + 0x10 3 ║ · · · · N · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND5B4 + Nd5b4 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · ♘ · · ♘ · · ♟ ║ 31 + 0x18 4 ║ · N · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND5F4 + Nd5f4 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♘ ♘ · ♟ ║ 31 + 0x18 4 ║ · · · · N N · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND5B6 + Nd5b6 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · ♘ · · · · · · ║ 47 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · N · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND5F6 + Nd5f6 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · ♘ · · ║ 47 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · N · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND5C7 + Nd5c7 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · ♘ · · · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · N · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - ND5E7 + Nd5e7 ╔═════════════════╗ - 0x38 8 ║ ♘ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · ♘ · ♜ · ║ 55 + 0x38 8 ║ N · · n · · · · ║ 63 + 0x30 7 ║ · · · · N · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NA8B6 + Na8b6 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · ♘ · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · N · · · · · · ║ 47 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - NA8C7 + Na8c7 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · ♘ · · · ♜ · ║ 55 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · N · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♘ · · · · ║ 39 - 0x18 4 ║ · · · · ♘ · · ♟ ║ 31 + 0x20 5 ║ · · · N · · · · ║ 39 + 0x18 4 ║ · · · · N · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♘ · · · ♘ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · N · · · N ║ 7 ╚═════════════════╝ A B C D E F G H diff --git a/tests/__snapshots__/pawn_move_generation.rs.snap b/chess-lib/chess-lib/tests/__snapshots__/pawn_move_generation.rs.snap similarity index 50% rename from tests/__snapshots__/pawn_move_generation.rs.snap rename to chess-lib/chess-lib/tests/__snapshots__/pawn_move_generation.rs.snap index 0ff9e7a..7a66324 100644 --- a/tests/__snapshots__/pawn_move_generation.rs.snap +++ b/chess-lib/chess-lib/tests/__snapshots__/pawn_move_generation.rs.snap @@ -3,6 +3,7 @@ { file: [ + chess-lib tests pawn_move_generation.rs ] @@ -12,187 +13,187 @@ [ ''' - PD2D4 + Pd2d4 ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · ♟ · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♘ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · · · ║ 39 - 0x18 4 ║ · · · ♙ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · p · ║ 55 + 0x28 6 ║ N · · · · N · N ║ 47 + 0x20 5 ║ N · p · · · · · ║ 39 + 0x18 4 ║ · · · P p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PE2xD1=Q + Pe2xd1=Q ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · ♟ · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♘ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · · · ║ 39 - 0x18 4 ║ · · · ♙ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · p · ║ 55 + 0x28 6 ║ N · · · · N · N ║ 47 + 0x20 5 ║ N · p · · · · · ║ 39 + 0x18 4 ║ · · · P p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · ♘ · · ║ 15 - 0x00 1 ║ · · · ♛ · · · · ║ 7 + 0x08 2 ║ · · · · · N · · ║ 15 + 0x00 1 ║ · · · q · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PE2E1=Q + Pe2e1=Q ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · ♟ · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♘ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · · · ║ 39 - 0x18 4 ║ · · · ♙ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · p · ║ 55 + 0x28 6 ║ N · · · · N · N ║ 47 + 0x20 5 ║ N · p · · · · · ║ 39 + 0x18 4 ║ · · · P p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ ♛ · · · ║ 7 + 0x08 2 ║ · · · · · N · · ║ 15 + 0x00 1 ║ · · · N q · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PE4xD3e.p. + Pe4xd3e.p. ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · ♟ · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♘ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · · · ║ 39 + 0x30 7 ║ p · · · · · p · ║ 55 + 0x28 6 ║ N · · · · N · N ║ 47 + 0x20 5 ║ N · p · · · · · ║ 39 0x18 4 ║ · · · · · · · · ║ 31 - 0x10 3 ║ · · · ♟ · · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x10 3 ║ · · · p · · · · ║ 23 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PE4E3 + Pe4e3 ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · ♟ · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♘ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · · · ║ 39 - 0x18 4 ║ · · · ♙ · · · · ║ 31 - 0x10 3 ║ · · · · ♟ · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x30 7 ║ p · · · · · p · ║ 55 + 0x28 6 ║ N · · · · N · N ║ 47 + 0x20 5 ║ N · p · · · · · ║ 39 + 0x18 4 ║ · · · P · · · · ║ 31 + 0x10 3 ║ · · · · p · · · ║ 23 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PC5C4 + Pc5c4 ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · ♟ · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♘ ║ 47 - 0x20 5 ║ ♘ · · · · · · · ║ 39 - 0x18 4 ║ · · ♟ ♙ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · p · ║ 55 + 0x28 6 ║ N · · · · N · N ║ 47 + 0x20 5 ║ N · · · · · · · ║ 39 + 0x18 4 ║ · · p P p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PC5xD4 + Pc5xd4 ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · ♟ · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♘ ║ 47 - 0x20 5 ║ ♘ · · · · · · · ║ 39 - 0x18 4 ║ · · · ♟ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · p · ║ 55 + 0x28 6 ║ N · · · · N · N ║ 47 + 0x20 5 ║ N · · · · · · · ║ 39 + 0x18 4 ║ · · · p p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PG7G5 + Pg7g5 ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · · · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♘ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · ♟ · ║ 39 - 0x18 4 ║ · · · ♙ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · · · ║ 55 + 0x28 6 ║ N · · · · N · N ║ 47 + 0x20 5 ║ N · p · · · p · ║ 39 + 0x18 4 ║ · · · P p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PG7xF6 + Pg7xf6 ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · · · ║ 55 - 0x28 6 ║ ♘ · · · · ♟ · ♘ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · · · ║ 39 - 0x18 4 ║ · · · ♙ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · · · ║ 55 + 0x28 6 ║ N · · · · p · N ║ 47 + 0x20 5 ║ N · p · · · · · ║ 39 + 0x18 4 ║ · · · P p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PG7G6 + Pg7g6 ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · · · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ ♟ ♘ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · · · ║ 39 - 0x18 4 ║ · · · ♙ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · · · ║ 55 + 0x28 6 ║ N · · · · N p N ║ 47 + 0x20 5 ║ N · p · · · · · ║ 39 + 0x18 4 ║ · · · P p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - PG7xH6 + Pg7xh6 ╔═════════════════╗ 0x38 8 ║ · · · · · · · · ║ 63 - 0x30 7 ║ ♟ · · · · · · · ║ 55 - 0x28 6 ║ ♘ · · · · ♘ · ♟ ║ 47 - 0x20 5 ║ ♘ · ♟ · · · · · ║ 39 - 0x18 4 ║ · · · ♙ ♟ · · · ║ 31 + 0x30 7 ║ p · · · · · · · ║ 55 + 0x28 6 ║ N · · · · N · p ║ 47 + 0x20 5 ║ N · p · · · · · ║ 39 + 0x18 4 ║ · · · P p · · · ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♟ ♘ · · ║ 15 - 0x00 1 ║ · · · ♘ · · · · ║ 7 + 0x08 2 ║ · · · · p N · · ║ 15 + 0x00 1 ║ · · · N · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -203,6 +204,7 @@ { file: [ + chess-lib tests pawn_move_generation.rs ] @@ -212,16 +214,16 @@ [ ''' - PF7F5 + Pf7f5 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · · · · ║ 31 - 0x10 3 ║ ♞ · ♙ · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · ♙ · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n · n · · · · ║ 31 + 0x10 3 ║ n · P · · · · n ║ 23 + 0x08 2 ║ · P · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -229,16 +231,16 @@ ''' ''' - PB2xA3 + Pb2xa3 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · · · · ║ 31 - 0x10 3 ║ ♙ · ♙ · · · · ♞ ║ 23 - 0x08 2 ║ · · · · · ♙ · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n · n · · · · ║ 31 + 0x10 3 ║ P · P · · · · n ║ 23 + 0x08 2 ║ · · · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -246,16 +248,16 @@ ''' ''' - PB2B3 + Pb2b3 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · · · · ║ 31 - 0x10 3 ║ ♞ ♙ ♙ · · · · ♞ ║ 23 - 0x08 2 ║ · · · · · ♙ · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n · n · · · · ║ 31 + 0x10 3 ║ n P P · · · · n ║ 23 + 0x08 2 ║ · · · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -263,16 +265,16 @@ ''' ''' - PF2F3 + Pf2f3 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · · · · ║ 31 - 0x10 3 ║ ♞ · ♙ · · ♙ · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · · · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n · n · · · · ║ 31 + 0x10 3 ║ n · P · · P · n ║ 23 + 0x08 2 ║ · P · · · · · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -280,16 +282,16 @@ ''' ''' - PF2F4 + Pf2f4 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · ♙ · · ║ 31 - 0x10 3 ║ ♞ · ♙ · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · · · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n · n · P · · ║ 31 + 0x10 3 ║ n · P · · · · n ║ 23 + 0x08 2 ║ · P · · · · · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -297,16 +299,16 @@ ''' ''' - PC3xB4 + Pc3xb4 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♙ · ♞ · · · · ║ 31 - 0x10 3 ║ ♞ · · · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · ♙ · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · P · n · · · · ║ 31 + 0x10 3 ║ n · · · · · · n ║ 23 + 0x08 2 ║ · P · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -314,16 +316,16 @@ ''' ''' - PC3C4 + Pc3c4 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ ♙ ♞ · · · · ║ 31 - 0x10 3 ║ ♞ · · · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · ♙ · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n P n · · · · ║ 31 + 0x10 3 ║ n · · · · · · n ║ 23 + 0x08 2 ║ · P · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -331,16 +333,16 @@ ''' ''' - PC3xD4 + Pc3xd4 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♙ · · · · ║ 31 - 0x10 3 ║ ♞ · · · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · ♙ · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n · P · · · · ║ 31 + 0x10 3 ║ n · · · · · · n ║ 23 + 0x08 2 ║ · P · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -348,16 +350,16 @@ ''' ''' - PE5xF6e.p. + Pe5xf6e.p. ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 - 0x28 6 ║ · · · · · ♙ · · ║ 47 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 + 0x28 6 ║ · · · · · P · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · · · · ║ 31 - 0x10 3 ║ ♞ · ♙ · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · ♙ · ♙ ║ 15 + 0x18 4 ║ · n · n · · · · ║ 31 + 0x10 3 ║ n · P · · · · n ║ 23 + 0x08 2 ║ · P · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -365,16 +367,16 @@ ''' ''' - PE5E6 + Pe5e6 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ · · · · ║ 63 - 0x30 7 ║ · · ♙ · · · · · ║ 55 - 0x28 6 ║ · · · · ♙ · · · ║ 47 - 0x20 5 ║ · · · · · ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · · · · ║ 31 - 0x10 3 ║ ♞ · ♙ · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · ♙ · ♙ ║ 15 + 0x38 8 ║ · · · r · · · · ║ 63 + 0x30 7 ║ · · P · · · · · ║ 55 + 0x28 6 ║ · · · · P · · · ║ 47 + 0x20 5 ║ · · · · · p · · ║ 39 + 0x18 4 ║ · n · n · · · · ║ 31 + 0x10 3 ║ n · P · · · · n ║ 23 + 0x08 2 ║ · P · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -382,16 +384,16 @@ ''' ''' - PC7C8=Q + Pc7c8=Q ╔═════════════════╗ - 0x38 8 ║ · · ♕ ♜ · · · · ║ 63 + 0x38 8 ║ · · Q r · · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · · · · ║ 31 - 0x10 3 ║ ♞ · ♙ · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · ♙ · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n · n · · · · ║ 31 + 0x10 3 ║ n · P · · · · n ║ 23 + 0x08 2 ║ · P · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H @@ -399,16 +401,16 @@ ''' ''' - PC7xD8=Q + Pc7xd8=Q ╔═════════════════╗ - 0x38 8 ║ · · · ♕ · · · · ║ 63 + 0x38 8 ║ · · · Q · · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♙ ♟ · · ║ 39 - 0x18 4 ║ · ♞ · ♞ · · · · ║ 31 - 0x10 3 ║ ♞ · ♙ · · · · ♞ ║ 23 - 0x08 2 ║ · ♙ · · · ♙ · ♙ ║ 15 + 0x20 5 ║ · · · · P p · · ║ 39 + 0x18 4 ║ · n · n · · · · ║ 31 + 0x10 3 ║ n · P · · · · n ║ 23 + 0x08 2 ║ · P · · · P · P ║ 15 0x00 1 ║ · · · · · · · · ║ 7 ╚═════════════════╝ A B C D E F G H diff --git a/chess-lib/chess-lib/tests/__snapshots__/queen_move_generation.rs.snap b/chess-lib/chess-lib/tests/__snapshots__/queen_move_generation.rs.snap new file mode 100644 index 0000000..163f7db --- /dev/null +++ b/chess-lib/chess-lib/tests/__snapshots__/queen_move_generation.rs.snap @@ -0,0 +1,3090 @@ +{ + "queen_move_generation::test_generate_black_queen_moves": + { + file: + [ + chess-lib + tests + queen_move_generation.rs + ] + module_path: queen_move_generation + test_function: test_generate_black_queen_moves + recorded_value: + [ + + ''' + Pd2d4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1xe1 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · q · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1f1 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N q · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1f2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q q · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1g2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · q · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1h2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · q ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1e3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · q R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1g3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R q · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1d4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q q · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1g4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · q N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1c5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · q · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1g5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · q · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1b6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · q · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1g6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q q · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1a7 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ q · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1g7 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · q · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qg1g8 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · q · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · · q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1g2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · q · ║ 15 + 0x00 1 ║ · · · · N · q · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1h2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · q ║ 15 + 0x00 1 ║ · · · · N · q · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1xf3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · q · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1h3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · q ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1xh4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · q ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2d1 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · q N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2xe1 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · q · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2f1 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N q q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2a2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ q · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2b2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · q · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2c2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · q · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2d2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · q · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2f2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · q · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2g2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · q · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2h2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · q ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2d3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · q · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2e3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · q R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2xf3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · q · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2e4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · q · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2e5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · q · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2e6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · q q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2e7 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · q · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe2xe8 + + ╔═════════════════╗ + 0x38 8 ║ q · · · q · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4c1 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · q · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4a2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ q · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4c2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · q · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4b3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · q · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4c3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · q · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4d3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · q · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4a4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ q · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4b4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · q · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4d4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · q · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4e4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · q · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4f4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · q · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4g4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · q N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4xh4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · q ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4b5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · q · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4c5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · q · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4d5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · q · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4a6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ q · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4c6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · q · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4e6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · q q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4c7 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · q · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4f7 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · q · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4c8 + + ╔═════════════════╗ + 0x38 8 ║ q · q · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qc4g8 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · q · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6a1 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ q · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6b2 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · q · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6c3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · q · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6xf3 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · q · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6d4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q q · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6f4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · q · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6xh4 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · q ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6e5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · q · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6f5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · q · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6g5 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · q · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6a6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ q · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6b6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · q · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6c6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · q · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6d6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · q · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6e6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · q · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6g6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · q · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6h6 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · q ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6e7 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · q · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6f7 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · q · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6g7 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · q · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6d8 + + ╔═════════════════╗ + 0x38 8 ║ q · · q N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6f8 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N q · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qf6h8 + + ╔═════════════════╗ + 0x38 8 ║ q · · · N · · q ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a1 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ q · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a2 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ q · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a3 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ q · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8xf3 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · q · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a4 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ q · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8e4 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · q · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a5 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ q · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8d5 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · q · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a6 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ q · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8c6 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · q · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a7 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ q · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8b7 + + ╔═════════════════╗ + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ · q · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8b8 + + ╔═════════════════╗ + 0x38 8 ║ · q · · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8c8 + + ╔═════════════════╗ + 0x38 8 ║ · · q · N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8d8 + + ╔═════════════════╗ + 0x38 8 ║ · · · q N · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8xe8 + + ╔═════════════════╗ + 0x38 8 ║ · · · · q · · · ║ 63 + 0x30 7 ║ · · · · · · · · ║ 55 + 0x28 6 ║ · · · · · q · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · q · · · · N ║ 31 + 0x10 3 ║ · · · · · R · · ║ 23 + 0x08 2 ║ · · · · q · · · ║ 15 + 0x00 1 ║ · · · · N · q q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + ] + } + "queen_move_generation::test_generate_white_queen_moves": + { + file: + [ + chess-lib + tests + queen_move_generation.rs + ] + module_path: queen_move_generation + test_function: test_generate_white_queen_moves + recorded_value: + [ + + ''' + Pf7f5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1a1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ Q · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1b1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · Q · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1c1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · Q · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1e1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · Q · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1f1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · Q · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1g1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · Q Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1c2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r Q · · · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1d2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · Q · · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1e2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · Q · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1xb3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · Q · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1d3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · Q · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1f3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · Q · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1d4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · Q Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1g4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · Q p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd1h5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · Q ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1e1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q Q · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1f1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · Q · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1g1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · Q · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1g2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · Q · ║ 15 + 0x00 1 ║ · · · Q · · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1h2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · Q ║ 15 + 0x00 1 ║ · · · Q · · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1f3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · Q · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1h3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · Q ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qh1xh4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · Q ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · · ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4b1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · Q · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4e1 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q Q · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4c2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r Q · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4e2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · Q · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4g2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · Q · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4d3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · Q · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4e3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · Q · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4f3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · Q · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4a4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ Q · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4b4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · Q · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4c4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · Q · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4d4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · Q · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4f4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · Q · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4g4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · Q p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4xh4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · Q ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4e5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q Q · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4f5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · Q · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4e6 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · Q · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4g6 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · Q · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4e7 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · Q · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4h7 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r Q ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qe4e8 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n Q · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5d2 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · Q · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5xb3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · Q · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5d3 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · Q · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5c4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · Q · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5d4 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · Q Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5a5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ Q · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5b5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · Q · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5c5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · Q · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5e5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · Q · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5f5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · Q · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5g5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · Q · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5h5 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · Q ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5c6 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · Q · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5d6 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · Q · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5e6 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · Q · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5b7 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · Q · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5d7 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · Q · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5f7 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · · · ║ 63 + 0x30 7 ║ · · · · · Q r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5xd8 + + ╔═════════════════╗ + 0x38 8 ║ Q · · Q · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qd5g8 + + ╔═════════════════╗ + 0x38 8 ║ Q · · n · · Q · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · · · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a1 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ Q · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a2 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ Q r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a3 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ Q r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a4 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ Q · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a5 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ Q · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a6 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ Q · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8c6 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · Q · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8a7 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ Q · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8b7 + + ╔═════════════════╗ + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · Q · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8b8 + + ╔═════════════════╗ + 0x38 8 ║ · Q · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8c8 + + ╔═════════════════╗ + 0x38 8 ║ · · Q n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + + ''' + Qa8xd8 + + ╔═════════════════╗ + 0x38 8 ║ · · · Q · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · · · · ║ 47 + 0x20 5 ║ · · · Q · · · · ║ 39 + 0x18 4 ║ · · · · Q · · p ║ 31 + 0x10 3 ║ · r · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · Q · · · Q ║ 7 + ╚═════════════════╝ + A B C D E F G H + + ''' + ] + } +} \ No newline at end of file diff --git a/tests/__snapshots__/rook_move_generation.rs.snap b/chess-lib/chess-lib/tests/__snapshots__/rook_move_generation.rs.snap similarity index 53% rename from tests/__snapshots__/rook_move_generation.rs.snap rename to chess-lib/chess-lib/tests/__snapshots__/rook_move_generation.rs.snap index c26da03..1188950 100644 --- a/tests/__snapshots__/rook_move_generation.rs.snap +++ b/chess-lib/chess-lib/tests/__snapshots__/rook_move_generation.rs.snap @@ -3,6 +3,7 @@ { file: [ + chess-lib tests rook_move_generation.rs ] @@ -15,1119 +16,1119 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1xE1 + Rg1xe1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♜ · · ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · r · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1F1 + Rg1f1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ ♜ · ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N r · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1G2 + Rg1g2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · ♜ · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♜ ║ 7 + 0x08 2 ║ · · · · r · r · ║ 15 + 0x00 1 ║ · · · · N · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1G3 + Rg1g3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · · ♜ · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♜ ║ 7 + 0x18 4 ║ · · r · · · · N ║ 31 + 0x10 3 ║ · · · · · · r · ║ 23 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1G4 + Rg1g4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · ♜ ♘ ║ 31 + 0x18 4 ║ · · r · · · r N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1G5 + Rg1g5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 - 0x20 5 ║ · · · · · · ♜ · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x28 6 ║ · · · · · r · · ║ 47 + 0x20 5 ║ · · · · · · r · ║ 39 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1G6 + Rg1g6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ ♜ · ║ 47 + 0x28 6 ║ · · · · · r r · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1G7 + Rg1g7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x38 8 ║ r · · · N · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RG1G8 + Rg1g8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · ♜ · ║ 63 + 0x38 8 ║ r · · · N · r · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · · r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H2 + Rh1h2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · ♜ ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ · ║ 7 + 0x08 2 ║ · · · · r · · r ║ 15 + 0x00 1 ║ · · · · N · r · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H3 + Rh1h3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · · · ♜ ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ · ║ 7 + 0x18 4 ║ · · r · · · · N ║ 31 + 0x10 3 ║ · · · · · · · r ║ 23 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1xH4 + Rh1xh4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♜ ║ 31 + 0x18 4 ║ · · r · · · · r ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ · ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2xE1 + Re2xe1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♜ · ♜ ♜ ║ 7 + 0x00 1 ║ · · · · r · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2A2 + Re2a2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♜ · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ r · · · · · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2B2 + Re2b2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2C2 + Re2c2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · ♜ · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · r · · · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2D2 + Re2d2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · ♜ · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · r · · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2F2 + Re2f2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · ♜ · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · · r · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2G2 + Re2g2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · · ♜ · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · · · r · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2H2 + Re2h2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · · · · ♜ ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · · · · r ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2E3 + Re2e3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · ♜ · · · ║ 23 + 0x18 4 ║ · · r · · · · N ║ 31 + 0x10 3 ║ · · · · r · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2E4 + Re2e4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · ♜ · · ♘ ║ 31 + 0x18 4 ║ · · r · r · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2E5 + Re2e5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 - 0x20 5 ║ · · · · ♜ · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x28 6 ║ · · · · · r · · ║ 47 + 0x20 5 ║ · · · · r · · · ║ 39 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2E6 + Re2e6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♜ ♜ · · ║ 47 + 0x28 6 ║ · · · · r r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2E7 + Re2e7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · ♜ · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x38 8 ║ r · · · N · · · ║ 63 + 0x30 7 ║ · · · · r · · · ║ 55 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE2xE8 + Re2xe8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♜ · · · ║ 63 + 0x38 8 ║ r · · · r · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4C1 + Rc4c1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · ♜ · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · r · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4C2 + Rc4c2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · ♜ · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · r · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4C3 + Rc4c3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · ♜ · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x18 4 ║ · · · · · · · N ║ 31 + 0x10 3 ║ · · r · · · · · ║ 23 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4A4 + Rc4a4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♜ · · · · · · ♘ ║ 31 + 0x18 4 ║ r · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4B4 + Rc4b4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · ♜ · · · · · ♘ ║ 31 + 0x18 4 ║ · r · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4D4 + Rc4d4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · ♜ · · · ♘ ║ 31 + 0x18 4 ║ · · · r · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4E4 + Rc4e4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♜ · · ♘ ║ 31 + 0x18 4 ║ · · · · r · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4F4 + Rc4f4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · ♜ · ♘ ║ 31 + 0x18 4 ║ · · · · · r · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4G4 + Rc4g4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · ♜ ♘ ║ 31 + 0x18 4 ║ · · · · · · r N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4xH4 + Rc4xh4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♜ ║ 31 + 0x18 4 ║ · · · · · · · r ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4C5 + Rc4c5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 - 0x20 5 ║ · · ♜ · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x28 6 ║ · · · · · r · · ║ 47 + 0x20 5 ║ · · r · · · · · ║ 39 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4C6 + Rc4c6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · ♜ · · ♜ · · ║ 47 + 0x28 6 ║ · · r · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4C7 + Rc4c7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · ♜ · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x38 8 ║ r · · · N · · · ║ 63 + 0x30 7 ║ · · r · · · · · ║ 55 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RC4C8 + Rc4c8 ╔═════════════════╗ - 0x38 8 ║ ♜ · ♜ · ♘ · · · ║ 63 + 0x38 8 ║ r · r · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 + 0x18 4 ║ · · · · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6F1 + Rf6f1 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ ♜ ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N r r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6F2 + Rf6f2 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ ♜ · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r r · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6F3 + Rf6f3 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♜ · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x18 4 ║ · · r · · · · N ║ 31 + 0x10 3 ║ · · · · · r · · ║ 23 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6F4 + Rf6f4 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · ♜ · ♘ ║ 31 + 0x18 4 ║ · · r · · r · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6F5 + Rf6f5 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♜ · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x20 5 ║ · · · · · r · · ║ 39 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6A6 + Rf6a6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♜ · · · · · · · ║ 47 + 0x28 6 ║ r · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6B6 + Rf6b6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · ♜ · · · · · · ║ 47 + 0x28 6 ║ · r · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6C6 + Rf6c6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · ♜ · · · · · ║ 47 + 0x28 6 ║ · · r · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6D6 + Rf6d6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · ♜ · · · · ║ 47 + 0x28 6 ║ · · · r · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6E6 + Rf6e6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♜ · · · ║ 47 + 0x28 6 ║ · · · · r · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6G6 + Rf6g6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · ♜ · ║ 47 + 0x28 6 ║ · · · · · · r · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6H6 + Rf6h6 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 + 0x38 8 ║ r · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · ♜ ║ 47 + 0x28 6 ║ · · · · · · · r ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6F7 + Rf6f7 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · ♜ · · ║ 55 + 0x38 8 ║ r · · · N · · · ║ 63 + 0x30 7 ║ · · · · · r · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RF6F8 + Rf6f8 ╔═════════════════╗ - 0x38 8 ║ ♜ · · · ♘ ♜ · · ║ 63 + 0x38 8 ║ r · · · N r · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A1 + Ra8a1 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 + 0x38 8 ║ · · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ ♜ · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ r · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A2 + Ra8a2 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 + 0x38 8 ║ · · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♜ · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ r · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A3 + Ra8a3 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 + 0x38 8 ║ · · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 - 0x10 3 ║ ♜ · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x18 4 ║ · · r · · · · N ║ 31 + 0x10 3 ║ r · · · · · · · ║ 23 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A4 + Ra8a4 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 + 0x38 8 ║ · · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♜ · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ r · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A5 + Ra8a5 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 + 0x38 8 ║ · · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 - 0x20 5 ║ ♜ · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x28 6 ║ · · · · · r · · ║ 47 + 0x20 5 ║ r · · · · · · · ║ 39 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A6 + Ra8a6 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 + 0x38 8 ║ · · · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♜ · · · · ♜ · · ║ 47 + 0x28 6 ║ r · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A7 + Ra8a7 ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ ♜ · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x38 8 ║ · · · · N · · · ║ 63 + 0x30 7 ║ r · · · · · · · ║ 55 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8B8 + Ra8b8 ╔═════════════════╗ - 0x38 8 ║ · ♜ · · ♘ · · · ║ 63 + 0x38 8 ║ · r · · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8C8 + Ra8c8 ╔═════════════════╗ - 0x38 8 ║ · · ♜ · ♘ · · · ║ 63 + 0x38 8 ║ · · r · N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8D8 + Ra8d8 ╔═════════════════╗ - 0x38 8 ║ · · · ♜ ♘ · · · ║ 63 + 0x38 8 ║ · · · r N · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8xE8 + Ra8xe8 ╔═════════════════╗ - 0x38 8 ║ · · · · ♜ · · · ║ 63 + 0x38 8 ║ · · · · r · · · ║ 63 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♜ · · ║ 47 + 0x28 6 ║ · · · · · r · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♜ · · · · ♘ ║ 31 + 0x18 4 ║ · · r · · · · N ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · · · · ♜ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♜ ♜ ║ 7 + 0x08 2 ║ · · · · r · · · ║ 15 + 0x00 1 ║ · · · · N · r r ║ 7 ╚═════════════════╝ A B C D E F G H @@ -1138,6 +1139,7 @@ { file: [ + chess-lib tests rook_move_generation.rs ] @@ -1150,898 +1152,898 @@ First Move ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1A1 + Rd1a1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ ♖ · · · · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ R · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1B1 + Rd1b1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · ♖ · · · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · R · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1C1 + Rd1c1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · ♖ · · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · R · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1E1 + Rd1e1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · ♖ · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · R · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1F1 + Rd1f1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · ♖ · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · R · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1G1 + Rd1g1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · ♖ ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · R R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1D2 + Rd1d2 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · ♖ · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♖ ║ 7 + 0x08 2 ║ · r · R · · · · ║ 15 + 0x00 1 ║ · · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1D3 + Rd1d3 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 - 0x10 3 ║ · · · ♖ · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♖ ║ 7 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 + 0x10 3 ║ · · · R · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD1D4 + Rd1d4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · ♖ ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · R R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · · · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1E1 + Rh1e1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ ♖ · · · ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R R · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1F1 + Rh1f1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · ♖ · · ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · R · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1G1 + Rh1g1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · ♖ · ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · R · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H2 + Rh1h2 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · ♖ ║ 15 - 0x00 1 ║ · · · ♖ · · · · ║ 7 + 0x08 2 ║ · r · · · · · R ║ 15 + 0x00 1 ║ · · · R · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1H3 + Rh1h3 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 - 0x10 3 ║ · · · · · · · ♖ ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · · ║ 7 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 + 0x10 3 ║ · · · · · · · R ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RH1xH4 + Rh1xh4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♖ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · R ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · · ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · · ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4E1 + Re4e1 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ ♖ · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R R · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4E2 + Re4e2 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · ♖ · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · R · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4E3 + Re4e3 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · · · · ♖ · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 + 0x10 3 ║ · · · · R · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4A4 + Re4a4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ ♖ · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ R · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4B4 + Re4b4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · ♖ · · · · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · R · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4C4 + Re4c4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · ♖ · · · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · R · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4D4 + Re4d4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · ♖ · · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · R · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4F4 + Re4f4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · ♖ · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · R · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4G4 + Re4g4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · · ♖ ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · · R p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4xH4 + Re4xh4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♖ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · · · R ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4E5 + Re4e5 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ ♖ · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · R R · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4E6 + Re4e6 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · ♖ · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · · R · · · ║ 47 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4E7 + Re4e7 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · ♖ · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · R · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RE4E8 + Re4e8 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ ♖ · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n R · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · · · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5D2 + Rd5d2 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · ♖ · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · R · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5D3 + Rd5d3 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 - 0x10 3 ║ · · · ♖ · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x18 4 ║ · · · · R · · p ║ 31 + 0x10 3 ║ · · · R · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5D4 + Rd5d4 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · ♖ ♖ · · ♟ ║ 31 + 0x18 4 ║ · · · R R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5A5 + Rd5a5 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♖ · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ R · · · · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5B5 + Rd5b5 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♖ · · · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · R · · · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5C5 + Rd5c5 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · ♖ · · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · R · · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5E5 + Rd5e5 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♖ · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · · R · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5F5 + Rd5f5 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♖ · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · · · R · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5G5 + Rd5g5 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · ♖ · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · · · · R · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5H5 + Rd5h5 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · ♖ ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · · · · · R ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5D6 + Rd5d6 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · ♖ · · · · ║ 47 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ · · · R · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5D7 + Rd5d7 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · ♖ · · ♜ · ║ 55 + 0x38 8 ║ R · · n · · · · ║ 63 + 0x30 7 ║ · · · R · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RD5xD8 + Rd5xd8 ╔═════════════════╗ - 0x38 8 ║ ♖ · · ♖ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ R · · R · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A1 + Ra8a1 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ ♖ · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ R · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A2 + Ra8a2 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ ♖ ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ R r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A3 + Ra8a3 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 - 0x10 3 ║ ♖ · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 + 0x10 3 ║ R · · · · · · · ║ 23 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A4 + Ra8a4 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ ♖ · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ R · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A5 + Ra8a5 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♖ · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ R · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A6 + Ra8a6 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ ♖ · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 + 0x28 6 ║ R · · · · · · · ║ 47 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8A7 + Ra8a7 ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ ♖ · · · · · ♜ · ║ 55 + 0x38 8 ║ · · · n · · · · ║ 63 + 0x30 7 ║ R · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8B8 + Ra8b8 ╔═════════════════╗ - 0x38 8 ║ · ♖ · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ · R · n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8C8 + Ra8c8 ╔═════════════════╗ - 0x38 8 ║ · · ♖ ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ · · R n · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H ''' ''' - RA8xD8 + Ra8xd8 ╔═════════════════╗ - 0x38 8 ║ · · · ♖ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 + 0x38 8 ║ · · · R · · · · ║ 63 + 0x30 7 ║ · · · · · · r · ║ 55 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♖ · · · · ║ 39 - 0x18 4 ║ · · · · ♖ · · ♟ ║ 31 + 0x20 5 ║ · · · R · · · · ║ 39 + 0x18 4 ║ · · · · R · · p ║ 31 0x10 3 ║ · · · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♖ · · · ♖ ║ 7 + 0x08 2 ║ · r · · · · · · ║ 15 + 0x00 1 ║ · · · R · · · R ║ 7 ╚═════════════════╝ A B C D E F G H diff --git a/src/chess/bitboard.rs b/chess-lib/src/chess/bitboard.rs similarity index 99% rename from src/chess/bitboard.rs rename to chess-lib/src/chess/bitboard.rs index 8ea11e3..ecc703a 100644 --- a/src/chess/bitboard.rs +++ b/chess-lib/src/chess/bitboard.rs @@ -148,7 +148,7 @@ impl From for BitBoard { /// the unsetting of any bits (or spaces) in `A` that exist in `B`. /// /// ``` -/// # use lib::chess::BitBoard; +/// # use chess_lib::chess::BitBoard; /// assert_eq!( /// BitBoard::new(0b11001100) /// - BitBoard::new(0b01100110), @@ -173,7 +173,7 @@ impl SubAssign for BitBoard { /// the setting of any bits (or spaces) in `A` or exist in `B`. /// /// ``` -/// # use lib::chess::BitBoard; +/// # use chess_lib::chess::BitBoard; /// assert_eq!( /// BitBoard::new(0b11001100) /// | BitBoard::new(0b01100110), diff --git a/src/chess/bitposition.rs b/chess-lib/src/chess/bitposition.rs similarity index 99% rename from src/chess/bitposition.rs rename to chess-lib/src/chess/bitposition.rs index e81ebd9..8083f0f 100644 --- a/src/chess/bitposition.rs +++ b/chess-lib/src/chess/bitposition.rs @@ -23,7 +23,7 @@ impl BitPosition { let right_index = self.right_index as i32 + (8 * y + x); debug_assert!( - right_index >= 0 && right_index < 64, + (0..64).contains(&right_index), "Shifted bit position outside of the board" ); diff --git a/src/chess/board/attacks.rs b/chess-lib/src/chess/board/attacks.rs similarity index 96% rename from src/chess/board/attacks.rs rename to chess-lib/src/chess/board/attacks.rs index d08540a..303d73e 100644 --- a/src/chess/board/attacks.rs +++ b/chess-lib/src/chess/board/attacks.rs @@ -120,11 +120,12 @@ impl Board { false } + /// Returns true if any of the player's pieces in `space_mask` can be attacked by + /// any of the opponents pieces pub fn is_attacked(&self, player: Player, mut space_mask: BitBoard) -> bool { - space_mask - .any(|current_position| { - self.single_check(player, current_position, current_position.into()) - }) + space_mask.any(|current_position| { + self.single_check(player, current_position, current_position.into()) + }) } } diff --git a/src/chess/board/mod.rs b/chess-lib/src/chess/board/mod.rs similarity index 80% rename from src/chess/board/mod.rs rename to chess-lib/src/chess/board/mod.rs index 4a92b86..f0a13bc 100644 --- a/src/chess/board/mod.rs +++ b/chess-lib/src/chess/board/mod.rs @@ -10,22 +10,70 @@ use crate::chess::errors::{BoardError, InvalidStringReason}; use crate::chess::{ BitBoard, BitPosition, Move, MoveGenerator, MoveType, Piece, PieceType, Player, RankFile, }; -use crate::chess::{PIECE_COUNT, PLAYER_COUNT}; #[derive(PartialEq, Clone)] pub struct Board { - pub pieces: [BitBoard; PIECE_COUNT], - pub players: [BitBoard; PLAYER_COUNT], + pub pieces: [BitBoard; PieceType::VARIANT_COUNT], + pub players: [BitBoard; Player::VARIANT_COUNT], pub unmoved_pieces: BitBoard, pub prev_move: Option, pub next_player: Player, } +pub struct PieceIter<'a> { + board: &'a Board, + pieces_left: BitBoard, +} + +impl<'a> PieceIter<'a> { + pub fn new(board: &'a Board) -> Self { + Self { + board, + pieces_left: board.all_pieces(), + } + } +} + +impl<'a> Iterator for PieceIter<'a> { + type Item = (RankFile, Piece); + + fn next(&mut self) -> Option { + if self.pieces_left.is_empty() { + return None; + } + + let next_piece = self.pieces_left.first_bit_position(); + let piece_mask = BitBoard::from(next_piece); + let (board_idx, _) = self + .board + .pieces + .iter() + .enumerate() + .find(|(_, b)| !b.intersect(piece_mask).is_empty()) + .unwrap(); + + let (player_idx, _) = self.board.players.iter().enumerate().find(|(_, b)| !b.intersect(piece_mask).is_empty()).unwrap(); + + let piece_type: PieceType = num::FromPrimitive::from_usize(board_idx).unwrap(); + let player: Player = num::FromPrimitive::from_usize(player_idx).unwrap(); + + self.pieces_left -= piece_mask; + + Some(( + RankFile::from(next_piece), + Piece { + player, + piece_type, + }, + )) + } +} + impl Default for Board { fn default() -> Self { Board { - pieces: [BitBoard::empty(); PIECE_COUNT], - players: [BitBoard::empty(); PLAYER_COUNT], + pieces: [BitBoard::empty(); PieceType::VARIANT_COUNT], + players: [BitBoard::empty(); Player::VARIANT_COUNT], prev_move: None, next_player: Player::White, unmoved_pieces: BitBoard::empty().inverse(), @@ -46,10 +94,8 @@ impl Board { self.players[1 - (self.next_player as usize)] } - pub fn piece_at(&self, rank: u8, file: u8) -> Result, BoardError> { - if rank >= 8 || file >= 8 { - return Err(BoardError::OutOfBounds { rank, file }); - } + pub fn piece_at(&self, rank: u8, file: u8) -> Option { + debug_assert!(rank < 8 && file < 8); let mask = BitBoard::from(BitPosition::from((rank, file))); @@ -59,39 +105,39 @@ impl Board { .enumerate() .find(|&(_, player_board)| !mask.intersect(*player_board).is_empty()) { - let player = - num::FromPrimitive::from_usize(player_id).ok_or(BoardError::InvalidPlayer { + let player = num::FromPrimitive::from_usize(player_id) + .ok_or(BoardError::InvalidPlayer { player_id: player_id as u8, - })?; + }) + .unwrap(); let (i, _) = self .pieces .iter() .enumerate() .find(|&(_, board)| !mask.intersect(*board).is_empty()) - .ok_or(BoardError::MalformedBoard)?; + .unwrap(); - debug_assert!(i < PIECE_COUNT); + debug_assert!(i < PieceType::VARIANT_COUNT); - let piece_type = num::FromPrimitive::from_usize(i) - .ok_or(BoardError::InvalidPiece { piece_id: i as u8 })?; + let piece_type = num::FromPrimitive::from_usize(i).unwrap(); - // let piece_board = (0..PIECE_COUNT).find(|&i| mask & self.pieces[i] > 0).ok_or(())?; - Ok(Some(Piece { player, piece_type })) + // let piece_board = (0..PieceType::VARIANT_COUNT).find(|&i| mask & self.pieces[i] > 0).ok_or(())?; + Some(Piece { player, piece_type }) } else { debug_assert!({ - (0..PIECE_COUNT) + (0..PieceType::VARIANT_COUNT) .find(|&i| !mask.intersect(self.pieces[i]).is_empty()) .is_none() }); - Ok(None) + None } } pub fn from(board: &str, player: Player) -> Result { - let mut pieces = [BitBoard::empty(); PIECE_COUNT]; - let mut players = [BitBoard::empty(); PLAYER_COUNT]; + let mut pieces = [BitBoard::empty(); PieceType::VARIANT_COUNT]; + let mut players = [BitBoard::empty(); Player::VARIANT_COUNT]; let board: String = board.split(char::is_whitespace).collect(); @@ -131,6 +177,10 @@ impl Board { }) } + pub fn iter(&self) -> PieceIter { + PieceIter::new(&self) + } + pub fn generate_moves(&self) -> MoveGenerator { MoveGenerator::new(self.clone(), self.next_player) } @@ -193,11 +243,12 @@ impl Board { if next_position_mask.intersect(ENDS).is_empty() { PieceType::Pawn } else { - board.prev_move.as_mut().map(|m| { + if let Some(m) = board.prev_move.as_mut() { m.move_type = MoveType::Promotion { promoted_to: PieceType::Queen, } - }); + } + PieceType::Queen } } else { @@ -216,7 +267,7 @@ impl Board { board } - pub fn perform_castle(&mut self, is_queenside: bool) -> Board { + pub fn perform_castle(&self, is_queenside: bool) -> Board { let king_position: BitPosition = match self.next_player { Player::White => RankFile::E1, Player::Black => RankFile::E8, @@ -276,16 +327,16 @@ impl Board { BitBoard::empty(), ); - board.prev_move.as_mut().map(|m| { + if let Some(m) = board.prev_move.as_mut() { m.is_capture = true; m.move_type = MoveType::Castling { is_queenside }; - }); + } board } fn remove_piece(&mut self, next_position_mask: BitBoard) { - for i in 0..PIECE_COUNT { + for i in 0..PieceType::VARIANT_COUNT { self.pieces[i] -= next_position_mask; } @@ -316,23 +367,10 @@ impl Display for Board { board += &format!("0x{: <02x} {} ║ ", (7 - r) * 8, 8 - r); for f in 0..8 { - let piece = self.piece_at(7 - r, f).map_err(|_| fmt::Error)?; + let piece = self.piece_at(7 - r, f); let chr = if let Some(piece) = piece { - let (white_piece, black_piece) = match piece.piece_type { - PieceType::Pawn => ('♙', '♟'), - PieceType::Rook => ('♖', '♜'), - PieceType::Bishop => ('♗', '♝'), - PieceType::Knight => ('♘', '♞'), - PieceType::King => ('♔', '♚'), - PieceType::Queen => ('♕', '♛'), - }; - - if piece.player == Player::White { - white_piece - } else { - black_piece - } + piece.to_char() } else { '·' }; @@ -438,7 +476,7 @@ mod tests { #[test] fn test_piece_at() { - let pieces: [BitBoard; PIECE_COUNT] = [ + let pieces: [BitBoard; PieceType::VARIANT_COUNT] = [ BitBoard::from(1), BitBoard::from(1 << 8), BitBoard::from(1 << 12), @@ -461,7 +499,7 @@ mod tests { }; assert_eq!( - board.piece_at(0, 0).unwrap(), + board.piece_at(0, 0), Some(Piece { piece_type: PieceType::Pawn, player: Player::Black @@ -469,7 +507,7 @@ mod tests { ); assert_eq!( - board.piece_at(1, 0).unwrap(), + board.piece_at(1, 0), Some(Piece { piece_type: PieceType::Rook, player: Player::White @@ -477,7 +515,7 @@ mod tests { ); assert_eq!( - board.piece_at(1, 4).unwrap(), + board.piece_at(1, 4), Some(Piece { piece_type: PieceType::Knight, player: Player::Black @@ -485,7 +523,7 @@ mod tests { ); assert_eq!( - board.piece_at(2, 0).unwrap(), + board.piece_at(2, 0), Some(Piece { piece_type: PieceType::Bishop, player: Player::White @@ -493,7 +531,7 @@ mod tests { ); assert_eq!( - board.piece_at(3, 1).unwrap(), + board.piece_at(3, 1), Some(Piece { piece_type: PieceType::Queen, player: Player::Black @@ -501,15 +539,16 @@ mod tests { ); assert_eq!( - board.piece_at(7, 7).unwrap(), + board.piece_at(7, 7), Some(Piece { piece_type: PieceType::King, player: Player::White }) ); - assert_eq!(board.piece_at(4, 4).unwrap(), None); - assert_eq!(board.piece_at(0, 5), Err(BoardError::MalformedBoard)); + assert_eq!(board.piece_at(4, 4), None); + // TODO: Use panic catch test + // assert_eq!(board.piece_at(0, 5), Err(BoardError::MalformedBoard)); } } diff --git a/src/chess/board/pawn.rs b/chess-lib/src/chess/board/pawn.rs similarity index 98% rename from src/chess/board/pawn.rs rename to chess-lib/src/chess/board/pawn.rs index e8ce9a1..528bb5d 100644 --- a/src/chess/board/pawn.rs +++ b/chess-lib/src/chess/board/pawn.rs @@ -1,7 +1,7 @@ use super::Board; use crate::chess::bitboard::{FILE_A, FILE_B, FILE_G, FILE_H}; -use crate::chess::{BitBoard, BitPosition, PieceType, Player, MoveType}; +use crate::chess::{BitBoard, BitPosition, MoveType, PieceType, Player}; impl Board { pub fn find_pawn_moves( @@ -142,10 +142,9 @@ impl Board { en_passant_mask, ); - board - .prev_move - .as_mut() - .map(|m| m.move_type = MoveType::EnPassant); + if let Some(m) = board.prev_move.as_mut() { + m.move_type = MoveType::EnPassant + } Some(board) } else { diff --git a/src/chess/board/pieces.rs b/chess-lib/src/chess/board/pieces.rs similarity index 100% rename from src/chess/board/pieces.rs rename to chess-lib/src/chess/board/pieces.rs diff --git a/src/chess/chess_move.rs b/chess-lib/src/chess/chess_move.rs similarity index 59% rename from src/chess/chess_move.rs rename to chess-lib/src/chess/chess_move.rs index 6bc0bf6..df8d606 100644 --- a/src/chess/chess_move.rs +++ b/chess-lib/src/chess/chess_move.rs @@ -38,6 +38,11 @@ impl Default for Move { } } +/// This is not true Standard Algebraic Notation +/// SAN typically only provides the full rank and file of departure, +/// for example, if it is ambiguous with another piece's move. There are +/// other thigns that are also typically captured such as checkmates that +/// we do not yet cover here. impl fmt::Display for Move { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { if let MoveType::Castling { is_queenside } = self.move_type { @@ -50,11 +55,11 @@ impl fmt::Display for Move { write!( f, - "{}{:?}{}{:?}{}{}", + "{}{}{}{}{}{}{}", self.piece_type.to_char(), - self.from, + format!("{:?}", self.from).to_lowercase(), if self.is_capture { "x" } else { "" }, - self.to, + format!("{:?}", self.to).to_lowercase(), if self.move_type == MoveType::EnPassant { "e.p." } else { @@ -67,7 +72,38 @@ impl fmt::Display for Move { s } else { "".to_owned() + }, + if self.threatens_king { + "+" + } else { + "" } ) } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_san() { + assert_eq!(format!("{}", Move { + piece_type: PieceType::Pawn, + from: RankFile::A7, + to: RankFile::A8, + move_type: MoveType::Promotion { promoted_to: PieceType::Queen }, + is_capture: false, + threatens_king: false + }), "Pa7a8=Q"); + + assert_eq!(format!("{}", Move { + piece_type: PieceType::Pawn, + from: RankFile::A7, + to: RankFile::A8, + move_type: MoveType::Promotion { promoted_to: PieceType::Queen }, + is_capture: true, + threatens_king: true + }), "Pa7xa8=Q+"); + } +} diff --git a/src/chess/errors.rs b/chess-lib/src/chess/errors.rs similarity index 69% rename from src/chess/errors.rs rename to chess-lib/src/chess/errors.rs index 67d4e39..1742edc 100644 --- a/src/chess/errors.rs +++ b/chess-lib/src/chess/errors.rs @@ -20,20 +20,11 @@ impl Display for InvalidStringReason { } } -#[derive(Debug, Fail, PartialEq)] +#[derive(Debug, PartialEq)] pub enum BoardError { - #[fail(display = "invalid player id: {}", player_id)] InvalidPlayer { player_id: u8 }, - - #[fail(display = "invalid piece id: {}", piece_id)] InvalidPiece { piece_id: u8 }, - - #[fail(display = "Bit found on player mask, but no board masks")] MalformedBoard, - - #[fail(display = "Rank/File exceeded board limits: {} {}", rank, file)] OutOfBounds { rank: u8, file: u8 }, - - #[fail(display = "Malformed string for board: {}", _0)] InvalidString(InvalidStringReason), } diff --git a/src/chess/mod.rs b/chess-lib/src/chess/mod.rs similarity index 85% rename from src/chess/mod.rs rename to chess-lib/src/chess/mod.rs index a3218f7..ae5c6e6 100644 --- a/src/chess/mod.rs +++ b/chess-lib/src/chess/mod.rs @@ -21,10 +21,6 @@ pub use crate::chess::piece_type::PieceType; pub use crate::chess::player::Player; pub use crate::chess::rank_file::RankFile; -// LOW: Write/find macros that attaches .count() method to enum -pub const PIECE_COUNT: usize = 6; -pub const PLAYER_COUNT: usize = 2; - pub const DEFAULT_BOARD: &str = " rnbkqbnr pppppppp diff --git a/src/chess/move_generator/mod.rs b/chess-lib/src/chess/move_generator/mod.rs similarity index 79% rename from src/chess/move_generator/mod.rs rename to chess-lib/src/chess/move_generator/mod.rs index fcce765..dc5c43a 100644 --- a/src/chess/move_generator/mod.rs +++ b/chess-lib/src/chess/move_generator/mod.rs @@ -1,22 +1,34 @@ mod sanity_checks; use crate::chess::bitboard::{CASTLE_CHECK, KINGSIDE_CASTLE, QUEENSIDE_CASTLE}; -use crate::chess::PIECE_COUNT; use crate::chess::{BitBoard, BitPosition, Board, PieceType, Player, RankFile}; pub struct MoveGenerator { + /// The board/turn from which all moves we are generating from root_board: Board, + /// The player whose pieces are moving this turn. player: Player, + /// The moving player's bitboard player_mask: BitBoard, + /// The opponent player's bitboard enemy_mask: BitBoard, + /// The bitboard representing all piece positions all_pieces: BitBoard, + /// As we iterate through the player's pieces that we're + /// generating moves for, we build up this bitboard for + /// representing the remaining pieces left to iterate through + /// for that piecetype player_piecetype_mask: BitBoard, - is_first_move: bool, + /// For this piece, have we generated the move bitboards yet? + have_piece_moves_been_generated: bool, + /// The remaining moves that we haven't iterated over yet + /// for the targeted piece available_moves: BitBoard, possible_castle: BitBoard, + /// The current piece type we're examining piece_index: usize, } @@ -36,7 +48,7 @@ impl MoveGenerator { player_piecetype_mask: BitBoard::empty(), - is_first_move: true, + have_piece_moves_been_generated: false, available_moves: BitBoard::empty(), possible_castle: BitBoard::empty(), @@ -48,7 +60,9 @@ impl MoveGenerator { gen } + /// Finds the bitboard for the targeted piece_type specific to the active player fn generate_player_piecetype_mask(&self, piece_index: usize) -> BitBoard { + debug_assert!(piece_index < PieceType::VARIANT_COUNT); self.root_board.pieces[piece_index].intersect(self.player_mask) } @@ -82,14 +96,16 @@ impl MoveGenerator { moves - self.player_mask } + fn has_piece_moved(&self, current_position_mask: BitBoard) -> bool { + self.root_board + .unmoved_pieces + .intersect(current_position_mask) + .is_empty() + } + fn check_for_castling(&mut self, piece_type: PieceType, current_position_mask: BitBoard) { - if piece_type != PieceType::King - || self - .root_board - .unmoved_pieces - .intersect(current_position_mask) - .is_empty() - { + // If the piece isn't a king or it has moved, then we can't castle + if piece_type != PieceType::King || self.has_piece_moved(current_position_mask) { return; } @@ -106,8 +122,8 @@ impl MoveGenerator { } } - fn generate_next_castling_board(&mut self) -> Option { - for rook_position in self.possible_castle.by_ref() { + fn generate_next_castling_board(&self) -> Option { + for rook_position in self.possible_castle { let rf = RankFile::from(rook_position); let is_queenside = rf.file() == 0; @@ -140,14 +156,14 @@ impl MoveGenerator { current_position: BitPosition, current_position_mask: BitBoard, ) -> Option { - if self.is_first_move { + if !self.have_piece_moves_been_generated { self.available_moves = self.find_available_moves_for_piece( piece_type, current_position, current_position_mask, ); - self.is_first_move = false; + self.have_piece_moves_been_generated = true; if piece_type == PieceType::Pawn { if let Some(board) = self @@ -196,9 +212,9 @@ impl Iterator for MoveGenerator { 'outer: loop { if self.player_piecetype_mask.is_empty() { self.piece_index += 1; - self.is_first_move = true; + self.have_piece_moves_been_generated = false; - if self.piece_index < PIECE_COUNT { + if self.piece_index < PieceType::VARIANT_COUNT { self.player_piecetype_mask = self.generate_player_piecetype_mask(self.piece_index); // Restarting the loop because we can't be sure the next mask > 0 @@ -210,8 +226,8 @@ impl Iterator for MoveGenerator { debug_assert!(!self.player_piecetype_mask.is_empty(), "Invariant: If the piecetype mask was 0 it should've moved on or finished the iteration"); debug_assert!( - self.piece_index < PIECE_COUNT, - "Invariant: piece_index must be less than PIECE_COUNT" + self.piece_index < PieceType::VARIANT_COUNT, + "Invariant: piece_index must be less than PieceType::VARIANT_COUNT" ); // TODO: A lot of these can be cached @@ -238,7 +254,7 @@ impl Iterator for MoveGenerator { return Some(board); } None => { - self.is_first_move = true; + self.have_piece_moves_been_generated = false; self.player_piecetype_mask -= piece_mask; } }; diff --git a/src/chess/move_generator/sanity_checks.rs b/chess-lib/src/chess/move_generator/sanity_checks.rs similarity index 90% rename from src/chess/move_generator/sanity_checks.rs rename to chess-lib/src/chess/move_generator/sanity_checks.rs index e1d6330..4bf1e35 100644 --- a/src/chess/move_generator/sanity_checks.rs +++ b/chess-lib/src/chess/move_generator/sanity_checks.rs @@ -28,7 +28,7 @@ impl MoveGenerator { if cfg!(debug_assertions) { debug_assert!( !board.players[1 - self.player as usize].intersect(capture_mask).is_empty(), - format!("Capture Invariant Invalidated: Capture move made on space not-occupied by opponent:\n{}\n{:?}", board, capture_mask) + "Capture Invariant Invalidated: Capture move made on space not-occupied by opponent:\n{}\n{:?}", board, capture_mask ); // TODO: We'll want the same sanity check above for moving through spaces. Should be diff --git a/src/chess/piece.rs b/chess-lib/src/chess/piece.rs similarity index 55% rename from src/chess/piece.rs rename to chess-lib/src/chess/piece.rs index 3acba82..ead6073 100644 --- a/src/chess/piece.rs +++ b/chess-lib/src/chess/piece.rs @@ -2,8 +2,8 @@ use crate::chess::{PieceType, Player}; #[derive(Debug, PartialEq)] pub struct Piece { - pub(super) piece_type: PieceType, - pub(super) player: Player, + pub piece_type: PieceType, + pub player: Player, } impl Piece { @@ -17,6 +17,30 @@ impl Piece { None } } + + pub fn to_char(&self) -> char { + let (white_piece, black_piece) = match self.piece_type { + PieceType::Pawn => ('P', 'p'), + PieceType::Rook => ('R', 'r'), + PieceType::Bishop => ('B', 'b'), + PieceType::Knight => ('N', 'n'), + PieceType::King => ('K', 'k'), + PieceType::Queen => ('Q', 'q'), + + // PieceType::Pawn => ('♙', '♟'), + // PieceType::Rook => ('♖', '♜'), + // PieceType::Bishop => ('♗', '♝'), + // PieceType::Knight => ('♘', '♞'), + // PieceType::King => ('♔', '♚'), + // PieceType::Queen => ('♕', '♛'), + }; + + if self.player == Player::White { + white_piece + } else { + black_piece + } + } } #[test] diff --git a/src/chess/piece_type.rs b/chess-lib/src/chess/piece_type.rs similarity index 88% rename from src/chess/piece_type.rs rename to chess-lib/src/chess/piece_type.rs index 10917a2..46a80b7 100644 --- a/src/chess/piece_type.rs +++ b/chess-lib/src/chess/piece_type.rs @@ -1,4 +1,6 @@ -#[derive(Debug, PartialEq, FromPrimitive, Clone, Copy)] +use variant_count::VariantCount; + +#[derive(Debug, PartialEq, FromPrimitive, Clone, Copy, VariantCount)] pub enum PieceType { Pawn = 0, Rook = 1, @@ -11,7 +13,6 @@ pub enum PieceType { use self::PieceType::*; impl PieceType { - pub fn from(chr: char) -> Option { let piece_type = match chr.to_lowercase().next().unwrap_or('x') { 'p' => Pawn, @@ -26,14 +27,14 @@ impl PieceType { Some(piece_type) } - pub fn to_char(&self) -> char { - match *self { + pub fn to_char(self) -> char { + match self { Pawn => 'P', Rook => 'R', Knight => 'N', Bishop => 'B', Queen => 'Q', - King => 'K' + King => 'K', } } } diff --git a/src/chess/player.rs b/chess-lib/src/chess/player.rs similarity index 90% rename from src/chess/player.rs rename to chess-lib/src/chess/player.rs index bcbb814..4b544b7 100644 --- a/src/chess/player.rs +++ b/chess-lib/src/chess/player.rs @@ -1,4 +1,6 @@ -#[derive(Debug, PartialEq, FromPrimitive, Copy, Clone)] +use variant_count::VariantCount; + +#[derive(Debug, PartialEq, FromPrimitive, Copy, Clone, VariantCount)] pub enum Player { Black = 0, White = 1, diff --git a/src/chess/rank_file.rs b/chess-lib/src/chess/rank_file.rs similarity index 93% rename from src/chess/rank_file.rs rename to chess-lib/src/chess/rank_file.rs index 35381be..b00e367 100644 --- a/src/chess/rank_file.rs +++ b/chess-lib/src/chess/rank_file.rs @@ -1,10 +1,8 @@ -use num; - use crate::chess::BitPosition; // TODO: I don't know if this needs to be separate from BitPosition -#[cfg_attr(rustfmt, rustfmt_skip)] +#[rustfmt::skip] #[derive(PartialEq, Clone, Copy, Debug, FromPrimitive)] pub enum RankFile { A1, B1, C1, D1, E1, F1, G1, H1, @@ -24,11 +22,11 @@ impl From for RankFile { } impl RankFile { - pub fn rank(self) -> u8 { + pub const fn rank(self) -> u8 { self as u8 / 8 } - pub fn file(self) -> u8 { + pub const fn file(self) -> u8 { self as u8 % 8 } } diff --git a/src/fixtures.rs b/chess-lib/src/fixtures.rs similarity index 100% rename from src/fixtures.rs rename to chess-lib/src/fixtures.rs diff --git a/chess-lib/src/lib.rs b/chess-lib/src/lib.rs new file mode 100644 index 0000000..ebfe3b7 --- /dev/null +++ b/chess-lib/src/lib.rs @@ -0,0 +1,16 @@ +#![forbid(unsafe_code)] +#![allow(dead_code)] +// #![cfg_attr(feature = "strict", allow(dead_code))] +// #![cfg_attr(feature = "strict", deny(missing_docs))] +#![cfg_attr(feature = "strict", deny(warnings))] + +#[macro_use] extern crate uncover; +#[macro_use] extern crate num_derive; +#[macro_use] extern crate lazy_static; + +define_uncover_macros!(enable_if(cfg!(debug_assertions))); + +// TODO: This is a bit weird that to use the lib you do: chess::chess::... +pub mod chess; +pub mod fixtures; +pub mod test_moves; diff --git a/src/test_moves.rs b/chess-lib/src/test_moves.rs similarity index 76% rename from src/test_moves.rs rename to chess-lib/src/test_moves.rs index 8fd5501..07e2d1e 100644 --- a/src/test_moves.rs +++ b/chess-lib/src/test_moves.rs @@ -9,10 +9,10 @@ pub fn generate_moves_for_board( let mut board = Board::from(board, player).unwrap(); board.prev_move = prev_move; - boards.push(format!("{}", board).to_owned()); + boards.push(format!("{}", board)); for board in board.generate_moves() { - boards.push(format!("{}", board).to_owned()); + boards.push(format!("{}", board)); } boards diff --git a/tests/bishop_move_generation.rs b/chess-lib/tests/bishop_move_generation.rs similarity index 73% rename from tests/bishop_move_generation.rs rename to chess-lib/tests/bishop_move_generation.rs index 732b1f2..8f88501 100644 --- a/tests/bishop_move_generation.rs +++ b/chess-lib/tests/bishop_move_generation.rs @@ -1,10 +1,8 @@ -extern crate lib; +extern crate chess_lib; use snapshot::snapshot; -use lib::chess::Player; -use lib::fixtures::*; -use lib::test_moves::generate_moves_for_board; +use chess_lib::{chess::Player, fixtures::*, test_moves::generate_moves_for_board}; #[snapshot] fn test_generate_white_bishop_moves() -> Vec { diff --git a/tests/castling_move_generation.rs b/chess-lib/tests/castling_move_generation.rs similarity index 91% rename from tests/castling_move_generation.rs rename to chess-lib/tests/castling_move_generation.rs index fbfc7b3..5cad00b 100644 --- a/tests/castling_move_generation.rs +++ b/chess-lib/tests/castling_move_generation.rs @@ -1,10 +1,8 @@ -extern crate lib; +extern crate chess_lib; use snapshot::snapshot; -use lib::chess::Player; -use lib::fixtures::*; -use lib::test_moves::generate_moves_for_board; +use chess_lib::{chess::Player, fixtures::*, test_moves::generate_moves_for_board}; #[snapshot] fn test_generate_castling_unobstructed_w() -> Vec { diff --git a/tests/default_board_generation.rs b/chess-lib/tests/default_board_generation.rs similarity index 70% rename from tests/default_board_generation.rs rename to chess-lib/tests/default_board_generation.rs index 2f8857e..54853c0 100644 --- a/tests/default_board_generation.rs +++ b/chess-lib/tests/default_board_generation.rs @@ -1,10 +1,11 @@ -extern crate lib; +extern crate chess_lib; +use chess_lib::{ + chess::{Player, DEFAULT_BOARD}, + test_moves::generate_moves_for_board, +}; use snapshot::snapshot; -use lib::chess::{Player, DEFAULT_BOARD}; -use lib::test_moves::generate_moves_for_board; - #[snapshot] fn test_generate_white_default_moves() -> Vec { generate_moves_for_board(DEFAULT_BOARD, Player::White, None) diff --git a/tests/king_move_generation.rs b/chess-lib/tests/king_move_generation.rs similarity index 72% rename from tests/king_move_generation.rs rename to chess-lib/tests/king_move_generation.rs index 8040677..cad5336 100644 --- a/tests/king_move_generation.rs +++ b/chess-lib/tests/king_move_generation.rs @@ -1,10 +1,7 @@ -extern crate lib; +extern crate chess_lib; use snapshot::snapshot; - -use lib::chess::Player; -use lib::fixtures::*; -use lib::test_moves::generate_moves_for_board; +use chess_lib::{chess::Player, fixtures::*, test_moves::generate_moves_for_board}; #[snapshot] fn test_generate_white_king_moves() -> Vec { diff --git a/tests/knight_move_generation.rs b/chess-lib/tests/knight_move_generation.rs similarity index 73% rename from tests/knight_move_generation.rs rename to chess-lib/tests/knight_move_generation.rs index c1c1943..0616e98 100644 --- a/tests/knight_move_generation.rs +++ b/chess-lib/tests/knight_move_generation.rs @@ -1,11 +1,8 @@ -extern crate lib; +extern crate chess_lib; +use chess_lib::{chess::Player, fixtures::*, test_moves::generate_moves_for_board}; use snapshot::snapshot; -use lib::chess::Player; -use lib::fixtures::*; -use lib::test_moves::generate_moves_for_board; - #[snapshot] fn test_generate_white_knight_moves() -> Vec { generate_moves_for_board(WHITE_KNIGHT_TEST, Player::White, None) diff --git a/tests/pawn_move_generation.rs b/chess-lib/tests/pawn_move_generation.rs similarity index 74% rename from tests/pawn_move_generation.rs rename to chess-lib/tests/pawn_move_generation.rs index 7b486b7..ae74211 100644 --- a/tests/pawn_move_generation.rs +++ b/chess-lib/tests/pawn_move_generation.rs @@ -1,10 +1,7 @@ -extern crate lib; +extern crate chess_lib; use snapshot::snapshot; - -use lib::chess::Player; -use lib::fixtures::*; -use lib::test_moves::generate_moves_for_board; +use chess_lib::{chess::Player, fixtures::*, test_moves::generate_moves_for_board}; #[snapshot] fn test_generate_white_pawn_moves() -> Vec { diff --git a/tests/queen_move_generation.rs b/chess-lib/tests/queen_move_generation.rs similarity index 74% rename from tests/queen_move_generation.rs rename to chess-lib/tests/queen_move_generation.rs index eef5fe9..575724c 100644 --- a/tests/queen_move_generation.rs +++ b/chess-lib/tests/queen_move_generation.rs @@ -1,10 +1,7 @@ -extern crate lib; +extern crate chess_lib; use snapshot::snapshot; - -use lib::chess::Player; -use lib::fixtures::*; -use lib::test_moves::generate_moves_for_board; +use chess_lib::{chess::Player, fixtures::*, test_moves::generate_moves_for_board}; #[snapshot] fn test_generate_white_queen_moves() -> Vec { diff --git a/tests/rook_move_generation.rs b/chess-lib/tests/rook_move_generation.rs similarity index 72% rename from tests/rook_move_generation.rs rename to chess-lib/tests/rook_move_generation.rs index 714105a..9599631 100644 --- a/tests/rook_move_generation.rs +++ b/chess-lib/tests/rook_move_generation.rs @@ -1,10 +1,7 @@ -extern crate lib; +extern crate chess_lib; use snapshot::snapshot; - -use lib::chess::Player; -use lib::fixtures::*; -use lib::test_moves::generate_moves_for_board; +use chess_lib::{chess::Player, fixtures::*, test_moves::generate_moves_for_board}; #[snapshot] fn test_generate_white_rook_moves() -> Vec { diff --git a/chess-web/.gitignore b/chess-web/.gitignore new file mode 100644 index 0000000..103931e --- /dev/null +++ b/chess-web/.gitignore @@ -0,0 +1 @@ +wasm-pack.log \ No newline at end of file diff --git a/chess-web/Cargo.toml b/chess-web/Cargo.toml new file mode 100644 index 0000000..200dd00 --- /dev/null +++ b/chess-web/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "chess-web" +version = "0.1.0" +authors = ["Jacob Gardner "] +edition = "2018" +description = "Chess for web" +repository = "https://github.com/jacobgardner/chessAI" + +[lib] +crate-type = ["cdylib"] + +[dependencies] +wasm-bindgen = "0.2" +js-sys = "0.3" +lazy_static = "1.2" +chess = { path = "../chess-lib" } + +[dependencies.web-sys] +version = "0.3" +features = ["console"] \ No newline at end of file diff --git a/chess-web/src/lib.rs b/chess-web/src/lib.rs new file mode 100644 index 0000000..b717c2e --- /dev/null +++ b/chess-web/src/lib.rs @@ -0,0 +1,79 @@ +use wasm_bindgen::prelude::*; + +use js_sys::Function; + +use chess_lib::chess; + +#[wasm_bindgen] +pub struct Board { + board: chess::Board, +} + +#[wasm_bindgen] +pub struct Piece { + piece: chess::Piece, + rank_file: chess::RankFile, +} + +#[wasm_bindgen] +impl Board { + pub fn generate_moves(&self) -> Vec { + self.board + .generate_moves() + .map(|b| Board { board: b }) + .map(JsValue::from) + .collect() + } + + pub fn get_pieces(&self, fun: &Function) -> Result<(), JsValue> { + let this = JsValue::NULL; + + for (rank_file, piece) in self.board.iter() { + let web_piece = Piece { piece, rank_file }; + + let x = JsValue::from(web_piece); + + fun.call1(&this, &x) + .map_err(|_| "Unable to call callback")?; + } + + Ok(()) + } + + pub fn from(board: &str, is_white: bool) -> Result { + Ok(Board { + board: chess::Board::from( + board, + if is_white { + chess::Player::White + } else { + chess::Player::Black + }, + ) + .map_err(|_| "Malformed Board")?, + }) + } +} + +#[wasm_bindgen] +impl Piece { + pub fn rank(&self) -> u8 { + self.rank_file.rank() + } + + pub fn file(&self) -> u8 { + self.rank_file.file() + } + + #[wasm_bindgen(js_name = type)] + pub fn piece_type(&self) -> char { + self.piece.to_char() + } + + pub fn owner(&self) -> char { + match self.piece.player { + chess::Player::White => 'w', + chess::Player::Black => 'b', + } + } +} diff --git a/minimax/Cargo.toml b/minimax/Cargo.toml new file mode 100644 index 0000000..4b4cec2 --- /dev/null +++ b/minimax/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "minimax" +version = "0.1.0" +authors = ["Jacob Gardner "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/minimax/src/lib.rs b/minimax/src/lib.rs new file mode 100644 index 0000000..75f1446 --- /dev/null +++ b/minimax/src/lib.rs @@ -0,0 +1,195 @@ +use std::{cmp, fmt::Display}; + +mod tictactoe; + +// Ultimate goal here: +// - I have a function that can take in a generic object of some sort Generic or Trait +// - That object has an iterator that can make more of itself +// - I can safely pass a value from the iterator back into the root function. + +// This seems to indicate to me two approaches: +// (A) Trait that create an iterator that iterates over itself +// (B) Generic Struct where the generic implements a trait that does the same... + +pub trait MinimaxNode { + type It: Iterator; + type Heuristic: PartialOrd; + + fn iter(&self) -> Self::It; + fn heuristic(&self) -> Self::Heuristic; +} + +pub struct BestPath { + pub boards: Vec, + pub score: S, +} + +pub fn minimax_path>( + root_node: T, + is_maximizing_player: bool, + max_depth: usize, +) -> BestPath { + if max_depth == 0 { + return BestPath { + score: root_node.heuristic(), + boards: vec![root_node], + }; + } + + let player_operation = if is_maximizing_player { + cmp::Ordering::Greater + } else { + cmp::Ordering::Less + }; + + let path = root_node + .iter() + .fold(None, |acc: Option>, node| { + let path: BestPath = minimax_path(node, !is_maximizing_player, max_depth - 1); + + if let Some(value) = acc { + match path.score.partial_cmp(&value.score) { + Some(op) if op == player_operation => Some(path), + _ => Some(value), + } + } else { + Some(path) + } + }); + + if let Some(mut path) = path { + // let mut boards = best_boards.unwrap(); + // boards.push(root_node); + + path.boards.push(root_node); + + path + } else { + BestPath { + score: root_node.heuristic(), + boards: vec![root_node], + } + } +} + +pub fn alpha_beta>( + root_node: T, + is_maximizing_player: bool, + max_depth: usize, + mut alpha: Option, + mut beta: Option, +) -> BestPath { + if max_depth == 0 { + return BestPath { + score: root_node.heuristic(), + boards: vec![root_node], + }; + } + + let player_operation = if is_maximizing_player { + cmp::Ordering::Greater + } else { + cmp::Ordering::Less + }; + + let mut best_path: Option> = None; + + for node in root_node.iter() { + let path: BestPath = alpha_beta( + node, + !is_maximizing_player, + max_depth - 1, + alpha.clone(), + beta.clone(), + ); + + best_path = if let Some(value) = best_path { + match path.score.partial_cmp(&value.score) { + Some(op) if op == player_operation => Some(path), + _ => Some(value), + } + } else { + Some(path) + }; + + let p = best_path.as_ref().unwrap(); + + if is_maximizing_player { + alpha = Some(if let Some(a) = alpha { + if p.score > a { + p.score.clone() + } else { + a + } + } else { + p.score.clone() + }); + } else { + beta = Some(if let Some(b) = beta { + if p.score < b { + p.score.clone() + } else { + b + } + } else { + p.score.clone() + }); + } + + if let Some((a, b)) = alpha.as_ref().zip(beta.as_ref()) { + if is_maximizing_player && a >= b { + break; + } else if !is_maximizing_player && b <= a { + break; + } + } + } + + if let Some(mut path) = best_path { + // let mut boards = best_boards.unwrap(); + // boards.push(root_node); + + path.boards.push(root_node); + + path + } else { + BestPath { + score: root_node.heuristic(), + boards: vec![root_node], + } + } +} +#[cfg(test)] +mod tests { + use super::*; + + use crate::tictactoe::{TicTacToe, TicTacToeMoveGenerator}; + + impl MinimaxNode for TicTacToe { + type It = TicTacToeMoveGenerator; + type Heuristic = f64; + + fn iter(&self) -> Self::It { + self.generate_moves() + } + + fn heuristic(&self) -> Self::Heuristic { + self.score_board() + } + } + + #[test] + fn tic_tac_toe() { + let board = TicTacToe::with_size(3); + + let path = alpha_beta(board, true, 16, None, None); + + println!("MINIMAX Value: {}", path.score); + + for b in path.boards.iter().rev() { + println!("{}", b); + } + + println!("The only winning move is not to play."); + } +} diff --git a/minimax/src/tictactoe.rs b/minimax/src/tictactoe.rs new file mode 100644 index 0000000..1cb2ff2 --- /dev/null +++ b/minimax/src/tictactoe.rs @@ -0,0 +1,226 @@ +#![allow(dead_code)] +use std::fmt; + +#[derive(Clone, Copy, Debug)] +enum GameState { + InProgress, + GameOver { winner: Option }, +} + +#[derive(Clone, Copy, PartialEq, Debug)] +enum Piece { + X, + O, +} + +#[derive(Clone)] +pub(crate) struct TicTacToe { + spaces: Vec>, + next_player_turn: Piece, + width: usize, + height: usize, +} + +impl TicTacToe { + pub(crate) fn new() -> Self { + Self::with_size(3) + } + + pub(crate) fn with_size(width: usize) -> Self { + Self { + spaces: vec![None; width * width], + next_player_turn: Piece::X, + width, + height: width, + } + } + + pub(crate) fn generate_moves(&self) -> TicTacToeMoveGenerator { + TicTacToeMoveGenerator::new(self.clone()) + } + + fn get_index(&self, row: usize, column: usize) -> usize { + row * self.width + column + } + + pub(crate) fn score_board(&self) -> f64 { + match self.get_game_state() { + GameState::InProgress => 0.0, + GameState::GameOver { winner: None } => 1.0, + GameState::GameOver { + winner: Some(Piece::X), + } => 100.0, + GameState::GameOver { + winner: Some(Piece::O), + } => -100.0, + } + } + + /// This is super inefficient and gross, but I don't care + fn get_game_state(&self) -> GameState { + 'outer: for row in 0..self.height { + let index = self.get_index(row, 0); + let initial_mark = self.spaces[index]; + + for column in 1..self.width { + let index = self.get_index(row, column); + + if initial_mark != self.spaces[index] { + continue 'outer; + } + } + + if let Some(p) = initial_mark { + return GameState::GameOver { winner: Some(p) }; + } + } + + 'outer2: for column in 0..self.width { + let index = self.get_index(0, column); + let initial_mark = self.spaces[index]; + + for row in 1..self.height { + let index = self.get_index(row, column); + + if initial_mark != self.spaces[index] { + continue 'outer2; + } + } + + if let Some(p) = initial_mark { + return GameState::GameOver { winner: Some(p) }; + } + } + + let index = self.get_index(0, 0); + let initial_mark = self.spaces[index]; + let mut we_good = true; + + for column in 1..self.width { + let index = self.get_index(column, column); + + if initial_mark != self.spaces[index] { + we_good = false; + break; + } + } + + if we_good { + if let Some(p) = initial_mark { + return GameState::GameOver { winner: Some(p) }; + } + } + + let index = self.get_index(self.height - 1, 0); + let initial_mark = self.spaces[index]; + let mut we_good = true; + + for column in 1..self.width { + let index = self.get_index(self.height - column - 1, column); + + if initial_mark != self.spaces[index] { + we_good = false; + break; + } + } + + if we_good { + if let Some(p) = initial_mark { + return GameState::GameOver { winner: Some(p) }; + } + } + + match self.spaces.iter().find(|space| space.is_none()) { + Some(_) => GameState::InProgress, + None => GameState::GameOver { winner: None }, + } + } +} + +pub(crate) struct TicTacToeMoveGenerator { + root_board: TicTacToe, + index: usize, +} + +impl TicTacToeMoveGenerator { + fn new(root_board: TicTacToe) -> Self { + Self { + root_board, + index: 0, + } + } +} + +impl Iterator for TicTacToeMoveGenerator { + type Item = TicTacToe; + + fn next(&mut self) -> Option { + if let GameState::GameOver { + winner: Some(Piece::O), + } = self.root_board.get_game_state() + { + return None; + } + + while self.index < self.root_board.spaces.len() { + if let None = self.root_board.spaces[self.index] { + let mut new_board = self.root_board.clone(); + + new_board.spaces[self.index] = Some(self.root_board.next_player_turn); + new_board.next_player_turn = match self.root_board.next_player_turn { + Piece::O => Piece::X, + Piece::X => Piece::O, + }; + + self.index += 1; + return Some(new_board); + } + + self.index += 1; + } + + None + } +} + +impl fmt::Display for TicTacToe { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let mut board_string = String::new(); + + for row in 0..self.height { + for column in 0..self.width { + let index = self.get_index(row, column); + + let piece = self.spaces[index]; + + let piece_str = match piece { + Some(Piece::O) => "O", + Some(Piece::X) => "X", + None => " ", + }; + + board_string += piece_str; + + if column != self.width - 1 { + board_string += "│"; + } + } + + board_string += "\n"; + + if row != self.height - 1 { + for column in 0..self.width { + if column != self.width - 1 { + board_string += "─┼"; + } else { + board_string += "─" + } + } + + board_string += "\n"; + } + } + + write!(f, "{}", board_string) + } +} diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index d02458b..0000000 --- a/src/main.rs +++ /dev/null @@ -1,55 +0,0 @@ -#![forbid(unsafe_code)] -#![allow(dead_code)] -// #![cfg_attr(feature = "strict", allow(dead_code))] -// #![cfg_attr(feature = "strict", deny(missing_docs))] -#![cfg_attr(feature = "strict", deny(warnings))] - -#[macro_use] -extern crate uncover; -#[macro_use] -extern crate num_derive; -#[macro_use] -extern crate failure; -#[macro_use] -extern crate lazy_static; - -define_uncover_macros!(enable_if(cfg!(debug_assertions))); - -pub mod chess; -pub mod fixtures; -pub mod test_moves; - -use crate::chess::DEFAULT_BOARD; -use crate::chess::{BitBoard, Board, Player}; - -fn main() -> Result<(), failure::Error> { - let pieces: [BitBoard; 6] = [ - BitBoard::from(1), - BitBoard::from(1 << 8), - BitBoard::from(1 << 12), - BitBoard::from(1 << 16), - BitBoard::from(1 << 25), - BitBoard::from(1 << 63), - ]; - - let board = Board { - players: [ - pieces[0].join(pieces[2]).join(pieces[4]), - pieces[1].join(pieces[3]).join(pieces[5]), - ], - pieces, - next_player: Player::White, - ..Default::default() - }; - println!("{}", board); - - let board = Board::from(DEFAULT_BOARD, Player::White)?; - println!("{}", board); - - println!( - "{}", - BitBoard::from(0b0000_1111).rotate_45cw().to_bitboard() - ); - - Ok(()) -} diff --git a/tests/__snapshots__/bishop_move_generation.rs.snap b/tests/__snapshots__/bishop_move_generation.rs.snap deleted file mode 100644 index 14756f5..0000000 --- a/tests/__snapshots__/bishop_move_generation.rs.snap +++ /dev/null @@ -1,1133 +0,0 @@ -{ - "bishop_move_generation::test_generate_black_bishop_moves": - { - file: - [ - tests - bishop_move_generation.rs - ] - module_path: bishop_move_generation - test_function: test_generate_black_bishop_moves - recorded_value: - [ - - ''' - First Move - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BG1F2 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ ♝ · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BG1H2 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · ♝ ║ 15 - 0x00 1 ║ · · · · ♘ · · ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BG1E3 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · ♝ ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BG1D4 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ ♝ · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BG1C5 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · ♝ · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BG1B6 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · ♝ · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BG1A7 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ ♝ · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BH1G2 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · ♝ · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BH1xF3 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♝ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE2D1 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · ♝ ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE2F1 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ ♝ ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE2D3 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · ♝ · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE2xF3 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♝ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4A2 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ ♝ · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4B3 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · ♝ · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4D3 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · ♝ · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4B5 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · ♝ · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4D5 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · ♝ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4A6 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♝ · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4E6 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♝ ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4F7 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · ♝ · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BC4G8 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · ♝ · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6A1 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ ♝ · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6B2 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · ♝ · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6C3 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · ♝ · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6D4 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ ♝ · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6xH4 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♝ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6E5 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♝ · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6G5 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · ♝ · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6E7 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · ♝ · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6G7 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · ♝ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6D8 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · ♝ ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BF6H8 - - ╔═════════════════╗ - 0x38 8 ║ ♝ · · · ♘ · · ♝ ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BA8xF3 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♝ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BA8E4 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · ♝ · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BA8D5 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · ♝ · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BA8C6 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · ♝ · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BA8B7 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · ♝ · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♝ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♝ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♝ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♝ ♝ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - ] - } - "bishop_move_generation::test_generate_white_bishop_moves": - { - file: - [ - tests - bishop_move_generation.rs - ] - module_path: bishop_move_generation - test_function: test_generate_white_bishop_moves - recorded_value: - [ - - ''' - First Move - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD1C2 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ ♗ · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD1E2 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · ♗ · · · ║ 15 - 0x00 1 ║ · · · · · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD1xB3 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♗ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD1F3 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · ♗ · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD1G4 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · ♗ ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD1H5 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · ♗ ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BH1G2 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · ♗ · ║ 15 - 0x00 1 ║ · · · ♗ · · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BH1F3 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · ♗ · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE4B1 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · ♗ · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE4C2 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ ♗ · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE4G2 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · ♗ · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE4D3 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · ♗ · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE4F3 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · ♗ · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE4F5 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · ♗ · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE4G6 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · ♗ · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BE4H7 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ ♗ ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD5xB3 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♗ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD5C4 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♗ · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD5C6 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · ♗ · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD5E6 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · ♗ · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD5B7 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · ♗ · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD5F7 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · ♗ ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BD5G8 - - ╔═════════════════╗ - 0x38 8 ║ ♗ · · ♞ · · ♗ · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BA8C6 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · ♗ · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - BA8B7 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · ♗ · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♗ · · · · ║ 39 - 0x18 4 ║ · · · · ♗ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♗ · · · ♗ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - ] - } -} \ No newline at end of file diff --git a/tests/__snapshots__/king_move_generation.rs.snap b/tests/__snapshots__/king_move_generation.rs.snap deleted file mode 100644 index 2bf7bbd..0000000 --- a/tests/__snapshots__/king_move_generation.rs.snap +++ /dev/null @@ -1,317 +0,0 @@ -{ - "king_move_generation::test_generate_black_king_moves": - { - file: - [ - tests - king_move_generation.rs - ] - module_path: king_move_generation - test_function: test_generate_black_king_moves - recorded_value: - [ - - ''' - First Move - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♚ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KF6E5 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♚ · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KF6G5 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · ♚ · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KF6E6 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♚ · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KF6E7 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · ♚ · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - ] - } - "king_move_generation::test_generate_white_king_moves": - { - file: - [ - tests - king_move_generation.rs - ] - module_path: king_move_generation - test_function: test_generate_white_king_moves - recorded_value: - [ - - ''' - First Move - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♔ · · · · ║ 39 - 0x18 4 ║ · · · · ♔ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KD1C1 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♔ · · · · ║ 39 - 0x18 4 ║ · · · · ♔ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · ♔ · · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KD1E1 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♔ · · · · ║ 39 - 0x18 4 ║ · · · · ♔ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · ♔ · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KE4D4 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♔ · · · · ║ 39 - 0x18 4 ║ · · · ♔ · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KE4F4 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♔ · · · · ║ 39 - 0x18 4 ║ · · · · · ♔ · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KE4E5 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♔ ♔ · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KE4F5 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♔ · ♔ · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KD5C4 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♔ · ♔ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KD5D4 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · ♔ ♔ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KD5C5 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · ♔ · · · · · ║ 39 - 0x18 4 ║ · · · · ♔ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KD5E5 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♔ · · · ║ 39 - 0x18 4 ║ · · · · ♔ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - KD5D6 - - ╔═════════════════╗ - 0x38 8 ║ ♔ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · ♔ · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♔ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♔ · · · ♔ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - ] - } -} \ No newline at end of file diff --git a/tests/__snapshots__/queen_move_generation.rs.snap b/tests/__snapshots__/queen_move_generation.rs.snap deleted file mode 100644 index a30d063..0000000 --- a/tests/__snapshots__/queen_move_generation.rs.snap +++ /dev/null @@ -1,3088 +0,0 @@ -{ - "queen_move_generation::test_generate_black_queen_moves": - { - file: - [ - tests - queen_move_generation.rs - ] - module_path: queen_move_generation - test_function: test_generate_black_queen_moves - recorded_value: - [ - - ''' - PD2D4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1xE1 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♛ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1F1 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ ♛ · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1F2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ ♛ · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1G2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · ♛ · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1H2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · ♛ ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1E3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · ♛ ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1G3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ ♛ · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1D4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ ♛ · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1G4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · ♛ ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1C5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · ♛ · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1G5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · ♛ · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1B6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · ♛ · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1G6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ ♛ · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1A7 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ ♛ · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1G7 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · ♛ · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QG1G8 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · ♛ · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · · ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1G2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · ♛ · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1H2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · ♛ ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1xF3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♛ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1H3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · ♛ ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1xH4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♛ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2D1 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · ♛ ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2xE1 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♛ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2F1 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ ♛ ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2A2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ ♛ · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2B2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · ♛ · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2C2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · ♛ · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2D2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · ♛ · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2F2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · ♛ · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2G2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · ♛ · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2H2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · ♛ ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2D3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · ♛ · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2E3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · ♛ ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2xF3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♛ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2E4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · ♛ · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2E5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · ♛ · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2E6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♛ ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2E7 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · ♛ · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE2xE8 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♛ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · · · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4C1 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · ♛ · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4A2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ ♛ · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4C2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · ♛ · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4B3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · ♛ · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4C3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · ♛ · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4D3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · ♛ · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4A4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♛ · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4B4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · ♛ · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4D4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · ♛ · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4E4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♛ · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4F4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · ♛ · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4G4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · ♛ ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4xH4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♛ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4B5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · ♛ · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4C5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · ♛ · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4D5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · ♛ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4A6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♛ · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4C6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · ♛ · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4E6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♛ ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4C7 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · ♛ · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4F7 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · ♛ · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4C8 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · ♛ · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QC4G8 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · ♛ · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6A1 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ ♛ · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6B2 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · ♛ · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6C3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · ♛ · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6xF3 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♛ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6D4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ ♛ · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6F4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · ♛ · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6xH4 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♛ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6E5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♛ · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6F5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♛ · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6G5 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · ♛ · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6A6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♛ · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6B6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · ♛ · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6C6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · ♛ · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6D6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · ♛ · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6E6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · ♛ · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6G6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · ♛ · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6H6 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · ♛ ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6E7 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · ♛ · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6F7 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · ♛ · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6G7 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · ♛ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6D8 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · ♛ ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6F8 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ ♛ · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QF6H8 - - ╔═════════════════╗ - 0x38 8 ║ ♛ · · · ♘ · · ♛ ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A1 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ ♛ · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A2 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ ♛ · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A3 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ ♛ · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8xF3 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♛ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A4 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ ♛ · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8E4 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · ♛ · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A5 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ ♛ · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8D5 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · ♛ · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A6 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ ♛ · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8C6 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · ♛ · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A7 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ ♛ · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8B7 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♘ · · · ║ 63 - 0x30 7 ║ · ♛ · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8B8 - - ╔═════════════════╗ - 0x38 8 ║ · ♛ · · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8C8 - - ╔═════════════════╗ - 0x38 8 ║ · · ♛ · ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8D8 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♛ ♘ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8xE8 - - ╔═════════════════╗ - 0x38 8 ║ · · · · ♛ · · · ║ 63 - 0x30 7 ║ · · · · · · · · ║ 55 - 0x28 6 ║ · · · · · ♛ · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♛ · · · · ♘ ║ 31 - 0x10 3 ║ · · · · · ♖ · · ║ 23 - 0x08 2 ║ · · · · ♛ · · · ║ 15 - 0x00 1 ║ · · · · ♘ · ♛ ♛ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - ] - } - "queen_move_generation::test_generate_white_queen_moves": - { - file: - [ - tests - queen_move_generation.rs - ] - module_path: queen_move_generation - test_function: test_generate_white_queen_moves - recorded_value: - [ - - ''' - PF7F5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1A1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ ♕ · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1B1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · ♕ · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1C1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · ♕ · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1E1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · ♕ · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1F1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · ♕ · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1G1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · ♕ ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1C2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ ♕ · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1D2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · ♕ · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1E2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · ♕ · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1xB3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♕ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1D3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · ♕ · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1F3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · ♕ · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1D4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · ♕ ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1G4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · ♕ ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD1H5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · ♕ ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · · · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1E1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ ♕ · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1F1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · ♕ · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1G1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · ♕ · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1G2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · ♕ · ║ 15 - 0x00 1 ║ · · · ♕ · · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1H2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · ♕ ║ 15 - 0x00 1 ║ · · · ♕ · · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1F3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · ♕ · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1H3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · ♕ ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QH1xH4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♕ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · · ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4B1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · ♕ · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4E1 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ ♕ · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4C2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ ♕ · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4E2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · ♕ · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4G2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · ♕ · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4D3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · ♕ · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4E3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · ♕ · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4F3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · ♕ · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4A4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ ♕ · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4B4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · ♕ · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4C4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · ♕ · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4D4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · ♕ · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4F4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · ♕ · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4G4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · ♕ ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4xH4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♕ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4E5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ ♕ · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4F5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · ♕ · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4E6 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · ♕ · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4G6 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · ♕ · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4E7 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · ♕ · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4H7 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ ♕ ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QE4E8 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ ♕ · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · · · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5D2 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · ♕ · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5xB3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♕ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5D3 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · ♕ · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5C4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · ♕ · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5D4 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · ♕ ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5A5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♕ · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5B5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · ♕ · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5C5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · ♕ · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5E5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · ♕ · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5F5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · ♕ · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5G5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · ♕ · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5H5 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · ♕ ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5C6 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · ♕ · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5D6 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · ♕ · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5E6 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · ♕ · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5B7 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · ♕ · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5D7 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · ♕ · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5F7 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · ♕ ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5xD8 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♕ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QD5G8 - - ╔═════════════════╗ - 0x38 8 ║ ♕ · · ♞ · · ♕ · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · · · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A1 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ ♕ · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A2 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ ♕ ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A3 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ ♕ ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A4 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ ♕ · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A5 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ ♕ · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A6 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ ♕ · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8C6 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · ♕ · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8A7 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ ♕ · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8B7 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♞ · · · · ║ 63 - 0x30 7 ║ · ♕ · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8B8 - - ╔═════════════════╗ - 0x38 8 ║ · ♕ · ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8C8 - - ╔═════════════════╗ - 0x38 8 ║ · · ♕ ♞ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - - ''' - QA8xD8 - - ╔═════════════════╗ - 0x38 8 ║ · · · ♕ · · · · ║ 63 - 0x30 7 ║ · · · · · · ♜ · ║ 55 - 0x28 6 ║ · · · · · · · · ║ 47 - 0x20 5 ║ · · · ♕ · · · · ║ 39 - 0x18 4 ║ · · · · ♕ · · ♟ ║ 31 - 0x10 3 ║ · ♜ · · · · · · ║ 23 - 0x08 2 ║ · ♜ · · · · · · ║ 15 - 0x00 1 ║ · · · ♕ · · · ♕ ║ 7 - ╚═════════════════╝ - A B C D E F G H - - ''' - ] - } -} \ No newline at end of file diff --git a/web-test/.gitignore b/web-test/.gitignore new file mode 100644 index 0000000..763301f --- /dev/null +++ b/web-test/.gitignore @@ -0,0 +1,2 @@ +dist/ +node_modules/ \ No newline at end of file diff --git a/web-test/index.html b/web-test/index.html new file mode 100644 index 0000000..0aa84ce --- /dev/null +++ b/web-test/index.html @@ -0,0 +1,34 @@ + + + + Chess + + + +
+ + \ No newline at end of file diff --git a/web-test/package.json b/web-test/package.json new file mode 100644 index 0000000..15a4181 --- /dev/null +++ b/web-test/package.json @@ -0,0 +1,27 @@ +{ + "name": "chess-web", + "version": "1.0.0", + "description": "", + "main": "index.js", + "private": true, + "scripts": { + "start": "webpack-dev-server --mode=development" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "@babel/cli": "^7.2.3", + "@babel/core": "^7.2.2", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/preset-env": "^7.2.3", + "@babel/preset-typescript": "^7.1.0", + "@wasm-tool/wasm-pack-plugin": "^0.2.0", + "babel-loader": "^8.0.4", + "html-webpack-plugin": "^3.2.0", + "source-map-loader": "^0.2.4", + "typescript": "^3.2.2", + "webpack": "^4.28.3", + "webpack-cli": "^3.1.2", + "webpack-dev-server": "^3.1.14" + } +} diff --git a/web-test/src/main.ts b/web-test/src/main.ts new file mode 100644 index 0000000..899d408 --- /dev/null +++ b/web-test/src/main.ts @@ -0,0 +1,187 @@ +const DEFAULT_BOARD = ` + rnbkqbnr + pppppppp + xxxxxxxx + xxxxxxxx + xxxxxxxx + xxxxxxxx + PPPPPPPP + RNBKQBNR +`; + +import type * as ChessType from "../../chess-web/pkg"; + +let cachedValues: any; +let chess: typeof ChessType; + +enum Owner { + White = "w", + Black = "b", +} + +enum PieceType { + King = "k", + Queen = "q", + Bishop = "b", + Knight = "n", + Rook = "r", + Pawn = "p", +} + +class Piece { + constructor( + public owner: Owner, + public rank: number, + public file: number, + public type: PieceType + ) {} + + toUnicode(): string { + switch (this.type) { + case PieceType.King: + return this.owner === Owner.White ? "♔" : "♚"; + case PieceType.Queen: + return this.owner === Owner.White ? "♕" : "♛"; + case PieceType.Rook: + return this.owner === Owner.White ? "♖" : "♜"; + case PieceType.Bishop: + return this.owner === Owner.White ? "♗" : "♝"; + case PieceType.Knight: + return this.owner === Owner.White ? "♘" : "♞"; + case PieceType.Pawn: + return this.owner === Owner.White ? "♙" : "♟"; + } + } +} + +class Board { + static from( + board: string | ChessType.Board, + isCurrentPlayerWhite = true + ): Board { + let boardRs: ChessType.Board; + if (typeof board === "string") { + boardRs = chess.Board.from(board, isCurrentPlayerWhite); + } else { + boardRs = board; + } + + const pieces: Piece[] = []; + + boardRs.get_pieces((piece: ChessType.Piece) => { + pieces.push( + new Piece( + piece.owner() as Owner, + piece.rank(), + piece.file(), + piece.type().toLowerCase() as PieceType + ) + ); + + piece.free(); + }); + + console.log("Freeing"); + + boardRs.free(); + + return new Board(pieces, isCurrentPlayerWhite); + } + + public boardString: string; + + private constructor( + public pieces: Piece[], + public isCurrentPlayerWhite = true + ) { + this.boardString = ""; + + for (let rank = 7; rank >= 0; rank -= 1) { + for (let file = 0; file < 8; file += 1) { + const piece = this.getAt(rank, file); + + if (piece) { + const type = piece.type; + this.boardString += + piece.owner === Owner.White + ? type.toUpperCase() + : type.toLowerCase(); + } else { + this.boardString += "."; + } + } + + this.boardString += "\n"; + } + } + + getAt(rank: number, file: number): Piece | undefined { + const piece = this.pieces.find( + (piece) => piece.rank === rank && piece.file === file + ); + + return piece; + } + + generate_boards() { + const boards = chess.Board.from( + this.boardString, + this.isCurrentPlayerWhite + ).generate_moves(); + + return boards.map((board) => Board.from(board, !this.isCurrentPlayerWhite)); + } +} + +export async function build(): Promise<{ Board: typeof Board }> { + if (cachedValues) { + return cachedValues; + } + + chess = await import("../../chess-web/pkg"); + + const rVal = { + Board, + }; + + cachedValues = rVal; + + return rVal; +} + +const PIECE_LOOKUP = {}; + +function depictionFromBoard(board: Board): HTMLElement { + const container = document.createElement("div"); + container.className = "board"; + + for (let rank = 7; rank >= 0; rank -= 1) { + for (let file = 0; file < 8; file += 1) { + const space = document.createElement("div"); + const spaceType = (rank + file) % 2 === 1 ? "odd" : "even"; + space.className = `board-space board-space_${spaceType}`; + + const piece = board.getAt(rank, file); + + if (piece) { + space.innerText = piece.toUnicode(); + } + + container.appendChild(space); + } + } + + return container; +} + +build().then((api) => { + const board = api.Board.from(DEFAULT_BOARD, true); + const boardContainer = depictionFromBoard(board); + document.body.appendChild(boardContainer); + console.log(board.pieces); + + for (const b of board.generate_boards()) { + const boardContainer = depictionFromBoard(b); + document.body.appendChild(boardContainer); + } +}); diff --git a/web-test/tsconfig.json b/web-test/tsconfig.json new file mode 100644 index 0000000..4d03a6d --- /dev/null +++ b/web-test/tsconfig.json @@ -0,0 +1,60 @@ +{ + "compilerOptions": { + /* Basic Options */ + "target": "ESNEXT", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ + "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ + "lib": ["es2015", "dom"], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + // "outDir": "./", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + } +} \ No newline at end of file diff --git a/web-test/webpack.config.js b/web-test/webpack.config.js new file mode 100644 index 0000000..8acd9fc --- /dev/null +++ b/web-test/webpack.config.js @@ -0,0 +1,41 @@ +const path = require("path"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); + +const dist = path.resolve(__dirname, "dist"); +const WasmPackPlugin = require("@wasm-tool/wasm-pack-plugin"); + +module.exports = { + entry: "./src/main.ts", + output: { + path: dist, + filename: "bundle.js" + }, + devtool: 'source-map', + module: { + rules: [ + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: { + loader: "babel-loader", + options: { + presets: ["@babel/preset-typescript"], + plugins: ["@babel/plugin-syntax-dynamic-import"] + } + } + } + ] + }, + devServer: { + contentBase: dist + }, + plugins: [ + new HtmlWebpackPlugin({ + template: "index.html" + }), + + new WasmPackPlugin({ + crateDirectory: path.resolve(__dirname, "..", "chess-web") + }) + ] +}; diff --git a/web-test/yarn.lock b/web-test/yarn.lock new file mode 100644 index 0000000..3328a3a --- /dev/null +++ b/web-test/yarn.lock @@ -0,0 +1,5366 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/cli@^7.2.3": + version "7.13.14" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.13.14.tgz#c395bc89ec4760c91f2027fa8b26f8b2bf42238f" + integrity sha512-zmEFV8WBRsW+mPQumO1/4b34QNALBVReaiHJOkxhUsdo/AvYM62c+SKSuLi2aZ42t3ocK6OI0uwUXRvrIbREZw== + dependencies: + commander "^4.0.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.1.0" + glob "^7.0.0" + lodash "^4.17.19" + make-dir "^2.1.0" + slash "^2.0.0" + source-map "^0.5.0" + optionalDependencies: + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents" + chokidar "^3.4.0" + +"@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" + integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== + +"@babel/core@^7.2.2": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.15.tgz#a6d40917df027487b54312202a06812c4f7792d0" + integrity sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.9" + "@babel/helper-compilation-targets" "^7.13.13" + "@babel/helper-module-transforms" "^7.13.14" + "@babel/helpers" "^7.13.10" + "@babel/parser" "^7.13.15" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.15" + "@babel/types" "^7.13.14" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.13.9": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== + dependencies: + "@babel/types" "^7.13.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5" + integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ== + dependencies: + "@babel/compat-data" "^7.13.12" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.13.0": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" + integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" + +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" + integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" + integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== + dependencies: + "@babel/types" "^7.13.0" + +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-hoist-variables@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" + integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== + dependencies: + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" + integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14": + version "7.13.14" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef" + integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g== + dependencies: + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-simple-access" "^7.13.12" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.13" + "@babel/types" "^7.13.14" + +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + +"@babel/helper-remap-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" + integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" + integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.13.12" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.12" + +"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" + integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + +"@babel/helper-wrap-function@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" + integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helpers@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" + integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/highlight@^7.12.13": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" + integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.12.13", "@babel/parser@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.15.tgz#8e66775fb523599acb6a289e12929fa5ab0954d8" + integrity sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ== + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" + integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + +"@babel/plugin-proposal-async-generator-functions@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b" + integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-proposal-dynamic-import@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" + integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" + integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" + integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" + integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" + integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.13.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" + integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" + integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-typescript@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" + integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-arrow-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" + integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" + integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" + +"@babel/plugin-transform-block-scoped-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-block-scoping@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" + integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-classes@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" + integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" + integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-destructuring@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" + integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-duplicate-keys@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-exponentiation-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-for-of@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" + integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-member-expression-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-modules-amd@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" + integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== + dependencies: + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" + integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== + dependencies: + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" + integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== + dependencies: + "@babel/helper-hoist-variables" "^7.13.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-identifier" "^7.12.11" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" + integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== + dependencies: + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + +"@babel/plugin-transform-new-target@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-object-super@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + +"@babel/plugin-transform-parameters@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" + integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-property-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-regenerator@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" + integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-shorthand-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-spread@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" + integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + +"@babel/plugin-transform-sticky-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-template-literals@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" + integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-typeof-symbol@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-typescript@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853" + integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-typescript" "^7.12.13" + +"@babel/plugin-transform-unicode-escapes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-unicode-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/preset-env@^7.2.3": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f" + integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA== + dependencies: + "@babel/compat-data" "^7.13.15" + "@babel/helper-compilation-targets" "^7.13.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-async-generator-functions" "^7.13.15" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-dynamic-import" "^7.13.8" + "@babel/plugin-proposal-export-namespace-from" "^7.12.13" + "@babel/plugin-proposal-json-strings" "^7.13.8" + "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-numeric-separator" "^7.12.13" + "@babel/plugin-proposal-object-rest-spread" "^7.13.8" + "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.12.13" + "@babel/plugin-transform-arrow-functions" "^7.13.0" + "@babel/plugin-transform-async-to-generator" "^7.13.0" + "@babel/plugin-transform-block-scoped-functions" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.12.13" + "@babel/plugin-transform-classes" "^7.13.0" + "@babel/plugin-transform-computed-properties" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.13.0" + "@babel/plugin-transform-dotall-regex" "^7.12.13" + "@babel/plugin-transform-duplicate-keys" "^7.12.13" + "@babel/plugin-transform-exponentiation-operator" "^7.12.13" + "@babel/plugin-transform-for-of" "^7.13.0" + "@babel/plugin-transform-function-name" "^7.12.13" + "@babel/plugin-transform-literals" "^7.12.13" + "@babel/plugin-transform-member-expression-literals" "^7.12.13" + "@babel/plugin-transform-modules-amd" "^7.13.0" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/plugin-transform-modules-systemjs" "^7.13.8" + "@babel/plugin-transform-modules-umd" "^7.13.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" + "@babel/plugin-transform-new-target" "^7.12.13" + "@babel/plugin-transform-object-super" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-property-literals" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.13.15" + "@babel/plugin-transform-reserved-words" "^7.12.13" + "@babel/plugin-transform-shorthand-properties" "^7.12.13" + "@babel/plugin-transform-spread" "^7.13.0" + "@babel/plugin-transform-sticky-regex" "^7.12.13" + "@babel/plugin-transform-template-literals" "^7.13.0" + "@babel/plugin-transform-typeof-symbol" "^7.12.13" + "@babel/plugin-transform-unicode-escapes" "^7.12.13" + "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.13.14" + babel-plugin-polyfill-corejs2 "^0.2.0" + babel-plugin-polyfill-corejs3 "^0.2.0" + babel-plugin-polyfill-regenerator "^0.2.0" + core-js-compat "^3.9.0" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-typescript@^7.1.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a" + integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-transform-typescript" "^7.13.0" + +"@babel/runtime@^7.8.4": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" + integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.15.tgz#c38bf7679334ddd4028e8e1f7b3aa5019f0dada7" + integrity sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.9" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.15" + "@babel/types" "^7.13.14" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.4.4": + version "7.13.14" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d" + integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents": + version "2.1.8-no-fsevents" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b" + integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/json-schema@^7.0.5": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + +"@types/minimatch@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + +"@types/node@*": + version "14.14.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" + integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== + +"@wasm-tool/wasm-pack-plugin@^0.2.0": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@wasm-tool/wasm-pack-plugin/-/wasm-pack-plugin-0.2.7.tgz#116189b57b952de06b8080b0541b860c8eb8824f" + integrity sha512-B6YgQIBUMY2E/Xye8y1O3uTOSttP/i3oi+f/2LlwLzAnxJL1qJnzsV+eUne1mjPVFSppONt8ZMVQWXIB3Y4MHA== + dependencies: + chalk "^2.4.1" + command-exists "^1.2.7" + watchpack "^1.6.0" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.5.0, async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +babel-loader@^8.0.4: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-polyfill-corejs2@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" + integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.0" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" + integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.0" + core-js-compat "^3.9.1" + +babel-plugin-polyfill-regenerator@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" + integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.14.5, browserslist@^4.16.3: + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== + dependencies: + caniuse-lite "^1.0.30001181" + colorette "^1.2.1" + electron-to-chromium "^1.3.649" + escalade "^3.1.1" + node-releases "^1.1.70" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-lite@^1.0.30001181: + version "1.0.30001208" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz#a999014a35cebd4f98c405930a057a0d75352eb9" + integrity sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA== + +chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.4.0, chokidar@^3.4.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.2.x: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +colorette@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +command-exists@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.1.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.9.0, core-js-compat@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.1.tgz#62183a3a77ceeffcc420d907a3e6fc67d9b27f1c" + integrity sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg== + dependencies: + browserslist "^4.16.3" + semver "7.0.0" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-select@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.1, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-node@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" + integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.649: + version "1.3.712" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.712.tgz#ae467ffe5f95961c6d41ceefe858fc36eb53b38f" + integrity sha512-3kRVibBeCM4vsgoHHGKHmPocLqtFAGTrebXxxtgKs87hNUzXrX2NuS3jnBys7IozCnw7viQlozxKkmty2KNfrw== + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esrecurse@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +eventsource@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" + integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +faye-websocket@^0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0: + version "1.13.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" + integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.4: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" + integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= + dependencies: + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + tapable "^1.0.0" + toposort "^1.0.0" + util.promisify "1.0.0" + +htmlparser2@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.4, is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json3@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loglevel@^1.6.8: + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + +mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== + dependencies: + mime-db "1.47.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-releases@^1.1.70: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" + integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +pretty-error@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" + integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== + dependencies: + css-select "^2.0.2" + dom-converter "^0.2" + htmlparser2 "^3.10.1" + lodash "^4.17.20" + strip-ansi "^3.0.0" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.14.2: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.8: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== + dependencies: + node-forge "^0.10.0" + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" + integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== + dependencies: + debug "^3.2.6" + eventsource "^1.0.7" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.5.1" + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-loader@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" + integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ== + dependencies: + async "^2.5.0" + loader-utils "^1.1.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@~0.5.12: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^3.2.2: + version "3.9.9" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" + integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +unbox-primitive@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse@^1.4.3, url-parse@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.6.0, watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +webpack-cli@^3.1.2: + version "3.3.12" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" + integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== + dependencies: + chalk "^2.4.2" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.1" + findup-sync "^3.0.0" + global-modules "^2.0.0" + import-local "^2.0.0" + interpret "^1.4.0" + loader-utils "^1.4.0" + supports-color "^6.1.0" + v8-compile-cache "^2.1.1" + yargs "^13.3.2" + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.1.14: + version "3.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.28.3: + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.5.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2"