[INFO] cloning repository https://github.com/taodaling/rustcp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/taodaling/rustcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 64ef8dd5ce66925b3f9f892c9798654523e1c283
[INFO] testing taodaling/rustcp against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/taodaling/rustcp
[INFO] finished tweaking git repo https://github.com/taodaling/rustcp
[INFO] tweaked toml for git repo https://github.com/taodaling/rustcp written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/taodaling/rustcp on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/taodaling/rustcp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-0-tc1/source/contest/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] afe25b2647ee01de98805c9dedea5821400008ccc45e20be64149b88fef551ae
[INFO] running `Command { std: "docker" "start" "-a" "afe25b2647ee01de98805c9dedea5821400008ccc45e20be64149b88fef551ae", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "afe25b2647ee01de98805c9dedea5821400008ccc45e20be64149b88fef551ae", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afe25b2647ee01de98805c9dedea5821400008ccc45e20be64149b88fef551ae", kill_on_drop: false }`
[INFO] [stdout] afe25b2647ee01de98805c9dedea5821400008ccc45e20be64149b88fef551ae
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 824d110ec76e5123cd1960fb1e26ee785a289ca5a7760ec3572665db5c11420e
[INFO] running `Command { std: "docker" "start" "-a" "824d110ec76e5123cd1960fb1e26ee785a289ca5a7760ec3572665db5c11420e", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/contest/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling contest v0.1.0 (/opt/rustwide/workdir/contest)
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_gcd::gcd`
[INFO] [stdout]  --> contest/src/math.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     num_gcd::gcd,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_float::float`
[INFO] [stdout]  --> contest/src/arithmetic.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_float::float, num_number::FromNumber};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(crate) use AddTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:122:16
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub(crate) use MulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddMulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub(crate) use AddMulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> contest/src/miller_rabin.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::rand::{rng, random};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convolution_brute_force`
[INFO] [stdout]  --> contest/src/poly_ntt.rs:9:163
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...ture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim},
[INFO] [stdout]   |                                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type mi0 = StaticModInt<i32, MF469762049>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type mi1 = StaticModInt<i32, MF998244353>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | type mi2 = StaticModInt<i32, MF167772161>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type cv0 = ConvolutionNTT<i32, mi0>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | type cv1 = ConvolutionNTT<i32, mi1>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | type cv2 = ConvolutionNTT<i32, mi2>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ntt` and `poly::Poly`
[INFO] [stdout]   --> contest/src/poly_ntt_test.rs:1:68
[INFO] [stdout]    |
[INFO] [stdout]  1 | use crate::{static_modint::{StaticModInt, MF998244353}, poly_ntt::{ntt, ConvolutionNTT}, poly::Poly};
[INFO] [stdout]    |                                                                    ^^^                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub mod poly_ntt_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionMTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::FromNumber`
[INFO] [stdout]  --> contest/src/poly_common.rs:1:66
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> contest/src/poly_bf.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout]   |                                         ^ ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout] 5 + pub struct ConvolutionBF<T>(PhantomData<T >);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Convolution` and `Poly`
[INFO] [stdout]  --> contest/src/poly_interpolation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     poly::{Convolution, Poly},
[INFO] [stdout]   |            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Pointer`
[INFO] [stdout]  --> contest/src/linear_feedback_shift_register.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}};
[INFO] [stdout]   |                                                                ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug_discard` and `debug`
[INFO] [stdout]  --> contest/src/linear_recurrence.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 |     macros::{should, should_eq, debug_discard, debug},
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `linear_recurrence::kth_term_of_linear_recurrence`, `macros::debug_discard`, `num_integer::Integer`, and `num_number::FromNumber`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:1:13
[INFO] [stdout]    |
[INFO] [stdout]  1 | ...::{linear_recurrence::kth_term_of_linear_recurrence, static_modint::{StaticModInt, MF998244353}, num_number::FromNumber, poly_bf::ConvolutionBF, num_integer::Integer, macros::debug_discard};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                              ^^^^^^^^^^^^^^^^^^^^^^                          ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityMul`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:2:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | use crate::arithmetic::IdentityMul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityAdd`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:3:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | use crate::arithmetic::IdentityAdd;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type conv = ConvolutionBF<mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `xorshift128p_state` should have an upper camel case name
[INFO] [stdout]  --> contest/src/rand.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct xorshift128p_state(u64, u64);
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_real.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `str::FromStr` and `string::ParseError`
[INFO] [stdout]  --> contest/src/modint.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{str::FromStr, string::ParseError, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/dynamic_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DynamicModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) use DynamicModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/static_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/static_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StaticModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/static_modint.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) use StaticModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> contest/src/enumerate_prime.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut`, `ShlAssign`, and `Shl`
[INFO] [stdout]  --> contest/src/bitset.rs:1:114
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}};
[INFO] [stdout]   |                                                     ^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pointer`
[INFO] [stdout]  --> contest/src/num_float.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{Debug, Display, Pointer},
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `float` should have an upper camel case name
[INFO] [stdout]   --> contest/src/num_float.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct float(f64);
[INFO] [stdout]    |            ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> contest/src/binary_lifting_compress_on_tree.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}};
[INFO] [stdout]   |                                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Add`
[INFO] [stdout]  --> contest/src/persistent_segtree.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]  --> contest/src/lichao_segtree.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{Ordering, max}, mem::swap};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         ///
[INFO] [stdout] 77 | |         ///     a.0 x + a.1 = b.0 x + b.1
[INFO] [stdout] 78 | |         /// =>  x = (b.1 - a.1) / (a.0 - b.0)
[INFO] [stdout] 79 | |         ///
[INFO] [stdout]    | |_________--^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `take`
[INFO] [stdout]  --> contest/src/leftist_tree.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `argmax_by` and `num_number::Number`
[INFO] [stdout]  --> contest/src/tree_diameter.rs:1:102
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |                                                      ^^^^^^^^^   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> contest/src/collection.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, mem::swap};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_permutation`
[INFO] [stdout]  --> contest/src/bipartite_match_kuhn.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     shuffle::{random_permutation, shuffle},
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `debug`
[INFO] [stdout]   --> contest/src/macros.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | macro_rules! debug {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `debug_discard`
[INFO] [stdout]   --> contest/src/macros.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 | macro_rules! debug_discard {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MergerImpl`
[INFO] [stdout]   --> contest/src/macros.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 | macro_rules! MergerImpl {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `AddImpl`
[INFO] [stdout]   --> contest/src/macros.rs:86:14
[INFO] [stdout]    |
[INFO] [stdout] 86 | macro_rules! AddImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `SubImpl`
[INFO] [stdout]   --> contest/src/macros.rs:99:14
[INFO] [stdout]    |
[INFO] [stdout] 99 | macro_rules! SubImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 | macro_rules! DivImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 | macro_rules! MulImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MergerImpl`
[INFO] [stdout]    --> contest/src/macros.rs:168:16
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub (crate)use MergerImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddImpl`
[INFO] [stdout]    --> contest/src/macros.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub (crate)use AddImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubImpl`
[INFO] [stdout]    --> contest/src/macros.rs:172:16
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub (crate)use SubImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:174:16
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub (crate)use MulImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub (crate)use DivImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panic`
[INFO] [stdout]  --> contest/src/solver.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{Write, BufRead}, panic};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, and `Sub`
[INFO] [stdout]  --> contest/src/solver.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Add, Sub, Mul, Div};
[INFO] [stdout]   |                ^^^  ^^^  ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `poly::Poly`
[INFO] [stdout]  --> contest/src/solver.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::From...
[INFO] [stdout]   |                                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::algebraic_structure::*`
[INFO] [stdout]  --> contest/src/solver.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::algebraic_structure::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type mi = StaticModInt<i32, MF998244353>; 
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::swap`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{BufRead, Write}, mem::swap};
[INFO] [stdout]   |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]  --> contest/src/vector_binary_subset_convolution.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 |     vector_binary_convolution::FWTLayer, num_integer::Integer
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> contest/src/permutation.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | /             loop {
[INFO] [stdout] 33 | |                 j -= 1;
[INFO] [stdout] 34 | |                 if s[j] < s[i] {
[INFO] [stdout] 35 | |                     swap_element(s, i, j);
[INFO] [stdout] 36 | |                 }
[INFO] [stdout] 37 | |             }
[INFO] [stdout]    | |_____________- any code following this expression is unreachable
[INFO] [stdout] 38 |               s[i + 1..n].reverse();
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::num_number::{Number, FromNumber};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::Number`
[INFO] [stdout]  --> contest/src/bipartite_maximum_weight_match_km.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/bipartite_minimum_weight_match.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     num_number::{Number, FromNumber}, num_concrete::Concrete,
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_integer_reverse.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::num_number::{FromNumber, Number};
[INFO] [stdout]   |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]   --> contest/src/poly.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     num_integer::Integer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/math.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn inverse_batch<T: Field>(mut data: &[T]) -> Vec<T> {
[INFO] [stdout]     |                                ----^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn mul(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn add(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn sub(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:228:18
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn div(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:239:27
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/pollard_rho.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut c = random(n - T::ONE) + T::ONE;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `t` is never read
[INFO] [stdout]   --> contest/src/pollard_rho.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut t = T::ZERO;
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_fft.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let mut tn = <T as FromNumber>::from(n);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |             let mut ans = self.exp0((n + 1) / 2);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let mut ln = ans.clone().ln(n);
[INFO] [stdout]     |                 ----^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> contest/src/poly.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let rank = self.rank();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn downgrade_mod(self: Self, mut n: impl Iterator<Item = usize>) -> Self {
[INFO] [stdout]     |                                      ----^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:225:43
[INFO] [stdout]     |
[INFO] [stdout] 225 |     pub fn convolution_delta(mut a: Self, mut b: Self) -> Self {
[INFO] [stdout]     |                                           ----^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut res = C::convolution(a.0, b.0);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:281:22
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn batch_mul(mut polys: &mut [Self]) -> Self {
[INFO] [stdout]     |                      ----^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn into_iter(mut self) -> std::vec::IntoIter<T> {
[INFO] [stdout]     |                  ----^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> contest/src/poly_common.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn poly_modular<T: Ring>(mut p: Vec<T>, len: usize) -> Vec<T> {
[INFO] [stdout]   |                              ----^
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_interpolation.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut res = Self {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |             |i, a, b| b - a >= k,
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/treap.rs:137:30
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn modify(&mut self, mut id: usize, upd: U) {
[INFO] [stdout]     |                              ----^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_tree.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         for i in 0..level {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/link_cut_tree.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn init(&mut self, mut id: usize) {
[INFO] [stdout]     |                            ----^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> contest/src/cost_flow_augment_dijkstra.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let n = self.g.len();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/general_graph_match.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn mate(&self, mut i: usize) -> Option<usize> {
[INFO] [stdout]     |                        ----^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let mut x = queue[qs];
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:67:21
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y];
[INFO] [stdout]    |                     ----^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut pre_x = y_pre[end_y];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut pre_y = row.left_mate[pre_x];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/solver.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_id`
[INFO] [stdout]   --> contest/src/solver.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub unsafe fn solve_one<I: BufRead>(test_id: usize, fi: &mut FastInput<I>, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fi`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                ^^ help: if this is intentional, prefix it with an underscore: `_fi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:57
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> contest/src/vector_matrix.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let k = lhs.m;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `mod2` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | static mod2: i64 = M0 * M1;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 28 - static mod2: i64 = M0 * M1;
[INFO] [stdout] 28 + static MOD2: i64 = M0 * M1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static inv10: i64 = 208783132;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV10`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | static inv01: i64 = 554580198;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV01`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv012` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | static inv012: i64 = 29562547;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 31 - static inv012: i64 = 29562547;
[INFO] [stdout] 31 + static INV012: i64 = 29562547;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p1inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | static p1inv10: i64 = 208416582520653596;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 32 - static p1inv10: i64 = 208416582520653596;
[INFO] [stdout] 32 + static P1INV10: i64 = 208416582520653596;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p0inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | static p0inv01: i64 = 260520730147305702;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 33 - static p0inv01: i64 = 260520730147305702;
[INFO] [stdout] 33 + static P0INV01: i64 = 260520730147305702;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let C = Self::inverse_internal(p.split_at(prev_mod).0);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let C = poly_extend(C, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let A = p.to_owned();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let A = poly_extend(A, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AC` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut AC = poly_extend(Self::convolution(A, C.clone()), m);
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `ac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/rand.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |     static mut singleton: Option<Rng> = None;
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 51 -     static mut singleton: Option<Rng> = None;
[INFO] [stdout] 51 +     static mut SINGLETON: Option<Rng> = None;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/rand.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &mut singleton {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &raw mut singleton {
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `phi` should have an upper case name
[INFO] [stdout]   --> contest/src/enumerate_prime.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     static phi: [usize; 10] = [
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 46 -     static phi: [usize; 10] = [
[INFO] [stdout] 46 +     static PHI: [usize; 10] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |             mem::transmute(self.0)
[INFO] [stdout]     |             --------------^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: replace this with: `f64::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:262:30
[INFO] [stdout]     |
[INFO] [stdout] 262 |     let bits: u64 = unsafe { mem::transmute(val) };
[INFO] [stdout]     |                              --------------^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: replace this with: `f64::to_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:43
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                           ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:53
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:42
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:52
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:39
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:49
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:52
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:62
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:39
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:49
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:52
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:62
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:39
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:49
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:52
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:62
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:40
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:50
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:40
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:50
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:42
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:52
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:26
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:48
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                              ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:22
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:31
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                               ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |         R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `leftSubset` should have a snake case name
[INFO] [stdout]   --> contest/src/maximum_independent_set.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let leftSubset = subsets[(mask & (!nearby[i])) as usize];
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut S = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut T = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> contest/src/solver.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     writeln!(fo, "{}", kth);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let _ = writeln!(fo, "{}", kth);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/vector_binary_subset_convolution.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut T = vec![zero; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stress::stress`
[INFO] [stdout]  --> contest/src/main.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use contest::{solver::solve_multi, stress::stress};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_in_new_thread` is never used
[INFO] [stdout]   --> contest/src/main.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | unsafe fn run_in_new_thread() {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> contest/src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | /     thread::Builder::new()
[INFO] [stdout] 17 | |     .stack_size(256 << 20)
[INFO] [stdout] 18 | |     .spawn(|| {run_in_current_thread();})
[INFO] [stdout] 19 | |     .unwrap()
[INFO] [stdout] 20 | |     .join();
[INFO] [stdout]    | |___________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let _ = thread::Builder::new()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.83s
[INFO] running `Command { std: "docker" "inspect" "824d110ec76e5123cd1960fb1e26ee785a289ca5a7760ec3572665db5c11420e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "824d110ec76e5123cd1960fb1e26ee785a289ca5a7760ec3572665db5c11420e", kill_on_drop: false }`
[INFO] [stdout] 824d110ec76e5123cd1960fb1e26ee785a289ca5a7760ec3572665db5c11420e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cf0cdd90969faacf30a54e94ef7f8c3b436aae1690858f332c6d8c01f5341f91
[INFO] running `Command { std: "docker" "start" "-a" "cf0cdd90969faacf30a54e94ef7f8c3b436aae1690858f332c6d8c01f5341f91", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] package:   /opt/rustwide/workdir/contest/Cargo.toml
[INFO] [stdout] warning: unused import: `num_gcd::gcd`
[INFO] [stdout]  --> contest/src/math.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     num_gcd::gcd,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stdout] warning: unused import: `num_float::float`
[INFO] [stdout]  --> contest/src/arithmetic.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_float::float, num_number::FromNumber};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stdout] warning: unused import: `AddTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(crate) use AddTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   |
[INFO] [stdout] warning: unused import: `MulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:122:16
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub(crate) use MulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stdout] warning: unused import: `AddMulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub(crate) use AddMulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> contest/src/miller_rabin.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::rand::{rng, random};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convolution_brute_force`
[INFO] [stdout]  --> contest/src/poly_ntt.rs:9:163
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...ture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim},
[INFO] [stdout]   |                                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type mi0 = StaticModInt<i32, MF469762049>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type mi1 = StaticModInt<i32, MF998244353>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | type mi2 = StaticModInt<i32, MF167772161>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type cv0 = ConvolutionNTT<i32, mi0>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | type cv1 = ConvolutionNTT<i32, mi1>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | type cv2 = ConvolutionNTT<i32, mi2>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ntt` and `poly::Poly`
[INFO] [stdout]   --> contest/src/poly_ntt_test.rs:1:68
[INFO] [stdout]    |
[INFO] [stdout]  1 | use crate::{static_modint::{StaticModInt, MF998244353}, poly_ntt::{ntt, ConvolutionNTT}, poly::Poly};
[INFO] [stdout]    |                                                                    ^^^                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub mod poly_ntt_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionMTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::FromNumber`
[INFO] [stdout]  --> contest/src/poly_common.rs:1:66
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> contest/src/poly_bf.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout]   |                                         ^ ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout] 5 + pub struct ConvolutionBF<T>(PhantomData<T >);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Convolution` and `Poly`
[INFO] [stdout]  --> contest/src/poly_interpolation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     poly::{Convolution, Poly},
[INFO] [stdout]   |            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Pointer`
[INFO] [stdout]  --> contest/src/linear_feedback_shift_register.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}};
[INFO] [stdout]   |                                                                ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug_discard` and `debug`
[INFO] [stdout]  --> contest/src/linear_recurrence.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 |     macros::{should, should_eq, debug_discard, debug},
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `linear_recurrence::kth_term_of_linear_recurrence`, `macros::debug_discard`, `num_integer::Integer`, and `num_number::FromNumber`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:1:13
[INFO] [stdout]    |
[INFO] [stdout]  1 | ...::{linear_recurrence::kth_term_of_linear_recurrence, static_modint::{StaticModInt, MF998244353}, num_number::FromNumber, poly_bf::ConvolutionBF, num_integer::Integer, macros::debug_discard};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                              ^^^^^^^^^^^^^^^^^^^^^^                          ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityMul`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:2:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | use crate::arithmetic::IdentityMul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityAdd`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:3:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | use crate::arithmetic::IdentityAdd;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type conv = ConvolutionBF<mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `xorshift128p_state` should have an upper camel case name
[INFO] [stdout]  --> contest/src/rand.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct xorshift128p_state(u64, u64);
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_real.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `str::FromStr` and `string::ParseError`
[INFO] [stdout]  --> contest/src/modint.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{str::FromStr, string::ParseError, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/dynamic_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DynamicModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) use DynamicModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/static_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/static_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StaticModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/static_modint.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) use StaticModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> contest/src/enumerate_prime.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut`, `ShlAssign`, and `Shl`
[INFO] [stdout]  --> contest/src/bitset.rs:1:114
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}};
[INFO] [stdout]   |                                                     ^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pointer`
[INFO] [stdout]  --> contest/src/num_float.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{Debug, Display, Pointer},
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `float` should have an upper camel case name
[INFO] [stdout]   --> contest/src/num_float.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct float(f64);
[INFO] [stdout]    |            ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> contest/src/binary_lifting_compress_on_tree.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}};
[INFO] [stdout]   |                                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Add`
[INFO] [stdout]  --> contest/src/persistent_segtree.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]  --> contest/src/lichao_segtree.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{Ordering, max}, mem::swap};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         ///
[INFO] [stdout] 77 | |         ///     a.0 x + a.1 = b.0 x + b.1
[INFO] [stdout] 78 | |         /// =>  x = (b.1 - a.1) / (a.0 - b.0)
[INFO] [stdout] 79 | |         ///
[INFO] [stdout]    | |_________--^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `take`
[INFO] [stdout]  --> contest/src/leftist_tree.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `argmax_by` and `num_number::Number`
[INFO] [stdout]  --> contest/src/tree_diameter.rs:1:102
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |                                                      ^^^^^^^^^   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> contest/src/collection.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, mem::swap};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_permutation`
[INFO] [stdout]  --> contest/src/bipartite_match_kuhn.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     shuffle::{random_permutation, shuffle},
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `debug`
[INFO] [stdout]   --> contest/src/macros.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | macro_rules! debug {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `debug_discard`
[INFO] [stdout]   --> contest/src/macros.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 | macro_rules! debug_discard {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MergerImpl`
[INFO] [stdout]   --> contest/src/macros.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 | macro_rules! MergerImpl {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `AddImpl`
[INFO] [stdout]   --> contest/src/macros.rs:86:14
[INFO] [stdout]    |
[INFO] [stdout] 86 | macro_rules! AddImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `SubImpl`
[INFO] [stdout]   --> contest/src/macros.rs:99:14
[INFO] [stdout]    |
[INFO] [stdout] 99 | macro_rules! SubImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 | macro_rules! DivImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 | macro_rules! MulImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MergerImpl`
[INFO] [stdout]    --> contest/src/macros.rs:168:16
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub (crate)use MergerImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddImpl`
[INFO] [stdout]    --> contest/src/macros.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub (crate)use AddImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubImpl`
[INFO] [stdout]    --> contest/src/macros.rs:172:16
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub (crate)use SubImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:174:16
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub (crate)use MulImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub (crate)use DivImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panic`
[INFO] [stdout]  --> contest/src/solver.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{Write, BufRead}, panic};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, and `Sub`
[INFO] [stdout]  --> contest/src/solver.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Add, Sub, Mul, Div};
[INFO] [stdout]   |                ^^^  ^^^  ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `poly::Poly`
[INFO] [stdout]  --> contest/src/solver.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::From...
[INFO] [stdout]   |                                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::algebraic_structure::*`
[INFO] [stdout]  --> contest/src/solver.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::algebraic_structure::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type mi = StaticModInt<i32, MF998244353>; 
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::swap`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{BufRead, Write}, mem::swap};
[INFO] [stdout]   |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]  --> contest/src/vector_binary_subset_convolution.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 |     vector_binary_convolution::FWTLayer, num_integer::Integer
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> contest/src/permutation.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | /             loop {
[INFO] [stdout] 33 | |                 j -= 1;
[INFO] [stdout] 34 | |                 if s[j] < s[i] {
[INFO] [stdout] 35 | |                     swap_element(s, i, j);
[INFO] [stdout] 36 | |                 }
[INFO] [stdout] 37 | |             }
[INFO] [stdout]    | |_____________- any code following this expression is unreachable
[INFO] [stdout] 38 |               s[i + 1..n].reverse();
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::num_number::{Number, FromNumber};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::Number`
[INFO] [stdout]  --> contest/src/bipartite_maximum_weight_match_km.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/bipartite_minimum_weight_match.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     num_number::{Number, FromNumber}, num_concrete::Concrete,
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_integer_reverse.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::num_number::{FromNumber, Number};
[INFO] [stdout]   |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]   --> contest/src/poly.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     num_integer::Integer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/math.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn inverse_batch<T: Field>(mut data: &[T]) -> Vec<T> {
[INFO] [stdout]     |                                ----^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn mul(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn add(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn sub(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:228:18
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn div(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:239:27
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/pollard_rho.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut c = random(n - T::ONE) + T::ONE;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `t` is never read
[INFO] [stdout]   --> contest/src/pollard_rho.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut t = T::ZERO;
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_fft.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let mut tn = <T as FromNumber>::from(n);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |             let mut ans = self.exp0((n + 1) / 2);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let mut ln = ans.clone().ln(n);
[INFO] [stdout]     |                 ----^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> contest/src/poly.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let rank = self.rank();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn downgrade_mod(self: Self, mut n: impl Iterator<Item = usize>) -> Self {
[INFO] [stdout]     |                                      ----^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:225:43
[INFO] [stdout]     |
[INFO] [stdout] 225 |     pub fn convolution_delta(mut a: Self, mut b: Self) -> Self {
[INFO] [stdout]     |                                           ----^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut res = C::convolution(a.0, b.0);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:281:22
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn batch_mul(mut polys: &mut [Self]) -> Self {
[INFO] [stdout]     |                      ----^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn into_iter(mut self) -> std::vec::IntoIter<T> {
[INFO] [stdout]     |                  ----^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> contest/src/poly_common.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn poly_modular<T: Ring>(mut p: Vec<T>, len: usize) -> Vec<T> {
[INFO] [stdout]   |                              ----^
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_interpolation.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut res = Self {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |             |i, a, b| b - a >= k,
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/treap.rs:137:30
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn modify(&mut self, mut id: usize, upd: U) {
[INFO] [stdout]     |                              ----^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_tree.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         for i in 0..level {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/link_cut_tree.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn init(&mut self, mut id: usize) {
[INFO] [stdout]     |                            ----^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> contest/src/cost_flow_augment_dijkstra.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let n = self.g.len();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/general_graph_match.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn mate(&self, mut i: usize) -> Option<usize> {
[INFO] [stdout]     |                        ----^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let mut x = queue[qs];
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:67:21
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y];
[INFO] [stdout]    |                     ----^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut pre_x = y_pre[end_y];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut pre_y = row.left_mate[pre_x];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/solver.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_id`
[INFO] [stdout]   --> contest/src/solver.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub unsafe fn solve_one<I: BufRead>(test_id: usize, fi: &mut FastInput<I>, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fi`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                ^^ help: if this is intentional, prefix it with an underscore: `_fi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:57
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> contest/src/vector_matrix.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let k = lhs.m;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `mod2` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | static mod2: i64 = M0 * M1;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 28 - static mod2: i64 = M0 * M1;
[INFO] [stdout] 28 + static MOD2: i64 = M0 * M1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static inv10: i64 = 208783132;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV10`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | static inv01: i64 = 554580198;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV01`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv012` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | static inv012: i64 = 29562547;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 31 - static inv012: i64 = 29562547;
[INFO] [stdout] 31 + static INV012: i64 = 29562547;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p1inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | static p1inv10: i64 = 208416582520653596;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 32 - static p1inv10: i64 = 208416582520653596;
[INFO] [stdout] 32 + static P1INV10: i64 = 208416582520653596;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p0inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | static p0inv01: i64 = 260520730147305702;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 33 - static p0inv01: i64 = 260520730147305702;
[INFO] [stdout] 33 + static P0INV01: i64 = 260520730147305702;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let C = Self::inverse_internal(p.split_at(prev_mod).0);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let C = poly_extend(C, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let A = p.to_owned();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let A = poly_extend(A, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AC` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut AC = poly_extend(Self::convolution(A, C.clone()), m);
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `ac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/rand.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |     static mut singleton: Option<Rng> = None;
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 51 -     static mut singleton: Option<Rng> = None;
[INFO] [stdout] 51 +     static mut SINGLETON: Option<Rng> = None;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/rand.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &mut singleton {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &raw mut singleton {
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `phi` should have an upper case name
[INFO] [stdout]   --> contest/src/enumerate_prime.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     static phi: [usize; 10] = [
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 46 -     static phi: [usize; 10] = [
[INFO] [stdout] 46 +     static PHI: [usize; 10] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |             mem::transmute(self.0)
[INFO] [stdout]     |             --------------^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: replace this with: `f64::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:262:30
[INFO] [stdout]     |
[INFO] [stdout] 262 |     let bits: u64 = unsafe { mem::transmute(val) };
[INFO] [stdout]     |                              --------------^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: replace this with: `f64::to_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:43
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                           ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:53
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:42
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:52
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:39
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:49
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:52
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:62
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:39
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:49
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:52
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:62
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:39
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:49
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:52
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:62
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:40
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:50
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:40
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:50
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:42
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:52
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:26
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling contest v0.1.0 (/opt/rustwide/workdir/contest)
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:48
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                              ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:22
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:31
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                               ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |         R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `leftSubset` should have a snake case name
[INFO] [stdout]   --> contest/src/maximum_independent_set.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let leftSubset = subsets[(mask & (!nearby[i])) as usize];
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut S = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut T = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> contest/src/solver.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     writeln!(fo, "{}", kth);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let _ = writeln!(fo, "{}", kth);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/vector_binary_subset_convolution.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut T = vec![zero; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stress::stress`
[INFO] [stdout]  --> contest/src/main.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use contest::{solver::solve_multi, stress::stress};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_in_new_thread` is never used
[INFO] [stdout]   --> contest/src/main.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | unsafe fn run_in_new_thread() {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> contest/src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | /     thread::Builder::new()
[INFO] [stdout] 17 | |     .stack_size(256 << 20)
[INFO] [stdout] 18 | |     .spawn(|| {run_in_current_thread();})
[INFO] [stdout] 19 | |     .unwrap()
[INFO] [stdout] 20 | |     .join();
[INFO] [stdout]    | |___________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let _ = thread::Builder::new()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_gcd::gcd`
[INFO] [stdout]  --> contest/src/math.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     num_gcd::gcd,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_float::float`
[INFO] [stdout]  --> contest/src/arithmetic.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_float::float, num_number::FromNumber};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(crate) use AddTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:122:16
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub(crate) use MulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddMulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub(crate) use AddMulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> contest/src/miller_rabin.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::rand::{rng, random};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convolution_brute_force`
[INFO] [stdout]  --> contest/src/poly_ntt.rs:9:163
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...ture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim},
[INFO] [stdout]   |                                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type mi0 = StaticModInt<i32, MF469762049>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type mi1 = StaticModInt<i32, MF998244353>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | type mi2 = StaticModInt<i32, MF167772161>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type cv0 = ConvolutionNTT<i32, mi0>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | type cv1 = ConvolutionNTT<i32, mi1>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | type cv2 = ConvolutionNTT<i32, mi2>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionMTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::FromNumber`
[INFO] [stdout]  --> contest/src/poly_common.rs:1:66
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> contest/src/poly_bf.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout]   |                                         ^ ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout] 5 + pub struct ConvolutionBF<T>(PhantomData<T >);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Convolution` and `Poly`
[INFO] [stdout]  --> contest/src/poly_interpolation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     poly::{Convolution, Poly},
[INFO] [stdout]   |            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Pointer`
[INFO] [stdout]  --> contest/src/linear_feedback_shift_register.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}};
[INFO] [stdout]   |                                                                ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug_discard` and `debug`
[INFO] [stdout]  --> contest/src/linear_recurrence.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 |     macros::{should, should_eq, debug_discard, debug},
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type conv = ConvolutionBF<mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `xorshift128p_state` should have an upper camel case name
[INFO] [stdout]  --> contest/src/rand.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct xorshift128p_state(u64, u64);
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_real.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `str::FromStr` and `string::ParseError`
[INFO] [stdout]  --> contest/src/modint.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{str::FromStr, string::ParseError, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/dynamic_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DynamicModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) use DynamicModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/static_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/static_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StaticModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/static_modint.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) use StaticModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> contest/src/enumerate_prime.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut`, `ShlAssign`, and `Shl`
[INFO] [stdout]  --> contest/src/bitset.rs:1:114
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}};
[INFO] [stdout]   |                                                     ^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pointer`
[INFO] [stdout]  --> contest/src/num_float.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{Debug, Display, Pointer},
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `float` should have an upper camel case name
[INFO] [stdout]   --> contest/src/num_float.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct float(f64);
[INFO] [stdout]    |            ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> contest/src/binary_lifting_compress_on_tree.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}};
[INFO] [stdout]   |                                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Add`
[INFO] [stdout]  --> contest/src/persistent_segtree.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]  --> contest/src/lichao_segtree.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{Ordering, max}, mem::swap};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         ///
[INFO] [stdout] 77 | |         ///     a.0 x + a.1 = b.0 x + b.1
[INFO] [stdout] 78 | |         /// =>  x = (b.1 - a.1) / (a.0 - b.0)
[INFO] [stdout] 79 | |         ///
[INFO] [stdout]    | |_________--^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `take`
[INFO] [stdout]  --> contest/src/leftist_tree.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `argmax_by` and `num_number::Number`
[INFO] [stdout]  --> contest/src/tree_diameter.rs:1:102
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |                                                      ^^^^^^^^^   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> contest/src/collection.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, mem::swap};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_permutation`
[INFO] [stdout]  --> contest/src/bipartite_match_kuhn.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     shuffle::{random_permutation, shuffle},
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `debug`
[INFO] [stdout]   --> contest/src/macros.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | macro_rules! debug {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MergerImpl`
[INFO] [stdout]   --> contest/src/macros.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 | macro_rules! MergerImpl {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `AddImpl`
[INFO] [stdout]   --> contest/src/macros.rs:86:14
[INFO] [stdout]    |
[INFO] [stdout] 86 | macro_rules! AddImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `SubImpl`
[INFO] [stdout]   --> contest/src/macros.rs:99:14
[INFO] [stdout]    |
[INFO] [stdout] 99 | macro_rules! SubImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 | macro_rules! DivImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 | macro_rules! MulImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MergerImpl`
[INFO] [stdout]    --> contest/src/macros.rs:168:16
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub (crate)use MergerImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddImpl`
[INFO] [stdout]    --> contest/src/macros.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub (crate)use AddImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubImpl`
[INFO] [stdout]    --> contest/src/macros.rs:172:16
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub (crate)use SubImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:174:16
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub (crate)use MulImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub (crate)use DivImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panic`
[INFO] [stdout]  --> contest/src/solver.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{Write, BufRead}, panic};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, and `Sub`
[INFO] [stdout]  --> contest/src/solver.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Add, Sub, Mul, Div};
[INFO] [stdout]   |                ^^^  ^^^  ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `poly::Poly`
[INFO] [stdout]  --> contest/src/solver.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::From...
[INFO] [stdout]   |                                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::algebraic_structure::*`
[INFO] [stdout]  --> contest/src/solver.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::algebraic_structure::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type mi = StaticModInt<i32, MF998244353>; 
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::swap`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{BufRead, Write}, mem::swap};
[INFO] [stdout]   |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]  --> contest/src/vector_binary_subset_convolution.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 |     vector_binary_convolution::FWTLayer, num_integer::Integer
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> contest/src/permutation.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | /             loop {
[INFO] [stdout] 33 | |                 j -= 1;
[INFO] [stdout] 34 | |                 if s[j] < s[i] {
[INFO] [stdout] 35 | |                     swap_element(s, i, j);
[INFO] [stdout] 36 | |                 }
[INFO] [stdout] 37 | |             }
[INFO] [stdout]    | |_____________- any code following this expression is unreachable
[INFO] [stdout] 38 |               s[i + 1..n].reverse();
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::num_number::{Number, FromNumber};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::Number`
[INFO] [stdout]  --> contest/src/bipartite_maximum_weight_match_km.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/bipartite_minimum_weight_match.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     num_number::{Number, FromNumber}, num_concrete::Concrete,
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_integer_reverse.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::num_number::{FromNumber, Number};
[INFO] [stdout]   |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]   --> contest/src/poly.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     num_integer::Integer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/math.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn inverse_batch<T: Field>(mut data: &[T]) -> Vec<T> {
[INFO] [stdout]     |                                ----^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn mul(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn add(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn sub(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:228:18
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn div(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:239:27
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/pollard_rho.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut c = random(n - T::ONE) + T::ONE;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `t` is never read
[INFO] [stdout]   --> contest/src/pollard_rho.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut t = T::ZERO;
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_fft.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let mut tn = <T as FromNumber>::from(n);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |             let mut ans = self.exp0((n + 1) / 2);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let mut ln = ans.clone().ln(n);
[INFO] [stdout]     |                 ----^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> contest/src/poly.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let rank = self.rank();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn downgrade_mod(self: Self, mut n: impl Iterator<Item = usize>) -> Self {
[INFO] [stdout]     |                                      ----^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:225:43
[INFO] [stdout]     |
[INFO] [stdout] 225 |     pub fn convolution_delta(mut a: Self, mut b: Self) -> Self {
[INFO] [stdout]     |                                           ----^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut res = C::convolution(a.0, b.0);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:281:22
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn batch_mul(mut polys: &mut [Self]) -> Self {
[INFO] [stdout]     |                      ----^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn into_iter(mut self) -> std::vec::IntoIter<T> {
[INFO] [stdout]     |                  ----^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> contest/src/poly_common.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn poly_modular<T: Ring>(mut p: Vec<T>, len: usize) -> Vec<T> {
[INFO] [stdout]   |                              ----^
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_interpolation.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut res = Self {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |             |i, a, b| b - a >= k,
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/treap.rs:137:30
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn modify(&mut self, mut id: usize, upd: U) {
[INFO] [stdout]     |                              ----^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_tree.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         for i in 0..level {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/link_cut_tree.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn init(&mut self, mut id: usize) {
[INFO] [stdout]     |                            ----^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> contest/src/cost_flow_augment_dijkstra.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let n = self.g.len();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/general_graph_match.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn mate(&self, mut i: usize) -> Option<usize> {
[INFO] [stdout]     |                        ----^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let mut x = queue[qs];
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:67:21
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y];
[INFO] [stdout]    |                     ----^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut pre_x = y_pre[end_y];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut pre_y = row.left_mate[pre_x];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/solver.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_id`
[INFO] [stdout]   --> contest/src/solver.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub unsafe fn solve_one<I: BufRead>(test_id: usize, fi: &mut FastInput<I>, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fi`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                ^^ help: if this is intentional, prefix it with an underscore: `_fi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:57
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> contest/src/vector_matrix.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let k = lhs.m;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `mod2` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | static mod2: i64 = M0 * M1;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 28 - static mod2: i64 = M0 * M1;
[INFO] [stdout] 28 + static MOD2: i64 = M0 * M1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static inv10: i64 = 208783132;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV10`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | static inv01: i64 = 554580198;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV01`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv012` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | static inv012: i64 = 29562547;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 31 - static inv012: i64 = 29562547;
[INFO] [stdout] 31 + static INV012: i64 = 29562547;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p1inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | static p1inv10: i64 = 208416582520653596;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 32 - static p1inv10: i64 = 208416582520653596;
[INFO] [stdout] 32 + static P1INV10: i64 = 208416582520653596;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p0inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | static p0inv01: i64 = 260520730147305702;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 33 - static p0inv01: i64 = 260520730147305702;
[INFO] [stdout] 33 + static P0INV01: i64 = 260520730147305702;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let C = Self::inverse_internal(p.split_at(prev_mod).0);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let C = poly_extend(C, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let A = p.to_owned();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let A = poly_extend(A, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AC` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut AC = poly_extend(Self::convolution(A, C.clone()), m);
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `ac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/rand.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |     static mut singleton: Option<Rng> = None;
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 51 -     static mut singleton: Option<Rng> = None;
[INFO] [stdout] 51 +     static mut SINGLETON: Option<Rng> = None;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/rand.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &mut singleton {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &raw mut singleton {
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `phi` should have an upper case name
[INFO] [stdout]   --> contest/src/enumerate_prime.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     static phi: [usize; 10] = [
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 46 -     static phi: [usize; 10] = [
[INFO] [stdout] 46 +     static PHI: [usize; 10] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |             mem::transmute(self.0)
[INFO] [stdout]     |             --------------^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: replace this with: `f64::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:262:30
[INFO] [stdout]     |
[INFO] [stdout] 262 |     let bits: u64 = unsafe { mem::transmute(val) };
[INFO] [stdout]     |                              --------------^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: replace this with: `f64::to_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:43
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                           ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:53
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:42
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:52
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:39
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:49
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:52
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:62
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:39
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:49
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:52
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:62
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:39
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:49
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:52
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:62
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:40
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:50
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:40
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:50
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:42
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:52
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:26
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:48
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                              ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:22
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:31
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                               ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |         R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `leftSubset` should have a snake case name
[INFO] [stdout]   --> contest/src/maximum_independent_set.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let leftSubset = subsets[(mask & (!nearby[i])) as usize];
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut S = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut T = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> contest/src/solver.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     writeln!(fo, "{}", kth);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let _ = writeln!(fo, "{}", kth);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/vector_binary_subset_convolution.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut T = vec![zero; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.12s
[INFO] running `Command { std: "docker" "inspect" "cf0cdd90969faacf30a54e94ef7f8c3b436aae1690858f332c6d8c01f5341f91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf0cdd90969faacf30a54e94ef7f8c3b436aae1690858f332c6d8c01f5341f91", kill_on_drop: false }`
[INFO] [stdout] cf0cdd90969faacf30a54e94ef7f8c3b436aae1690858f332c6d8c01f5341f91
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 02f8657900add3d13e2e0440a2f4ff4a0f9f791cfe4d27abe6ff1d4b2dca06b5
[INFO] running `Command { std: "docker" "start" "-a" "02f8657900add3d13e2e0440a2f4ff4a0f9f791cfe4d27abe6ff1d4b2dca06b5", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/contest/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]  --> contest/src/fast_input.rs:1:15
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stderr]   |               ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_gcd::gcd`
[INFO] [stderr]  --> contest/src/math.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     num_gcd::gcd,
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_float::float`
[INFO] [stderr]  --> contest/src/arithmetic.rs:1:13
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{num_float::float, num_number::FromNumber};
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AddTagImpl`
[INFO] [stderr]    --> contest/src/arithmetic.rs:107:16
[INFO] [stderr]     |
[INFO] [stderr] 107 | pub(crate) use AddTagImpl;
[INFO] [stderr]     |                ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `MulTagImpl`
[INFO] [stderr]    --> contest/src/arithmetic.rs:122:16
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub(crate) use MulTagImpl;
[INFO] [stderr]     |                ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AddMulTagImpl`
[INFO] [stderr]    --> contest/src/arithmetic.rs:129:16
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub(crate) use AddMulTagImpl;
[INFO] [stderr]     |                ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rng`
[INFO] [stderr]  --> contest/src/miller_rabin.rs:4:19
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::rand::{rng, random};
[INFO] [stderr]   |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ops::Add`
[INFO] [stderr]  --> contest/src/pollard_rho.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::ops::Add;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `convolution_brute_force`
[INFO] [stderr]  --> contest/src/poly_ntt.rs:9:163
[INFO] [stderr]   |
[INFO] [stderr] 9 | ...ture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim},
[INFO] [stderr]   |                                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi0` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:17:6
[INFO] [stderr]    |
[INFO] [stderr] 17 | type mi0 = StaticModInt<i32, MF469762049>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case: `Mi0`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi1` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:18:6
[INFO] [stderr]    |
[INFO] [stderr] 18 | type mi1 = StaticModInt<i32, MF998244353>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case: `Mi1`
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi2` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:19:6
[INFO] [stderr]    |
[INFO] [stderr] 19 | type mi2 = StaticModInt<i32, MF167772161>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case: `Mi2`
[INFO] [stderr] 
[INFO] [stderr] warning: type `cv0` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:21:6
[INFO] [stderr]    |
[INFO] [stderr] 21 | type cv0 = ConvolutionNTT<i32, mi0>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0`
[INFO] [stderr] 
[INFO] [stderr] warning: type `cv1` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:22:6
[INFO] [stderr]    |
[INFO] [stderr] 22 | type cv1 = ConvolutionNTT<i32, mi1>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1`
[INFO] [stderr] 
[INFO] [stderr] warning: type `cv2` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:23:6
[INFO] [stderr]    |
[INFO] [stderr] 23 | type cv2 = ConvolutionNTT<i32, mi2>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ntt` and `poly::Poly`
[INFO] [stderr]   --> contest/src/poly_ntt_test.rs:1:68
[INFO] [stderr]    |
[INFO] [stderr]  1 | use crate::{static_modint::{StaticModInt, MF998244353}, poly_ntt::{ntt, ConvolutionNTT}, poly::Poly};
[INFO] [stderr]    |                                                                    ^^^                   ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stderr]   --> contest/src/lib.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub mod poly_ntt_test;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi` should have an upper camel case name
[INFO] [stderr]  --> contest/src/poly_ntt_test.rs:3:6
[INFO] [stderr]   |
[INFO] [stderr] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stderr]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stderr] 
[INFO] [stderr] warning: type `conv` should have an upper camel case name
[INFO] [stderr]  --> contest/src/poly_ntt_test.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stderr]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi` should have an upper camel case name
[INFO] [stderr]  --> contest/src/poly_mtt_test.rs:3:6
[INFO] [stderr]   |
[INFO] [stderr] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stderr]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stderr] 
[INFO] [stderr] warning: type `conv` should have an upper camel case name
[INFO] [stderr]  --> contest/src/poly_mtt_test.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type conv = ConvolutionMTT<i32, mi>;
[INFO] [stderr]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_number::FromNumber`
[INFO] [stderr]  --> contest/src/poly_common.rs:1:66
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber};
[INFO] [stderr]   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]  --> contest/src/poly_bf.rs:5:41
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stderr]   |                                         ^ ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 5 - pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stderr] 5 + pub struct ConvolutionBF<T>(PhantomData<T >);
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Convolution` and `Poly`
[INFO] [stderr]  --> contest/src/poly_interpolation.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 |     poly::{Convolution, Poly},
[INFO] [stderr]   |            ^^^^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Display` and `Pointer`
[INFO] [stderr]  --> contest/src/linear_feedback_shift_register.rs:1:64
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}};
[INFO] [stderr]   |                                                                ^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug_discard` and `debug`
[INFO] [stderr]  --> contest/src/linear_recurrence.rs:3:33
[INFO] [stderr]   |
[INFO] [stderr] 3 |     macros::{should, should_eq, debug_discard, debug},
[INFO] [stderr]   |                                 ^^^^^^^^^^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `linear_recurrence::kth_term_of_linear_recurrence`, `macros::debug_discard`, `num_integer::Integer`, and `num_number::FromNumber`
[INFO] [stderr]   --> contest/src/linear_recurrence_test.rs:1:13
[INFO] [stderr]    |
[INFO] [stderr]  1 | ...::{linear_recurrence::kth_term_of_linear_recurrence, static_modint::{StaticModInt, MF998244353}, num_number::FromNumber, poly_bf::ConvolutionBF, num_integer::Integer, macros::debug_discard};
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                              ^^^^^^^^^^^^^^^^^^^^^^                          ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stderr]   --> contest/src/lib.rs:30:1
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub mod linear_recurrence_test;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::arithmetic::IdentityMul`
[INFO] [stderr]   --> contest/src/linear_recurrence_test.rs:2:5
[INFO] [stderr]    |
[INFO] [stderr]  2 | use crate::arithmetic::IdentityMul;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stderr]   --> contest/src/lib.rs:30:1
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub mod linear_recurrence_test;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::arithmetic::IdentityAdd`
[INFO] [stderr]   --> contest/src/linear_recurrence_test.rs:3:5
[INFO] [stderr]    |
[INFO] [stderr]  3 | use crate::arithmetic::IdentityAdd;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stderr]   --> contest/src/lib.rs:30:1
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub mod linear_recurrence_test;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi` should have an upper camel case name
[INFO] [stderr]  --> contest/src/linear_recurrence_test.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stderr]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stderr] 
[INFO] [stderr] warning: type `conv` should have an upper camel case name
[INFO] [stderr]  --> contest/src/linear_recurrence_test.rs:5:6
[INFO] [stderr]   |
[INFO] [stderr] 5 | type conv = ConvolutionBF<mi>;
[INFO] [stderr]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stderr] 
[INFO] [stderr] warning: type `xorshift128p_state` should have an upper camel case name
[INFO] [stderr]  --> contest/src/rand.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct xorshift128p_state(u64, u64);
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Number`
[INFO] [stderr]  --> contest/src/num_real.rs:1:26
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete};
[INFO] [stderr]   |                          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `str::FromStr` and `string::ParseError`
[INFO] [stderr]  --> contest/src/modint.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{str::FromStr, string::ParseError, hash::Hash};
[INFO] [stderr]   |           ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stderr]  --> contest/src/dynamic_modint.rs:2:11
[INFO] [stderr]   |
[INFO] [stderr] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stderr]   |           ^^^^                  ^^^^^
[INFO] [stderr] 3 |     marker::PhantomData,
[INFO] [stderr] 4 |     num::ParseIntError,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 7 |     string::ParseError, hash::Hash,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `algebraic_structure::*`
[INFO] [stderr]   --> contest/src/dynamic_modint.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     algebraic_structure::*,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DynamicModulusFactoryImpl`
[INFO] [stderr]   --> contest/src/dynamic_modint.rs:95:16
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub(crate) use DynamicModulusFactoryImpl;
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stderr]  --> contest/src/static_modint.rs:2:11
[INFO] [stderr]   |
[INFO] [stderr] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stderr]   |           ^^^^                  ^^^^^
[INFO] [stderr] 3 |     marker::PhantomData,
[INFO] [stderr] 4 |     num::ParseIntError,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 7 |     string::ParseError, hash::Hash,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `algebraic_structure::*`
[INFO] [stderr]   --> contest/src/static_modint.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     algebraic_structure::*,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StaticModulusFactoryImpl`
[INFO] [stderr]   --> contest/src/static_modint.rs:40:16
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub(crate) use StaticModulusFactoryImpl;
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `max`
[INFO] [stderr]  --> contest/src/enumerate_prime.rs:1:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cmp::{max, min};
[INFO] [stderr]   |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `IndexMut`, `ShlAssign`, and `Shl`
[INFO] [stderr]  --> contest/src/bitset.rs:1:114
[INFO] [stderr]   |
[INFO] [stderr] 1 | ...BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}};
[INFO] [stderr]   |                                                     ^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Pointer`
[INFO] [stderr]  --> contest/src/num_float.rs:2:27
[INFO] [stderr]   |
[INFO] [stderr] 2 |     fmt::{Debug, Display, Pointer},
[INFO] [stderr]   |                           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `float` should have an upper camel case name
[INFO] [stderr]   --> contest/src/num_float.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct float(f64);
[INFO] [stderr]    |            ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `debug`
[INFO] [stderr]  --> contest/src/binary_lifting_compress_on_tree.rs:3:62
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}};
[INFO] [stderr]   |                                                              ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ops::Add`
[INFO] [stderr]  --> contest/src/persistent_segtree.rs:1:23
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{fmt::Debug, ops::Add};
[INFO] [stderr]   |                       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Ordering`
[INFO] [stderr]  --> contest/src/lichao_segtree.rs:1:17
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{cmp::{Ordering, max}, mem::swap};
[INFO] [stderr]   |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 76 | /         ///
[INFO] [stderr] 77 | |         ///     a.0 x + a.1 = b.0 x + b.1
[INFO] [stderr] 78 | |         /// =>  x = (b.1 - a.1) / (a.0 - b.0)
[INFO] [stderr] 79 | |         ///
[INFO] [stderr]    | |_________--^
[INFO] [stderr]    |           |
[INFO] [stderr]    |           rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `take`
[INFO] [stderr]  --> contest/src/leftist_tree.rs:1:38
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}};
[INFO] [stderr]   |                                      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `argmax_by` and `num_number::Number`
[INFO] [stderr]  --> contest/src/tree_diameter.rs:1:102
[INFO] [stderr]   |
[INFO] [stderr] 1 | ...::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_concrete::Concrete};
[INFO] [stderr]   |                                                      ^^^^^^^^^   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `collections::HashMap`
[INFO] [stderr]  --> contest/src/collection.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{collections::HashMap, mem::swap};
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `random_permutation`
[INFO] [stderr]  --> contest/src/bipartite_match_kuhn.rs:3:15
[INFO] [stderr]   |
[INFO] [stderr] 3 |     shuffle::{random_permutation, shuffle},
[INFO] [stderr]   |               ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `debug`
[INFO] [stderr]   --> contest/src/macros.rs:44:14
[INFO] [stderr]    |
[INFO] [stderr] 44 | macro_rules! debug {
[INFO] [stderr]    |              ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `debug_discard`
[INFO] [stderr]   --> contest/src/macros.rs:58:14
[INFO] [stderr]    |
[INFO] [stderr] 58 | macro_rules! debug_discard {
[INFO] [stderr]    |              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `MergerImpl`
[INFO] [stderr]   --> contest/src/macros.rs:75:14
[INFO] [stderr]    |
[INFO] [stderr] 75 | macro_rules! MergerImpl {
[INFO] [stderr]    |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `AddImpl`
[INFO] [stderr]   --> contest/src/macros.rs:86:14
[INFO] [stderr]    |
[INFO] [stderr] 86 | macro_rules! AddImpl {
[INFO] [stderr]    |              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `SubImpl`
[INFO] [stderr]   --> contest/src/macros.rs:99:14
[INFO] [stderr]    |
[INFO] [stderr] 99 | macro_rules! SubImpl {
[INFO] [stderr]    |              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `DivImpl`
[INFO] [stderr]    --> contest/src/macros.rs:112:14
[INFO] [stderr]     |
[INFO] [stderr] 112 | macro_rules! DivImpl {
[INFO] [stderr]     |              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `MulImpl`
[INFO] [stderr]    --> contest/src/macros.rs:125:14
[INFO] [stderr]     |
[INFO] [stderr] 125 | macro_rules! MulImpl {
[INFO] [stderr]     |              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `MergerImpl`
[INFO] [stderr]    --> contest/src/macros.rs:168:16
[INFO] [stderr]     |
[INFO] [stderr] 168 | pub (crate)use MergerImpl;
[INFO] [stderr]     |                ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AddImpl`
[INFO] [stderr]    --> contest/src/macros.rs:170:16
[INFO] [stderr]     |
[INFO] [stderr] 170 | pub (crate)use AddImpl;
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SubImpl`
[INFO] [stderr]    --> contest/src/macros.rs:172:16
[INFO] [stderr]     |
[INFO] [stderr] 172 | pub (crate)use SubImpl;
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `MulImpl`
[INFO] [stderr]    --> contest/src/macros.rs:174:16
[INFO] [stderr]     |
[INFO] [stderr] 174 | pub (crate)use MulImpl;
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DivImpl`
[INFO] [stderr]    --> contest/src/macros.rs:176:16
[INFO] [stderr]     |
[INFO] [stderr] 176 | pub (crate)use DivImpl;
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `panic`
[INFO] [stderr]  --> contest/src/solver.rs:1:33
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{io::{Write, BufRead}, panic};
[INFO] [stderr]   |                                 ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Add`, `Div`, `Mul`, and `Sub`
[INFO] [stderr]  --> contest/src/solver.rs:2:16
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::ops::{Add, Sub, Mul, Div};
[INFO] [stderr]   |                ^^^  ^^^  ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `poly::Poly`
[INFO] [stderr]  --> contest/src/solver.rs:3:62
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::From...
[INFO] [stderr]   |                                                              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::algebraic_structure::*`
[INFO] [stderr]  --> contest/src/solver.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::algebraic_structure::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi` should have an upper camel case name
[INFO] [stderr]  --> contest/src/solver.rs:8:6
[INFO] [stderr]   |
[INFO] [stderr] 8 | type mi = StaticModInt<i32, MF998244353>; 
[INFO] [stderr]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stderr] 
[INFO] [stderr] warning: type `conv` should have an upper camel case name
[INFO] [stderr]  --> contest/src/solver.rs:9:6
[INFO] [stderr]   |
[INFO] [stderr] 9 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stderr]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mem::swap`
[INFO] [stderr]  --> contest/src/stress_external_member.rs:1:33
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{io::{BufRead, Write}, mem::swap};
[INFO] [stderr]   |                                 ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_integer::Integer`
[INFO] [stderr]  --> contest/src/vector_binary_subset_convolution.rs:5:42
[INFO] [stderr]   |
[INFO] [stderr] 5 |     vector_binary_convolution::FWTLayer, num_integer::Integer
[INFO] [stderr]   |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> contest/src/permutation.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 32 | /             loop {
[INFO] [stderr] 33 | |                 j -= 1;
[INFO] [stderr] 34 | |                 if s[j] < s[i] {
[INFO] [stderr] 35 | |                     swap_element(s, i, j);
[INFO] [stderr] 36 | |                 }
[INFO] [stderr] 37 | |             }
[INFO] [stderr]    | |_____________- any code following this expression is unreachable
[INFO] [stderr] 38 |               s[i + 1..n].reverse();
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BufRead`
[INFO] [stderr]  --> contest/src/fast_input.rs:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stderr]   |                     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Number`
[INFO] [stderr]  --> contest/src/pollard_rho.rs:7:25
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::num_number::{Number, FromNumber};
[INFO] [stderr]   |                         ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_number::Number`
[INFO] [stderr]  --> contest/src/bipartite_maximum_weight_match_km.rs:3:13
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::{num_number::Number, num_concrete::Concrete};
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Number`
[INFO] [stderr]  --> contest/src/bipartite_minimum_weight_match.rs:6:18
[INFO] [stderr]   |
[INFO] [stderr] 6 |     num_number::{Number, FromNumber}, num_concrete::Concrete,
[INFO] [stderr]   |                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Number`
[INFO] [stderr]  --> contest/src/num_integer_reverse.rs:2:37
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::num_number::{FromNumber, Number};
[INFO] [stderr]   |                                     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_integer::Integer`
[INFO] [stderr]   --> contest/src/poly.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 |     num_integer::Integer,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/math.rs:133:32
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub fn inverse_batch<T: Field>(mut data: &[T]) -> Vec<T> {
[INFO] [stderr]     |                                ----^^^^
[INFO] [stderr]     |                                |
[INFO] [stderr]     |                                help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rhs`
[INFO] [stderr]    --> contest/src/arithmetic.rs:206:18
[INFO] [stderr]     |
[INFO] [stderr] 206 |     fn mul(self, rhs: Nil) -> Self::Output {
[INFO] [stderr]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rhs`
[INFO] [stderr]    --> contest/src/arithmetic.rs:213:18
[INFO] [stderr]     |
[INFO] [stderr] 213 |     fn add(self, rhs: Nil) -> Self::Output {
[INFO] [stderr]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rhs`
[INFO] [stderr]    --> contest/src/arithmetic.rs:220:18
[INFO] [stderr]     |
[INFO] [stderr] 220 |     fn sub(self, rhs: Nil) -> Self::Output {
[INFO] [stderr]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rhs`
[INFO] [stderr]    --> contest/src/arithmetic.rs:228:18
[INFO] [stderr]     |
[INFO] [stderr] 228 |     fn div(self, rhs: Nil) -> Self::Output {
[INFO] [stderr]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> contest/src/arithmetic.rs:233:18
[INFO] [stderr]     |
[INFO] [stderr] 233 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> contest/src/arithmetic.rs:239:27
[INFO] [stderr]     |
[INFO] [stderr] 239 |     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
[INFO] [stderr]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> contest/src/pollard_rho.rs:80:9
[INFO] [stderr]    |
[INFO] [stderr] 80 |     let mut c = random(n - T::ONE) + T::ONE;
[INFO] [stderr]    |         ----^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `t` is never read
[INFO] [stderr]   --> contest/src/pollard_rho.rs:78:17
[INFO] [stderr]    |
[INFO] [stderr] 78 |     let mut t = T::ZERO;
[INFO] [stderr]    |                 ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> contest/src/poly_fft.rs:53:13
[INFO] [stderr]    |
[INFO] [stderr] 53 |         let mut tn = <T as FromNumber>::from(n);
[INFO] [stderr]    |             ----^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/poly.rs:110:17
[INFO] [stderr]     |
[INFO] [stderr] 110 |             let mut ans = self.exp0((n + 1) / 2);
[INFO] [stderr]     |                 ----^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/poly.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |             let mut ln = ans.clone().ln(n);
[INFO] [stderr]     |                 ----^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rank`
[INFO] [stderr]    --> contest/src/poly.rs:118:13
[INFO] [stderr]     |
[INFO] [stderr] 118 |         let rank = self.rank();
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/poly.rs:138:38
[INFO] [stderr]     |
[INFO] [stderr] 138 |     pub fn downgrade_mod(self: Self, mut n: impl Iterator<Item = usize>) -> Self {
[INFO] [stderr]     |                                      ----^
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/poly.rs:225:43
[INFO] [stderr]     |
[INFO] [stderr] 225 |     pub fn convolution_delta(mut a: Self, mut b: Self) -> Self {
[INFO] [stderr]     |                                           ----^
[INFO] [stderr]     |                                           |
[INFO] [stderr]     |                                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/poly.rs:228:13
[INFO] [stderr]     |
[INFO] [stderr] 228 |         let mut res = C::convolution(a.0, b.0);
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/poly.rs:281:22
[INFO] [stderr]     |
[INFO] [stderr] 281 |     pub fn batch_mul(mut polys: &mut [Self]) -> Self {
[INFO] [stderr]     |                      ----^^^^^
[INFO] [stderr]     |                      |
[INFO] [stderr]     |                      help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/poly.rs:296:18
[INFO] [stderr]     |
[INFO] [stderr] 296 |     fn into_iter(mut self) -> std::vec::IntoIter<T> {
[INFO] [stderr]     |                  ----^^^^
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> contest/src/poly_common.rs:8:30
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn poly_modular<T: Ring>(mut p: Vec<T>, len: usize) -> Vec<T> {
[INFO] [stderr]   |                              ----^
[INFO] [stderr]   |                              |
[INFO] [stderr]   |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> contest/src/poly_interpolation.rs:19:13
[INFO] [stderr]    |
[INFO] [stderr] 19 |         let mut res = Self {
[INFO] [stderr]    |             ----^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stderr]     | ----------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stderr]     | ----------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stderr]     | ----------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stderr]     | ----------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stderr]     | -------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stderr]     | -------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stderr]     | -------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stderr]     | -------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stderr]     | -------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stderr]     | -------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stderr]     | -------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stderr]     | -------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stderr]     | ---------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stderr]     | ---------------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stderr]     | ---------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stderr]     | ---------------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stderr]     | --------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stderr]     | --------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stderr]     | --------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stderr]     | --------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stderr]     | ------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stderr]     | ------------------------------------ in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stderr]     | ------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `x` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> contest/src/num_integer.rs:150:21
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 let x = 0;
[INFO] [stderr]     |                     ^
[INFO] [stderr] ...
[INFO] [stderr] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stderr]     | ------------------------------------ in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14
[INFO] [stderr]    |
[INFO] [stderr] 65 |             |i, a, b| b - a >= k,
[INFO] [stderr]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/treap.rs:137:30
[INFO] [stderr]     |
[INFO] [stderr] 137 |     pub fn modify(&mut self, mut id: usize, upd: U) {
[INFO] [stderr]     |                              ----^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> contest/src/range_tree.rs:89:13
[INFO] [stderr]    |
[INFO] [stderr] 89 |         for i in 0..level {
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/link_cut_tree.rs:122:28
[INFO] [stderr]     |
[INFO] [stderr] 122 |     pub fn init(&mut self, mut id: usize) {
[INFO] [stderr]     |                            ----^^
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]   --> contest/src/cost_flow_augment_dijkstra.rs:65:13
[INFO] [stderr]    |
[INFO] [stderr] 65 |         let n = self.g.len();
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/general_graph_match.rs:139:24
[INFO] [stderr]     |
[INFO] [stderr] 139 |     pub fn mate(&self, mut i: usize) -> Option<usize> {
[INFO] [stderr]     |                        ----^
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> contest/src/bipartite_maximum_weight_match_km.rs:60:17
[INFO] [stderr]    |
[INFO] [stderr] 60 |             let mut x = queue[qs];
[INFO] [stderr]    |                 ----^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> contest/src/bipartite_maximum_weight_match_km.rs:67:21
[INFO] [stderr]    |
[INFO] [stderr] 67 |                 let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y];
[INFO] [stderr]    |                     ----^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/bipartite_maximum_weight_match_km.rs:123:13
[INFO] [stderr]     |
[INFO] [stderr] 123 |         let mut pre_x = y_pre[end_y];
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> contest/src/bipartite_maximum_weight_match_km.rs:124:13
[INFO] [stderr]     |
[INFO] [stderr] 124 |         let mut pre_y = row.left_mate[pre_x];
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> contest/src/macros.rs:67:13
[INFO] [stderr]    |
[INFO] [stderr] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stderr]    |               ----^^^^
[INFO] [stderr]    |               |
[INFO] [stderr]    |               help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]   ::: contest/src/solver.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | /     input!{
[INFO] [stderr] 12 | |         fi,
[INFO] [stderr] 13 | |         d: usize,
[INFO] [stderr] 14 | |         k: u64,
[INFO] [stderr] 15 | |     }
[INFO] [stderr]    | |_____- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> contest/src/solver.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 19 |     let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect();
[INFO] [stderr]    |         ----^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `test_id`
[INFO] [stderr]   --> contest/src/solver.rs:10:37
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub unsafe fn solve_one<I: BufRead>(test_id: usize, fi: &mut FastInput<I>, fo: &mut impl Write) {
[INFO] [stderr]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fi`
[INFO] [stderr]  --> contest/src/stress_external_member.rs:6:32
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stderr]   |                                ^^ help: if this is intentional, prefix it with an underscore: `_fi`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fo`
[INFO] [stderr]  --> contest/src/stress_external_member.rs:6:57
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stderr]   |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rng`
[INFO] [stderr]   --> contest/src/stress_external_member.rs:12:22
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stderr]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fo`
[INFO] [stderr]   --> contest/src/stress_external_member.rs:12:37
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stderr]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `k`
[INFO] [stderr]   --> contest/src/vector_matrix.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |     let k = lhs.m;
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `mod2` should have an upper case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | static mod2: i64 = M0 * M1;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 28 - static mod2: i64 = M0 * M1;
[INFO] [stderr] 28 + static MOD2: i64 = M0 * M1;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `inv10` should have an upper case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | static inv10: i64 = 208783132;
[INFO] [stderr]    |        ^^^^^ help: convert the identifier to upper case: `INV10`
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `inv01` should have an upper case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | static inv01: i64 = 554580198;
[INFO] [stderr]    |        ^^^^^ help: convert the identifier to upper case: `INV01`
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `inv012` should have an upper case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:31:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | static inv012: i64 = 29562547;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 31 - static inv012: i64 = 29562547;
[INFO] [stderr] 31 + static INV012: i64 = 29562547;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `p1inv10` should have an upper case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | static p1inv10: i64 = 208416582520653596;
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 32 - static p1inv10: i64 = 208416582520653596;
[INFO] [stderr] 32 + static P1INV10: i64 = 208416582520653596;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `p0inv01` should have an upper case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:33:8
[INFO] [stderr]    |
[INFO] [stderr] 33 | static p0inv01: i64 = 260520730147305702;
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 33 - static p0inv01: i64 = 260520730147305702;
[INFO] [stderr] 33 + static P0INV01: i64 = 260520730147305702;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: variable `C` should have a snake case name
[INFO] [stderr]   --> contest/src/poly.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 38 |         let C = Self::inverse_internal(p.split_at(prev_mod).0);
[INFO] [stderr]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `C` should have a snake case name
[INFO] [stderr]   --> contest/src/poly.rs:39:13
[INFO] [stderr]    |
[INFO] [stderr] 39 |         let C = poly_extend(C, proper_len);
[INFO] [stderr]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `A` should have a snake case name
[INFO] [stderr]   --> contest/src/poly.rs:40:13
[INFO] [stderr]    |
[INFO] [stderr] 40 |         let A = p.to_owned();
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `A` should have a snake case name
[INFO] [stderr]   --> contest/src/poly.rs:41:13
[INFO] [stderr]    |
[INFO] [stderr] 41 |         let A = poly_extend(A, proper_len);
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `AC` should have a snake case name
[INFO] [stderr]   --> contest/src/poly.rs:43:17
[INFO] [stderr]    |
[INFO] [stderr] 43 |         let mut AC = poly_extend(Self::convolution(A, C.clone()), m);
[INFO] [stderr]    |                 ^^ help: convert the identifier to snake case: `ac`
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `singleton` should have an upper case name
[INFO] [stderr]   --> contest/src/rand.rs:51:16
[INFO] [stderr]    |
[INFO] [stderr] 51 |     static mut singleton: Option<Rng> = None;
[INFO] [stderr]    |                ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 51 -     static mut singleton: Option<Rng> = None;
[INFO] [stderr] 51 +     static mut SINGLETON: Option<Rng> = None;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]   --> contest/src/rand.rs:53:15
[INFO] [stderr]    |
[INFO] [stderr] 53 |         match &mut singleton {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] help: use `&raw mut` instead to create a raw pointer
[INFO] [stderr]    |
[INFO] [stderr] 53 |         match &raw mut singleton {
[INFO] [stderr]    |                +++
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `singleton` should have an upper case name
[INFO] [stderr]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stderr]    |
[INFO] [stderr] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stderr]    | ------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stderr] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stderr]    |
[INFO] [stderr] 90 |                 unsafe { &mut singleton }
[INFO] [stderr]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr] ...
[INFO] [stderr] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stderr]    | ------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `singleton` should have an upper case name
[INFO] [stderr]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stderr]    |
[INFO] [stderr] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stderr]    | ------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stderr] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static
[INFO] [stderr]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stderr]    |
[INFO] [stderr] 90 |                 unsafe { &mut singleton }
[INFO] [stderr]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr] ...
[INFO] [stderr] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stderr]    | ------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `phi` should have an upper case name
[INFO] [stderr]   --> contest/src/enumerate_prime.rs:46:12
[INFO] [stderr]    |
[INFO] [stderr] 46 |     static phi: [usize; 10] = [
[INFO] [stderr]    |            ^^^
[INFO] [stderr]    |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 46 -     static phi: [usize; 10] = [
[INFO] [stderr] 46 +     static PHI: [usize; 10] = [
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> contest/src/num_float.rs:255:13
[INFO] [stderr]     |
[INFO] [stderr] 255 |             mem::transmute(self.0)
[INFO] [stderr]     |             --------------^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: replace this with: `f64::to_bits`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> contest/src/num_float.rs:262:30
[INFO] [stderr]     |
[INFO] [stderr] 262 |     let bits: u64 = unsafe { mem::transmute(val) };
[INFO] [stderr]     |                              --------------^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: replace this with: `f64::to_bits`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `L` should have a snake case name
[INFO] [stderr]   --> contest/src/segtree.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     L: usize,
[INFO] [stderr]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `R` should have a snake case name
[INFO] [stderr]   --> contest/src/segtree.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 |     R: usize,
[INFO] [stderr]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]   --> contest/src/segtree.rs:68:16
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stderr]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]   --> contest/src/segtree.rs:68:26
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stderr]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree.rs:106:43
[INFO] [stderr]     |
[INFO] [stderr] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stderr]     |                                           ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree.rs:106:53
[INFO] [stderr]     |
[INFO] [stderr] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stderr]     |                                                     ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree.rs:121:42
[INFO] [stderr]     |
[INFO] [stderr] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stderr]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree.rs:121:52
[INFO] [stderr]     |
[INFO] [stderr] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stderr]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `L` should have a snake case name
[INFO] [stderr]   --> contest/src/segtree_beat_ext.rs:49:5
[INFO] [stderr]    |
[INFO] [stderr] 49 |     L: usize,
[INFO] [stderr]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `R` should have a snake case name
[INFO] [stderr]   --> contest/src/segtree_beat_ext.rs:50:5
[INFO] [stderr]    |
[INFO] [stderr] 50 |     R: usize,
[INFO] [stderr]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:200:39
[INFO] [stderr]     |
[INFO] [stderr] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stderr]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:200:49
[INFO] [stderr]     |
[INFO] [stderr] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stderr]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:204:52
[INFO] [stderr]     |
[INFO] [stderr] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stderr]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:204:62
[INFO] [stderr]     |
[INFO] [stderr] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stderr]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:217:39
[INFO] [stderr]     |
[INFO] [stderr] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stderr]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:217:49
[INFO] [stderr]     |
[INFO] [stderr] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stderr]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:221:52
[INFO] [stderr]     |
[INFO] [stderr] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stderr]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:221:62
[INFO] [stderr]     |
[INFO] [stderr] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stderr]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:235:39
[INFO] [stderr]     |
[INFO] [stderr] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stderr]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:235:49
[INFO] [stderr]     |
[INFO] [stderr] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stderr]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:239:52
[INFO] [stderr]     |
[INFO] [stderr] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stderr]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:239:62
[INFO] [stderr]     |
[INFO] [stderr] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stderr]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:253:40
[INFO] [stderr]     |
[INFO] [stderr] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stderr]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:253:50
[INFO] [stderr]     |
[INFO] [stderr] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stderr]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:261:9
[INFO] [stderr]     |
[INFO] [stderr] 261 |         L: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:262:9
[INFO] [stderr]     |
[INFO] [stderr] 262 |         R: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:286:40
[INFO] [stderr]     |
[INFO] [stderr] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stderr]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:286:50
[INFO] [stderr]     |
[INFO] [stderr] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stderr]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:294:9
[INFO] [stderr]     |
[INFO] [stderr] 294 |         L: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:295:9
[INFO] [stderr]     |
[INFO] [stderr] 295 |         R: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:319:42
[INFO] [stderr]     |
[INFO] [stderr] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stderr]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:319:52
[INFO] [stderr]     |
[INFO] [stderr] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stderr]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:327:9
[INFO] [stderr]     |
[INFO] [stderr] 327 |         L: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/segtree_beat_ext.rs:328:9
[INFO] [stderr]     |
[INFO] [stderr] 328 |         R: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `L` should have a snake case name
[INFO] [stderr]   --> contest/src/persistent_segtree.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub L: usize,
[INFO] [stderr]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `R` should have a snake case name
[INFO] [stderr]   --> contest/src/persistent_segtree.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     pub R: usize,
[INFO] [stderr]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `L` should have a snake case name
[INFO] [stderr]   --> contest/src/persistent_segtree.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     L: usize,
[INFO] [stderr]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `R` should have a snake case name
[INFO] [stderr]   --> contest/src/persistent_segtree.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 |     R: usize,
[INFO] [stderr]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]   --> contest/src/persistent_segtree.rs:56:16
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stderr]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]   --> contest/src/persistent_segtree.rs:56:26
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stderr]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/persistent_segtree.rs:110:38
[INFO] [stderr]     |
[INFO] [stderr] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stderr]     |                                      ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/persistent_segtree.rs:110:48
[INFO] [stderr]     |
[INFO] [stderr] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stderr]     |                                                ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/persistent_segtree.rs:249:9
[INFO] [stderr]     |
[INFO] [stderr] 249 |         L: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/persistent_segtree.rs:250:9
[INFO] [stderr]     |
[INFO] [stderr] 250 |         R: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]    --> contest/src/persistent_segtree.rs:283:9
[INFO] [stderr]     |
[INFO] [stderr] 283 |         L: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]    --> contest/src/persistent_segtree.rs:284:9
[INFO] [stderr]     |
[INFO] [stderr] 284 |         R: usize,
[INFO] [stderr]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:84:30
[INFO] [stderr]    |
[INFO] [stderr] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stderr]    |                              ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:84:36
[INFO] [stderr]    |
[INFO] [stderr] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stderr]    |                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:85:13
[INFO] [stderr]    |
[INFO] [stderr] 85 |         let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L);
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:86:13
[INFO] [stderr]    |
[INFO] [stderr] 86 |         let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R);
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:87:22
[INFO] [stderr]    |
[INFO] [stderr] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stderr]    |                      ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:87:31
[INFO] [stderr]    |
[INFO] [stderr] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stderr]    |                               ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `L` should have a snake case name
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:95:9
[INFO] [stderr]    |
[INFO] [stderr] 95 |         L: usize,
[INFO] [stderr]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]   --> contest/src/lichao_segtree.rs:96:9
[INFO] [stderr]    |
[INFO] [stderr] 96 |         R: usize,
[INFO] [stderr]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `leftSubset` should have a snake case name
[INFO] [stderr]   --> contest/src/maximum_independent_set.rs:62:13
[INFO] [stderr]    |
[INFO] [stderr] 62 |         let leftSubset = subsets[(mask & (!nearby[i])) as usize];
[INFO] [stderr]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `S` should have a snake case name
[INFO] [stderr]   --> contest/src/bipartite_maximum_weight_match_km.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |     let mut S = vec![false; n];
[INFO] [stderr]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `T` should have a snake case name
[INFO] [stderr]   --> contest/src/bipartite_maximum_weight_match_km.rs:51:13
[INFO] [stderr]    |
[INFO] [stderr] 51 |     let mut T = vec![false; n];
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> contest/src/solver.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     writeln!(fo, "{}", kth);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 21 |     let _ = writeln!(fo, "{}", kth);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `T` should have a snake case name
[INFO] [stderr]   --> contest/src/vector_binary_subset_convolution.rs:20:13
[INFO] [stderr]    |
[INFO] [stderr] 20 |     let mut T = vec![zero; n];
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stderr] 
[INFO] [stderr] warning: `contest` (lib) generated 208 warnings (1 duplicate) (run `cargo fix --lib -p contest` to apply 96 suggestions)
[INFO] [stderr] warning: unused import: `stress::stress`
[INFO] [stderr]  --> contest/src/main.rs:3:36
[INFO] [stderr]   |
[INFO] [stderr] 3 | use contest::{solver::solve_multi, stress::stress};
[INFO] [stderr]   |                                    ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_in_new_thread` is never used
[INFO] [stderr]   --> contest/src/main.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 | unsafe fn run_in_new_thread() {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> contest/src/main.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | /     thread::Builder::new()
[INFO] [stderr] 17 | |     .stack_size(256 << 20)
[INFO] [stderr] 18 | |     .spawn(|| {run_in_current_thread();})
[INFO] [stderr] 19 | |     .unwrap()
[INFO] [stderr] 20 | |     .join();
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let _ = thread::Builder::new()
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `contest` (bin "contest" test) generated 3 warnings (run `cargo fix --bin "contest" -p contest --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `contest` (lib test) generated 203 warnings (203 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/contest-c0402c5a120e7cb4)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test fast_input_test::tests::test_read ... ok
[INFO] [stdout] test poly_mtt_test::test_1 ... ok
[INFO] [stdout] test poly_mtt_test::test_2 ... ok
[INFO] [stdout] test poly_ntt_test::test_1 ... ok
[INFO] [stdout] test poly_ntt_test::test_0 ... ok
[INFO] [stdout] test poly_mtt_test::test_3 ... ok
[INFO] [stdout] test linear_recurrence_test::test_0 ... ok
[INFO] [stdout] test enumerate_prime::test_0 ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/contest-7c681da3e501693f)
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests contest
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr] warning: type `mi0` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:17:6
[INFO] [stderr]    |
[INFO] [stderr] 17 | type mi0 = StaticModInt<i32, MF469762049>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case: `Mi0`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi1` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:18:6
[INFO] [stderr]    |
[INFO] [stderr] 18 | type mi1 = StaticModInt<i32, MF998244353>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case: `Mi1`
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi2` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:19:6
[INFO] [stderr]    |
[INFO] [stderr] 19 | type mi2 = StaticModInt<i32, MF167772161>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case: `Mi2`
[INFO] [stderr] 
[INFO] [stderr] warning: type `cv0` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:21:6
[INFO] [stderr]    |
[INFO] [stderr] 21 | type cv0 = ConvolutionNTT<i32, mi0>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0`
[INFO] [stderr] 
[INFO] [stderr] warning: type `cv1` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:22:6
[INFO] [stderr]    |
[INFO] [stderr] 22 | type cv1 = ConvolutionNTT<i32, mi1>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1`
[INFO] [stderr] 
[INFO] [stderr] warning: type `cv2` should have an upper camel case name
[INFO] [stderr]   --> contest/src/poly_mtt.rs:23:6
[INFO] [stderr]    |
[INFO] [stderr] 23 | type cv2 = ConvolutionNTT<i32, mi2>;
[INFO] [stderr]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2`
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi` should have an upper camel case name
[INFO] [stderr]  --> contest/src/poly_ntt_test.rs:3:6
[INFO] [stderr]   |
[INFO] [stderr] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stderr]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stderr] 
[INFO] [stderr] warning: type `conv` should have an upper camel case name
[INFO] [stderr]  --> contest/src/poly_ntt_test.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stderr]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi` should have an upper camel case name
[INFO] [stderr]  --> contest/src/poly_mtt_test.rs:3:6
[INFO] [stderr]   |
[INFO] [stderr] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stderr]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stderr] 
[INFO] [stderr] warning: type `conv` should have an upper camel case name
[INFO] [stderr]  --> contest/src/poly_mtt_test.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type conv = ConvolutionMTT<i32, mi>;
[INFO] [stderr]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]  --> contest/src/poly_bf.rs:5:41
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stderr]   |                                         ^ ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 5 - pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stderr] 5 + pub struct ConvolutionBF<T>(PhantomData<T >);
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi` should have an upper camel case name
[INFO] [stderr]  --> contest/src/linear_recurrence_test.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stderr]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stderr] 
[INFO] [stderr] warning: type `conv` should have an upper camel case name
[INFO] [stderr]  --> contest/src/linear_recurrence_test.rs:5:6
[INFO] [stderr]   |
[INFO] [stderr] 5 | type conv = ConvolutionBF<mi>;
[INFO] [stderr]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stderr] 
[INFO] [stderr] warning: type `xorshift128p_state` should have an upper camel case name
[INFO] [stderr]  --> contest/src/rand.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct xorshift128p_state(u64, u64);
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState`
[INFO] [stderr] 
[INFO] [stderr] warning: type `float` should have an upper camel case name
[INFO] [stderr]   --> contest/src/num_float.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct float(f64);
[INFO] [stderr]    |            ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float`
[INFO] [stderr] 
[INFO] [stderr] warning: type `mi` should have an upper camel case name
[INFO] [stderr]  --> contest/src/solver.rs:8:6
[INFO] [stderr]   |
[INFO] [stderr] 8 | type mi = StaticModInt<i32, MF998244353>; 
[INFO] [stderr]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stderr] 
[INFO] [stderr] warning: type `conv` should have an upper camel case name
[INFO] [stderr]  --> contest/src/solver.rs:9:6
[INFO] [stderr]   |
[INFO] [stderr] 9 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stderr]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stderr] 
[INFO] [stderr] warning: 17 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test contest/src/dsu_compress_path.rs - dsu_compress_path::DSU<T,R>::union (line 76) ... ignored
[INFO] [stdout] test contest/src/math.rs - math::pow (line 19) ... FAILED
[INFO] [stdout] test contest/src/num_gcd.rs - num_gcd::gcd (line 14) ... FAILED
[INFO] [stdout] test contest/src/fenwick_tree.rs - fenwick_tree::FenwickTree (line 11) ... FAILED
[INFO] [stdout] test contest/src/math.rs - math::log2_ceil (line 68) ... FAILED
[INFO] [stdout] test contest/src/dsu_compress_path.rs - dsu_compress_path::DSU (line 12) ... FAILED
[INFO] [stdout] test contest/src/lichao_segtree.rs - lichao_segtree::LichaoSegtree<T> (line 35) ... FAILED
[INFO] [stdout] test contest/src/link_cut_tree.rs - link_cut_tree::LinkCutTree (line 57) ... FAILED
[INFO] [stdout] test contest/src/math.rs - math::log2_floor (line 48) ... FAILED
[INFO] [stdout] test contest/src/num_gcd.rs - num_gcd::inv_mod (line 62) ... FAILED
[INFO] [stdout] test contest/src/range_kth_smallest_persistent_segtree.rs - range_kth_smallest_persistent_segtree::RangeKthSmallest (line 13) ... FAILED
[INFO] [stdout] test contest/src/range_tree.rs - range_tree::RangeTree (line 67) ... FAILED
[INFO] [stdout] test contest/src/prefix_sum.rs - prefix_sum::PrefixSum (line 10) ... FAILED
[INFO] [stdout] test contest/src/range_minimum_query.rs - range_minimum_query::RangeMinimumQuery (line 24) ... FAILED
[INFO] [stdout] test contest/src/range_affine_range_sum.rs - range_affine_range_sum::RangeAffineRangeSum<T> (line 67) ... FAILED
[INFO] [stdout] test contest/src/sparse_table.rs - sparse_table::SparseTable (line 15) ... ignored
[INFO] [stdout] test contest/src/persistent_segtree.rs - persistent_segtree::PersistentSegtree (line 22) ... FAILED
[INFO] [stdout] test contest/src/range_tree.rs - range_tree::RangeTree (line 30) ... FAILED
[INFO] [stdout] test contest/src/num_integer.rs - num_integer::Integer (line 11) ... FAILED
[INFO] [stdout] test contest/src/root_tree.rs - root_tree::depth_on_tree (line 8) ... FAILED
[INFO] [stdout] test contest/src/segtree_beat_ext.rs - segtree_beat_ext::SegtreeBeatExt (line 24) ... FAILED
[INFO] [stdout] test contest/src/segtree.rs - segtree::Segtree (line 21) ... FAILED
[INFO] [stdout] test contest/src/treap.rs - treap::Treap (line 32) ... FAILED
[INFO] [stdout] test contest/src/range_tree.rs - range_tree::RangeTree (line 75) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- contest/src/math.rs - math::pow (line 19) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/math.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use template::{algebraic_structure::Ring, num_integer::Integer, math::pow};
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/num_gcd.rs - num_gcd::gcd (line 14) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/num_gcd.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use template::num_gcd::gcd;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/fenwick_tree.rs - fenwick_tree::FenwickTree (line 11) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/fenwick_tree.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use template::fenwick_tree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FenwickTree`
[INFO] [stdout]   --> contest/src/fenwick_tree.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | let mut ft = FenwickTree::with_initial_value(&[1, 2, 3, 4], 0, |x, y| x + y);
[INFO] [stdout]    |              ^^^^^^^^^^^ use of undeclared type `FenwickTree`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 11 + use contest::fenwick_tree::FenwickTree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/math.rs - math::log2_ceil (line 68) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/math.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | use template::math::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `log2_ceil` in this scope
[INFO] [stdout]   --> contest/src/math.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 | assert_eq!(0, log2_ceil(1));
[INFO] [stdout]    |               ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 68 + use contest::math::log2_ceil;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `log2_ceil` in this scope
[INFO] [stdout]   --> contest/src/math.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 | assert_eq!(0, log2_ceil(0));
[INFO] [stdout]    |               ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 68 + use contest::math::log2_ceil;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `log2_ceil` in this scope
[INFO] [stdout]   --> contest/src/math.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 | assert_eq!(1, log2_ceil(2));
[INFO] [stdout]    |               ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 68 + use contest::math::log2_ceil;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `log2_ceil` in this scope
[INFO] [stdout]   --> contest/src/math.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 | assert_eq!(2, log2_ceil(3));
[INFO] [stdout]    |               ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 68 + use contest::math::log2_ceil;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/dsu_compress_path.rs - dsu_compress_path::DSU (line 12) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/dsu_compress_path.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use template::dsu_compress_path::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/dsu_compress_path.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use template::{algebraic_structure::{Semigroup, Group, Monoid}, arithmetic::{CommutativeAdd, IdentityAdd, Nil}};
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `template::algebraic_structure::Semigroup`, `template::algebraic_structure::Group`, `template::algebraic_structure::Monoid`, `template::arithmetic::CommutativeAdd`, `template::arithmetic::IdentityAdd`, `template::arithmetic::Nil`
[INFO] [stdout]   --> contest/src/dsu_compress_path.rs:13:38
[INFO] [stdout]    |
[INFO] [stdout] 13 | use template::{algebraic_structure::{Semigroup, Group, Monoid}, arithmetic::{CommutativeAdd, IdentityAdd, Nil}};
[INFO] [stdout]    |                                      ^^^^^^^^^  ^^^^^  ^^^^^^                ^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `DSU`
[INFO] [stdout]   --> contest/src/dsu_compress_path.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | let mut dsu = DSU::new(vec![Nil; 5]);
[INFO] [stdout]    |               ^^^ use of undeclared type `DSU`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 12 + use contest::dsu_compress_path::DSU;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/lichao_segtree.rs - lichao_segtree::LichaoSegtree<T> (line 35) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use template::lichao_segtree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LichaoSegtree`
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | let mut lichao = LichaoSegtree::<i32>::new(0, vec![1, 3, 0, 2]);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^ use of undeclared type `LichaoSegtree`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 35 + use contest::lichao_segtree::LichaoSegtree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/link_cut_tree.rs - link_cut_tree::LinkCutTree (line 57) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/link_cut_tree.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | use template::link_cut_tree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LinkCutTree`
[INFO] [stdout]   --> contest/src/link_cut_tree.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 | let mut lct = LinkCutTree::new(5, 0, 0, mx_f, mx_f, mx_f, |x| 1);
[INFO] [stdout]    |               ^^^^^^^^^^^ use of undeclared type `LinkCutTree`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 57 + use contest::link_cut_tree::LinkCutTree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/math.rs - math::log2_floor (line 48) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/math.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use template::math::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `log2_floor` in this scope
[INFO] [stdout]   --> contest/src/math.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | assert_eq!(0, log2_floor(1));
[INFO] [stdout]    |               ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 48 + use contest::math::log2_floor;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `log2_floor` in this scope
[INFO] [stdout]   --> contest/src/math.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 | assert_eq!(-1, log2_floor(0));
[INFO] [stdout]    |                ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 48 + use contest::math::log2_floor;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `log2_floor` in this scope
[INFO] [stdout]   --> contest/src/math.rs:52:15
[INFO] [stdout]    |
[INFO] [stdout] 52 | assert_eq!(1, log2_floor(2));
[INFO] [stdout]    |               ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 48 + use contest::math::log2_floor;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `log2_floor` in this scope
[INFO] [stdout]   --> contest/src/math.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 | assert_eq!(1, log2_floor(3));
[INFO] [stdout]    |               ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 48 + use contest::math::log2_floor;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/num_gcd.rs - num_gcd::inv_mod (line 62) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/num_gcd.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | use template::num_gcd::inv_mod;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/range_kth_smallest_persistent_segtree.rs - range_kth_smallest_persistent_segtree::RangeKthSmallest (line 13) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/range_kth_smallest_persistent_segtree.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use template::range_kth_smallest_persistent_segtree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeKthSmallest`
[INFO] [stdout]   --> contest/src/range_kth_smallest_persistent_segtree.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | let rks = RangeKthSmallest::new(&vec![2, 1, 4, 3], i32::cmp);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^ use of undeclared type `RangeKthSmallest`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 13 + use contest::range_kth_smallest_persistent_segtree::RangeKthSmallest;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/range_tree.rs - range_tree::RangeTree (line 67) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/range_tree.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | use template::range_tree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeTree`
[INFO] [stdout]   --> contest/src/range_tree.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 | let mut rt = RangeTree::new(82);
[INFO] [stdout]    |              ^^^^^^^^^ use of undeclared type `RangeTree`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 67 + use contest::range_tree::RangeTree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/prefix_sum.rs - prefix_sum::PrefixSum (line 10) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/prefix_sum.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use template::prefix_sum::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/prefix_sum.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use template::algebraic_structure::{Monoid, Group};
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `template::algebraic_structure::Monoid`, `template::algebraic_structure::Group`
[INFO] [stdout]   --> contest/src/prefix_sum.rs:11:37
[INFO] [stdout]    |
[INFO] [stdout] 11 | use template::algebraic_structure::{Monoid, Group};
[INFO] [stdout]    |                                     ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PrefixSum`
[INFO] [stdout]   --> contest/src/prefix_sum.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | let ps = PrefixSum::new(vec![1, 2, 3, 4]);
[INFO] [stdout]    |          ^^^^^^^^^ use of undeclared type `PrefixSum`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 10 + use contest::prefix_sum::PrefixSum;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/range_minimum_query.rs - range_minimum_query::RangeMinimumQuery (line 24) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/range_minimum_query.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use template::range_minimum_query::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeMinimumQuery`
[INFO] [stdout]   --> contest/src/range_minimum_query.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | let rmq = RangeMinimumQuery::new(vec![1, 5, 2, 4, 3]);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^ use of undeclared type `RangeMinimumQuery`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 24 + use contest::range_minimum_query::RangeMinimumQuery;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/range_affine_range_sum.rs - range_affine_range_sum::RangeAffineRangeSum<T> (line 67) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/range_affine_range_sum.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | use template::range_affine_range_sum::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeAffineRangeSum`
[INFO] [stdout]   --> contest/src/range_affine_range_sum.rs:69:16
[INFO] [stdout]    |
[INFO] [stdout] 69 | let mut rars = RangeAffineRangeSum::new(1, 10, &|x| x);
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^ use of undeclared type `RangeAffineRangeSum`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 67 + use contest::range_affine_range_sum::RangeAffineRangeSum;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/persistent_segtree.rs - persistent_segtree::PersistentSegtree (line 22) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use template::persistent_segtree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PersistentSegtree`
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | let mut st = PersistentSegtree::new(0, 3, 0, |a, b| a + b);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^ use of undeclared type `PersistentSegtree`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 22 + use contest::persistent_segtree::PersistentSegtree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/range_tree.rs - range_tree::RangeTree (line 30) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/range_tree.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use template::range_tree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeTree`
[INFO] [stdout]   --> contest/src/range_tree.rs:32:14
[INFO] [stdout]    |
[INFO] [stdout] 32 | let mut rt = RangeTree::new(100);
[INFO] [stdout]    |              ^^^^^^^^^ use of undeclared type `RangeTree`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 30 + use contest::range_tree::RangeTree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/num_integer.rs - num_integer::Integer (line 11) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/num_integer.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use template::num_integer::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `count_leading_zero` found for type `i32` in the current scope
[INFO] [stdout]   --> contest/src/num_integer.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 | assert_eq!((-1i32).count_leading_zero(), 0);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `leading_zeros` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 14 - assert_eq!((-1i32).count_leading_zero(), 0);
[INFO] [stdout] 14 + assert_eq!((-1i32).leading_zeros(), 0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `count_leading_zero` found for type `i32` in the current scope
[INFO] [stdout]   --> contest/src/num_integer.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | assert_eq!(0i32.count_leading_zero(), 32);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `leading_zeros` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 15 - assert_eq!(0i32.count_leading_zero(), 32);
[INFO] [stdout] 15 + assert_eq!(0i32.leading_zeros(), 32);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `count_leading_zero` found for type `i32` in the current scope
[INFO] [stdout]   --> contest/src/num_integer.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | assert_eq!(2i32.count_leading_zero(), 30);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `leading_zeros` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 16 - assert_eq!(2i32.count_leading_zero(), 30);
[INFO] [stdout] 16 + assert_eq!(2i32.leading_zeros(), 30);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `count_trailing_zero` found for type `usize` in the current scope
[INFO] [stdout]   --> contest/src/num_integer.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | assert_eq!(10usize.count_trailing_zero(), 1);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `trailing_zeros` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 17 - assert_eq!(10usize.count_trailing_zero(), 1);
[INFO] [stdout] 17 + assert_eq!(10usize.trailing_zeros(), 1);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `count_trailing_zero` found for type `usize` in the current scope
[INFO] [stdout]   --> contest/src/num_integer.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | assert_eq!(11usize.count_trailing_zero(), 0);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `trailing_zeros` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 18 - assert_eq!(11usize.count_trailing_zero(), 0);
[INFO] [stdout] 18 + assert_eq!(11usize.trailing_zeros(), 0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0433, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/root_tree.rs - root_tree::depth_on_tree (line 8) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]  --> contest/src/root_tree.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use template::root_tree::*;
[INFO] [stdout]   |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `depth_on_tree` in this scope
[INFO] [stdout]   --> contest/src/root_tree.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | let res = depth_on_tree(&p);
[INFO] [stdout]    |           ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout]  8 + use contest::root_tree::depth_on_tree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/segtree_beat_ext.rs - segtree_beat_ext::SegtreeBeatExt (line 24) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use template::segtree_beat_ext::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `SegtreeBeatExt`
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 | let mut st = SegtreeBeatExt::new(1, 4, |x| x);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^ use of undeclared type `SegtreeBeatExt`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 24 + use contest::segtree_beat_ext::SegtreeBeatExt;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/segtree.rs - segtree::Segtree (line 21) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/segtree.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use template::segtree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Segtree`
[INFO] [stdout]   --> contest/src/segtree.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | let mut st = Segtree::new(0, 3, &|x: usize| x, 0, 0, |x, y| x + y, |x, y| x + y, |x, y| x + y);
[INFO] [stdout]    |              ^^^^^^^ use of undeclared type `Segtree`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 21 + use contest::segtree::Segtree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/treap.rs - treap::Treap (line 32) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/treap.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use template::treap::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Treap`
[INFO] [stdout]   --> contest/src/treap.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | let mut t = Treap::<i32, i32>::new(4, 0, 0,
[INFO] [stdout]    |             ^^^^^ use of undeclared type `Treap`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 32 + use contest::treap::Treap;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- contest/src/range_tree.rs - range_tree::RangeTree (line 75) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `template`
[INFO] [stdout]   --> contest/src/range_tree.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | use template::range_tree::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `template`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `template`, use `cargo add template` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeTree`
[INFO] [stdout]   --> contest/src/range_tree.rs:77:14
[INFO] [stdout]    |
[INFO] [stdout] 77 | let mut rt = RangeTree::new(101);
[INFO] [stdout]    |              ^^^^^^^^^ use of undeclared type `RangeTree`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 75 + use contest::range_tree::RangeTree;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     contest/src/dsu_compress_path.rs - dsu_compress_path::DSU (line 12)
[INFO] [stdout]     contest/src/fenwick_tree.rs - fenwick_tree::FenwickTree (line 11)
[INFO] [stdout]     contest/src/lichao_segtree.rs - lichao_segtree::LichaoSegtree<T> (line 35)
[INFO] [stdout]     contest/src/link_cut_tree.rs - link_cut_tree::LinkCutTree (line 57)
[INFO] [stdout]     contest/src/math.rs - math::log2_ceil (line 68)
[INFO] [stdout]     contest/src/math.rs - math::log2_floor (line 48)
[INFO] [stdout]     contest/src/math.rs - math::pow (line 19)
[INFO] [stdout]     contest/src/num_gcd.rs - num_gcd::gcd (line 14)
[INFO] [stdout]     contest/src/num_gcd.rs - num_gcd::inv_mod (line 62)
[INFO] [stdout]     contest/src/num_integer.rs - num_integer::Integer (line 11)
[INFO] [stdout]     contest/src/persistent_segtree.rs - persistent_segtree::PersistentSegtree (line 22)
[INFO] [stdout]     contest/src/prefix_sum.rs - prefix_sum::PrefixSum (line 10)
[INFO] [stdout]     contest/src/range_affine_range_sum.rs - range_affine_range_sum::RangeAffineRangeSum<T> (line 67)
[INFO] [stdout]     contest/src/range_kth_smallest_persistent_segtree.rs - range_kth_smallest_persistent_segtree::RangeKthSmallest (line 13)
[INFO] [stdout]     contest/src/range_minimum_query.rs - range_minimum_query::RangeMinimumQuery (line 24)
[INFO] [stdout]     contest/src/range_tree.rs - range_tree::RangeTree (line 30)
[INFO] [stdout]     contest/src/range_tree.rs - range_tree::RangeTree (line 67)
[INFO] [stdout]     contest/src/range_tree.rs - range_tree::RangeTree (line 75)
[INFO] [stdout]     contest/src/root_tree.rs - root_tree::depth_on_tree (line 8)
[INFO] [stdout]     contest/src/segtree.rs - segtree::Segtree (line 21)
[INFO] [stdout]     contest/src/segtree_beat_ext.rs - segtree_beat_ext::SegtreeBeatExt (line 24)
[INFO] [stdout]     contest/src/treap.rs - treap::Treap (line 32)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 22 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.87s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "02f8657900add3d13e2e0440a2f4ff4a0f9f791cfe4d27abe6ff1d4b2dca06b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "02f8657900add3d13e2e0440a2f4ff4a0f9f791cfe4d27abe6ff1d4b2dca06b5", kill_on_drop: false }`
[INFO] [stdout] 02f8657900add3d13e2e0440a2f4ff4a0f9f791cfe4d27abe6ff1d4b2dca06b5
