diff --git a/cp-benches/Cargo.toml b/cp-benches/Cargo.toml index 9ed0a53..e4eae90 100644 --- a/cp-benches/Cargo.toml +++ b/cp-benches/Cargo.toml @@ -22,7 +22,7 @@ edition = "2018" ################################# Dependencies ################################ [dev-dependencies] -algebra = { path = "../algebra", default-features = false, features = [ "edwards_on_bls12_377" ] } +algebra = { path = "../algebra", default-features = false, features = [ "ed_on_bls12_377" ] } blake2 = { version = "0.8", default-features = false } criterion = "0.3.1" crypto-primitives = { path = "../crypto-primitives" } diff --git a/cp-benches/benches/crypto_primitives/comm.rs b/cp-benches/benches/crypto_primitives/comm.rs index 0ff4a7c..3132656 100644 --- a/cp-benches/benches/crypto_primitives/comm.rs +++ b/cp-benches/benches/crypto_primitives/comm.rs @@ -3,7 +3,7 @@ use rand; #[macro_use] extern crate criterion; -use algebra::{edwards_on_bls12_377::EdwardsProjective as Edwards, UniformRand}; +use algebra::{ed_on_bls12_377::EdwardsProjective as Edwards, UniformRand}; use criterion::Criterion; use crypto_primitives::commitment::{pedersen::*, CommitmentScheme}; diff --git a/cp-benches/benches/crypto_primitives/crh.rs b/cp-benches/benches/crypto_primitives/crh.rs index b8ac1ce..97628c9 100644 --- a/cp-benches/benches/crypto_primitives/crh.rs +++ b/cp-benches/benches/crypto_primitives/crh.rs @@ -3,7 +3,7 @@ use rand; #[macro_use] extern crate criterion; -use algebra::edwards_on_bls12_377::EdwardsProjective as Edwards; +use algebra::ed_on_bls12_377::EdwardsProjective as Edwards; use criterion::Criterion; use crypto_primitives::crh::{pedersen::*, FixedLengthCRH}; diff --git a/cp-benches/benches/crypto_primitives/signature.rs b/cp-benches/benches/crypto_primitives/signature.rs index 57d2803..4096194 100644 --- a/cp-benches/benches/crypto_primitives/signature.rs +++ b/cp-benches/benches/crypto_primitives/signature.rs @@ -2,7 +2,7 @@ extern crate criterion; mod affine { - use algebra::edwards_on_bls12_377::EdwardsAffine as Edwards; + use algebra::ed_on_bls12_377::EdwardsAffine as Edwards; use blake2::Blake2s; use criterion::Criterion; use crypto_primitives::signature::{schnorr::*, SignatureScheme}; @@ -90,7 +90,7 @@ mod affine { } mod projective { - use algebra::edwards_on_bls12_377::EdwardsProjective as Edwards; + use algebra::ed_on_bls12_377::EdwardsProjective as Edwards; use blake2::Blake2s; use criterion::Criterion; use crypto_primitives::signature::{schnorr::*, SignatureScheme}; diff --git a/crypto-primitives/Cargo.toml b/crypto-primitives/Cargo.toml index fcf1910..221d54c 100644 --- a/crypto-primitives/Cargo.toml +++ b/crypto-primitives/Cargo.toml @@ -46,6 +46,6 @@ std = ["r1cs", "algebra-core/std", "r1cs-core/std", "r1cs-std/std"] parallel = ["std", "rayon", "gm17/parallel", "groth16/parallel", "ff-fft/parallel"] [dev-dependencies] -algebra = { path = "../algebra", default-features = false, features = [ "edwards_on_bls12_381", "bls12_377", "mnt4_298", "mnt6_298" ] } -r1cs-std = { path = "../r1cs-std", default-features = false, features = [ "edwards_on_bls12_381", "bls12_377", "mnt4_298", "mnt6_298" ] } +algebra = { path = "../algebra", default-features = false, features = [ "ed_on_bls12_381", "bls12_377", "mnt4_298", "mnt6_298" ] } +r1cs-std = { path = "../r1cs-std", default-features = false, features = [ "ed_on_bls12_381", "bls12_377", "mnt4_298", "mnt6_298" ] } rand_xorshift = { version = "0.2" } diff --git a/crypto-primitives/src/commitment/blake2s/constraints.rs b/crypto-primitives/src/commitment/blake2s/constraints.rs index 495d093..81c078d 100644 --- a/crypto-primitives/src/commitment/blake2s/constraints.rs +++ b/crypto-primitives/src/commitment/blake2s/constraints.rs @@ -143,7 +143,7 @@ mod test { }, *, }; - use algebra::{edwards_on_bls12_381::Fq as Fr, test_rng}; + use algebra::{ed_on_bls12_381::Fq as Fr, test_rng}; use r1cs_core::ConstraintSystem; use r1cs_std::{prelude::*, test_constraint_system::TestConstraintSystem}; use rand::Rng; diff --git a/crypto-primitives/src/commitment/pedersen/constraints.rs b/crypto-primitives/src/commitment/pedersen/constraints.rs index 5cc7f0a..b0ef499 100644 --- a/crypto-primitives/src/commitment/pedersen/constraints.rs +++ b/crypto-primitives/src/commitment/pedersen/constraints.rs @@ -200,7 +200,7 @@ where #[cfg(test)] mod test { use algebra::{ - edwards_on_bls12_381::{EdwardsProjective as JubJub, Fq, Fr}, + ed_on_bls12_381::{EdwardsProjective as JubJub, Fq, Fr}, test_rng, ProjectiveCurve, UniformRand, }; @@ -215,8 +215,7 @@ mod test { }; use r1cs_core::ConstraintSystem; use r1cs_std::{ - edwards_on_bls12_381::EdwardsGadget, prelude::*, - test_constraint_system::TestConstraintSystem, + ed_on_bls12_381::EdwardsGadget, prelude::*, test_constraint_system::TestConstraintSystem, }; #[test] diff --git a/crypto-primitives/src/crh/bowe_hopwood/constraints.rs b/crypto-primitives/src/crh/bowe_hopwood/constraints.rs index dfae33b..62a4c81 100644 --- a/crypto-primitives/src/crh/bowe_hopwood/constraints.rs +++ b/crypto-primitives/src/crh/bowe_hopwood/constraints.rs @@ -145,12 +145,12 @@ mod test { FixedLengthCRH, FixedLengthCRHGadget, }; use algebra::{ - edwards_on_bls12_381::{EdwardsProjective as JubJub, Fq as Fr}, + ed_on_bls12_381::{EdwardsProjective as JubJub, Fq as Fr}, test_rng, ProjectiveCurve, }; use r1cs_core::ConstraintSystem; use r1cs_std::{ - alloc::AllocGadget, edwards_on_bls12_381::EdwardsGadget, + alloc::AllocGadget, ed_on_bls12_381::EdwardsGadget, test_constraint_system::TestConstraintSystem, uint8::UInt8, }; diff --git a/crypto-primitives/src/crh/bowe_hopwood/mod.rs b/crypto-primitives/src/crh/bowe_hopwood/mod.rs index fe4a7ad..4d84efa 100644 --- a/crypto-primitives/src/crh/bowe_hopwood/mod.rs +++ b/crypto-primitives/src/crh/bowe_hopwood/mod.rs @@ -173,7 +173,7 @@ mod test { crh::{bowe_hopwood::BoweHopwoodPedersenCRH, pedersen::PedersenWindow}, FixedLengthCRH, }; - use algebra::{edwards_on_bls12_381::EdwardsProjective, test_rng}; + use algebra::{ed_on_bls12_381::EdwardsProjective, test_rng}; #[test] fn test_simple_bh() { diff --git a/crypto-primitives/src/crh/pedersen/constraints.rs b/crypto-primitives/src/crh/pedersen/constraints.rs index 422bfd1..c7f9488 100644 --- a/crypto-primitives/src/crh/pedersen/constraints.rs +++ b/crypto-primitives/src/crh/pedersen/constraints.rs @@ -133,13 +133,12 @@ mod test { FixedLengthCRH, FixedLengthCRHGadget, }; use algebra::{ - edwards_on_bls12_381::{EdwardsProjective as JubJub, Fq as Fr}, + ed_on_bls12_381::{EdwardsProjective as JubJub, Fq as Fr}, test_rng, ProjectiveCurve, }; use r1cs_core::ConstraintSystem; use r1cs_std::{ - edwards_on_bls12_381::EdwardsGadget, prelude::*, - test_constraint_system::TestConstraintSystem, + ed_on_bls12_381::EdwardsGadget, prelude::*, test_constraint_system::TestConstraintSystem, }; use rand::Rng; diff --git a/crypto-primitives/src/merkle_tree/constraints.rs b/crypto-primitives/src/merkle_tree/constraints.rs index 64f67e7..7b13579 100644 --- a/crypto-primitives/src/merkle_tree/constraints.rs +++ b/crypto-primitives/src/merkle_tree/constraints.rs @@ -207,15 +207,13 @@ mod test { }, merkle_tree::*, }; - use algebra::edwards_on_bls12_381::{EdwardsAffine as JubJub, Fq}; + use algebra::ed_on_bls12_381::{EdwardsAffine as JubJub, Fq}; use r1cs_core::ConstraintSystem; use rand::SeedableRng; use rand_xorshift::XorShiftRng; use super::*; - use r1cs_std::{ - edwards_on_bls12_381::EdwardsGadget, test_constraint_system::TestConstraintSystem, - }; + use r1cs_std::{ed_on_bls12_381::EdwardsGadget, test_constraint_system::TestConstraintSystem}; #[derive(Clone)] pub(super) struct Window4x256; diff --git a/crypto-primitives/src/merkle_tree/mod.rs b/crypto-primitives/src/merkle_tree/mod.rs index 9c8210e..7d7bcec 100644 --- a/crypto-primitives/src/merkle_tree/mod.rs +++ b/crypto-primitives/src/merkle_tree/mod.rs @@ -369,7 +369,7 @@ mod test { crh::{pedersen::*, *}, merkle_tree::*, }; - use algebra::{edwards_on_bls12_381::EdwardsAffine as JubJub, Zero}; + use algebra::{ed_on_bls12_381::EdwardsAffine as JubJub, Zero}; use rand::SeedableRng; use rand_xorshift::XorShiftRng; diff --git a/crypto-primitives/src/prf/blake2s/constraints.rs b/crypto-primitives/src/prf/blake2s/constraints.rs index 0b6deee..f05c54a 100644 --- a/crypto-primitives/src/prf/blake2s/constraints.rs +++ b/crypto-primitives/src/prf/blake2s/constraints.rs @@ -537,7 +537,7 @@ impl PRFGadget for Blake2sGadget #[cfg(test)] mod test { - use algebra::edwards_on_bls12_381::Fq as Fr; + use algebra::ed_on_bls12_381::Fq as Fr; use rand::{Rng, SeedableRng}; use rand_xorshift::XorShiftRng; diff --git a/crypto-primitives/src/signature/mod.rs b/crypto-primitives/src/signature/mod.rs index 261e6cf..8512b31 100644 --- a/crypto-primitives/src/signature/mod.rs +++ b/crypto-primitives/src/signature/mod.rs @@ -54,7 +54,7 @@ pub trait SignatureScheme { mod test { use crate::{signature::schnorr::SchnorrSignature, SignatureScheme}; use algebra::{ - edwards_on_bls12_381::EdwardsAffine as JubJub, groups::Group, test_rng, to_bytes, ToBytes, + ed_on_bls12_381::EdwardsAffine as JubJub, groups::Group, test_rng, to_bytes, ToBytes, UniformRand, }; use blake2::Blake2s; diff --git a/r1cs-std/Cargo.toml b/r1cs-std/Cargo.toml index 04078e4..119bc2c 100644 --- a/r1cs-std/Cargo.toml +++ b/r1cs-std/Cargo.toml @@ -36,15 +36,15 @@ algebra = { path = "../algebra", default-features = false, features = [ "bls12_3 [features] default = ["std"] full = [ - "bls12_377", "edwards_on_bls12_381", "edwards_on_bls12_377", "edwards_on_cp6_782", - "edwards_on_bw6_761", "mnt4_298", "mnt4_753", "mnt6_298", "mnt6_753" + "bls12_377", "ed_on_bls12_381", "ed_on_bls12_377", "ed_on_cp6_782", + "ed_on_bw6_761", "mnt4_298", "mnt4_753", "mnt6_298", "mnt6_753" ] bls12_377 = [ "algebra/bls12_377" ] -edwards_on_bls12_381 = [ "algebra/edwards_on_bls12_381" ] -edwards_on_bls12_377 = [ "algebra/edwards_on_bls12_377" ] -edwards_on_cp6_782 = [ "algebra/edwards_on_cp6_782" ] -edwards_on_bw6_761 = [ "algebra/edwards_on_bw6_761", "algebra/edwards_on_cp6_782" ] +ed_on_bls12_381 = [ "algebra/ed_on_bls12_381" ] +ed_on_bls12_377 = [ "algebra/ed_on_bls12_377" ] +ed_on_cp6_782 = [ "algebra/ed_on_cp6_782" ] +ed_on_bw6_761 = [ "algebra/ed_on_bw6_761", "algebra/ed_on_cp6_782" ] mnt4_298 = [ "algebra/mnt4_298" ] mnt4_753 = [ "algebra/mnt4_753" ] mnt6_298 = [ "algebra/mnt6_298" ] diff --git a/r1cs-std/src/instantiated/edwards_on_bw6_761/curves.rs b/r1cs-std/src/instantiated/ed_on_bls12_377/curves.rs similarity index 76% rename from r1cs-std/src/instantiated/edwards_on_bw6_761/curves.rs rename to r1cs-std/src/instantiated/ed_on_bls12_377/curves.rs index 9850916..45f6e0a 100644 --- a/r1cs-std/src/instantiated/edwards_on_bw6_761/curves.rs +++ b/r1cs-std/src/instantiated/ed_on_bls12_377/curves.rs @@ -1,7 +1,7 @@ use crate::groups::curves::twisted_edwards::AffineGadget; -use algebra::edwards_on_cp6_782::*; +use algebra::ed_on_bls12_377::*; -use crate::edwards_on_cp6_782::FqGadget; +use crate::ed_on_bls12_377::FqGadget; pub type EdwardsGadget = AffineGadget; diff --git a/r1cs-std/src/instantiated/edwards_on_bw6_761/fields.rs b/r1cs-std/src/instantiated/ed_on_bls12_377/fields.rs similarity index 78% rename from r1cs-std/src/instantiated/edwards_on_bw6_761/fields.rs rename to r1cs-std/src/instantiated/ed_on_bls12_377/fields.rs index 3031843..79d0c44 100644 --- a/r1cs-std/src/instantiated/edwards_on_bw6_761/fields.rs +++ b/r1cs-std/src/instantiated/ed_on_bls12_377/fields.rs @@ -1,5 +1,5 @@ use crate::fields::fp::FpGadget; -use algebra::edwards_on_cp6_782::fq::Fq; +use algebra::ed_on_bls12_377::fq::Fq; pub type FqGadget = FpGadget; diff --git a/r1cs-std/src/instantiated/edwards_on_bls12_377/mod.rs b/r1cs-std/src/instantiated/ed_on_bls12_377/mod.rs similarity index 100% rename from r1cs-std/src/instantiated/edwards_on_bls12_377/mod.rs rename to r1cs-std/src/instantiated/ed_on_bls12_377/mod.rs diff --git a/r1cs-std/src/instantiated/edwards_on_bls12_381/curves.rs b/r1cs-std/src/instantiated/ed_on_bls12_381/curves.rs similarity index 74% rename from r1cs-std/src/instantiated/edwards_on_bls12_381/curves.rs rename to r1cs-std/src/instantiated/ed_on_bls12_381/curves.rs index da21409..6ee8210 100644 --- a/r1cs-std/src/instantiated/edwards_on_bls12_381/curves.rs +++ b/r1cs-std/src/instantiated/ed_on_bls12_381/curves.rs @@ -1,7 +1,7 @@ use crate::groups::curves::twisted_edwards::AffineGadget; -use algebra::edwards_on_bls12_381::*; +use algebra::ed_on_bls12_381::*; -use crate::edwards_on_bls12_381::FqGadget; +use crate::ed_on_bls12_381::FqGadget; pub type EdwardsGadget = AffineGadget; diff --git a/r1cs-std/src/instantiated/ed_on_bls12_381/fields.rs b/r1cs-std/src/instantiated/ed_on_bls12_381/fields.rs new file mode 100644 index 0000000..8593477 --- /dev/null +++ b/r1cs-std/src/instantiated/ed_on_bls12_381/fields.rs @@ -0,0 +1,8 @@ +use crate::fields::fp::FpGadget; + +pub type FqGadget = FpGadget; + +#[test] +fn test() { + crate::fields::tests::field_test::<_, algebra::ed_on_bls12_381::Fq, FqGadget>(); +} diff --git a/r1cs-std/src/instantiated/edwards_on_bls12_381/mod.rs b/r1cs-std/src/instantiated/ed_on_bls12_381/mod.rs similarity index 100% rename from r1cs-std/src/instantiated/edwards_on_bls12_381/mod.rs rename to r1cs-std/src/instantiated/ed_on_bls12_381/mod.rs diff --git a/r1cs-std/src/instantiated/edwards_on_bls12_377/curves.rs b/r1cs-std/src/instantiated/ed_on_bw6_761/curves.rs similarity index 75% rename from r1cs-std/src/instantiated/edwards_on_bls12_377/curves.rs rename to r1cs-std/src/instantiated/ed_on_bw6_761/curves.rs index 7c9081e..7720aad 100644 --- a/r1cs-std/src/instantiated/edwards_on_bls12_377/curves.rs +++ b/r1cs-std/src/instantiated/ed_on_bw6_761/curves.rs @@ -1,7 +1,7 @@ use crate::groups::curves::twisted_edwards::AffineGadget; -use algebra::edwards_on_bls12_377::*; +use algebra::ed_on_cp6_782::*; -use crate::edwards_on_bls12_377::FqGadget; +use crate::ed_on_cp6_782::FqGadget; pub type EdwardsGadget = AffineGadget; diff --git a/r1cs-std/src/instantiated/edwards_on_cp6_782/fields.rs b/r1cs-std/src/instantiated/ed_on_bw6_761/fields.rs similarity index 78% rename from r1cs-std/src/instantiated/edwards_on_cp6_782/fields.rs rename to r1cs-std/src/instantiated/ed_on_bw6_761/fields.rs index 3031843..66634a2 100644 --- a/r1cs-std/src/instantiated/edwards_on_cp6_782/fields.rs +++ b/r1cs-std/src/instantiated/ed_on_bw6_761/fields.rs @@ -1,5 +1,5 @@ use crate::fields::fp::FpGadget; -use algebra::edwards_on_cp6_782::fq::Fq; +use algebra::ed_on_cp6_782::fq::Fq; pub type FqGadget = FpGadget; diff --git a/r1cs-std/src/instantiated/ed_on_bw6_761/mod.rs b/r1cs-std/src/instantiated/ed_on_bw6_761/mod.rs new file mode 100644 index 0000000..8c475c0 --- /dev/null +++ b/r1cs-std/src/instantiated/ed_on_bw6_761/mod.rs @@ -0,0 +1 @@ +pub use crate::instantiated::ed_on_cp6_782::*; diff --git a/r1cs-std/src/instantiated/edwards_on_cp6_782/curves.rs b/r1cs-std/src/instantiated/ed_on_cp6_782/curves.rs similarity index 72% rename from r1cs-std/src/instantiated/edwards_on_cp6_782/curves.rs rename to r1cs-std/src/instantiated/ed_on_cp6_782/curves.rs index 7a402a7..9e661cc 100644 --- a/r1cs-std/src/instantiated/edwards_on_cp6_782/curves.rs +++ b/r1cs-std/src/instantiated/ed_on_cp6_782/curves.rs @@ -1,7 +1,7 @@ use crate::groups::curves::twisted_edwards::AffineGadget; -use algebra::edwards_on_cp6_782::*; +use algebra::ed_on_cp6_782::*; -use crate::instantiated::edwards_on_cp6_782::FqGadget; +use crate::instantiated::ed_on_cp6_782::FqGadget; pub type EdwardsGadget = AffineGadget; diff --git a/r1cs-std/src/instantiated/edwards_on_bls12_377/fields.rs b/r1cs-std/src/instantiated/ed_on_cp6_782/fields.rs similarity index 77% rename from r1cs-std/src/instantiated/edwards_on_bls12_377/fields.rs rename to r1cs-std/src/instantiated/ed_on_cp6_782/fields.rs index 81cf3ed..66634a2 100644 --- a/r1cs-std/src/instantiated/edwards_on_bls12_377/fields.rs +++ b/r1cs-std/src/instantiated/ed_on_cp6_782/fields.rs @@ -1,5 +1,5 @@ use crate::fields::fp::FpGadget; -use algebra::edwards_on_bls12_377::fq::Fq; +use algebra::ed_on_cp6_782::fq::Fq; pub type FqGadget = FpGadget; diff --git a/r1cs-std/src/instantiated/edwards_on_cp6_782/mod.rs b/r1cs-std/src/instantiated/ed_on_cp6_782/mod.rs similarity index 100% rename from r1cs-std/src/instantiated/edwards_on_cp6_782/mod.rs rename to r1cs-std/src/instantiated/ed_on_cp6_782/mod.rs diff --git a/r1cs-std/src/instantiated/edwards_on_bls12_381/fields.rs b/r1cs-std/src/instantiated/edwards_on_bls12_381/fields.rs deleted file mode 100644 index 7eabc57..0000000 --- a/r1cs-std/src/instantiated/edwards_on_bls12_381/fields.rs +++ /dev/null @@ -1,8 +0,0 @@ -use crate::fields::fp::FpGadget; - -pub type FqGadget = FpGadget; - -#[test] -fn test() { - crate::fields::tests::field_test::<_, algebra::edwards_on_bls12_381::Fq, FqGadget>(); -} diff --git a/r1cs-std/src/instantiated/edwards_on_bw6_761/mod.rs b/r1cs-std/src/instantiated/edwards_on_bw6_761/mod.rs deleted file mode 100644 index 3f5df40..0000000 --- a/r1cs-std/src/instantiated/edwards_on_bw6_761/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub use crate::instantiated::edwards_on_cp6_782::*; diff --git a/r1cs-std/src/instantiated/mod.rs b/r1cs-std/src/instantiated/mod.rs index f0eab03..118f789 100644 --- a/r1cs-std/src/instantiated/mod.rs +++ b/r1cs-std/src/instantiated/mod.rs @@ -1,20 +1,20 @@ #[cfg(feature = "bls12_377")] pub mod bls12_377; -#[cfg(feature = "edwards_on_bls12_377")] -pub mod edwards_on_bls12_377; +#[cfg(feature = "ed_on_bls12_377")] +pub mod ed_on_bls12_377; -#[cfg(feature = "edwards_on_cp6_782")] -pub mod edwards_on_cp6_782; +#[cfg(feature = "ed_on_cp6_782")] +pub mod ed_on_cp6_782; -#[cfg(all(not(feature = "edwards_on_cp6_782"), feature = "edwards_on_bw6_761"))] -pub(crate) mod edwards_on_cp6_782; +#[cfg(all(not(feature = "ed_on_cp6_782"), feature = "ed_on_bw6_761"))] +pub(crate) mod ed_on_cp6_782; -#[cfg(feature = "edwards_on_bw6_761")] -pub mod edwards_on_bw6_761; +#[cfg(feature = "ed_on_bw6_761")] +pub mod ed_on_bw6_761; -#[cfg(feature = "edwards_on_bls12_381")] -pub mod edwards_on_bls12_381; +#[cfg(feature = "ed_on_bls12_381")] +pub mod ed_on_bls12_381; #[cfg(feature = "mnt4_298")] pub mod mnt4_298; diff --git a/r1cs-std/src/lib.rs b/r1cs-std/src/lib.rs index 066371e..2fb1979 100644 --- a/r1cs-std/src/lib.rs +++ b/r1cs-std/src/lib.rs @@ -48,14 +48,14 @@ mod instantiated; #[cfg(feature = "bls12_377")] pub use instantiated::bls12_377; -#[cfg(feature = "edwards_on_bls12_377")] -pub use instantiated::edwards_on_bls12_377; +#[cfg(feature = "ed_on_bls12_377")] +pub use instantiated::ed_on_bls12_377; -#[cfg(feature = "edwards_on_cp6_782")] -pub use instantiated::edwards_on_cp6_782; +#[cfg(feature = "ed_on_cp6_782")] +pub use instantiated::ed_on_cp6_782; -#[cfg(feature = "edwards_on_bls12_381")] -pub use instantiated::edwards_on_bls12_381; +#[cfg(feature = "ed_on_bls12_381")] +pub use instantiated::ed_on_bls12_381; #[cfg(feature = "mnt4_298")] pub use instantiated::mnt4_298;