From 64a7a365fdf4e25c3e5070d7a745986b75f9dcd1 Mon Sep 17 00:00:00 2001 From: bunnie Date: Fri, 9 Feb 2024 16:55:10 +0800 Subject: [PATCH] undo another ec_17 monkey patch we're at 0.17 so we don't have to pull the sources forward anymore! --- pregenerated/aesni-gcm-x86_64-nasm.o | Bin 17457 -> 17457 bytes pregenerated/aesni-x86-win32n.o | Bin 12336 -> 12336 bytes pregenerated/aesni-x86_64-nasm.o | Bin 20064 -> 20064 bytes pregenerated/chacha-x86-win32n.o | Bin 13909 -> 13909 bytes pregenerated/chacha-x86_64-nasm.o | Bin 28592 -> 28592 bytes pregenerated/chacha20_poly1305_x86_64-nasm.o | Bin 127372 -> 127372 bytes pregenerated/ghash-x86-win32n.o | Bin 5575 -> 5575 bytes pregenerated/ghash-x86_64-nasm.o | Bin 20202 -> 20202 bytes pregenerated/p256-x86_64-asm-nasm.o | Bin 63676 -> 63676 bytes pregenerated/sha256-x86_64-nasm.o | Bin 50011 -> 50011 bytes pregenerated/sha512-x86_64-nasm.o | Bin 34676 -> 34676 bytes pregenerated/vpaes-x86-win32n.o | Bin 7658 -> 7658 bytes pregenerated/vpaes-x86_64-nasm.o | Bin 14411 -> 14411 bytes pregenerated/x86-mont-win32n.o | Bin 3887 -> 3887 bytes pregenerated/x86_64-mont-nasm.o | Bin 20158 -> 20158 bytes pregenerated/x86_64-mont5-nasm.o | Bin 48525 -> 48525 bytes src/ec_17.rs | 62 - src/ec_17/curve25519.rs | 21 - src/ec_17/curve25519/ed25519.rs | 32 - .../ed25519/ed25519_pkcs8_v2_template.der | Bin 21 -> 0 bytes src/ec_17/curve25519/ed25519/signing.rs | 270 --- src/ec_17/curve25519/ed25519/verification.rs | 84 - src/ec_17/curve25519/ops.rs | 155 -- src/ec_17/curve25519/scalar.rs | 78 - src/ec_17/curve25519/x25519.rs | 170 -- src/ec_17/keys.rs | 90 - src/ec_17/suite_b.rs | 237 --- src/ec_17/suite_b/curve.rs | 83 - src/ec_17/suite_b/ecdh.rs | 236 --- src/ec_17/suite_b/ecdsa.rs | 3 - src/ec_17/suite_b/ecdsa/digest_scalar.rs | 131 -- .../ecPublicKey_p256_pkcs8_v1_template.der | Bin 41 -> 0 bytes .../ecPublicKey_p384_pkcs8_v1_template.der | Bin 40 -> 0 bytes .../ecdsa/ecdsa_digest_scalar_tests.txt | 82 - .../suite_b/ecdsa/ecdsa_sign_asn1_tests.txt | 18 - .../suite_b/ecdsa/ecdsa_sign_fixed_tests.txt | 251 --- src/ec_17/suite_b/ecdsa/signing.rs | 603 ------ src/ec_17/suite_b/ecdsa/verification.rs | 347 ---- src/ec_17/suite_b/ops.rs | 1175 ------------ src/ec_17/suite_b/ops/elem.rs | 120 -- src/ec_17/suite_b/ops/p256.rs | 333 ---- src/ec_17/suite_b/ops/p256_elem_mul_tests.txt | 32 - src/ec_17/suite_b/ops/p256_elem_neg_tests.txt | 24 - src/ec_17/suite_b/ops/p256_elem_sum_tests.txt | 1048 ----------- .../suite_b/ops/p256_point_double_tests.txt | 20 - .../suite_b/ops/p256_point_mul_base_tests.txt | 1280 ------------- .../ops/p256_point_mul_serialized_tests.txt | 13 - .../suite_b/ops/p256_point_mul_tests.txt | 1665 ----------------- .../ops/p256_point_sum_mixed_tests.txt | 80 - .../suite_b/ops/p256_point_sum_tests.txt | 120 -- .../suite_b/ops/p256_scalar_mul_tests.txt | 86 - .../suite_b/ops/p256_scalar_square_tests.txt | 65 - src/ec_17/suite_b/ops/p384.rs | 364 ---- .../suite_b/ops/p384_elem_div_by_2_tests.txt | 27 - src/ec_17/suite_b/ops/p384_elem_mul_tests.txt | 32 - src/ec_17/suite_b/ops/p384_elem_neg_tests.txt | 24 - src/ec_17/suite_b/ops/p384_elem_sum_tests.txt | 1559 --------------- .../suite_b/ops/p384_point_double_tests.txt | 20 - .../suite_b/ops/p384_point_mul_base_tests.txt | 1280 ------------- .../suite_b/ops/p384_point_mul_tests.txt | 1664 ---------------- .../suite_b/ops/p384_point_sum_tests.txt | 120 -- .../suite_b/ops/p384_scalar_mul_tests.txt | 32 - src/ec_17/suite_b/private_key.rs | 203 -- src/ec_17/suite_b/public_key.rs | 107 -- .../suite_b/suite_b_public_key_tests.txt | 233 --- src/ec_17/suite_b_17.rs | 237 --- src/lib.rs | 5 - 67 files changed, 14921 deletions(-) delete mode 100644 src/ec_17.rs delete mode 100644 src/ec_17/curve25519.rs delete mode 100644 src/ec_17/curve25519/ed25519.rs delete mode 100644 src/ec_17/curve25519/ed25519/ed25519_pkcs8_v2_template.der delete mode 100644 src/ec_17/curve25519/ed25519/signing.rs delete mode 100644 src/ec_17/curve25519/ed25519/verification.rs delete mode 100644 src/ec_17/curve25519/ops.rs delete mode 100644 src/ec_17/curve25519/scalar.rs delete mode 100644 src/ec_17/curve25519/x25519.rs delete mode 100644 src/ec_17/keys.rs delete mode 100644 src/ec_17/suite_b.rs delete mode 100644 src/ec_17/suite_b/curve.rs delete mode 100644 src/ec_17/suite_b/ecdh.rs delete mode 100644 src/ec_17/suite_b/ecdsa.rs delete mode 100644 src/ec_17/suite_b/ecdsa/digest_scalar.rs delete mode 100644 src/ec_17/suite_b/ecdsa/ecPublicKey_p256_pkcs8_v1_template.der delete mode 100644 src/ec_17/suite_b/ecdsa/ecPublicKey_p384_pkcs8_v1_template.der delete mode 100644 src/ec_17/suite_b/ecdsa/ecdsa_digest_scalar_tests.txt delete mode 100644 src/ec_17/suite_b/ecdsa/ecdsa_sign_asn1_tests.txt delete mode 100644 src/ec_17/suite_b/ecdsa/ecdsa_sign_fixed_tests.txt delete mode 100644 src/ec_17/suite_b/ecdsa/signing.rs delete mode 100644 src/ec_17/suite_b/ecdsa/verification.rs delete mode 100644 src/ec_17/suite_b/ops.rs delete mode 100644 src/ec_17/suite_b/ops/elem.rs delete mode 100644 src/ec_17/suite_b/ops/p256.rs delete mode 100644 src/ec_17/suite_b/ops/p256_elem_mul_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_elem_neg_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_elem_sum_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_point_double_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_point_mul_base_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_point_mul_serialized_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_point_mul_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_point_sum_mixed_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_point_sum_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_scalar_mul_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p256_scalar_square_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384.rs delete mode 100644 src/ec_17/suite_b/ops/p384_elem_div_by_2_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384_elem_mul_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384_elem_neg_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384_elem_sum_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384_point_double_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384_point_mul_base_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384_point_mul_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384_point_sum_tests.txt delete mode 100644 src/ec_17/suite_b/ops/p384_scalar_mul_tests.txt delete mode 100644 src/ec_17/suite_b/private_key.rs delete mode 100644 src/ec_17/suite_b/public_key.rs delete mode 100644 src/ec_17/suite_b/suite_b_public_key_tests.txt delete mode 100644 src/ec_17/suite_b_17.rs diff --git a/pregenerated/aesni-gcm-x86_64-nasm.o b/pregenerated/aesni-gcm-x86_64-nasm.o index c41419e06bf58befc75fda8e8ab8a706ed9c8904..0182557bb29806380e09bb14c135b2bad104f32d 100644 GIT binary patch delta 17 Ycmdnk!ML%5ku9Z-jbZikjcnR306GW;BLDyZ delta 17 Ycmdnk!ML%5ku9Z-jY0O=MmB9105-1$lmGw# diff --git a/pregenerated/aesni-x86-win32n.o b/pregenerated/aesni-x86-win32n.o index 767d5eda215cd0513f9e7899848348549cd858e7..675ebf596d1a316a988a468290d27164030b8704 100644 GIT binary patch delta 15 WcmdmxupxoXhmnP0)$@&PS_S|tO9dJL delta 15 WcmdmxupxoXhmnOr_Sr@@Edu~3_ymjq diff --git a/pregenerated/aesni-x86_64-nasm.o b/pregenerated/aesni-x86_64-nasm.o index dfb48d90527b574457cec69014931ef98f798665..41818571809d1f0f835a4c767bf37680e438569f 100644 GIT binary patch delta 17 ZcmaDbhw;H2Mz)kTHip&DH?l?f0RTc}2I2q! delta 17 YcmaDbhw;H2Mz)kTHU`;e8`+}#06z={Qvd(} diff --git a/pregenerated/chacha-x86-win32n.o b/pregenerated/chacha-x86-win32n.o index 2ce1eb5c9ae1d73c888dc5b50dc1a92a077b93b0..09faf0c38eee63981a5bd627cc314f8f5388553a 100644 GIT binary patch delta 15 Wcmcbbb2W#}hmnP0)$@&P{$>C%-vy@t delta 15 Wcmcbbb2W#}hmnOr_Sr@@e=`6sj0G70 diff --git a/pregenerated/chacha-x86_64-nasm.o b/pregenerated/chacha-x86_64-nasm.o index 53c09729c75fee18c1e6a338fb604f8a28d41709..0df32648d114eb4ef49a7bc300cbb63e7e659251 100644 GIT binary patch delta 17 ZcmdmRpK-%|Mz)kTHip&DH?pnD2LMFv2YCPh delta 17 ZcmdmRpK-%|Mz)kTHU`;e8`)On0{}sk2I>F+ diff --git a/pregenerated/chacha20_poly1305_x86_64-nasm.o b/pregenerated/chacha20_poly1305_x86_64-nasm.o index 4ea89270183c855a3898fdaf6341825c5100c5f9..a741144800ebce84f46594f4fdfdb71e215660d5 100644 GIT binary patch delta 20 bcmeBq%--{uoh_w}g<m;e9( delta 17 YcmeDE&D8swi7lm#jY0O=Mz;3706?Y(2><{9 diff --git a/src/ec_17.rs b/src/ec_17.rs deleted file mode 100644 index 576d4911af..0000000000 --- a/src/ec_17.rs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2015-2017 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -use crate::{error, rand}; - -pub use self::keys::{KeyPair, PublicKey, Seed}; - -pub struct Curve { - pub public_key_len: usize, - pub elem_scalar_seed_len: usize, - - pub id: CurveID, - - // Precondition: `bytes` is the correct length. - check_private_key_bytes: fn(bytes: &[u8]) -> Result<(), error::Unspecified>, - - generate_private_key: - fn(rng: &dyn rand::SecureRandom, &mut [u8]) -> Result<(), error::Unspecified>, - - public_from_private: - fn(public_out: &mut [u8], private_key: &Seed) -> Result<(), error::Unspecified>, -} - -derive_debug_via_id!(Curve); - -#[derive(Clone, Copy, Debug, PartialEq)] -pub enum CurveID { - Curve25519, - P256, - P384, -} - -const ELEM_MAX_BITS: usize = 384; -pub const ELEM_MAX_BYTES: usize = (ELEM_MAX_BITS + 7) / 8; - -pub const SCALAR_MAX_BYTES: usize = ELEM_MAX_BYTES; -const SEED_MAX_BYTES: usize = ELEM_MAX_BYTES; - -/// The maximum length of a PKCS#8 documents generated by *ring* for ECC keys. -/// -/// This is NOT the maximum length of a PKCS#8 document that can be consumed by -/// `pkcs8::unwrap_key()`. -/// -/// `40` is the length of the P-384 template. It is actually one byte shorter -/// than the P-256 template, but the private key and the public key are much -/// longer. -pub const PKCS8_DOCUMENT_MAX_LEN: usize = 40 + SCALAR_MAX_BYTES + keys::PUBLIC_KEY_MAX_LEN; - -pub mod curve25519; -mod keys; -pub mod suite_b; diff --git a/src/ec_17/curve25519.rs b/src/ec_17/curve25519.rs deleted file mode 100644 index b6e32e22ee..0000000000 --- a/src/ec_17/curve25519.rs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! Elliptic curve operations and schemes using Curve25519. - -pub mod ed25519; -pub mod x25519; - -mod ops; -mod scalar; diff --git a/src/ec_17/curve25519/ed25519.rs b/src/ec_17/curve25519/ed25519.rs deleted file mode 100644 index b29bb55210..0000000000 --- a/src/ec_17/curve25519/ed25519.rs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2015-2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! EdDSA Signatures. - -use super::ops::ELEM_LEN; -use crate::digest; - -pub mod signing; -pub mod verification; - -/// The length of an Ed25519 public key. -pub const ED25519_PUBLIC_KEY_LEN: usize = ELEM_LEN; - -pub fn eddsa_digest(signature_r: &[u8], public_key: &[u8], msg: &[u8]) -> digest::Digest { - let mut ctx = digest::Context::new(&digest::SHA512); - ctx.update(signature_r); - ctx.update(public_key); - ctx.update(msg); - ctx.finish() -} diff --git a/src/ec_17/curve25519/ed25519/ed25519_pkcs8_v2_template.der b/src/ec_17/curve25519/ed25519/ed25519_pkcs8_v2_template.der deleted file mode 100644 index 717298e93e58f9db2109aee94399483ef6bb8ee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21 ccmXpAW@2PCU}a<0PAy Result { - let seed: [u8; SEED_LEN] = rand::generate(rng)?.expose(); - let key_pair = Self::from_seed_(&seed); - Ok(pkcs8::wrap_key( - &PKCS8_TEMPLATE, - &seed[..], - key_pair.public_key().as_ref(), - )) - } - - /// Constructs an Ed25519 key pair by parsing an unencrypted PKCS#8 v2 - /// Ed25519 private key. - /// - /// `openssl genpkey -algorithm ED25519` generates PKCS# v1 keys, which - /// require the use of `Ed25519KeyPair::from_pkcs8_maybe_unchecked()` - /// instead of `Ed25519KeyPair::from_pkcs8()`. - /// - /// The input must be in PKCS#8 v2 format, and in particular it must contain - /// the public key in addition to the private key. `from_pkcs8()` will - /// verify that the public key and the private key are consistent with each - /// other. - /// - /// If you need to parse PKCS#8 v1 files (without the public key) then use - /// `Ed25519KeyPair::from_pkcs8_maybe_unchecked()` instead. - pub fn from_pkcs8(pkcs8: &[u8]) -> Result { - let (seed, public_key) = - unwrap_pkcs8(pkcs8::Version::V2Only, untrusted::Input::from(pkcs8))?; - Self::from_seed_and_public_key( - seed.as_slice_less_safe(), - public_key.unwrap().as_slice_less_safe(), - ) - } - - /// Constructs an Ed25519 key pair by parsing an unencrypted PKCS#8 v1 or v2 - /// Ed25519 private key. - /// - /// `openssl genpkey -algorithm ED25519` generates PKCS# v1 keys. - /// - /// It is recommended to use `Ed25519KeyPair::from_pkcs8()`, which accepts - /// only PKCS#8 v2 files that contain the public key. - /// `from_pkcs8_maybe_unchecked()` parses PKCS#2 files exactly like - /// `from_pkcs8()`. It also accepts v1 files. PKCS#8 v1 files do not contain - /// the public key, so when a v1 file is parsed the public key will be - /// computed from the private key, and there will be no consistency check - /// between the public key and the private key. - /// - /// PKCS#8 v2 files are parsed exactly like `Ed25519KeyPair::from_pkcs8()`. - pub fn from_pkcs8_maybe_unchecked(pkcs8: &[u8]) -> Result { - let (seed, public_key) = - unwrap_pkcs8(pkcs8::Version::V1OrV2, untrusted::Input::from(pkcs8))?; - if let Some(public_key) = public_key { - Self::from_seed_and_public_key( - seed.as_slice_less_safe(), - public_key.as_slice_less_safe(), - ) - } else { - Self::from_seed_unchecked(seed.as_slice_less_safe()) - } - } - - /// Constructs an Ed25519 key pair from the private key seed `seed` and its - /// public key `public_key`. - /// - /// It is recommended to use `Ed25519KeyPair::from_pkcs8()` instead. - /// - /// The private and public keys will be verified to be consistent with each - /// other. This helps avoid misuse of the key (e.g. accidentally swapping - /// the private key and public key, or using the wrong private key for the - /// public key). This also detects any corruption of the public or private - /// key. - pub fn from_seed_and_public_key( - seed: &[u8], - public_key: &[u8], - ) -> Result { - let pair = Self::from_seed_unchecked(seed)?; - - // This implicitly verifies that `public_key` is the right length. - // XXX: This rejects ~18 keys when they are partially reduced, though - // those keys are virtually impossible to find. - if public_key != pair.public_key.as_ref() { - let err = if public_key.len() != pair.public_key.as_ref().len() { - error::KeyRejected::invalid_encoding() - } else { - error::KeyRejected::inconsistent_components() - }; - return Err(err); - } - - Ok(pair) - } - - /// Constructs a Ed25519 key pair from the private key seed `seed`. - /// - /// It is recommended to use `Ed25519KeyPair::from_pkcs8()` instead. When - /// that is not practical, it is recommended to use - /// `Ed25519KeyPair::from_seed_and_public_key()` instead. - /// - /// Since the public key is not given, the public key will be computed from - /// the private key. It is not possible to detect misuse or corruption of - /// the private key since the public key isn't given as input. - pub fn from_seed_unchecked(seed: &[u8]) -> Result { - let seed = seed - .try_into() - .map_err(|_| error::KeyRejected::invalid_encoding())?; - Ok(Self::from_seed_(seed)) - } - - fn from_seed_(seed: &Seed) -> Self { - let h = digest::digest(&digest::SHA512, seed); - let (private_scalar, private_prefix) = h.as_ref().split_at(SCALAR_LEN); - - let private_scalar = - MaskedScalar::from_bytes_masked(private_scalar.try_into().unwrap()).into(); - - let mut a = ExtPoint::new_at_infinity(); - unsafe { - GFp_x25519_ge_scalarmult_base(&mut a, &private_scalar); - } - - Self { - private_scalar, - private_prefix: private_prefix.try_into().unwrap(), - public_key: PublicKey(a.into_encoded_point()), - } - } - - /// Returns the signature of the message `msg`. - pub fn sign(&self, msg: &[u8]) -> signature::Signature { - signature::Signature::new(|signature_bytes| { - extern "C" { - fn GFp_x25519_sc_muladd( - s: &mut [u8; SCALAR_LEN], - a: &Scalar, - b: &Scalar, - c: &Scalar, - ); - } - - let (signature_bytes, _unused) = signature_bytes.split_at_mut(ELEM_LEN + SCALAR_LEN); - let (signature_r, signature_s) = signature_bytes.split_at_mut(ELEM_LEN); - let nonce = { - let mut ctx = digest::Context::new(&digest::SHA512); - ctx.update(&self.private_prefix); - ctx.update(msg); - ctx.finish() - }; - let nonce = Scalar::from_sha512_digest_reduced(nonce); - - let mut r = ExtPoint::new_at_infinity(); - unsafe { - GFp_x25519_ge_scalarmult_base(&mut r, &nonce); - } - signature_r.copy_from_slice(&r.into_encoded_point()); - let hram_digest = eddsa_digest(signature_r, &self.public_key.as_ref(), msg); - let hram = Scalar::from_sha512_digest_reduced(hram_digest); - unsafe { - GFp_x25519_sc_muladd( - signature_s.try_into().unwrap(), - &hram, - &self.private_scalar, - &nonce, - ); - } - - SIGNATURE_LEN - }) - } -} - -impl signature::KeyPair for Ed25519KeyPair { - type PublicKey = PublicKey; - - fn public_key(&self) -> &Self::PublicKey { - &self.public_key - } -} - -#[derive(Clone, Copy)] -pub struct PublicKey([u8; ED25519_PUBLIC_KEY_LEN]); - -impl AsRef<[u8]> for PublicKey { - fn as_ref(&self) -> &[u8] { - self.0.as_ref() - } -} - -derive_debug_self_as_ref_hex_bytes!(PublicKey); - -fn unwrap_pkcs8( - version: pkcs8::Version, - input: untrusted::Input, -) -> Result<(untrusted::Input, Option), error::KeyRejected> { - let (private_key, public_key) = pkcs8::unwrap_key(&PKCS8_TEMPLATE, version, input)?; - let private_key = private_key - .read_all(error::Unspecified, |input| { - der::expect_tag_and_get_value(input, der::Tag::OctetString) - }) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - Ok((private_key, public_key)) -} - -extern "C" { - fn GFp_x25519_ge_scalarmult_base(h: &mut ExtPoint, a: &Scalar); -} - -type Prefix = [u8; PREFIX_LEN]; -const PREFIX_LEN: usize = digest::SHA512_OUTPUT_LEN - SCALAR_LEN; - -const SIGNATURE_LEN: usize = ELEM_LEN + SCALAR_LEN; - -type Seed = [u8; SEED_LEN]; -const SEED_LEN: usize = 32; - -static PKCS8_TEMPLATE: pkcs8::Template = pkcs8::Template { - bytes: include_bytes!("ed25519_pkcs8_v2_template.der"), - alg_id_range: core::ops::Range { start: 7, end: 12 }, - curve_id_index: 0, - private_key_index: 0x10, -}; diff --git a/src/ec_17/curve25519/ed25519/verification.rs b/src/ec_17/curve25519/ed25519/verification.rs deleted file mode 100644 index e0c1b652fa..0000000000 --- a/src/ec_17/curve25519/ed25519/verification.rs +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2015-2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! EdDSA Signatures. - -use super::{super::ops::*, eddsa_digest}; -use crate::{error, sealed, signature}; -use core::convert::TryInto; - -/// Parameters for EdDSA signing and verification. -pub struct EdDSAParameters; - -impl core::fmt::Debug for EdDSAParameters { - fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error> { - write!(f, "ring::signature::ED25519") - } -} - -/// Verification of [Ed25519] signatures. -/// -/// Ed25519 uses SHA-512 as the digest algorithm. -/// -/// [Ed25519]: https://ed25519.cr.yp.to/ -pub static ED25519: EdDSAParameters = EdDSAParameters {}; - -impl signature::VerificationAlgorithm for EdDSAParameters { - fn verify( - &self, - public_key: untrusted::Input, - msg: untrusted::Input, - signature: untrusted::Input, - ) -> Result<(), error::Unspecified> { - let public_key: &[u8; ELEM_LEN] = public_key.as_slice_less_safe().try_into()?; - let (signature_r, signature_s) = signature.read_all(error::Unspecified, |input| { - let signature_r: &[u8; ELEM_LEN] = input - .read_bytes(ELEM_LEN)? - .as_slice_less_safe() - .try_into()?; - let signature_s: &[u8; SCALAR_LEN] = input - .read_bytes(SCALAR_LEN)? - .as_slice_less_safe() - .try_into()?; - Ok((signature_r, signature_s)) - })?; - - let signature_s = Scalar::from_bytes_checked(*signature_s)?; - - let mut a = ExtPoint::from_encoded_point_vartime(public_key)?; - a.invert_vartime(); - - let h_digest = eddsa_digest(signature_r, public_key, msg.as_slice_less_safe()); - let h = Scalar::from_sha512_digest_reduced(h_digest); - - let mut r = Point::new_at_infinity(); - unsafe { GFp_x25519_ge_double_scalarmult_vartime(&mut r, &h, &a, &signature_s) }; - let r_check = r.into_encoded_point(); - if *signature_r != r_check { - return Err(error::Unspecified); - } - Ok(()) - } -} - -impl sealed::Sealed for EdDSAParameters {} - -extern "C" { - fn GFp_x25519_ge_double_scalarmult_vartime( - r: &mut Point, - a_coeff: &Scalar, - a: &ExtPoint, - b_coeff: &Scalar, - ); -} diff --git a/src/ec_17/curve25519/ops.rs b/src/ec_17/curve25519/ops.rs deleted file mode 100644 index 0b9cad48e7..0000000000 --- a/src/ec_17/curve25519/ops.rs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2015-2017 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! Elliptic curve operations on the birationally equivalent curves Curve25519 -//! and Edwards25519. - -pub use super::scalar::{MaskedScalar, Scalar, SCALAR_LEN}; -use crate::{ - bssl, error, - limb::{Limb, LIMB_BITS}, -}; -use core::marker::PhantomData; - -// Elem` is `fe` in curve25519/internal.h. -// Elem is `fe_loose` in curve25519/internal.h. -// Keep this in sync with curve25519/internal.h. -#[repr(C)] -pub struct Elem { - limbs: [Limb; ELEM_LIMBS], // This is called `v` in the C code. - encoding: PhantomData, -} - -pub trait Encoding {} -pub struct T; -impl Encoding for T {} - -const ELEM_LIMBS: usize = 5 * 64 / LIMB_BITS; - -impl Elem { - fn zero() -> Self { - Self { - limbs: Default::default(), - encoding: PhantomData, - } - } -} - -impl Elem { - fn negate(&mut self) { - unsafe { - GFp_x25519_fe_neg(self); - } - } -} - -// An encoding of a curve point. If on Curve25519, it should be encoded as -// described in Section 5 of [RFC 7748]. If on Edwards25519, it should be -// encoded as described in section 5.1.2 of [RFC 8032]. -// -// [RFC 7748] https://tools.ietf.org/html/rfc7748#section-5 -// [RFC 8032] https://tools.ietf.org/html/rfc8032#section-5.1.2 -pub type EncodedPoint = [u8; ELEM_LEN]; -pub const ELEM_LEN: usize = 32; - -// Keep this in sync with `ge_p3` in curve25519/internal.h. -#[repr(C)] -pub struct ExtPoint { - x: Elem, - y: Elem, - z: Elem, - t: Elem, -} - -impl ExtPoint { - pub fn new_at_infinity() -> Self { - Self { - x: Elem::zero(), - y: Elem::zero(), - z: Elem::zero(), - t: Elem::zero(), - } - } - - pub fn from_encoded_point_vartime(encoded: &EncodedPoint) -> Result { - let mut point = Self::new_at_infinity(); - - Result::from(unsafe { GFp_x25519_ge_frombytes_vartime(&mut point, encoded) }) - .map(|()| point) - } - - pub fn into_encoded_point(self) -> EncodedPoint { - encode_point(self.x, self.y, self.z) - } - - pub fn invert_vartime(&mut self) { - self.x.negate(); - self.t.negate(); - } -} - -// Keep this in sync with `ge_p2` in curve25519/internal.h. -#[repr(C)] -pub struct Point { - x: Elem, - y: Elem, - z: Elem, -} - -impl Point { - pub fn new_at_infinity() -> Self { - Self { - x: Elem::zero(), - y: Elem::zero(), - z: Elem::zero(), - } - } - - pub fn into_encoded_point(self) -> EncodedPoint { - encode_point(self.x, self.y, self.z) - } -} - -fn encode_point(x: Elem, y: Elem, z: Elem) -> EncodedPoint { - let mut bytes = [0; ELEM_LEN]; - - let sign_bit: u8 = unsafe { - let mut recip = Elem::zero(); - GFp_x25519_fe_invert(&mut recip, &z); - - let mut x_over_z = Elem::zero(); - GFp_x25519_fe_mul_ttt(&mut x_over_z, &x, &recip); - - let mut y_over_z = Elem::zero(); - GFp_x25519_fe_mul_ttt(&mut y_over_z, &y, &recip); - GFp_x25519_fe_tobytes(&mut bytes, &y_over_z); - - GFp_x25519_fe_isnegative(&x_over_z) - }; - - // The preceding computations must execute in constant time, but this - // doesn't need to. - bytes[ELEM_LEN - 1] ^= sign_bit << 7; - - bytes -} - -extern "C" { - fn GFp_x25519_fe_invert(out: &mut Elem, z: &Elem); - fn GFp_x25519_fe_isnegative(elem: &Elem) -> u8; - fn GFp_x25519_fe_mul_ttt(h: &mut Elem, f: &Elem, g: &Elem); - fn GFp_x25519_fe_neg(f: &mut Elem); - fn GFp_x25519_fe_tobytes(bytes: &mut EncodedPoint, elem: &Elem); - fn GFp_x25519_ge_frombytes_vartime(h: &mut ExtPoint, s: &EncodedPoint) -> bssl::Result; -} diff --git a/src/ec_17/curve25519/scalar.rs b/src/ec_17/curve25519/scalar.rs deleted file mode 100644 index 39728087ee..0000000000 --- a/src/ec_17/curve25519/scalar.rs +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2015-2019 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -use crate::{digest, error, limb}; -use core::convert::TryInto; - -#[repr(transparent)] -pub struct Scalar([u8; SCALAR_LEN]); - -pub const SCALAR_LEN: usize = 32; - -impl Scalar { - // Constructs a `Scalar` from `bytes`, failing if `bytes` encodes a scalar - // that not in the range [0, n). - pub fn from_bytes_checked(bytes: [u8; SCALAR_LEN]) -> Result { - const ORDER: [limb::Limb; SCALAR_LEN / limb::LIMB_BYTES] = - limbs![0x5cf5d3ed, 0x5812631a, 0xa2f79cd6, 0x14def9de, 0, 0, 0, 0x10000000]; - - // `bytes` is in little-endian order. - let mut reversed = bytes; - reversed.reverse(); - - let mut limbs = [0; SCALAR_LEN / limb::LIMB_BYTES]; - limb::parse_big_endian_in_range_and_pad_consttime( - untrusted::Input::from(&reversed), - limb::AllowZero::Yes, - &ORDER, - &mut limbs, - )?; - - Ok(Self(bytes)) - } - - // Constructs a `Scalar` from `digest` reduced modulo n. - pub fn from_sha512_digest_reduced(digest: digest::Digest) -> Self { - extern "C" { - fn GFp_x25519_sc_reduce(s: &mut UnreducedScalar); - } - let mut unreduced = [0u8; digest::SHA512_OUTPUT_LEN]; - unreduced.copy_from_slice(digest.as_ref()); - unsafe { GFp_x25519_sc_reduce(&mut unreduced) }; - Self((&unreduced[..SCALAR_LEN]).try_into().unwrap()) - } -} - -#[repr(transparent)] -pub struct MaskedScalar([u8; SCALAR_LEN]); - -impl MaskedScalar { - pub fn from_bytes_masked(bytes: [u8; SCALAR_LEN]) -> Self { - extern "C" { - fn GFp_x25519_sc_mask(a: &mut [u8; SCALAR_LEN]); - } - let mut r = Self(bytes); - unsafe { GFp_x25519_sc_mask(&mut r.0) }; - r - } -} - -impl From for Scalar { - fn from(MaskedScalar(scalar): MaskedScalar) -> Self { - Self(scalar) - } -} - -type UnreducedScalar = [u8; UNREDUCED_SCALAR_LEN]; -const UNREDUCED_SCALAR_LEN: usize = SCALAR_LEN * 2; diff --git a/src/ec_17/curve25519/x25519.rs b/src/ec_17/curve25519/x25519.rs deleted file mode 100644 index 53a2a5cf84..0000000000 --- a/src/ec_17/curve25519/x25519.rs +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2015-2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! X25519 Key agreement. - -use super::{ops, scalar::SCALAR_LEN}; -use crate::{agreement, constant_time, cpu, ec, error, rand}; -use core::convert::TryInto; - -static CURVE25519: ec::Curve = ec::Curve { - public_key_len: PUBLIC_KEY_LEN, - elem_scalar_seed_len: ELEM_AND_SCALAR_LEN, - id: ec::CurveID::Curve25519, - check_private_key_bytes: x25519_check_private_key_bytes, - generate_private_key: x25519_generate_private_key, - public_from_private: x25519_public_from_private, -}; - -/// X25519 (ECDH using Curve25519) as described in [RFC 7748]. -/// -/// Everything is as described in RFC 7748. Key agreement will fail if the -/// result of the X25519 operation is zero; see the notes on the -/// "all-zero value" in [RFC 7748 section 6.1]. -/// -/// [RFC 7748]: https://tools.ietf.org/html/rfc7748 -/// [RFC 7748 section 6.1]: https://tools.ietf.org/html/rfc7748#section-6.1 -pub static X25519: agreement::Algorithm = agreement::Algorithm { - curve: &CURVE25519, - ecdh: x25519_ecdh, -}; - -fn x25519_check_private_key_bytes(bytes: &[u8]) -> Result<(), error::Unspecified> { - debug_assert_eq!(bytes.len(), PRIVATE_KEY_LEN); - Ok(()) -} - -fn x25519_generate_private_key( - rng: &dyn rand::SecureRandom, - out: &mut [u8], -) -> Result<(), error::Unspecified> { - rng.fill(out) -} - -fn x25519_public_from_private( - public_out: &mut [u8], - private_key: &ec::Seed, -) -> Result<(), error::Unspecified> { - let public_out = public_out.try_into()?; - - #[cfg(target_arch = "arm")] - let cpu_features = private_key.cpu_features; - - let private_key: &[u8; SCALAR_LEN] = private_key.bytes_less_safe().try_into()?; - let private_key = ops::MaskedScalar::from_bytes_masked(*private_key); - - #[cfg(all(not(target_os = "ios"), target_arch = "arm"))] - { - if cpu::arm::NEON.available(cpu_features) { - static MONTGOMERY_BASE_POINT: [u8; 32] = [ - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - ]; - x25519_neon(public_out, &private_key, &MONTGOMERY_BASE_POINT); - return Ok(()); - } - } - - extern "C" { - fn GFp_x25519_public_from_private_generic_masked( - public_key_out: &mut PublicKey, - private_key: &PrivateKey, - ); - } - unsafe { - GFp_x25519_public_from_private_generic_masked(public_out, &private_key); - } - - Ok(()) -} - -fn x25519_ecdh( - out: &mut [u8], - my_private_key: &ec::Seed, - peer_public_key: untrusted::Input, -) -> Result<(), error::Unspecified> { - let cpu_features = my_private_key.cpu_features; - let my_private_key: &[u8; SCALAR_LEN] = my_private_key.bytes_less_safe().try_into()?; - let my_private_key = ops::MaskedScalar::from_bytes_masked(*my_private_key); - let peer_public_key: &[u8; PUBLIC_KEY_LEN] = peer_public_key.as_slice_less_safe().try_into()?; - - #[cfg_attr( - not(all(not(target_os = "ios"), target_arch = "arm")), - allow(unused_variables) - )] - fn scalar_mult( - out: &mut ops::EncodedPoint, - scalar: &ops::MaskedScalar, - point: &ops::EncodedPoint, - cpu_features: cpu::Features, - ) { - #[cfg(all(not(target_os = "ios"), target_arch = "arm"))] - { - if cpu::arm::NEON.available(cpu_features) { - return x25519_neon(out, scalar, point); - } - } - - extern "C" { - fn GFp_x25519_scalar_mult_generic_masked( - out: &mut ops::EncodedPoint, - scalar: &ops::MaskedScalar, - point: &ops::EncodedPoint, - ); - } - unsafe { - GFp_x25519_scalar_mult_generic_masked(out, scalar, point); - } - } - - scalar_mult( - out.try_into()?, - &my_private_key, - peer_public_key, - cpu_features, - ); - - let zeros: SharedSecret = [0; SHARED_SECRET_LEN]; - if constant_time::verify_slices_are_equal(out, &zeros).is_ok() { - // All-zero output results when the input is a point of small order. - return Err(error::Unspecified); - } - - Ok(()) -} - -#[cfg(all(not(target_os = "ios"), target_arch = "arm"))] -fn x25519_neon(out: &mut ops::EncodedPoint, scalar: &ops::MaskedScalar, point: &ops::EncodedPoint) { - extern "C" { - fn GFp_x25519_NEON( - out: &mut ops::EncodedPoint, - scalar: &ops::MaskedScalar, - point: &ops::EncodedPoint, - ); - } - unsafe { GFp_x25519_NEON(out, scalar, point) } -} - -const ELEM_AND_SCALAR_LEN: usize = ops::ELEM_LEN; - -type PrivateKey = ops::MaskedScalar; -const PRIVATE_KEY_LEN: usize = ELEM_AND_SCALAR_LEN; - -// An X25519 public key as an encoded Curve25519 point. -type PublicKey = [u8; PUBLIC_KEY_LEN]; -const PUBLIC_KEY_LEN: usize = ELEM_AND_SCALAR_LEN; - -// An X25519 shared secret as an encoded Curve25519 point. -type SharedSecret = [u8; SHARED_SECRET_LEN]; -const SHARED_SECRET_LEN: usize = ELEM_AND_SCALAR_LEN; diff --git a/src/ec_17/keys.rs b/src/ec_17/keys.rs deleted file mode 100644 index abf33882ab..0000000000 --- a/src/ec_17/keys.rs +++ /dev/null @@ -1,90 +0,0 @@ -use super::{Curve, ELEM_MAX_BYTES, SEED_MAX_BYTES}; -use crate::{cpu, error, rand}; - -pub struct KeyPair { - seed: Seed, - public_key: PublicKey, -} - -impl KeyPair { - pub fn derive(seed: Seed) -> Result { - let public_key = seed.compute_public_key()?; - Ok(Self { seed, public_key }) - } - - pub fn public_key(&self) -> &PublicKey { - &self.public_key - } - pub fn split(self) -> (Seed, PublicKey) { - (self.seed, self.public_key) - } -} - -pub struct Seed { - bytes: [u8; SEED_MAX_BYTES], - curve: &'static Curve, - pub(crate) cpu_features: cpu::Features, -} - -impl Seed { - pub(crate) fn generate( - curve: &'static Curve, - rng: &dyn rand::SecureRandom, - cpu_features: cpu::Features, - ) -> Result { - let mut r = Self { - bytes: [0u8; SEED_MAX_BYTES], - curve, - cpu_features, - }; - (curve.generate_private_key)(rng, &mut r.bytes[..curve.elem_scalar_seed_len])?; - Ok(r) - } - - pub(crate) fn from_bytes( - curve: &'static Curve, - bytes: untrusted::Input, - cpu_features: cpu::Features, - ) -> Result { - let bytes = bytes.as_slice_less_safe(); - if curve.elem_scalar_seed_len != bytes.len() { - return Err(error::Unspecified); - } - (curve.check_private_key_bytes)(bytes)?; - let mut r = Self { - bytes: [0; SEED_MAX_BYTES], - curve, - cpu_features, - }; - r.bytes[..curve.elem_scalar_seed_len].copy_from_slice(bytes); - Ok(r) - } - - pub fn bytes_less_safe(&self) -> &[u8] { - &self.bytes[..self.curve.elem_scalar_seed_len] - } - - pub fn compute_public_key(&self) -> Result { - let mut public_key = PublicKey { - bytes: [0u8; PUBLIC_KEY_MAX_LEN], - len: self.curve.public_key_len, - }; - (self.curve.public_from_private)(&mut public_key.bytes[..public_key.len], self)?; - Ok(public_key) - } -} - -#[derive(Copy, Clone)] -pub struct PublicKey { - bytes: [u8; PUBLIC_KEY_MAX_LEN], - len: usize, -} - -impl AsRef<[u8]> for PublicKey { - fn as_ref(&self) -> &[u8] { - &self.bytes[..self.len] - } -} - -/// The maximum length, in bytes, of an encoded public key. -pub const PUBLIC_KEY_MAX_LEN: usize = 1 + (2 * ELEM_MAX_BYTES); diff --git a/src/ec_17/suite_b.rs b/src/ec_17/suite_b.rs deleted file mode 100644 index ce6ebb5bf9..0000000000 --- a/src/ec_17/suite_b.rs +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright 2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! Elliptic curve operations on P-256 & P-384. - -use self::ops::*; -use crate::{arithmetic::montgomery::*, cpu, ec, error, io::der, limb::LimbMask, pkcs8}; - -// NIST SP 800-56A Step 3: "If q is an odd prime p, verify that -// yQ**2 = xQ**3 + axQ + b in GF(p), where the arithmetic is performed modulo -// p." -// -// That is, verify that (x, y) is on the curve, which is true iif: -// -// y**2 == x**3 + a*x + b (mod q) -// -// Or, equivalently, but more efficiently: -// -// y**2 == (x**2 + a)*x + b (mod q) -// -fn verify_affine_point_is_on_the_curve( - ops: &CommonOps, - (x, y): (&Elem, &Elem), -) -> Result<(), error::Unspecified> { - verify_affine_point_is_on_the_curve_scaled(ops, (x, y), &ops.a, &ops.b) -} - -// Use `verify_affine_point_is_on_the_curve` instead of this function whenever -// the affine coordinates are available or will become available. This function -// should only be used then the affine coordinates are never calculated. See -// the notes for `verify_affine_point_is_on_the_curve_scaled`. -// -// The value `z**2` is returned on success because it is useful for ECDSA -// verification. -// -// This function also verifies that the point is not at infinity. -fn verify_jacobian_point_is_on_the_curve( - ops: &CommonOps, - p: &Point, -) -> Result, error::Unspecified> { - let z = ops.point_z(p); - - // Verify that the point is not at infinity. - ops.elem_verify_is_not_zero(&z)?; - - let x = ops.point_x(p); - let y = ops.point_y(p); - - // We are given Jacobian coordinates (x, y, z). So, we have: - // - // (x/z**2, y/z**3) == (x', y'), - // - // where (x', y') are the affine coordinates. The curve equation is: - // - // y'**2 == x'**3 + a*x' + b == (x'**2 + a)*x' + b - // - // Substituting our Jacobian coordinates, we get: - // - // / y \**2 / / x \**2 \ / x \ - // | ---- | == | | ---- | + a | * | ---- | + b - // \ z**3 / \ \ z**2 / / \ z**2 / - // - // Simplify: - // - // y**2 / x**2 \ x - // ---- == | ---- + a | * ---- + b - // z**6 \ z**4 / z**2 - // - // Multiply both sides by z**6: - // - // z**6 / x**2 \ z**6 - // ---- * y**2 == | ---- + a | * ---- * x + (z**6) * b - // z**6 \ z**4 / z**2 - // - // Simplify: - // - // / x**2 \ - // y**2 == | ---- + a | * z**4 * x + (z**6) * b - // \ z**4 / - // - // Distribute z**4: - // - // / z**4 \ - // y**2 == | ---- * x**2 + z**4 * a | * x + (z**6) * b - // \ z**4 / - // - // Simplify: - // - // y**2 == (x**2 + z**4 * a) * x + (z**6) * b - // - let z2 = ops.elem_squared(&z); - let z4 = ops.elem_squared(&z2); - let z4_a = ops.elem_product(&z4, &ops.a); - let z6 = ops.elem_product(&z4, &z2); - let z6_b = ops.elem_product(&z6, &ops.b); - verify_affine_point_is_on_the_curve_scaled(ops, (&x, &y), &z4_a, &z6_b)?; - Ok(z2) -} - -// Handles the common logic of point-is-on-the-curve checks for both affine and -// Jacobian cases. -// -// When doing the check that the point is on the curve after a computation, -// to avoid fault attacks or mitigate potential bugs, it is better for security -// to use `verify_affine_point_is_on_the_curve` on the affine coordinates, -// because it provides some protection against faults that occur in the -// computation of the inverse of `z`. See the paper and presentation "Fault -// Attacks on Projective-to-Affine Coordinates Conversion" by Diana Maimuţ, -// Cédric Murdica, David Naccache, Mehdi Tibouchi. That presentation concluded -// simply "Check the validity of the result after conversion to affine -// coordinates." (It seems like a good idea to verify that -// z_inv * z == 1 mod q too). -// -// In the case of affine coordinates (x, y), `a_scaled` and `b_scaled` are -// `a` and `b`, respectively. In the case of Jacobian coordinates (x, y, z), -// the computation and comparison is the same, except `a_scaled` and `b_scaled` -// are (z**4 * a) and (z**6 * b), respectively. Thus, performance is another -// reason to prefer doing the check on the affine coordinates, as Jacobian -// computation requires 3 extra multiplications and 2 extra squarings. -// -// An example of a fault attack that isn't mitigated by a point-on-the-curve -// check after multiplication is given in "Sign Change Fault Attacks On -// Elliptic Curve Cryptosystems" by Johannes Blömer, Martin Otto, and -// Jean-Pierre Seifert. -fn verify_affine_point_is_on_the_curve_scaled( - ops: &CommonOps, - (x, y): (&Elem, &Elem), - a_scaled: &Elem, - b_scaled: &Elem, -) -> Result<(), error::Unspecified> { - let lhs = ops.elem_squared(y); - - let mut rhs = ops.elem_squared(x); - ops.elem_add(&mut rhs, a_scaled); - ops.elem_mul(&mut rhs, x); - ops.elem_add(&mut rhs, b_scaled); - - if ops.elems_are_equal(&lhs, &rhs) != LimbMask::True { - return Err(error::Unspecified); - } - - Ok(()) -} - -pub(crate) fn key_pair_from_pkcs8( - curve: &'static ec::Curve, - template: &pkcs8::Template, - input: untrusted::Input, - cpu_features: cpu::Features, -) -> Result { - let (ec_private_key, _) = pkcs8::unwrap_key(template, pkcs8::Version::V1Only, input)?; - let (private_key, public_key) = - ec_private_key.read_all(error::KeyRejected::invalid_encoding(), |input| { - // https://tools.ietf.org/html/rfc5915#section-3 - der::nested( - input, - der::Tag::Sequence, - error::KeyRejected::invalid_encoding(), - |input| key_pair_from_pkcs8_(template, input), - ) - })?; - key_pair_from_bytes(curve, private_key, public_key, cpu_features) -} - -fn key_pair_from_pkcs8_<'a>( - template: &pkcs8::Template, - input: &mut untrusted::Reader<'a>, -) -> Result<(untrusted::Input<'a>, untrusted::Input<'a>), error::KeyRejected> { - let version = der::small_nonnegative_integer(input) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - if version != 1 { - return Err(error::KeyRejected::version_not_supported()); - } - - let private_key = der::expect_tag_and_get_value(input, der::Tag::OctetString) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - - // [0] parameters (optional). - if input.peek(u8::from(der::Tag::ContextSpecificConstructed0)) { - let actual_alg_id = - der::expect_tag_and_get_value(input, der::Tag::ContextSpecificConstructed0) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - if actual_alg_id != template.curve_oid() { - return Err(error::KeyRejected::wrong_algorithm()); - } - } - - // [1] publicKey. The RFC says it is optional, but we require it - // to be present. - let public_key = der::nested( - input, - der::Tag::ContextSpecificConstructed1, - error::Unspecified, - der::bit_string_with_no_unused_bits, - ) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - - Ok((private_key, public_key)) -} - -pub(crate) fn key_pair_from_bytes( - curve: &'static ec::Curve, - private_key_bytes: untrusted::Input, - public_key_bytes: untrusted::Input, - cpu_features: cpu::Features, -) -> Result { - let seed = ec::Seed::from_bytes(curve, private_key_bytes, cpu_features) - .map_err(|error::Unspecified| error::KeyRejected::invalid_component())?; - - let r = ec::KeyPair::derive(seed) - .map_err(|error::Unspecified| error::KeyRejected::unexpected_error())?; - if public_key_bytes != *r.public_key().as_ref() { - return Err(error::KeyRejected::inconsistent_components()); - } - - Ok(r) -} - -pub mod curve; -pub mod ecdh; -pub mod ecdsa; - -pub mod ops; - -mod private_key; -mod public_key; diff --git a/src/ec_17/suite_b/curve.rs b/src/ec_17/suite_b/curve.rs deleted file mode 100644 index e0ff4f4617..0000000000 --- a/src/ec_17/suite_b/curve.rs +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2015-2017 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -use crate::{ec, error, rand}; - -/// A key agreement algorithm. -macro_rules! suite_b_curve { - ( $NAME:ident, $bits:expr, $private_key_ops:expr, $id:expr, - $check_private_key_bytes:ident, $generate_private_key:ident, - $public_from_private:ident) => { - /// Public keys are encoding in uncompressed form using the - /// Octet-String-to-Elliptic-Curve-Point algorithm in - /// [SEC 1: Elliptic Curve Cryptography, Version 2.0]. Public keys are - /// validated during key agreement according to - /// [NIST Special Publication 800-56A, revision 2] and Appendix B.3 of - /// the NSA's [Suite B Implementer's Guide to NIST SP 800-56A]. - /// - /// [SEC 1: Elliptic Curve Cryptography, Version 2.0]: - /// http://www.secg.org/sec1-v2.pdf - /// [NIST Special Publication 800-56A, revision 2]: - /// http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar2.pdf - /// [Suite B Implementer's Guide to NIST SP 800-56A]: - /// https://github.com/briansmith/ring/blob/main/doc/ecdh.pdf - pub static $NAME: ec::Curve = ec::Curve { - public_key_len: 1 + (2 * (($bits + 7) / 8)), - elem_scalar_seed_len: ($bits + 7) / 8, - id: $id, - check_private_key_bytes: $check_private_key_bytes, - generate_private_key: $generate_private_key, - public_from_private: $public_from_private, - }; - - fn $check_private_key_bytes(bytes: &[u8]) -> Result<(), error::Unspecified> { - debug_assert_eq!(bytes.len(), $bits / 8); - ec::suite_b::private_key::check_scalar_big_endian_bytes($private_key_ops, bytes) - } - - fn $generate_private_key( - rng: &dyn rand::SecureRandom, - out: &mut [u8], - ) -> Result<(), error::Unspecified> { - ec::suite_b::private_key::generate_private_scalar_bytes($private_key_ops, rng, out) - } - - fn $public_from_private( - public_out: &mut [u8], - private_key: &ec::Seed, - ) -> Result<(), error::Unspecified> { - ec::suite_b::private_key::public_from_private($private_key_ops, public_out, private_key) - } - }; -} - -suite_b_curve!( - P256, - 256, - &ec::suite_b::ops::p256::PRIVATE_KEY_OPS, - ec::CurveID::P256, - p256_check_private_key_bytes, - p256_generate_private_key, - p256_public_from_private -); - -suite_b_curve!( - P384, - 384, - &ec::suite_b::ops::p384::PRIVATE_KEY_OPS, - ec::CurveID::P384, - p384_check_private_key_bytes, - p384_generate_private_key, - p384_public_from_private -); diff --git a/src/ec_17/suite_b/ecdh.rs b/src/ec_17/suite_b/ecdh.rs deleted file mode 100644 index aae31d2369..0000000000 --- a/src/ec_17/suite_b/ecdh.rs +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2015-2017 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! ECDH key agreement using the P-256 and P-384 curves. - -use super::{ops::*, private_key::*, public_key::*}; -use crate::{agreement, ec, error}; - -/// A key agreement algorithm. -macro_rules! ecdh { - ( $NAME:ident, $curve:expr, $name_str:expr, $private_key_ops:expr, - $public_key_ops:expr, $ecdh:ident ) => { - #[doc = "ECDH using the NSA Suite B"] - #[doc=$name_str] - #[doc = "curve."] - /// - /// Public keys are encoding in uncompressed form using the - /// Octet-String-to-Elliptic-Curve-Point algorithm in - /// [SEC 1: Elliptic Curve Cryptography, Version 2.0]. Public keys are - /// validated during key agreement according to - /// [NIST Special Publication 800-56A, revision 2] and Appendix B.3 of - /// the NSA's [Suite B Implementer's Guide to NIST SP 800-56A]. - /// - /// [SEC 1: Elliptic Curve Cryptography, Version 2.0]: - /// http://www.secg.org/sec1-v2.pdf - /// [NIST Special Publication 800-56A, revision 2]: - /// http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar2.pdf - /// [Suite B Implementer's Guide to NIST SP 800-56A]: - /// https://github.com/briansmith/ring/blob/main/doc/ecdh.pdf - pub static $NAME: agreement::Algorithm = agreement::Algorithm { - curve: $curve, - ecdh: $ecdh, - }; - - fn $ecdh( - out: &mut [u8], - my_private_key: &ec::Seed, - peer_public_key: untrusted::Input, - ) -> Result<(), error::Unspecified> { - ecdh( - $private_key_ops, - $public_key_ops, - out, - my_private_key, - peer_public_key, - ) - } - }; -} - -ecdh!( - ECDH_P256, - &ec::suite_b::curve::P256, - "P-256 (secp256r1)", - &p256::PRIVATE_KEY_OPS, - &p256::PUBLIC_KEY_OPS, - p256_ecdh -); - -ecdh!( - ECDH_P384, - &ec::suite_b::curve::P384, - "P-384 (secp384r1)", - &p384::PRIVATE_KEY_OPS, - &p384::PUBLIC_KEY_OPS, - p384_ecdh -); - -fn ecdh( - private_key_ops: &PrivateKeyOps, - public_key_ops: &PublicKeyOps, - out: &mut [u8], - my_private_key: &ec::Seed, - peer_public_key: untrusted::Input, -) -> Result<(), error::Unspecified> { - // The NIST SP 800-56Ar2 steps are from section 5.7.1.2 Elliptic Curve - // Cryptography Cofactor Diffie-Hellman (ECC CDH) Primitive. - // - // The "NSA Guide" steps are from section 3.1 of the NSA guide, "Ephemeral - // Unified Model." - - // NSA Guide Step 1 is handled separately. - - // NIST SP 800-56Ar2 5.6.2.2.2. - // NSA Guide Step 2. - // - // `parse_uncompressed_point` verifies that the point is not at infinity - // and that it is on the curve, using the Partial Public-Key Validation - // Routine. - let peer_public_key = parse_uncompressed_point(public_key_ops, peer_public_key)?; - - // NIST SP 800-56Ar2 Step 1. - // NSA Guide Step 3 (except point at infinity check). - // - // Note that the cofactor (h) is one since we only support prime-order - // curves, so we can safely ignore the cofactor. - // - // It is impossible for the result to be the point at infinity because our - // private key is in the range [1, n) and the curve has prime order and - // `parse_uncompressed_point` verified that the peer public key is on the - // curve and not at infinity. However, since the standards require the - // check, we do it using `assert!`. - // - // NIST SP 800-56Ar2 defines "Destroy" thusly: "In this Recommendation, to - // destroy is an action applied to a key or a piece of secret data. After - // a key or a piece of secret data is destroyed, no information about its - // value can be recovered." We interpret "destroy" somewhat liberally: we - // assume that since we throw away the values to be destroyed, no - // information about their values can be recovered. This doesn't meet the - // NSA guide's explicit requirement to "zeroize" them though. - // TODO: this only needs common scalar ops - let my_private_key = private_key_as_scalar(private_key_ops, my_private_key); - let product = private_key_ops.point_mul(&my_private_key, &peer_public_key); - - // NIST SP 800-56Ar2 Steps 2, 3, 4, and 5. - // NSA Guide Steps 3 (point at infinity check) and 4. - // - // Again, we have a pretty liberal interpretation of the NIST's spec's - // "Destroy" that doesn't meet the NSA requirement to "zeroize." - // `big_endian_affine_from_jacobian` verifies that the result is not at - // infinity and also does an extra check to verify that the point is on - // the curve. - big_endian_affine_from_jacobian(private_key_ops, Some(out), None, &product) - - // NSA Guide Step 5 & 6 are deferred to the caller. Again, we have a - // pretty liberal interpretation of the NIST's spec's "Destroy" that - // doesn't meet the NSA requirement to "zeroize." -} - -#[cfg(test)] -mod tests { - use super::super::ops; - use crate::{agreement, ec, limb, test}; - - static SUPPORTED_SUITE_B_ALGS: [(&str, &agreement::Algorithm, &ec::Curve, &ops::CommonOps); 2] = [ - ( - "P-256", - &agreement::ECDH_P256, - &super::super::curve::P256, - &super::super::ops::p256::COMMON_OPS, - ), - ( - "P-384", - &agreement::ECDH_P384, - &super::super::curve::P384, - &super::super::ops::p384::COMMON_OPS, - ), - ]; - - #[test] - fn test_agreement_suite_b_ecdh_generate() { - // Generates a string of bytes 0x00...00, which will always result in - // a scalar value of zero. - let random_00 = test::rand::FixedByteRandom { byte: 0x00 }; - - // Generates a string of bytes 0xFF...FF, which will be larger than the - // group order of any curve that is supported. - let random_ff = test::rand::FixedByteRandom { byte: 0xff }; - - for &(_, alg, curve, ops) in SUPPORTED_SUITE_B_ALGS.iter() { - // Test that the private key value zero is rejected and that - // `generate` gives up after a while of only getting zeros. - assert!(agreement::EphemeralPrivateKey::generate(alg, &random_00).is_err()); - - // Test that the private key value larger than the group order is - // rejected and that `generate` gives up after a while of only - // getting values larger than the group order. - assert!(agreement::EphemeralPrivateKey::generate(alg, &random_ff).is_err()); - - // Test that a private key value exactly equal to the group order - // is rejected and that `generate` gives up after a while of only - // getting that value from the PRNG. - let mut n_bytes = [0u8; ec::SCALAR_MAX_BYTES]; - let num_bytes = curve.elem_scalar_seed_len; - limb::big_endian_from_limbs(&ops.n.limbs[..ops.num_limbs], &mut n_bytes[..num_bytes]); - { - let n_bytes = &mut n_bytes[..num_bytes]; - let rng = test::rand::FixedSliceRandom { bytes: n_bytes }; - assert!(agreement::EphemeralPrivateKey::generate(alg, &rng).is_err()); - } - - // Test that a private key value exactly equal to the group order - // minus 1 is accepted. - let mut n_minus_1_bytes = n_bytes; - { - let n_minus_1_bytes = &mut n_minus_1_bytes[..num_bytes]; - n_minus_1_bytes[num_bytes - 1] -= 1; - let rng = test::rand::FixedSliceRandom { - bytes: n_minus_1_bytes, - }; - let key = agreement::EphemeralPrivateKey::generate(alg, &rng).unwrap(); - assert_eq!(&n_minus_1_bytes[..], key.bytes()); - } - - // Test that n + 1 also fails. - let mut n_plus_1_bytes = n_bytes; - { - let n_plus_1_bytes = &mut n_plus_1_bytes[..num_bytes]; - n_plus_1_bytes[num_bytes - 1] += 1; - let rng = test::rand::FixedSliceRandom { - bytes: n_plus_1_bytes, - }; - assert!(agreement::EphemeralPrivateKey::generate(alg, &rng).is_err()); - } - - // Test recovery from initial RNG failure. The first value will be - // n, then n + 1, then zero, the next value will be n - 1, which - // will be accepted. - { - let bytes = [ - &n_bytes[..num_bytes], - &n_plus_1_bytes[..num_bytes], - &[0u8; ec::SCALAR_MAX_BYTES][..num_bytes], - &n_minus_1_bytes[..num_bytes], - ]; - let rng = test::rand::FixedSliceSequenceRandom { - bytes: &bytes, - current: core::cell::UnsafeCell::new(0), - }; - let key = agreement::EphemeralPrivateKey::generate(alg, &rng).unwrap(); - assert_eq!(&n_minus_1_bytes[..num_bytes], key.bytes()); - } - } - } -} diff --git a/src/ec_17/suite_b/ecdsa.rs b/src/ec_17/suite_b/ecdsa.rs deleted file mode 100644 index 274c991626..0000000000 --- a/src/ec_17/suite_b/ecdsa.rs +++ /dev/null @@ -1,3 +0,0 @@ -mod digest_scalar; -pub mod signing; -pub mod verification; diff --git a/src/ec_17/suite_b/ecdsa/digest_scalar.rs b/src/ec_17/suite_b/ecdsa/digest_scalar.rs deleted file mode 100644 index ed95d4e9b7..0000000000 --- a/src/ec_17/suite_b/ecdsa/digest_scalar.rs +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2015-2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! ECDSA Signatures using the P-256 and P-384 curves. - -use crate::{ - digest, - ec::suite_b::ops::*, - limb::{self, LIMB_BYTES}, -}; - -/// Calculate the digest of `msg` using the digest algorithm `digest_alg`. Then -/// convert the digest to a scalar in the range [0, n) as described in -/// NIST's FIPS 186-4 Section 4.2. Note that this is one of the few cases where -/// a `Scalar` is allowed to have the value zero. -/// -/// NIST's FIPS 186-4 4.2 says "When the length of the output of the hash -/// function is greater than N (i.e., the bit length of q), then the leftmost N -/// bits of the hash function output block shall be used in any calculation -/// using the hash function output during the generation or verification of a -/// digital signature." -/// -/// "Leftmost N bits" means "N most significant bits" because we interpret the -/// digest as a bit-endian encoded integer. -/// -/// The NSA guide instead vaguely suggests that we should convert the digest -/// value to an integer and then reduce it mod `n`. However, real-world -/// implementations (e.g. `digest_to_bn` in OpenSSL and `hashToInt` in Go) do -/// what FIPS 186-4 says to do, not what the NSA guide suggests. -/// -/// Why shifting the value right by at most one bit is sufficient: P-256's `n` -/// has its 256th bit set; i.e. 2**255 < n < 2**256. Once we've truncated the -/// digest to 256 bits and converted it to an integer, it will have a value -/// less than 2**256. If the value is larger than `n` then shifting it one bit -/// right will give a value less than 2**255, which is less than `n`. The -/// analogous argument applies for P-384. However, it does *not* apply in -/// general; for example, it doesn't apply to P-521. -pub fn digest_scalar(ops: &ScalarOps, msg: digest::Digest) -> Scalar { - digest_scalar_(ops, msg.as_ref()) -} - -#[cfg(test)] -pub(crate) fn digest_bytes_scalar(ops: &ScalarOps, digest: &[u8]) -> Scalar { - digest_scalar_(ops, digest) -} - -// This is a separate function solely so that we can test specific digest -// values like all-zero values and values larger than `n`. -fn digest_scalar_(ops: &ScalarOps, digest: &[u8]) -> Scalar { - let cops = ops.common; - let num_limbs = cops.num_limbs; - let digest = if digest.len() > num_limbs * LIMB_BYTES { - &digest[..(num_limbs * LIMB_BYTES)] - } else { - digest - }; - - scalar_parse_big_endian_partially_reduced_variable_consttime( - cops, - limb::AllowZero::Yes, - untrusted::Input::from(digest), - ) - .unwrap() -} - -#[cfg(test)] -mod tests { - use super::digest_bytes_scalar; - use crate::{ - digest, - ec::suite_b::ops::*, - limb::{self, LIMB_BYTES}, - test, - }; - - #[test] - fn test() { - test::run( - test_file!("ecdsa_digest_scalar_tests.txt"), - |section, test_case| { - assert_eq!(section, ""); - - let curve_name = test_case.consume_string("Curve"); - let digest_name = test_case.consume_string("Digest"); - let input = test_case.consume_bytes("Input"); - let output = test_case.consume_bytes("Output"); - - let (ops, digest_alg) = match (curve_name.as_str(), digest_name.as_str()) { - ("P-256", "SHA256") => (&p256::PUBLIC_SCALAR_OPS, &digest::SHA256), - ("P-256", "SHA384") => (&p256::PUBLIC_SCALAR_OPS, &digest::SHA384), - ("P-384", "SHA256") => (&p384::PUBLIC_SCALAR_OPS, &digest::SHA256), - ("P-384", "SHA384") => (&p384::PUBLIC_SCALAR_OPS, &digest::SHA384), - _ => { - panic!("Unsupported curve+digest: {}+{}", curve_name, digest_name); - } - }; - - let num_limbs = ops.public_key_ops.common.num_limbs; - assert_eq!(input.len(), digest_alg.output_len()); - assert_eq!( - output.len(), - ops.public_key_ops.common.num_limbs * LIMB_BYTES - ); - - let expected = scalar_parse_big_endian_variable( - ops.public_key_ops.common, - limb::AllowZero::Yes, - untrusted::Input::from(&output), - ) - .unwrap(); - - let actual = digest_bytes_scalar(ops.scalar_ops, &input); - - assert_eq!(actual.limbs[..num_limbs], expected.limbs[..num_limbs]); - - Ok(()) - }, - ); - } -} diff --git a/src/ec_17/suite_b/ecdsa/ecPublicKey_p256_pkcs8_v1_template.der b/src/ec_17/suite_b/ecdsa/ecPublicKey_p256_pkcs8_v1_template.der deleted file mode 100644 index d579082387e02f393f114bb8e0bcdb6bacd2d835..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41 tcmXqLY-eI*Fc4;A*J|@PXUoLM#sOw9GqSVf8e}suGO{QvbYXU4006QS2n+xK diff --git a/src/ec_17/suite_b/ecdsa/ecPublicKey_p384_pkcs8_v1_template.der b/src/ec_17/suite_b/ecdsa/ecPublicKey_p384_pkcs8_v1_template.der deleted file mode 100644 index 76cc36d403744ed0a6e94414c806d54187a49147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 vcmXqL+{VPnU?9N8uGQvo&X$Rhja9pmg+Ym>ah^frY$irV7K4Q;%t;IYu$Bm{ diff --git a/src/ec_17/suite_b/ecdsa/ecdsa_digest_scalar_tests.txt b/src/ec_17/suite_b/ecdsa/ecdsa_digest_scalar_tests.txt deleted file mode 100644 index 2eaed9ae53..0000000000 --- a/src/ec_17/suite_b/ecdsa/ecdsa_digest_scalar_tests.txt +++ /dev/null @@ -1,82 +0,0 @@ -# Test vectors for the conversion of digest values to scalars. - -# Minimum Digest Values. - -Curve = P-256 -Digest = SHA256 -Input = 0000000000000000000000000000000000000000000000000000000000000000 -Output = 0000000000000000000000000000000000000000000000000000000000000000 - -Curve = P-256 -Digest = SHA384 -Input = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Output = 0000000000000000000000000000000000000000000000000000000000000000 - -Curve = P-384 -Digest = SHA256 -Input = 0000000000000000000000000000000000000000000000000000000000000000 -Output = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -Curve = P-384 -Digest = SHA384 -Input = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Output = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -# The truncated digest value is equal to n - 1 (not possible when digest is -# shorter than the curve's scalars). - -Curve = P-256 -Digest = SHA256 -Input = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632550 -Output = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632550 - -Curve = P-256 -Digest = SHA384 -Input = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC63255000000000000000000000000000000000 -Output = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632550 - -Curve = P-384 -Digest = SHA384 -Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52972 -Output = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52972 - -# The truncated digest value is equal to n (not possible when digest is shorter -# than the curve's scalars). - -Curve = P-256 -Digest = SHA256 -Input = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551 -Output = 0000000000000000000000000000000000000000000000000000000000000000 - -Curve = P-256 -Digest = SHA384 -Input = FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC63255100000000000000000000000000000000 -Output = 0000000000000000000000000000000000000000000000000000000000000000 - -Curve = P-384 -Digest = SHA384 -Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973 -Output = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - - -# Maximum digest values. - -Curve = P-256 -Digest = SHA256 -Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -Output = 00000000FFFFFFFF00000000000000004319055258E8617B0C46353D039CDAAE - -Curve = P-256 -Digest = SHA384 -Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -Output = 00000000FFFFFFFF00000000000000004319055258E8617B0C46353D039CDAAE - -Curve = P-384 -Digest = SHA256 -Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -Output = 00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - -Curve = P-384 -Digest = SHA384 -Input = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -Output = 000000000000000000000000000000000000000000000000389CB27E0BC8D220A7E5F24DB74F58851313E695333AD68C diff --git a/src/ec_17/suite_b/ecdsa/ecdsa_sign_asn1_tests.txt b/src/ec_17/suite_b/ecdsa/ecdsa_sign_asn1_tests.txt deleted file mode 100644 index c11195acf2..0000000000 --- a/src/ec_17/suite_b/ecdsa/ecdsa_sign_asn1_tests.txt +++ /dev/null @@ -1,18 +0,0 @@ -# Tests from NIST CAVP 186-4 ECDSA2VS Test Vectors, Signature Generation Test -# http://csrc.nist.gov/groups/STM/cavp/documents/dss/186-3ecdsatestvectors.zip -# -# CAVS 11.2 -# "SigVer" information for "ecdsa_values" -# Curves/SHAs selected: P-224,SHA-224 P-224,SHA-256 P-224,SHA-384 P-224,SHA-512 P-256,SHA-224 P-256,SHA-256 P-256,SHA-384 P-256,SHA-512 P-384,SHA-224 P-384,SHA-256 P-384,SHA-384 P-384,SHA-512 P-521,SHA-224 P-521,SHA-256 P-521,SHA-384 P-521,SHA-512 K-233,SHA-224 K-233,SHA-256 K-233,SHA-384 K-233,SHA-512 K-283,SHA-224 K-283,SHA-256 K-283,SHA-384 K-283,SHA-512 K-409,SHA-224 K-409,SHA-256 K-409,SHA-384 K-409,SHA-512 K-571,SHA-224 K-571,SHA-256 K-571,SHA-384 K-571,SHA-512 B-233,SHA-224 B-233,SHA-256 B-233,SHA-384 B-233,SHA-512 B-283,SHA-224 B-283,SHA-256 B-283,SHA-384 B-283,SHA-512 B-409,SHA-224 B-409,SHA-256 B-409,SHA-384 B-409,SHA-512 BB-571,SHA-224 B-571,SHA-256 B-571,SHA-384 B-571,SHA-512 -# Generated on Tue Aug 16 15:27:42 2011 - -# [P-256,SHA-256] - -Curve = P-256 -Digest = SHA256 -Msg = 5905238877c77421f73e43ee3da6f2d9e2ccad5fc942dcec0cbd25482935faaf416983fe165b1a045ee2bcd2e6dca3bdf46c4310a7461f9a37960ca672d3feb5473e253605fb1ddfd28065b53cb5858a8ad28175bf9bd386a5e471ea7a65c17cc934a9d791e91491eb3754d03799790fe2d308d16146d5c9b0d0debd97d79ce8 -d = 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 -Q = 041ccbe91c075fc7f4f033bfa248db8fccd3565de94bbfb12f3c59ff46c271bf83ce4014c68811f9a21a1fdb2c0e6113e06db7ca93b7404e78dc7ccd5ca89a4ca9 -k = 94a1bbb14b906a61a280f245f9e93c7f3b4a6247824f5d33b9670787642a68de -Sig = 3046022100f3ac8061b514795b8843e3d6629527ed2afd6b1f6a555a7acabb5e6f79c8c2ac0221008bf77819ca05a6b2786c76262bf7371cef97b218e96f175a3ccdda2acc058903 - diff --git a/src/ec_17/suite_b/ecdsa/ecdsa_sign_fixed_tests.txt b/src/ec_17/suite_b/ecdsa/ecdsa_sign_fixed_tests.txt deleted file mode 100644 index c0de4742dd..0000000000 --- a/src/ec_17/suite_b/ecdsa/ecdsa_sign_fixed_tests.txt +++ /dev/null @@ -1,251 +0,0 @@ -# Tests from NIST CAVP 186-4 ECDSA2VS Test Vectors, Signature Generation Test -# http://csrc.nist.gov/groups/STM/cavp/documents/dss/186-3ecdsatestvectors.zip -# -# CAVS 11.2 -# "SigVer" information for "ecdsa_values" -# Curves/SHAs selected: P-224,SHA-224 P-224,SHA-256 P-224,SHA-384 P-224,SHA-512 P-256,SHA-224 P-256,SHA-256 P-256,SHA-384 P-256,SHA-512 P-384,SHA-224 P-384,SHA-256 P-384,SHA-384 P-384,SHA-512 P-521,SHA-224 P-521,SHA-256 P-521,SHA-384 P-521,SHA-512 K-233,SHA-224 K-233,SHA-256 K-233,SHA-384 K-233,SHA-512 K-283,SHA-224 K-283,SHA-256 K-283,SHA-384 K-283,SHA-512 K-409,SHA-224 K-409,SHA-256 K-409,SHA-384 K-409,SHA-512 K-571,SHA-224 K-571,SHA-256 K-571,SHA-384 K-571,SHA-512 B-233,SHA-224 B-233,SHA-256 B-233,SHA-384 B-233,SHA-512 B-283,SHA-224 B-283,SHA-256 B-283,SHA-384 B-283,SHA-512 B-409,SHA-224 B-409,SHA-256 B-409,SHA-384 B-409,SHA-512 BB-571,SHA-224 B-571,SHA-256 B-571,SHA-384 B-571,SHA-512 -# Generated on Tue Aug 16 15:27:42 2011 - -# [P-256,SHA-256] - -Curve = P-256 -Digest = SHA256 -Msg = 5905238877c77421f73e43ee3da6f2d9e2ccad5fc942dcec0cbd25482935faaf416983fe165b1a045ee2bcd2e6dca3bdf46c4310a7461f9a37960ca672d3feb5473e253605fb1ddfd28065b53cb5858a8ad28175bf9bd386a5e471ea7a65c17cc934a9d791e91491eb3754d03799790fe2d308d16146d5c9b0d0debd97d79ce8 -d = 519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464 -Q = 041ccbe91c075fc7f4f033bfa248db8fccd3565de94bbfb12f3c59ff46c271bf83ce4014c68811f9a21a1fdb2c0e6113e06db7ca93b7404e78dc7ccd5ca89a4ca9 -k = 94a1bbb14b906a61a280f245f9e93c7f3b4a6247824f5d33b9670787642a68de -Sig = f3ac8061b514795b8843e3d6629527ed2afd6b1f6a555a7acabb5e6f79c8c2ac8bf77819ca05a6b2786c76262bf7371cef97b218e96f175a3ccdda2acc058903 - -Curve = P-256 -Digest = SHA256 -Msg = c35e2f092553c55772926bdbe87c9796827d17024dbb9233a545366e2e5987dd344deb72df987144b8c6c43bc41b654b94cc856e16b96d7a821c8ec039b503e3d86728c494a967d83011a0e090b5d54cd47f4e366c0912bc808fbb2ea96efac88fb3ebec9342738e225f7c7c2b011ce375b56621a20642b4d36e060db4524af1 -d = 0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813 -Q = 04e266ddfdc12668db30d4ca3e8f7749432c416044f2d2b8c10bf3d4012aeffa8abfa86404a2e9ffe67d47c587ef7a97a7f456b863b4d02cfc6928973ab5b1cb39 -k = 6d3e71882c3b83b156bb14e0ab184aa9fb728068d3ae9fac421187ae0b2f34c6 -Sig = 976d3a4e9d23326dc0baa9fa560b7c4e53f42864f508483a6473b6a11079b2db1b766e9ceb71ba6c01dcd46e0af462cd4cfa652ae5017d4555b8eeefe36e1932 - -Curve = P-256 -Digest = SHA256 -Msg = 3c054e333a94259c36af09ab5b4ff9beb3492f8d5b4282d16801daccb29f70fe61a0b37ffef5c04cd1b70e85b1f549a1c4dc672985e50f43ea037efa9964f096b5f62f7ffdf8d6bfb2cc859558f5a393cb949dbd48f269343b5263dcdb9c556eca074f2e98e6d94c2c29a677afaf806edf79b15a3fcd46e7067b7669f83188ee -d = e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef -Q = 0474ccd8a62fba0e667c50929a53f78c21b8ff0c3c737b0b40b1750b2302b0bde829074e21f3a0ef88b9efdf10d06aa4c295cc1671f758ca0e4cd108803d0f2614 -k = ad5e887eb2b380b8d8280ad6e5ff8a60f4d26243e0124c2f31a297b5d0835de2 -Sig = 35fb60f5ca0f3ca08542fb3cc641c8263a2cab7a90ee6a5e1583fac2bb6f6bd1ee59d81bc9db1055cc0ed97b159d8784af04e98511d0a9a407b99bb292572e96 - -Curve = P-256 -Digest = SHA256 -Msg = 0989122410d522af64ceb07da2c865219046b4c3d9d99b01278c07ff63eaf1039cb787ae9e2dd46436cc0415f280c562bebb83a23e639e476a02ec8cff7ea06cd12c86dcc3adefbf1a9e9a9b6646c7599ec631b0da9a60debeb9b3e19324977f3b4f36892c8a38671c8e1cc8e50fcd50f9e51deaf98272f9266fc702e4e57c30 -d = a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07 -Q = 04322f80371bf6e044bc49391d97c1714ab87f990b949bc178cb7c43b7c22d89e13c15d54a5cc6b9f09de8457e873eb3deb1fceb54b0b295da6050294fae7fd999 -k = 24fc90e1da13f17ef9fe84cc96b9471ed1aaac17e3a4bae33a115df4e5834f18 -Sig = d7c562370af617b581c84a2468cc8bd50bb1cbf322de41b7887ce07c0e5884cab46d9f2d8c4bf83546ff178f1d78937c008d64e8ecc5cbb825cb21d94d670d89 - -Curve = P-256 -Digest = SHA256 -Msg = dc66e39f9bbfd9865318531ffe9207f934fa615a5b285708a5e9c46b7775150e818d7f24d2a123df3672fff2094e3fd3df6fbe259e3989dd5edfcccbe7d45e26a775a5c4329a084f057c42c13f3248e3fd6f0c76678f890f513c32292dd306eaa84a59abe34b16cb5e38d0e885525d10336ca443e1682aa04a7af832b0eee4e7 -d = 53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d -Q = 041bcec4570e1ec2436596b8ded58f60c3b1ebc6a403bc5543040ba829630572448af62a4c683f096b28558320737bf83b9959a46ad2521004ef74cf85e67494e1 -k = 5d833e8d24cc7a402d7ee7ec852a3587cddeb48358cea71b0bedb8fabe84e0c4 -Sig = 18caaf7b663507a8bcd992b836dec9dc5703c080af5e51dfa3a9a7c38718260477c68928ac3b88d985fb43fb615fb7ff45c18ba5c81af796c613dfa98352d29c - -Curve = P-256 -Digest = SHA256 -Msg = 600974e7d8c5508e2c1aab0783ad0d7c4494ab2b4da265c2fe496421c4df238b0be25f25659157c8a225fb03953607f7df996acfd402f147e37aee2f1693e3bf1c35eab3ae360a2bd91d04622ea47f83d863d2dfecb618e8b8bdc39e17d15d672eee03bb4ce2cc5cf6b217e5faf3f336fdd87d972d3a8b8a593ba85955cc9d71 -d = 4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d -Q = 04a32e50be3dae2c8ba3f5e4bdae14cf7645420d425ead94036c22dd6c4fc59e00d623bf641160c289d6742c6257ae6ba574446dd1d0e74db3aaa80900b78d4ae9 -k = e18f96f84dfa2fd3cdfaec9159d4c338cd54ad314134f0b31e20591fc238d0ab -Sig = 8524c5024e2d9a73bde8c72d9129f57873bbad0ed05215a372a84fdbc78f2e68d18c2caf3b1072f87064ec5e8953f51301cada03469c640244760328eb5a05cb - -Curve = P-256 -Digest = SHA256 -Msg = dfa6cb9b39adda6c74cc8b2a8b53a12c499ab9dee01b4123642b4f11af336a91a5c9ce0520eb2395a6190ecbf6169c4cba81941de8e76c9c908eb843b98ce95e0da29c5d4388040264e05e07030a577cc5d176387154eabae2af52a83e85c61c7c61da930c9b19e45d7e34c8516dc3c238fddd6e450a77455d534c48a152010b -d = 78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab -Q = 048bcfe2a721ca6d753968f564ec4315be4857e28bef1908f61a366b1f03c974790f67576a30b8e20d4232d8530b52fb4c89cbc589ede291e499ddd15fe870ab96 -k = 295544dbb2da3da170741c9b2c6551d40af7ed4e891445f11a02b66a5c258a77 -Sig = c5a186d72df452015480f7f338970bfe825087f05c0088d95305f87aacc9b25484a58f9e9d9e735344b316b1aa1ab5185665b85147dc82d92e969d7bee31ca30 - -Curve = P-256 -Digest = SHA256 -Msg = 51d2547cbff92431174aa7fc7302139519d98071c755ff1c92e4694b58587ea560f72f32fc6dd4dee7d22bb7387381d0256e2862d0644cdf2c277c5d740fa089830eb52bf79d1e75b8596ecf0ea58a0b9df61e0c9754bfcd62efab6ea1bd216bf181c5593da79f10135a9bc6e164f1854bc8859734341aad237ba29a81a3fc8b -d = 80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a -Q = 04a88bc8430279c8c0400a77d751f26c0abc93e5de4ad9a4166357952fe041e7672d365a1eef25ead579cc9a069b6abc1b16b81c35f18785ce26a10ba6d1381185 -k = 7c80fd66d62cc076cef2d030c17c0a69c99611549cb32c4ff662475adbe84b22 -Sig = 9d0c6afb6df3bced455b459cc21387e14929392664bb8741a3693a1795ca6902d7f9ddd191f1f412869429209ee3814c75c72fa46a9cccf804a2f5cc0b7e739f - -Curve = P-256 -Digest = SHA256 -Msg = 558c2ac13026402bad4a0a83ebc9468e50f7ffab06d6f981e5db1d082098065bcff6f21a7a74558b1e8612914b8b5a0aa28ed5b574c36ac4ea5868432a62bb8ef0695d27c1e3ceaf75c7b251c65ddb268696f07c16d2767973d85beb443f211e6445e7fe5d46f0dce70d58a4cd9fe70688c035688ea8c6baec65a5fc7e2c93e8 -d = 5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881 -Q = 041bc487570f040dc94196c9befe8ab2b6de77208b1f38bdaae28f9645c4d2bc3aec81602abd8345e71867c8210313737865b8aa186851e1b48eaca140320f5d8f -k = 2e7625a48874d86c9e467f890aaa7cd6ebdf71c0102bfdcfa24565d6af3fdce9 -Sig = 2f9e2b4e9f747c657f705bffd124ee178bbc5391c86d056717b140c153570fd9f5413bfd85949da8d83de83ab0d19b2986613e224d1901d76919de23ccd03199 - -Curve = P-256 -Digest = SHA256 -Msg = 4d55c99ef6bd54621662c3d110c3cb627c03d6311393b264ab97b90a4b15214a5593ba2510a53d63fb34be251facb697c973e11b665cb7920f1684b0031b4dd370cb927ca7168b0bf8ad285e05e9e31e34bc24024739fdc10b78586f29eff94412034e3b606ed850ec2c1900e8e68151fc4aee5adebb066eb6da4eaa5681378e -d = f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308 -Q = 04b8188bd68701fc396dab53125d4d28ea33a91daf6d21485f4770f6ea8c565dde423f058810f277f8fe076f6db56e9285a1bf2c2a1dae145095edd9c04970bc4a -k = 62f8665fd6e26b3fa069e85281777a9b1f0dfd2c0b9f54a086d0c109ff9fd615 -Sig = 1cc628533d0004b2b20e7f4baad0b8bb5e0673db159bbccf92491aef61fc9620880e0bbf82a8cf818ed46ba03cf0fc6c898e36fca36cc7fdb1d2db7503634430 - -Curve = P-256 -Digest = SHA256 -Msg = f8248ad47d97c18c984f1f5c10950dc1404713c56b6ea397e01e6dd925e903b4fadfe2c9e877169e71ce3c7fe5ce70ee4255d9cdc26f6943bf48687874de64f6cf30a012512e787b88059bbf561162bdcc23a3742c835ac144cc14167b1bd6727e940540a9c99f3cbb41fb1dcb00d76dda04995847c657f4c19d303eb09eb48a -d = b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906 -Q = 0451f99d2d52d4a6e734484a018b7ca2f895c2929b6754a3a03224d07ae61166ce4737da963c6ef7247fb88d19f9b0c667cac7fe12837fdab88c66f10d3c14cad1 -k = 72b656f6b35b9ccbc712c9f1f3b1a14cbbebaec41c4bca8da18f492a062d6f6f -Sig = 9886ae46c1415c3bc959e82b760ad760aab66885a84e620aa339fdf102465c422bf3a80bc04faa35ebecc0f4864ac02d349f6f126e0f988501b8d3075409a26c - -Curve = P-256 -Digest = SHA256 -Msg = 3b6ee2425940b3d240d35b97b6dcd61ed3423d8e71a0ada35d47b322d17b35ea0472f35edd1d252f87b8b65ef4b716669fc9ac28b00d34a9d66ad118c9d94e7f46d0b4f6c2b2d339fd6bcd351241a387cc82609057048c12c4ec3d85c661975c45b300cb96930d89370a327c98b67defaa89497aa8ef994c77f1130f752f94a4 -d = d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7 -Q = 048fb287f0202ad57ae841aea35f29b2e1d53e196d0ddd9aec24813d64c0922fb71f6daff1aa2dd2d6d3741623eecb5e7b612997a1039aab2e5cf2de969cfea573 -k = d926fe10f1bfd9855610f4f5a3d666b1a149344057e35537373372ead8b1a778 -Sig = 490efd106be11fc365c7467eb89b8d39e15d65175356775deab211163c2504cb644300fc0da4d40fb8c6ead510d14f0bd4e1321a469e9c0a581464c7186b7aa7 - -Curve = P-256 -Digest = SHA256 -Msg = c5204b81ec0a4df5b7e9fda3dc245f98082ae7f4efe81998dcaa286bd4507ca840a53d21b01e904f55e38f78c3757d5a5a4a44b1d5d4e480be3afb5b394a5d2840af42b1b4083d40afbfe22d702f370d32dbfd392e128ea4724d66a3701da41ae2f03bb4d91bb946c7969404cb544f71eb7a49eb4c4ec55799bda1eb545143a7 -d = b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c -Q = 0468229b48c2fe19d3db034e4c15077eb7471a66031f28a980821873915298ba76303e8ee3742a893f78b810991da697083dd8f11128c47651c27a56740a80c24c -k = e158bf4a2d19a99149d9cdb879294ccb7aaeae03d75ddd616ef8ae51a6dc1071 -Sig = e67a9717ccf96841489d6541f4f6adb12d17b59a6bef847b6183b8fcf16a32eb9ae6ba6d637706849a6a9fc388cf0232d85c26ea0d1fe7437adb48de58364333 - -Curve = P-256 -Digest = SHA256 -Msg = 72e81fe221fb402148d8b7ab03549f1180bcc03d41ca59d7653801f0ba853add1f6d29edd7f9abc621b2d548f8dbf8979bd16608d2d8fc3260b4ebc0dd42482481d548c7075711b5759649c41f439fad69954956c9326841ea6492956829f9e0dc789f73633b40f6ac77bcae6dfc7930cfe89e526d1684365c5b0be2437fdb01 -d = 54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1 -Q = 040a7dbb8bf50cb605eb2268b081f26d6b08e012f952c4b70a5a1e6e7d46af98bbf26dd7d799930062480849962ccf5004edcfd307c044f4e8f667c9baa834eeae -k = 646fe933e96c3b8f9f507498e907fdd201f08478d0202c752a7c2cfebf4d061a -Sig = b53ce4da1aa7c0dc77a1896ab716b921499aed78df725b1504aba1597ba0c64bd7c246dc7ad0e67700c373edcfdd1c0a0495fc954549ad579df6ed1438840851 - -Curve = P-256 -Digest = SHA256 -Msg = 21188c3edd5de088dacc1076b9e1bcecd79de1003c2414c3866173054dc82dde85169baa77993adb20c269f60a5226111828578bcc7c29e6e8d2dae81806152c8ba0c6ada1986a1983ebeec1473a73a04795b6319d48662d40881c1723a706f516fe75300f92408aa1dc6ae4288d2046f23c1aa2e54b7fb6448a0da922bd7f34 -d = 34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1 -Q = 04105d22d9c626520faca13e7ced382dcbe93498315f00cc0ac39c4821d0d737376c47f3cbbfa97dfcebe16270b8c7d5d3a5900b888c42520d751e8faf3b401ef4 -k = a6f463ee72c9492bc792fe98163112837aebd07bab7a84aaed05be64db3086f4 -Sig = 542c40a18140a6266d6f0286e24e9a7bad7650e72ef0e2131e629c076d9626634f7f65305e24a6bbb5cff714ba8f5a2cee5bdc89ba8d75dcbf21966ce38eb66f - -# [P-384,SHA-384] - -Curve = P-384 -Digest = SHA384 -Msg = 6b45d88037392e1371d9fd1cd174e9c1838d11c3d6133dc17e65fa0c485dcca9f52d41b60161246039e42ec784d49400bffdb51459f5de654091301a09378f93464d52118b48d44b30d781eb1dbed09da11fb4c818dbd442d161aba4b9edc79f05e4b7e401651395b53bd8b5bd3f2aaa6a00877fa9b45cadb8e648550b4c6cbe -d = 201b432d8df14324182d6261db3e4b3f46a8284482d52e370da41e6cbdf45ec2952f5db7ccbce3bc29449f4fb080ac97 -Q = 04c2b47944fb5de342d03285880177ca5f7d0f2fcad7678cce4229d6e1932fcac11bfc3c3e97d942a3c56bf34123013dbf37257906a8223866eda0743c519616a76a758ae58aee81c5fd35fbf3a855b7754a36d4a0672df95d6c44a81cf7620c2d -k = dcedabf85978e090f733c6e16646fa34df9ded6e5ce28c6676a00f58a25283db8885e16ce5bf97f917c81e1f25c9c771 -Sig = 50835a9251bad008106177ef004b091a1e4235cd0da84fff54542b0ed755c1d6f251609d14ecf18f9e1ddfe69b946e320475f3d30c6463b646e8d3bf2455830314611cbde404be518b14464fdb195fdcc92eb222e61f426a4a592c00a6a89721 - -Curve = P-384 -Digest = SHA384 -Msg = d768f41e6e8ec2125d6cf5786d1ba96668ac6566c5cdbbe407f7f2051f3ad6b1acdbfe13edf0d0a86fa110f405406b69085219b5a234ebdb93153241f785d45811b3540d1c37424cc7194424787a51b79679266484c787fb1ded6d1a26b9567d5ea68f04be416caf3be9bd2cafa208fe2a9e234d3ae557c65d3fe6da4cb48da4 -d = 23d9f4ea6d87b7d6163d64256e3449255db14786401a51daa7847161bf56d494325ad2ac8ba928394e01061d882c3528 -Q = 045d42d6301c54a438f65970bae2a098cbc567e98840006e356221966c86d82e8eca515bca850eaa3cd41f175f03a0cbfd4aef5a0ceece95d382bd70ab5ce1cb77408bae42b51a08816d5e5e1d3da8c18fcc95564a752730b0aabea983ccea4e2e -k = 67ba379366049008593eac124f59ab017358892ee0c063d38f3758bb849fd25d867c3561563cac1532a323b228dc0890 -Sig = fb318f4cb1276282bb43f733a7fb7c567ce94f4d02924fc758635ab2d1107108bf159b85db080cdc3b30fbb5400016f3588e3d7af5da03eae255ecb1813100d95edc243476b724b22db8e85377660d7645ddc1c2c2ee4eaea8b683dbe22f86ca - -Curve = P-384 -Digest = SHA384 -Msg = 6af6652e92a17b7898e40b6776fabaf0d74cf88d8f0ebfa6088309cbe09fac472eeac2aa8ea96b8c12e993d14c93f8ef4e8b547afe7ae5e4f3973170b35deb3239898918c70c1056332c3f894cd643d2d9b93c2561aac069577bbab45803250a31cd62226cab94d8cba7261dce9fe88c210c212b54329d76a273522c8ba91ddf -d = b5f670e98d8befc46f6f51fb2997069550c2a52ebfb4e5e25dd905352d9ef89eed5c2ecd16521853aadb1b52b8c42ae6 -Q = 0444ffb2a3a95e12d87c72b5ea0a8a7cb89f56b3bd46342b2303608d7216301c21b5d2921d80b6628dc512ccb84e2fc278e4c1002f1828abaec768cadcb7cf42fbf93b1709ccae6df5b134c41fae2b9a188bfbe1eccff0bd348517d7227f2071a6 -k = 229e67638f712f57bea4c2b02279d5ccad1e7c9e201c77f6f01aeb81ea90e62b44b2d2107fd66d35e56608fff65e28e4 -Sig = b11db592e4ebc75b6472b879b1d8ce57452c615aef20f67a280f8bca9b11a30ad4ac9d69541258c7dd5d0b4ab8dd7d494eb51db8004e46d438359abf060a9444616cb46b4f99c9a05b53ba6df02e914c9c0b6cc3a9791d804d2e4c0984dab1cc - -Curve = P-384 -Digest = SHA384 -Msg = b96d74b2265dd895d94e25092fb9262dc4f2f7a328a3c0c3da134b2d0a4e2058ca994e3445c5ff4f812738e1b0c0f7a126486942a12e674a21f22d0886d68df2375f41685d694d487a718024933a7c4306f33f1a4267d469c530b0fed4e7dea520a19dd68bf0203cc87cad652260ed43b7b23f6ed140d3085875190191a0381a -d = de5975d8932533f092e76295ed6b23f10fc5fba48bfb82c6cc714826baf0126813247f8bd51d5738503654ab22459976 -Q = 04f1fabafc01fec7e96d982528d9ef3a2a18b7fe8ae0fa0673977341c7ae4ae8d8d3d67420343d013a984f5f61da29ae381a31cf902c46343d01b2ebb614bc789c313b5f91f9302ad9418e9c797563e2fa3d44500f47b4e26ad8fdec1a816d1dcf -k = fc5940e661542436f9265c34bce407eff6364bd471aa79b90c906d923e15c9ed96eea4e86f3238ea86161d13b7d9359d -Sig = c2fbdd6a56789024082173725d797ef9fd6accb6ae664b7260f9e83cb8ab2490428c8b9c52e153612295432fec4d59cd8056c5bb57f41f73082888b234fcda320a33250b5da012ba1fdb4924355ae679012d81d2c08fc0f8634c708a4833232f - -Curve = P-384 -Digest = SHA384 -Msg = 7cec7480a037ff40c232c1d2d6e8cd4c080bbeecdaf3886fccc9f129bb6d202c316eca76c8ad4e76079afe622f833a16f4907e817260c1fa68b10c7a151a37eb8c036b057ed4652c353db4b4a34b37c9a2b300fb5f5fcfb8aa8adae13db359160f70a9241546140e550af0073468683377e6771b6508327408c245d78911c2cc -d = 11e0d470dc31fab0f5722f87b74a6c8d7414115e58ceb38bfcdced367beac3adbf1fe9ba5a04f72e978b1eb54597eabc -Q = 041950166989164cbfd97968c7e8adb6fbca1873ebef811ea259eb48b7d584627f0e6d6c64defe23cbc95236505a252aa141ef424b5cb076d4e32accd9250ea75fcf4ffd81814040c050d58c0a29b06be11edf67c911b403e418b7277417e52906 -k = e56904028226eb04f8d071e3f9cefec91075a81ca0fa87b44cae148fe1ce9827b5d1910db2336d0eb9813ddba3e4d7b5 -Sig = c38ef30f55624e8935680c29f8c24824877cf48ffc0ef015e62de1068893353030d1193bf9d34237d7ce6ba92c98b0fe651b8c3d5c9d5b936d300802a06d82ad54f7b1ba4327b2f031c0c5b0cb215ad4354edc7f932d934e877dfa1cf51b13fe - -Curve = P-384 -Digest = SHA384 -Msg = 00ce978603229710345c9ad7c1c2dba3596b196528eea25bd822d43ca8f76a024e29217703dd0652c8a615284fc3edcc1c5ad1c8d5a8521c8e104c016a24e50c2e25066dcb56596f913b872767e3627aa3e55ec812e9fdac7c2f1beade83aef093e24c9c953982adf431a776880ae4583be158e11cdab1cbca3ad3a66900213d -d = 5c6bbf9fbcbb7b97c9535f57b431ed1ccae1945b7e8a4f1b032016b07810bd24a9e20055c0e9306650df59ef7e2cd8c2 -Q = 042e01c5b59e619e00b79060a1e8ef695472e23bf9a511fc3d5ed77a334a242557098e40972713732c5291c97adf9cf2cf563e3fe4ad807e803b9e961b08da4dde4cea8925649da0d93221ce4cdceabc6a1db7612180a8c6bef3579c65539b97e9 -k = 03d23f1277b949cb6380211ad9d338e6f76c3eedac95989b91d0243cfb734a54b19bca45a5d13d6a4b9f815d919eea77 -Sig = abab65308f0b79c4f3a9ff28dd490acb0c320434094cef93e75adfe17e5820dc1f77544cfaaacdc8cf9ac8b38e174bef11b783d879a6de054b316af7d56e526c3dce96c85289122e3ad927cfa77bfc50b4a96c97f85b1b8221be2df083ff58fb - -Curve = P-384 -Digest = SHA384 -Msg = 54a255c18692c6162a46add176a0ae8361dcb8948f092d8d7bac83e160431794d3b9812849bf1994bcdcfba56e8540c8a9ee5b93414548f2a653191b6bb28bda8dc70d45cc1b92a489f58a2d54f85766cb3c90de7dd88e690d8ebc9a79987eee1989df35af5e35522f83d85c48dda89863171c8b0bf4853ae28c2ac45c764416 -d = ffc7dedeff8343721f72046bc3c126626c177b0e48e247f44fd61f8469d4d5f0a74147fabaa334495cc1f986ebc5f0b1 -Q = 0451c78c979452edd53b563f63eb3e854a5b23e87f1b2103942b65f77d024471f75c8ce1cc0dfef83292b368112aa5126e313e6aaf09caa3ba30f13072b2134878f14a4a01ee86326cccbff3d079b4df097dc57985e8c8c834a10cb9d766169366 -k = c3de91dbe4f777698773da70dd610ef1a7efe4dc00d734399c7dd100728006a502822a5a7ff9129ffd8adf6c1fc1211a -Sig = f4f477855819ad8b1763f53691b76afbc4a31a638b1e08c293f9bcd55decf797f9913ca128d4b45b2e2ea3e82c6cf5657c26be29569ef95480a6d0c1af49dc10a51a0a8931345e48c0c39498bfb94d62962980b56143a7b41a2fddc8794c1b7f - -Curve = P-384 -Digest = SHA384 -Msg = 692a78f90d4f9d5aee5da536314a78d68c1feabbfe5d1ccea7f6059a66c4b310f8051c411c409ccf6e19a0cbd8b8e100c48317fe8c6d4f8a638b9551ce7ee178020f04f7da3001a0e6855225fb3c9b375e4ed964588a1a41a095f3f476c42d52ffd23ce1702c93b56d4425d3befcf75d0951b6fd5c05b05455bdaf205fe70ca2 -d = adca364ef144a21df64b163615e8349cf74ee9dbf728104215c532073a7f74e2f67385779f7f74ab344cc3c7da061cf6 -Q = 04ef948daae68242330a7358ef73f23b56c07e37126266db3fa6eea233a04a9b3e4915233dd6754427cd4b71b75854077d009453ef1828eaff9e17c856d4fc1895ab60051312c3e1db1e3766566438b2990cbf9945c2545619e3e0145bc6a79004 -k = a2da3fae2e6da3cf11b49861afb34fba357fea89f54b35ce5ed7434ae09103fe53e2be75b93fc579fedf919f6d5e407e -Sig = dda994b9c428b57e9f8bbaebba0d682e3aac6ed828e3a1e99a7fc4c804bff8df151137f539c7389d80e23d9f3ee497bfa0d6b10ceffd0e1b29cf784476f9173ba6ecd2cfc7929725f2d6e24e0db5a4721683640eaa2bbe151fb57560f9ce594b - -Curve = P-384 -Digest = SHA384 -Msg = 3b309bb912ab2a51681451ed18ad79e95d968abc35423a67036a02af92f575a0c89f1b668afe22c7037ad1199e757a8f06b281c33e9a40bab69c9874e0bb680b905d909b9dc24a9fe89bb3d7f7d47082b25093c59754f8c19d1f81f30334a8cdd50a3cb72f96d4b3c305e60a439a7e93aeb640dd3c8de37d63c60fb469c2d3ed -d = 39bea008ec8a217866dcbdb1b93da34d1d3e851d011df9ef44b7828b3453a54aa70f1df9932170804eacd207e4f7e91d -Q = 045709ec4305a9c3271c304face6c148142490b827a73a4c17affcfd01fffd7eaa65d2fdedfa2419fc64ed910823513fafb083cda1cf3be6371b6c06e729ea6299213428db57119347247ec1fcd44204386cc0bca3f452d9d864b39efbfc89d6b2 -k = 3c90cc7b6984056f570542a51cbe497ce4c11aeae8fc35e8fd6a0d9adeb650e8644f9d1d5e4341b5adc81e27f284c08f -Sig = d13646895afb1bfd1953551bb922809c95ad65d6abe94eb3719c899aa1f6dba6b01222c7f283900fe98628b7597b6ea64a9a38afda04c0a6b0058943b679bd02205b14d0f3d49b8f31aac289129780cdb1c555def8c3f9106b478729e0c7efaa - -Curve = P-384 -Digest = SHA384 -Msg = f072b72b8783289463da118613c43824d11441dba364c289de03ff5fab3a6f60e85957d8ff211f1cb62fa90216fb727106f692e5ae0844b11b710e5a12c69df3ed895b94e8769ecd15ff433762d6e8e94d8e6a72645b213b0231344e2c968056766c5dd6b5a5df41971858b85e99afbf859400f839b42cd129068efabeea4a26 -d = e849cf948b241362e3e20c458b52df044f2a72deb0f41c1bb0673e7c04cdd70811215059032b5ca3cc69c345dcce4cf7 -Q = 0406c037a0cbf43fdf335dff33de06d34348405353f9fdf2ce1361efba30fb204aea9dbd2e30da0a10fd2d876188371be6360d38f3940e34679204b98fbf70b8a4d97f25443e46d0807ab634ed5891ad864dd7703557aa933cd380e26eea662a43 -k = 32386b2593c85e877b70e5e5495936f65dc49553caef1aa6cc14d9cd370c442a0ccfab4c0da9ec311b67913b1b575a9d -Sig = 5886078d3495767e330c7507b7ca0fa07a50e59912a416d89f0ab1aa4e88153d6eaf00882d1b4aa64153153352d853b52cc10023bf1bf8ccfd14b06b82cc2114449a352389c8ff9f6f78cdc4e32bde69f3869da0e17f691b329682ae7a36e1aa - -Curve = P-384 -Digest = SHA384 -Msg = cf4945350be8133b575c4ad6c9585e0b83ff1ed17989b6cd6c71b41b5264e828b4e115995b1ae77528e7e9002ac1b5669064442645929f9d7dd70927cb93f95edeb73e8624f4bc897ec4c2c7581cb626916f29b2d6e6c2fba8c59a71e30754b459d81b912a12798182bcff4019c7bdfe929cc769bcc2414befe7d2906add4271 -d = d89607475d509ef23dc9f476eae4280c986de741b63560670fa2bd605f5049f1972792c0413a5b3b4b34e7a38b70b7ca -Q = 0449a1c631f31cf5c45b2676b1f130cbf9be683d0a50dffae0d147c1e9913ab1090c6529a84f47ddc7cf025921b771355a1e207eece62f2bcc6bdabc1113158145170be97469a2904eaaa93aad85b86a19719207f3e423051f5b9cbbe2754eefcb -k = 78613c570c8d33b7dd1bd1561d87e36282e8cf4843e7c344a2b2bb6a0da94756d670eeaffe434f7ae7c780f7cf05ca08 -Sig = 66f92b39aa3f4aeb9e2dc03ac3855406fa3ebbab0a6c88a78d7a03482f0c9868d7b78bc081ede0947c7f37bf193074bae5c64ed98d7f3701193f25dd237d59c91c0da6e26215e0889d82e6d3e416693f8d58843cf30ab10ab8d0edd9170b53ad - -Curve = P-384 -Digest = SHA384 -Msg = d9b5cf0b50416573ff3c63133275a18394dd4326be2041e8d97e6e4e3855a4a177e9d26dfd223fe8aa74564edb49bd72de19916fb6f001f44530d5c18e2c332bce1b7415df5927ece5f3824f34d174b963136b53aef1fb78fb0c06a201a40b2db38e4d8216fc1e392a798c8ab4b3a314496b7f1087804ebfa89bf96e9cdb80c0 -d = 083e7152734adf342520ae377087a223688de2899b10cfcb34a0b36bca500a4dfa530e2343e6a39da7ae1eb0862b4a0d -Q = 0470a0f16b6c61172659b027ed19b18fd8f57bd28dc0501f207bd6b0bb065b5671cf3dd1ed13d388dcf6ccc766597aa6044f845bf01c3c3f6126a7368c3454f51425801ee0b72e63fb6799b4420bfdebe3e37c7246db627cc82c09654979c700bb -k = 28096ababe29a075fbdf894709a20d0fdedb01ed3eeacb642a33a0da6aed726e13caf6cf206792ec359f0c9f9b567552 -Sig = ee2923f9b9999ea05b5e57f505bed5c6ba0420def42c6fa90eef7a6ef770786525546de27cdeb2f8586f8f29fb4ee67c50ef923fb217c4cf65a48b94412fda430fac685f0da7bd574557c6c50f5b22e0c8354d99f2c2f2c2691f252f93c7d84a - -Curve = P-384 -Digest = SHA384 -Msg = 9e4042d8438a405475b7dab1cd783eb6ce1d1bffa46ac9dfda622b23ac31057b922eced8e2ed7b3241efeafd7c9ab372bf16230f7134647f2956fb793989d3c885a5ae064e85ed971b64f5f561e7ddb79d49aa6ebe727c671c67879b794554c04de0e05d68264855745ef3c9567bd646d5c5f8728b797c181b6b6a876e167663 -d = 63578d416215aff2cc78f9b926d4c7740a77c142944e104aa7422b19a616898262d46a8a942d5e8d5db135ee8b09a368 -Q = 04cadbacef4406099316db2ce3206adc636c2bb0a835847ed7941efb02862472f3150338f13f4860d47f39b7e098f0a390752ad0f22c9c264336cde11bbc95d1816ed4d1b1500db6b8dce259a42832e613c31178c2c7995206a62e201ba108f570 -k = 7b69c5d5b4d05c9950dc94c27d58403b4c52c004b80a80418ad3a89aabc5d34f21926729e76afd280cc8ee88c9805a2a -Sig = db054addb6161ee49c6ce2e4d646d7670754747b6737ca8516e9d1e87859937c3ef9b1d2663e10d7e4bd00ec85b7a97afcc504e0f00ef29587e4bc22faada4db30e2cb1ac552680a65785ae87beb666c792513f2be7a3180fc544296841a0e27 - -Curve = P-384 -Digest = SHA384 -Msg = 0b14a7484a40b68a3ce1273b8a48b8fdb65ba900d98541c4bbd07b97e31bcc4c85545a03e9deab3c563f47a036ff60d0361684ba241b5aa68bb46f440da22181ee328a011de98eff34ba235ec10612b07bdfa6b3dc4ccc5e82d3a8d057e1862fef3def5a1804696f84699fda2ec4175a54a4d08bcb4f0406fdac4eddadf5e29b -d = ed4df19971658b74868800b3b81bc877807743b25c65740f1d6377542afe2c6427612c840ada31a8eb794718f37c7283 -Q = 0433093a0568757e8b58df5b72ea5fe5bf26e6f7aeb541b4c6a8c189c93721749bcaceccf2982a2f0702586a9f812fc66febe320d09e1f0662189d50b85a20403b821ac0d000afdbf66a0a33f304726c69e354d81c50b94ba3a5250efc31319cd1 -k = d9b4cd1bdfa83e608289634dbfcee643f07315baf743fc91922880b55a2feda3b38ddf6040d3ba10985cd1285fc690d5 -Sig = 009c74063e206a4259b53decff5445683a03f44fa67252b76bd3581081c714f882f882df915e97dbeab061fa8b3cc4e7d40e09d3468b46699948007e8f59845766dbf694b9c62066890dd055c0cb9a0caf0aa611fb9f466ad0bbb00dbe29d7eb - -Curve = P-384 -Digest = SHA384 -Msg = 0e646c6c3cc0f9fdedef934b7195fe3837836a9f6f263968af95ef84cd035750f3cdb649de745c874a6ef66b3dd83b66068b4335bc0a97184182e3965c722b3b1aee488c3620adb835a8140e199f4fc83a88b02881816b366a09316e25685217f9221157fc05b2d8d2bc855372183da7af3f0a14148a09def37a332f8eb40dc9 -d = e9c7e9a79618d6ff3274da1abd0ff3ed0ec1ae3b54c3a4fd8d68d98fb04326b7633fc637e0b195228d0edba6bb1468fb -Q = 04a39ac353ca787982c577aff1e8601ce192aa90fd0de4c0ed627f66a8b6f02ae51315543f72ffc1c48a7269b25e7c289a9064a507b66b340b6e0e0d5ffaa67dd20e6dafc0ea6a6faee1635177af256f9108a22e9edf736ab4ae8e96dc207b1fa9 -k = b094cb3a5c1440cfab9dc56d0ec2eff00f2110dea203654c70757254aa5912a7e73972e607459b1f4861e0b08a5cc763 -Sig = ee82c0f90501136eb0dc0e459ad17bf3be1b1c8b8d05c60068a9306a346326ff7344776a95f1f7e2e2cf9477130e735caf10b90f203af23b7500e070536e64629ba19245d6ef39aab57fcdb1b73c4c6bf7070c6263544633d3d358c12a178138 diff --git a/src/ec_17/suite_b/ecdsa/signing.rs b/src/ec_17/suite_b/ecdsa/signing.rs deleted file mode 100644 index 5a82b4ff04..0000000000 --- a/src/ec_17/suite_b/ecdsa/signing.rs +++ /dev/null @@ -1,603 +0,0 @@ -// Copyright 2015-2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! ECDSA Signatures using the P-256 and P-384 curves. - -use super::digest_scalar::digest_scalar; -use crate::{ - arithmetic::montgomery::*, - cpu, digest, - ec::{ - self, - suite_b::{ops::*, private_key}, - }, - error, - io::der, - limb, pkcs8, rand, sealed, signature, -}; -/// An ECDSA signing algorithm. -pub struct EcdsaSigningAlgorithm { - curve: &'static ec::Curve, - private_scalar_ops: &'static PrivateScalarOps, - private_key_ops: &'static PrivateKeyOps, - digest_alg: &'static digest::Algorithm, - pkcs8_template: &'static pkcs8::Template, - format_rs: fn(ops: &'static ScalarOps, r: &Scalar, s: &Scalar, out: &mut [u8]) -> usize, - id: AlgorithmID, -} - -#[derive(Debug, Eq, PartialEq)] -enum AlgorithmID { - ECDSA_P256_SHA256_FIXED_SIGNING, - ECDSA_P384_SHA384_FIXED_SIGNING, - ECDSA_P256_SHA256_ASN1_SIGNING, - ECDSA_P384_SHA384_ASN1_SIGNING, -} - -derive_debug_via_id!(EcdsaSigningAlgorithm); - -impl PartialEq for EcdsaSigningAlgorithm { - fn eq(&self, other: &Self) -> bool { - self.id == other.id - } -} - -impl Eq for EcdsaSigningAlgorithm {} - -impl sealed::Sealed for EcdsaSigningAlgorithm {} - -/// An ECDSA key pair, used for signing. -pub struct EcdsaKeyPair { - d: Scalar, - nonce_key: NonceRandomKey, - alg: &'static EcdsaSigningAlgorithm, - public_key: PublicKey, -} - -derive_debug_via_field!(EcdsaKeyPair, stringify!(EcdsaKeyPair), public_key); - -impl EcdsaKeyPair { - /// Generates a new key pair and returns the key pair serialized as a - /// PKCS#8 document. - /// - /// The PKCS#8 document will be a v1 `OneAsymmetricKey` with the public key - /// included in the `ECPrivateKey` structure, as described in - /// [RFC 5958 Section 2] and [RFC 5915]. The `ECPrivateKey` structure will - /// not have a `parameters` field so the generated key is compatible with - /// PKCS#11. - /// - /// [RFC 5915]: https://tools.ietf.org/html/rfc5915 - /// [RFC 5958 Section 2]: https://tools.ietf.org/html/rfc5958#section-2 - pub fn generate_pkcs8( - alg: &'static EcdsaSigningAlgorithm, - rng: &dyn rand::SecureRandom, - ) -> Result { - let private_key = ec::Seed::generate(alg.curve, rng, cpu::features())?; - let public_key = private_key.compute_public_key()?; - Ok(pkcs8::wrap_key( - alg.pkcs8_template, - private_key.bytes_less_safe(), - public_key.as_ref(), - )) - } - - /// Constructs an ECDSA key pair by parsing an unencrypted PKCS#8 v1 - /// id-ecPublicKey `ECPrivateKey` key. - /// - /// The input must be in PKCS#8 v1 format. It must contain the public key in - /// the `ECPrivateKey` structure; `from_pkcs8()` will verify that the public - /// key and the private key are consistent with each other. The algorithm - /// identifier must identify the curve by name; it must not use an - /// "explicit" encoding of the curve. The `parameters` field of the - /// `ECPrivateKey`, if present, must be the same named curve that is in the - /// algorithm identifier in the PKCS#8 header. - pub fn from_pkcs8( - alg: &'static EcdsaSigningAlgorithm, - pkcs8: &[u8], - ) -> Result { - let key_pair = ec::suite_b::key_pair_from_pkcs8( - alg.curve, - alg.pkcs8_template, - untrusted::Input::from(pkcs8), - cpu::features(), - )?; - let rng = rand::SystemRandom::new(); // TODO: make this a parameter. - Self::new(alg, key_pair, &rng) - } - - /// Constructs an ECDSA key pair from the private key and public key bytes - /// - /// The private key must encoded as a big-endian fixed-length integer. For - /// example, a P-256 private key must be 32 bytes prefixed with leading - /// zeros as needed. - /// - /// The public key is encoding in uncompressed form using the - /// Octet-String-to-Elliptic-Curve-Point algorithm in - /// [SEC 1: Elliptic Curve Cryptography, Version 2.0]. - /// - /// This is intended for use by code that deserializes key pairs. It is - /// recommended to use `EcdsaKeyPair::from_pkcs8()` (with a PKCS#8-encoded - /// key) instead. - /// - /// [SEC 1: Elliptic Curve Cryptography, Version 2.0]: - /// http://www.secg.org/sec1-v2.pdf - pub fn from_private_key_and_public_key( - alg: &'static EcdsaSigningAlgorithm, - private_key: &[u8], - public_key: &[u8], - rng: &dyn rand::SecureRandom, - ) -> Result { - let key_pair = ec::suite_b::key_pair_from_bytes( - alg.curve, - untrusted::Input::from(private_key), - untrusted::Input::from(public_key), - cpu::features(), - )?; - Self::new(alg, key_pair, rng) - } - - fn new( - alg: &'static EcdsaSigningAlgorithm, - key_pair: ec::KeyPair, - rng: &dyn rand::SecureRandom, - ) -> Result { - let (seed, public_key) = key_pair.split(); - let d = private_key::private_key_as_scalar(alg.private_key_ops, &seed); - let d = alg - .private_scalar_ops - .scalar_ops - .scalar_product(&d, &alg.private_scalar_ops.oneRR_mod_n); - - let nonce_key = NonceRandomKey::new(alg, &seed, rng)?; - Ok(Self { - d, - nonce_key, - alg, - public_key: PublicKey(public_key), - }) - } - - /// Deprecated. Returns the signature of the `message` using a random nonce - /// generated by `rng`. - pub fn sign( - &self, - rng: &dyn rand::SecureRandom, - message: &[u8], - ) -> Result { - // Step 4 (out of order). - let h = digest::digest(self.alg.digest_alg, message); - - // Incorporate `h` into the nonce to hedge against faulty RNGs. (This - // is not an approved random number generator that is mandated in - // the spec.) - let nonce_rng = NonceRandom { - key: &self.nonce_key, - message_digest: &h, - rng, - }; - - self.sign_digest(h, &nonce_rng) - } - - #[cfg(test)] - fn sign_with_fixed_nonce_during_test( - &self, - rng: &dyn rand::SecureRandom, - message: &[u8], - ) -> Result { - // Step 4 (out of order). - let h = digest::digest(self.alg.digest_alg, message); - - self.sign_digest(h, rng) - } - - /// Returns the signature of message digest `h` using a "random" nonce - /// generated by `rng`. - fn sign_digest( - &self, - h: digest::Digest, - rng: &dyn rand::SecureRandom, - ) -> Result { - // NSA Suite B Implementer's Guide to ECDSA Section 3.4.1: ECDSA - // Signature Generation. - - // NSA Guide Prerequisites: - // - // Prior to generating an ECDSA signature, the signatory shall - // obtain: - // - // 1. an authentic copy of the domain parameters, - // 2. a digital signature key pair (d,Q), either generated by a - // method from Appendix A.1, or obtained from a trusted third - // party, - // 3. assurance of the validity of the public key Q (see Appendix - // A.3), and - // 4. assurance that he/she/it actually possesses the associated - // private key d (see [SP800-89] Section 6). - // - // The domain parameters are hard-coded into the source code. - // `EcdsaKeyPair::generate_pkcs8()` can be used to meet the second - // requirement; otherwise, it is up to the user to ensure the key pair - // was obtained from a trusted private key. The constructors for - // `EcdsaKeyPair` ensure that #3 and #4 are met subject to the caveats - // in SP800-89 Section 6. - - let ops = self.alg.private_scalar_ops; - let scalar_ops = ops.scalar_ops; - let cops = scalar_ops.common; - let private_key_ops = self.alg.private_key_ops; - - for _ in 0..100 { - // XXX: iteration conut? - // Step 1. - let k = private_key::random_scalar(self.alg.private_key_ops, rng)?; - let k_inv = scalar_ops.scalar_inv_to_mont(&k); - - // Step 2. - let r = private_key_ops.point_mul_base(&k); - - // Step 3. - let r = { - let (x, _) = private_key::affine_from_jacobian(private_key_ops, &r)?; - let x = cops.elem_unencoded(&x); - elem_reduced_to_scalar(cops, &x) - }; - if cops.is_zero(&r) { - continue; - } - - // Step 4 is done by the caller. - - // Step 5. - let e = digest_scalar(scalar_ops, h); - - // Step 6. - let s = { - let dr = scalar_ops.scalar_product(&self.d, &r); - let e_plus_dr = scalar_sum(cops, &e, &dr); - scalar_ops.scalar_product(&k_inv, &e_plus_dr) - }; - if cops.is_zero(&s) { - continue; - } - - // Step 7 with encoding. - return Ok(signature::Signature::new(|sig_bytes| { - (self.alg.format_rs)(scalar_ops, &r, &s, sig_bytes) - })); - } - - Err(error::Unspecified) - } -} - -/// Generates an ECDSA nonce in a way that attempts to protect against a faulty -/// `SecureRandom`. -struct NonceRandom<'a> { - key: &'a NonceRandomKey, - message_digest: &'a digest::Digest, - rng: &'a dyn rand::SecureRandom, -} - -impl core::fmt::Debug for NonceRandom<'_> { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - f.debug_struct("NonceRandom").finish() - } -} - -impl rand::sealed::SecureRandom for NonceRandom<'_> { - fn fill_impl(&self, dest: &mut [u8]) -> Result<(), error::Unspecified> { - // Use the same digest algorithm that will be used to digest the - // message. The digest algorithm's output is exactly the right size; - // this is checked below. - // - // XXX(perf): The single iteration will require two digest block - // operations because the amount of data digested is larger than one - // block. - let digest_alg = self.key.0.algorithm(); - let mut ctx = digest::Context::new(digest_alg); - - // Digest the randomized digest of the private key. - let key = self.key.0.as_ref(); - ctx.update(key); - - // The random value is digested between the key and the message so that - // the key and the message are not directly digested in the same digest - // block. - assert!(key.len() <= digest_alg.block_len() / 2); - { - let mut rand = [0u8; digest::MAX_BLOCK_LEN]; - let rand = &mut rand[..digest_alg.block_len() - key.len()]; - assert!(rand.len() >= dest.len()); - self.rng.fill(rand)?; - ctx.update(rand); - } - - ctx.update(self.message_digest.as_ref()); - - let nonce = ctx.finish(); - - // `copy_from_slice()` panics if the lengths differ, so we don't have - // to separately assert that the lengths are the same. - dest.copy_from_slice(nonce.as_ref()); - - Ok(()) - } -} - -impl<'a> sealed::Sealed for NonceRandom<'a> {} - -struct NonceRandomKey(digest::Digest); - -impl NonceRandomKey { - fn new( - alg: &EcdsaSigningAlgorithm, - seed: &ec::Seed, - rng: &dyn rand::SecureRandom, - ) -> Result { - let mut rand = [0; digest::MAX_OUTPUT_LEN]; - let rand = &mut rand[0..alg.curve.elem_scalar_seed_len]; - - // XXX: `KeyRejected` isn't the right way to model failure of the RNG, - // but to fix that we'd need to break the API by changing the result type. - // TODO: Fix the API in the next breaking release. - rng.fill(rand) - .map_err(|error::Unspecified| error::KeyRejected::rng_failed())?; - - let mut ctx = digest::Context::new(alg.digest_alg); - ctx.update(rand); - ctx.update(seed.bytes_less_safe()); - Ok(Self(ctx.finish())) - } -} - -impl signature::KeyPair for EcdsaKeyPair { - type PublicKey = PublicKey; - - fn public_key(&self) -> &Self::PublicKey { - &self.public_key - } -} - -#[derive(Clone, Copy)] -pub struct PublicKey(ec::PublicKey); - -derive_debug_self_as_ref_hex_bytes!(PublicKey); - -impl AsRef<[u8]> for PublicKey { - fn as_ref(&self) -> &[u8] { - self.0.as_ref() - } -} - -fn format_rs_fixed(ops: &'static ScalarOps, r: &Scalar, s: &Scalar, out: &mut [u8]) -> usize { - let scalar_len = ops.scalar_bytes_len(); - - let (r_out, rest) = out.split_at_mut(scalar_len); - limb::big_endian_from_limbs(&r.limbs[..ops.common.num_limbs], r_out); - - let (s_out, _) = rest.split_at_mut(scalar_len); - limb::big_endian_from_limbs(&s.limbs[..ops.common.num_limbs], s_out); - - 2 * scalar_len -} - -fn format_rs_asn1(ops: &'static ScalarOps, r: &Scalar, s: &Scalar, out: &mut [u8]) -> usize { - // This assumes `a` is not zero since neither `r` or `s` is allowed to be - // zero. - fn format_integer_tlv(ops: &ScalarOps, a: &Scalar, out: &mut [u8]) -> usize { - let mut fixed = [0u8; ec::SCALAR_MAX_BYTES + 1]; - let fixed = &mut fixed[..(ops.scalar_bytes_len() + 1)]; - limb::big_endian_from_limbs(&a.limbs[..ops.common.num_limbs], &mut fixed[1..]); - - // Since `a_fixed_out` is an extra byte long, it is guaranteed to start - // with a zero. - debug_assert_eq!(fixed[0], 0); - - // There must be at least one non-zero byte since `a` isn't zero. - let first_index = fixed.iter().position(|b| *b != 0).unwrap(); - - // If the first byte has its high bit set, it needs to be prefixed with 0x00. - let first_index = if fixed[first_index] & 0x80 != 0 { - first_index - 1 - } else { - first_index - }; - let value = &fixed[first_index..]; - - out[0] = der::Tag::Integer as u8; - - // Lengths less than 128 are encoded in one byte. - assert!(value.len() < 128); - out[1] = value.len() as u8; - - out[2..][..value.len()].copy_from_slice(value); - - 2 + value.len() - } - - out[0] = der::Tag::Sequence as u8; - let r_tlv_len = format_integer_tlv(ops, r, &mut out[2..]); - let s_tlv_len = format_integer_tlv(ops, s, &mut out[2..][r_tlv_len..]); - - // Lengths less than 128 are encoded in one byte. - let value_len = r_tlv_len + s_tlv_len; - assert!(value_len < 128); - out[1] = value_len as u8; - - 2 + value_len -} - -/// Signing of fixed-length (PKCS#11 style) ECDSA signatures using the -/// P-256 curve and SHA-256. -/// -/// See "`ECDSA_*_FIXED` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P256_SHA256_FIXED_SIGNING: EcdsaSigningAlgorithm = EcdsaSigningAlgorithm { - curve: &ec::suite_b::curve::P256, - private_scalar_ops: &p256::PRIVATE_SCALAR_OPS, - private_key_ops: &p256::PRIVATE_KEY_OPS, - digest_alg: &digest::SHA256, - pkcs8_template: &EC_PUBLIC_KEY_P256_PKCS8_V1_TEMPLATE, - format_rs: format_rs_fixed, - id: AlgorithmID::ECDSA_P256_SHA256_FIXED_SIGNING, -}; - -/// Signing of fixed-length (PKCS#11 style) ECDSA signatures using the -/// P-384 curve and SHA-384. -/// -/// See "`ECDSA_*_FIXED` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P384_SHA384_FIXED_SIGNING: EcdsaSigningAlgorithm = EcdsaSigningAlgorithm { - curve: &ec::suite_b::curve::P384, - private_scalar_ops: &p384::PRIVATE_SCALAR_OPS, - private_key_ops: &p384::PRIVATE_KEY_OPS, - digest_alg: &digest::SHA384, - pkcs8_template: &EC_PUBLIC_KEY_P384_PKCS8_V1_TEMPLATE, - format_rs: format_rs_fixed, - id: AlgorithmID::ECDSA_P384_SHA384_FIXED_SIGNING, -}; - -/// Signing of ASN.1 DER-encoded ECDSA signatures using the P-256 curve and -/// SHA-256. -/// -/// See "`ECDSA_*_ASN1` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P256_SHA256_ASN1_SIGNING: EcdsaSigningAlgorithm = EcdsaSigningAlgorithm { - curve: &ec::suite_b::curve::P256, - private_scalar_ops: &p256::PRIVATE_SCALAR_OPS, - private_key_ops: &p256::PRIVATE_KEY_OPS, - digest_alg: &digest::SHA256, - pkcs8_template: &EC_PUBLIC_KEY_P256_PKCS8_V1_TEMPLATE, - format_rs: format_rs_asn1, - id: AlgorithmID::ECDSA_P256_SHA256_ASN1_SIGNING, -}; - -/// Signing of ASN.1 DER-encoded ECDSA signatures using the P-384 curve and -/// SHA-384. -/// -/// See "`ECDSA_*_ASN1` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P384_SHA384_ASN1_SIGNING: EcdsaSigningAlgorithm = EcdsaSigningAlgorithm { - curve: &ec::suite_b::curve::P384, - private_scalar_ops: &p384::PRIVATE_SCALAR_OPS, - private_key_ops: &p384::PRIVATE_KEY_OPS, - digest_alg: &digest::SHA384, - pkcs8_template: &EC_PUBLIC_KEY_P384_PKCS8_V1_TEMPLATE, - format_rs: format_rs_asn1, - id: AlgorithmID::ECDSA_P384_SHA384_ASN1_SIGNING, -}; - -static EC_PUBLIC_KEY_P256_PKCS8_V1_TEMPLATE: pkcs8::Template = pkcs8::Template { - bytes: include_bytes!("ecPublicKey_p256_pkcs8_v1_template.der"), - alg_id_range: core::ops::Range { start: 8, end: 27 }, - curve_id_index: 9, - private_key_index: 0x24, -}; - -static EC_PUBLIC_KEY_P384_PKCS8_V1_TEMPLATE: pkcs8::Template = pkcs8::Template { - bytes: include_bytes!("ecPublicKey_p384_pkcs8_v1_template.der"), - alg_id_range: core::ops::Range { start: 8, end: 24 }, - curve_id_index: 9, - private_key_index: 0x23, -}; - -#[cfg(test)] -mod tests { - use crate::{rand, signature, test}; - - #[test] - fn signature_ecdsa_sign_fixed_test() { - let rng = rand::SystemRandom::new(); - - test::run( - test_file!("ecdsa_sign_fixed_tests.txt"), - |section, test_case| { - assert_eq!(section, ""); - - let curve_name = test_case.consume_string("Curve"); - let digest_name = test_case.consume_string("Digest"); - let msg = test_case.consume_bytes("Msg"); - let d = test_case.consume_bytes("d"); - let q = test_case.consume_bytes("Q"); - let k = test_case.consume_bytes("k"); - - let expected_result = test_case.consume_bytes("Sig"); - - let alg = match (curve_name.as_str(), digest_name.as_str()) { - ("P-256", "SHA256") => &signature::ECDSA_P256_SHA256_FIXED_SIGNING, - ("P-384", "SHA384") => &signature::ECDSA_P384_SHA384_FIXED_SIGNING, - _ => { - panic!("Unsupported curve+digest: {}+{}", curve_name, digest_name); - } - }; - - let private_key = - signature::EcdsaKeyPair::from_private_key_and_public_key(alg, &d, &q, &rng) - .unwrap(); - let rng = test::rand::FixedSliceRandom { bytes: &k }; - - let actual_result = private_key - .sign_with_fixed_nonce_during_test(&rng, &msg) - .unwrap(); - - assert_eq!(actual_result.as_ref(), &expected_result[..]); - - Ok(()) - }, - ); - } - - #[test] - fn signature_ecdsa_sign_asn1_test() { - let rng = rand::SystemRandom::new(); - - test::run( - test_file!("ecdsa_sign_asn1_tests.txt"), - |section, test_case| { - assert_eq!(section, ""); - - let curve_name = test_case.consume_string("Curve"); - let digest_name = test_case.consume_string("Digest"); - let msg = test_case.consume_bytes("Msg"); - let d = test_case.consume_bytes("d"); - let q = test_case.consume_bytes("Q"); - let k = test_case.consume_bytes("k"); - - let expected_result = test_case.consume_bytes("Sig"); - - let alg = match (curve_name.as_str(), digest_name.as_str()) { - ("P-256", "SHA256") => &signature::ECDSA_P256_SHA256_ASN1_SIGNING, - ("P-384", "SHA384") => &signature::ECDSA_P384_SHA384_ASN1_SIGNING, - _ => { - panic!("Unsupported curve+digest: {}+{}", curve_name, digest_name); - } - }; - - let private_key = - signature::EcdsaKeyPair::from_private_key_and_public_key(alg, &d, &q, &rng) - .unwrap(); - let rng = test::rand::FixedSliceRandom { bytes: &k }; - - let actual_result = private_key - .sign_with_fixed_nonce_during_test(&rng, &msg) - .unwrap(); - - assert_eq!(actual_result.as_ref(), &expected_result[..]); - - Ok(()) - }, - ); - } -} diff --git a/src/ec_17/suite_b/ecdsa/verification.rs b/src/ec_17/suite_b/ecdsa/verification.rs deleted file mode 100644 index 2e9f50127d..0000000000 --- a/src/ec_17/suite_b/ecdsa/verification.rs +++ /dev/null @@ -1,347 +0,0 @@ -// Copyright 2015-2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! ECDSA Signatures using the P-256 and P-384 curves. - -use super::digest_scalar::digest_scalar; -use crate::{ - arithmetic::montgomery::*, - digest, - ec::suite_b::{ops::*, public_key::*, verify_jacobian_point_is_on_the_curve}, - error, - io::der, - limb, sealed, signature, -}; - -/// An ECDSA verification algorithm. -pub struct EcdsaVerificationAlgorithm { - ops: &'static PublicScalarOps, - digest_alg: &'static digest::Algorithm, - split_rs: - for<'a> fn( - ops: &'static ScalarOps, - input: &mut untrusted::Reader<'a>, - ) - -> Result<(untrusted::Input<'a>, untrusted::Input<'a>), error::Unspecified>, - id: AlgorithmID, -} - -#[derive(Debug)] -enum AlgorithmID { - ECDSA_P256_SHA256_ASN1, - ECDSA_P256_SHA256_FIXED, - ECDSA_P256_SHA384_ASN1, - ECDSA_P384_SHA256_ASN1, - ECDSA_P384_SHA384_ASN1, - ECDSA_P384_SHA384_FIXED, -} - -derive_debug_via_id!(EcdsaVerificationAlgorithm); - -impl signature::VerificationAlgorithm for EcdsaVerificationAlgorithm { - fn verify( - &self, - public_key: untrusted::Input, - msg: untrusted::Input, - signature: untrusted::Input, - ) -> Result<(), error::Unspecified> { - let e = { - // NSA Guide Step 2: "Use the selected hash function to compute H = - // Hash(M)." - let h = digest::digest(self.digest_alg, msg.as_slice_less_safe()); - - // NSA Guide Step 3: "Convert the bit string H to an integer e as - // described in Appendix B.2." - digest_scalar(self.ops.scalar_ops, h) - }; - - self.verify_digest(public_key, e, signature) - } -} - -impl EcdsaVerificationAlgorithm { - /// This is intentionally not public. - fn verify_digest( - &self, - public_key: untrusted::Input, - e: Scalar, - signature: untrusted::Input, - ) -> Result<(), error::Unspecified> { - // NSA Suite B Implementer's Guide to ECDSA Section 3.4.2. - - let public_key_ops = self.ops.public_key_ops; - let scalar_ops = self.ops.scalar_ops; - - // NSA Guide Prerequisites: - // - // Prior to accepting a verified digital signature as valid the - // verifier shall have: - // - // 1. assurance of the signatory’s claimed identity, - // 2. an authentic copy of the domain parameters, (q, FR, a, b, SEED, - // G, n, h), - // 3. assurance of the validity of the public key, and - // 4. assurance that the claimed signatory actually possessed the - // private key that was used to generate the digital signature at - // the time that the signature was generated. - // - // Prerequisites #1 and #4 are outside the scope of what this function - // can do. Prerequisite #2 is handled implicitly as the domain - // parameters are hard-coded into the source. Prerequisite #3 is - // handled by `parse_uncompressed_point`. - let peer_pub_key = parse_uncompressed_point(public_key_ops, public_key)?; - - let (r, s) = signature.read_all(error::Unspecified, |input| { - (self.split_rs)(scalar_ops, input) - })?; - - // NSA Guide Step 1: "If r and s are not both integers in the interval - // [1, n − 1], output INVALID." - let r = scalar_parse_big_endian_variable(public_key_ops.common, limb::AllowZero::No, r)?; - let s = scalar_parse_big_endian_variable(public_key_ops.common, limb::AllowZero::No, s)?; - - // NSA Guide Step 4: "Compute w = s**−1 mod n, using the routine in - // Appendix B.1." - let w = scalar_ops.scalar_inv_to_mont(&s); - - // NSA Guide Step 5: "Compute u1 = (e * w) mod n, and compute - // u2 = (r * w) mod n." - let u1 = scalar_ops.scalar_product(&e, &w); - let u2 = scalar_ops.scalar_product(&r, &w); - - // NSA Guide Step 6: "Compute the elliptic curve point - // R = (xR, yR) = u1*G + u2*Q, using EC scalar multiplication and EC - // addition. If R is equal to the point at infinity, output INVALID." - let product = twin_mul(self.ops.private_key_ops, &u1, &u2, &peer_pub_key); - - // Verify that the point we computed is on the curve; see - // `verify_affine_point_is_on_the_curve_scaled` for details on why. It - // would be more secure to do the check on the affine coordinates if we - // were going to convert to affine form (again, see - // `verify_affine_point_is_on_the_curve_scaled` for details on why). - // But, we're going to avoid converting to affine for performance - // reasons, so we do the verification using the Jacobian coordinates. - let z2 = verify_jacobian_point_is_on_the_curve(public_key_ops.common, &product)?; - - // NSA Guide Step 7: "Compute v = xR mod n." - // NSA Guide Step 8: "Compare v and r0. If v = r0, output VALID; - // otherwise, output INVALID." - // - // Instead, we use Greg Maxwell's trick to avoid the inversion mod `q` - // that would be necessary to compute the affine X coordinate. - let x = public_key_ops.common.point_x(&product); - fn sig_r_equals_x( - ops: &PublicScalarOps, - r: &Elem, - x: &Elem, - z2: &Elem, - ) -> bool { - let cops = ops.public_key_ops.common; - let r_jacobian = cops.elem_product(z2, r); - let x = cops.elem_unencoded(x); - ops.elem_equals_vartime(&r_jacobian, &x) - } - let mut r = self.ops.scalar_as_elem(&r); - if sig_r_equals_x(self.ops, &r, &x, &z2) { - return Ok(()); - } - if self.ops.elem_less_than(&r, &self.ops.q_minus_n) { - self.ops - .private_key_ops - .common - .elem_add(&mut r, &public_key_ops.common.n); - if sig_r_equals_x(self.ops, &r, &x, &z2) { - return Ok(()); - } - } - - Err(error::Unspecified) - } -} - -impl sealed::Sealed for EcdsaVerificationAlgorithm {} - -fn split_rs_fixed<'a>( - ops: &'static ScalarOps, - input: &mut untrusted::Reader<'a>, -) -> Result<(untrusted::Input<'a>, untrusted::Input<'a>), error::Unspecified> { - let scalar_len = ops.scalar_bytes_len(); - let r = input.read_bytes(scalar_len)?; - let s = input.read_bytes(scalar_len)?; - Ok((r, s)) -} - -fn split_rs_asn1<'a>( - _ops: &'static ScalarOps, - input: &mut untrusted::Reader<'a>, -) -> Result<(untrusted::Input<'a>, untrusted::Input<'a>), error::Unspecified> { - der::nested(input, der::Tag::Sequence, error::Unspecified, |input| { - let r = der::positive_integer(input)?.big_endian_without_leading_zero_as_input(); - let s = der::positive_integer(input)?.big_endian_without_leading_zero_as_input(); - Ok((r, s)) - }) -} - -fn twin_mul( - ops: &PrivateKeyOps, - g_scalar: &Scalar, - p_scalar: &Scalar, - p_xy: &(Elem, Elem), -) -> Point { - // XXX: Inefficient. TODO: implement interleaved wNAF multiplication. - let scaled_g = ops.point_mul_base(g_scalar); - let scaled_p = ops.point_mul(p_scalar, p_xy); - ops.common.point_sum(&scaled_g, &scaled_p) -} - -/// Verification of fixed-length (PKCS#11 style) ECDSA signatures using the -/// P-256 curve and SHA-256. -/// -/// See "`ECDSA_*_FIXED` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P256_SHA256_FIXED: EcdsaVerificationAlgorithm = EcdsaVerificationAlgorithm { - ops: &p256::PUBLIC_SCALAR_OPS, - digest_alg: &digest::SHA256, - split_rs: split_rs_fixed, - id: AlgorithmID::ECDSA_P256_SHA256_FIXED, -}; - -/// Verification of fixed-length (PKCS#11 style) ECDSA signatures using the -/// P-384 curve and SHA-384. -/// -/// See "`ECDSA_*_FIXED` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P384_SHA384_FIXED: EcdsaVerificationAlgorithm = EcdsaVerificationAlgorithm { - ops: &p384::PUBLIC_SCALAR_OPS, - digest_alg: &digest::SHA384, - split_rs: split_rs_fixed, - id: AlgorithmID::ECDSA_P384_SHA384_FIXED, -}; - -/// Verification of ASN.1 DER-encoded ECDSA signatures using the P-256 curve -/// and SHA-256. -/// -/// See "`ECDSA_*_ASN1` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P256_SHA256_ASN1: EcdsaVerificationAlgorithm = EcdsaVerificationAlgorithm { - ops: &p256::PUBLIC_SCALAR_OPS, - digest_alg: &digest::SHA256, - split_rs: split_rs_asn1, - id: AlgorithmID::ECDSA_P256_SHA256_ASN1, -}; - -/// *Not recommended*. Verification of ASN.1 DER-encoded ECDSA signatures using -/// the P-256 curve and SHA-384. -/// -/// In most situations, P-256 should be used only with SHA-256 and P-384 -/// should be used only with SHA-384. However, in some cases, particularly TLS -/// on the web, it is necessary to support P-256 with SHA-384 for compatibility -/// with widely-deployed implementations that do not follow these guidelines. -/// -/// See "`ECDSA_*_ASN1` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P256_SHA384_ASN1: EcdsaVerificationAlgorithm = EcdsaVerificationAlgorithm { - ops: &p256::PUBLIC_SCALAR_OPS, - digest_alg: &digest::SHA384, - split_rs: split_rs_asn1, - id: AlgorithmID::ECDSA_P256_SHA384_ASN1, -}; - -/// *Not recommended*. Verification of ASN.1 DER-encoded ECDSA signatures using -/// the P-384 curve and SHA-256. -/// -/// In most situations, P-256 should be used only with SHA-256 and P-384 -/// should be used only with SHA-384. However, in some cases, particularly TLS -/// on the web, it is necessary to support P-256 with SHA-384 for compatibility -/// with widely-deployed implementations that do not follow these guidelines. -/// -/// See "`ECDSA_*_ASN1` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P384_SHA256_ASN1: EcdsaVerificationAlgorithm = EcdsaVerificationAlgorithm { - ops: &p384::PUBLIC_SCALAR_OPS, - digest_alg: &digest::SHA256, - split_rs: split_rs_asn1, - id: AlgorithmID::ECDSA_P384_SHA256_ASN1, -}; - -/// Verification of ASN.1 DER-encoded ECDSA signatures using the P-384 curve -/// and SHA-384. -/// -/// See "`ECDSA_*_ASN1` Details" in `ring::signature`'s module-level -/// documentation for more details. -pub static ECDSA_P384_SHA384_ASN1: EcdsaVerificationAlgorithm = EcdsaVerificationAlgorithm { - ops: &p384::PUBLIC_SCALAR_OPS, - digest_alg: &digest::SHA384, - split_rs: split_rs_asn1, - id: AlgorithmID::ECDSA_P384_SHA384_ASN1, -}; - -#[cfg(test)] -mod tests { - extern crate alloc; - use super::*; - use crate::test; - use alloc::{vec, vec::Vec}; - - #[test] - fn test_digest_based_test_vectors() { - test::run( - test_file!("../../../../crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt"), - |section, test_case| { - assert_eq!(section, ""); - - let curve_name = test_case.consume_string("Curve"); - - let public_key = { - let mut public_key = vec![0x04]; - public_key.extend(&test_case.consume_bytes("X")); - public_key.extend(&test_case.consume_bytes("Y")); - public_key - }; - - let digest = test_case.consume_bytes("Digest"); - - let sig = { - let mut sig = Vec::new(); - sig.extend(&test_case.consume_bytes("R")); - sig.extend(&test_case.consume_bytes("S")); - sig - }; - - let invalid = test_case.consume_optional_string("Invalid"); - - let alg = match curve_name.as_str() { - "P-256" => &ECDSA_P256_SHA256_FIXED, - "P-384" => &ECDSA_P384_SHA384_FIXED, - _ => { - panic!("Unsupported curve: {}", curve_name); - } - }; - - let digest = super::super::digest_scalar::digest_bytes_scalar( - alg.ops.scalar_ops, - &digest[..], - ); - let actual_result = alg.verify_digest( - untrusted::Input::from(&public_key[..]), - digest, - untrusted::Input::from(&sig[..]), - ); - assert_eq!(actual_result.is_ok(), invalid.is_none()); - - Ok(()) - }, - ); - } -} diff --git a/src/ec_17/suite_b/ops.rs b/src/ec_17/suite_b/ops.rs deleted file mode 100644 index 31fc958877..0000000000 --- a/src/ec_17/suite_b/ops.rs +++ /dev/null @@ -1,1175 +0,0 @@ -// Copyright 2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -use crate::{arithmetic::montgomery::*, c, error, limb::*}; -use core::marker::PhantomData; - -pub use self::elem::*; - -/// A field element, i.e. an element of ℤ/qℤ for the curve's field modulus -/// *q*. -pub type Elem = elem::Elem; - -/// Represents the (prime) order *q* of the curve's prime field. -#[derive(Clone, Copy)] -pub enum Q {} - -/// A scalar. Its value is in [0, n). Zero-valued scalars are forbidden in most -/// contexts. -pub type Scalar = elem::Elem; - -/// Represents the prime order *n* of the curve's group. -#[derive(Clone, Copy)] -pub enum N {} - -pub struct Point { - // The coordinates are stored in a contiguous array, where the first - // `ops.num_limbs` elements are the X coordinate, the next - // `ops.num_limbs` elements are the Y coordinate, and the next - // `ops.num_limbs` elements are the Z coordinate. This layout is dictated - // by the requirements of the nistz256 code. - xyz: [Limb; 3 * MAX_LIMBS], -} - -impl Point { - pub fn new_at_infinity() -> Self { - Self { - xyz: [0; 3 * MAX_LIMBS], - } - } -} - -static ONE: Elem = Elem { - limbs: limbs![1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - m: PhantomData, - encoding: PhantomData, -}; - -/// Operations and values needed by all curve operations. -pub struct CommonOps { - pub num_limbs: usize, - q: Modulus, - pub n: Elem, - - pub a: Elem, // Must be -3 mod q - pub b: Elem, - - // In all cases, `r`, `a`, and `b` may all alias each other. - elem_mul_mont: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb), - elem_sqr_mont: unsafe extern "C" fn(r: *mut Limb, a: *const Limb), - - point_add_jacobian_impl: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb), -} - -impl CommonOps { - #[inline] - pub fn elem_add(&self, a: &mut Elem, b: &Elem) { - let num_limbs = self.num_limbs; - limbs_add_assign_mod( - &mut a.limbs[..num_limbs], - &b.limbs[..num_limbs], - &self.q.p[..num_limbs], - ); - } - - #[inline] - pub fn elems_are_equal(&self, a: &Elem, b: &Elem) -> LimbMask { - limbs_equal_limbs_consttime(&a.limbs[..self.num_limbs], &b.limbs[..self.num_limbs]) - } - - #[inline] - pub fn elem_unencoded(&self, a: &Elem) -> Elem { - self.elem_product(a, &ONE) - } - - #[inline] - pub fn elem_mul(&self, a: &mut Elem, b: &Elem) { - binary_op_assign(self.elem_mul_mont, a, b) - } - - #[inline] - pub fn elem_product( - &self, - a: &Elem, - b: &Elem, - ) -> Elem<<(EA, EB) as ProductEncoding>::Output> - where - (EA, EB): ProductEncoding, - { - mul_mont(self.elem_mul_mont, a, b) - } - - #[inline] - pub fn elem_square(&self, a: &mut Elem) { - unary_op_assign(self.elem_sqr_mont, a); - } - - #[inline] - pub fn elem_squared(&self, a: &Elem) -> Elem { - unary_op(self.elem_sqr_mont, a) - } - - #[inline] - pub fn is_zero(&self, a: &elem::Elem) -> bool { - limbs_are_zero_constant_time(&a.limbs[..self.num_limbs]) == LimbMask::True - } - - pub fn elem_verify_is_not_zero(&self, a: &Elem) -> Result<(), error::Unspecified> { - if self.is_zero(a) { - Err(error::Unspecified) - } else { - Ok(()) - } - } - - pub fn point_sum(&self, a: &Point, b: &Point) -> Point { - let mut r = Point::new_at_infinity(); - unsafe { - (self.point_add_jacobian_impl)(r.xyz.as_mut_ptr(), a.xyz.as_ptr(), b.xyz.as_ptr()) - } - r - } - - pub fn point_x(&self, p: &Point) -> Elem { - let mut r = Elem::zero(); - r.limbs[..self.num_limbs].copy_from_slice(&p.xyz[0..self.num_limbs]); - r - } - - pub fn point_y(&self, p: &Point) -> Elem { - let mut r = Elem::zero(); - r.limbs[..self.num_limbs].copy_from_slice(&p.xyz[self.num_limbs..(2 * self.num_limbs)]); - r - } - - pub fn point_z(&self, p: &Point) -> Elem { - let mut r = Elem::zero(); - r.limbs[..self.num_limbs] - .copy_from_slice(&p.xyz[(2 * self.num_limbs)..(3 * self.num_limbs)]); - r - } -} - -struct Modulus { - p: [Limb; MAX_LIMBS], - rr: [Limb; MAX_LIMBS], -} - -/// Operations on private keys, for ECDH and ECDSA signing. -pub struct PrivateKeyOps { - pub common: &'static CommonOps, - elem_inv_squared: fn(a: &Elem) -> Elem, - point_mul_base_impl: fn(a: &Scalar) -> Point, - point_mul_impl: unsafe extern "C" fn( - r: *mut Limb, // [3][num_limbs] - p_scalar: *const Limb, // [num_limbs] - p_x: *const Limb, // [num_limbs] - p_y: *const Limb, // [num_limbs] - ), -} - -impl PrivateKeyOps { - #[inline(always)] - pub fn point_mul_base(&self, a: &Scalar) -> Point { - (self.point_mul_base_impl)(a) - } - - #[inline(always)] - pub fn point_mul(&self, p_scalar: &Scalar, (p_x, p_y): &(Elem, Elem)) -> Point { - let mut r = Point::new_at_infinity(); - unsafe { - (self.point_mul_impl)( - r.xyz.as_mut_ptr(), - p_scalar.limbs.as_ptr(), - p_x.limbs.as_ptr(), - p_y.limbs.as_ptr(), - ); - } - r - } - - #[inline] - pub fn elem_inverse_squared(&self, a: &Elem) -> Elem { - (self.elem_inv_squared)(a) - } -} - -/// Operations and values needed by all operations on public keys (ECDH -/// agreement and ECDSA verification). -pub struct PublicKeyOps { - pub common: &'static CommonOps, -} - -impl PublicKeyOps { - // The serialized bytes are in big-endian order, zero-padded. The limbs - // of `Elem` are in the native endianness, least significant limb to - // most significant limb. Besides the parsing, conversion, this also - // implements NIST SP 800-56A Step 2: "Verify that xQ and yQ are integers - // in the interval [0, p-1] in the case that q is an odd prime p[.]" - pub fn elem_parse(&self, input: &mut untrusted::Reader) -> Result, error::Unspecified> { - let encoded_value = input.read_bytes(self.common.num_limbs * LIMB_BYTES)?; - let parsed = elem_parse_big_endian_fixed_consttime(self.common, encoded_value)?; - let mut r = Elem::zero(); - // Montgomery encode (elem_to_mont). - // TODO: do something about this. - unsafe { - (self.common.elem_mul_mont)( - r.limbs.as_mut_ptr(), - parsed.limbs.as_ptr(), - self.common.q.rr.as_ptr(), - ) - } - Ok(r) - } -} - -// Operations used by both ECDSA signing and ECDSA verification. In general -// these must be side-channel resistant. -pub struct ScalarOps { - pub common: &'static CommonOps, - - scalar_inv_to_mont_impl: fn(a: &Scalar) -> Scalar, - scalar_mul_mont: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb), -} - -impl ScalarOps { - // The (maximum) length of a scalar, not including any padding. - pub fn scalar_bytes_len(&self) -> usize { - self.common.num_limbs * LIMB_BYTES - } - - /// Returns the modular inverse of `a` (mod `n`). Panics of `a` is zero, - /// because zero isn't invertible. - pub fn scalar_inv_to_mont(&self, a: &Scalar) -> Scalar { - assert!(!self.common.is_zero(a)); - (self.scalar_inv_to_mont_impl)(a) - } - - #[inline] - pub fn scalar_product( - &self, - a: &Scalar, - b: &Scalar, - ) -> Scalar<<(EA, EB) as ProductEncoding>::Output> - where - (EA, EB): ProductEncoding, - { - mul_mont(self.scalar_mul_mont, a, b) - } -} - -/// Operations on public scalars needed by ECDSA signature verification. -pub struct PublicScalarOps { - pub scalar_ops: &'static ScalarOps, - pub public_key_ops: &'static PublicKeyOps, - - // XXX: `PublicScalarOps` shouldn't depend on `PrivateKeyOps`, but it does - // temporarily until `twin_mul` is rewritten. - pub private_key_ops: &'static PrivateKeyOps, - - pub q_minus_n: Elem, -} - -impl PublicScalarOps { - #[inline] - pub fn scalar_as_elem(&self, a: &Scalar) -> Elem { - Elem { - limbs: a.limbs, - m: PhantomData, - encoding: PhantomData, - } - } - - pub fn elem_equals_vartime(&self, a: &Elem, b: &Elem) -> bool { - a.limbs[..self.public_key_ops.common.num_limbs] - == b.limbs[..self.public_key_ops.common.num_limbs] - } - - pub fn elem_less_than(&self, a: &Elem, b: &Elem) -> bool { - let num_limbs = self.public_key_ops.common.num_limbs; - limbs_less_than_limbs_vartime(&a.limbs[..num_limbs], &b.limbs[..num_limbs]) - } -} - -#[allow(non_snake_case)] -pub struct PrivateScalarOps { - pub scalar_ops: &'static ScalarOps, - - pub oneRR_mod_n: Scalar, // 1 * R**2 (mod n). TOOD: Use One. -} - -// This assumes n < q < 2*n. -pub fn elem_reduced_to_scalar(ops: &CommonOps, elem: &Elem) -> Scalar { - let num_limbs = ops.num_limbs; - let mut r_limbs = elem.limbs; - limbs_reduce_once_constant_time(&mut r_limbs[..num_limbs], &ops.n.limbs[..num_limbs]); - Scalar { - limbs: r_limbs, - m: PhantomData, - encoding: PhantomData, - } -} - -pub fn scalar_sum(ops: &CommonOps, a: &Scalar, b: &Scalar) -> Scalar { - let mut r = Scalar::zero(); - unsafe { - LIMBS_add_mod( - r.limbs.as_mut_ptr(), - a.limbs.as_ptr(), - b.limbs.as_ptr(), - ops.n.limbs.as_ptr(), - ops.num_limbs, - ) - } - r -} - -// Returns (`a` squared `squarings` times) * `b`. -fn elem_sqr_mul(ops: &CommonOps, a: &Elem, squarings: usize, b: &Elem) -> Elem { - debug_assert!(squarings >= 1); - let mut tmp = ops.elem_squared(a); - for _ in 1..squarings { - ops.elem_square(&mut tmp); - } - ops.elem_product(&tmp, b) -} - -// Sets `acc` = (`acc` squared `squarings` times) * `b`. -fn elem_sqr_mul_acc(ops: &CommonOps, acc: &mut Elem, squarings: usize, b: &Elem) { - debug_assert!(squarings >= 1); - for _ in 0..squarings { - ops.elem_square(acc); - } - ops.elem_mul(acc, b) -} - -#[inline] -pub fn elem_parse_big_endian_fixed_consttime( - ops: &CommonOps, - bytes: untrusted::Input, -) -> Result, error::Unspecified> { - parse_big_endian_fixed_consttime(ops, bytes, AllowZero::Yes, &ops.q.p[..ops.num_limbs]) -} - -#[inline] -pub fn scalar_parse_big_endian_fixed_consttime( - ops: &CommonOps, - bytes: untrusted::Input, -) -> Result { - parse_big_endian_fixed_consttime(ops, bytes, AllowZero::No, &ops.n.limbs[..ops.num_limbs]) -} - -#[inline] -pub fn scalar_parse_big_endian_variable( - ops: &CommonOps, - allow_zero: AllowZero, - bytes: untrusted::Input, -) -> Result { - let mut r = Scalar::zero(); - parse_big_endian_in_range_and_pad_consttime( - bytes, - allow_zero, - &ops.n.limbs[..ops.num_limbs], - &mut r.limbs[..ops.num_limbs], - )?; - Ok(r) -} - -pub fn scalar_parse_big_endian_partially_reduced_variable_consttime( - ops: &CommonOps, - allow_zero: AllowZero, - bytes: untrusted::Input, -) -> Result { - let mut r = Scalar::zero(); - parse_big_endian_in_range_partially_reduced_and_pad_consttime( - bytes, - allow_zero, - &ops.n.limbs[..ops.num_limbs], - &mut r.limbs[..ops.num_limbs], - )?; - Ok(r) -} - -fn parse_big_endian_fixed_consttime( - ops: &CommonOps, - bytes: untrusted::Input, - allow_zero: AllowZero, - max_exclusive: &[Limb], -) -> Result, error::Unspecified> { - if bytes.len() != ops.num_limbs * LIMB_BYTES { - return Err(error::Unspecified); - } - let mut r = elem::Elem::zero(); - parse_big_endian_in_range_and_pad_consttime( - bytes, - allow_zero, - max_exclusive, - &mut r.limbs[..ops.num_limbs], - )?; - Ok(r) -} - -prefixed_extern! { - fn LIMBS_add_mod( - r: *mut Limb, - a: *const Limb, - b: *const Limb, - m: *const Limb, - num_limbs: c::size_t, - ); -} - -#[cfg(test)] -mod tests { - extern crate alloc; - use super::*; - use crate::test; - use alloc::{format, vec, vec::Vec}; - - const ZERO_SCALAR: Scalar = Scalar { - limbs: [0; MAX_LIMBS], - m: PhantomData, - encoding: PhantomData, - }; - - fn q_minus_n_plus_n_equals_0_test(ops: &PublicScalarOps) { - let cops = ops.scalar_ops.common; - let mut x = ops.q_minus_n; - cops.elem_add(&mut x, &cops.n); - assert!(cops.is_zero(&x)); - } - - #[test] - fn p256_q_minus_n_plus_n_equals_0_test() { - q_minus_n_plus_n_equals_0_test(&p256::PUBLIC_SCALAR_OPS); - } - - #[test] - fn p384_q_minus_n_plus_n_equals_0_test() { - q_minus_n_plus_n_equals_0_test(&p384::PUBLIC_SCALAR_OPS); - } - - #[test] - fn p256_elem_add_test() { - elem_add_test( - &p256::PUBLIC_SCALAR_OPS, - test_file!("ops/p256_elem_sum_tests.txt"), - ); - } - - #[test] - fn p384_elem_add_test() { - elem_add_test( - &p384::PUBLIC_SCALAR_OPS, - test_file!("ops/p384_elem_sum_tests.txt"), - ); - } - - fn elem_add_test(ops: &PublicScalarOps, test_file: test::File) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - - let cops = ops.public_key_ops.common; - let a = consume_elem(cops, test_case, "a"); - let b = consume_elem(cops, test_case, "b"); - let expected_sum = consume_elem(cops, test_case, "r"); - - let mut actual_sum = a; - ops.public_key_ops.common.elem_add(&mut actual_sum, &b); - assert_limbs_are_equal(cops, &actual_sum.limbs, &expected_sum.limbs); - - let mut actual_sum = b; - ops.public_key_ops.common.elem_add(&mut actual_sum, &a); - assert_limbs_are_equal(cops, &actual_sum.limbs, &expected_sum.limbs); - - Ok(()) - }) - } - - // XXX: There's no `p256_sub` in *ring*; it's logic is inlined into - // the point arithmetic functions. Thus, we can't test it. - - #[test] - fn p384_elem_sub_test() { - prefixed_extern! { - fn p384_elem_sub(r: *mut Limb, a: *const Limb, b: *const Limb); - } - elem_sub_test( - &p384::COMMON_OPS, - p384_elem_sub, - test_file!("ops/p384_elem_sum_tests.txt"), - ); - } - - fn elem_sub_test( - ops: &CommonOps, - elem_sub: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb), - test_file: test::File, - ) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - - let a = consume_elem(ops, test_case, "a"); - let b = consume_elem(ops, test_case, "b"); - let r = consume_elem(ops, test_case, "r"); - - let mut actual_difference = Elem::::zero(); - unsafe { - elem_sub( - actual_difference.limbs.as_mut_ptr(), - r.limbs.as_ptr(), - b.limbs.as_ptr(), - ); - } - assert_limbs_are_equal(ops, &actual_difference.limbs, &a.limbs); - - let mut actual_difference = Elem::::zero(); - unsafe { - elem_sub( - actual_difference.limbs.as_mut_ptr(), - r.limbs.as_ptr(), - a.limbs.as_ptr(), - ); - } - assert_limbs_are_equal(ops, &actual_difference.limbs, &b.limbs); - - Ok(()) - }) - } - - // XXX: There's no `p256_div_by_2` in *ring*; it's logic is inlined - // into the point arithmetic functions. Thus, we can't test it. - - #[test] - fn p384_elem_div_by_2_test() { - prefixed_extern! { - fn p384_elem_div_by_2(r: *mut Limb, a: *const Limb); - } - elem_div_by_2_test( - &p384::COMMON_OPS, - p384_elem_div_by_2, - test_file!("ops/p384_elem_div_by_2_tests.txt"), - ); - } - - fn elem_div_by_2_test( - ops: &CommonOps, - elem_div_by_2: unsafe extern "C" fn(r: *mut Limb, a: *const Limb), - test_file: test::File, - ) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - - let a = consume_elem(ops, test_case, "a"); - let r = consume_elem(ops, test_case, "r"); - - let mut actual_result = Elem::::zero(); - unsafe { - elem_div_by_2(actual_result.limbs.as_mut_ptr(), a.limbs.as_ptr()); - } - assert_limbs_are_equal(ops, &actual_result.limbs, &r.limbs); - - Ok(()) - }) - } - - // There is no `nistz256_neg` on other targets. - #[cfg(target_arch = "x86_64")] - #[test] - fn p256_elem_neg_test() { - prefixed_extern! { - fn nistz256_neg(r: *mut Limb, a: *const Limb); - } - elem_neg_test( - &p256::COMMON_OPS, - nistz256_neg, - test_file!("ops/p256_elem_neg_tests.txt"), - ); - } - - #[test] - fn p384_elem_neg_test() { - prefixed_extern! { - fn p384_elem_neg(r: *mut Limb, a: *const Limb); - } - elem_neg_test( - &p384::COMMON_OPS, - p384_elem_neg, - test_file!("ops/p384_elem_neg_tests.txt"), - ); - } - - fn elem_neg_test( - ops: &CommonOps, - elem_neg: unsafe extern "C" fn(r: *mut Limb, a: *const Limb), - test_file: test::File, - ) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - - let a = consume_elem(ops, test_case, "a"); - let b = consume_elem(ops, test_case, "b"); - - // Verify -a == b. - { - let mut actual_result = Elem::::zero(); - unsafe { - elem_neg(actual_result.limbs.as_mut_ptr(), a.limbs.as_ptr()); - } - assert_limbs_are_equal(ops, &actual_result.limbs, &b.limbs); - } - - // Verify -b == a. - { - let mut actual_result = Elem::::zero(); - unsafe { - elem_neg(actual_result.limbs.as_mut_ptr(), b.limbs.as_ptr()); - } - assert_limbs_are_equal(ops, &actual_result.limbs, &a.limbs); - } - - Ok(()) - }) - } - - #[test] - fn p256_elem_mul_test() { - elem_mul_test(&p256::COMMON_OPS, test_file!("ops/p256_elem_mul_tests.txt")); - } - - #[test] - fn p384_elem_mul_test() { - elem_mul_test(&p384::COMMON_OPS, test_file!("ops/p384_elem_mul_tests.txt")); - } - - fn elem_mul_test(ops: &CommonOps, test_file: test::File) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - - let mut a = consume_elem(ops, test_case, "a"); - let b = consume_elem(ops, test_case, "b"); - let r = consume_elem(ops, test_case, "r"); - ops.elem_mul(&mut a, &b); - assert_limbs_are_equal(ops, &a.limbs, &r.limbs); - - Ok(()) - }) - } - - #[test] - fn p256_scalar_mul_test() { - scalar_mul_test( - &p256::SCALAR_OPS, - test_file!("ops/p256_scalar_mul_tests.txt"), - ); - } - - #[test] - fn p384_scalar_mul_test() { - scalar_mul_test( - &p384::SCALAR_OPS, - test_file!("ops/p384_scalar_mul_tests.txt"), - ); - } - - fn scalar_mul_test(ops: &ScalarOps, test_file: test::File) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - let cops = ops.common; - let a = consume_scalar(cops, test_case, "a"); - let b = consume_scalar_mont(cops, test_case, "b"); - let expected_result = consume_scalar(cops, test_case, "r"); - let actual_result = ops.scalar_product(&a, &b); - assert_limbs_are_equal(cops, &actual_result.limbs, &expected_result.limbs); - - Ok(()) - }) - } - - #[test] - fn p256_scalar_square_test() { - prefixed_extern! { - fn p256_scalar_sqr_rep_mont(r: *mut Limb, a: *const Limb, rep: Limb); - } - scalar_square_test( - &p256::SCALAR_OPS, - p256_scalar_sqr_rep_mont, - test_file!("ops/p256_scalar_square_tests.txt"), - ); - } - - // XXX: There's no `p384_scalar_square_test()` because there's no dedicated - // `p384_scalar_sqr_rep_mont()`. - - fn scalar_square_test( - ops: &ScalarOps, - sqr_rep: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, rep: Limb), - test_file: test::File, - ) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - let cops = &ops.common; - let a = consume_scalar(cops, test_case, "a"); - let expected_result = consume_scalar(cops, test_case, "r"); - - { - let mut actual_result: Scalar = Scalar { - limbs: [0; MAX_LIMBS], - m: PhantomData, - encoding: PhantomData, - }; - unsafe { - sqr_rep(actual_result.limbs.as_mut_ptr(), a.limbs.as_ptr(), 1); - } - assert_limbs_are_equal(cops, &actual_result.limbs, &expected_result.limbs); - } - - { - let actual_result = ops.scalar_product(&a, &a); - assert_limbs_are_equal(cops, &actual_result.limbs, &expected_result.limbs); - } - - Ok(()) - }) - } - - #[test] - #[should_panic(expected = "!self.common.is_zero(a)")] - fn p256_scalar_inv_to_mont_zero_panic_test() { - let _ = p256::SCALAR_OPS.scalar_inv_to_mont(&ZERO_SCALAR); - } - - #[test] - #[should_panic(expected = "!self.common.is_zero(a)")] - fn p384_scalar_inv_to_mont_zero_panic_test() { - let _ = p384::SCALAR_OPS.scalar_inv_to_mont(&ZERO_SCALAR); - } - - #[test] - fn p256_point_sum_test() { - point_sum_test( - &p256::PRIVATE_KEY_OPS, - test_file!("ops/p256_point_sum_tests.txt"), - ); - } - - #[test] - fn p384_point_sum_test() { - point_sum_test( - &p384::PRIVATE_KEY_OPS, - test_file!("ops/p384_point_sum_tests.txt"), - ); - } - - fn point_sum_test(ops: &PrivateKeyOps, test_file: test::File) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - - let a = consume_jacobian_point(ops, test_case, "a"); - let b = consume_jacobian_point(ops, test_case, "b"); - let r_expected = consume_point(ops, test_case, "r"); - - let r_actual = ops.common.point_sum(&a, &b); - assert_point_actual_equals_expected(ops, &r_actual, &r_expected); - - Ok(()) - }); - } - - #[test] - fn p256_point_sum_mixed_test() { - prefixed_extern! { - fn p256_point_add_affine( - r: *mut Limb, // [p256::COMMON_OPS.num_limbs*3] - a: *const Limb, // [p256::COMMON_OPS.num_limbs*3] - b: *const Limb, // [p256::COMMON_OPS.num_limbs*2] - ); - } - point_sum_mixed_test( - &p256::PRIVATE_KEY_OPS, - p256_point_add_affine, - test_file!("ops/p256_point_sum_mixed_tests.txt"), - ); - } - - // XXX: There is no `nistz384_point_add_affine()`. - - fn point_sum_mixed_test( - ops: &PrivateKeyOps, - point_add_affine: unsafe extern "C" fn( - r: *mut Limb, // [ops.num_limbs*3] - a: *const Limb, // [ops.num_limbs*3] - b: *const Limb, // [ops.num_limbs*2] - ), - test_file: test::File, - ) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - - let a = consume_jacobian_point(ops, test_case, "a"); - let b = consume_affine_point(ops, test_case, "b"); - let r_expected = consume_point(ops, test_case, "r"); - - let mut r_actual = Point::new_at_infinity(); - unsafe { - point_add_affine(r_actual.xyz.as_mut_ptr(), a.xyz.as_ptr(), b.xy.as_ptr()); - } - - assert_point_actual_equals_expected(ops, &r_actual, &r_expected); - - Ok(()) - }); - } - - #[test] - fn p256_point_double_test() { - prefixed_extern! { - fn p256_point_double( - r: *mut Limb, // [p256::COMMON_OPS.num_limbs*3] - a: *const Limb, // [p256::COMMON_OPS.num_limbs*3] - ); - } - point_double_test( - &p256::PRIVATE_KEY_OPS, - p256_point_double, - test_file!("ops/p256_point_double_tests.txt"), - ); - } - - #[test] - fn p384_point_double_test() { - prefixed_extern! { - fn nistz384_point_double( - r: *mut Limb, // [p384::COMMON_OPS.num_limbs*3] - a: *const Limb, // [p384::COMMON_OPS.num_limbs*3] - ); - } - point_double_test( - &p384::PRIVATE_KEY_OPS, - nistz384_point_double, - test_file!("ops/p384_point_double_tests.txt"), - ); - } - - fn point_double_test( - ops: &PrivateKeyOps, - point_double: unsafe extern "C" fn( - r: *mut Limb, // [ops.num_limbs*3] - a: *const Limb, // [ops.num_limbs*3] - ), - test_file: test::File, - ) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - - let a = consume_jacobian_point(ops, test_case, "a"); - let r_expected = consume_point(ops, test_case, "r"); - - let mut r_actual = Point::new_at_infinity(); - unsafe { - point_double(r_actual.xyz.as_mut_ptr(), a.xyz.as_ptr()); - } - - assert_point_actual_equals_expected(ops, &r_actual, &r_expected); - - Ok(()) - }); - } - - #[test] - fn p256_point_mul_test() { - point_mul_tests( - &p256::PRIVATE_KEY_OPS, - test_file!("ops/p256_point_mul_tests.txt"), - ); - } - - #[test] - fn p384_point_mul_test() { - point_mul_tests( - &p384::PRIVATE_KEY_OPS, - test_file!("ops/p384_point_mul_tests.txt"), - ); - } - - fn point_mul_tests(ops: &PrivateKeyOps, test_file: test::File) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - let p_scalar = consume_scalar(ops.common, test_case, "p_scalar"); - let (x, y) = match consume_point(ops, test_case, "p") { - TestPoint::Infinity => { - panic!("can't be inf."); - } - TestPoint::Affine(x, y) => (x, y), - }; - let expected_result = consume_point(ops, test_case, "r"); - let actual_result = ops.point_mul(&p_scalar, &(x, y)); - assert_point_actual_equals_expected(ops, &actual_result, &expected_result); - Ok(()) - }) - } - - #[test] - fn p256_point_mul_serialized_test() { - point_mul_serialized_test( - &p256::PRIVATE_KEY_OPS, - &p256::PUBLIC_KEY_OPS, - test_file!("ops/p256_point_mul_serialized_tests.txt"), - ); - } - - fn point_mul_serialized_test( - priv_ops: &PrivateKeyOps, - pub_ops: &PublicKeyOps, - test_file: test::File, - ) { - let cops = pub_ops.common; - - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - let p_scalar = consume_scalar(cops, test_case, "p_scalar"); - - let p = test_case.consume_bytes("p"); - let p = super::super::public_key::parse_uncompressed_point( - pub_ops, - untrusted::Input::from(&p), - ) - .expect("valid point"); - - let expected_result = test_case.consume_bytes("r"); - - let product = priv_ops.point_mul(&p_scalar, &p); - - let mut actual_result = vec![4u8; 1 + (2 * (cops.num_limbs * LIMB_BYTES))]; - { - let (x, y) = actual_result[1..].split_at_mut(cops.num_limbs * LIMB_BYTES); - super::super::private_key::big_endian_affine_from_jacobian( - priv_ops, - Some(x), - Some(y), - &product, - ) - .expect("successful encoding"); - } - - assert_eq!(expected_result, actual_result); - - Ok(()) - }) - } - - #[test] - fn p256_point_mul_base_test() { - point_mul_base_tests( - &p256::PRIVATE_KEY_OPS, - test_file!("ops/p256_point_mul_base_tests.txt"), - ); - } - - #[test] - fn p384_point_mul_base_test() { - point_mul_base_tests( - &p384::PRIVATE_KEY_OPS, - test_file!("ops/p384_point_mul_base_tests.txt"), - ); - } - - fn point_mul_base_tests(ops: &PrivateKeyOps, test_file: test::File) { - test::run(test_file, |section, test_case| { - assert_eq!(section, ""); - let g_scalar = consume_scalar(ops.common, test_case, "g_scalar"); - let expected_result = consume_point(ops, test_case, "r"); - let actual_result = ops.point_mul_base(&g_scalar); - assert_point_actual_equals_expected(ops, &actual_result, &expected_result); - Ok(()) - }) - } - - fn assert_point_actual_equals_expected( - ops: &PrivateKeyOps, - actual_point: &Point, - expected_point: &TestPoint, - ) { - let cops = ops.common; - let actual_x = &cops.point_x(actual_point); - let actual_y = &cops.point_y(actual_point); - let actual_z = &cops.point_z(actual_point); - match expected_point { - TestPoint::Infinity => { - let zero = Elem::zero(); - assert_elems_are_equal(cops, actual_z, &zero); - } - TestPoint::Affine(expected_x, expected_y) => { - let zz_inv = ops.elem_inverse_squared(actual_z); - let x_aff = cops.elem_product(actual_x, &zz_inv); - let y_aff = { - let zzzz_inv = cops.elem_squared(&zz_inv); - let zzz_inv = cops.elem_product(actual_z, &zzzz_inv); - cops.elem_product(actual_y, &zzz_inv) - }; - - assert_elems_are_equal(cops, &x_aff, expected_x); - assert_elems_are_equal(cops, &y_aff, expected_y); - } - } - } - - fn consume_jacobian_point( - ops: &PrivateKeyOps, - test_case: &mut test::TestCase, - name: &str, - ) -> Point { - let input = test_case.consume_string(name); - let elems = input.split(", ").collect::>(); - assert_eq!(elems.len(), 3); - let mut p = Point::new_at_infinity(); - consume_point_elem(ops.common, &mut p.xyz, &elems, 0); - consume_point_elem(ops.common, &mut p.xyz, &elems, 1); - consume_point_elem(ops.common, &mut p.xyz, &elems, 2); - p - } - - struct AffinePoint { - xy: [Limb; 2 * MAX_LIMBS], - } - - fn consume_affine_point( - ops: &PrivateKeyOps, - test_case: &mut test::TestCase, - name: &str, - ) -> AffinePoint { - let input = test_case.consume_string(name); - let elems = input.split(", ").collect::>(); - assert_eq!(elems.len(), 2); - let mut p = AffinePoint { - xy: [0; 2 * MAX_LIMBS], - }; - consume_point_elem(ops.common, &mut p.xy, &elems, 0); - consume_point_elem(ops.common, &mut p.xy, &elems, 1); - p - } - - fn consume_point_elem(ops: &CommonOps, limbs_out: &mut [Limb], elems: &[&str], i: usize) { - let bytes = test::from_hex(elems[i]).unwrap(); - let bytes = untrusted::Input::from(&bytes); - let r: Elem = elem_parse_big_endian_fixed_consttime(ops, bytes).unwrap(); - // XXX: “Transmute” this to `Elem` limbs. - limbs_out[(i * ops.num_limbs)..((i + 1) * ops.num_limbs)] - .copy_from_slice(&r.limbs[..ops.num_limbs]); - } - - enum TestPoint { - Infinity, - Affine(Elem, Elem), - } - - fn consume_point(ops: &PrivateKeyOps, test_case: &mut test::TestCase, name: &str) -> TestPoint { - fn consume_point_elem(ops: &CommonOps, elems: &[&str], i: usize) -> Elem { - let bytes = test::from_hex(elems[i]).unwrap(); - let bytes = untrusted::Input::from(&bytes); - let unencoded: Elem = - elem_parse_big_endian_fixed_consttime(ops, bytes).unwrap(); - // XXX: “Transmute” this to `Elem` limbs. - Elem { - limbs: unencoded.limbs, - m: PhantomData, - encoding: PhantomData, - } - } - - let input = test_case.consume_string(name); - if input == "inf" { - return TestPoint::Infinity; - } - let elems = input.split(", ").collect::>(); - assert_eq!(elems.len(), 2); - let x = consume_point_elem(ops.common, &elems, 0); - let y = consume_point_elem(ops.common, &elems, 1); - TestPoint::Affine(x, y) - } - - fn assert_elems_are_equal(ops: &CommonOps, a: &Elem, b: &Elem) { - assert_limbs_are_equal(ops, &a.limbs, &b.limbs) - } - - fn assert_limbs_are_equal( - ops: &CommonOps, - actual: &[Limb; MAX_LIMBS], - expected: &[Limb; MAX_LIMBS], - ) { - if actual[..ops.num_limbs] != expected[..ops.num_limbs] { - let mut actual_s = alloc::string::String::new(); - let mut expected_s = alloc::string::String::new(); - for j in 0..ops.num_limbs { - let formatted = format!("{:016x}", actual[ops.num_limbs - j - 1]); - actual_s.push_str(&formatted); - let formatted = format!("{:016x}", expected[ops.num_limbs - j - 1]); - expected_s.push_str(&formatted); - } - panic!( - "Actual != Expected,\nActual = {}, Expected = {}", - actual_s, expected_s - ); - } - } - - fn consume_elem(ops: &CommonOps, test_case: &mut test::TestCase, name: &str) -> Elem { - let bytes = consume_padded_bytes(ops, test_case, name); - let bytes = untrusted::Input::from(&bytes); - let r: Elem = elem_parse_big_endian_fixed_consttime(ops, bytes).unwrap(); - // XXX: “Transmute” this to an `Elem`. - Elem { - limbs: r.limbs, - m: PhantomData, - encoding: PhantomData, - } - } - - fn consume_scalar(ops: &CommonOps, test_case: &mut test::TestCase, name: &str) -> Scalar { - let bytes = test_case.consume_bytes(name); - let bytes = untrusted::Input::from(&bytes); - scalar_parse_big_endian_variable(ops, AllowZero::Yes, bytes).unwrap() - } - - fn consume_scalar_mont( - ops: &CommonOps, - test_case: &mut test::TestCase, - name: &str, - ) -> Scalar { - let bytes = test_case.consume_bytes(name); - let bytes = untrusted::Input::from(&bytes); - let s = scalar_parse_big_endian_variable(ops, AllowZero::Yes, bytes).unwrap(); - // “Transmute” it to a `Scalar`. - Scalar { - limbs: s.limbs, - m: PhantomData, - encoding: PhantomData, - } - } - - fn consume_padded_bytes( - ops: &CommonOps, - test_case: &mut test::TestCase, - name: &str, - ) -> Vec { - let unpadded_bytes = test_case.consume_bytes(name); - let mut bytes = vec![0; (ops.num_limbs * LIMB_BYTES) - unpadded_bytes.len()]; - bytes.extend(&unpadded_bytes); - bytes - } -} - -mod elem; -pub mod p256; -pub mod p384; diff --git a/src/ec_17/suite_b/ops/elem.rs b/src/ec_17/suite_b/ops/elem.rs deleted file mode 100644 index 32c791a46e..0000000000 --- a/src/ec_17/suite_b/ops/elem.rs +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2017 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -use crate::{ - arithmetic::montgomery::{Encoding, ProductEncoding}, - limb::{Limb, LIMB_BITS}, -}; -use core::marker::PhantomData; - -/// Elements of ℤ/mℤ for some modulus *m*. Elements are always fully reduced -/// with respect to *m*; i.e. the 0 <= x < m for every value x. -#[derive(Clone, Copy)] -pub struct Elem { - // XXX: pub - pub limbs: [Limb; MAX_LIMBS], - - /// The modulus *m* for the ring ℤ/mℤ for which this element is a value. - pub m: PhantomData, - - /// The number of Montgomery factors that need to be canceled out from - /// `value` to get the actual value. - pub encoding: PhantomData, -} - -impl Elem { - // There's no need to convert `value` to the Montgomery domain since - // 0 * R**2 (mod m) == 0, so neither the modulus nor the encoding are needed - // as inputs for constructing a zero-valued element. - pub fn zero() -> Self { - Self { - limbs: [0; MAX_LIMBS], - m: PhantomData, - encoding: PhantomData, - } - } -} - -#[inline] -pub fn mul_mont( - f: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb), - a: &Elem, - b: &Elem, -) -> Elem::Output> -where - (EA, EB): ProductEncoding, -{ - binary_op(f, a, b) -} - -// let r = f(a, b); return r; -#[inline] -pub fn binary_op( - f: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb), - a: &Elem, - b: &Elem, -) -> Elem { - let mut r = Elem { - limbs: [0; MAX_LIMBS], - m: PhantomData, - encoding: PhantomData, - }; - unsafe { f(r.limbs.as_mut_ptr(), a.limbs.as_ptr(), b.limbs.as_ptr()) } - r -} - -// a := f(a, b); -#[inline] -pub fn binary_op_assign( - f: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb), - a: &mut Elem, - b: &Elem, -) { - unsafe { f(a.limbs.as_mut_ptr(), a.limbs.as_ptr(), b.limbs.as_ptr()) } -} - -// let r = f(a); return r; -#[inline] -pub fn unary_op( - f: unsafe extern "C" fn(r: *mut Limb, a: *const Limb), - a: &Elem, -) -> Elem { - let mut r = Elem { - limbs: [0; MAX_LIMBS], - m: PhantomData, - encoding: PhantomData, - }; - unsafe { f(r.limbs.as_mut_ptr(), a.limbs.as_ptr()) } - r -} - -// a := f(a); -#[inline] -pub fn unary_op_assign( - f: unsafe extern "C" fn(r: *mut Limb, a: *const Limb), - a: &mut Elem, -) { - unsafe { f(a.limbs.as_mut_ptr(), a.limbs.as_ptr()) } -} - -// a := f(a, a); -#[inline] -pub fn unary_op_from_binary_op_assign( - f: unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb), - a: &mut Elem, -) { - unsafe { f(a.limbs.as_mut_ptr(), a.limbs.as_ptr(), a.limbs.as_ptr()) } -} - -pub const MAX_LIMBS: usize = (384 + (LIMB_BITS - 1)) / LIMB_BITS; diff --git a/src/ec_17/suite_b/ops/p256.rs b/src/ec_17/suite_b/ops/p256.rs deleted file mode 100644 index 4cff49e938..0000000000 --- a/src/ec_17/suite_b/ops/p256.rs +++ /dev/null @@ -1,333 +0,0 @@ -// Copyright 2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -use super::{ - elem::{binary_op, binary_op_assign}, - elem_sqr_mul, elem_sqr_mul_acc, Modulus, *, -}; -use core::marker::PhantomData; - -macro_rules! p256_limbs { - [ $($limb:expr),+ ] => { - limbs![$($limb),+, 0, 0, 0, 0] - }; -} - -pub static COMMON_OPS: CommonOps = CommonOps { - num_limbs: 256 / LIMB_BITS, - - q: Modulus { - p: p256_limbs![ - 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, - 0xffffffff - ], - rr: p256_limbs![ - 0x00000003, 0x00000000, 0xffffffff, 0xfffffffb, 0xfffffffe, 0xffffffff, 0xfffffffd, - 0x00000004 - ], - }, - - n: Elem { - limbs: p256_limbs![ - 0xfc632551, 0xf3b9cac2, 0xa7179e84, 0xbce6faad, 0xffffffff, 0xffffffff, 0x00000000, - 0xffffffff - ], - m: PhantomData, - encoding: PhantomData, // Unencoded - }, - - a: Elem { - limbs: p256_limbs![ - 0xfffffffc, 0xffffffff, 0xffffffff, 0x00000003, 0x00000000, 0x00000000, 0x00000004, - 0xfffffffc - ], - m: PhantomData, - encoding: PhantomData, // R - }, - b: Elem { - limbs: p256_limbs![ - 0x29c4bddf, 0xd89cdf62, 0x78843090, 0xacf005cd, 0xf7212ed6, 0xe5a220ab, 0x04874834, - 0xdc30061d - ], - m: PhantomData, - encoding: PhantomData, // R - }, - - elem_mul_mont: p256_mul_mont, - elem_sqr_mont: p256_sqr_mont, - - point_add_jacobian_impl: p256_point_add, -}; - -pub static PRIVATE_KEY_OPS: PrivateKeyOps = PrivateKeyOps { - common: &COMMON_OPS, - elem_inv_squared: p256_elem_inv_squared, - point_mul_base_impl: p256_point_mul_base_impl, - point_mul_impl: p256_point_mul, -}; - -fn p256_elem_inv_squared(a: &Elem) -> Elem { - // Calculate a**-2 (mod q) == a**(q - 3) (mod q) - // - // The exponent (q - 3) is: - // - // 0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc - - #[inline] - fn sqr_mul(a: &Elem, squarings: usize, b: &Elem) -> Elem { - elem_sqr_mul(&COMMON_OPS, a, squarings, b) - } - - #[inline] - fn sqr_mul_acc(a: &mut Elem, squarings: usize, b: &Elem) { - elem_sqr_mul_acc(&COMMON_OPS, a, squarings, b) - } - - let b_1 = &a; - let b_11 = sqr_mul(b_1, 1, b_1); - let b_111 = sqr_mul(&b_11, 1, b_1); - let f_11 = sqr_mul(&b_111, 3, &b_111); - let fff = sqr_mul(&f_11, 6, &f_11); - let fff_111 = sqr_mul(&fff, 3, &b_111); - let fffffff_11 = sqr_mul(&fff_111, 15, &fff_111); - let ffffffff = sqr_mul(&fffffff_11, 2, &b_11); - - // ffffffff00000001 - let mut acc = sqr_mul(&ffffffff, 31 + 1, b_1); - - // ffffffff00000001000000000000000000000000ffffffff - sqr_mul_acc(&mut acc, 96 + 32, &ffffffff); - - // ffffffff00000001000000000000000000000000ffffffffffffffff - sqr_mul_acc(&mut acc, 32, &ffffffff); - - // ffffffff00000001000000000000000000000000fffffffffffffffffffffff_11 - sqr_mul_acc(&mut acc, 30, &fffffff_11); - - // ffffffff00000001000000000000000000000000fffffffffffffffffffffffc - COMMON_OPS.elem_square(&mut acc); - COMMON_OPS.elem_square(&mut acc); - - acc -} - -fn p256_point_mul_base_impl(g_scalar: &Scalar) -> Point { - prefixed_extern! { - fn p256_point_mul_base( - r: *mut Limb, // [3][COMMON_OPS.num_limbs] - g_scalar: *const Limb, // [COMMON_OPS.num_limbs] - ); - } - - let mut r = Point::new_at_infinity(); - unsafe { - p256_point_mul_base(r.xyz.as_mut_ptr(), g_scalar.limbs.as_ptr()); - } - r -} - -pub static PUBLIC_KEY_OPS: PublicKeyOps = PublicKeyOps { - common: &COMMON_OPS, -}; - -pub static SCALAR_OPS: ScalarOps = ScalarOps { - common: &COMMON_OPS, - scalar_inv_to_mont_impl: p256_scalar_inv_to_mont, - scalar_mul_mont: p256_scalar_mul_mont, -}; - -pub static PUBLIC_SCALAR_OPS: PublicScalarOps = PublicScalarOps { - scalar_ops: &SCALAR_OPS, - public_key_ops: &PUBLIC_KEY_OPS, - private_key_ops: &PRIVATE_KEY_OPS, - - q_minus_n: Elem { - limbs: p256_limbs![0x039cdaae, 0x0c46353d, 0x58e8617b, 0x43190553, 0, 0, 0, 0], - m: PhantomData, - encoding: PhantomData, // Unencoded - }, -}; - -pub static PRIVATE_SCALAR_OPS: PrivateScalarOps = PrivateScalarOps { - scalar_ops: &SCALAR_OPS, - - oneRR_mod_n: Scalar { - limbs: p256_limbs![ - 0xbe79eea2, 0x83244c95, 0x49bd6fa6, 0x4699799c, 0x2b6bec59, 0x2845b239, 0xf3d95620, - 0x66e12d94 - ], - m: PhantomData, - encoding: PhantomData, // R - }, -}; - -fn p256_scalar_inv_to_mont(a: &Scalar) -> Scalar { - // Calculate the modular inverse of scalar |a| using Fermat's Little - // Theorem: - // - // a**-1 (mod n) == a**(n - 2) (mod n) - // - // The exponent (n - 2) is: - // - // 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f - - #[inline] - fn mul(a: &Scalar, b: &Scalar) -> Scalar { - binary_op(p256_scalar_mul_mont, a, b) - } - - #[inline] - fn sqr(a: &Scalar) -> Scalar { - let mut tmp = Scalar::zero(); - unsafe { p256_scalar_sqr_rep_mont(tmp.limbs.as_mut_ptr(), a.limbs.as_ptr(), 1) } - tmp - } - - // Returns (`a` squared `squarings` times) * `b`. - fn sqr_mul(a: &Scalar, squarings: Limb, b: &Scalar) -> Scalar { - debug_assert!(squarings >= 1); - let mut tmp = Scalar::zero(); - unsafe { p256_scalar_sqr_rep_mont(tmp.limbs.as_mut_ptr(), a.limbs.as_ptr(), squarings) } - mul(&tmp, b) - } - - // Sets `acc` = (`acc` squared `squarings` times) * `b`. - fn sqr_mul_acc(acc: &mut Scalar, squarings: Limb, b: &Scalar) { - debug_assert!(squarings >= 1); - unsafe { p256_scalar_sqr_rep_mont(acc.limbs.as_mut_ptr(), acc.limbs.as_ptr(), squarings) } - binary_op_assign(p256_scalar_mul_mont, acc, b); - } - - fn to_mont(a: &Scalar) -> Scalar { - static N_RR: Scalar = Scalar { - limbs: p256_limbs![ - 0xbe79eea2, 0x83244c95, 0x49bd6fa6, 0x4699799c, 0x2b6bec59, 0x2845b239, 0xf3d95620, - 0x66e12d94 - ], - m: PhantomData, - encoding: PhantomData, - }; - binary_op(p256_scalar_mul_mont, a, &N_RR) - } - - // Indexes into `d`. - const B_1: usize = 0; - const B_10: usize = 1; - const B_11: usize = 2; - const B_101: usize = 3; - const B_111: usize = 4; - const B_1111: usize = 5; - const B_10101: usize = 6; - const B_101111: usize = 7; - const DIGIT_COUNT: usize = 8; - - let mut d = [Scalar::zero(); DIGIT_COUNT]; - - d[B_1] = to_mont(a); - d[B_10] = sqr(&d[B_1]); - d[B_11] = mul(&d[B_10], &d[B_1]); - d[B_101] = mul(&d[B_10], &d[B_11]); - d[B_111] = mul(&d[B_101], &d[B_10]); - let b_1010 = sqr(&d[B_101]); - d[B_1111] = mul(&b_1010, &d[B_101]); - d[B_10101] = sqr_mul(&b_1010, 0 + 1, &d[B_1]); - let b_101010 = sqr(&d[B_10101]); - d[B_101111] = mul(&b_101010, &d[B_101]); - let b_111111 = mul(&b_101010, &d[B_10101]); - - let ff = sqr_mul(&b_111111, 0 + 2, &d[B_11]); - let ffff = sqr_mul(&ff, 0 + 8, &ff); - let ffffffff = sqr_mul(&ffff, 0 + 16, &ffff); - - // ffffffff00000000ffffffff - let mut acc = sqr_mul(&ffffffff, 32 + 32, &ffffffff); - - // ffffffff00000000ffffffffffffffff - sqr_mul_acc(&mut acc, 0 + 32, &ffffffff); - - // The rest of the exponent, in binary, is: - // - // 1011110011100110111110101010110110100111000101111001111010000100 - // 1111001110111001110010101100001011111100011000110010010101001111 - - static REMAINING_WINDOWS: [(u8, u8); 26] = [ - (6, B_101111 as u8), - (2 + 3, B_111 as u8), - (2 + 2, B_11 as u8), - (1 + 4, B_1111 as u8), - (5, B_10101 as u8), - (1 + 3, B_101 as u8), - (3, B_101 as u8), - (3, B_101 as u8), - (2 + 3, B_111 as u8), - (3 + 6, B_101111 as u8), - (2 + 4, B_1111 as u8), - (1 + 1, B_1 as u8), - (4 + 1, B_1 as u8), - (2 + 4, B_1111 as u8), - (2 + 3, B_111 as u8), - (1 + 3, B_111 as u8), - (2 + 3, B_111 as u8), - (2 + 3, B_101 as u8), - (1 + 2, B_11 as u8), - (4 + 6, B_101111 as u8), - (2, B_11 as u8), - (3 + 2, B_11 as u8), - (3 + 2, B_11 as u8), - (2 + 1, B_1 as u8), - (2 + 5, B_10101 as u8), - (2 + 4, B_1111 as u8), - ]; - - for &(squarings, digit) in &REMAINING_WINDOWS { - sqr_mul_acc(&mut acc, Limb::from(squarings), &d[usize::from(digit)]); - } - - acc -} - -prefixed_extern! { - pub(super) fn p256_mul_mont( - r: *mut Limb, // [COMMON_OPS.num_limbs] - a: *const Limb, // [COMMON_OPS.num_limbs] - b: *const Limb, // [COMMON_OPS.num_limbs] - ); - pub(super) fn p256_sqr_mont( - r: *mut Limb, // [COMMON_OPS.num_limbs] - a: *const Limb, // [COMMON_OPS.num_limbs] - ); - - fn p256_point_add( - r: *mut Limb, // [3][COMMON_OPS.num_limbs] - a: *const Limb, // [3][COMMON_OPS.num_limbs] - b: *const Limb, // [3][COMMON_OPS.num_limbs] - ); - fn p256_point_mul( - r: *mut Limb, // [3][COMMON_OPS.num_limbs] - p_scalar: *const Limb, // [COMMON_OPS.num_limbs] - p_x: *const Limb, // [COMMON_OPS.num_limbs] - p_y: *const Limb, // [COMMON_OPS.num_limbs] - ); - - fn p256_scalar_mul_mont( - r: *mut Limb, // [COMMON_OPS.num_limbs] - a: *const Limb, // [COMMON_OPS.num_limbs] - b: *const Limb, // [COMMON_OPS.num_limbs] - ); - fn p256_scalar_sqr_rep_mont( - r: *mut Limb, // [COMMON_OPS.num_limbs] - a: *const Limb, // [COMMON_OPS.num_limbs] - rep: Limb, - ); -} diff --git a/src/ec_17/suite_b/ops/p256_elem_mul_tests.txt b/src/ec_17/suite_b/ops/p256_elem_mul_tests.txt deleted file mode 100644 index b83120d2a1..0000000000 --- a/src/ec_17/suite_b/ops/p256_elem_mul_tests.txt +++ /dev/null @@ -1,32 +0,0 @@ - -a = 00 -b = 00 -r = 00 - -a = 00 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -r = 00 - -a = 01 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -r = fffffffd00000002fffffffdffffffff00000001fffffffcffffffff - -a = 02 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -r = 01fffffffa00000005fffffffbfffffffe00000003fffffff9fffffffe - -a = 03 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -r = 02fffffff700000008fffffff9fffffffd00000005fffffff6fffffffd - -a = 7fffffff800000008000000000000000000000007fffffffffffffffffffffff -b = 02 -r = fffffffd00000002fffffffdffffffff00000001fffffffcffffffff - -a = 7fffffff80000000800000000000000000000000800000000000000000000000 -b = 02 -r = fffffffe00000003fffffffd0000000200000001fffffffe0000000300000000 - -a = 8000000000000000000000000000000000000000000000000000000000000000 -b = 02 -r = 01 diff --git a/src/ec_17/suite_b/ops/p256_elem_neg_tests.txt b/src/ec_17/suite_b/ops/p256_elem_neg_tests.txt deleted file mode 100644 index 089a641791..0000000000 --- a/src/ec_17/suite_b/ops/p256_elem_neg_tests.txt +++ /dev/null @@ -1,24 +0,0 @@ - -a = 00 -b = 00 - -a = 01 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe - -a = 02 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffd - -a = 03 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffc - -a = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -b = 01 - -a = 7fffffff800000008000000000000000000000007fffffffffffffffffffffff -b = 7fffffff80000000800000000000000000000000800000000000000000000000 - -a = 7fffffff80000000800000000000000000000000800000000000000000000000 -b = 7fffffff800000008000000000000000000000007fffffffffffffffffffffff - -a = 8000000000000000000000000000000000000000000000000000000000000000 -b = 7fffffff00000001000000000000000000000000ffffffffffffffffffffffff diff --git a/src/ec_17/suite_b/ops/p256_elem_sum_tests.txt b/src/ec_17/suite_b/ops/p256_elem_sum_tests.txt deleted file mode 100644 index e4967eda4b..0000000000 --- a/src/ec_17/suite_b/ops/p256_elem_sum_tests.txt +++ /dev/null @@ -1,1048 +0,0 @@ -# Montgomery Arithmetic; values are in the range [0, q). - - -a = 00 -b = 00 -r = 00 - -a = 00 -b = 01 -r = 01 - -a = 00 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -r = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe - -a = 01 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -r = 00 - -a = 02 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -r = 01 - -a = 03 -b = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe -r = 02 - -a = 7fffffff800000008000000000000000000000007fffffffffffffffffffffff -b = 7fffffff80000000800000000000000000000000800000000000000000000000 -r = 00 - -a = 7fffffff80000000800000000000000000000000800000000000000000000000 -b = 7fffffff80000000800000000000000000000000800000000000000000000000 -r = 01 - -a = 8000000000000000000000000000000000000000000000000000000000000000 -b = 8000000000000000000000000000000000000000000000000000000000000000 -r = fffffffeffffffffffffffffffffffff000000000000000000000001 - -a = 8000000000000000000000000000000000000000000000000000000000000000 -b = 8000000000000000000000000000000000000000000000000000000000000000 -r = fffffffeffffffffffffffffffffffff000000000000000000000001 - -a = 800000007fffffff7fffffffffffffffffffffff800000000000000000000001 -b = 7fffffff800000008000000000000000000000007fffffffffffffffffffffff -r = fffffffeffffffffffffffffffffffff000000000000000000000001 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 8000000000000000000000000000000000000000000000000000000000000000 -r = fffffffeffffffffffffffffffffffff000000000000000000000000 - -a = 800000007fffffff7fffffffffffffffffffffff800000000000000000000000 -b = 7fffffff800000008000000000000000000000007fffffffffffffffffffffff -r = fffffffeffffffffffffffffffffffff000000000000000000000000 - -# Carry Propagation. - -a = ff -b = 01 -r = 0100 - -a = 01ff -b = 01 -r = 0200 - -a = 03ff -b = 01 -r = 0400 - -a = 07ff -b = 01 -r = 0800 - -a = 0fff -b = 01 -r = 1000 - -a = 1fff -b = 01 -r = 2000 - -a = 3fff -b = 01 -r = 4000 - -a = 7fff -b = 01 -r = 8000 - -a = ffff -b = 01 -r = 010000 - -a = 01ffff -b = 01 -r = 020000 - -a = 03ffff -b = 01 -r = 040000 - -a = 07ffff -b = 01 -r = 080000 - -a = 0fffff -b = 01 -r = 100000 - -a = 1fffff -b = 01 -r = 200000 - -a = 3fffff -b = 01 -r = 400000 - -a = 7fffff -b = 01 -r = 800000 - -a = ffffff -b = 01 -r = 01000000 - -a = 01ffffff -b = 01 -r = 02000000 - -a = 03ffffff -b = 01 -r = 04000000 - -a = 07ffffff -b = 01 -r = 08000000 - -a = 0fffffff -b = 01 -r = 10000000 - -a = 1fffffff -b = 01 -r = 20000000 - -a = 3fffffff -b = 01 -r = 40000000 - -a = 7fffffff -b = 01 -r = 80000000 - -a = ffffffff -b = 01 -r = 0100000000 - -a = 01ffffffff -b = 01 -r = 0200000000 - -a = 03ffffffff -b = 01 -r = 0400000000 - -a = 07ffffffff -b = 01 -r = 0800000000 - -a = 0fffffffff -b = 01 -r = 1000000000 - -a = 1fffffffff -b = 01 -r = 2000000000 - -a = 3fffffffff -b = 01 -r = 4000000000 - -a = 7fffffffff -b = 01 -r = 8000000000 - -a = ffffffffff -b = 01 -r = 010000000000 - -a = 01ffffffffff -b = 01 -r = 020000000000 - -a = 03ffffffffff -b = 01 -r = 040000000000 - -a = 07ffffffffff -b = 01 -r = 080000000000 - -a = 0fffffffffff -b = 01 -r = 100000000000 - -a = 1fffffffffff -b = 01 -r = 200000000000 - -a = 3fffffffffff -b = 01 -r = 400000000000 - -a = 7fffffffffff -b = 01 -r = 800000000000 - -a = ffffffffffff -b = 01 -r = 01000000000000 - -a = 01ffffffffffff -b = 01 -r = 02000000000000 - -a = 03ffffffffffff -b = 01 -r = 04000000000000 - -a = 07ffffffffffff -b = 01 -r = 08000000000000 - -a = 0fffffffffffff -b = 01 -r = 10000000000000 - -a = 1fffffffffffff -b = 01 -r = 20000000000000 - -a = 3fffffffffffff -b = 01 -r = 40000000000000 - -a = 7fffffffffffff -b = 01 -r = 80000000000000 - -a = ffffffffffffff -b = 01 -r = 0100000000000000 - -a = 01ffffffffffffff -b = 01 -r = 0200000000000000 - -a = 03ffffffffffffff -b = 01 -r = 0400000000000000 - -a = 07ffffffffffffff -b = 01 -r = 0800000000000000 - -a = 0fffffffffffffff -b = 01 -r = 1000000000000000 - -a = 1fffffffffffffff -b = 01 -r = 2000000000000000 - -a = 3fffffffffffffff -b = 01 -r = 4000000000000000 - -a = 7fffffffffffffff -b = 01 -r = 8000000000000000 - -a = ffffffffffffffff -b = 01 -r = 010000000000000000 - -a = 01ffffffffffffffff -b = 01 -r = 020000000000000000 - -a = 03ffffffffffffffff -b = 01 -r = 040000000000000000 - -a = 07ffffffffffffffff -b = 01 -r = 080000000000000000 - -a = 0fffffffffffffffff -b = 01 -r = 100000000000000000 - -a = 1fffffffffffffffff -b = 01 -r = 200000000000000000 - -a = 3fffffffffffffffff -b = 01 -r = 400000000000000000 - -a = 7fffffffffffffffff -b = 01 -r = 800000000000000000 - -a = ffffffffffffffffff -b = 01 -r = 01000000000000000000 - -a = 01ffffffffffffffffff -b = 01 -r = 02000000000000000000 - -a = 03ffffffffffffffffff -b = 01 -r = 04000000000000000000 - -a = 07ffffffffffffffffff -b = 01 -r = 08000000000000000000 - -a = 0fffffffffffffffffff -b = 01 -r = 10000000000000000000 - -a = 1fffffffffffffffffff -b = 01 -r = 20000000000000000000 - -a = 3fffffffffffffffffff -b = 01 -r = 40000000000000000000 - -a = 7fffffffffffffffffff -b = 01 -r = 80000000000000000000 - -a = ffffffffffffffffffff -b = 01 -r = 0100000000000000000000 - -a = 01ffffffffffffffffffff -b = 01 -r = 0200000000000000000000 - -a = 03ffffffffffffffffffff -b = 01 -r = 0400000000000000000000 - -a = 07ffffffffffffffffffff -b = 01 -r = 0800000000000000000000 - -a = 0fffffffffffffffffffff -b = 01 -r = 1000000000000000000000 - -a = 1fffffffffffffffffffff -b = 01 -r = 2000000000000000000000 - -a = 3fffffffffffffffffffff -b = 01 -r = 4000000000000000000000 - -a = 7fffffffffffffffffffff -b = 01 -r = 8000000000000000000000 - -a = ffffffffffffffffffffff -b = 01 -r = 010000000000000000000000 - -a = 01ffffffffffffffffffffff -b = 01 -r = 020000000000000000000000 - -a = 03ffffffffffffffffffffff -b = 01 -r = 040000000000000000000000 - -a = 07ffffffffffffffffffffff -b = 01 -r = 080000000000000000000000 - -a = 0fffffffffffffffffffffff -b = 01 -r = 100000000000000000000000 - -a = 1fffffffffffffffffffffff -b = 01 -r = 200000000000000000000000 - -a = 3fffffffffffffffffffffff -b = 01 -r = 400000000000000000000000 - -a = 7fffffffffffffffffffffff -b = 01 -r = 800000000000000000000000 - -a = ffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000 - -a = 01ffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000 - -a = 03ffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000 - -a = 07ffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000 - -a = 0fffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000 - -a = 1fffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000 - -a = 3fffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000 - -a = 7fffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000 - -a = ffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000 - -a = 01ffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000 - -a = 03ffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000 - -a = 07ffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000 - -a = 0fffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000 - -a = 1fffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000 - -a = 3fffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000 - -a = 7fffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000 - -a = ffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000 - -a = ffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/ec_17/suite_b/ops/p256_point_double_tests.txt b/src/ec_17/suite_b/ops/p256_point_double_tests.txt deleted file mode 100644 index b886532cf6..0000000000 --- a/src/ec_17/suite_b/ops/p256_point_double_tests.txt +++ /dev/null @@ -1,20 +0,0 @@ - -# G doubled once. -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 78c577510a5b8a3b19a8fb0e92042dbe152cd7cbeb236ff82f3648d361bee1a5 - -# Point at infinity doubled. This uses the (0, 0, 0) representation of -# the point at infinity instead of the classic (1, 1, 0) -# representation. -a = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# Point at infinity doubled. This form is the result of multiplying -# n * G (affine), which is more interesting than the above case -# because only the Z coordinate is zero. -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# (n - 1) * G doubled. -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a diff --git a/src/ec_17/suite_b/ops/p256_point_mul_base_tests.txt b/src/ec_17/suite_b/ops/p256_point_mul_base_tests.txt deleted file mode 100644 index 55d52c0039..0000000000 --- a/src/ec_17/suite_b/ops/p256_point_mul_base_tests.txt +++ /dev/null @@ -1,1280 +0,0 @@ - -g_scalar = 00 -r = inf - -g_scalar = 01 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -g_scalar = 02 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 78c577510a5b8a3b19a8fb0e92042dbe152cd7cbeb236ff82f3648d361bee1a5 - -g_scalar = 03 -r = 26936a3fb6ff747e66ad77dd87cbbc98b027f84a087d81fbffac3f904eebc127, d5f06a29e587cc07788208311a2ee98e583e47ad0861fe1ab04c5c1fc983a7eb - -g_scalar = 04 -r = 577362f541b0176b0cdaacace8100af24650a6edc623c17374b0b50d46918dcc, 84b14c394c5ab8636b6c36dee5ddd22e17628471fad6f4472d96f24ce4cbaba6 - -g_scalar = 05 -r = c9079605890523c8941cb5aad076c20c90ec649a94b9537dbe1b8aaec45c61f5, 73a076bb2dd1e9163540a9877e7a1f6873c568efe5eb882beb309b4ae7ba4f10 - -g_scalar = 06 -r = 13074b5954213673d50a961a5b17a3ad55ae744f346cee3e403947373e77664a, a4c9916d4a07f75ff424d44cef639f11299c2b53adff14b593d36220d377e44b - -g_scalar = 07 -r = 13ba5119c3123e03f43eaab50c23bb082bd20213d23c00f70746354ea0173b4f, eaedd9156e240867ef933bdc77c941956742f2f25da67bdd2847d0303f5b9d4d - -g_scalar = 08 -r = b763891eb265230d8f90f02af02cfc6b462ab5c56f9b345527f14cd19499a78f, 56ec12f27706df76123c7b84be60bbf021e3327dcf9eba15f59da3a9532d4977 - -g_scalar = 09 -r = e05b3080f0c4e16b2cc09c0444c8eb00abe6bfed59a7a84175c96e8f264e20e8, 086659cdfd835f9b2b6e019a88b12f1a56af7bedce5d45e31eb7777aa45f3314 - -g_scalar = 0a -r = cc61c94724b3428f737d2cd648250b4998f9868a0fcf81392c18dbd19dc21ec8, 78719a54eb3b4ab55f7d2d65779be5d2c43a8991383fbe080c2b407880dd9e76 - -g_scalar = 0b -r = 3e7090f1649c90731ff3a4158dac1ab59de407956e7fdfe0ea7d260a6245e404, 68930023e125b88e0c0daa891ead643d250f939ee57f61c81a7685612b944e88 - -g_scalar = 0c -r = 4ee1df77cb83e1562409d29dee37385eabdedef5ca345a3304b71aa7d2697768, 7ff57c9553238aca28228cfa8ade6d66170ed2f6ca8956370cac12d91cbb5b43 - -g_scalar = 0d -r = 738477ac5395b759bcbcd43f559e98110e356769856fd30dccc425634b2ed709, fbc08769c9e7b7977cd06422bd1f5bc168748390742ed2e335752b90c00ee17f - -g_scalar = 0e -r = faae7332fd12c72e1717bf54c6832660126e48f77f9707e3a242a35bb0cf664a, 152706dc2eaa1bbbe8e4193e2a65e7dbbe29569e832237c227b52db7995d586b - -g_scalar = 0f -r = e2aa0e430ad3da09ee337424e481937003cc23ee56e27e4b72bcd8b7bc60055b, 2042170a7079adf464efa6de778a4797d766355442a41b2540b8524f6383c45d - -g_scalar = 10 -r = 54d63c809103b723d5ef2f7c2c83f5495882e0753ffe2e6b808b0b650bc6fb80, 64edf7b201efe22055c4623bb1580e9e3670c3194b0b6587f2f11bd652a23f9b - -g_scalar = 11 -r = c1a35c0a6c7a574eb0f139752cfe2dfff17624b6ac0a177b97091dcbd53c5c9d, ebd512263274c3d02f4e247f0d1883bb0575bf30e89cb80e227d314693e79987 - -g_scalar = 12 -r = 675abd1b6f80ebdaa6f247ab412e29794afc964d8f8b403e5f3e51c856ada97a, 6c6fc7d90502394d2626927f1b847bba4b2a5caf8f4f0b3c66a2bd725e485a1d - -g_scalar = 13 -r = fe545c282897c3fcb8842277752c41ac68363aba25e1a16efea912baa5659ae8, f720ee256d12597b85665e9be39508c15806244afba977c52d36e9e7dc4c696b - -g_scalar = 14 -r = e2d1eeb6fe5bfb4e048099d95dd283ba5916868f0f862bdc8a979129d2337a31, 5ee104e1c5fee0d09161c53f8aa95e66a2d4ec17ffffcbae82ef1c417884005d - -g_scalar = 15 -r = ecead9f4c16762fc6d2a506c5a3f3b3074e1b2654783f47d562e4cecc135b208, c086d5f1c9477fa37a75023e7fac29a41b0fadc083bb3c61f29dd4b2e286e5b9 - -g_scalar = 16 -r = fdc777e8e93358a46a0b0685d2f8ba3dc99ffa23e3912a9a0fc611352f6f3076, 793e8d075d5cd0749de917da153a35b5640c2d6a4d23fea494a787bb35415f04 - -g_scalar = 17 -r = af2cea7c1727bf42d0825fa2a358406937c7a7e89e2e1f6ef4f876532de45068, 83d0687b9077666f48068e1371ac2f71e5fda49c27299f4a0360a4fb9e4785a9 - -g_scalar = 18 -r = f97b232f2efc311561d7cbf91d2b469f6d0d755040dd9a356d3883b215d02819, 595dc55eca737b8a7669f03193cb750111ea494988a1e356a551d750b24bcbc7 - -g_scalar = 19 -r = 966742eb65432a2ee395993332f1f3af6fc1b49eed6b67b0a4a319acd837879f, 7b948dc356f7996812068859c9b731ee96cc631243f439504b8dc9feb4966228 - -g_scalar = 1a -r = 994baaa855f2fb101ac7c5eb857ff6fbe6c9267ad8b1753861e4ad32ed1f8008, ed178030d12e5ac714fde97b5fa944f55a39898b628ac50884cf14e11d248018 - -g_scalar = 1b -r = 9f8aa54b2ef7c76a49d2c9eb084ffdd7d36a42d7aebf7313042c2af497e2feb4, 2d431068d84bde312d97d10878eb4cbb3bd0c66fddb7fb589200b7ba09895e70 - -g_scalar = 1c -r = e97f6b6af2aadb9797082ec0cfe153eb7323cb2830a6a8924b523eb7172ccd1f, a9b4cc5f405852784a688b482d0cb71ea6a7f9c7804b2a681d3d393ed1a83da1 - -g_scalar = 1d -r = e266f95948603d48944a70270317b9e2f1be963a0d9258805e5db46acb66e132, 3798142a2a3be21b8a966939777c619f90472447a2fb18a398db66735c208899 - -g_scalar = 1e -r = d0288cb552b6fc3cc5f4d6cd3ac77acda3a14e49b44f65a1b4241cb13298b343, 460d45ce51601f72d667da379b3aa441b675511e06bf9b4ad5cc8c2f1c040abc - -g_scalar = 1f -r = 948dc4f8b1fc87b48ef5689d3cf7600ddd3cf7e7473017e6e2f73c696755ff89, f38ae8914d7b4745faecedfd0c9803fc2d921ca298eb6028d9e9fe814ea53299 - -g_scalar = 20 -r = 39227077695532a4bc6d6a58fead0197befd904c4079dfbfd8c5fccfc5e3a3d8, 6231d7929591c2a47b969c1aad9a2e407e449b64480a990809e23e6ddbef42f5 - -g_scalar = 21 -r = 33ec6868f044b10cac09c4ae65578ab985ceae7c4b68f103871514560f664534, b16c4303c32f63c4f909604f763f15745509d1285847d5ef6ac4832b3a8ec1f1 - -g_scalar = 22 -r = c982ddd4dd303e645b0673a375678d94caa7a5c6a391849db6ab20147ca23cd3, a159100c570d74f8c77332a33c569426bba2cb1f6f876f92fd7b000b5db6f971 - -g_scalar = 23 -r = ca640b8642a3e5210b8e4134efc2b4c8742ee464233e76b7fd16847fdec67ef5, 2ba901628bb47af824e4ab126b237af7313c300c547852d5653a01908ceb6aa9 - -g_scalar = 24 -r = 3569656cd54a3dc30ae4cb10d257576ec691d0bd1b06c57f3d5e58d6a8219bb7, 480b9e11dd6da526450ac0bae251a0c6934e82d3162bfe13e5ebaebd94cda03a - -g_scalar = 25 -r = 2763a387dfa394ebc5748baea677d806b636458c7f178d5500467bc58cce08b5, 58b36143620088a8f63ebce51558462ce7adda3e6f20d850a12b448a7d3cebb6 - -g_scalar = 26 -r = adf0c7dc7c603d6c7463fd85222ef33b512331170fe948ce8a2cc3ca4d63c0ee, d9a4c2809c80c34dbdaa84d68e59319cccaab359bf3804090ec32d3bfe7765e5 - -g_scalar = 27 -r = 5853e4c4363186ac068f237d16fb36646f5ae714ff0b9346a9d89488a059c142, 0c0bc0e56919240847b864fae14e7b1c2ec4a76681828876e2d87d2363c52f98 - -g_scalar = 28 -r = 462d7b0075f732278909984c66f2728083200f0bdf25e13ce4d7681db82e9f3e, 03466612d1aa702fab256ea35ef5435974c6e18c36ab1c34d90ba188f2651798 - -g_scalar = 29 -r = 98100a4fdb01614feeca111539ce22716fdfe0b56f072822624d60492ed22e91, f70bfeec03884a7bc67732591d57d9ceb6f94d2ec87e9a47b6b0daa2a35c628f - -g_scalar = 2a -r = 649c89ce5bfafe43c2e2594c30a92f8fa155cbe31da6a5c75fb35ccfed2bad01, f3a8cfe389bc7d3d4b00b20b906014cf9b359611f32c50aed158667de9ff257a - -g_scalar = 2b -r = 179c85db3db01994b7d9ad900574598180c5bfb4878873fa4ff23ffd248a7d06, 47795f4f95b2dda09e91cd3ba5e6a3184d82d052eadce5a8ba41b06261a6966c - -g_scalar = 2c -r = 5f3425f6a98dd2915f0e2046e381d3b0009194abb29110fbecfd7c1fd55a897c, eb629f90387ba42a397a247dd69d34170423446c4b083b7fbfa06687730d50da - -g_scalar = 2d -r = e94f7d346d8232781b1e8ae057477f580032940b946c6e181ee426ccd5cd79bf, d73acbfe2cd9e6b5772ef6dec7f80c81c5254469f72b33a5c747cb96782ba21a - -g_scalar = 2e -r = cec684c3a42931dca1030d5babf825e0785c339aa06e9eba4075b5b149ee90d9, 033da338c1b7f86557c8b2c055f7835d45431d665ab43f2b42ab62c9c1586e63 - -g_scalar = 2f -r = 4b969974eba78bfd6b20afec715af2c70a624fa936c83906283c7513caa76097, 9bbff86e6dddfd2704819d515ded93d49b944e107baeca13220755ccd921d60e - -g_scalar = 30 -r = c8403902470343ad1a1baaa76d8805bda7496529bbd803a06b34413077adc612, 85efc7e941325cc2a875f5ce529d75e30b26d7fbb7d8c5b739f59f66175adff1 - -g_scalar = 31 -r = abdbe6084fb7db2bff4cd0b228766127ffe7048453dc690921950b421ff6acd3, d394077ef247fa364d78f592f7818ed826147d27f4645b5a837c92285e1109e8 - -g_scalar = 32 -r = 0dceb8db2b7eaba7edfbe268d5b1fa6aa78bfbaa136852780fb9c2d0488c171a, d7d34194c3628c1343b7716bcc143a46efde7ae6a4449c96bf9e80899ae2b710 - -g_scalar = 33 -r = d20ebe0d5c3fa443da1deb852f4318d4e20bc0ba1e5edf3f508cec1c3b3f64c9, d731e383a2f54c2d99a5e23d82681c6261f1511c5e1a5f65370b4ea773241ea3 - -g_scalar = 34 -r = 88f77f34d0e5e542905a3201c67528b72e0ec469af45f9c02692f36e83445904, 7ef2f2269c0f0f8d5c27014b9bbec39e23b92eae22df3562f67a8d295864687c - -g_scalar = 35 -r = ec3a318d306634b0912e8beda8c8acd95f9c3fc492f2467997359638546c4d8d, fba1da5943465283b155bcd2dcafe1973db82f6f522113f280167f41c31cb264 - -g_scalar = 36 -r = bb8a0feaee26c851c1286ff925c4d56c4f2e512ef8557c5fa0425b8eb212cf53, 1a556e3fea9595eb3df277a41d1936b17ee0c444e76265aac28f70d2e7d6107e - -g_scalar = 37 -r = 5cee8449a7b730dd0deb0e4a46c814c131eea5bf07ef5be6258bbbf9e7305683, 25e8013ff14cf3f4c2cf6a6880e518caee759f879e27a6b4eab495c5a0182bde - -g_scalar = 38 -r = ba3f0c4a7451ae636a84438514600044bb1ff3ca9556f36a8fc441407e8d7a14, 83927681026c2c084e9a5bc2a4b596ac01e0db86b1f2214bdfcac25b1f9af32a - -g_scalar = 39 -r = c13298306acf8ccc068212e3fd1eaf381bfeea57c7385b293ec832e77acaca28, da44c6c600017626c5ab2632c79b7a015748060db661782ab909f2db2aac9e59 - -g_scalar = 3a -r = 305f725f648d02cdd66fe3b67ed78be199cac80de4299aaff26c00e8a7ea82f0, 063749945667474117ab562dbe5ffb3efa70533e7a6319ad33ed1bc4623fb21b - -g_scalar = 3b -r = 4c2bab1b8add53b7cb9727eaa2d17c362100d5d3a8d063d169d44ed65c46aa8e, a062499846fb7a8b6651f7017ce477f8778afcd3a837ebeaa084e90c15426704 - -g_scalar = 3c -r = d40c4ccdbc6f9915026f8fe2671c39bc33fc23364189d9c7dc1e6828ed8a6e19, 04820109bbe4e832c40a04bd4f51ad9612c651a022adff2cafa135bbf80e75ca - -g_scalar = 3d -r = 994a44a69b8335fa71cdf6537eceb50a59556621a9404f843667eb1a7f4c04cc, 0d1bc780872bdbf3b6658466da44bba2473c5680eed4350dd7faf819dbeb9b69 - -g_scalar = 3e -r = 0dbcb03ae539b413177aa4c02089a2336ed7e061ed58f5a7e535f175a1962f91, 6b60cfff35ace009dd47ff98814be9ee6472e5ef6806701ee3dc424ebb32e38e - -g_scalar = 3f -r = 0763a43482fc568d95c376329182cb26039c4800f0518eedb8d3d9319ff91fe5, 90876a0140959b7092bf7c8f91230de0ac98b930824e8197707c04d5383e76ba - -g_scalar = 40 -r = 95fb8394569b38c77da70b83c2c61e01380a0913089f73b9db6d96f305968b80, 296720440e8449708010a4a078424bf88f726bb98faeaf829a3c651280edfe2f - -g_scalar = 41 -r = 01628c4706b6090abf639ed67765765e79527db7ba66f4b9dc2306ebfcdbb2b2, 7d096ac42f1747502c90d98cf3e055d633cb7691ba659f4666eb62f1b957b4a1 - -g_scalar = 42 -r = 78ed4fe6e3a7de485a7e384de42f8cb2a3cfa7fd44b81977c7c6e4d1c4ce250f, b12347993e909dfb9c03344b75554fad55912064d0f5bb2aa9231c8ce9e571ca - -g_scalar = 43 -r = e8218ad07de96a54fc88362a891ea186c16d0c52a48a4ddd86f04d3b51f9c391, fd59d7eb9a8f62d9de3ec728c30a96a005af456a06620ae82c735ac12f33af7a - -g_scalar = 44 -r = 031195d5bb4a44b9b2cdb039f99c55fec35d34e70dd71fab8732d5cd6a93954d, f66904b1400c9463440dec9ece0f8c32bb7047347b57df81baa37f5d08a660c8 - -g_scalar = 45 -r = 49d3ad05548efa2ac856868891e9ae0987986a54361bfe259e5da11cc5e79347, 6d37b1fa546fbecc2126ac553a8dd1269bea0d0f2655d14f987b0687f4eb5cf6 - -g_scalar = 46 -r = 100392dc78c04937681d690f2b3a8c597263de1539f76b817c5a2a14f58a379a, c6793ad2e6e2f3b19cc6e22a27c9a2ead11ae42dad0182e407e5e8e85bef953a - -g_scalar = 47 -r = dd421b5d4a210364f94aa89b40750d0149c7cb94fc05804bf19f382e92aa7864, 574cc7b29378679111f947e696cd0572030a119fdd4af1ec56cd001e39df3672 - -g_scalar = 48 -r = c3b025a015b15144eb5d0c75f38fae9cb1ee4879a360fb557331369679c1e3b1, 6fcd0cbb809a06f20368eb1f2e4283e11ba0cb8c9c5d2e6a33ad53540dc40604 - -g_scalar = 49 -r = b2dacdf66ef82fce794922ef17e29b1a2b34a7dc096fb852ae8f8fe1eeb03d1a, c39725521af82878a66d92525e82d5b3b871ba63e405ca09db8dcc81f42911ee - -g_scalar = 4a -r = d176448e35b23e27b00eea8a5d34f708294b12e1ca1b04e046ce85a9e25a441e, 0a48558f2fa1bd2f77c52d75519978d10c45e52db3bfffc85ce885392bb80ef9 - -g_scalar = 4b -r = a22f8fbea42fd1f6f123716223af72e0cfa8ca0e2a7aa6ab616d2c02fb760095, 24a1bde1d0c2302de79807a770456a7e7be19f0ded4437a85072758b78f3d040 - -g_scalar = 4c -r = 1558fe4c7ef5b48a7c703717cd1823b4285bed3c21848f49cd331464c89bdd46, 9b3b040493b83e45ee4826a9937e1ba33fc6e661d47fa3cb19c6602050eaed5f - -g_scalar = 4d -r = db15e4963d5baeb19c30c6422b2f9c49719a87be5a0ec9ce0a2193bfc266f85c, 854dc9d595105f9e2b4f0c7877eb94ea4788522b2e9fdbb283c3139be0d37321 - -g_scalar = 4e -r = c0e78a3897536f3f711f8b7f7b5065a47e96610365013b3aade6af11a6ab1ecf, f8bdf2ea8474d0c8ea2240ccef96b473407bffa1b201137148b4389c464423d3 - -g_scalar = 4f -r = 5ed556aae89327fc58f6428165f89e14dd306e2a05176f8ba40206d330ff0e92, b75df5ec191a421fd07370c450128375097a54ff99227b16c2b1870af8321bb8 - -g_scalar = 50 -r = c0bfffc45263832a2074213db27de57335ff9aa8b5f86a2c492bdc0752b3e584, 2995919ca4cd266052b6a1739220f4281b037d75b320ebfb2429c22a1d49c605 - -g_scalar = 51 -r = e0beeb1aebff18d3b097c711165c6e4c8e9d0af402ba3183d3a5d81fc63d5e79, 7acf4419e85bc145cbdbfdb9cf290d1fa02dbc426fe5b29dfe657f130801937b - -g_scalar = 52 -r = 8d97fd53554fa366b932d0c17527465559d18be925a81aef80ee662fad29cf9c, 18f61f3cdef3f99d4976126318fb05ae41a471e4e93046f2ad5cb247cd789d17 - -g_scalar = 53 -r = cf3086e87a243ca4f87abebf2ab80485125d4714ec67199a2c9ee62dc3363a22, 97f0013247b64be50536a39db19c61265e9b16125625aad75c52b051c64e09dd - -g_scalar = 54 -r = 2f83a889ca881f6c10b429a2811a47eb2cd0bab9941a27e9b7f1695a43020eec, 4cb3c135b6f36034df4741a71b99ec5f67f9ba802e45cbb12563c590f683e890 - -g_scalar = 55 -r = abfc8457b5e11eff36bf2f65ea65641aef617e0025af76773646b0dd7e1ee314, 159751e2e1cbaebebb0066ae1f282369ce91ee270142811b998dfac18f1192b6 - -g_scalar = 56 -r = a9ea1b80f80e4b9023fb74270b4af06e783b9ba6744a6528dd5c2b8142a18dc1, e6c93b31cefdb61d9a9f04f0e8aeaf7d4a2b5ed57defe51b559759f6edca6f38 - -g_scalar = 57 -r = 2bd0204360826caa041252997f6b0670b856664a2d4b409b516329ff7b4d8b2c, af490825d5cff157a8f439ab06e58e3ecd07bc34c235d56c010e522661ddbcb1 - -g_scalar = 58 -r = 948fb3f76932e6311707165bb939f40fabeee3e9369a60677d81fd488418cae4, d8d37d942785971ded5cf82dc911847cbdf176108c7f9dba005a1dffeabd468e - -g_scalar = 59 -r = bd88aca74765b8053ea123446310eb5a62d51e29fd54487dc1ee6264a7eabe67, 7150f87e7211e4457ab49dd209f98f9a640388f83b9fffefb7b284be14fb691a - -g_scalar = 5a -r = 8307d5cb55648a4cf3df44ded7ee64b747305b7483e904469af9d782de992e6e, e485b90d49c0b6a1ad3294fb1c309a59abff56b525d3fdee5376b018e277280a - -g_scalar = 5b -r = 0211de8fd56927054a39f02bbedd4f4727113bb4ae6a94b8d81ad9386982f865, 4a70abf75c554ed3fa8a5b9b0b46a59f2354719f6237fc68d587138c63c92f69 - -g_scalar = 5c -r = aee309e543ae4336e4c8417839093801a8a38bc31487c5269d7127d76294ba47, d15428592faab2944a72075d7f73442a9929ad4e8f48bb12d4b127399359250d - -g_scalar = 5d -r = 0581b4711fdf24984a278686e16396070aeaca9afd36b1af64cfdc70d9453d29, 435ac466954ffbb3ff6c1a78f9a2852f20b021c3df219dc582290e253d61f6d2 - -g_scalar = 5e -r = bf87ea83037278d9c87bdb8203d41796955ef205d59848ebc82a7aefd2df5e7a, 1001f8d7dd85aa7bf8ea79eadfa99607c00286d964135771c5825a638719aea8 - -g_scalar = 5f -r = 76a8f9fea974291f9a127f2bcaa12d0d6684ad762b346fd2263e039bb308cc40, 3f293fda2cd6f439ee1b1cb5344455a165499c990c5dbba0c802049b68aa19e4 - -g_scalar = 60 -r = 11eddf7fd0a0da0d14f356cc6abc354d6d490a4b19dd329b802b8d2333e12b70, 3f2a78b3241a2b7103b48cc47c29bca2fd2f4f8cfd0258131e208328d87fd1d8 - -g_scalar = 61 -r = f1ae5380578181c7ee848e1d2566805eda8cdb78397e43f4dc90323bafceb64d, 1fbd470f53cf3e6984577f1f3260b76785f4d9c45b68b7e72dc7b8e69c70c77c - -g_scalar = 62 -r = a6eecf308794885e74b44206ee3751becc8715abbc82a095d5192c88589b69ff, e9f04cd324c2e3116b5df55fe390da5ba3f98377daa4c864a05a7aa8dd0ce3b4 - -g_scalar = 63 -r = bc438ae1a4e65b07650522fd4a9a3b17b1f1abb66a7b43712d037bf83f9432b4, 4a673fe054fcd65a03a3c2c7b98ff4b37ab58a3f75503e4631b57ea284693c04 - -g_scalar = 64 -r = 55401274eb1385f3f7ac46733fe90a2ffe49233161c52cf8b9a17db9bf61fec5, 63be9e64a17154226aa068c230548cf4adb9e9b685bac6b7a5db852c23fd068f - -g_scalar = 65 -r = e9b1c23914da499e6a610374c569a602bbe914d3b99cd026b7a96e0a4ea6fdf7, 94ce9e0adba8bfc75a8a14644be77793731251826f21687cb5f6f0feadc19a99 - -g_scalar = 66 -r = 0fcaec0ffecf6fedce33e49cdd3dac5cf5284782e9f60f1841a6fe768f9b4748, a2776d9f8417c98ff3d348f820fe78e36445fbcd5bc92aa3ca1ce130a54edfc4 - -g_scalar = 67 -r = f51ec8724c3c386f57670e41bf619241d0a875e919f7f72c564bdda6c71f8d02, 1429b1f8ae1d3ed8a6fae60930a4f9245df79360286166f300aec19ee8bf7d17 - -g_scalar = 68 -r = 1d6de36b734fc1b835d2293fc7ac3efa90ee46554c2a623582d0020682c4bd6a, 6ba92bcade5a0cc175aef88a77b9d084ffccf5e161217dee946ac3bfcff75858 - -g_scalar = 69 -r = 680d5abf65e03a86c08ec1602b1d28fdcb11125c02a9ba44de6ddcb77b371390, d3d6d111ee9e512f4e346db071cbfc97c87057ca3bce7fe5d5ec7bbbf5327839 - -g_scalar = 6a -r = 7145405dff1765ecb81f9fb1279df6ff750c11bbc098aefac4c398cc1e628b51, 262f03eb0757aaea5cbb069b03fe8fac137218257bc27ef73c3d861d83aae16f - -g_scalar = 6b -r = ee206023efce1a7028f9cdebe9f6e8773571e4d1592ce3342ca0ba9c3796f4c7, ccd7e9418ea700c1e008039e02de2ff12754e4260a7f687cb2159e08b76369dc - -g_scalar = 6c -r = 9d873705000a079bd1a8678742e1cbf414d147984d7df1ff2871263f72371e17, 0d66cfc94b5d416d08e545f1b13e2b493633966c70094e6a3a7f4ad5e01ffe00 - -g_scalar = 6d -r = 3720b2475548de20e7b092174df861f4fd4f61e491ae8d13aec63acbdd10edd0, 5fdaee391cab12c70cd622baeb879899e7229d8956cd660daf419847ebf3df78 - -g_scalar = 6e -r = e7009ee6652405a945ae78ba39dcab99b1fc8c8c23fbbe6e76fbedb5a463fbad, 798ca99e4ef37e3c270c706c6e4840f15761490f7f000956b9a8fc5f8c0531e8 - -g_scalar = 6f -r = 0cf804d77a9b6a20098f37bb0832c416327dac318072f08dd87f4ae086653aa8, f9af0acd904d4731270adcc57148b1351cc0d4cea23afa674b9c5438a67e2173 - -g_scalar = 70 -r = 71704d008938c16745ab5a4d7832ba0c94e258f604a428f26a9505760a99cbca, 65000c24c7973a41e70352687d367d8056feb92ec00eb207db97ab0ef88b8b70 - -g_scalar = 71 -r = 734e0d078a2b0d3acc3a5ecb983538693289e86e10ec0d40a125e6c1b7ebcb88, 61d8209d49f3a53dd13cca90747f19ecfa6bcdb1786076b9e0d92e9a51933360 - -g_scalar = 72 -r = 08e2f429f216dc997afec8bb9b4e920c18849f8ebc30d62c751e03f0216f7c55, bc0eec86924dd15496b984140a9f867197b596a14d7bf8475e5ddf821d6cc33e - -g_scalar = 73 -r = 7c3ff661d8ecca6e8a2627c4851b5bc7f15b920fa8dfce56ad19e039119f6cab, e95dd9d8889821b2dc8df855fe2f493756b76c57baa43b27b9dd2bf2d5f5b5bf - -g_scalar = 74 -r = d8f1fc5f6a92b9aac9f08a5659cb1b6e4b3de89bb2f5f79c87f9793bc9826344, a9c8a4b42b9157daf06c2c8c70549a5753c30bbe65b80f1686357f9eb412595e - -g_scalar = 75 -r = bbdbec7d79af29b17890e8d54796883355a3bb1ad9699e9208e4c4901b620dc4, 2cdf7f854480ffe39dc33392fa67285c50cf6d11ad91a35092750de73e51e1bc - -g_scalar = 76 -r = 4977379654d7a19e24869d65bb07ad54f8f1d8415512ec1c24c00de93f5f68a6, c9c4d63998e59b626cf96715c527a656741bf80a03bc88e604f357d1f061cede - -g_scalar = 77 -r = 6ed0b988157b7f562be22ba0f3a49fb4062afb7c1e314dde87af199e6cc47305, fedf1014fe6ee703d7e814380f67b51417d29c64877b74978162cf502d653fd9 - -g_scalar = 78 -r = 9c7ea21245a2473fb62aaf7c37e7454e094e7ddf4f6ab73a6ebdb7bcd0303ba4, d007ec78a47a715248cd158b2c1eb5419a278a9daaa03497ca76e7549488d036 - -g_scalar = 79 -r = e1a8d418f77f10e127d2bf4f683b30d1d71602d5b0e5fe2014d7251a8c03e3f4, ae839cd80e99505caaf4d4e193394872ff318484da0a4996a4941a1e76a0ead7 - -g_scalar = 7a -r = 62280f9a573fbfa8bf357e0c9358983ad183a961caf64cbd536eeea92f4ff97a, 7aa3b3ccb2a104b24c6b9954bd51f9056ea945bdb1901d3d001da1b77e9176b3 - -g_scalar = 7b -r = 2d7ca4d8f1e354871783d1b6917e47255a71497198a5ea8c62ea859803b58b02, aeb9041c69e788c55870726c16e3e02ada04cc898e17ff543f69b4d49b4d4324 - -g_scalar = 7c -r = d8c0472156db126649b1dfca7f1412750a10ed1576d7996d10f264bc85fc00a2, 8448ecae901289fe9b94c4ad4c99e43958d85051e4dd905a43dfabf3cd768437 - -g_scalar = 7d -r = a9fe2396bb85b9cb04b76d2d1ed32559f72dab6d225733faaab54cfc93740130, b16d6af8c3febbc151dc5fac145ff0d52292393b579f3ce2128b0d24bf2219f0 - -g_scalar = 7e -r = 6941195b752838c39a7d703660ab52e9519a47b4807a9d289c9635be52bf127a, 91a4ea6d215215f65f153f56aa36de2d8459f5705276171860ffbe2e70da613f - -g_scalar = 7f -r = 15fe6a86904a36cf6072a061ae619f2870e9016cdddfd92836e84bb6dee35b41, 76759223abe3c14bd0a8879244f403f2fd1c4a970ad602d09ab6968bf6005965 - -g_scalar = 80 -r = ad311f2c46d5a6173749bba4b3ad9db57ef2b6b9ac62ff5463c5cb817a2ad62a, fa38d320ec008188f8aa266d75d6b138b46feaf3367834ffb77a8087c2ff3b6d - -g_scalar = 0200000000000000000000000000000000000000000000000000000000000000 -r = 135dc5395b54827dd161d2cacf780900bcef72873566cc63b2330fef4e4ca463, 8b0c573826152c8fe973586d6d3321da10a224f007dfa06c638f052e27bf1bc6 - -g_scalar = 0400000000000000000000000000000000000000000000000000000000000000 -r = 15b4488b29fd9fd06e1da8c39a33c6771fe19e357fe4364e9910ba6b23a5d896, f2c4f79cb6ec839b3fd1b24907e5658e920a8a70ab8163e81f4392541a1f22bf - -g_scalar = 0600000000000000000000000000000000000000000000000000000000000000 -r = e78c2ec0fc61206741311f8a38038a5d8f860c7943ef881c84cea0691416a6a5, 35beef7a9e36c39eff558aecf3612cbab4cc9e0059604097494d2e815ad73581 - -g_scalar = 0800000000000000000000000000000000000000000000000000000000000000 -r = 0bdec21162bc679298204cb64fcf68e15d2b0ac6c717370e8b5c619c76497ee8, 037248e9d2d4fcb45efb693e3d0e0c8bf9e3fa97e0de1ac56973ccefa63b1011 - -g_scalar = 0a00000000000000000000000000000000000000000000000000000000000000 -r = fe2bc235e52800a089fa443d07d3e75e96e9793ed510053ccf57fca29849e95b, ee52747dc960b0e1217e4005e541e592b5852a49e72222631c208b8c0ac7e740 - -g_scalar = 0c00000000000000000000000000000000000000000000000000000000000000 -r = 69aada7f6d6180a56183291b6ed77d1c62699718e770b20dd3694e2ab20364e4, d53e48d228dc87eed6a2308a7fb96d8dfd7e84567870107751f9054bf185509b - -g_scalar = 0e00000000000000000000000000000000000000000000000000000000000000 -r = 1280aafbed23f0d182293299cdf809af94589aac6656bbe13e858c2ffceac518, 9bfafcccca58cca2d5cb00b340f02322e010a39acfaec17fdeab0c677306e2a4 - -g_scalar = 1000000000000000000000000000000000000000000000000000000000000000 -r = 7be5ed0dc475c1293f06d66c530cb4f3d8772d353381060380802dc91ec34f9e, 0aec44147285bbcab92118c692a1b45ec63d2857c9ff6b4ccb9e3c1931e82b10 - -g_scalar = 1200000000000000000000000000000000000000000000000000000000000000 -r = f82412db37333f2074feaff5e72c2666cb98c3ea2233117dba89095174f9fd77, 4aee7f5ee5034187ca7413a653e62c9f81a497847abb71aacdc3f3af9d271ca0 - -g_scalar = 1400000000000000000000000000000000000000000000000000000000000000 -r = 5ec40582c9a82fa78d5d177c64ff8578982be4fd46700b8b37071afbe8316c45, ad4b4f6fc0c14de6312f39604bbbb74c24e809f49f0312845518e37bcfa86678 - -g_scalar = 1600000000000000000000000000000000000000000000000000000000000000 -r = 2a1ef7d7822e8cc963aa5cca4fd924a2b44de63e08ae4169cf62c250869027b8, 80a30ac6ffd127228c82e7333a87f1ef82842bc04b8636ebe41b37c66eb35f3c - -g_scalar = 1800000000000000000000000000000000000000000000000000000000000000 -r = f3b4962f5f3e6c3e028a81514f3cf2dc6415834bac4ab3aba3d6f4868eb6e843, 1b77791d06871332c31cdd6b9b149ed6437a6d8ae10bce559119ae90987dd2f2 - -g_scalar = 1a00000000000000000000000000000000000000000000000000000000000000 -r = d9025fff8a8af1c635761c8ee1f6176d54c439b0391fa36e2f41e643356317fd, 6babe94f55e3b77f7aedb7c7f54a2ba4bb48dd1395a4745b8c826f3cf7cc4474 - -g_scalar = 1c00000000000000000000000000000000000000000000000000000000000000 -r = 1eb6a9688f95277ca3fd22fbcea3f029965a774094e746409c34b650e16e05e9, 12109c4aacef5cbdea92c1669b840d48ad917201f58f2fee2520a63d7bad84f6 - -g_scalar = 1e00000000000000000000000000000000000000000000000000000000000000 -r = 870ae6bdc2754097035ebe4addc4f080ed400a2232cdc71aee20415c2245134a, 4f6d77b2755de5a2e959fe3e5cfa8ca6f57f1956e4f55982a192e684c048d72d - -g_scalar = 2000000000000000000000000000000000000000000000000000000000000000 -r = b7a23f34b68e19f8d0107914ceaae10ecbe906f04c93302efc189ae71e29a3ef, 3cf0bbf83d44303865591bf64da1711303198c6efcadc9c8e9d875c2efd2119d - -g_scalar = 2200000000000000000000000000000000000000000000000000000000000000 -r = 68a9969c8e2256288644ef1cdfceb8ab862ae25e2ece8f72d32d7cec0094e84c, 79f2826cc85b9705cbd09a659bf0cdb6308a6e1882ba242bdf209e27b3117876 - -g_scalar = 2400000000000000000000000000000000000000000000000000000000000000 -r = ada4cfdd7ecfa8408c94a21ab972da90598d0bf8849be4b7ab293027aad991c1, af9346e9eb8562e0900424eb6a652a557ca617a203219a3493d4b9c0fbcec63a - -g_scalar = 2600000000000000000000000000000000000000000000000000000000000000 -r = f6e29e442433b4c681d700b2c6fa654a9edd11a6b7a82bb80ef6a240c793c0cd, d5dde3b07207c7a0154da1d18488497a8863e0e1ac1d5f51aadd3d5899f01b1d - -g_scalar = 2800000000000000000000000000000000000000000000000000000000000000 -r = 54476778acd2f1b6c92becfa390b3ef2b1643ab5911bc478c3e04d7902381461, bb04730090b0790aee182910b5a13ac32bc1287b2c21c65a8daa0c4d66bf3aaf - -g_scalar = 2a00000000000000000000000000000000000000000000000000000000000000 -r = 574fc2b081704bde30651575aab5306d953939f44ead0fd9d6d8bbd2f2338d2a, f2d45a7b49c99a13ed542a652c51e949e72b8a05eb63f38f3402081f4132f2f0 - -g_scalar = 2c00000000000000000000000000000000000000000000000000000000000000 -r = 17f904ba45b0995e765a50db1a6fd0ffc5772beefdc3a47b83766947d17d4e0b, c8fa426a142fd4d56738d94f46cb1fd9f56db7f3c270aaedcee643832883487e - -g_scalar = 2e00000000000000000000000000000000000000000000000000000000000000 -r = 5090d91f0b80bcb946d480d77119c60ed7799b31b313c052bfe48a8ff43daf9d, 3fdaf62162e1d85a769be02bb1d5928c16e69b4f9915aa0ac94c4c1e873bd7bf - -g_scalar = 3000000000000000000000000000000000000000000000000000000000000000 -r = 389caef34ec5b10982159d07de7d6f2c945353e1b2d4c63aae485bb72b724759, 73429bb9c14208a3816fa3ed83f2405f2dc2cb7edd99de434a8ebb53db65ef14 - -g_scalar = 3200000000000000000000000000000000000000000000000000000000000000 -r = f5aa74e43a64439e577793fce12c68ab07de7ab35133e5a2768978afed08d68c, a2577185ed42cc08a611d41c8ef20f302003ddd41d4459026457d90c4505e9f4 - -g_scalar = 3400000000000000000000000000000000000000000000000000000000000000 -r = 58c8a77ac0d58abd9947c636a9b6e05a8d98277b4a837f6908ed8febd56daf06, fbe185ec38e1eb47ecbd1958e3fb0c5d16cd67c71076d3d3f45496a45f121e4f - -g_scalar = 3600000000000000000000000000000000000000000000000000000000000000 -r = 9bc6c2af18eaf22cf81a4b3e0fd97269d8f158f5d6df29e581ea0bc89b6956e1, 63b4b278d7075e1c4339549d8f2f593c03bbfa0f9251ed45c1d3ce5e6d62552b - -g_scalar = 3800000000000000000000000000000000000000000000000000000000000000 -r = 98fe1c61f5b61d31fd025001b905b499dd4d06aff39e7832b7ef9760ff79d2ee, 08e213122c3832dfa322b09f514eb16d376e3b783009cd9aa9f83980c5f12805 - -g_scalar = 3a00000000000000000000000000000000000000000000000000000000000000 -r = d7d80165dd6861d485715b2edb2589d37b0b8307280d1be142c772b68b61c205, 458ae65ccb0f3654205e28984256ddbb1095adfa3b8abd756235746580870184 - -g_scalar = 3c00000000000000000000000000000000000000000000000000000000000000 -r = beeb3ea58c37888ea76697bd602e90655dc516824ddbc0b6aea68626dc4ad4f4, 6ca1346292cc09fd9fb560949ae44df2e48b820ca35f44841ec4a2f214569113 - -g_scalar = 3e00000000000000000000000000000000000000000000000000000000000000 -r = 782b816e9f5238b55631049161a549b25d485fac31ca379550e1b82c5de1691e, 1b102a8b5984701daecf22dedfce0da0a9ffada33f2952a013f2b973463d034f - -g_scalar = 4000000000000000000000000000000000000000000000000000000000000000 -r = 412c9e1e9fa403a4d1b299b504aea4a9047e2ccde180b2dcb618d590b01e6e27, 178851bc75122b973a1b6fcce668de1949c50136f332b8e388d28a3679407552 - -g_scalar = 4200000000000000000000000000000000000000000000000000000000000000 -r = 4b782ecabc2251e29f1ee33c0910e35e65854fd78777a63d723ee82acb8c9fb4, 838a3cf0c1e978c538fefe60d32301bcf5f641d622da95345a06824d45f07856 - -g_scalar = 4400000000000000000000000000000000000000000000000000000000000000 -r = 720d5901fc5cb4c4f2876026ea269465bee5f33e85425bfe3d16740409d9735d, 59af953a94d4d6172b30b9649be40d5479e30056938b9bc5410357864dac8c11 - -g_scalar = 4600000000000000000000000000000000000000000000000000000000000000 -r = a4fe196b936adcd72b999e56f814d996687afcc16c6ac81b2bba2fcb7bd03b00, e547a7310d5e981fd5dd716dc07c21d2111d82a22d9ab330d7165c2a897d9f1b - -g_scalar = 4800000000000000000000000000000000000000000000000000000000000000 -r = 47f93e8f0d2f339d2df4486ef3b4e2e0fca35bdae5182b8d7f4b55864f6dcecb, 203de9a1f28da96eca2b45f4462b7cf03e07e2bb1c09ae9c471dbd283e36c4f7 - -g_scalar = 4a00000000000000000000000000000000000000000000000000000000000000 -r = 4b5a7b2307c5f1098b5c3d0371c68991750aa51875c77f94fb78df45414657c3, b30352343b2825bbdfd9248609e5e644ff564852517f1beb482484863e7fbdee - -g_scalar = 4c00000000000000000000000000000000000000000000000000000000000000 -r = ffab5705044464f22bac283b351571b3b88e7c47d8d42a028b002254c72340d5, 6616e62a9c8552a942e384cb8242f342e40ef31b1a8c8ca89700dd41addda21f - -g_scalar = 4e00000000000000000000000000000000000000000000000000000000000000 -r = 5ea74c730418d46d3da600eade1864dfc4ae8bbb8b383d060471cf0dac517b4b, bbddf0fe206581d430920bec53ccf2f3729794bcde6e83aed2935c8dbdd0739f - -g_scalar = 5000000000000000000000000000000000000000000000000000000000000000 -r = a35aa23fbf846bbbd43da670d2f74daed61257ce383c8ce9b1e13752fb85fa4c, 50d05aab9bc6d22e34d7f52a3c4aa158f6df8ee0c363473b5e74235d4421fc83 - -g_scalar = 5200000000000000000000000000000000000000000000000000000000000000 -r = 4644b8fb9aa64d9150c9f363b5117831ef6feacd1584fb54adb84fb6c1127e87, a50d957e7a2eedd563de80073a74db77bf746812f4dbe25c7520cb714df7be07 - -g_scalar = 5400000000000000000000000000000000000000000000000000000000000000 -r = 91c3a88a5b6e8c279d0a1f05fd8884e9f1539d9e4c076aa9d334b37c4b8e12cb, 43c450343061cf41d5e6b70871e075d933836e740b98d179b92ea188ba7aa4a1 - -g_scalar = 5600000000000000000000000000000000000000000000000000000000000000 -r = 5e76ec2fd83f56287099228335b50df42b516dd73422c5c118d919e2ba9fa405, 215b92835941e6391d53cef079e691830ee524a532dd167c1b779bf89d2c8ce5 - -g_scalar = 5800000000000000000000000000000000000000000000000000000000000000 -r = 3ff4444fd2ad3a96e5d755618de929cdad07e3c765ba422be4db7c0067eb93d4, 3c1172ef4a9b38d8590a7aa07ef7fa514ebb46fca5534cb835d53ebc71f14e5d - -g_scalar = 5a00000000000000000000000000000000000000000000000000000000000000 -r = abe32380275a9ef53b7cd6098dc0954228abf7b7a9c7d8a5ec69d5a37aed7fc2, 2760436fe662ce524908b1c152c98e5cb143e958be997ffec824b1faa68f9d75 - -g_scalar = 5c00000000000000000000000000000000000000000000000000000000000000 -r = deb035fcce7723a22ca3e0a1d449c1004ff211619adcd4bb4fc56a1be50edb52, e3b01067868e00e93da1a02a95b3c970d15d3b601d9c35c606a90a818855d505 - -g_scalar = 5e00000000000000000000000000000000000000000000000000000000000000 -r = 7c0fd64417a177b5010b2e0df05981da66d63eab9af46f4588f0367ae686a10d, 9cc89067fc5544e084859663ef2c83e10670c8e054a309b866ce10045a78b655 - -g_scalar = 6000000000000000000000000000000000000000000000000000000000000000 -r = 50235a0fdc91927053b2bb803ee35067bc56637b5f29cd078c56e735a64785f4, 8881065b5ec0f80f80400ba5f0f805bac34758318396023b191ab6d8f2c4aa65 - -g_scalar = 6200000000000000000000000000000000000000000000000000000000000000 -r = 2dc1b8bb6885309fb1e70bcfd44571115df7fee1116cd289c547a21465944d7c, a5b5defe5200f553f4e9d93004744d802eb3d19473d8a4193827dfec742dc4f7 - -g_scalar = 6400000000000000000000000000000000000000000000000000000000000000 -r = f1445d07414974411c75d37565dfd734bddc1fd9d5a52b5d45ab2440e4c3c19f, a3ff3123e96dfbb148d9cbd09098f9e90ef785a5b32643dc3fb416769d45f137 - -g_scalar = 6600000000000000000000000000000000000000000000000000000000000000 -r = d1609bf2cd28c8fdc8b4a3a98a9fed30e6959e40b4a07fa19ffe9f1de32e3a6c, b5e1f94bc9fbe1d5d2b32c22031428bbeceec1c7af4b3cb2d046e723b9329392 - -g_scalar = 6800000000000000000000000000000000000000000000000000000000000000 -r = 237c88057388378848d61dc507b6f556b2c6a5f201dbed52cb4f805a3e4e7d6c, daf7d5011bb307bfeb90b445e5c9c0d939feab8df098fe30cdf1b1838fa60a0b - -g_scalar = 6a00000000000000000000000000000000000000000000000000000000000000 -r = 845a882c8859bbc2e883d25ff51993083258a70ad731721eddbead4a788e09c4, 6ab31c3ff968c9f8f6655a5e3471a59f7a47d44bc5145873ff614cc9b13bd412 - -g_scalar = 6c00000000000000000000000000000000000000000000000000000000000000 -r = 4d6eec323a1f89e99267af0a5dee21c6d56850cf6466696a53c474abad6c4e7b, 3d620c8a7f89f8d167d3a4762229b54cc7d35c308d9c659e56dbf513573b08ba - -g_scalar = 6e00000000000000000000000000000000000000000000000000000000000000 -r = d28527c6a3824aa9d34030745566465654a149071f100d40b1b006aebc0d6863, 30a82b3f8ae892685b221411648e40d3abe5a927d3815d8acea8ea167d1daa26 - -g_scalar = 7000000000000000000000000000000000000000000000000000000000000000 -r = 8f12502ee0138997ad364df067b256dfde2d4ad1860b8bfbc370e522cc1b5e83, 03511dcdcba5dba53f89b744d3064ba6e80014adc0bc866a503fa0dc7783920a - -g_scalar = 7200000000000000000000000000000000000000000000000000000000000000 -r = 88a0df625c0cd66e4523b7dcd2c772806d46968e6a3bd9ad34f365ff3405157d, 65ff8cd309c966cc43c7fda55ba4408f83a5028dceda14e831f390f0c4591506 - -g_scalar = 7400000000000000000000000000000000000000000000000000000000000000 -r = 350fed185a914c72b1ead64104f9670908dcf2b70004539e0f58cec54e27d357, aacc0f0d9e66d9a362c306869a449d5145f8b46f46d04ac744f43523c5147854 - -g_scalar = 7600000000000000000000000000000000000000000000000000000000000000 -r = 721595eece728342af86c88034fb313add3f191127a10139823002854cd4d5e2, 60c44e259fe4b513848a5b75cda0ac98bbc4b1385076ae4c561a4d050d3f67ba - -g_scalar = 7800000000000000000000000000000000000000000000000000000000000000 -r = 394c3ca1652f359aa37951abff9f5089563ed687c3db1e5fec79a10fae256721, 4efb24bea05c73001333ccc2feb45e46102c640f0a492130b6ae4cdc253f146d - -g_scalar = 7a00000000000000000000000000000000000000000000000000000000000000 -r = 829bec8ffbbc8adbcaa9b2f496d71f842e0d323fc98fb2ed918ad277a25ed969, d7e993dd450011b77fd50ed4dcc2db1d573f92160504d1ccc5b2d540b0a840c2 - -g_scalar = 7c00000000000000000000000000000000000000000000000000000000000000 -r = 114608474b9883e7e6183976a85cf4eaabd1eb6c8fbb831a86d4cd28294b04f8, 686c24f9f2e55be24ce0258ea8f8753a0cfb6c61aa4f3ea4a3185fe73caef54d - -g_scalar = 7e00000000000000000000000000000000000000000000000000000000000000 -r = 8ccebd9296f0b3dbe251932fabb53deb5f020d8cd37bc364b63fd5141593f8c0, cb327c1a879a9b22e65a7ae03cb0f93933358298acb501e46d0790bb64930db2 - -g_scalar = 8000000000000000000000000000000000000000000000000000000000000000 -r = 9211e489de7f4f8a426eca29484c2ece9c4e7ad63c6341fb197dd46d95a7b1a2, 25f92e470f60e01817286a6e1c3eede82b2c09100657458614997f6ec78ef1f4 - -g_scalar = 8200000000000000000000000000000000000000000000000000000000000000 -r = 0695d25fcba9327ba26e5822d699d95b7a6c1acdf37b2836203a31d5a56c98ef, 0aa018cb90f6f3a69438e11059ada186448060e1e6b21a4055ddc74148431893 - -g_scalar = 8400000000000000000000000000000000000000000000000000000000000000 -r = 95e360666c4165c8b8e2959954327c6554009f1e6d947506e4cf728185967fad, 587c76421d9ba792e3221ff31f0e5f79505f09934933a10d39bf3074a3b3f527 - -g_scalar = 8600000000000000000000000000000000000000000000000000000000000000 -r = 3805f4e7a74465b996976624e2d6122797e8092e1a7c6add2ab55f653e360df9, efa55067d6b676840d99ae5a033531efc006b014a204ed4161223dea0a456eb9 - -g_scalar = 8800000000000000000000000000000000000000000000000000000000000000 -r = c48d07aad919b53f72bfcbbf25a2f91f7112f4122205eb70be6dd7fc6b7733ae, 4e873d9c7d35199d38f52714422d39da24504c146efec5713ea468c126a1f691 - -g_scalar = 8a00000000000000000000000000000000000000000000000000000000000000 -r = ef1117f3334d256570ec0990a1bb0900c512ae94e04e361fbd7055ffbd4132b6, e1ea4cb9efc6827777c9f2d8e753987a771143afc0313b2a53d94be882a88c45 - -g_scalar = 8c00000000000000000000000000000000000000000000000000000000000000 -r = b36ddb5a551266fc72a174550b384fab97c8f9d8b94fdd362441c4c0ca8f86c8, f4d28e65ef714ddc20760054070a8a1f3c306bd0f975bd668ce8a71234127c81 - -g_scalar = 8e00000000000000000000000000000000000000000000000000000000000000 -r = 1f07fd1a9ee01d68891d265bb9f79dc8d31da5b74b957a08455930bfd7425424, eef295c42eee7336a82c0ca3bdc0a6fd2cc99c24d290dccab10911c75da30291 - -g_scalar = 9000000000000000000000000000000000000000000000000000000000000000 -r = e0e5daeb54dd3739389f747caf3c3030703ef60057feea5b805c564631890a36, 4a1bd7b5f95a8c3b37183de2af20bf297e4bf176b5393962fe24a4c3c9c9f155 - -g_scalar = 9200000000000000000000000000000000000000000000000000000000000000 -r = 11a4ff0222e558e644144f890e8ff816669d7b57254db82633e0f086aef314c5, 5abafbd19e0e870c6e29235b0555dacdf757c2592e540c0bc8e5326f243efbe6 - -g_scalar = 9400000000000000000000000000000000000000000000000000000000000000 -r = ac45249aec82d6d8a5e1d3c6e19adb253f01996cbb97d0320130abf38cb5ab31, dacb1586f624faf0efb81538eba8bf94fd211c65b681d483c276ef2e5cfbfdf6 - -g_scalar = 9600000000000000000000000000000000000000000000000000000000000000 -r = c738cbcb5a8e43bad9f6002307a003ad81351ce14ffa84fabe1b922b396fae20, c9d2de063135f1936737fe3e62b46bfbf10047a165d1817db5465ec8c9defa53 - -g_scalar = 9800000000000000000000000000000000000000000000000000000000000000 -r = d723ad15da12d3f14aa86124ac83299759198011fda9f625e8ffb637410eaba3, e8d872c4801b2b3a921c79f249602f98ad3084c9edba98ac55ddc53f2da6810c - -g_scalar = 9a00000000000000000000000000000000000000000000000000000000000000 -r = 5bddf84d01fb6ab7717df9c3adcedc68fbe6587456a7fbaf7cc7479be15036a4, 159078eac888fcc8901b2bf9c90c29bb7b7efae9324861aac330a36e5c6c7f9e - -g_scalar = 9c00000000000000000000000000000000000000000000000000000000000000 -r = 0617a8dfe008a218c2700de3e39cfdf9d6b37e5eadb39a5c5e6afed1778930bb, 4b39280254b5248bbf2813099a8fa83410bffb7b65fe50a73e994417ebf1e6ae - -g_scalar = 9e00000000000000000000000000000000000000000000000000000000000000 -r = e19854ec7a29e8cf8765ed78b03c224b072454d8cf4f0b1b746bf4ffcd5eb860, 6869db2586f038ea0c2bf32a39d92c4f42598a6fd2621444499a1924aae5d08d - -g_scalar = a000000000000000000000000000000000000000000000000000000000000000 -r = 6372def79b2bafe8b18e2c1354107588281fc8dd7b87f257a83b969946191d3d, e3bcefafe42700aa1eace32d84310cf43f2dd4b756167a3fdaf4bb480d8972ca - -g_scalar = a200000000000000000000000000000000000000000000000000000000000000 -r = 9e15ebed69c53ab58cb605eda605ea2cb0766c76159bb5814ecfd1490d4d367e, f704a6321f2c0b3344ed22ea847dcbed8da47d36c3dd99d1f5b16de3f0516372 - -g_scalar = a400000000000000000000000000000000000000000000000000000000000000 -r = 3b082784ac9daa213e9231dde959e9257f81bfeceb104d11989cd51d81ffd706, d3bb418ca5f9a35c8e72fb72f2813e703d3f6638c14faed9e28e02ff027f1a57 - -g_scalar = a600000000000000000000000000000000000000000000000000000000000000 -r = ed37bac889c8cd093feb1494b52fe95b30df23d4bf8ad1baab45ff2f3b264155, 1d59a9bc917e7b53af4db00969712c98aa54ea60a5eb3223d4cc02f4e78aebca - -g_scalar = a800000000000000000000000000000000000000000000000000000000000000 -r = 3eb44ebaa26cfda9ec294f9bd82e3b0c7adcdc636cfec330698970dcc1c88910, 6702ce3ff233fd7ae6b382ff1868400da4d780cd8c7d34ed2f488c9ca79ee104 - -g_scalar = aa00000000000000000000000000000000000000000000000000000000000000 -r = 6fd044f86e7c58d93fc322e9763408262abc70bfac2a8c9eacd17f62a70bedca, e351f3762a24e6bf71049b174d8d3a774afa5a849cb3f817584c4855c17a97d3 - -g_scalar = ac00000000000000000000000000000000000000000000000000000000000000 -r = 03e6e884142b953fcf6e45c2f0b7938f042782b6c788822f7caff2a8dd7f4788, 63fc02447f948e02f548a883d347cc7b1e5b425236cb6b7ac6b32c2f748f7fbc - -g_scalar = ae00000000000000000000000000000000000000000000000000000000000000 -r = 541f1c670f8d83510a4f0dce10075d18a773c212de55a51ab85d636205e61d13, e7d652a370ffcdc3de32e541a473b58679b8353f2d2041f627ce3096f0c12a9a - -g_scalar = b000000000000000000000000000000000000000000000000000000000000000 -r = 35e8048ee03c366502e23d41dfc6514aa5db5ab62ea604675fe5691ed785e73d, 1343d185dbd0e40fe8cacc6e2c6646b828ec3b4584ce1a5a3f8b118f1adaa0f8 - -g_scalar = b200000000000000000000000000000000000000000000000000000000000000 -r = d8e96623f2e1ed0f96c490c17b199bba4831540870192a511fd78414f227c4a5, ce0bae6ef7736b606a626da351e5f48aa91730a91e569bed63cc47ecde7e0cf3 - -g_scalar = b400000000000000000000000000000000000000000000000000000000000000 -r = ed1b755f2815d3cf2138d71106187ec35898b1930650dd7ce81907220b4ebbfe, 4c7fa9337d3ab5d5aa78724c853652b08a7c8ab93a11682f54155e144f394514 - -g_scalar = b600000000000000000000000000000000000000000000000000000000000000 -r = fb909a74cc54235e35059c6f94d6bfbf9aa5d2c1bd5a35267217348749af1daf, b0be2db59a9947bcf853ecbfbae332d526883fe01b998b9831bfe5d7f389e929 - -g_scalar = b800000000000000000000000000000000000000000000000000000000000000 -r = 12128b2fd412db03d45acfecc1c397c7110ef147732ebbe02e605d97ce76aebb, d05746ae395ac2650a9295d2a0cb6962eba2732db2236813027ef0992a4d35e4 - -g_scalar = ba00000000000000000000000000000000000000000000000000000000000000 -r = df8df34707ba78f463d2778a91308c54034c07d0eaef09eb0d13b0393524a32e, c7de1146399c30471b4eaa5f7343cb8bb17f477a56f9244daadb189f64900000 - -g_scalar = bc00000000000000000000000000000000000000000000000000000000000000 -r = 570f50b9ade5e185d379afd6bbac1e92f1ca3c3639b1290c6b3eda297e866baa, 3f62e47b7d386fb0a919e766cfad95ba9a8729d3a8c1ab808daf3d6fff88f997 - -g_scalar = be00000000000000000000000000000000000000000000000000000000000000 -r = d9b588174709218a1980177d765796027ca43bcb2bc83e9c14dd8c3678ffb696, f904a4e4e73a0a3b5964a6a9a7f6f77a5becb8a8987c8bc5829b009167c19b38 - -g_scalar = c000000000000000000000000000000000000000000000000000000000000000 -r = b37b515f042eeec8d64cd42d9c875d9a1a1db7e49924182ae5d7f844caaa358c, 55a481c08236ca007dee410259b7e17efc322ed9e206eff34d4dd4097b165fbe - -g_scalar = c200000000000000000000000000000000000000000000000000000000000000 -r = 1e6f624584d42c5a9fd11c23e1b2374586dd7cdb056b372c9a7bfb76f3086c58, 0c3468b965d25df2d1f1563829563068d8d156ab799b8fa8b0efc8b0f47a92b2 - -g_scalar = c400000000000000000000000000000000000000000000000000000000000000 -r = def3204ff622e0f51e7dfc2f11b5036e56aceaa0609c4809389ca9c3b1d2d491, 9eb080e2c4003d74e3667bbc9d705924eaa2dc67b712a88a4e2efa93d2feb754 - -g_scalar = c600000000000000000000000000000000000000000000000000000000000000 -r = ac2244a68510d43ed03eb697c84cbed4e8e7b7e5495fac838defc208af8cb7e5, 748620b2ee30108ffaa231090d98ee944ae45533797fe8e4bf2d0c017b291e8a - -g_scalar = c800000000000000000000000000000000000000000000000000000000000000 -r = 3b2b115548841c4bac23208fd26485e9f65a3640454ef41ff86d13f9e149e73f, 55867cb65a7240c065e50b02fd8a798096500e3972b44b056e922c0653e1fa12 - -g_scalar = ca00000000000000000000000000000000000000000000000000000000000000 -r = fbede0865908334ae1e330f9c70cbc1a87382d6f40abd3c3eb3a10b1e94b9d1f, 3dd4bd39d7699c15f1271203bb2ddcdeae155b4e9f004328e4550b34ddfd4514 - -g_scalar = cc00000000000000000000000000000000000000000000000000000000000000 -r = db88c71bbeaf13bc07a69a30ef6276ed02b0c293cb37d658dc2d1be24becfdb6, 7802d95d4f739cddb7061f336fcffe88c2e36dce9c8cd8d7d4386ef5c97ffe33 - -g_scalar = ce00000000000000000000000000000000000000000000000000000000000000 -r = af06ff2bd95601e3e6b95f2fdee3d5596a0d1bea32ab6a5c6b768e347d563eb6, 89fc97a1a530cf2eb04215b861ba7a5be0c5018bd089f8f22cef2c735f8a91b2 - -g_scalar = d000000000000000000000000000000000000000000000000000000000000000 -r = 956b31e003c45e52a078868ef78edd391571580605d6297b8c885312c23fc975, 8b37b6344c14a975419227b47e2f2598c8d5dc3a0c7e673f470275d5ff7b33a6 - -g_scalar = d200000000000000000000000000000000000000000000000000000000000000 -r = f7ae11128858d4bd081e8fb419b8ae87f8b465db160c6066244bf1db2540eb02, 622f8ffb2a8430a2b4db4ec54ae887dda6c90d66a15f5e44945a36fa107b1802 - -g_scalar = d400000000000000000000000000000000000000000000000000000000000000 -r = 7e8caa24bbb577974f1bfe0fde5e42def5eae8c7f89acdaff3022fb6e646703a, 1c51897148de3dd703c995b69226c8fd51e066afd52bf3e445eb9c742c570f45 - -g_scalar = d600000000000000000000000000000000000000000000000000000000000000 -r = 726cd1b8f826237f899ae92398f41b6f681817c7c9c515ff302c3cfad169508a, 9bef669a5f57c92a2fca18c156cdf1c5f848d43a7aceee1628cc5ca8b512b56a - -g_scalar = d800000000000000000000000000000000000000000000000000000000000000 -r = 2cd615404fa3c57214f08f32b806bbb3c97bf51d0ffac3078f75eab499646d05, 474c7d9f869b581877f70bfb6411ef40835934552e3fdb09f80d50762a913b60 - -g_scalar = da00000000000000000000000000000000000000000000000000000000000000 -r = 44e6235a685fa8c247bd7309a9de5fa66db2fee880a40b64c0b8debf4aa4d144, f7cc4793a3e6270753724b3609098e94764b9d140c4f3dcb35155aa0affeb7d9 - -g_scalar = dc00000000000000000000000000000000000000000000000000000000000000 -r = 3027a162030cd7c2ba74f8354822722008faee4e603bb73e4565f9a834ddc625, ef1b14b212342d60ebf809f9d37f37579b8ee17af351af8448c6c7ecf72ca3a3 - -g_scalar = de00000000000000000000000000000000000000000000000000000000000000 -r = fe35f5c66e9d40a301eee42e3d4f9f3ec28f13ad81f4f013096bb45b738230f3, e46ffbebbabc0d7430ec627d406e1bbdb1843e7fae23b141e72c7d734e0177a1 - -g_scalar = e000000000000000000000000000000000000000000000000000000000000000 -r = 9f40ac3bae92032334e5d0dcb987a24a5e0e8c3e803e25dcd0667ed68b11888c, 7ef1ec27c47bde35491ccd7cda64f1b7a128bf926b6328f95463de9534e0f63a - -g_scalar = e200000000000000000000000000000000000000000000000000000000000000 -r = b9c9c244af407478c96adb0c950359af1d0243f09da21539499d4934d78d5664, 9a9f02b9c6f6ac05800b3daa30d0ea90d96d68a41e822ee4d77655971b5fe2fa - -g_scalar = e400000000000000000000000000000000000000000000000000000000000000 -r = bca14b180256394e833badcb026fbed49d4cac5be7b7f4d976fdb4d8d72905a3, ec67af7ed909d15e2699e6ab07111f87b3ebaeeb6de16ae709eb7554d2dfa217 - -g_scalar = e600000000000000000000000000000000000000000000000000000000000000 -r = 9e84b1429d952dea1a5702fde822c43a6440a71137d7a6d5b1a124a2e982371a, 40f7881d6809e7a532e57be2f72c9bb32b9547bdf3b8c6b3f9a25a6e707ef853 - -g_scalar = e800000000000000000000000000000000000000000000000000000000000000 -r = 5774d975adf3dd428b24580ccbb8bfc2082ec7feeac69a05a84eadc3c6f859bb, a4f85e5d69dddf30f442b4315724f6090a8b1fdeb62b2057f302f1c1fb18545c - -g_scalar = ea00000000000000000000000000000000000000000000000000000000000000 -r = 18b7629228d8a479ef8c3fc19f7258a24084cd681c0bfed585b4a7b6c5b52828, aedaaaf8428b0efa574f47076250e4f54fae49a87cab5893d7a01feafbe6fc5f - -g_scalar = ec00000000000000000000000000000000000000000000000000000000000000 -r = a9269757ad6c71aecd89a9d614befaa9c670d56c86853eddeff93c2d3edf7a05, a4f07fcdd7acca82ab3fd51b72ae50a26d356b17b15f40fa3be313ca58770e90 - -g_scalar = ee00000000000000000000000000000000000000000000000000000000000000 -r = b5ed7a9125881c7719ff07a13ee17b6081df350185faadc70c267dd0ae0c2b14, d40ec72633c833eacaede52ecf0b134aa9c47e6a2dc783cc117d3230ba9c4cab - -g_scalar = f000000000000000000000000000000000000000000000000000000000000000 -r = 80f1a439c929319d7a3a6453d4fb689735dc136663621bc1a857240fa36a2737, 50d7c67d372ab09cfb0d49241e01d0efb0b537668078c5ebfc18274bf8cb0ba0 - -g_scalar = f200000000000000000000000000000000000000000000000000000000000000 -r = 728fc5136ff083f3eb5c80bd85a5f16d33075ddccce277ec4182e4aa4bf75924, 20458e590c1c99290a8dffd60ac0fea619539bd3c1195aeca3c78e8fbf7992ab - -g_scalar = f400000000000000000000000000000000000000000000000000000000000000 -r = c02fe1c417b27af67e00049f9ab0deefd6ef61aff90e37bb06c9f96c6e75e767, e3d3f45da588df43db9829701886b5db90f3e6f2dad02337c82cf700840ef4dc - -g_scalar = f600000000000000000000000000000000000000000000000000000000000000 -r = a883f42917abdea70042d1b7833a576b51a3fb710ce3673f85d05386724c3c80, 5e930c0875653ecc219a96afb9fae1b9eeed99c9b88a535b4b07e8b02f551714 - -g_scalar = f800000000000000000000000000000000000000000000000000000000000000 -r = 5f2f286449c33aa7ac7d0e1c1fb049783f46e326ce433bc6dfffa17e057a3df0, e52d864891f945f1ac7e4c217bc5dc88eb665d859a96d81e40b2e8e311715d42 - -g_scalar = fa00000000000000000000000000000000000000000000000000000000000000 -r = a8b7e8a7068a16707ae69dc317ec34c204b86de7b0a0125589502abd170b0b8e, b5ab8a1239d9ffbb7093e3672489a8e4ccf0516c9ea9316ef31c6e9512a2b866 - -g_scalar = fc00000000000000000000000000000000000000000000000000000000000000 -r = 7d6dbe6556c0f8f08208e6ce3c650c05791a0732e423b40f16ff861277c713f8, c8f21b5d95a05c5219d877e66d0740e53df5baaec2d1bdfb50fdc2c38cd2bcf1 - -g_scalar = fe00000000000000000000000000000000000000000000000000000000000000 -r = 8ec353c2064ebf7c5df16fb0f8867456296c7b9e57af9e532eabd53494b13f3e, 849f2f20957c715f0b11793fbb0250eabf97c7146277a093361518688f5b87db - -# g_scalar = n - 128 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d1 -r = ad311f2c46d5a6173749bba4b3ad9db57ef2b6b9ac62ff5463c5cb817a2ad62a, 05c72cde13ff7e780755d9928a294ec74b90150dc987cb0048857f783d00c492 - -# g_scalar = n - 127 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d2 -r = 15fe6a86904a36cf6072a061ae619f2870e9016cdddfd92836e84bb6dee35b41, 898a6ddb541c3eb52f57786dbb0bfc0d02e3b569f529fd2f6549697409ffa69a - -# g_scalar = n - 126 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d3 -r = 6941195b752838c39a7d703660ab52e9519a47b4807a9d289c9635be52bf127a, 6e5b1591deadea0aa0eac0a955c921d27ba60a90ad89e8e79f0041d18f259ec0 - -# g_scalar = n - 125 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d4 -r = a9fe2396bb85b9cb04b76d2d1ed32559f72dab6d225733faaab54cfc93740130, 4e9295063c01443fae23a053eba00f2add6dc6c5a860c31ded74f2db40dde60f - -# g_scalar = n - 124 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d5 -r = d8c0472156db126649b1dfca7f1412750a10ed1576d7996d10f264bc85fc00a2, 7bb713506fed7602646b3b52b3661bc6a727afaf1b226fa5bc20540c32897bc8 - -# g_scalar = n - 123 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d6 -r = 2d7ca4d8f1e354871783d1b6917e47255a71497198a5ea8c62ea859803b58b02, 5146fbe29618773ba78f8d93e91c1fd525fb337771e800abc0964b2b64b2bcdb - -# g_scalar = n - 122 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d7 -r = 62280f9a573fbfa8bf357e0c9358983ad183a961caf64cbd536eeea92f4ff97a, 855c4c324d5efb4eb39466ab42ae06fa9156ba434e6fe2c2ffe25e48816e894c - -# g_scalar = n - 121 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d8 -r = e1a8d418f77f10e127d2bf4f683b30d1d71602d5b0e5fe2014d7251a8c03e3f4, 517c6326f166afa4550b2b1e6cc6b78d00ce7b7c25f5b6695b6be5e1895f1528 - -# g_scalar = n - 120 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d9 -r = 9c7ea21245a2473fb62aaf7c37e7454e094e7ddf4f6ab73a6ebdb7bcd0303ba4, 2ff813865b858eaeb732ea74d3e14abe65d87563555fcb68358918ab6b772fc9 - -# g_scalar = n - 119 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324da -r = 6ed0b988157b7f562be22ba0f3a49fb4062afb7c1e314dde87af199e6cc47305, 0120efea019118fd2817ebc7f0984aebe82d639c78848b687e9d30afd29ac026 - -# g_scalar = n - 118 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324db -r = 4977379654d7a19e24869d65bb07ad54f8f1d8415512ec1c24c00de93f5f68a6, 363b29c5671a649e930698ea3ad859a98be407f6fc437719fb0ca82e0f9e3121 - -# g_scalar = n - 117 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324dc -r = bbdbec7d79af29b17890e8d54796883355a3bb1ad9699e9208e4c4901b620dc4, d3208079bb7f001d623ccc6d0598d7a3af3092ef526e5caf6d8af218c1ae1e43 - -# g_scalar = n - 116 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324dd -r = d8f1fc5f6a92b9aac9f08a5659cb1b6e4b3de89bb2f5f79c87f9793bc9826344, 56375b4ad46ea8260f93d3738fab65a8ac3cf4429a47f0e979ca80614beda6a1 - -# g_scalar = n - 115 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324de -r = 7c3ff661d8ecca6e8a2627c4851b5bc7f15b920fa8dfce56ad19e039119f6cab, 16a226267767de4e237207aa01d0b6c8a94893a9455bc4d84622d40d2a0a4a40 - -# g_scalar = n - 114 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324df -r = 08e2f429f216dc997afec8bb9b4e920c18849f8ebc30d62c751e03f0216f7c55, 43f113786db22eac69467bebf560798e684a695fb28407b8a1a2207de2933cc1 - -# g_scalar = n - 113 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e0 -r = 734e0d078a2b0d3acc3a5ecb983538693289e86e10ec0d40a125e6c1b7ebcb88, 9e27df61b60c5ac32ec3356f8b80e6130594324f879f89461f26d165ae6ccc9f - -# g_scalar = n - 112 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e1 -r = 71704d008938c16745ab5a4d7832ba0c94e258f604a428f26a9505760a99cbca, 9afff3da3868c5bf18fcad9782c9827fa90146d23ff14df8246854f10774748f - -# g_scalar = n - 111 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e2 -r = 0cf804d77a9b6a20098f37bb0832c416327dac318072f08dd87f4ae086653aa8, 0650f5316fb2b8cfd8f5233a8eb74ecae33f2b325dc50598b463abc75981de8c - -# g_scalar = n - 110 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e3 -r = e7009ee6652405a945ae78ba39dcab99b1fc8c8c23fbbe6e76fbedb5a463fbad, 86735660b10c81c4d8f38f9391b7bf0ea89eb6f180fff6a9465703a073face17 - -# g_scalar = n - 109 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e4 -r = 3720b2475548de20e7b092174df861f4fd4f61e491ae8d13aec63acbdd10edd0, a02511c5e354ed39f329dd451478676618dd6277a93299f250be67b8140c2087 - -# g_scalar = n - 108 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e5 -r = 9d873705000a079bd1a8678742e1cbf414d147984d7df1ff2871263f72371e17, f2993035b4a2be93f71aba0e4ec1d4b6c9cc69948ff6b195c580b52a1fe001ff - -# g_scalar = n - 107 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e6 -r = ee206023efce1a7028f9cdebe9f6e8773571e4d1592ce3342ca0ba9c3796f4c7, 332816bd7158ff3f1ff7fc61fd21d00ed8ab1bdaf58097834dea61f7489c9623 - -# g_scalar = n - 106 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e7 -r = 7145405dff1765ecb81f9fb1279df6ff750c11bbc098aefac4c398cc1e628b51, d9d0fc13f8a85516a344f964fc017053ec8de7db843d8108c3c279e27c551e90 - -# g_scalar = n - 105 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e8 -r = 680d5abf65e03a86c08ec1602b1d28fdcb11125c02a9ba44de6ddcb77b371390, 2c292eed1161aed1b1cb924f8e340368378fa836c431801a2a1384440acd87c6 - -# g_scalar = n - 104 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e9 -r = 1d6de36b734fc1b835d2293fc7ac3efa90ee46554c2a623582d0020682c4bd6a, 9456d43421a5f33f8a51077588462f7b00330a1f9ede82116b953c403008a7a7 - -# g_scalar = n - 103 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ea -r = f51ec8724c3c386f57670e41bf619241d0a875e919f7f72c564bdda6c71f8d02, ebd64e0651e2c128590519f6cf5b06dba2086ca0d79e990cff513e61174082e8 - -# g_scalar = n - 102 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324eb -r = 0fcaec0ffecf6fedce33e49cdd3dac5cf5284782e9f60f1841a6fe768f9b4748, 5d88925f7be836710c2cb707df01871c9bba0433a436d55c35e31ecf5ab1203b - -# g_scalar = n - 101 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ec -r = e9b1c23914da499e6a610374c569a602bbe914d3b99cd026b7a96e0a4ea6fdf7, 6b3161f424574039a575eb9bb418886c8cedae7e90de97834a090f01523e6566 - -# g_scalar = n - 100 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ed -r = 55401274eb1385f3f7ac46733fe90a2ffe49233161c52cf8b9a17db9bf61fec5, 9c41619a5e8eabde955f973dcfab730b5246164a7a4539485a247ad3dc02f970 - -# g_scalar = n - 99 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ee -r = bc438ae1a4e65b07650522fd4a9a3b17b1f1abb66a7b43712d037bf83f9432b4, b598c01eab0329a6fc5c3d3846700b4c854a75c18aafc1b9ce4a815d7b96c3fb - -# g_scalar = n - 98 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ef -r = a6eecf308794885e74b44206ee3751becc8715abbc82a095d5192c88589b69ff, 160fb32bdb3d1cef94a20aa01c6f25a45c067c89255b379b5fa5855722f31c4b - -# g_scalar = n - 97 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f0 -r = f1ae5380578181c7ee848e1d2566805eda8cdb78397e43f4dc90323bafceb64d, e042b8efac30c1977ba880e0cd9f48987a0b263ca4974818d2384719638f3883 - -# g_scalar = n - 96 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f1 -r = 11eddf7fd0a0da0d14f356cc6abc354d6d490a4b19dd329b802b8d2333e12b70, c0d5874bdbe5d48ffc4b733b83d6435d02d0b07402fda7ece1df7cd727802e27 - -# g_scalar = n - 95 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f2 -r = 76a8f9fea974291f9a127f2bcaa12d0d6684ad762b346fd2263e039bb308cc40, c0d6c024d3290bc711e4e34acbbbaa5e9ab66367f3a2445f37fdfb649755e61b - -# g_scalar = n - 94 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f3 -r = bf87ea83037278d9c87bdb8203d41796955ef205d59848ebc82a7aefd2df5e7a, effe0727227a558507158615205669f83ffd79279beca88e3a7da59c78e65157 - -# g_scalar = n - 93 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f4 -r = 0581b4711fdf24984a278686e16396070aeaca9afd36b1af64cfdc70d9453d29, bca53b986ab0044d0093e587065d7ad0df4fde3d20de623a7dd6f1dac29e092d - -# g_scalar = n - 92 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f5 -r = aee309e543ae4336e4c8417839093801a8a38bc31487c5269d7127d76294ba47, 2eabd7a5d0554d6cb58df8a2808cbbd566d652b270b744ed2b4ed8c66ca6daf2 - -# g_scalar = n - 91 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f6 -r = 0211de8fd56927054a39f02bbedd4f4727113bb4ae6a94b8d81ad9386982f865, b58f5407a3aab12d0575a464f4b95a60dcab8e619dc803972a78ec739c36d096 - -# g_scalar = n - 90 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f7 -r = 8307d5cb55648a4cf3df44ded7ee64b747305b7483e904469af9d782de992e6e, 1b7a46f1b63f495f52cd6b04e3cf65a65400a94bda2c0211ac894fe71d88d7f5 - -# g_scalar = n - 89 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f8 -r = bd88aca74765b8053ea123446310eb5a62d51e29fd54487dc1ee6264a7eabe67, 8eaf07808dee1bbb854b622df60670659bfc7708c4600010484d7b41eb0496e5 - -# g_scalar = n - 88 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f9 -r = 948fb3f76932e6311707165bb939f40fabeee3e9369a60677d81fd488418cae4, 272c826ad87a68e312a307d236ee7b83420e89f073806245ffa5e2001542b971 - -# g_scalar = n - 87 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fa -r = 2bd0204360826caa041252997f6b0670b856664a2d4b409b516329ff7b4d8b2c, 50b6f7d92a300ea9570bc654f91a71c132f843cc3dca2a93fef1add99e22434e - -# g_scalar = n - 86 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fb -r = a9ea1b80f80e4b9023fb74270b4af06e783b9ba6744a6528dd5c2b8142a18dc1, 1936c4cd310249e36560fb0f17515082b5d4a12b82101ae4aa68a609123590c7 - -# g_scalar = n - 85 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fc -r = abfc8457b5e11eff36bf2f65ea65641aef617e0025af76773646b0dd7e1ee314, ea68ae1c1e34514244ff9951e0d7dc96316e11d9febd7ee46672053e70ee6d49 - -# g_scalar = n - 84 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fd -r = 2f83a889ca881f6c10b429a2811a47eb2cd0bab9941a27e9b7f1695a43020eec, b34c3ec9490c9fcc20b8be58e46613a098064580d1ba344eda9c3a6f097c176f - -# g_scalar = n - 83 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fe -r = cf3086e87a243ca4f87abebf2ab80485125d4714ec67199a2c9ee62dc3363a22, 680ffeccb849b41bfac95c624e639ed9a164e9eea9da5528a3ad4fae39b1f622 - -# g_scalar = n - 82 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ff -r = 8d97fd53554fa366b932d0c17527465559d18be925a81aef80ee662fad29cf9c, e709e0c2210c0663b689ed9ce704fa51be5b8e1c16cfb90d52a34db8328762e8 - -# g_scalar = n - 81 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632500 -r = e0beeb1aebff18d3b097c711165c6e4c8e9d0af402ba3183d3a5d81fc63d5e79, 8530bbe517a43ebb3424024630d6f2e05fd243be901a4d62019a80ecf7fe6c84 - -# g_scalar = n - 80 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632501 -r = c0bfffc45263832a2074213db27de57335ff9aa8b5f86a2c492bdc0752b3e584, d66a6e625b32d9a0ad495e8c6ddf0bd7e4fc828b4cdf1404dbd63dd5e2b639fa - -# g_scalar = n - 79 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632502 -r = 5ed556aae89327fc58f6428165f89e14dd306e2a05176f8ba40206d330ff0e92, 48a20a12e6e5bde12f8c8f3bafed7c8af685ab0166dd84e93d4e78f507cde447 - -# g_scalar = n - 78 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632503 -r = c0e78a3897536f3f711f8b7f7b5065a47e96610365013b3aade6af11a6ab1ecf, 07420d147b8b2f3815ddbf3310694b8cbf84005f4dfeec8eb74bc763b9bbdc2c - -# g_scalar = n - 77 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632504 -r = db15e4963d5baeb19c30c6422b2f9c49719a87be5a0ec9ce0a2193bfc266f85c, 7ab236296aefa062d4b0f38788146b15b877add5d160244d7c3cec641f2c8cde - -# g_scalar = n - 76 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632505 -r = 1558fe4c7ef5b48a7c703717cd1823b4285bed3c21848f49cd331464c89bdd46, 64c4fbfa6c47c1bb11b7d9566c81e45cc039199f2b805c34e6399fdfaf1512a0 - -# g_scalar = n - 75 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632506 -r = a22f8fbea42fd1f6f123716223af72e0cfa8ca0e2a7aa6ab616d2c02fb760095, db5e421d2f3dcfd31867f8588fba9581841e60f312bbc857af8d8a74870c2fbf - -# g_scalar = n - 74 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632507 -r = d176448e35b23e27b00eea8a5d34f708294b12e1ca1b04e046ce85a9e25a441e, f5b7aa6fd05e42d1883ad28aae66872ef3ba1ad34c400037a3177ac6d447f106 - -# g_scalar = n - 73 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632508 -r = b2dacdf66ef82fce794922ef17e29b1a2b34a7dc096fb852ae8f8fe1eeb03d1a, 3c68daace507d78859926dada17d2a4c478e459d1bfa35f62472337e0bd6ee11 - -# g_scalar = n - 72 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632509 -r = c3b025a015b15144eb5d0c75f38fae9cb1ee4879a360fb557331369679c1e3b1, 9032f3437f65f90efc9714e0d1bd7c1ee45f347463a2d195cc52acabf23bf9fb - -# g_scalar = n - 71 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250a -r = dd421b5d4a210364f94aa89b40750d0149c7cb94fc05804bf19f382e92aa7864, a8b3384c6c87986fee06b8196932fa8dfcf5ee6122b50e13a932ffe1c620c98d - -# g_scalar = n - 70 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250b -r = 100392dc78c04937681d690f2b3a8c597263de1539f76b817c5a2a14f58a379a, 3986c52c191d0c4f63391dd5d8365d152ee51bd352fe7d1bf81a1717a4106ac5 - -# g_scalar = n - 69 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250c -r = 49d3ad05548efa2ac856868891e9ae0987986a54361bfe259e5da11cc5e79347, 92c84e04ab904134ded953aac5722ed96415f2f1d9aa2eb06784f9780b14a309 - -# g_scalar = n - 68 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250d -r = 031195d5bb4a44b9b2cdb039f99c55fec35d34e70dd71fab8732d5cd6a93954d, 0996fb4dbff36b9dbbf2136131f073cd448fb8cc84a8207e455c80a2f7599f37 - -# g_scalar = n - 67 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250e -r = e8218ad07de96a54fc88362a891ea186c16d0c52a48a4ddd86f04d3b51f9c391, 02a6281365709d2721c138d73cf5695ffa50ba96f99df517d38ca53ed0cc5085 - -# g_scalar = n - 66 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250f -r = 78ed4fe6e3a7de485a7e384de42f8cb2a3cfa7fd44b81977c7c6e4d1c4ce250f, 4edcb865c16f620563fccbb48aaab052aa6edf9c2f0a44d556dce373161a8e35 - -# g_scalar = n - 65 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632510 -r = 01628c4706b6090abf639ed67765765e79527db7ba66f4b9dc2306ebfcdbb2b2, 82f6953ad0e8b8b0d36f26730c1faa29cc34896f459a60b999149d0e46a84b5e - -# g_scalar = n - 64 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632511 -r = 95fb8394569b38c77da70b83c2c61e01380a0913089f73b9db6d96f305968b80, d698dfbaf17bb6907fef5b5f87bdb407708d94477051507d65c39aed7f1201d0 - -# g_scalar = n - 63 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632512 -r = 0763a43482fc568d95c376329182cb26039c4800f0518eedb8d3d9319ff91fe5, 6f7895fdbf6a64906d4083706edcf21f536746d07db17e688f83fb2ac7c18945 - -# g_scalar = n - 62 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632513 -r = 0dbcb03ae539b413177aa4c02089a2336ed7e061ed58f5a7e535f175a1962f91, 949f2fffca531ff722b800677eb416119b8d1a1197f98fe11c23bdb144cd1c71 - -# g_scalar = n - 61 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632514 -r = 994a44a69b8335fa71cdf6537eceb50a59556621a9404f843667eb1a7f4c04cc, f2e4387e78d4240d499a7b9925bb445db8c3a980112bcaf2280507e624146496 - -# g_scalar = n - 60 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632515 -r = d40c4ccdbc6f9915026f8fe2671c39bc33fc23364189d9c7dc1e6828ed8a6e19, fb7dfef5441b17ce3bf5fb42b0ae5269ed39ae60dd5200d3505eca4407f18a35 - -# g_scalar = n - 59 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632516 -r = 4c2bab1b8add53b7cb9727eaa2d17c362100d5d3a8d063d169d44ed65c46aa8e, 5f9db666b904857599ae08fe831b88078875032d57c814155f7b16f3eabd98fb - -# g_scalar = n - 58 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632517 -r = 305f725f648d02cdd66fe3b67ed78be199cac80de4299aaff26c00e8a7ea82f0, f9c8b66aa998b8bfe854a9d241a004c1058facc2859ce652cc12e43b9dc04de4 - -# g_scalar = n - 57 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632518 -r = c13298306acf8ccc068212e3fd1eaf381bfeea57c7385b293ec832e77acaca28, 25bb3938fffe89da3a54d9cd386485fea8b7f9f3499e87d546f60d24d55361a6 - -# g_scalar = n - 56 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632519 -r = ba3f0c4a7451ae636a84438514600044bb1ff3ca9556f36a8fc441407e8d7a14, 7c6d897dfd93d3f8b165a43d5b4a6953fe1f247a4e0ddeb420353da4e0650cd5 - -# g_scalar = n - 55 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251a -r = 5cee8449a7b730dd0deb0e4a46c814c131eea5bf07ef5be6258bbbf9e7305683, da17febf0eb30c0c3d3095977f1ae735118a607961d8594b154b6a3a5fe7d421 - -# g_scalar = n - 54 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251b -r = bb8a0feaee26c851c1286ff925c4d56c4f2e512ef8557c5fa0425b8eb212cf53, e5aa91bf156a6a15c20d885be2e6c94e811f3bbc189d9a553d708f2d1829ef81 - -# g_scalar = n - 53 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251c -r = ec3a318d306634b0912e8beda8c8acd95f9c3fc492f2467997359638546c4d8d, 045e25a5bcb9ad7d4eaa432d23501e68c247d091addeec0d7fe980be3ce34d9b - -# g_scalar = n - 52 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251d -r = 88f77f34d0e5e542905a3201c67528b72e0ec469af45f9c02692f36e83445904, 810d0dd863f0f073a3d8feb464413c61dc46d152dd20ca9d098572d6a79b9783 - -# g_scalar = n - 51 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251e -r = d20ebe0d5c3fa443da1deb852f4318d4e20bc0ba1e5edf3f508cec1c3b3f64c9, 28ce1c7b5d0ab3d3665a1dc27d97e39d9e0eaee4a1e5a09ac8f4b1588cdbe15c - -# g_scalar = n - 50 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251f -r = 0dceb8db2b7eaba7edfbe268d5b1fa6aa78bfbaa136852780fb9c2d0488c171a, 282cbe6a3c9d73edbc488e9433ebc5b91021851a5bbb636940617f76651d48ef - -# g_scalar = n - 49 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632520 -r = abdbe6084fb7db2bff4cd0b228766127ffe7048453dc690921950b421ff6acd3, 2c6bf8800db805cab2870a6d087e7127d9eb82d90b9ba4a57c836dd7a1eef617 - -# g_scalar = n - 48 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632521 -r = c8403902470343ad1a1baaa76d8805bda7496529bbd803a06b34413077adc612, 7a103815becda33e578a0a31ad628a1cf4d9280548273a48c60a6099e8a5200e - -# g_scalar = n - 47 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632522 -r = 4b969974eba78bfd6b20afec715af2c70a624fa936c83906283c7513caa76097, 64400790922202d9fb7e62aea2126c2b646bb1f0845135ecddf8aa3326de29f1 - -# g_scalar = n - 46 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632523 -r = cec684c3a42931dca1030d5babf825e0785c339aa06e9eba4075b5b149ee90d9, fcc25cc63e48079ba8374d3faa087ca2babce29aa54bc0d4bd549d363ea7919c - -# g_scalar = n - 45 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632524 -r = e94f7d346d8232781b1e8ae057477f580032940b946c6e181ee426ccd5cd79bf, 28c53400d326194b88d109213807f37e3adabb9708d4cc5a38b8346987d45de5 - -# g_scalar = n - 44 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632525 -r = 5f3425f6a98dd2915f0e2046e381d3b0009194abb29110fbecfd7c1fd55a897c, 149d606ec7845bd6c685db822962cbe8fbdcbb94b4f7c480405f99788cf2af25 - -# g_scalar = n - 43 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632526 -r = 179c85db3db01994b7d9ad900574598180c5bfb4878873fa4ff23ffd248a7d06, b886a0af6a4d2260616e32c45a195ce7b27d2fae15231a5745be4f9d9e596993 - -# g_scalar = n - 42 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632527 -r = 649c89ce5bfafe43c2e2594c30a92f8fa155cbe31da6a5c75fb35ccfed2bad01, 0c57301b764382c3b4ff4df46f9feb3064ca69ef0cd3af512ea799821600da85 - -# g_scalar = n - 41 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632528 -r = 98100a4fdb01614feeca111539ce22716fdfe0b56f072822624d60492ed22e91, 08f40112fc77b5853988cda6e2a826314906b2d2378165b8494f255d5ca39d70 - -# g_scalar = n - 40 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632529 -r = 462d7b0075f732278909984c66f2728083200f0bdf25e13ce4d7681db82e9f3e, fcb999ec2e558fd154da915ca10abca68b391e74c954e3cb26f45e770d9ae867 - -# g_scalar = n - 39 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252a -r = 5853e4c4363186ac068f237d16fb36646f5ae714ff0b9346a9d89488a059c142, f3f43f1996e6dbf8b8479b051eb184e3d13b589a7e7d77891d2782dc9c3ad067 - -# g_scalar = n - 38 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252b -r = adf0c7dc7c603d6c7463fd85222ef33b512331170fe948ce8a2cc3ca4d63c0ee, 265b3d7e637f3cb342557b2971a6ce6333554ca740c7fbf6f13cd2c401889a1a - -# g_scalar = n - 37 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252c -r = 2763a387dfa394ebc5748baea677d806b636458c7f178d5500467bc58cce08b5, a74c9ebb9dff775809c1431aeaa7b9d3185225c290df27af5ed4bb7582c31449 - -# g_scalar = n - 36 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252d -r = 3569656cd54a3dc30ae4cb10d257576ec691d0bd1b06c57f3d5e58d6a8219bb7, b7f461ed22925adabaf53f451dae5f396cb17d2de9d401ec1a1451426b325fc5 - -# g_scalar = n - 35 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252e -r = ca640b8642a3e5210b8e4134efc2b4c8742ee464233e76b7fd16847fdec67ef5, d456fe9c744b8508db1b54ed94dc8508cec3cff4ab87ad2a9ac5fe6f73149556 - -# g_scalar = n - 34 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252f -r = c982ddd4dd303e645b0673a375678d94caa7a5c6a391849db6ab20147ca23cd3, 5ea6eff2a8f28b08388ccd5cc3a96bd9445d34e19078906d0284fff4a249068e - -# g_scalar = n - 33 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632530 -r = 33ec6868f044b10cac09c4ae65578ab985ceae7c4b68f103871514560f664534, 4e93bcfb3cd09c3c06f69fb089c0ea8baaf62ed8a7b82a10953b7cd4c5713e0e - -# g_scalar = n - 32 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632531 -r = 39227077695532a4bc6d6a58fead0197befd904c4079dfbfd8c5fccfc5e3a3d8, 9dce286c6a6e3d5c846963e55265d1bf81bb649cb7f566f7f61dc1922410bd0a - -# g_scalar = n - 31 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632532 -r = 948dc4f8b1fc87b48ef5689d3cf7600ddd3cf7e7473017e6e2f73c696755ff89, 0c75176db284b8bb05131202f367fc03d26de35e67149fd72616017eb15acd66 - -# g_scalar = n - 30 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632533 -r = d0288cb552b6fc3cc5f4d6cd3ac77acda3a14e49b44f65a1b4241cb13298b343, b9f2ba30ae9fe08e299825c864c55bbe498aaee2f94064b52a3373d0e3fbf543 - -# g_scalar = n - 29 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632534 -r = e266f95948603d48944a70270317b9e2f1be963a0d9258805e5db46acb66e132, c867ebd4d5c41de5756996c688839e606fb8dbb95d04e75c6724998ca3df7766 - -# g_scalar = n - 28 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632535 -r = e97f6b6af2aadb9797082ec0cfe153eb7323cb2830a6a8924b523eb7172ccd1f, 564b339fbfa7ad88b59774b7d2f348e1595806397fb4d597e2c2c6c12e57c25e - -# g_scalar = n - 27 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632536 -r = 9f8aa54b2ef7c76a49d2c9eb084ffdd7d36a42d7aebf7313042c2af497e2feb4, d2bcef9627b421cfd2682ef78714b344c42f3991224804a76dff4845f676a18f - -# g_scalar = n - 26 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632537 -r = 994baaa855f2fb101ac7c5eb857ff6fbe6c9267ad8b1753861e4ad32ed1f8008, 12e87fce2ed1a539eb021684a056bb0aa5c676759d753af77b30eb1ee2db7fe7 - -# g_scalar = n - 25 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632538 -r = 966742eb65432a2ee395993332f1f3af6fc1b49eed6b67b0a4a319acd837879f, 846b723ba9086698edf977a63648ce1169339ceebc0bc6afb47236014b699dd7 - -# g_scalar = n - 24 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632539 -r = f97b232f2efc311561d7cbf91d2b469f6d0d755040dd9a356d3883b215d02819, a6a23aa0358c847689960fce6c348afeee15b6b7775e1ca95aae28af4db43438 - -# g_scalar = n - 23 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253a -r = af2cea7c1727bf42d0825fa2a358406937c7a7e89e2e1f6ef4f876532de45068, 7c2f97836f889991b7f971ec8e53d08e1a025b64d8d660b5fc9f5b0461b87a56 - -# g_scalar = n - 22 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253b -r = fdc777e8e93358a46a0b0685d2f8ba3dc99ffa23e3912a9a0fc611352f6f3076, 86c172f7a2a32f8c6216e825eac5ca4a9bf3d296b2dc015b6b587844cabea0fb - -# g_scalar = n - 21 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253c -r = ecead9f4c16762fc6d2a506c5a3f3b3074e1b2654783f47d562e4cecc135b208, 3f792a0d36b8805d858afdc18053d65be4f052407c44c39e0d622b4d1d791a46 - -# g_scalar = n - 20 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253d -r = e2d1eeb6fe5bfb4e048099d95dd283ba5916868f0f862bdc8a979129d2337a31, a11efb1d3a011f306e9e3ac07556a1995d2b13e9000034517d10e3be877bffa2 - -# g_scalar = n - 19 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253e -r = fe545c282897c3fcb8842277752c41ac68363aba25e1a16efea912baa5659ae8, 08df11d992eda6857a99a1641c6af73ea7f9dbb60456883ad2c9161823b39694 - -# g_scalar = n - 18 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253f -r = 675abd1b6f80ebdaa6f247ab412e29794afc964d8f8b403e5f3e51c856ada97a, 93903825fafdc6b3d9d96d80e47b8445b4d5a35170b0f4c3995d428da1b7a5e2 - -# g_scalar = n - 17 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632540 -r = c1a35c0a6c7a574eb0f139752cfe2dfff17624b6ac0a177b97091dcbd53c5c9d, 142aedd8cd8b3c30d0b1db80f2e77c44fa8a40d0176347f1dd82ceb96c186678 - -# g_scalar = n - 16 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632541 -r = 54d63c809103b723d5ef2f7c2c83f5495882e0753ffe2e6b808b0b650bc6fb80, 9b12084cfe101de0aa3b9dc44ea7f161c98f3ce7b4f49a780d0ee429ad5dc064 - -# g_scalar = n - 15 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632542 -r = e2aa0e430ad3da09ee337424e481937003cc23ee56e27e4b72bcd8b7bc60055b, dfbde8f48f86520c9b1059218875b8682899caacbd5be4dabf47adb09c7c3ba2 - -# g_scalar = n - 14 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632543 -r = faae7332fd12c72e1717bf54c6832660126e48f77f9707e3a242a35bb0cf664a, ead8f922d155e445171be6c1d59a182441d6a9627cddc83dd84ad24866a2a794 - -# g_scalar = n - 13 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632544 -r = 738477ac5395b759bcbcd43f559e98110e356769856fd30dccc425634b2ed709, 043f789536184869832f9bdd42e0a43e978b7c708bd12d1cca8ad46f3ff11e80 - -# g_scalar = n - 12 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632545 -r = 4ee1df77cb83e1562409d29dee37385eabdedef5ca345a3304b71aa7d2697768, 800a8369acdc7536d7dd730575219299e8f12d0a3576a9c8f353ed26e344a4bc - -# g_scalar = n - 11 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632546 -r = 3e7090f1649c90731ff3a4158dac1ab59de407956e7fdfe0ea7d260a6245e404, 976cffdb1eda4772f3f25576e1529bc2daf06c621a809e37e5897a9ed46bb177 - -# g_scalar = n - 10 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632547 -r = cc61c94724b3428f737d2cd648250b4998f9868a0fcf81392c18dbd19dc21ec8, 878e65aa14c4b54ba082d29a88641a2d3bc5766fc7c041f7f3d4bf877f226189 - -# g_scalar = n - 9 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632548 -r = e05b3080f0c4e16b2cc09c0444c8eb00abe6bfed59a7a84175c96e8f264e20e8, f799a631027ca065d491fe65774ed0e5a950841331a2ba1ce14888855ba0cceb - -# g_scalar = n - 8 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632549 -r = b763891eb265230d8f90f02af02cfc6b462ab5c56f9b345527f14cd19499a78f, a913ed0c88f9208aedc3847b419f440fde1ccd83306145ea0a625c56acd2b688 - -# g_scalar = n - 7 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254a -r = 13ba5119c3123e03f43eaab50c23bb082bd20213d23c00f70746354ea0173b4f, 151226e991dbf799106cc4238836be6a98bd0d0ea2598422d7b82fcfc0a462b2 - -# g_scalar = n - 6 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254b -r = 13074b5954213673d50a961a5b17a3ad55ae744f346cee3e403947373e77664a, 5b366e91b5f808a10bdb2bb3109c60eed663d4ad5200eb4a6c2c9ddf2c881bb4 - -# g_scalar = n - 5 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254c -r = c9079605890523c8941cb5aad076c20c90ec649a94b9537dbe1b8aaec45c61f5, 8c5f8943d22e16eacabf56788185e0978c3a97111a1477d414cf64b51845b0ef - -# g_scalar = n - 4 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254d -r = 577362f541b0176b0cdaacace8100af24650a6edc623c17374b0b50d46918dcc, 7b4eb3c5b3a5479d9493c9211a222dd1e89d7b8f05290bb8d2690db31b345459 - -# g_scalar = n - 3 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e -r = 26936a3fb6ff747e66ad77dd87cbbc98b027f84a087d81fbffac3f904eebc127, 2a0f95d51a7833f9877df7cee5d11671a7c1b853f79e01e54fb3a3e0367c5814 - -# g_scalar = n - 2 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a - -# g_scalar = n - 1 -g_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 diff --git a/src/ec_17/suite_b/ops/p256_point_mul_serialized_tests.txt b/src/ec_17/suite_b/ops/p256_point_mul_serialized_tests.txt deleted file mode 100644 index f2cf86b541..0000000000 --- a/src/ec_17/suite_b/ops/p256_point_mul_serialized_tests.txt +++ /dev/null @@ -1,13 +0,0 @@ -# Similar to p256_point_mul_tests.txt, but tests point decoding and point -# encoding too. In particular, the inputs coordinates here are not Montgomery -# encoded, but the inputs in p256_point_mul_tests.txt are. - -# Regression Test from https://github.com/golang/go/issues/20040 - -p_scalar = 2a265f8bcbdcaf94d58519141e578124cb40d64a501fba9c11847b28965bc737 -p = 04023819813ac969847059028ea88a1f30dfbcde03fc791d3a252c6b41211882eaf93e4ae433cc12cf2a43fc0ef26400c0e125508224cdb649380f25479148a4ad -r = 044d4de80f1534850d261075997e3049321a0864082d24a917863366c0724f5ae3a22d2b7f7818a3563e0f7a76c9bf0921ac55e06e2e4d11795b233824b1db8cc0 - -p_scalar = 313f72ff9fe811bf573176231b286a3bdb6f1b14e05c40146590727a71c3bccd -p = 04cc11887b2d66cbae8f4d306627192522932146b42f01d3c6f92bd5c8ba739b06a2f08a029cd06b46183085bae9248b0ed15b70280c7ef13a457f5af382426031 -r = 04831c3f6b5f762d2f461901577af41354ac5f228c2591f84f8a6e51e2e3f1799193f90934cd0ef2c698cc471c60a93524e87ab31ca2412252337f364513e43684 diff --git a/src/ec_17/suite_b/ops/p256_point_mul_tests.txt b/src/ec_17/suite_b/ops/p256_point_mul_tests.txt deleted file mode 100644 index 87ece49e40..0000000000 --- a/src/ec_17/suite_b/ops/p256_point_mul_tests.txt +++ /dev/null @@ -1,1665 +0,0 @@ -# Scalar Bit Pattern Coverage tests - -p_scalar = 00 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = inf - -p_scalar = 01 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 - -p_scalar = 02 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a - -p_scalar = 03 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 26936a3fb6ff747e66ad77dd87cbbc98b027f84a087d81fbffac3f904eebc127, 2a0f95d51a7833f9877df7cee5d11671a7c1b853f79e01e54fb3a3e0367c5814 - -p_scalar = 04 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 577362f541b0176b0cdaacace8100af24650a6edc623c17374b0b50d46918dcc, 7b4eb3c5b3a5479d9493c9211a222dd1e89d7b8f05290bb8d2690db31b345459 - -p_scalar = 05 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c9079605890523c8941cb5aad076c20c90ec649a94b9537dbe1b8aaec45c61f5, 8c5f8943d22e16eacabf56788185e0978c3a97111a1477d414cf64b51845b0ef - -p_scalar = 06 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 13074b5954213673d50a961a5b17a3ad55ae744f346cee3e403947373e77664a, 5b366e91b5f808a10bdb2bb3109c60eed663d4ad5200eb4a6c2c9ddf2c881bb4 - -p_scalar = 07 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 13ba5119c3123e03f43eaab50c23bb082bd20213d23c00f70746354ea0173b4f, 151226e991dbf799106cc4238836be6a98bd0d0ea2598422d7b82fcfc0a462b2 - -p_scalar = 08 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b763891eb265230d8f90f02af02cfc6b462ab5c56f9b345527f14cd19499a78f, a913ed0c88f9208aedc3847b419f440fde1ccd83306145ea0a625c56acd2b688 - -p_scalar = 09 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e05b3080f0c4e16b2cc09c0444c8eb00abe6bfed59a7a84175c96e8f264e20e8, f799a631027ca065d491fe65774ed0e5a950841331a2ba1ce14888855ba0cceb - -p_scalar = 0a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = cc61c94724b3428f737d2cd648250b4998f9868a0fcf81392c18dbd19dc21ec8, 878e65aa14c4b54ba082d29a88641a2d3bc5766fc7c041f7f3d4bf877f226189 - -p_scalar = 0b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3e7090f1649c90731ff3a4158dac1ab59de407956e7fdfe0ea7d260a6245e404, 976cffdb1eda4772f3f25576e1529bc2daf06c621a809e37e5897a9ed46bb177 - -p_scalar = 0c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4ee1df77cb83e1562409d29dee37385eabdedef5ca345a3304b71aa7d2697768, 800a8369acdc7536d7dd730575219299e8f12d0a3576a9c8f353ed26e344a4bc - -p_scalar = 0d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 738477ac5395b759bcbcd43f559e98110e356769856fd30dccc425634b2ed709, 043f789536184869832f9bdd42e0a43e978b7c708bd12d1cca8ad46f3ff11e80 - -p_scalar = 0e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = faae7332fd12c72e1717bf54c6832660126e48f77f9707e3a242a35bb0cf664a, ead8f922d155e445171be6c1d59a182441d6a9627cddc83dd84ad24866a2a794 - -p_scalar = 0f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e2aa0e430ad3da09ee337424e481937003cc23ee56e27e4b72bcd8b7bc60055b, dfbde8f48f86520c9b1059218875b8682899caacbd5be4dabf47adb09c7c3ba2 - -p_scalar = 10 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 54d63c809103b723d5ef2f7c2c83f5495882e0753ffe2e6b808b0b650bc6fb80, 9b12084cfe101de0aa3b9dc44ea7f161c98f3ce7b4f49a780d0ee429ad5dc064 - -p_scalar = 11 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c1a35c0a6c7a574eb0f139752cfe2dfff17624b6ac0a177b97091dcbd53c5c9d, 142aedd8cd8b3c30d0b1db80f2e77c44fa8a40d0176347f1dd82ceb96c186678 - -p_scalar = 12 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 675abd1b6f80ebdaa6f247ab412e29794afc964d8f8b403e5f3e51c856ada97a, 93903825fafdc6b3d9d96d80e47b8445b4d5a35170b0f4c3995d428da1b7a5e2 - -p_scalar = 13 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = fe545c282897c3fcb8842277752c41ac68363aba25e1a16efea912baa5659ae8, 08df11d992eda6857a99a1641c6af73ea7f9dbb60456883ad2c9161823b39694 - -p_scalar = 14 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e2d1eeb6fe5bfb4e048099d95dd283ba5916868f0f862bdc8a979129d2337a31, a11efb1d3a011f306e9e3ac07556a1995d2b13e9000034517d10e3be877bffa2 - -p_scalar = 15 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ecead9f4c16762fc6d2a506c5a3f3b3074e1b2654783f47d562e4cecc135b208, 3f792a0d36b8805d858afdc18053d65be4f052407c44c39e0d622b4d1d791a46 - -p_scalar = 16 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = fdc777e8e93358a46a0b0685d2f8ba3dc99ffa23e3912a9a0fc611352f6f3076, 86c172f7a2a32f8c6216e825eac5ca4a9bf3d296b2dc015b6b587844cabea0fb - -p_scalar = 17 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = af2cea7c1727bf42d0825fa2a358406937c7a7e89e2e1f6ef4f876532de45068, 7c2f97836f889991b7f971ec8e53d08e1a025b64d8d660b5fc9f5b0461b87a56 - -p_scalar = 18 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f97b232f2efc311561d7cbf91d2b469f6d0d755040dd9a356d3883b215d02819, a6a23aa0358c847689960fce6c348afeee15b6b7775e1ca95aae28af4db43438 - -p_scalar = 19 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 966742eb65432a2ee395993332f1f3af6fc1b49eed6b67b0a4a319acd837879f, 846b723ba9086698edf977a63648ce1169339ceebc0bc6afb47236014b699dd7 - -p_scalar = 1a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 994baaa855f2fb101ac7c5eb857ff6fbe6c9267ad8b1753861e4ad32ed1f8008, 12e87fce2ed1a539eb021684a056bb0aa5c676759d753af77b30eb1ee2db7fe7 - -p_scalar = 1b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9f8aa54b2ef7c76a49d2c9eb084ffdd7d36a42d7aebf7313042c2af497e2feb4, d2bcef9627b421cfd2682ef78714b344c42f3991224804a76dff4845f676a18f - -p_scalar = 1c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e97f6b6af2aadb9797082ec0cfe153eb7323cb2830a6a8924b523eb7172ccd1f, 564b339fbfa7ad88b59774b7d2f348e1595806397fb4d597e2c2c6c12e57c25e - -p_scalar = 1d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e266f95948603d48944a70270317b9e2f1be963a0d9258805e5db46acb66e132, c867ebd4d5c41de5756996c688839e606fb8dbb95d04e75c6724998ca3df7766 - -p_scalar = 1e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d0288cb552b6fc3cc5f4d6cd3ac77acda3a14e49b44f65a1b4241cb13298b343, b9f2ba30ae9fe08e299825c864c55bbe498aaee2f94064b52a3373d0e3fbf543 - -p_scalar = 1f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 948dc4f8b1fc87b48ef5689d3cf7600ddd3cf7e7473017e6e2f73c696755ff89, 0c75176db284b8bb05131202f367fc03d26de35e67149fd72616017eb15acd66 - -p_scalar = 20 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 39227077695532a4bc6d6a58fead0197befd904c4079dfbfd8c5fccfc5e3a3d8, 9dce286c6a6e3d5c846963e55265d1bf81bb649cb7f566f7f61dc1922410bd0a - -p_scalar = 21 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 33ec6868f044b10cac09c4ae65578ab985ceae7c4b68f103871514560f664534, 4e93bcfb3cd09c3c06f69fb089c0ea8baaf62ed8a7b82a10953b7cd4c5713e0e - -p_scalar = 22 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c982ddd4dd303e645b0673a375678d94caa7a5c6a391849db6ab20147ca23cd3, 5ea6eff2a8f28b08388ccd5cc3a96bd9445d34e19078906d0284fff4a249068e - -p_scalar = 23 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ca640b8642a3e5210b8e4134efc2b4c8742ee464233e76b7fd16847fdec67ef5, d456fe9c744b8508db1b54ed94dc8508cec3cff4ab87ad2a9ac5fe6f73149556 - -p_scalar = 24 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3569656cd54a3dc30ae4cb10d257576ec691d0bd1b06c57f3d5e58d6a8219bb7, b7f461ed22925adabaf53f451dae5f396cb17d2de9d401ec1a1451426b325fc5 - -p_scalar = 25 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2763a387dfa394ebc5748baea677d806b636458c7f178d5500467bc58cce08b5, a74c9ebb9dff775809c1431aeaa7b9d3185225c290df27af5ed4bb7582c31449 - -p_scalar = 26 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = adf0c7dc7c603d6c7463fd85222ef33b512331170fe948ce8a2cc3ca4d63c0ee, 265b3d7e637f3cb342557b2971a6ce6333554ca740c7fbf6f13cd2c401889a1a - -p_scalar = 27 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5853e4c4363186ac068f237d16fb36646f5ae714ff0b9346a9d89488a059c142, f3f43f1996e6dbf8b8479b051eb184e3d13b589a7e7d77891d2782dc9c3ad067 - -p_scalar = 28 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 462d7b0075f732278909984c66f2728083200f0bdf25e13ce4d7681db82e9f3e, fcb999ec2e558fd154da915ca10abca68b391e74c954e3cb26f45e770d9ae867 - -p_scalar = 29 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 98100a4fdb01614feeca111539ce22716fdfe0b56f072822624d60492ed22e91, 08f40112fc77b5853988cda6e2a826314906b2d2378165b8494f255d5ca39d70 - -p_scalar = 2a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 649c89ce5bfafe43c2e2594c30a92f8fa155cbe31da6a5c75fb35ccfed2bad01, 0c57301b764382c3b4ff4df46f9feb3064ca69ef0cd3af512ea799821600da85 - -p_scalar = 2b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 179c85db3db01994b7d9ad900574598180c5bfb4878873fa4ff23ffd248a7d06, b886a0af6a4d2260616e32c45a195ce7b27d2fae15231a5745be4f9d9e596993 - -p_scalar = 2c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5f3425f6a98dd2915f0e2046e381d3b0009194abb29110fbecfd7c1fd55a897c, 149d606ec7845bd6c685db822962cbe8fbdcbb94b4f7c480405f99788cf2af25 - -p_scalar = 2d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e94f7d346d8232781b1e8ae057477f580032940b946c6e181ee426ccd5cd79bf, 28c53400d326194b88d109213807f37e3adabb9708d4cc5a38b8346987d45de5 - -p_scalar = 2e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = cec684c3a42931dca1030d5babf825e0785c339aa06e9eba4075b5b149ee90d9, fcc25cc63e48079ba8374d3faa087ca2babce29aa54bc0d4bd549d363ea7919c - -p_scalar = 2f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4b969974eba78bfd6b20afec715af2c70a624fa936c83906283c7513caa76097, 64400790922202d9fb7e62aea2126c2b646bb1f0845135ecddf8aa3326de29f1 - -p_scalar = 30 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c8403902470343ad1a1baaa76d8805bda7496529bbd803a06b34413077adc612, 7a103815becda33e578a0a31ad628a1cf4d9280548273a48c60a6099e8a5200e - -p_scalar = 31 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = abdbe6084fb7db2bff4cd0b228766127ffe7048453dc690921950b421ff6acd3, 2c6bf8800db805cab2870a6d087e7127d9eb82d90b9ba4a57c836dd7a1eef617 - -p_scalar = 32 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0dceb8db2b7eaba7edfbe268d5b1fa6aa78bfbaa136852780fb9c2d0488c171a, 282cbe6a3c9d73edbc488e9433ebc5b91021851a5bbb636940617f76651d48ef - -p_scalar = 33 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d20ebe0d5c3fa443da1deb852f4318d4e20bc0ba1e5edf3f508cec1c3b3f64c9, 28ce1c7b5d0ab3d3665a1dc27d97e39d9e0eaee4a1e5a09ac8f4b1588cdbe15c - -p_scalar = 34 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 88f77f34d0e5e542905a3201c67528b72e0ec469af45f9c02692f36e83445904, 810d0dd863f0f073a3d8feb464413c61dc46d152dd20ca9d098572d6a79b9783 - -p_scalar = 35 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ec3a318d306634b0912e8beda8c8acd95f9c3fc492f2467997359638546c4d8d, 045e25a5bcb9ad7d4eaa432d23501e68c247d091addeec0d7fe980be3ce34d9b - -p_scalar = 36 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bb8a0feaee26c851c1286ff925c4d56c4f2e512ef8557c5fa0425b8eb212cf53, e5aa91bf156a6a15c20d885be2e6c94e811f3bbc189d9a553d708f2d1829ef81 - -p_scalar = 37 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5cee8449a7b730dd0deb0e4a46c814c131eea5bf07ef5be6258bbbf9e7305683, da17febf0eb30c0c3d3095977f1ae735118a607961d8594b154b6a3a5fe7d421 - -p_scalar = 38 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ba3f0c4a7451ae636a84438514600044bb1ff3ca9556f36a8fc441407e8d7a14, 7c6d897dfd93d3f8b165a43d5b4a6953fe1f247a4e0ddeb420353da4e0650cd5 - -p_scalar = 39 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c13298306acf8ccc068212e3fd1eaf381bfeea57c7385b293ec832e77acaca28, 25bb3938fffe89da3a54d9cd386485fea8b7f9f3499e87d546f60d24d55361a6 - -p_scalar = 3a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 305f725f648d02cdd66fe3b67ed78be199cac80de4299aaff26c00e8a7ea82f0, f9c8b66aa998b8bfe854a9d241a004c1058facc2859ce652cc12e43b9dc04de4 - -p_scalar = 3b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4c2bab1b8add53b7cb9727eaa2d17c362100d5d3a8d063d169d44ed65c46aa8e, 5f9db666b904857599ae08fe831b88078875032d57c814155f7b16f3eabd98fb - -p_scalar = 3c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d40c4ccdbc6f9915026f8fe2671c39bc33fc23364189d9c7dc1e6828ed8a6e19, fb7dfef5441b17ce3bf5fb42b0ae5269ed39ae60dd5200d3505eca4407f18a35 - -p_scalar = 3d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 994a44a69b8335fa71cdf6537eceb50a59556621a9404f843667eb1a7f4c04cc, f2e4387e78d4240d499a7b9925bb445db8c3a980112bcaf2280507e624146496 - -p_scalar = 3e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0dbcb03ae539b413177aa4c02089a2336ed7e061ed58f5a7e535f175a1962f91, 949f2fffca531ff722b800677eb416119b8d1a1197f98fe11c23bdb144cd1c71 - -p_scalar = 3f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0763a43482fc568d95c376329182cb26039c4800f0518eedb8d3d9319ff91fe5, 6f7895fdbf6a64906d4083706edcf21f536746d07db17e688f83fb2ac7c18945 - -p_scalar = 40 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 95fb8394569b38c77da70b83c2c61e01380a0913089f73b9db6d96f305968b80, d698dfbaf17bb6907fef5b5f87bdb407708d94477051507d65c39aed7f1201d0 - -p_scalar = 41 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 01628c4706b6090abf639ed67765765e79527db7ba66f4b9dc2306ebfcdbb2b2, 82f6953ad0e8b8b0d36f26730c1faa29cc34896f459a60b999149d0e46a84b5e - -p_scalar = 42 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 78ed4fe6e3a7de485a7e384de42f8cb2a3cfa7fd44b81977c7c6e4d1c4ce250f, 4edcb865c16f620563fccbb48aaab052aa6edf9c2f0a44d556dce373161a8e35 - -p_scalar = 43 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e8218ad07de96a54fc88362a891ea186c16d0c52a48a4ddd86f04d3b51f9c391, 02a6281365709d2721c138d73cf5695ffa50ba96f99df517d38ca53ed0cc5085 - -p_scalar = 44 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 031195d5bb4a44b9b2cdb039f99c55fec35d34e70dd71fab8732d5cd6a93954d, 0996fb4dbff36b9dbbf2136131f073cd448fb8cc84a8207e455c80a2f7599f37 - -p_scalar = 45 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 49d3ad05548efa2ac856868891e9ae0987986a54361bfe259e5da11cc5e79347, 92c84e04ab904134ded953aac5722ed96415f2f1d9aa2eb06784f9780b14a309 - -p_scalar = 46 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 100392dc78c04937681d690f2b3a8c597263de1539f76b817c5a2a14f58a379a, 3986c52c191d0c4f63391dd5d8365d152ee51bd352fe7d1bf81a1717a4106ac5 - -p_scalar = 47 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = dd421b5d4a210364f94aa89b40750d0149c7cb94fc05804bf19f382e92aa7864, a8b3384c6c87986fee06b8196932fa8dfcf5ee6122b50e13a932ffe1c620c98d - -p_scalar = 48 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c3b025a015b15144eb5d0c75f38fae9cb1ee4879a360fb557331369679c1e3b1, 9032f3437f65f90efc9714e0d1bd7c1ee45f347463a2d195cc52acabf23bf9fb - -p_scalar = 49 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b2dacdf66ef82fce794922ef17e29b1a2b34a7dc096fb852ae8f8fe1eeb03d1a, 3c68daace507d78859926dada17d2a4c478e459d1bfa35f62472337e0bd6ee11 - -p_scalar = 4a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d176448e35b23e27b00eea8a5d34f708294b12e1ca1b04e046ce85a9e25a441e, f5b7aa6fd05e42d1883ad28aae66872ef3ba1ad34c400037a3177ac6d447f106 - -p_scalar = 4b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a22f8fbea42fd1f6f123716223af72e0cfa8ca0e2a7aa6ab616d2c02fb760095, db5e421d2f3dcfd31867f8588fba9581841e60f312bbc857af8d8a74870c2fbf - -p_scalar = 4c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 1558fe4c7ef5b48a7c703717cd1823b4285bed3c21848f49cd331464c89bdd46, 64c4fbfa6c47c1bb11b7d9566c81e45cc039199f2b805c34e6399fdfaf1512a0 - -p_scalar = 4d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = db15e4963d5baeb19c30c6422b2f9c49719a87be5a0ec9ce0a2193bfc266f85c, 7ab236296aefa062d4b0f38788146b15b877add5d160244d7c3cec641f2c8cde - -p_scalar = 4e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c0e78a3897536f3f711f8b7f7b5065a47e96610365013b3aade6af11a6ab1ecf, 07420d147b8b2f3815ddbf3310694b8cbf84005f4dfeec8eb74bc763b9bbdc2c - -p_scalar = 4f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5ed556aae89327fc58f6428165f89e14dd306e2a05176f8ba40206d330ff0e92, 48a20a12e6e5bde12f8c8f3bafed7c8af685ab0166dd84e93d4e78f507cde447 - -p_scalar = 50 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c0bfffc45263832a2074213db27de57335ff9aa8b5f86a2c492bdc0752b3e584, d66a6e625b32d9a0ad495e8c6ddf0bd7e4fc828b4cdf1404dbd63dd5e2b639fa - -p_scalar = 51 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e0beeb1aebff18d3b097c711165c6e4c8e9d0af402ba3183d3a5d81fc63d5e79, 8530bbe517a43ebb3424024630d6f2e05fd243be901a4d62019a80ecf7fe6c84 - -p_scalar = 52 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 8d97fd53554fa366b932d0c17527465559d18be925a81aef80ee662fad29cf9c, e709e0c2210c0663b689ed9ce704fa51be5b8e1c16cfb90d52a34db8328762e8 - -p_scalar = 53 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = cf3086e87a243ca4f87abebf2ab80485125d4714ec67199a2c9ee62dc3363a22, 680ffeccb849b41bfac95c624e639ed9a164e9eea9da5528a3ad4fae39b1f622 - -p_scalar = 54 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2f83a889ca881f6c10b429a2811a47eb2cd0bab9941a27e9b7f1695a43020eec, b34c3ec9490c9fcc20b8be58e46613a098064580d1ba344eda9c3a6f097c176f - -p_scalar = 55 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = abfc8457b5e11eff36bf2f65ea65641aef617e0025af76773646b0dd7e1ee314, ea68ae1c1e34514244ff9951e0d7dc96316e11d9febd7ee46672053e70ee6d49 - -p_scalar = 56 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a9ea1b80f80e4b9023fb74270b4af06e783b9ba6744a6528dd5c2b8142a18dc1, 1936c4cd310249e36560fb0f17515082b5d4a12b82101ae4aa68a609123590c7 - -p_scalar = 57 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2bd0204360826caa041252997f6b0670b856664a2d4b409b516329ff7b4d8b2c, 50b6f7d92a300ea9570bc654f91a71c132f843cc3dca2a93fef1add99e22434e - -p_scalar = 58 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 948fb3f76932e6311707165bb939f40fabeee3e9369a60677d81fd488418cae4, 272c826ad87a68e312a307d236ee7b83420e89f073806245ffa5e2001542b971 - -p_scalar = 59 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bd88aca74765b8053ea123446310eb5a62d51e29fd54487dc1ee6264a7eabe67, 8eaf07808dee1bbb854b622df60670659bfc7708c4600010484d7b41eb0496e5 - -p_scalar = 5a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 8307d5cb55648a4cf3df44ded7ee64b747305b7483e904469af9d782de992e6e, 1b7a46f1b63f495f52cd6b04e3cf65a65400a94bda2c0211ac894fe71d88d7f5 - -p_scalar = 5b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0211de8fd56927054a39f02bbedd4f4727113bb4ae6a94b8d81ad9386982f865, b58f5407a3aab12d0575a464f4b95a60dcab8e619dc803972a78ec739c36d096 - -p_scalar = 5c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = aee309e543ae4336e4c8417839093801a8a38bc31487c5269d7127d76294ba47, 2eabd7a5d0554d6cb58df8a2808cbbd566d652b270b744ed2b4ed8c66ca6daf2 - -p_scalar = 5d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0581b4711fdf24984a278686e16396070aeaca9afd36b1af64cfdc70d9453d29, bca53b986ab0044d0093e587065d7ad0df4fde3d20de623a7dd6f1dac29e092d - -p_scalar = 5e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bf87ea83037278d9c87bdb8203d41796955ef205d59848ebc82a7aefd2df5e7a, effe0727227a558507158615205669f83ffd79279beca88e3a7da59c78e65157 - -p_scalar = 5f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 76a8f9fea974291f9a127f2bcaa12d0d6684ad762b346fd2263e039bb308cc40, c0d6c024d3290bc711e4e34acbbbaa5e9ab66367f3a2445f37fdfb649755e61b - -p_scalar = 60 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 11eddf7fd0a0da0d14f356cc6abc354d6d490a4b19dd329b802b8d2333e12b70, c0d5874bdbe5d48ffc4b733b83d6435d02d0b07402fda7ece1df7cd727802e27 - -p_scalar = 61 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f1ae5380578181c7ee848e1d2566805eda8cdb78397e43f4dc90323bafceb64d, e042b8efac30c1977ba880e0cd9f48987a0b263ca4974818d2384719638f3883 - -p_scalar = 62 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a6eecf308794885e74b44206ee3751becc8715abbc82a095d5192c88589b69ff, 160fb32bdb3d1cef94a20aa01c6f25a45c067c89255b379b5fa5855722f31c4b - -p_scalar = 63 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bc438ae1a4e65b07650522fd4a9a3b17b1f1abb66a7b43712d037bf83f9432b4, b598c01eab0329a6fc5c3d3846700b4c854a75c18aafc1b9ce4a815d7b96c3fb - -p_scalar = 64 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 55401274eb1385f3f7ac46733fe90a2ffe49233161c52cf8b9a17db9bf61fec5, 9c41619a5e8eabde955f973dcfab730b5246164a7a4539485a247ad3dc02f970 - -p_scalar = 65 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e9b1c23914da499e6a610374c569a602bbe914d3b99cd026b7a96e0a4ea6fdf7, 6b3161f424574039a575eb9bb418886c8cedae7e90de97834a090f01523e6566 - -p_scalar = 66 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0fcaec0ffecf6fedce33e49cdd3dac5cf5284782e9f60f1841a6fe768f9b4748, 5d88925f7be836710c2cb707df01871c9bba0433a436d55c35e31ecf5ab1203b - -p_scalar = 67 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f51ec8724c3c386f57670e41bf619241d0a875e919f7f72c564bdda6c71f8d02, ebd64e0651e2c128590519f6cf5b06dba2086ca0d79e990cff513e61174082e8 - -p_scalar = 68 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 1d6de36b734fc1b835d2293fc7ac3efa90ee46554c2a623582d0020682c4bd6a, 9456d43421a5f33f8a51077588462f7b00330a1f9ede82116b953c403008a7a7 - -p_scalar = 69 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 680d5abf65e03a86c08ec1602b1d28fdcb11125c02a9ba44de6ddcb77b371390, 2c292eed1161aed1b1cb924f8e340368378fa836c431801a2a1384440acd87c6 - -p_scalar = 6a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 7145405dff1765ecb81f9fb1279df6ff750c11bbc098aefac4c398cc1e628b51, d9d0fc13f8a85516a344f964fc017053ec8de7db843d8108c3c279e27c551e90 - -p_scalar = 6b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ee206023efce1a7028f9cdebe9f6e8773571e4d1592ce3342ca0ba9c3796f4c7, 332816bd7158ff3f1ff7fc61fd21d00ed8ab1bdaf58097834dea61f7489c9623 - -p_scalar = 6c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9d873705000a079bd1a8678742e1cbf414d147984d7df1ff2871263f72371e17, f2993035b4a2be93f71aba0e4ec1d4b6c9cc69948ff6b195c580b52a1fe001ff - -p_scalar = 6d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3720b2475548de20e7b092174df861f4fd4f61e491ae8d13aec63acbdd10edd0, a02511c5e354ed39f329dd451478676618dd6277a93299f250be67b8140c2087 - -p_scalar = 6e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e7009ee6652405a945ae78ba39dcab99b1fc8c8c23fbbe6e76fbedb5a463fbad, 86735660b10c81c4d8f38f9391b7bf0ea89eb6f180fff6a9465703a073face17 - -p_scalar = 6f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0cf804d77a9b6a20098f37bb0832c416327dac318072f08dd87f4ae086653aa8, 0650f5316fb2b8cfd8f5233a8eb74ecae33f2b325dc50598b463abc75981de8c - -p_scalar = 70 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 71704d008938c16745ab5a4d7832ba0c94e258f604a428f26a9505760a99cbca, 9afff3da3868c5bf18fcad9782c9827fa90146d23ff14df8246854f10774748f - -p_scalar = 71 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 734e0d078a2b0d3acc3a5ecb983538693289e86e10ec0d40a125e6c1b7ebcb88, 9e27df61b60c5ac32ec3356f8b80e6130594324f879f89461f26d165ae6ccc9f - -p_scalar = 72 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 08e2f429f216dc997afec8bb9b4e920c18849f8ebc30d62c751e03f0216f7c55, 43f113786db22eac69467bebf560798e684a695fb28407b8a1a2207de2933cc1 - -p_scalar = 73 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 7c3ff661d8ecca6e8a2627c4851b5bc7f15b920fa8dfce56ad19e039119f6cab, 16a226267767de4e237207aa01d0b6c8a94893a9455bc4d84622d40d2a0a4a40 - -p_scalar = 74 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d8f1fc5f6a92b9aac9f08a5659cb1b6e4b3de89bb2f5f79c87f9793bc9826344, 56375b4ad46ea8260f93d3738fab65a8ac3cf4429a47f0e979ca80614beda6a1 - -p_scalar = 75 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bbdbec7d79af29b17890e8d54796883355a3bb1ad9699e9208e4c4901b620dc4, d3208079bb7f001d623ccc6d0598d7a3af3092ef526e5caf6d8af218c1ae1e43 - -p_scalar = 76 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4977379654d7a19e24869d65bb07ad54f8f1d8415512ec1c24c00de93f5f68a6, 363b29c5671a649e930698ea3ad859a98be407f6fc437719fb0ca82e0f9e3121 - -p_scalar = 77 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 6ed0b988157b7f562be22ba0f3a49fb4062afb7c1e314dde87af199e6cc47305, 0120efea019118fd2817ebc7f0984aebe82d639c78848b687e9d30afd29ac026 - -p_scalar = 78 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9c7ea21245a2473fb62aaf7c37e7454e094e7ddf4f6ab73a6ebdb7bcd0303ba4, 2ff813865b858eaeb732ea74d3e14abe65d87563555fcb68358918ab6b772fc9 - -p_scalar = 79 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e1a8d418f77f10e127d2bf4f683b30d1d71602d5b0e5fe2014d7251a8c03e3f4, 517c6326f166afa4550b2b1e6cc6b78d00ce7b7c25f5b6695b6be5e1895f1528 - -p_scalar = 7a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 62280f9a573fbfa8bf357e0c9358983ad183a961caf64cbd536eeea92f4ff97a, 855c4c324d5efb4eb39466ab42ae06fa9156ba434e6fe2c2ffe25e48816e894c - -p_scalar = 7b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2d7ca4d8f1e354871783d1b6917e47255a71497198a5ea8c62ea859803b58b02, 5146fbe29618773ba78f8d93e91c1fd525fb337771e800abc0964b2b64b2bcdb - -p_scalar = 7c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d8c0472156db126649b1dfca7f1412750a10ed1576d7996d10f264bc85fc00a2, 7bb713506fed7602646b3b52b3661bc6a727afaf1b226fa5bc20540c32897bc8 - -p_scalar = 7d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a9fe2396bb85b9cb04b76d2d1ed32559f72dab6d225733faaab54cfc93740130, 4e9295063c01443fae23a053eba00f2add6dc6c5a860c31ded74f2db40dde60f - -p_scalar = 7e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 6941195b752838c39a7d703660ab52e9519a47b4807a9d289c9635be52bf127a, 6e5b1591deadea0aa0eac0a955c921d27ba60a90ad89e8e79f0041d18f259ec0 - -p_scalar = 7f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 15fe6a86904a36cf6072a061ae619f2870e9016cdddfd92836e84bb6dee35b41, 898a6ddb541c3eb52f57786dbb0bfc0d02e3b569f529fd2f6549697409ffa69a - -p_scalar = 80 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ad311f2c46d5a6173749bba4b3ad9db57ef2b6b9ac62ff5463c5cb817a2ad62a, 05c72cde13ff7e780755d9928a294ec74b90150dc987cb0048857f783d00c492 - -p_scalar = 0200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 135dc5395b54827dd161d2cacf780900bcef72873566cc63b2330fef4e4ca463, 74f3a8c6d9ead371168ca79292ccde25ef5ddb10f8205f939c70fad1d840e439 - -p_scalar = 0400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 15b4488b29fd9fd06e1da8c39a33c6771fe19e357fe4364e9910ba6b23a5d896, 0d3b086249137c65c02e4db6f81a9a716df57590547e9c17e0bc6dabe5e0dd40 - -p_scalar = 0600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e78c2ec0fc61206741311f8a38038a5d8f860c7943ef881c84cea0691416a6a5, ca41108461c93c6200aa75130c9ed3454b336200a69fbf68b6b2d17ea528ca7e - -p_scalar = 0800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0bdec21162bc679298204cb64fcf68e15d2b0ac6c717370e8b5c619c76497ee8, fc8db7152d2b034ca10496c1c2f1f374061c05691f21e53a968c331059c4efee - -p_scalar = 0a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = fe2bc235e52800a089fa443d07d3e75e96e9793ed510053ccf57fca29849e95b, 11ad8b81369f4f1fde81bffa1abe1a6d4a7ad5b718dddd9ce3df7473f53818bf - -p_scalar = 0c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 69aada7f6d6180a56183291b6ed77d1c62699718e770b20dd3694e2ab20364e4, 2ac1b72cd7237812295dcf758046927202817baa878fef88ae06fab40e7aaf64 - -p_scalar = 0e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 1280aafbed23f0d182293299cdf809af94589aac6656bbe13e858c2ffceac518, 6405033235a7335e2a34ff4cbf0fdcdd1fef5c6630513e802154f3988cf91d5b - -p_scalar = 1000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 7be5ed0dc475c1293f06d66c530cb4f3d8772d353381060380802dc91ec34f9e, f513bbea8d7a443646dee7396d5e4ba139c2d7a9360094b33461c3e6ce17d4ef - -p_scalar = 1200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f82412db37333f2074feaff5e72c2666cb98c3ea2233117dba89095174f9fd77, b51180a01afcbe79358bec59ac19d3607e5b687c85448e55323c0c5062d8e35f - -p_scalar = 1400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5ec40582c9a82fa78d5d177c64ff8578982be4fd46700b8b37071afbe8316c45, 52b4b08f3f3eb21aced0c69fb44448b3db17f60c60fced7baae71c8430579987 - -p_scalar = 1600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2a1ef7d7822e8cc963aa5cca4fd924a2b44de63e08ae4169cf62c250869027b8, 7f5cf538002ed8de737d18ccc5780e107d7bd440b479c9141be4c839914ca0c3 - -p_scalar = 1800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f3b4962f5f3e6c3e028a81514f3cf2dc6415834bac4ab3aba3d6f4868eb6e843, e48886e1f978ecce3ce3229464eb6129bc8592761ef431aa6ee6516f67822d0d - -p_scalar = 1a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d9025fff8a8af1c635761c8ee1f6176d54c439b0391fa36e2f41e643356317fd, 945416afaa1c4881851248380ab5d45b44b722ed6a5b8ba4737d90c30833bb8b - -p_scalar = 1c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 1eb6a9688f95277ca3fd22fbcea3f029965a774094e746409c34b650e16e05e9, edef63b45310a343156d3e99647bf2b7526e8dff0a70d011dadf59c284527b09 - -p_scalar = 1e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 870ae6bdc2754097035ebe4addc4f080ed400a2232cdc71aee20415c2245134a, b092884c8aa21a5e16a601c1a30573590a80e6aa1b0aa67d5e6d197b3fb728d2 - -p_scalar = 2000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b7a23f34b68e19f8d0107914ceaae10ecbe906f04c93302efc189ae71e29a3ef, c30f4406c2bbcfc89aa6e409b25e8eecfce673920352363716278a3d102dee62 - -p_scalar = 2200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 68a9969c8e2256288644ef1cdfceb8ab862ae25e2ece8f72d32d7cec0094e84c, 860d7d9237a468fb342f659a640f3249cf7591e87d45dbd420df61d84cee8789 - -p_scalar = 2400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ada4cfdd7ecfa8408c94a21ab972da90598d0bf8849be4b7ab293027aad991c1, 506cb915147a9d206ffbdb14959ad5aa8359e85efcde65cb6c2b463f043139c5 - -p_scalar = 2600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f6e29e442433b4c681d700b2c6fa654a9edd11a6b7a82bb80ef6a240c793c0cd, 2a221c4e8df83860eab25e2e7b77b685779c1f1f53e2a0ae5522c2a7660fe4e2 - -p_scalar = 2800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 54476778acd2f1b6c92becfa390b3ef2b1643ab5911bc478c3e04d7902381461, 44fb8cfe6f4f86f611e7d6ef4a5ec53cd43ed785d3de39a57255f3b29940c550 - -p_scalar = 2a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 574fc2b081704bde30651575aab5306d953939f44ead0fd9d6d8bbd2f2338d2a, 0d2ba583b63665ed12abd59ad3ae16b618d475fb149c0c70cbfdf7e0becd0d0f - -p_scalar = 2c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 17f904ba45b0995e765a50db1a6fd0ffc5772beefdc3a47b83766947d17d4e0b, 3705bd94ebd02b2b98c726b0b934e0260a92480d3d8f55123119bc7cd77cb781 - -p_scalar = 2e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5090d91f0b80bcb946d480d77119c60ed7799b31b313c052bfe48a8ff43daf9d, c02509dd9d1e27a689641fd44e2a6d73e91964b166ea55f536b3b3e178c42840 - -p_scalar = 3000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 389caef34ec5b10982159d07de7d6f2c945353e1b2d4c63aae485bb72b724759, 8cbd64453ebdf75d7e905c127c0dbfa0d23d3482226621bcb57144ac249a10eb - -p_scalar = 3200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f5aa74e43a64439e577793fce12c68ab07de7ab35133e5a2768978afed08d68c, 5da88e7912bd33f859ee2be3710df0cfdffc222ce2bba6fd9ba826f3bafa160b - -p_scalar = 3400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 58c8a77ac0d58abd9947c636a9b6e05a8d98277b4a837f6908ed8febd56daf06, 041e7a12c71e14b91342e6a71c04f3a2e9329839ef892c2c0bab695ba0ede1b0 - -p_scalar = 3600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9bc6c2af18eaf22cf81a4b3e0fd97269d8f158f5d6df29e581ea0bc89b6956e1, 9c4b4d8628f8a1e4bcc6ab6270d0a6c3fc4405f16dae12ba3e2c31a1929daad4 - -p_scalar = 3800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 98fe1c61f5b61d31fd025001b905b499dd4d06aff39e7832b7ef9760ff79d2ee, f71dececd3c7cd215cdd4f60aeb14e92c891c488cff632655607c67f3a0ed7fa - -p_scalar = 3a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d7d80165dd6861d485715b2edb2589d37b0b8307280d1be142c772b68b61c205, ba7519a234f0c9acdfa1d767bda92244ef6a5206c475428a9dca8b9a7f78fe7b - -p_scalar = 3c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = beeb3ea58c37888ea76697bd602e90655dc516824ddbc0b6aea68626dc4ad4f4, 935ecb9c6d33f603604a9f6b651bb20d1b747df45ca0bb7be13b5d0deba96eec - -p_scalar = 3e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 782b816e9f5238b55631049161a549b25d485fac31ca379550e1b82c5de1691e, e4efd573a67b8fe35130dd212031f25f5600525dc0d6ad5fec0d468cb9c2fcb0 - -p_scalar = 4000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 412c9e1e9fa403a4d1b299b504aea4a9047e2ccde180b2dcb618d590b01e6e27, e877ae428aedd469c5e49033199721e6b63afeca0ccd471c772d75c986bf8aad - -p_scalar = 4200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4b782ecabc2251e29f1ee33c0910e35e65854fd78777a63d723ee82acb8c9fb4, 7c75c30e3e16873bc701019f2cdcfe430a09be2add256acba5f97db2ba0f87a9 - -p_scalar = 4400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 720d5901fc5cb4c4f2876026ea269465bee5f33e85425bfe3d16740409d9735d, a6506ac46b2b29e9d4cf469b641bf2ab861cffaa6c74643abefca879b25373ee - -p_scalar = 4600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a4fe196b936adcd72b999e56f814d996687afcc16c6ac81b2bba2fcb7bd03b00, 1ab858cdf2a167e12a228e923f83de2deee27d5ed2654ccf28e9a3d5768260e4 - -p_scalar = 4800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 47f93e8f0d2f339d2df4486ef3b4e2e0fca35bdae5182b8d7f4b55864f6dcecb, dfc2165d0d72569235d4ba0bb9d4830fc1f81d45e3f65163b8e242d7c1c93b08 - -p_scalar = 4a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4b5a7b2307c5f1098b5c3d0371c68991750aa51875c77f94fb78df45414657c3, 4cfcadcac4d7da452026db79f61a19bb00a9b7aeae80e414b7db7b79c1804211 - -p_scalar = 4c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ffab5705044464f22bac283b351571b3b88e7c47d8d42a028b002254c72340d5, 99e919d4637aad57bd1c7b347dbd0cbd1bf10ce5e573735768ff22be52225de0 - -p_scalar = 4e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5ea74c730418d46d3da600eade1864dfc4ae8bbb8b383d060471cf0dac517b4b, 44220f00df9a7e2ccf6df413ac330d0c8d686b4421917c512d6ca372422f8c60 - -p_scalar = 5000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a35aa23fbf846bbbd43da670d2f74daed61257ce383c8ce9b1e13752fb85fa4c, af2fa55364392dd2cb280ad5c3b55ea7092071203c9cb8c4a18bdca2bbde037c - -p_scalar = 5200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4644b8fb9aa64d9150c9f363b5117831ef6feacd1584fb54adb84fb6c1127e87, 5af26a8085d1122b9c217ff8c58b2488408b97ee0b241da38adf348eb20841f8 - -p_scalar = 5400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 91c3a88a5b6e8c279d0a1f05fd8884e9f1539d9e4c076aa9d334b37c4b8e12cb, bc3bafcacf9e30bf2a1948f78e1f8a26cc7c918cf4672e8646d15e7745855b5e - -p_scalar = 5600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5e76ec2fd83f56287099228335b50df42b516dd73422c5c118d919e2ba9fa405, dea46d7ba6be19c7e2ac310f86196e7cf11adb5bcd22e983e488640762d3731a - -p_scalar = 5800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3ff4444fd2ad3a96e5d755618de929cdad07e3c765ba422be4db7c0067eb93d4, c3ee8d0fb564c728a6f5855f810805aeb144b9045aacb347ca2ac1438e0eb1a2 - -p_scalar = 5a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = abe32380275a9ef53b7cd6098dc0954228abf7b7a9c7d8a5ec69d5a37aed7fc2, d89fbc8f199d31aeb6f74e3ead3671a34ebc16a84166800137db4e055970628a - -p_scalar = 5c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = deb035fcce7723a22ca3e0a1d449c1004ff211619adcd4bb4fc56a1be50edb52, 1c4fef977971ff17c25e5fd56a4c368f2ea2c4a0e263ca39f956f57e77aa2afa - -p_scalar = 5e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 7c0fd64417a177b5010b2e0df05981da66d63eab9af46f4588f0367ae686a10d, 63376f9703aabb207b7a699c10d37c1ef98f3720ab5cf6479931effba58749aa - -p_scalar = 6000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 50235a0fdc91927053b2bb803ee35067bc56637b5f29cd078c56e735a64785f4, 777ef9a3a13f07f17fbff45a0f07fa453cb8a7cf7c69fdc4e6e549270d3b559a - -p_scalar = 6200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2dc1b8bb6885309fb1e70bcfd44571115df7fee1116cd289c547a21465944d7c, 5a4a2100adff0aad0b1626cffb8bb27fd14c2e6c8c275be6c7d820138bd23b08 - -p_scalar = 6400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f1445d07414974411c75d37565dfd734bddc1fd9d5a52b5d45ab2440e4c3c19f, 5c00cedb1692044fb726342f6f670616f1087a5b4cd9bc23c04be98962ba0ec8 - -p_scalar = 6600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d1609bf2cd28c8fdc8b4a3a98a9fed30e6959e40b4a07fa19ffe9f1de32e3a6c, 4a1e06b336041e2b2d4cd3ddfcebd74413113e3950b4c34d2fb918dc46cd6c6d - -p_scalar = 6800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 237c88057388378848d61dc507b6f556b2c6a5f201dbed52cb4f805a3e4e7d6c, 25082afde44cf841146f4bba1a363f26c60154730f6701cf320e4e7c7059f5f4 - -p_scalar = 6a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 845a882c8859bbc2e883d25ff51993083258a70ad731721eddbead4a788e09c4, 954ce3bf06973608099aa5a1cb8e5a6085b82bb53aeba78c009eb3364ec42bed - -p_scalar = 6c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4d6eec323a1f89e99267af0a5dee21c6d56850cf6466696a53c474abad6c4e7b, c29df3748076072f982c5b89ddd64ab3382ca3d072639a61a9240aeca8c4f745 - -p_scalar = 6e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d28527c6a3824aa9d34030745566465654a149071f100d40b1b006aebc0d6863, cf57d4bf75176d98a4ddebee9b71bf2c541a56d92c7ea275315715e982e255d9 - -p_scalar = 7000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 8f12502ee0138997ad364df067b256dfde2d4ad1860b8bfbc370e522cc1b5e83, fcaee231345a245bc07648bb2cf9b45917ffeb533f437995afc05f23887c6df5 - -p_scalar = 7200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 88a0df625c0cd66e4523b7dcd2c772806d46968e6a3bd9ad34f365ff3405157d, 9a00732bf6369934bc38025aa45bbf707c5afd733125eb17ce0c6f0f3ba6eaf9 - -p_scalar = 7400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 350fed185a914c72b1ead64104f9670908dcf2b70004539e0f58cec54e27d357, 5533f0f16199265d9d3cf97965bb62aeba074b91b92fb538bb0bcadc3aeb87ab - -p_scalar = 7600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 721595eece728342af86c88034fb313add3f191127a10139823002854cd4d5e2, 9f3bb1d9601b4aed7b75a48a325f5367443b4ec8af8951b3a9e5b2faf2c09845 - -p_scalar = 7800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 394c3ca1652f359aa37951abff9f5089563ed687c3db1e5fec79a10fae256721, b104db405fa38d00eccc333d014ba1b9efd39bf1f5b6decf4951b323dac0eb92 - -p_scalar = 7a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 829bec8ffbbc8adbcaa9b2f496d71f842e0d323fc98fb2ed918ad277a25ed969, 28166c21baffee49802af12b233d24e2a8c06deafafb2e333a4d2abf4f57bf3d - -p_scalar = 7c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 114608474b9883e7e6183976a85cf4eaabd1eb6c8fbb831a86d4cd28294b04f8, 9793db050d1aa41eb31fda7157078ac5f304939f55b0c15b5ce7a018c3510ab2 - -p_scalar = 7e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 8ccebd9296f0b3dbe251932fabb53deb5f020d8cd37bc364b63fd5141593f8c0, 34cd83e4786564de19a5851fc34f06c6ccca7d68534afe1b92f86f449b6cf24d - -p_scalar = 8000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9211e489de7f4f8a426eca29484c2ece9c4e7ad63c6341fb197dd46d95a7b1a2, da06d1b7f09f1fe8e8d79591e3c11217d4d3f6f0f9a8ba79eb66809138710e0b - -p_scalar = 8200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0695d25fcba9327ba26e5822d699d95b7a6c1acdf37b2836203a31d5a56c98ef, f55fe7336f090c5a6bc71eefa6525e79bb7f9f1f194de5bfaa2238beb7bce76c - -p_scalar = 8400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 95e360666c4165c8b8e2959954327c6554009f1e6d947506e4cf728185967fad, a78389bce264586e1cdde00ce0f1a086afa0f66db6cc5ef2c640cf8b5c4c0ad8 - -p_scalar = 8600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3805f4e7a74465b996976624e2d6122797e8092e1a7c6add2ab55f653e360df9, 105aaf972949897cf26651a5fccace103ff94fec5dfb12be9eddc215f5ba9146 - -p_scalar = 8800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c48d07aad919b53f72bfcbbf25a2f91f7112f4122205eb70be6dd7fc6b7733ae, b178c26282cae663c70ad8ebbdd2c625dbafb3ec91013a8ec15b973ed95e096e - -p_scalar = 8a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ef1117f3334d256570ec0990a1bb0900c512ae94e04e361fbd7055ffbd4132b6, 1e15b34510397d8988360d2718ac678588eebc513fcec4d5ac26b4177d5773ba - -p_scalar = 8c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b36ddb5a551266fc72a174550b384fab97c8f9d8b94fdd362441c4c0ca8f86c8, 0b2d7199108eb224df89ffabf8f575e0c3cf9430068a4299731758edcbed837e - -p_scalar = 8e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 1f07fd1a9ee01d68891d265bb9f79dc8d31da5b74b957a08455930bfd7425424, 110d6a3ad1118cca57d3f35c423f5902d33663dc2d6f23354ef6ee38a25cfd6e - -p_scalar = 9000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e0e5daeb54dd3739389f747caf3c3030703ef60057feea5b805c564631890a36, b5e4284906a573c5c8e7c21d50df40d681b40e8a4ac6c69d01db5b3c36360eaa - -p_scalar = 9200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 11a4ff0222e558e644144f890e8ff816669d7b57254db82633e0f086aef314c5, a545042d61f178f491d6dca4faaa253208a83da7d1abf3f4371acd90dbc10419 - -p_scalar = 9400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ac45249aec82d6d8a5e1d3c6e19adb253f01996cbb97d0320130abf38cb5ab31, 2534ea7809db05101047eac71457406b02dee39b497e2b7c3d8910d1a3040209 - -p_scalar = 9600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c738cbcb5a8e43bad9f6002307a003ad81351ce14ffa84fabe1b922b396fae20, 362d21f8ceca0e6d98c801c19d4b94040effb85f9a2e7e824ab9a137362105ac - -p_scalar = 9800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d723ad15da12d3f14aa86124ac83299759198011fda9f625e8ffb637410eaba3, 17278d3a7fe4d4c66de3860db69fd06752cf7b3712456753aa223ac0d2597ef3 - -p_scalar = 9a00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5bddf84d01fb6ab7717df9c3adcedc68fbe6587456a7fbaf7cc7479be15036a4, ea6f8714377703386fe4d40636f3d64484810517cdb79e553ccf5c91a3938061 - -p_scalar = 9c00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0617a8dfe008a218c2700de3e39cfdf9d6b37e5eadb39a5c5e6afed1778930bb, b4c6d7fcab4adb7540d7ecf6657057cbef4004859a01af58c166bbe8140e1951 - -p_scalar = 9e00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e19854ec7a29e8cf8765ed78b03c224b072454d8cf4f0b1b746bf4ffcd5eb860, 979624d9790fc716f3d40cd5c626d3b0bda675912d9debbbb665e6db551a2f72 - -p_scalar = a000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 6372def79b2bafe8b18e2c1354107588281fc8dd7b87f257a83b969946191d3d, 1c43104f1bd8ff56e1531cd27bcef30bc0d22b49a9e985c0250b44b7f2768d35 - -p_scalar = a200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9e15ebed69c53ab58cb605eda605ea2cb0766c76159bb5814ecfd1490d4d367e, 08fb59cce0d3f4cdbb12dd157b823412725b82ca3c22662e0a4e921c0fae9c8d - -p_scalar = a400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3b082784ac9daa213e9231dde959e9257f81bfeceb104d11989cd51d81ffd706, 2c44be725a065ca4718d048d0d7ec18fc2c099c83eb051261d71fd00fd80e5a8 - -p_scalar = a600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ed37bac889c8cd093feb1494b52fe95b30df23d4bf8ad1baab45ff2f3b264155, e2a656426e8184ad50b24ff6968ed36755ab15a05a14cddc2b33fd0b18751435 - -p_scalar = a800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3eb44ebaa26cfda9ec294f9bd82e3b0c7adcdc636cfec330698970dcc1c88910, 98fd31bf0dcc0286194c7d00e797bff25b287f337382cb12d0b7736358611efb - -p_scalar = aa00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 6fd044f86e7c58d93fc322e9763408262abc70bfac2a8c9eacd17f62a70bedca, 1cae0c88d5db19418efb64e8b272c588b505a57c634c07e8a7b3b7aa3e85682c - -p_scalar = ac00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 03e6e884142b953fcf6e45c2f0b7938f042782b6c788822f7caff2a8dd7f4788, 9c03fdba806b71fe0ab7577c2cb83384e1a4bdaec9349485394cd3d08b708043 - -p_scalar = ae00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 541f1c670f8d83510a4f0dce10075d18a773c212de55a51ab85d636205e61d13, 1829ad5b8f00323d21cd1abe5b8c4a798647cac1d2dfbe09d831cf690f3ed565 - -p_scalar = b000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 35e8048ee03c366502e23d41dfc6514aa5db5ab62ea604675fe5691ed785e73d, ecbc2e79242f1bf117353391d399b947d713c4bb7b31e5a5c074ee70e5255f07 - -p_scalar = b200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d8e96623f2e1ed0f96c490c17b199bba4831540870192a511fd78414f227c4a5, 31f45190088c94a0959d925cae1a0b7556e8cf57e1a964129c33b8132181f30c - -p_scalar = b400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ed1b755f2815d3cf2138d71106187ec35898b1930650dd7ce81907220b4ebbfe, b38056cb82c54a2b55878db37ac9ad4f75837547c5ee97d0abeaa1ebb0c6baeb - -p_scalar = b600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = fb909a74cc54235e35059c6f94d6bfbf9aa5d2c1bd5a35267217348749af1daf, 4f41d2496566b84407ac1340451ccd2ad977c020e4667467ce401a280c7616d6 - -p_scalar = b800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 12128b2fd412db03d45acfecc1c397c7110ef147732ebbe02e605d97ce76aebb, 2fa8b950c6a53d9bf56d6a2d5f34969d145d8cd34ddc97ecfd810f66d5b2ca1b - -p_scalar = ba00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = df8df34707ba78f463d2778a91308c54034c07d0eaef09eb0d13b0393524a32e, 3821eeb8c663cfb9e4b155a08cbc34744e80b886a906dbb25524e7609b6fffff - -p_scalar = bc00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 570f50b9ade5e185d379afd6bbac1e92f1ca3c3639b1290c6b3eda297e866baa, c09d1b8382c7905056e6189930526a456578d62d573e547f7250c29000770668 - -p_scalar = be00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d9b588174709218a1980177d765796027ca43bcb2bc83e9c14dd8c3678ffb696, 06fb5b1a18c5f5c5a69b595658090885a41347586783743a7d64ff6e983e64c7 - -p_scalar = c000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b37b515f042eeec8d64cd42d9c875d9a1a1db7e49924182ae5d7f844caaa358c, aa5b7e3e7dc936008211befda6481e8103cdd1271df9100cb2b22bf684e9a041 - -p_scalar = c200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 1e6f624584d42c5a9fd11c23e1b2374586dd7cdb056b372c9a7bfb76f3086c58, f3cb97459a2da20e2e0ea9c7d6a9cf97272ea955866470574f10374f0b856d4d - -p_scalar = c400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = def3204ff622e0f51e7dfc2f11b5036e56aceaa0609c4809389ca9c3b1d2d491, 614f7f1c3bffc28c1c998443628fa6db155d239948ed5775b1d1056c2d0148ab - -p_scalar = c600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ac2244a68510d43ed03eb697c84cbed4e8e7b7e5495fac838defc208af8cb7e5, 8b79df4c11cfef71055dcef6f267116bb51baacd8680171b40d2f3fe84d6e175 - -p_scalar = c800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3b2b115548841c4bac23208fd26485e9f65a3640454ef41ff86d13f9e149e73f, aa798348a58dbf409a1af4fd0275867f69aff1c78d4bb4fa916dd3f9ac1e05ed - -p_scalar = ca00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = fbede0865908334ae1e330f9c70cbc1a87382d6f40abd3c3eb3a10b1e94b9d1f, c22b42c5289663eb0ed8edfc44d2232151eaa4b260ffbcd71baaf4cb2202baeb - -p_scalar = cc00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = db88c71bbeaf13bc07a69a30ef6276ed02b0c293cb37d658dc2d1be24becfdb6, 87fd26a1b08c632348f9e0cc903001773d1c9232637327282bc7910a368001cc - -p_scalar = ce00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = af06ff2bd95601e3e6b95f2fdee3d5596a0d1bea32ab6a5c6b768e347d563eb6, 7603685d5acf30d24fbdea479e4585a41f3afe752f76070dd310d38ca0756e4d - -p_scalar = d000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 956b31e003c45e52a078868ef78edd391571580605d6297b8c885312c23fc975, 74c849cab3eb568bbe6dd84b81d0da67372a23c6f38198c0b8fd8a2a0084cc59 - -p_scalar = d200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f7ae11128858d4bd081e8fb419b8ae87f8b465db160c6066244bf1db2540eb02, 9dd07003d57bcf5e4b24b13ab51778225936f29a5ea0a1bb6ba5c905ef84e7fd - -p_scalar = d400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 7e8caa24bbb577974f1bfe0fde5e42def5eae8c7f89acdaff3022fb6e646703a, e3ae768db721c229fc366a496dd93702ae1f99512ad40c1bba14638bd3a8f0ba - -p_scalar = d600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 726cd1b8f826237f899ae92398f41b6f681817c7c9c515ff302c3cfad169508a, 64109964a0a836d6d035e73ea9320e3a07b72bc6853111e9d733a3574aed4a95 - -p_scalar = d800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2cd615404fa3c57214f08f32b806bbb3c97bf51d0ffac3078f75eab499646d05, b8b3825f7964a7e88808f4049bee10bf7ca6cbabd1c024f607f2af89d56ec49f - -p_scalar = da00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 44e6235a685fa8c247bd7309a9de5fa66db2fee880a40b64c0b8debf4aa4d144, 0833b86b5c19d8f9ac8db4c9f6f6716b89b462ecf3b0c234caeaa55f50014826 - -p_scalar = dc00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3027a162030cd7c2ba74f8354822722008faee4e603bb73e4565f9a834ddc625, 10e4eb4cedcbd2a01407f6062c80c8a864711e860cae507bb739381308d35c5c - -p_scalar = de00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = fe35f5c66e9d40a301eee42e3d4f9f3ec28f13ad81f4f013096bb45b738230f3, 1b9004134543f28ccf139d82bf91e4424e7bc18151dc4ebe18d3828cb1fe885e - -p_scalar = e000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9f40ac3bae92032334e5d0dcb987a24a5e0e8c3e803e25dcd0667ed68b11888c, 810e13d73b8421cbb6e33283259b0e485ed7406e949cd706ab9c216acb1f09c5 - -p_scalar = e200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b9c9c244af407478c96adb0c950359af1d0243f09da21539499d4934d78d5664, 6560fd45390953fb7ff4c255cf2f156f2692975ce17dd11b2889aa68e4a01d05 - -p_scalar = e400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bca14b180256394e833badcb026fbed49d4cac5be7b7f4d976fdb4d8d72905a3, 1398508026f62ea2d9661954f8eee0784c145115921e9518f6148aab2d205de8 - -p_scalar = e600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9e84b1429d952dea1a5702fde822c43a6440a71137d7a6d5b1a124a2e982371a, bf0877e197f6185bcd1a841d08d3644cd46ab8430c47394c065da5918f8107ac - -p_scalar = e800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5774d975adf3dd428b24580ccbb8bfc2082ec7feeac69a05a84eadc3c6f859bb, 5b07a1a1962220d00bbd4bcea8db09f6f574e02249d4dfa80cfd0e3e04e7aba3 - -p_scalar = ea00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 18b7629228d8a479ef8c3fc19f7258a24084cd681c0bfed585b4a7b6c5b52828, 51255506bd74f106a8b0b8f89daf1b0ab051b6588354a76c285fe015041903a0 - -p_scalar = ec00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a9269757ad6c71aecd89a9d614befaa9c670d56c86853eddeff93c2d3edf7a05, 5b0f80312853357e54c02ae48d51af5d92ca94e94ea0bf05c41cec35a788f16f - -p_scalar = ee00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b5ed7a9125881c7719ff07a13ee17b6081df350185faadc70c267dd0ae0c2b14, 2bf138d8cc37cc1635121ad130f4ecb5563b8196d2387c33ee82cdcf4563b354 - -p_scalar = f000000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 80f1a439c929319d7a3a6453d4fb689735dc136663621bc1a857240fa36a2737, af283981c8d54f6404f2b6dbe1fe2f104f4ac89a7f873a1403e7d8b40734f45f - -p_scalar = f200000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 728fc5136ff083f3eb5c80bd85a5f16d33075ddccce277ec4182e4aa4bf75924, dfba71a5f3e366d7f5720029f53f0159e6ac642d3ee6a5135c38717040866d54 - -p_scalar = f400000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c02fe1c417b27af67e00049f9ab0deefd6ef61aff90e37bb06c9f96c6e75e767, 1c2c0ba15a7720bd2467d68fe7794a246f0c190e252fdcc837d308ff7bf10b23 - -p_scalar = f600000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a883f42917abdea70042d1b7833a576b51a3fb710ce3673f85d05386724c3c80, a16cf3f68a9ac134de65695046051e46111266374775aca4b4f8174fd0aae8eb - -p_scalar = f800000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5f2f286449c33aa7ac7d0e1c1fb049783f46e326ce433bc6dfffa17e057a3df0, 1ad279b66e06ba0f5381b3de843a23771499a27b656927e1bf4d171cee8ea2bd - -p_scalar = fa00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a8b7e8a7068a16707ae69dc317ec34c204b86de7b0a0125589502abd170b0b8e, 4a5475ecc62600458f6c1c98db76571b330fae946156ce910ce3916aed5d4799 - -p_scalar = fc00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 7d6dbe6556c0f8f08208e6ce3c650c05791a0732e423b40f16ff861277c713f8, 370de4a16a5fa3aee627881992f8bf1ac20a45523d2e4204af023d3c732d430e - -p_scalar = fe00000000000000000000000000000000000000000000000000000000000000 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 8ec353c2064ebf7c5df16fb0f8867456296c7b9e57af9e532eabd53494b13f3e, 7b60d0de6a838ea1f4ee86c044fdaf15406838ec9d885f6cc9eae79770a47824 - -# p_scalar = n - 128 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d1 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ad311f2c46d5a6173749bba4b3ad9db57ef2b6b9ac62ff5463c5cb817a2ad62a, fa38d320ec008188f8aa266d75d6b138b46feaf3367834ffb77a8087c2ff3b6d - -# p_scalar = n - 127 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d2 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 15fe6a86904a36cf6072a061ae619f2870e9016cdddfd92836e84bb6dee35b41, 76759223abe3c14bd0a8879244f403f2fd1c4a970ad602d09ab6968bf6005965 - -# p_scalar = n - 126 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d3 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 6941195b752838c39a7d703660ab52e9519a47b4807a9d289c9635be52bf127a, 91a4ea6d215215f65f153f56aa36de2d8459f5705276171860ffbe2e70da613f - -# p_scalar = n - 125 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d4 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a9fe2396bb85b9cb04b76d2d1ed32559f72dab6d225733faaab54cfc93740130, b16d6af8c3febbc151dc5fac145ff0d52292393b579f3ce2128b0d24bf2219f0 - -# p_scalar = n - 124 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d5 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d8c0472156db126649b1dfca7f1412750a10ed1576d7996d10f264bc85fc00a2, 8448ecae901289fe9b94c4ad4c99e43958d85051e4dd905a43dfabf3cd768437 - -# p_scalar = n - 123 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d6 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2d7ca4d8f1e354871783d1b6917e47255a71497198a5ea8c62ea859803b58b02, aeb9041c69e788c55870726c16e3e02ada04cc898e17ff543f69b4d49b4d4324 - -# p_scalar = n - 122 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d7 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 62280f9a573fbfa8bf357e0c9358983ad183a961caf64cbd536eeea92f4ff97a, 7aa3b3ccb2a104b24c6b9954bd51f9056ea945bdb1901d3d001da1b77e9176b3 - -# p_scalar = n - 121 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d8 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e1a8d418f77f10e127d2bf4f683b30d1d71602d5b0e5fe2014d7251a8c03e3f4, ae839cd80e99505caaf4d4e193394872ff318484da0a4996a4941a1e76a0ead7 - -# p_scalar = n - 120 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d9 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9c7ea21245a2473fb62aaf7c37e7454e094e7ddf4f6ab73a6ebdb7bcd0303ba4, d007ec78a47a715248cd158b2c1eb5419a278a9daaa03497ca76e7549488d036 - -# p_scalar = n - 119 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324da -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 6ed0b988157b7f562be22ba0f3a49fb4062afb7c1e314dde87af199e6cc47305, fedf1014fe6ee703d7e814380f67b51417d29c64877b74978162cf502d653fd9 - -# p_scalar = n - 118 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324db -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4977379654d7a19e24869d65bb07ad54f8f1d8415512ec1c24c00de93f5f68a6, c9c4d63998e59b626cf96715c527a656741bf80a03bc88e604f357d1f061cede - -# p_scalar = n - 117 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324dc -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bbdbec7d79af29b17890e8d54796883355a3bb1ad9699e9208e4c4901b620dc4, 2cdf7f854480ffe39dc33392fa67285c50cf6d11ad91a35092750de73e51e1bc - -# p_scalar = n - 116 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324dd -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d8f1fc5f6a92b9aac9f08a5659cb1b6e4b3de89bb2f5f79c87f9793bc9826344, a9c8a4b42b9157daf06c2c8c70549a5753c30bbe65b80f1686357f9eb412595e - -# p_scalar = n - 115 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324de -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 7c3ff661d8ecca6e8a2627c4851b5bc7f15b920fa8dfce56ad19e039119f6cab, e95dd9d8889821b2dc8df855fe2f493756b76c57baa43b27b9dd2bf2d5f5b5bf - -# p_scalar = n - 114 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324df -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 08e2f429f216dc997afec8bb9b4e920c18849f8ebc30d62c751e03f0216f7c55, bc0eec86924dd15496b984140a9f867197b596a14d7bf8475e5ddf821d6cc33e - -# p_scalar = n - 113 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e0 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 734e0d078a2b0d3acc3a5ecb983538693289e86e10ec0d40a125e6c1b7ebcb88, 61d8209d49f3a53dd13cca90747f19ecfa6bcdb1786076b9e0d92e9a51933360 - -# p_scalar = n - 112 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e1 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 71704d008938c16745ab5a4d7832ba0c94e258f604a428f26a9505760a99cbca, 65000c24c7973a41e70352687d367d8056feb92ec00eb207db97ab0ef88b8b70 - -# p_scalar = n - 111 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e2 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0cf804d77a9b6a20098f37bb0832c416327dac318072f08dd87f4ae086653aa8, f9af0acd904d4731270adcc57148b1351cc0d4cea23afa674b9c5438a67e2173 - -# p_scalar = n - 110 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e3 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e7009ee6652405a945ae78ba39dcab99b1fc8c8c23fbbe6e76fbedb5a463fbad, 798ca99e4ef37e3c270c706c6e4840f15761490f7f000956b9a8fc5f8c0531e8 - -# p_scalar = n - 109 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e4 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3720b2475548de20e7b092174df861f4fd4f61e491ae8d13aec63acbdd10edd0, 5fdaee391cab12c70cd622baeb879899e7229d8956cd660daf419847ebf3df78 - -# p_scalar = n - 108 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e5 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9d873705000a079bd1a8678742e1cbf414d147984d7df1ff2871263f72371e17, 0d66cfc94b5d416d08e545f1b13e2b493633966c70094e6a3a7f4ad5e01ffe00 - -# p_scalar = n - 107 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e6 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ee206023efce1a7028f9cdebe9f6e8773571e4d1592ce3342ca0ba9c3796f4c7, ccd7e9418ea700c1e008039e02de2ff12754e4260a7f687cb2159e08b76369dc - -# p_scalar = n - 106 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e7 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 7145405dff1765ecb81f9fb1279df6ff750c11bbc098aefac4c398cc1e628b51, 262f03eb0757aaea5cbb069b03fe8fac137218257bc27ef73c3d861d83aae16f - -# p_scalar = n - 105 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e8 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 680d5abf65e03a86c08ec1602b1d28fdcb11125c02a9ba44de6ddcb77b371390, d3d6d111ee9e512f4e346db071cbfc97c87057ca3bce7fe5d5ec7bbbf5327839 - -# p_scalar = n - 104 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324e9 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 1d6de36b734fc1b835d2293fc7ac3efa90ee46554c2a623582d0020682c4bd6a, 6ba92bcade5a0cc175aef88a77b9d084ffccf5e161217dee946ac3bfcff75858 - -# p_scalar = n - 103 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ea -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f51ec8724c3c386f57670e41bf619241d0a875e919f7f72c564bdda6c71f8d02, 1429b1f8ae1d3ed8a6fae60930a4f9245df79360286166f300aec19ee8bf7d17 - -# p_scalar = n - 102 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324eb -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0fcaec0ffecf6fedce33e49cdd3dac5cf5284782e9f60f1841a6fe768f9b4748, a2776d9f8417c98ff3d348f820fe78e36445fbcd5bc92aa3ca1ce130a54edfc4 - -# p_scalar = n - 101 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ec -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e9b1c23914da499e6a610374c569a602bbe914d3b99cd026b7a96e0a4ea6fdf7, 94ce9e0adba8bfc75a8a14644be77793731251826f21687cb5f6f0feadc19a99 - -# p_scalar = n - 100 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ed -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 55401274eb1385f3f7ac46733fe90a2ffe49233161c52cf8b9a17db9bf61fec5, 63be9e64a17154226aa068c230548cf4adb9e9b685bac6b7a5db852c23fd068f - -# p_scalar = n - 99 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ee -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bc438ae1a4e65b07650522fd4a9a3b17b1f1abb66a7b43712d037bf83f9432b4, 4a673fe054fcd65a03a3c2c7b98ff4b37ab58a3f75503e4631b57ea284693c04 - -# p_scalar = n - 98 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ef -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a6eecf308794885e74b44206ee3751becc8715abbc82a095d5192c88589b69ff, e9f04cd324c2e3116b5df55fe390da5ba3f98377daa4c864a05a7aa8dd0ce3b4 - -# p_scalar = n - 97 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f0 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f1ae5380578181c7ee848e1d2566805eda8cdb78397e43f4dc90323bafceb64d, 1fbd470f53cf3e6984577f1f3260b76785f4d9c45b68b7e72dc7b8e69c70c77c - -# p_scalar = n - 96 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f1 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 11eddf7fd0a0da0d14f356cc6abc354d6d490a4b19dd329b802b8d2333e12b70, 3f2a78b3241a2b7103b48cc47c29bca2fd2f4f8cfd0258131e208328d87fd1d8 - -# p_scalar = n - 95 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f2 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 76a8f9fea974291f9a127f2bcaa12d0d6684ad762b346fd2263e039bb308cc40, 3f293fda2cd6f439ee1b1cb5344455a165499c990c5dbba0c802049b68aa19e4 - -# p_scalar = n - 94 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f3 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bf87ea83037278d9c87bdb8203d41796955ef205d59848ebc82a7aefd2df5e7a, 1001f8d7dd85aa7bf8ea79eadfa99607c00286d964135771c5825a638719aea8 - -# p_scalar = n - 93 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f4 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0581b4711fdf24984a278686e16396070aeaca9afd36b1af64cfdc70d9453d29, 435ac466954ffbb3ff6c1a78f9a2852f20b021c3df219dc582290e253d61f6d2 - -# p_scalar = n - 92 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f5 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = aee309e543ae4336e4c8417839093801a8a38bc31487c5269d7127d76294ba47, d15428592faab2944a72075d7f73442a9929ad4e8f48bb12d4b127399359250d - -# p_scalar = n - 91 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f6 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0211de8fd56927054a39f02bbedd4f4727113bb4ae6a94b8d81ad9386982f865, 4a70abf75c554ed3fa8a5b9b0b46a59f2354719f6237fc68d587138c63c92f69 - -# p_scalar = n - 90 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f7 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 8307d5cb55648a4cf3df44ded7ee64b747305b7483e904469af9d782de992e6e, e485b90d49c0b6a1ad3294fb1c309a59abff56b525d3fdee5376b018e277280a - -# p_scalar = n - 89 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f8 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bd88aca74765b8053ea123446310eb5a62d51e29fd54487dc1ee6264a7eabe67, 7150f87e7211e4457ab49dd209f98f9a640388f83b9fffefb7b284be14fb691a - -# p_scalar = n - 88 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f9 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 948fb3f76932e6311707165bb939f40fabeee3e9369a60677d81fd488418cae4, d8d37d942785971ded5cf82dc911847cbdf176108c7f9dba005a1dffeabd468e - -# p_scalar = n - 87 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fa -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2bd0204360826caa041252997f6b0670b856664a2d4b409b516329ff7b4d8b2c, af490825d5cff157a8f439ab06e58e3ecd07bc34c235d56c010e522661ddbcb1 - -# p_scalar = n - 86 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fb -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a9ea1b80f80e4b9023fb74270b4af06e783b9ba6744a6528dd5c2b8142a18dc1, e6c93b31cefdb61d9a9f04f0e8aeaf7d4a2b5ed57defe51b559759f6edca6f38 - -# p_scalar = n - 85 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fc -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = abfc8457b5e11eff36bf2f65ea65641aef617e0025af76773646b0dd7e1ee314, 159751e2e1cbaebebb0066ae1f282369ce91ee270142811b998dfac18f1192b6 - -# p_scalar = n - 84 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fd -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2f83a889ca881f6c10b429a2811a47eb2cd0bab9941a27e9b7f1695a43020eec, 4cb3c135b6f36034df4741a71b99ec5f67f9ba802e45cbb12563c590f683e890 - -# p_scalar = n - 83 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324fe -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = cf3086e87a243ca4f87abebf2ab80485125d4714ec67199a2c9ee62dc3363a22, 97f0013247b64be50536a39db19c61265e9b16125625aad75c52b051c64e09dd - -# p_scalar = n - 82 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324ff -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 8d97fd53554fa366b932d0c17527465559d18be925a81aef80ee662fad29cf9c, 18f61f3cdef3f99d4976126318fb05ae41a471e4e93046f2ad5cb247cd789d17 - -# p_scalar = n - 81 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632500 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e0beeb1aebff18d3b097c711165c6e4c8e9d0af402ba3183d3a5d81fc63d5e79, 7acf4419e85bc145cbdbfdb9cf290d1fa02dbc426fe5b29dfe657f130801937b - -# p_scalar = n - 80 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632501 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c0bfffc45263832a2074213db27de57335ff9aa8b5f86a2c492bdc0752b3e584, 2995919ca4cd266052b6a1739220f4281b037d75b320ebfb2429c22a1d49c605 - -# p_scalar = n - 79 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632502 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5ed556aae89327fc58f6428165f89e14dd306e2a05176f8ba40206d330ff0e92, b75df5ec191a421fd07370c450128375097a54ff99227b16c2b1870af8321bb8 - -# p_scalar = n - 78 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632503 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c0e78a3897536f3f711f8b7f7b5065a47e96610365013b3aade6af11a6ab1ecf, f8bdf2ea8474d0c8ea2240ccef96b473407bffa1b201137148b4389c464423d3 - -# p_scalar = n - 77 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632504 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = db15e4963d5baeb19c30c6422b2f9c49719a87be5a0ec9ce0a2193bfc266f85c, 854dc9d595105f9e2b4f0c7877eb94ea4788522b2e9fdbb283c3139be0d37321 - -# p_scalar = n - 76 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632505 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 1558fe4c7ef5b48a7c703717cd1823b4285bed3c21848f49cd331464c89bdd46, 9b3b040493b83e45ee4826a9937e1ba33fc6e661d47fa3cb19c6602050eaed5f - -# p_scalar = n - 75 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632506 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = a22f8fbea42fd1f6f123716223af72e0cfa8ca0e2a7aa6ab616d2c02fb760095, 24a1bde1d0c2302de79807a770456a7e7be19f0ded4437a85072758b78f3d040 - -# p_scalar = n - 74 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632507 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d176448e35b23e27b00eea8a5d34f708294b12e1ca1b04e046ce85a9e25a441e, 0a48558f2fa1bd2f77c52d75519978d10c45e52db3bfffc85ce885392bb80ef9 - -# p_scalar = n - 73 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632508 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b2dacdf66ef82fce794922ef17e29b1a2b34a7dc096fb852ae8f8fe1eeb03d1a, c39725521af82878a66d92525e82d5b3b871ba63e405ca09db8dcc81f42911ee - -# p_scalar = n - 72 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632509 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c3b025a015b15144eb5d0c75f38fae9cb1ee4879a360fb557331369679c1e3b1, 6fcd0cbb809a06f20368eb1f2e4283e11ba0cb8c9c5d2e6a33ad53540dc40604 - -# p_scalar = n - 71 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = dd421b5d4a210364f94aa89b40750d0149c7cb94fc05804bf19f382e92aa7864, 574cc7b29378679111f947e696cd0572030a119fdd4af1ec56cd001e39df3672 - -# p_scalar = n - 70 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 100392dc78c04937681d690f2b3a8c597263de1539f76b817c5a2a14f58a379a, c6793ad2e6e2f3b19cc6e22a27c9a2ead11ae42dad0182e407e5e8e85bef953a - -# p_scalar = n - 69 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 49d3ad05548efa2ac856868891e9ae0987986a54361bfe259e5da11cc5e79347, 6d37b1fa546fbecc2126ac553a8dd1269bea0d0f2655d14f987b0687f4eb5cf6 - -# p_scalar = n - 68 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 031195d5bb4a44b9b2cdb039f99c55fec35d34e70dd71fab8732d5cd6a93954d, f66904b1400c9463440dec9ece0f8c32bb7047347b57df81baa37f5d08a660c8 - -# p_scalar = n - 67 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e8218ad07de96a54fc88362a891ea186c16d0c52a48a4ddd86f04d3b51f9c391, fd59d7eb9a8f62d9de3ec728c30a96a005af456a06620ae82c735ac12f33af7a - -# p_scalar = n - 66 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63250f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 78ed4fe6e3a7de485a7e384de42f8cb2a3cfa7fd44b81977c7c6e4d1c4ce250f, b12347993e909dfb9c03344b75554fad55912064d0f5bb2aa9231c8ce9e571ca - -# p_scalar = n - 65 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632510 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 01628c4706b6090abf639ed67765765e79527db7ba66f4b9dc2306ebfcdbb2b2, 7d096ac42f1747502c90d98cf3e055d633cb7691ba659f4666eb62f1b957b4a1 - -# p_scalar = n - 64 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632511 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 95fb8394569b38c77da70b83c2c61e01380a0913089f73b9db6d96f305968b80, 296720440e8449708010a4a078424bf88f726bb98faeaf829a3c651280edfe2f - -# p_scalar = n - 63 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632512 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0763a43482fc568d95c376329182cb26039c4800f0518eedb8d3d9319ff91fe5, 90876a0140959b7092bf7c8f91230de0ac98b930824e8197707c04d5383e76ba - -# p_scalar = n - 62 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632513 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0dbcb03ae539b413177aa4c02089a2336ed7e061ed58f5a7e535f175a1962f91, 6b60cfff35ace009dd47ff98814be9ee6472e5ef6806701ee3dc424ebb32e38e - -# p_scalar = n - 61 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632514 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 994a44a69b8335fa71cdf6537eceb50a59556621a9404f843667eb1a7f4c04cc, 0d1bc780872bdbf3b6658466da44bba2473c5680eed4350dd7faf819dbeb9b69 - -# p_scalar = n - 60 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632515 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d40c4ccdbc6f9915026f8fe2671c39bc33fc23364189d9c7dc1e6828ed8a6e19, 04820109bbe4e832c40a04bd4f51ad9612c651a022adff2cafa135bbf80e75ca - -# p_scalar = n - 59 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632516 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4c2bab1b8add53b7cb9727eaa2d17c362100d5d3a8d063d169d44ed65c46aa8e, a062499846fb7a8b6651f7017ce477f8778afcd3a837ebeaa084e90c15426704 - -# p_scalar = n - 58 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632517 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 305f725f648d02cdd66fe3b67ed78be199cac80de4299aaff26c00e8a7ea82f0, 063749945667474117ab562dbe5ffb3efa70533e7a6319ad33ed1bc4623fb21b - -# p_scalar = n - 57 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632518 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c13298306acf8ccc068212e3fd1eaf381bfeea57c7385b293ec832e77acaca28, da44c6c600017626c5ab2632c79b7a015748060db661782ab909f2db2aac9e59 - -# p_scalar = n - 56 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632519 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ba3f0c4a7451ae636a84438514600044bb1ff3ca9556f36a8fc441407e8d7a14, 83927681026c2c084e9a5bc2a4b596ac01e0db86b1f2214bdfcac25b1f9af32a - -# p_scalar = n - 55 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5cee8449a7b730dd0deb0e4a46c814c131eea5bf07ef5be6258bbbf9e7305683, 25e8013ff14cf3f4c2cf6a6880e518caee759f879e27a6b4eab495c5a0182bde - -# p_scalar = n - 54 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = bb8a0feaee26c851c1286ff925c4d56c4f2e512ef8557c5fa0425b8eb212cf53, 1a556e3fea9595eb3df277a41d1936b17ee0c444e76265aac28f70d2e7d6107e - -# p_scalar = n - 53 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ec3a318d306634b0912e8beda8c8acd95f9c3fc492f2467997359638546c4d8d, fba1da5943465283b155bcd2dcafe1973db82f6f522113f280167f41c31cb264 - -# p_scalar = n - 52 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 88f77f34d0e5e542905a3201c67528b72e0ec469af45f9c02692f36e83445904, 7ef2f2269c0f0f8d5c27014b9bbec39e23b92eae22df3562f67a8d295864687c - -# p_scalar = n - 51 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d20ebe0d5c3fa443da1deb852f4318d4e20bc0ba1e5edf3f508cec1c3b3f64c9, d731e383a2f54c2d99a5e23d82681c6261f1511c5e1a5f65370b4ea773241ea3 - -# p_scalar = n - 50 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63251f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 0dceb8db2b7eaba7edfbe268d5b1fa6aa78bfbaa136852780fb9c2d0488c171a, d7d34194c3628c1343b7716bcc143a46efde7ae6a4449c96bf9e80899ae2b710 - -# p_scalar = n - 49 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632520 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = abdbe6084fb7db2bff4cd0b228766127ffe7048453dc690921950b421ff6acd3, d394077ef247fa364d78f592f7818ed826147d27f4645b5a837c92285e1109e8 - -# p_scalar = n - 48 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632521 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c8403902470343ad1a1baaa76d8805bda7496529bbd803a06b34413077adc612, 85efc7e941325cc2a875f5ce529d75e30b26d7fbb7d8c5b739f59f66175adff1 - -# p_scalar = n - 47 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632522 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4b969974eba78bfd6b20afec715af2c70a624fa936c83906283c7513caa76097, 9bbff86e6dddfd2704819d515ded93d49b944e107baeca13220755ccd921d60e - -# p_scalar = n - 46 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632523 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = cec684c3a42931dca1030d5babf825e0785c339aa06e9eba4075b5b149ee90d9, 033da338c1b7f86557c8b2c055f7835d45431d665ab43f2b42ab62c9c1586e63 - -# p_scalar = n - 45 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632524 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e94f7d346d8232781b1e8ae057477f580032940b946c6e181ee426ccd5cd79bf, d73acbfe2cd9e6b5772ef6dec7f80c81c5254469f72b33a5c747cb96782ba21a - -# p_scalar = n - 44 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632525 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5f3425f6a98dd2915f0e2046e381d3b0009194abb29110fbecfd7c1fd55a897c, eb629f90387ba42a397a247dd69d34170423446c4b083b7fbfa06687730d50da - -# p_scalar = n - 43 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632526 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 179c85db3db01994b7d9ad900574598180c5bfb4878873fa4ff23ffd248a7d06, 47795f4f95b2dda09e91cd3ba5e6a3184d82d052eadce5a8ba41b06261a6966c - -# p_scalar = n - 42 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632527 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 649c89ce5bfafe43c2e2594c30a92f8fa155cbe31da6a5c75fb35ccfed2bad01, f3a8cfe389bc7d3d4b00b20b906014cf9b359611f32c50aed158667de9ff257a - -# p_scalar = n - 41 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632528 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 98100a4fdb01614feeca111539ce22716fdfe0b56f072822624d60492ed22e91, f70bfeec03884a7bc67732591d57d9ceb6f94d2ec87e9a47b6b0daa2a35c628f - -# p_scalar = n - 40 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632529 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 462d7b0075f732278909984c66f2728083200f0bdf25e13ce4d7681db82e9f3e, 03466612d1aa702fab256ea35ef5435974c6e18c36ab1c34d90ba188f2651798 - -# p_scalar = n - 39 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 5853e4c4363186ac068f237d16fb36646f5ae714ff0b9346a9d89488a059c142, 0c0bc0e56919240847b864fae14e7b1c2ec4a76681828876e2d87d2363c52f98 - -# p_scalar = n - 38 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = adf0c7dc7c603d6c7463fd85222ef33b512331170fe948ce8a2cc3ca4d63c0ee, d9a4c2809c80c34dbdaa84d68e59319cccaab359bf3804090ec32d3bfe7765e5 - -# p_scalar = n - 37 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 2763a387dfa394ebc5748baea677d806b636458c7f178d5500467bc58cce08b5, 58b36143620088a8f63ebce51558462ce7adda3e6f20d850a12b448a7d3cebb6 - -# p_scalar = n - 36 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3569656cd54a3dc30ae4cb10d257576ec691d0bd1b06c57f3d5e58d6a8219bb7, 480b9e11dd6da526450ac0bae251a0c6934e82d3162bfe13e5ebaebd94cda03a - -# p_scalar = n - 35 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ca640b8642a3e5210b8e4134efc2b4c8742ee464233e76b7fd16847fdec67ef5, 2ba901628bb47af824e4ab126b237af7313c300c547852d5653a01908ceb6aa9 - -# p_scalar = n - 34 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63252f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c982ddd4dd303e645b0673a375678d94caa7a5c6a391849db6ab20147ca23cd3, a159100c570d74f8c77332a33c569426bba2cb1f6f876f92fd7b000b5db6f971 - -# p_scalar = n - 33 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632530 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 33ec6868f044b10cac09c4ae65578ab985ceae7c4b68f103871514560f664534, b16c4303c32f63c4f909604f763f15745509d1285847d5ef6ac4832b3a8ec1f1 - -# p_scalar = n - 32 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632531 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 39227077695532a4bc6d6a58fead0197befd904c4079dfbfd8c5fccfc5e3a3d8, 6231d7929591c2a47b969c1aad9a2e407e449b64480a990809e23e6ddbef42f5 - -# p_scalar = n - 31 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632532 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 948dc4f8b1fc87b48ef5689d3cf7600ddd3cf7e7473017e6e2f73c696755ff89, f38ae8914d7b4745faecedfd0c9803fc2d921ca298eb6028d9e9fe814ea53299 - -# p_scalar = n - 30 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632533 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = d0288cb552b6fc3cc5f4d6cd3ac77acda3a14e49b44f65a1b4241cb13298b343, 460d45ce51601f72d667da379b3aa441b675511e06bf9b4ad5cc8c2f1c040abc - -# p_scalar = n - 29 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632534 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e266f95948603d48944a70270317b9e2f1be963a0d9258805e5db46acb66e132, 3798142a2a3be21b8a966939777c619f90472447a2fb18a398db66735c208899 - -# p_scalar = n - 28 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632535 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e97f6b6af2aadb9797082ec0cfe153eb7323cb2830a6a8924b523eb7172ccd1f, a9b4cc5f405852784a688b482d0cb71ea6a7f9c7804b2a681d3d393ed1a83da1 - -# p_scalar = n - 27 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632536 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 9f8aa54b2ef7c76a49d2c9eb084ffdd7d36a42d7aebf7313042c2af497e2feb4, 2d431068d84bde312d97d10878eb4cbb3bd0c66fddb7fb589200b7ba09895e70 - -# p_scalar = n - 26 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632537 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 994baaa855f2fb101ac7c5eb857ff6fbe6c9267ad8b1753861e4ad32ed1f8008, ed178030d12e5ac714fde97b5fa944f55a39898b628ac50884cf14e11d248018 - -# p_scalar = n - 25 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632538 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 966742eb65432a2ee395993332f1f3af6fc1b49eed6b67b0a4a319acd837879f, 7b948dc356f7996812068859c9b731ee96cc631243f439504b8dc9feb4966228 - -# p_scalar = n - 24 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632539 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f97b232f2efc311561d7cbf91d2b469f6d0d755040dd9a356d3883b215d02819, 595dc55eca737b8a7669f03193cb750111ea494988a1e356a551d750b24bcbc7 - -# p_scalar = n - 23 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = af2cea7c1727bf42d0825fa2a358406937c7a7e89e2e1f6ef4f876532de45068, 83d0687b9077666f48068e1371ac2f71e5fda49c27299f4a0360a4fb9e4785a9 - -# p_scalar = n - 22 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = fdc777e8e93358a46a0b0685d2f8ba3dc99ffa23e3912a9a0fc611352f6f3076, 793e8d075d5cd0749de917da153a35b5640c2d6a4d23fea494a787bb35415f04 - -# p_scalar = n - 21 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = ecead9f4c16762fc6d2a506c5a3f3b3074e1b2654783f47d562e4cecc135b208, c086d5f1c9477fa37a75023e7fac29a41b0fadc083bb3c61f29dd4b2e286e5b9 - -# p_scalar = n - 20 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e2d1eeb6fe5bfb4e048099d95dd283ba5916868f0f862bdc8a979129d2337a31, 5ee104e1c5fee0d09161c53f8aa95e66a2d4ec17ffffcbae82ef1c417884005d - -# p_scalar = n - 19 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = fe545c282897c3fcb8842277752c41ac68363aba25e1a16efea912baa5659ae8, f720ee256d12597b85665e9be39508c15806244afba977c52d36e9e7dc4c696b - -# p_scalar = n - 18 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63253f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 675abd1b6f80ebdaa6f247ab412e29794afc964d8f8b403e5f3e51c856ada97a, 6c6fc7d90502394d2626927f1b847bba4b2a5caf8f4f0b3c66a2bd725e485a1d - -# p_scalar = n - 17 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632540 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c1a35c0a6c7a574eb0f139752cfe2dfff17624b6ac0a177b97091dcbd53c5c9d, ebd512263274c3d02f4e247f0d1883bb0575bf30e89cb80e227d314693e79987 - -# p_scalar = n - 16 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632541 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 54d63c809103b723d5ef2f7c2c83f5495882e0753ffe2e6b808b0b650bc6fb80, 64edf7b201efe22055c4623bb1580e9e3670c3194b0b6587f2f11bd652a23f9b - -# p_scalar = n - 15 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632542 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e2aa0e430ad3da09ee337424e481937003cc23ee56e27e4b72bcd8b7bc60055b, 2042170a7079adf464efa6de778a4797d766355442a41b2540b8524f6383c45d - -# p_scalar = n - 14 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632543 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = faae7332fd12c72e1717bf54c6832660126e48f77f9707e3a242a35bb0cf664a, 152706dc2eaa1bbbe8e4193e2a65e7dbbe29569e832237c227b52db7995d586b - -# p_scalar = n - 13 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632544 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 738477ac5395b759bcbcd43f559e98110e356769856fd30dccc425634b2ed709, fbc08769c9e7b7977cd06422bd1f5bc168748390742ed2e335752b90c00ee17f - -# p_scalar = n - 12 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632545 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 4ee1df77cb83e1562409d29dee37385eabdedef5ca345a3304b71aa7d2697768, 7ff57c9553238aca28228cfa8ade6d66170ed2f6ca8956370cac12d91cbb5b43 - -# p_scalar = n - 11 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632546 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 3e7090f1649c90731ff3a4158dac1ab59de407956e7fdfe0ea7d260a6245e404, 68930023e125b88e0c0daa891ead643d250f939ee57f61c81a7685612b944e88 - -# p_scalar = n - 10 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632547 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = cc61c94724b3428f737d2cd648250b4998f9868a0fcf81392c18dbd19dc21ec8, 78719a54eb3b4ab55f7d2d65779be5d2c43a8991383fbe080c2b407880dd9e76 - -# p_scalar = n - 9 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632548 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = e05b3080f0c4e16b2cc09c0444c8eb00abe6bfed59a7a84175c96e8f264e20e8, 086659cdfd835f9b2b6e019a88b12f1a56af7bedce5d45e31eb7777aa45f3314 - -# p_scalar = n - 8 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632549 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = b763891eb265230d8f90f02af02cfc6b462ab5c56f9b345527f14cd19499a78f, 56ec12f27706df76123c7b84be60bbf021e3327dcf9eba15f59da3a9532d4977 - -# p_scalar = n - 7 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254a -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 13ba5119c3123e03f43eaab50c23bb082bd20213d23c00f70746354ea0173b4f, eaedd9156e240867ef933bdc77c941956742f2f25da67bdd2847d0303f5b9d4d - -# p_scalar = n - 6 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254b -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 13074b5954213673d50a961a5b17a3ad55ae744f346cee3e403947373e77664a, a4c9916d4a07f75ff424d44cef639f11299c2b53adff14b593d36220d377e44b - -# p_scalar = n - 5 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254c -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = c9079605890523c8941cb5aad076c20c90ec649a94b9537dbe1b8aaec45c61f5, 73a076bb2dd1e9163540a9877e7a1f6873c568efe5eb882beb309b4ae7ba4f10 - -# p_scalar = n - 4 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254d -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 577362f541b0176b0cdaacace8100af24650a6edc623c17374b0b50d46918dcc, 84b14c394c5ab8636b6c36dee5ddd22e17628471fad6f4472d96f24ce4cbaba6 - -# p_scalar = n - 3 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 26936a3fb6ff747e66ad77dd87cbbc98b027f84a087d81fbffac3f904eebc127, d5f06a29e587cc07788208311a2ee98e583e47ad0861fe1ab04c5c1fc983a7eb - -# p_scalar = n - 2 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 78c577510a5b8a3b19a8fb0e92042dbe152cd7cbeb236ff82f3648d361bee1a5 - -# p_scalar = n - 1 -p_scalar = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -p = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a diff --git a/src/ec_17/suite_b/ops/p256_point_sum_mixed_tests.txt b/src/ec_17/suite_b/ops/p256_point_sum_mixed_tests.txt deleted file mode 100644 index e3d99e23ee..0000000000 --- a/src/ec_17/suite_b/ops/p256_point_sum_mixed_tests.txt +++ /dev/null @@ -1,80 +0,0 @@ - -# inf + inf == 2 * inf == inf -a = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf (n*G) + inf (n*G) == 2 * inf == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf (n*G) + inf == 2 * inf == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf + inf (n*G) == 2 * inf == inf -a = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# G + inf == G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -# G + inf (n*G) == G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -# inf + G == G -a = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -# inf (n*G) + G == G -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -# G + (n-1)*G == inf; note that -G is (n-1)*G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = inf - -# (n-1)*G + -(n-1)*G == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a -r = inf - -# -(n-1)*G + (n-1)*G == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 92ccc25ad1cf08ffedba49d7efea212eb1f0eff79718a75e493c3f7c503eb15f, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = inf - -# -(n-1)*G (affine) + (n-1)*G == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 92ccc25ad1cf08ffedba49d7efea212eb1f0eff79718a75e493c3f7c503eb15f, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = inf - -# -(n-1)*G + -G == inf; note that -G is (n-1)*G (affine) -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 92ccc25ad1cf08ffedba49d7efea212eb1f0eff79718a75e493c3f7c503eb15f, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = inf - -# -G + -(n-1)*G == inf; note that -G is (n-1)*G (affine) -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a -r = inf - -# -G + G == inf; note that -G is (n-1)*G (affine) -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a -r = inf - -# G + -G == inf; note that -G is (n-1)*G (affine) -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5 -r = inf diff --git a/src/ec_17/suite_b/ops/p256_point_sum_tests.txt b/src/ec_17/suite_b/ops/p256_point_sum_tests.txt deleted file mode 100644 index 7d95f1f970..0000000000 --- a/src/ec_17/suite_b/ops/p256_point_sum_tests.txt +++ /dev/null @@ -1,120 +0,0 @@ - -# inf + inf == 2 * inf == inf -a = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf (n*G) + inf (n*G) == 2 * inf == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf (n*G) + inf == 2 * inf == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf + inf (n*G) == 2 * inf == inf -a = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# G + inf == G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -# G + inf (n*G) == G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -# inf + G == G -a = 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -# inf (n*G) + G == G -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 0000000000000000000000000000000000000000000000000000000000000000 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a - -# G + G == 2*G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 78c577510a5b8a3b19a8fb0e92042dbe152cd7cbeb236ff82f3648d361bee1a5 - -# (n-1)*G + G == inf; note that -G is (n-1)*G -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = inf - -# G + (n-1)*G == inf; note that -G is (n-1)*G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = inf - -# (n-1)*G + (n-1)*G == 2*(n-1)*G -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a - -# (n-1)*G (affine) + (n-1)*G == 2*(n-1)*G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a - -# (n-1)*G + -(n-1)*G == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 92ccc25ad1cf08ffedba49d7efea212eb1f0eff79718a75e493c3f7c503eb15f, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = inf - -# -(n-1)*G + (n-1)*G == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 92ccc25ad1cf08ffedba49d7efea212eb1f0eff79718a75e493c3f7c503eb15f, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = inf - -# -(n-1)*G (affine) + (n-1)*G == inf -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 92ccc25ad1cf08ffedba49d7efea212eb1f0eff79718a75e493c3f7c503eb15f, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = inf - -# -(n-1)*G + -G == inf; note that -G is (n-1)*G (affine) -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 92ccc25ad1cf08ffedba49d7efea212eb1f0eff79718a75e493c3f7c503eb15f, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = inf - -# -G + -(n-1)*G == inf; note that -G is (n-1)*G (affine) -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 92ccc25ad1cf08ffedba49d7efea212eb1f0eff79718a75e493c3f7c503eb15f, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = inf - -# (n-1)*G + -G; == -2*G; note that -G == (n-1)*G (affine) -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a - -# -G + (n-1)*G == -2*G; note that -G is (n-1)*G (affine) -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a - -# (n-1)*G + -G == -2*G; note that -G is (n-1)*G (affine) -a = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a - -# -G + (n-1)*G == -2*G; note that -G = (n-1)*G -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 2b11cb945c8cf152ffa4c9c2b1c965b019b35d0b7626919ef0ae6cb9d232f8af, 6d333da42e30f7011245b6281015ded14e0f100968e758a1b6c3c083afc14ea0, 3c396f06c1dc69e4f4b2dce51cd660f761064a4ab098ef61ba3868961f0ef178 -r = f6bb32e43dcf3a3b732205038d1490d9aa6ae3c1a433827d850046d410ddd64d, 873a88adf5a475c5e65704f16dfbd241ead3283514dc9007d0c9b72c9e411e5a - -# -G + G == inf; note that -G is (n-1)*G (affine) -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = inf - -# G + -G == inf; note that -G is (n-1)*G (affine) -a = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 8571ff1825885d85d2e88688dd21f3258b4ab8e4ba19e45cddf25357ce95560a, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -b = 18905f76a53755c679fb732b7762251075ba95fc5fedb60179e730d418a9143c, 7a8e00e6da77a27b2d17797722de0cda74b5471c45e61ba3220daca8316aa9f5, 00000000fffffffeffffffffffffffffffffffff000000000000000000000001 -r = inf diff --git a/src/ec_17/suite_b/ops/p256_scalar_mul_tests.txt b/src/ec_17/suite_b/ops/p256_scalar_mul_tests.txt deleted file mode 100644 index bd61907cfd..0000000000 --- a/src/ec_17/suite_b/ops/p256_scalar_mul_tests.txt +++ /dev/null @@ -1,86 +0,0 @@ - -a = 00 -b = 00 -r = 00 - -a = 00 -b = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -r = 00 - -a = 01 -b = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -r = 9f2f99cbb6fa3e17f80749fbe19f88da020806cb63c12ed5259e01cb6049a8d8 - -a = 02 -b = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -r = 3e5f33986df47c2ef00e93f7c33f11b4472912e9206abf25578238d3c4302c5f - -a = 03 -b = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -r = dd8ecd6424eeba46e815ddf3a4de9a8e493119b4842bedfa7d203a9f2479d537 - -a = 7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8 -b = 02 -r = 9f2f99cbb6fa3e17f80749fbe19f88da020806cb63c12ed5259e01cb6049a8d8 - -a = 7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a9 -b = 02 -r = 60d066334905c1e907f8b6041e607725badef3e243566fafce1bc8f79c197c79 - -a = 8000000000000000000000000000000000000000000000000000000000000000 -b = 02 -r = 01 - -# From BoringSSL - -a = 0000000000000000000000000000000000000000000000000000000000000000 -b = b4e9b0aea84aa5ed86964a22881a4d0e58f88e9225f30990c18751e7d4b9ec95 -r = 0000000000000000000000000000000000000000000000000000000000000000 - -a = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf -b = 5d24e62244973fbd829573d5a579b4e89a6512933a2c3d255bbdbc1c89028323 -r = 5d24e62244973fbd829573d5a579b4e89a6512933a2c3d255bbdbc1c89028323 - -a = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -b = abafdc695e4c2c850f8fc60f1efdbf7406a3cd2c6c59bb7e608985723896c187 -r = 917b1214c7b31a7ee7e53be0b41a139e435ff576b51ec6af1e1a944412bea38b - -a = cf0f01b83670a1c79154ea16f3574ca2d4c688a3c3b6017795cbe54854418904 -b = c5ec4d3b00fb2e11fb3b1aa09e60f7d187f7c515977d1343dab9745961fcbb43 -r = 7aaddcee32e3b340af5ad06f854284cbbce5a1ab919e9b7771c3b0e937093438 - -a = 50023f9913879ac4020bc45a89a0ea89082db6265b96b851af29969dd8a9661c -b = 7c165b1cba80808db114441563aa0fbfba41b9e8acff77312a2dd2138b74ef89 -r = 3d2ca1705d8d38cbc76a5409c6535044733cafcb95d12654af1d14de177978b5 - -a = 4d5341ea735e53d2e4f2934755642adee209bd0e5a1506206513227f3c48b270 -b = 6e48f2b60eb8fb86760134abaf3d61692557862924069c599ceb31309ea18704 -r = 37cde3e35c814d4287bd345b910d687983929907b7a08afa2acd8596832ea86c - -a = 33d06c3f5a595a41a6f9c4356f8ab2b8c550d4c64b806eab5560af247c5fa9ed -b = 0e52f34adf5754343bcf3529d652620da3c05b5dd9cdcddfb08b674a1ad21a09 -r = 9dc64d7b4c1bc33b930e0daee2a24fc41f770378659ee71b846d2239b0fea8ea - -a = 8f211780cce4f93b7193b9378e6f83e1147fb3602b052eef782de8cc833e54ab -b = e1e4f7f1feb15be64292cff86b47cd9730bcb15b133340022b824d591a660cdf -r = dfa2b683b1ae23027c7c109e0abb40a1366eda027ad2cad1a09061a57bee391f - -a = 803c279c7e4c11a5568290c0a5789ceab6860f51a942bf646501a45e1ec0a6bf -b = c0a1145a12037129c571f5f939bf16ea0b8b480f08ec774c045d059841f7d5ed -r = ab48fa3b4aa692a7c077cc55ee3c3fff895118a23728c2fa5f361b30730d955a - -a = 0e5c95158297d75dbf0b02c3090730f65bf14704495b14837dd907af569407f1 -b = 5a03e3787c8772b2fb7ab07d7fe7fe653a58bdae7fde3174c6ed305e524f5728 -r = 71296d305dcf9ce39010ea4f4bbf9f7c1064a413597bdc7574c13dea3fa514dc - -a = 366299be07886f7846fc74231db624b169360e3c8f60196a1afc9f2101e03922 -b = d6d7c830a6edb6861868b964519a6b68f6f24f7c09d66003f3f88eadd1e00158 -r = 0b89596bf5054ebe95a39dab6e975b58190160610b09b2a4f93331ecc0e79fd3 - -a = 8f36f0ef275a72192c3b7388e84df2b8acf66fc53aaf556e3be05c76b3f782c0 -b = 704e519363d44e8df8d91f5f347eb61e8d3e85c8fc1b82980c370a379b2bc81c -r = b70a392e3ce5e85b5efbbded9b8c16a3068ba9b93b4cbed9a9a71dffaad6b58a - -a = bf4466ef4dea9f06f0f3b4f14e01140a774262c7e0706584f4d7dac19be46d58 -b = 4af12d528b2cef0f6714961bca2ab682f8abaa97600ea8181f71563d56f8a9f5 -r = 7b6827c0881b9846e32499e13277efb07917cf4b8c8c72bfb3daa8c1786a8e15 diff --git a/src/ec_17/suite_b/ops/p256_scalar_square_tests.txt b/src/ec_17/suite_b/ops/p256_scalar_square_tests.txt deleted file mode 100644 index 133f3c5fbe..0000000000 --- a/src/ec_17/suite_b/ops/p256_scalar_square_tests.txt +++ /dev/null @@ -1,65 +0,0 @@ - -a = 00 -r = 00 - -a = 00 -r = 00 - -a = 01 -r = 60d066334905c1e907f8b6041e607725badef3e243566fafce1bc8f79c197c79 - -a = 02 -r = 834198ce241707a31fe2d8107981dc972e94d4db6642203a44b5591b7402cc93 - -a = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -r = 60d066334905c1e907f8b6041e607725badef3e243566fafce1bc8f79c197c79 - -a = ffffffff80000000600000002fffffff -r = 965f4779ac1ddbac28a14bd1e0c28dcb091d48820b4116d22afbc3f00f90f476 - -a = ffffffff800000006000000030000000 -r = 9e07cb5cdf45939f41541805d2c24625e1cb1719e37a89efc755b5e58e585515 - -a = 8000000000000000000000000000000000000000000000000000000000000000 -r = 4000000000000000000000000000000000000000000000000000000000000000 - -# From BoringSSL - -a = 0000000000000000000000000000000000000000000000000000000000000000 -r = 0000000000000000000000000000000000000000000000000000000000000000 - -a = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf -r = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf - -a = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550 -r = 60d066334905c1e907f8b6041e607725badef3e243566fafce1bc8f79c197c79 - -a = da43b8dd7fe8830a4fe8980ec585ccbe903a2965a695cdff398200b74b2ede41 -r = 5ec68604412205b380e26ee4e4081eccc10ac7d1417b09cd534f8517b0de81ec - -a = a82a2b8bdbf8a37dc7cb5799691494a8c9fbf649686a4d250dc30697feb0fa47 -r = 552c094a8841621d6cc26b3b54ce5da5664283888445196a6433d3cfdcad3aee - -a = d785006e250410d9dcc6d7740795a7374c25b00b9c9a37b8285694a07307eacd -r = 971aaa9e70ad082cf43725f2e65bc73f4bf762459cee13167545072ec7bdcaf8 - -a = 69d6d9f5417e87d603a3fb6acafa0d1f974abf94ca57ce58d718a0ad5d02a496 -r = eb3284e5799fbe93171f08e6de9f792cd17f036b3a17671b0310e49b48e589b3 - -a = 1c28f742c3e26e74901d0425f2eb4d5272524668d2405875b32cf6433f212900 -r = 74f70a95399b7ad061a2200fa50528d68eee4654341c8158101e1e3f8f16e642 - -a = 026b2f69f0259d221920b2f358b378a79826f0332ee36afa257765043e3d6732 -r = e1e9cfa4724995bb50971ca22f3c028cd31cb51fbef8a37c31f10fd1d468f13b - -a = 376ed4fadcc1c6c4160a0c9c2ab7c62260367968b08d304d47c65f25625d7d60 -r = b9ccb67f377e1278f1d2eeda26e5eed76f32406c9deed9764fc0aa346d91e02b - -a = 50f66867d0a4ef389678d760d2a4db886583b4c068d0e240f7ddf3472c871304 -r = 82c3467bc5f7ca8b45f4ee61546745e2f53755a02e87f65f572418d60e471c8b - -a = 5b8bd82b37206d2b727f19ad2d02f63773470074dde7d43d2a77c448ddf2f978 -r = dbf3c2fc67a0688c3b5ff12cab1739d50b6093c5d98943d388652b1207e4a0f2 - -a = bed7b3a4dada0e16984eb59ee239005ab212e5b1772cdd5d240c8ee268f65c81 -r = 9232aa2759ca9c5efbaefb0cf45cc6bc9c89def8c25e5c169fe623f30787df36 diff --git a/src/ec_17/suite_b/ops/p384.rs b/src/ec_17/suite_b/ops/p384.rs deleted file mode 100644 index e04c5dbf56..0000000000 --- a/src/ec_17/suite_b/ops/p384.rs +++ /dev/null @@ -1,364 +0,0 @@ -// Copyright 2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -use super::{ - elem::{binary_op, binary_op_assign}, - elem_sqr_mul, elem_sqr_mul_acc, Modulus, *, -}; -use core::marker::PhantomData; - -macro_rules! p384_limbs { - [$($limb:expr),+] => { - limbs![$($limb),+] - }; -} - -pub static COMMON_OPS: CommonOps = CommonOps { - num_limbs: 384 / LIMB_BITS, - - q: Modulus { - p: p384_limbs![ - 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff - ], - rr: p384_limbs![1, 0xfffffffe, 0, 2, 0, 0xfffffffe, 0, 2, 1, 0, 0, 0], - }, - n: Elem { - limbs: p384_limbs![ - 0xccc52973, 0xecec196a, 0x48b0a77a, 0x581a0db2, 0xf4372ddf, 0xc7634d81, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff - ], - m: PhantomData, - encoding: PhantomData, // Unencoded - }, - - a: Elem { - limbs: p384_limbs![ - 0xfffffffc, 0x00000003, 0x00000000, 0xfffffffc, 0xfffffffb, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff - ], - m: PhantomData, - encoding: PhantomData, // Unreduced - }, - b: Elem { - limbs: p384_limbs![ - 0x9d412dcc, 0x08118871, 0x7a4c32ec, 0xf729add8, 0x1920022e, 0x77f2209b, 0x94938ae2, - 0xe3374bee, 0x1f022094, 0xb62b21f4, 0x604fbff9, 0xcd08114b - ], - m: PhantomData, - encoding: PhantomData, // Unreduced - }, - - elem_mul_mont: p384_elem_mul_mont, - elem_sqr_mont: p384_elem_sqr_mont, - - point_add_jacobian_impl: nistz384_point_add, -}; - -pub static PRIVATE_KEY_OPS: PrivateKeyOps = PrivateKeyOps { - common: &COMMON_OPS, - elem_inv_squared: p384_elem_inv_squared, - point_mul_base_impl: p384_point_mul_base_impl, - point_mul_impl: nistz384_point_mul, -}; - -fn p384_elem_inv_squared(a: &Elem) -> Elem { - // Calculate a**-2 (mod q) == a**(q - 3) (mod q) - // - // The exponent (q - 3) is: - // - // 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\ - // ffffffff0000000000000000fffffffc - - #[inline] - fn sqr_mul(a: &Elem, squarings: usize, b: &Elem) -> Elem { - elem_sqr_mul(&COMMON_OPS, a, squarings, b) - } - - #[inline] - fn sqr_mul_acc(a: &mut Elem, squarings: usize, b: &Elem) { - elem_sqr_mul_acc(&COMMON_OPS, a, squarings, b) - } - - let b_1 = &a; - let b_11 = sqr_mul(b_1, 1, b_1); - let b_111 = sqr_mul(&b_11, 1, b_1); - let f_11 = sqr_mul(&b_111, 3, &b_111); - let fff = sqr_mul(&f_11, 6, &f_11); - let fff_111 = sqr_mul(&fff, 3, &b_111); - let fffffff_11 = sqr_mul(&fff_111, 15, &fff_111); - - let fffffffffffffff = sqr_mul(&fffffff_11, 30, &fffffff_11); - - let ffffffffffffffffffffffffffffff = sqr_mul(&fffffffffffffff, 60, &fffffffffffffff); - - // ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - let mut acc = sqr_mul( - &ffffffffffffffffffffffffffffff, - 120, - &ffffffffffffffffffffffffffffff, - ); - - // fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_111 - sqr_mul_acc(&mut acc, 15, &fff_111); - - // fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff - sqr_mul_acc(&mut acc, 1 + 30, &fffffff_11); - sqr_mul_acc(&mut acc, 2, &b_11); - - // fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff - // 0000000000000000fffffff_11 - sqr_mul_acc(&mut acc, 64 + 30, &fffffff_11); - - // fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff - // 0000000000000000fffffffc - COMMON_OPS.elem_square(&mut acc); - COMMON_OPS.elem_square(&mut acc); - - acc -} - -fn p384_point_mul_base_impl(a: &Scalar) -> Point { - // XXX: Not efficient. TODO: Precompute multiples of the generator. - static GENERATOR: (Elem, Elem) = ( - Elem { - limbs: p384_limbs![ - 0x49c0b528, 0x3dd07566, 0xa0d6ce38, 0x20e378e2, 0x541b4d6e, 0x879c3afc, 0x59a30eff, - 0x64548684, 0x614ede2b, 0x812ff723, 0x299e1513, 0x4d3aadc2 - ], - m: PhantomData, - encoding: PhantomData, - }, - Elem { - limbs: p384_limbs![ - 0x4b03a4fe, 0x23043dad, 0x7bb4a9ac, 0xa1bfa8bf, 0x2e83b050, 0x8bade756, 0x68f4ffd9, - 0xc6c35219, 0x3969a840, 0xdd800226, 0x5a15c5e9, 0x2b78abc2 - ], - m: PhantomData, - encoding: PhantomData, - }, - ); - - PRIVATE_KEY_OPS.point_mul(a, &GENERATOR) -} - -pub static PUBLIC_KEY_OPS: PublicKeyOps = PublicKeyOps { - common: &COMMON_OPS, -}; - -pub static SCALAR_OPS: ScalarOps = ScalarOps { - common: &COMMON_OPS, - scalar_inv_to_mont_impl: p384_scalar_inv_to_mont, - scalar_mul_mont: p384_scalar_mul_mont, -}; - -pub static PUBLIC_SCALAR_OPS: PublicScalarOps = PublicScalarOps { - scalar_ops: &SCALAR_OPS, - public_key_ops: &PUBLIC_KEY_OPS, - private_key_ops: &PRIVATE_KEY_OPS, - - q_minus_n: Elem { - limbs: p384_limbs![ - 0x333ad68c, 0x1313e696, 0xb74f5885, 0xa7e5f24c, 0x0bc8d21f, 0x389cb27e, 0, 0, 0, 0, 0, - 0 - ], - - m: PhantomData, - encoding: PhantomData, // Unencoded - }, -}; - -pub static PRIVATE_SCALAR_OPS: PrivateScalarOps = PrivateScalarOps { - scalar_ops: &SCALAR_OPS, - - oneRR_mod_n: Scalar { - limbs: N_RR_LIMBS, - m: PhantomData, - encoding: PhantomData, // R - }, -}; - -fn p384_scalar_inv_to_mont(a: &Scalar) -> Scalar { - // Calculate the modular inverse of scalar |a| using Fermat's Little - // Theorem: - // - // a**-1 (mod n) == a**(n - 2) (mod n) - // - // The exponent (n - 2) is: - // - // 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf\ - // 581a0db248b0a77aecec196accc52971. - - fn mul(a: &Scalar, b: &Scalar) -> Scalar { - binary_op(p384_scalar_mul_mont, a, b) - } - - fn sqr(a: &Scalar) -> Scalar { - binary_op(p384_scalar_mul_mont, a, a) - } - - fn sqr_mut(a: &mut Scalar) { - unary_op_from_binary_op_assign(p384_scalar_mul_mont, a); - } - - // Returns (`a` squared `squarings` times) * `b`. - fn sqr_mul(a: &Scalar, squarings: usize, b: &Scalar) -> Scalar { - debug_assert!(squarings >= 1); - let mut tmp = sqr(a); - for _ in 1..squarings { - sqr_mut(&mut tmp); - } - mul(&tmp, b) - } - - // Sets `acc` = (`acc` squared `squarings` times) * `b`. - fn sqr_mul_acc(acc: &mut Scalar, squarings: usize, b: &Scalar) { - debug_assert!(squarings >= 1); - for _ in 0..squarings { - sqr_mut(acc); - } - binary_op_assign(p384_scalar_mul_mont, acc, b) - } - - fn to_mont(a: &Scalar) -> Scalar { - static N_RR: Scalar = Scalar { - limbs: N_RR_LIMBS, - m: PhantomData, - encoding: PhantomData, - }; - binary_op(p384_scalar_mul_mont, a, &N_RR) - } - - // Indexes into `d`. - const B_1: usize = 0; - const B_11: usize = 1; - const B_101: usize = 2; - const B_111: usize = 3; - const B_1001: usize = 4; - const B_1011: usize = 5; - const B_1101: usize = 6; - const B_1111: usize = 7; - const DIGIT_COUNT: usize = 8; - - let mut d = [Scalar::zero(); DIGIT_COUNT]; - d[B_1] = to_mont(a); - let b_10 = sqr(&d[B_1]); - for i in B_11..DIGIT_COUNT { - d[i] = mul(&d[i - 1], &b_10); - } - - let ff = sqr_mul(&d[B_1111], 0 + 4, &d[B_1111]); - let ffff = sqr_mul(&ff, 0 + 8, &ff); - let ffffffff = sqr_mul(&ffff, 0 + 16, &ffff); - - let ffffffffffffffff = sqr_mul(&ffffffff, 0 + 32, &ffffffff); - - let ffffffffffffffffffffffff = sqr_mul(&ffffffffffffffff, 0 + 32, &ffffffff); - - // ffffffffffffffffffffffffffffffffffffffffffffffff - let mut acc = sqr_mul(&ffffffffffffffffffffffff, 0 + 96, &ffffffffffffffffffffffff); - - // The rest of the exponent, in binary, is: - // - // 1100011101100011010011011000000111110100001101110010110111011111 - // 0101100000011010000011011011001001001000101100001010011101111010 - // 1110110011101100000110010110101011001100110001010010100101110001 - - static REMAINING_WINDOWS: [(u8, u8); 39] = [ - (2, B_11 as u8), - (3 + 3, B_111 as u8), - (1 + 2, B_11 as u8), - (3 + 2, B_11 as u8), - (1 + 4, B_1001 as u8), - (4, B_1011 as u8), - (6 + 4, B_1111 as u8), - (3, B_101 as u8), - (4 + 1, B_1 as u8), - (4, B_1011 as u8), - (4, B_1001 as u8), - (1 + 4, B_1101 as u8), - (4, B_1101 as u8), - (4, B_1111 as u8), - (1 + 4, B_1011 as u8), - (6 + 4, B_1101 as u8), - (5 + 4, B_1101 as u8), - (4, B_1011 as u8), - (2 + 4, B_1001 as u8), - (2 + 1, B_1 as u8), - (3 + 4, B_1011 as u8), - (4 + 3, B_101 as u8), - (2 + 3, B_111 as u8), - (1 + 4, B_1111 as u8), - (1 + 4, B_1011 as u8), - (4, B_1011 as u8), - (2 + 3, B_111 as u8), - (1 + 2, B_11 as u8), - (5 + 2, B_11 as u8), - (2 + 4, B_1011 as u8), - (1 + 3, B_101 as u8), - (1 + 2, B_11 as u8), - (2 + 2, B_11 as u8), - (2 + 2, B_11 as u8), - (3 + 3, B_101 as u8), - (2 + 3, B_101 as u8), - (2 + 3, B_101 as u8), - (2, B_11 as u8), - (3 + 1, B_1 as u8), - ]; - - for &(squarings, digit) in &REMAINING_WINDOWS[..] { - sqr_mul_acc(&mut acc, usize::from(squarings), &d[usize::from(digit)]); - } - - acc -} - -unsafe extern "C" fn p384_elem_sqr_mont( - r: *mut Limb, // [COMMON_OPS.num_limbs] - a: *const Limb, // [COMMON_OPS.num_limbs] -) { - // XXX: Inefficient. TODO: Make a dedicated squaring routine. - p384_elem_mul_mont(r, a, a); -} - -const N_RR_LIMBS: [Limb; MAX_LIMBS] = p384_limbs![ - 0x19b409a9, 0x2d319b24, 0xdf1aa419, 0xff3d81e5, 0xfcb82947, 0xbc3e483a, 0x4aab1cc5, 0xd40d4917, - 0x28266895, 0x3fb05b7a, 0x2b39bf21, 0x0c84ee01 -]; - -prefixed_extern! { - fn p384_elem_mul_mont( - r: *mut Limb, // [COMMON_OPS.num_limbs] - a: *const Limb, // [COMMON_OPS.num_limbs] - b: *const Limb, // [COMMON_OPS.num_limbs] - ); - - fn nistz384_point_add( - r: *mut Limb, // [3][COMMON_OPS.num_limbs] - a: *const Limb, // [3][COMMON_OPS.num_limbs] - b: *const Limb, // [3][COMMON_OPS.num_limbs] - ); - fn nistz384_point_mul( - r: *mut Limb, // [3][COMMON_OPS.num_limbs] - p_scalar: *const Limb, // [COMMON_OPS.num_limbs] - p_x: *const Limb, // [COMMON_OPS.num_limbs] - p_y: *const Limb, // [COMMON_OPS.num_limbs] - ); - - fn p384_scalar_mul_mont( - r: *mut Limb, // [COMMON_OPS.num_limbs] - a: *const Limb, // [COMMON_OPS.num_limbs] - b: *const Limb, // [COMMON_OPS.num_limbs] - ); -} diff --git a/src/ec_17/suite_b/ops/p384_elem_div_by_2_tests.txt b/src/ec_17/suite_b/ops/p384_elem_div_by_2_tests.txt deleted file mode 100644 index 1ee25063cc..0000000000 --- a/src/ec_17/suite_b/ops/p384_elem_div_by_2_tests.txt +++ /dev/null @@ -1,27 +0,0 @@ - -a = 00 -r = 00 - -a = 00 -r = 00 - -a = 01 -r = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000000 - -a = 02 -r = 01 - -a = 03 -r = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000001 - -a = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff80000000000000007fffffff - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff80000000000000007fffffff -r = bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3fffffff4000000000000000bfffffff - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000000 -r = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffc00000000000000040000000 - -a = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/ec_17/suite_b/ops/p384_elem_mul_tests.txt b/src/ec_17/suite_b/ops/p384_elem_mul_tests.txt deleted file mode 100644 index 793539001f..0000000000 --- a/src/ec_17/suite_b/ops/p384_elem_mul_tests.txt +++ /dev/null @@ -1,32 +0,0 @@ - -a = 00 -b = 00 -r = 00 - -a = 00 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = 00 - -a = 01 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = ffffffebffffffebfffffff3fffffffd0000000300000005000000040000000100000013000000270000001ffffffff9 - -a = 02 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = ffffffd7ffffffd7ffffffe7fffffffa000000060000000a0000000800000003000000270000004e0000003efffffff3 - -a = 03 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = ffffffc3ffffffc3ffffffdbfffffff7000000090000000f0000000c000000050000003b000000750000005dffffffed - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff80000000000000007fffffff -b = 02 -r = ffffffebffffffebfffffff3fffffffd0000000300000005000000040000000100000013000000270000001ffffffff9 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000000 -b = 02 -r = 14000000140000000c00000002fffffffcfffffffafffffffbfffffffdffffffebffffffd8ffffffe100000006 - -a = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 02 -r = 01 diff --git a/src/ec_17/suite_b/ops/p384_elem_neg_tests.txt b/src/ec_17/suite_b/ops/p384_elem_neg_tests.txt deleted file mode 100644 index e74ce1cb45..0000000000 --- a/src/ec_17/suite_b/ops/p384_elem_neg_tests.txt +++ /dev/null @@ -1,24 +0,0 @@ - -a = 00 -b = 00 - -a = 01 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe - -a = 02 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffd - -a = 03 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc - -a = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -b = 01 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff80000000000000007fffffff -b = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000000 -b = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff80000000000000007fffffff - -a = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff diff --git a/src/ec_17/suite_b/ops/p384_elem_sum_tests.txt b/src/ec_17/suite_b/ops/p384_elem_sum_tests.txt deleted file mode 100644 index 0d0ea9de46..0000000000 --- a/src/ec_17/suite_b/ops/p384_elem_sum_tests.txt +++ /dev/null @@ -1,1559 +0,0 @@ -# Montgomery Arithmetic; values are in the range [0, q). - -a = 00 -b = 00 -r = 00 - -a = 00 -b = 01 -r = 01 - -a = 00 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe - -a = 01 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = 00 - -a = 02 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = 01 - -a = 03 -b = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe -r = 02 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff80000000000000007fffffff -b = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000000 -r = 00 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000000 -b = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff800000000000000080000000 -r = 01 - -a = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0100000000ffffffffffffffff00000001 - -a = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0100000000ffffffffffffffff00000001 - -a = 8000000000000000000000000000000000000000000000000000000000000000800000007fffffffffffffff80000001 -b = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff80000000000000007fffffff -r = 0100000000ffffffffffffffff00000001 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0100000000ffffffffffffffff00000000 - -a = 8000000000000000000000000000000000000000000000000000000000000000800000007fffffffffffffff80000000 -b = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff80000000000000007fffffff -r = 0100000000ffffffffffffffff00000000 - -# Carry Propagation. - -a = ff -b = 01 -r = 0100 - -a = 01ff -b = 01 -r = 0200 - -a = 03ff -b = 01 -r = 0400 - -a = 07ff -b = 01 -r = 0800 - -a = 0fff -b = 01 -r = 1000 - -a = 1fff -b = 01 -r = 2000 - -a = 3fff -b = 01 -r = 4000 - -a = 7fff -b = 01 -r = 8000 - -a = ffff -b = 01 -r = 010000 - -a = 01ffff -b = 01 -r = 020000 - -a = 03ffff -b = 01 -r = 040000 - -a = 07ffff -b = 01 -r = 080000 - -a = 0fffff -b = 01 -r = 100000 - -a = 1fffff -b = 01 -r = 200000 - -a = 3fffff -b = 01 -r = 400000 - -a = 7fffff -b = 01 -r = 800000 - -a = ffffff -b = 01 -r = 01000000 - -a = 01ffffff -b = 01 -r = 02000000 - -a = 03ffffff -b = 01 -r = 04000000 - -a = 07ffffff -b = 01 -r = 08000000 - -a = 0fffffff -b = 01 -r = 10000000 - -a = 1fffffff -b = 01 -r = 20000000 - -a = 3fffffff -b = 01 -r = 40000000 - -a = 7fffffff -b = 01 -r = 80000000 - -a = ffffffff -b = 01 -r = 0100000000 - -a = 01ffffffff -b = 01 -r = 0200000000 - -a = 03ffffffff -b = 01 -r = 0400000000 - -a = 07ffffffff -b = 01 -r = 0800000000 - -a = 0fffffffff -b = 01 -r = 1000000000 - -a = 1fffffffff -b = 01 -r = 2000000000 - -a = 3fffffffff -b = 01 -r = 4000000000 - -a = 7fffffffff -b = 01 -r = 8000000000 - -a = ffffffffff -b = 01 -r = 010000000000 - -a = 01ffffffffff -b = 01 -r = 020000000000 - -a = 03ffffffffff -b = 01 -r = 040000000000 - -a = 07ffffffffff -b = 01 -r = 080000000000 - -a = 0fffffffffff -b = 01 -r = 100000000000 - -a = 1fffffffffff -b = 01 -r = 200000000000 - -a = 3fffffffffff -b = 01 -r = 400000000000 - -a = 7fffffffffff -b = 01 -r = 800000000000 - -a = ffffffffffff -b = 01 -r = 01000000000000 - -a = 01ffffffffffff -b = 01 -r = 02000000000000 - -a = 03ffffffffffff -b = 01 -r = 04000000000000 - -a = 07ffffffffffff -b = 01 -r = 08000000000000 - -a = 0fffffffffffff -b = 01 -r = 10000000000000 - -a = 1fffffffffffff -b = 01 -r = 20000000000000 - -a = 3fffffffffffff -b = 01 -r = 40000000000000 - -a = 7fffffffffffff -b = 01 -r = 80000000000000 - -a = ffffffffffffff -b = 01 -r = 0100000000000000 - -a = 01ffffffffffffff -b = 01 -r = 0200000000000000 - -a = 03ffffffffffffff -b = 01 -r = 0400000000000000 - -a = 07ffffffffffffff -b = 01 -r = 0800000000000000 - -a = 0fffffffffffffff -b = 01 -r = 1000000000000000 - -a = 1fffffffffffffff -b = 01 -r = 2000000000000000 - -a = 3fffffffffffffff -b = 01 -r = 4000000000000000 - -a = 7fffffffffffffff -b = 01 -r = 8000000000000000 - -a = ffffffffffffffff -b = 01 -r = 010000000000000000 - -a = 01ffffffffffffffff -b = 01 -r = 020000000000000000 - -a = 03ffffffffffffffff -b = 01 -r = 040000000000000000 - -a = 07ffffffffffffffff -b = 01 -r = 080000000000000000 - -a = 0fffffffffffffffff -b = 01 -r = 100000000000000000 - -a = 1fffffffffffffffff -b = 01 -r = 200000000000000000 - -a = 3fffffffffffffffff -b = 01 -r = 400000000000000000 - -a = 7fffffffffffffffff -b = 01 -r = 800000000000000000 - -a = ffffffffffffffffff -b = 01 -r = 01000000000000000000 - -a = 01ffffffffffffffffff -b = 01 -r = 02000000000000000000 - -a = 03ffffffffffffffffff -b = 01 -r = 04000000000000000000 - -a = 07ffffffffffffffffff -b = 01 -r = 08000000000000000000 - -a = 0fffffffffffffffffff -b = 01 -r = 10000000000000000000 - -a = 1fffffffffffffffffff -b = 01 -r = 20000000000000000000 - -a = 3fffffffffffffffffff -b = 01 -r = 40000000000000000000 - -a = 7fffffffffffffffffff -b = 01 -r = 80000000000000000000 - -a = ffffffffffffffffffff -b = 01 -r = 0100000000000000000000 - -a = 01ffffffffffffffffffff -b = 01 -r = 0200000000000000000000 - -a = 03ffffffffffffffffffff -b = 01 -r = 0400000000000000000000 - -a = 07ffffffffffffffffffff -b = 01 -r = 0800000000000000000000 - -a = 0fffffffffffffffffffff -b = 01 -r = 1000000000000000000000 - -a = 1fffffffffffffffffffff -b = 01 -r = 2000000000000000000000 - -a = 3fffffffffffffffffffff -b = 01 -r = 4000000000000000000000 - -a = 7fffffffffffffffffffff -b = 01 -r = 8000000000000000000000 - -a = ffffffffffffffffffffff -b = 01 -r = 010000000000000000000000 - -a = 01ffffffffffffffffffffff -b = 01 -r = 020000000000000000000000 - -a = 03ffffffffffffffffffffff -b = 01 -r = 040000000000000000000000 - -a = 07ffffffffffffffffffffff -b = 01 -r = 080000000000000000000000 - -a = 0fffffffffffffffffffffff -b = 01 -r = 100000000000000000000000 - -a = 1fffffffffffffffffffffff -b = 01 -r = 200000000000000000000000 - -a = 3fffffffffffffffffffffff -b = 01 -r = 400000000000000000000000 - -a = 7fffffffffffffffffffffff -b = 01 -r = 800000000000000000000000 - -a = ffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000 - -a = 01ffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000 - -a = 03ffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000 - -a = 07ffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000 - -a = 0fffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000 - -a = 1fffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000 - -a = 3fffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000 - -a = 7fffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000 - -a = ffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000 - -a = 01ffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000 - -a = 03ffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000 - -a = 07ffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000 - -a = 0fffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000 - -a = 1fffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000 - -a = 3fffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000 - -a = 7fffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000 - -a = ffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000 - -a = ffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -b = 01 -r = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/src/ec_17/suite_b/ops/p384_point_double_tests.txt b/src/ec_17/suite_b/ops/p384_point_double_tests.txt deleted file mode 100644 index e9afb27d45..0000000000 --- a/src/ec_17/suite_b/ops/p384_point_double_tests.txt +++ /dev/null @@ -1,20 +0,0 @@ - -# G doubled once. -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, e34947f7123df0c2070d430900b0e68409f1fe415172bad915e4f18bdc588258e8e8e4a8c2aaccd842ea84633140bfda - -# Point at infinity doubled. This uses the (0, 0, 0) representation of -# the point at infinity instead of the classic (1, 1, 0) -# representation. -a = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# Point at infinity doubled. This form is the result of multiplying -# n * G (affine), which is more interesting than the above case -# because only the Z coordinate is zero. -a = 4a0fd63f894499928e4b2b72aced45cfc589976f4ff86f78c904d59da9379a62b702d968c1184834c11db28c7356ceb6, be113b04484cd4bc215a9f2a33a674c3764c38ca4de135dd50ce8dcf3c85d55a5aad0e171860bdb6c58201e6212d9ac5, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# (n - 1) * G doubled. -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 diff --git a/src/ec_17/suite_b/ops/p384_point_mul_base_tests.txt b/src/ec_17/suite_b/ops/p384_point_mul_base_tests.txt deleted file mode 100644 index 84b90a2352..0000000000 --- a/src/ec_17/suite_b/ops/p384_point_mul_base_tests.txt +++ /dev/null @@ -1,1280 +0,0 @@ - -g_scalar = 00 -r = inf - -g_scalar = 01 -r = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe - -g_scalar = 02 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, e34947f7123df0c2070d430900b0e68409f1fe415172bad915e4f18bdc588258e8e8e4a8c2aaccd842ea84633140bfda - -g_scalar = 03 -r = d283fe68e7c1c3ace36f7e2d263aa4703a48d732d51c6c3e6b2034e9a170ccf0c54ea9fff04f779c05e4dbe6c1dc4073, 465465fc983292aff6db68b15102b33968012d5ad2e1d0b4132663c04ef6744692d789a77ae0e36d7e284821c04ee157 - -g_scalar = 04 -r = cfeee6dd34179228fb40f647d685d979078358d4736400ad2e4f153b0aecac4630594ccbee0421e30aae8477ebb68f2c, 50946875303df319e607b9e33820017d147162d30418c6938e3e61a34c542ad1e74bb7f17bfec97e54f3e8e79b3a03b2 - -g_scalar = 05 -r = e1bb26b11d178ffbc676b987e2e8e4c660db2cf5aacc05e67f1eb1b5293c703bc185c0cbcc873466bb595eba68f1f0df, 4db1c9d6e209e4a3e6c5944024de236d4b237faf982c041180b61b3101c35b9922c16e2e72f345662b694ba07073fa21 - -g_scalar = 06 -r = c482e189f0430c404f0f6a962b02d33b2a33f6661bdf6015ec52930f580d57f2cb2454b339d3413a7eb5c9317d56dad8, c9962152af2a9eba586d8ededf21559a93c9e5f61b546f058bd4bffcb79e33b0739ac69d5b3d4dce3f62b16ea7b08203 - -g_scalar = 07 -r = 932c9f811c89025bf893db589db2df555f4215d1659753ed731edcf8211faa954ce6415f874774b1df13b9d17d69222b, d90a16b6af6c9b3ef57f238e693b07060ff37c0401fff78065aad76f50130844135349d5a8641c790996b2207706a61e - -g_scalar = 08 -r = 5db4f184349cd9b11c7b5fe116b664231d9aebd64f3ddb371c5c2e7193d7e30f9e336de5ae9b587a23f60a05dd9bcbba, 3c0c6dd70d27ef617008d943c48ecf0ee9923263a42dbba2701754bf7d8686e4836dbb36b7e55e870d2cfe83e6655a44 - -g_scalar = 09 -r = 5cab1d1d53636c6a26d464c6dad54d6adc351dc13cbfff3f26094833a96d745de35d87293fd7e4f92f5d200e2353b92f, e770633431e8f5c67d9429f4ee69a754a6ecaccc68ead0d827f061c7033ca7c23777e270d742aa2ff2813072b18ec0b0 - -g_scalar = 0a -r = a91a5280db1c212ec2f646025c4845ec54a612d7eb32cabee9f6368eab225fa32a15a9a6e58d6787845539d3c8d99c02, 6eb995bec80174e83e03370a47a9b8aa81961b8ccfd7fd1d592ac0ba794eabfd03a530eb13b9e85cbb971f78e67b5fce - -g_scalar = 0b -r = 9c19e9fc7ba9c437f8d89885f0561d7901b8bf56147b66020dcc67706cdad64f4532077c44377abac7708b19b68b8c7d, 9aa62f9f3533f91841821d0c3a53287a2e070f36fe9e682e3ce813298a77e780604fe46bac144b83764eb146bdc4ba25 - -g_scalar = 0c -r = 627b415f9c35b26d523c40dbcf9ab45cf67eb42235d77d8303aced26c8edfee1d4258cc55d9704203db8477270313de0, 0c6e430ef9c4af3d0329eab1f7942f0e40c64a4e66bed5af8c79848fd0e102ac80d60af627aa651afacc45e48be55ed8 - -g_scalar = 0d -r = b51c56e18cf23c94d2657265ed22df97db5203a8d9c1bd568a7a8e4633b7d4aeb25e28c5f6749a959b7aeb7e75ccbdfb, 4617adb7cc6979e181fdbd1c3b490ec3b7feac2dfec38d60789a2a48cf4d0fe3d8e88f1a87cae0c2f4d394596c3d812d - -g_scalar = 0e -r = 46d227c432f6b1ba8058994c5710c0c944ce05ff88957166ca6b1af8b1f85c2ad02225fb01ec909f5865e5018f75244c, 4429839ddefbadf5647d24db13690a7472445345d9c3b6911ecc8585e11dbbbf540b8b82730a99d1be4b4a9003cb68e5 - -g_scalar = 0f -r = fb62d26f4903026b0fc01fd4eb08599359500917789b307583ccf19550e07b342b7210e2ec3dabd8446ad8884709f4a9, 5a68c6fed0bc27168733fc41400c5797dddc2866d898f4704b23d3a0de06610c61609cbd144bd5862309cc9d6fe989bb - -g_scalar = 10 -r = a10896aa435abaa137065f5313bdc3fa317b63ea2887d5ff37cf65517917652a992afb5b0ecdd2d8da6e8a7f7c33ed91, 659db48181ef251351c305c6a72d1967b333bdfbc88ee148914871dc154d410feb07ddea230cf00d9b21615fefabca26 - -g_scalar = 11 -r = 524f166ee475ce709f6928555330455e7be3737d524ffefce6fc3f2af655a10d3ea4ea4c8ff1f43e8903e1304b4a3cd0, ac37986f55b164c925eb5df1b3c2677af87d6d854a54504a49ce6993336bf1834e23b6ffd5b9c0da3fcc69cd6c12f055 - -g_scalar = 12 -r = 57505d8d6749703068a232435567169355a96a6879909f083bd1c8f62edb0dbd198fd3f0f38f66625dfee73ce5b82700, 91700b247eb1be639bdd6a092945a7576ffcfc7ca4cfd9bbc266eb844112985854b867b7f78aa7de8a60717f75c64513 - -g_scalar = 13 -r = fa0f1f450390d706b3b6639c539802ae23891298fc38538eca109c3b154aad5e22c4cc5f41a8c91282a2ed4abaa84c08, a1d47b23e957776415d1dc778264b6723f5a799bb67f30c39170b3786ff2f643a8c72d3cc3da2eac46b78e5db0dc21d0 - -g_scalar = 14 -r = 1d1cdf7b5f22346598ca8dd42d96c936f78cff0cd467f03a713466708cbaffc7cd96f20591e71d16ad610a2d94a70ec1, ab9dd81052ebfb015e01b72b4718bbc7422da643ffe6132b9933fb25dccd4df325f546ab321828ffe27a189460d4db60 - -g_scalar = 15 -r = ab16c626dac012b51b1a0f6c5df0e5372e59ab62bd9ebe6930128aa06177f75d88e0d496dd2f9e2108265e510422ce2f, 21824f411353ccba266ad15aacea5817b454111e8527cd59262ebb498a149098aa740a9e38f17bea8014214b008c5de7 - -g_scalar = 16 -r = e082882d69059095fd7a8b13f0681fcac382472ebe0e1fdbccd57831927ed783981b788d16f325b84f595351262bb775, 671d69c98fcd841850fc847215809cddc764edf840d0fcf77b1ab489cbf837b7f9d62fd9c9576c694d1c3049faa71fdc - -g_scalar = 17 -r = 80826a69eea8f22461e4ca2b905432f01c75b8ab2a351783b9d3dd25429c0a18990ed20b569b8ef6d1b4e74d12e3683b, 9dfccb0de2212559282d2437566718c1f0138950eaf22c7e7ad8a132a527cebe0bcca3f0a65e48137fc33a6bec52abad - -g_scalar = 18 -r = 4f13f901fc55723f38076e8fca77d74f563361909bd5c2f7540c045a409c930b20c1b8e0d809afcd259f272cfab816a7, 150808e625a302c91395a87966a4e904e8277439a0f9ad3adf5579fa4bea82dd98d82ad1da247ec8890932d7bd3d10c3 - -g_scalar = 19 -r = c29c6e2ca5bb73313809ab50de2480249bd51b99208abe1e57d0f3d2e2be174abb280dfa3cb3fb361e93722758ce3b83, 1fe6fb42e97809dcda3e1a3d4cebc96ed6a2f51dea8e434401628f059424a3cc83ccbc4e9009e3919944fd2e61124f05 - -g_scalar = 1a -r = 37a45bdb091cbb80f14b309f03fa90f2808497b7b0bba4a76efedb8023bf0b90b0391b37897b93f56423197d2afd473d, 47d98a9df092241cbf2c0862697c08fd5d512df99d42a72725c7b9146f5f24c7db3f422d95e16d6eedda4ae48a8f5dcb - -g_scalar = 1b -r = e8ca780e373e5aec2f7e8d509c6a58fe7228e2d5d18f14d08e0d4168482396f9cf1912934d78291da04482d2467d66e4, 17820a0bc5134ed767e67195d44d3cdf7d26540638c85a85d779adfe31da1bea58a6d7f569e2f8f442aad1d61b68e9f8 - -g_scalar = 1c -r = 55be5764d37da1a2d8232f8b4e492aa88fb0c597a4da3e15550e0bee8ff22c6f4169b4117b3c1220c76afaa373b64643, 05cdca3fe7988176792377fbf8eb8319c48ee6f3b033c112184bd4733ad6983a9ff769c4875fee0ff1bc89b628e77f9e - -g_scalar = 1d -r = c8b00ae8187cea1f2065b7cba7df26e43dc22d490e3feb0fce3c15ed55c9764725846b66780443d6019d6ac5d3021470, 1d2a1c015977f16cf6f57e7190c820338e6db10b404505fbab178d26cce851b3293c164920c83de21a5284a0865dded3 - -g_scalar = 1e -r = 92cea8f4c4360dd87002990485ba414315f9abe1feb6b100519b9fd50a18323276aad8b8131263886a7a3464d0cbcea0, 941292e500f88cb2f569446a2755569296c21b29f6a167f23117dd04d47a41dc1846eefcdd3eb156dc6c5d1dc12748a1 - -g_scalar = 1f -r = 6c07c4040a3305d11afb51a3e3ba8285d42f7dc953c149652ecf8340f0df4fe6b6e7ecdd9e821ee6a39c89317c8906a4, 475a3e756398a19d5b3d0d6d36beecc4d7dd464f045a7a1c402a9bab42eb20ddbc0a699b374c4b08dab83288127fc1da - -g_scalar = 20 -r = 5dd2a4a0626b3d793a9865baa631cfb0ba8953d612e8dc871896b9fcc651b1dd0d784cf208f779d5ad852b878c0a64a4, c510ad93aabca99f73b42725b35b4ff04bcb06f00a2377b677315f9e9448fd08a372dfc2f2a52bfd1148bc72687c20bb - -g_scalar = 21 -r = cc9e97a46c833e9d68af622641d5c400da631fc160f09efbbbc7c7ee955ef3afdf330d9d5b943c8661333a382fb3ba63, a7fd2b619057dad76fcc93a1b8c310728a416eb9bb6f0aba08467cea48b90b9113bf6124c209e55e7fd73e8e3a625e76 - -g_scalar = 22 -r = cdb55e6ba07b7cae7ec2bc1cd50b3e6d9d6ac102b4e2520145700722abb9102f0648c2cd2d668c4180b309dd2ada5bf4, a964eefbfdadd24e03c050a06152072602d00cfb8a76b2d69e1418a4554557c3470ddc68f8a57f48ebcbda0786da3943 - -g_scalar = 23 -r = d6149f75e9417bc6832bd8e34fc7852365f16273a02583fd4a508620dde6bd0abb3800d52d7c2fb458a5b5433720ec9b, b13a8ad830e23f26ac8a877f52ccd35c22f19fab28f35eee50018998988092a20ce18088a55e0956feb026e93deeb52a - -g_scalar = 24 -r = 1608643883061d376f01faee26946e789f82b7fbab52606ca39180d45c2c7ce14a13260770b1b757f216aa2531238ed0, f699887b806085b7df33eed7b73401b16a3258ec33f5567510209418c167fd201d11bc5ed6e28138597edf370fb077bc - -g_scalar = 25 -r = 1eba28f3defc58b59261ede87ef27114acb60a7597482b86a129e2dff5b54a5d4027704bb5630ef20202d57de44f61a3, fa0e07b7fe85bf85284fcbb5638ca337b50649a894047d1f2ea912435d2ca0342f1643d514594bee6c91c0c98be5589e - -g_scalar = 26 -r = 47ba96091da7b1476b464412bc9a48c7479ecf018173fb32f3d752f5ad6cbeac018843c01c0d77024703cd85891f8ffe, 1f466694520618f2129be314974320a4f300e1c648347f9adae2479844956b9387c183c3e1a0e06c91af26eaabc13488 - -g_scalar = 27 -r = 587df4d6b89b1fc2c9985040b76c066536a1cd6dde9b62306d7edf642b7f006fd984244a8e3d2c467d894f80506e0e42, 2d7bc128074968fb1a95355f1cd60340b646e453436d9fe2345c553ab53153b87b2b0ab3e82947474c0638476a71ae7a - -g_scalar = 28 -r = 51c4b1b36a4d6e813b021cf316d7a9adae78bc3a3134216c86fcfe4760be3ebc43a53ff21beb359e6048c6949399c38a, dfd92b6da914bb01dbb22c9ddeb46e6c63a00a0a60e0aa2a98ff87f7370eb7441df8cc84a69ea3a354b9cd8db593d816 - -g_scalar = 29 -r = 8764cd2cda92245de3bc778895fd71ae89746c8d852ca03573a82933a80d68f341dfd24d456a201ead148e87bca6d14c, 82ea702eeb18f1c5679952c7d193272ebdc9d6c34f9f589a57860ce121646f315ac762e00f3c9d6ea2fe2c4782eb23e2 - -g_scalar = 2a -r = 7438b4933c1e593ce983e169ffff96c73fd72a308f234c864b21c4f3eb6c7e6231b22efc5df46c6618ef56cd5d76b881, db6829c2f002bb6e50029568472a7175e739fb61eaa6776325d0caaeda1eadf40d959ba9796d9129863a23a3a553e8e3 - -g_scalar = 2b -r = 35178bad22dab3935cf095a901fefb567314f5f0416dbd86dad9f5b239c4943d09112fc50578bc8c37fa935500846d44, 8f3f1f63c9632b78a974b09415cbf948aaf8e0f6bd0628dfbce78aa9ede314bb1b7ee42d749e5498cf79fc1b36baf1a7 - -g_scalar = 2c -r = 9c7e7754a320d35204ce2a21986c5ce6d50a288981ea36c2767b4ad7f8f99b51ae97af8bf240b30a1c5f0e5b36a400d3, 5fb28e322a1dd73bade6096d02e543ae47678afb27dda8e5c680176505c7ad6c7cc82a4df1698fb2c3336331bbad8346 - -g_scalar = 2d -r = 9c94c858b2ac340599e1c0c61f2bb599b0040c0e8d6fcf13ffe8e0bb39eb8f59d4af65c673ad9112d4c411564fddda5b, 42eb2979db83a48517477722bd2af19e16f96676b7234e93eb3b44a9e5b5691862b2f54351fcca3f8f8878d76eeed85d - -g_scalar = 2e -r = 374aa9069481ed0dd9c79db8005412579266634957719f5460976b01b472d7899f24fba649ddd10ea618d7479fc4f435, fc539eb3e259c7dbc82d5998ec090d0619ab802314eb4ab9d7a198a4185a849ca1590c30ecf5864360efb1147fdc2d7a - -g_scalar = 2f -r = ea5b37c5da233371504f21b1570cf950780abff7d878acd0bfb185125f5b07a065c788785f0dc66c6f888f7df0c668ca, ac9dfec7dfa72a8beef006912e20fc23dfeea1a265e0fc91f86562a898fb34ff9c701758249cf9b7487ae8bd22437ed1 - -g_scalar = 30 -r = 66e4794bae7d740062e5c5d3e73a1bc940d01ff53a7d2f3c4f504e06ea52bef92d368d48e7f30c2b3ccf806ab35bf6cf, 271e42a12624a58348eab00eb5c9462c2605ca009da2a2ca5c3ca10d04bab9854580609da766ddf13d30625e5ffef312 - -g_scalar = 31 -r = 0b470bb250e4ea9e1197832bcea03f5647c56c115b6e3386a669156542e365a48ea5af63a5ea6fb8fa5c3aef697136c6, 2d1cc518e28b2bdb771e64415b57be2f2487edd57f82bdd3fc4486ee49c9ebe88d6c174ed2497d483113c74313b25712 - -g_scalar = 32 -r = a820e8303a5d50d19cbf755b46f97ac7beabb91ac3c90051510bd675cb2ec3f1172cfe4ecb5af900a96763d2fba32d1f, 6f58fa8b7181c2a16f7bfa7e13a4f7d6c1b444139333e4056124642f0f32b151df7dc7053048461a83a9f17e308c4545 - -g_scalar = 33 -r = 16634a504f35cb3c3dba16e9daaabc27464ae8d241a84de7a5e0fb598c5a78d91947c0caec4a22b82c4ccac72070ac8d, 518b047dcbaa0d97c69489e2373f1a0d0b2240003c887d36daeac0c3570543f0324d067e7359dd35adc18bf9b16ec84f - -g_scalar = 34 -r = 4b820d9b31d83660252b48f5cd8d7d770bedaa85e5377c005687d1dca6ccfd358a944b316b3262328f6468656f9201b9, c5cc339dcba1fd4b222465866e5ede7690e2aead7f78aaf86d0a166ced3c3b7a0a8930fc1208b9faa9e5af3ccae07f15 - -g_scalar = 35 -r = a8ba8f10e0f383ea642ec4e615c3aae2cf485c74a7c54b160b0110610f0422a2daed7c268a0915cc3b1bddc6fbde49ef, edf2e3eb7ecc9485adc93d9a481765e2d2c71ad1390699635786a19a4e2fa83eebec6442089efa8b2a2054b495618501 - -g_scalar = 36 -r = 4576a6497cb8944248c075daaadd6150075134ebabd64a6acff00bd23c9b5a41ab2f15202175fbf411853add834e6c54, 420eb673906a29496e9e86bb7b1eb77a1ae1dd97d13444bb0bf879d693b44ea68dbb571c77fcd1f4340a767034adeda3 - -g_scalar = 37 -r = b3fcd5d1690cd408fa5cbfda60f4554f6078d8bf085faeb3a4fb7867e3a142d6fd6622bc1718ec3cbcab5f60069f3367, 7460257314ceeed46a91e73997d0fa0617c6b5cbbe2334f88de3107c3d079f6182af23aa180a63a74ebdee7d281f7884 - -g_scalar = 38 -r = 7772a913e6436cc1e9981ea6820da79f2629ba4fd1deca258b6fc785e692fdd2d4215b4fc7a8baa1483350a5ebb8cdad, 31ff648e0f88b82d56fefff326f349ce05826192490bb572b623a1aeeb8cc21c28179e6cc852f64bd141235c553fb41d - -g_scalar = 39 -r = 814d7fa07a78c189c052f3eb1c99ceef1e9dd1509bf446e0a14967dfac4bbf6273bae4c1694b8b0db14ba61cf97f865c, 0a823b9a4b26df63d2e130552952c1fc8f427bc473c81d5b0d60bab7e809a13c7788c258a1737b65a101a483ab74b05d - -g_scalar = 3a -r = 104cec0666ac72e09e9520bf57acc87aa58db4ea4f96af4fdab9dc0015b0fa13341cf9d9c46785af941c5c257d0be180, 2b51995f794da901c08595e35548fbeae11699e909fa58a1b5f157aa569b57d8b8b4ac9ffa80380a9f3f7baa1929e675 - -g_scalar = 3b -r = 9ba039679267b6463703435b0de64db996a917cf1ed0e31564473b595c322738dfca6897f929974caf467ce227bf64c9, ff336f12504655c196d9ba0bd9e3ca196fb34b3028463cceaccf2edd7b05970341bdb741b335eff0df0c2aae3a522fbe - -g_scalar = 3c -r = 95bb80cece47968c61bba736a55b527784b7c2fed74cccd40402d5c4eb809f85a61fada6fb4f60e8c711d5d1c425543e, 8dd21bf0b4ea4f5129fc3b284892e676bb45a51f948a8375acd70b86ad2a20fcf0e0f4f7e682aa2909f92adc16eb7b95 - -g_scalar = 3d -r = c93ea049ef6ba0062366467300fe51fd5ff77ff2332982d06035e34f772ae08054fb5a34222241e848da1fd3fc60a6e0, c4cc11451fc69829b0a6c77201466d230dda19ffe5275767e6a7885370d303eb394d32cd6ae9f4ac6640f1177d381266 - -g_scalar = 3e -r = cb4c0a54561fedf2d194b7054b14d11703b9f1cebfec21da0c7d749907dbb9af1e659730c1fb476e49a04dc0f5acf772, 0902cc23149446b8cac324ec82c4faa73d2508922ba9239b65609e59d9ff0aba5f5e9b1fd630c145af623d3f21da4d42 - -g_scalar = 3f -r = 1c9bf0b0f1e52d1ef6159e519a049f7acd7e35f76e2b71aa7a50f7458c949f8f6ce8ead6149a1896c5c0e6d7aaed89c0, 52bb3712a0a689e8f5af7b8e3735df22dc89bd4997d4048d3bb034e888d17f198d3a5f621ecd7b1a3bb6c1f518202c80 - -g_scalar = 40 -r = 4f5d5ab6d1b30e5cfc8e87cf3be44d56a309199dca57b7bde04b3d30f8a0580d957c980f297a9a37ed4de4f88e89b258, 888b708b9404ca513ee127895ecd3fe86d97cabc301fe259fe51bbbf1090fede0fd1c52df091bc01b213c6a030a9325b - -g_scalar = 41 -r = b84c3a6a5fd4266f8b0350b2650b22534597ec8abdd5f002cf9edc15edb63c80becda43b0d1d279f8e469454839b9679, ea6f2528a55bb1c9a2866c24c8f9f08719763d6d889d66ddab784b2cde2bc266b6a487833ad995d30e16d83d30fc79f9 - -g_scalar = 42 -r = 3418c841ef19aa6cab34164b3870beb7acd0361f5decad089983c10a492b899ae22c691d99c0b909b60fb64e52990b5c, b287be9507f55d0492b480eed70d6c3a6fd331a3b0d5aea54ed3fd192a684508a580d040c2c889076cf203a6209b336d - -g_scalar = 43 -r = e462ca48e153035af9af3e4d90909d25556e637e6ef3d8f765d75edaa55d6185eac7dd3b0b634f686efc5cbc8b1772ca, 8322cb8aac794994096a6bf01362c5f95990b746c6ebc0031a7e35ed3f59e4bc104ab1a642785d0652763b7b0a109ed1 - -g_scalar = 44 -r = f6a8130b3a7741e35508c2b38bdb088aee34bd1706035fdea4160def7fe6923a2fd77b5ae6018776af78aa17286ac2fb, d467b0e82fc4663ed9c5d61f09f68f4c29b049577e0fca014277e8927030cc9a59a9e6886b1e723fc02ed662797cc7d4 - -g_scalar = 45 -r = 59d65d78a3f735f42c86ee164fdd3ccad4bcc8b125abfd65cc66c8aa0f19981b5ccb2859a1115e28f8d3df74670c2752, fbcd0100271dbd7a6f2c9e8b73167a320aceee4882ed66bcd13ae4892bd423a457769d6245d3994d035ade287c0c55ce - -g_scalar = 46 -r = 2bd44119aa9079b7d8436f83a2ce4101a4c793741489a3c09c2e8aec0cdf6d91edfdd44e94cf7a32bcef0b6a37548a32, 443df50ac7469f4a5c599917d3a76debc4077657cfcdb6b7cc8ad6658c725a7ce2a2b0996761e5389f0415bd9bff2a34 - -g_scalar = 47 -r = 0b4faa5a537ecd702b123738fe255dda27bbde143508ac5493ba15cfe58d0a92bf5731b3abb11441c42ece45effefcb1, f9a7ea28732ad01cbdb924ee071395662144daf1ce64373a154f285025b3e31986793c4d0801523d6a44d084ddec83c6 - -g_scalar = 48 -r = 0966d45a6517888e2ac250f6058daca83b7debe494eaf32810757e2e3f599369f4445a249b234eff668240536434688c, 312c1d2f36824d3ab010acdc097afa217854f8bcc3f0ad3ac7b43619ab96774699cd9dc9d77437097555cc79e7693b1e - -g_scalar = 49 -r = b89d83e72bf4673cb08db04de8caa7d29029a9252d3731c25b8d230bdf8b9b24a9c2a9b11de8963b43385c32d851a702, 6f65af3b7c98a1620b15740387b8637304e21e0392265a59af9fc87b4f1d216e9f89b6d6e1e8d616a8fd39bfe1f24424 - -g_scalar = 4a -r = ca50bae743ca3e45a0dd8e3cc10c4f6c40d420cb5c36dc4c02ae1f9150f6a5cc7f3bc516e1b24b64126d4cde13dcbd9f, ac30d6dc35b9ab9eb9dd7248bd7085c75aa7e563ca19ed0f2458c9ef13cf22bc35dd6dcf7125d169f074bee9efdd2b40 - -g_scalar = 4b -r = a1e0ae0fe6ca7a154a7ee23df367b5c85d4631b4392f8f665b28cf8991549a96c8cbc40a420ab7ef6b5d4014867303de, fd42d862417d6562d7870042957fe44564e239e3f0402e1d6762ab69430aed71a531c2c450fab9012a655ee1139fa27c - -g_scalar = 4c -r = e677b97c61007b808b8d434e90bfa219a7253817daee85404552fc68956bce558c547a520c8d74e1fb2f775e4230e336, e7871c313937b80f64172dc31901ee2241bba1911ba3dd06a7a69a24e4f855bf96eb8cb3603263f9bfeae6f2f71abc74 - -g_scalar = 4d -r = 63d23607fa5c9816742e060b28a126270ca930b998ce78a327ccb6c0212a6125114a9b40334793a79f2134c12a501a3f, d44b1075302cfd2ece61c3e5572941a6dd03950030c9cfb21500850e49fd3c3d34cd7e2ef34d1d23774dcba4ec1f91dc - -g_scalar = 4e -r = 02781ecd4db639eea1560f9775dae55bd35175d9a506191dd3338ff4b743bdfc47842147688c1ced3c80145ddb9f0b60, 3e795421ae8fbd6cd47a03074e3c8f2c84238e64c4a7a4fbc4870c9dbce600336c62bff32c45eaac993a302d23dce536 - -g_scalar = 4f -r = 23b245a5d53912dab3cc818a7069cb7c491c312dd15d01f0e58901a204ca55712cdac248c3b74585ca11d9d4e9a6c224, 4b9728f81d7ab255941c66c9f30281f9617b301b08632eb3403243e9eeb95ec1a052eb3e3277555230f7838ba6b0b163 - -g_scalar = 50 -r = 1e8568cca446324620fe8c27a715ace6dd2ec6d351fea1dc49066428b121360923e5c6b90e42d1f9194924b4ad0a415d, 530abb420614a6f9b960b5efeecd8ae42413063a1378e68fbc7a903c6484641d98e97f1cd923637700c213bbfcce7e6a - -g_scalar = 51 -r = 0984c2e37cdf344f11238a859f436faff2c3118feaf138afd8cb3560e07b1bfbde45473e86c087853cbdd3cbdb06f682, 9dd7b7609745b87e5de38d63ae2706a701047a5ee5dd278d56add2f018f2637d959a14d4736fa240e1083c17c382584f - -g_scalar = 52 -r = e6db24057f12bea3dfc6d038305bfc7c87e75dfbed69216bd6021049cbfbd0c2e8c09f59ec5cc866783cc5bb88f82a12, 6009a59ebcd30d2869eb7bd2feee7fe5ed736fffa734994fe40d04ef6068512884fa39d54bb007bb6469e146b7a3a2d2 - -g_scalar = 53 -r = a075b16ac03d7805c25baa03520a8926eeb88ca1c7a4aab58487aa0d4a6694eb44cf847ed2f05eb48e61f0bf44e94071, 773dfeda69ce1cf9b72a7cd0563c78e40aa262ba2251bcdacf21a95749e604294e3c13706009643ec357a48a13d970c3 - -g_scalar = 54 -r = 00eb5c040d16b7fcb048b60e740c04a52686cba73934e93664a8bdc7c791db8094b80b8f691e858b3c712c3c6323cd05, 3e5c6ffb3adfb941dc98abd94341fd4987e3e34d8d8145a014e572f21cce9e0d9ffcb850d7c9b5b080c0d8914ddc8276 - -g_scalar = 55 -r = c835025446e64d4db0a08fe1114e6f01d953aaff73256a577bbdcadd053153d82148bbb88207255a935d2cdf9b06762d, 6c218d92c993f213a231839fe2895195c3d455d22caf52f27422a72a0bebe314392aae0271fbe969e7cfbad800dbc157 - -g_scalar = 56 -r = 94dc48fab7e8cfcde61e6c2984cb7e449e30229d0a06f838361494cc0b162b571234181c1dbb4629c7364268d94ab449, 43d6196f8de4857a143c6e832c92df61a32f70e6a0c3e1a57a9910d501c47967a4fe5f5fab20b37f0d7e44f289b66806 - -g_scalar = 57 -r = 1c1b3417a500bb22c4840320387b6b2ef30a928d9a3c3af1df0ec1ba8b80919559424730109677754f11a02e4aa0372e, 9f046faee996fe68bdac81880e7b4db731944175e7559f09dedf2454f984a88f18246d74a7909681690ee6c7bf3266f2 - -g_scalar = 58 -r = 9398236759e97922f158f85541bb965c782840d1edd794907774056232329baff0041e2423786267db52eb03d1db891d, c41a6fd431583d521af2a631ee1859834284651c3e6724b407f97c1df8ba4302a6f5384c2f5ccd104b40ccb8e384778c - -g_scalar = 59 -r = d0d105de164b7361d63dd29d19e0e2b667d3644ac8e55b7b463df30b0096721f18a49fdc4bf163e00c62094b2d71d4ac, 01c7e939b8df37f31d28243540b962d9147701090b4de4c065ccf0512daa253c7861b71b2093cf7ee5865c4e0217188e - -g_scalar = 5a -r = 4347b760969bd7f7b560d7e63dc77e7bb34f09fbd045d31e28bd6aae6e6e8e57672649def3c36ba79b35cdf7a7871029, 9fce477feb7d3671effe5f50722fecaedeeb339129c4724952f2cabe13d6dbeb23ceae28feaced8d2f161a085e5496e5 - -g_scalar = 5b -r = eb0f52348bf223b0e7e7382759dc3eb7b04b977d42d74f5fa4f6e534bbc2618a35c2421b14ae3f635dea409c9cba0858, 47cac703f116c6e20b09b3bd9ab88478cb78e0c863a2cba009d0b3319236343dd012811a3fde2c6d991c51670fc75158 - -g_scalar = 5c -r = 1031cbfcdef715d74efeec75e724f56cb8a88d32c7b6b5a626905570df79b6048f97bc3df1b9f55b91b6e58f1036e450, 3e080b351a206fe25e43c16b90f38d1d3deda082a8a691f9a4d6871d472ad231cee9644726ca94dcaaead60f2dcb2306 - -g_scalar = 5d -r = 813355b3430aa2d72df91689cfd151547a3545de7cfdb00e1c634764b16142cd1b1cc24f5380675eebd14d71e32d80af, c071f38f66bf9d09c71b395490a268e5572a425b71670dcbfe7ca8103cb06698d9e303f7e03abb7916dce2c985f2ca7e - -g_scalar = 5e -r = ed9602dc7912de8d89dabf40cf9eed19f4db0ad3ad1bd1192e2bfb0c25998b5d4259f70ee435a0deb134a04174225251, 843c41be9c6cecdf6010c639db73da1103f4f9dcebcddc087d15f243cdcbcaf878632b48408989ef585b6d18c19f9213 - -g_scalar = 5f -r = b8f42fe52fead1e4257b0bb5ad7f23e10be90befa27d2b794a607b9d0ef989779f74ca169bc0cbb10fc0f2630dbc3c91, bb6d4ba542df286e65364ded55ab93f98c0f64e83bc7b59145cc3f14dd99f9fb505fe7ebfd79617dde78e4315f93b592 - -g_scalar = 60 -r = 8bf3dccc39c18b96cb4aa43c9741eb4226de4c6581998af2ee21597e52ce08f68fd61e31148840d4dc5293851d15bba7, b257fb6c5a4434a4cee0842f5d5680b8f9d19ea0c831254b8545396f305ee4f0507e24057dd87c3966e1d5dad872984e - -g_scalar = 61 -r = 8c081acd170d807f87b1e51bac06961610241ed16fef9d9d8f273e3065278f98c1f0db004a49492c7cd2035d7f5c54e2, 83c6b78ec4f030064c3e2491c4f56964cb47e4ed7889a39ed7d24ef430e05dd3e4eb5512d6865bf4005051ea1c73b598 - -g_scalar = 62 -r = 458ac76d0f40ec396e6880f15c434085ca861b4d97740fcab1bcd42525fc2c50f05e0ddedb37f6ddd2872262b0a9e00d, a77104bcffe021f349c17dbc262820737b96a6edffb612df003c91f554ee9d59d70204dd7088d2da5fd094ff848ae412 - -g_scalar = 63 -r = 648c5f00bb28223ad49cae0982d9d6bdb9b2e6b479c8f8bd1b41177c708ba469bb4f9e0f41aa174e6e3835a9b05f84a1, 03e1698b322d63bd1f7493b176190d98d6f759d8d1a0ea086675138f708247e1fe3096dd81a0a38d04f485765d8cc4a5 - -g_scalar = 64 -r = d884d30b2f03f287419f4d2eab386382b0e595a155fac50e100134e2338c10e0f9d9c4dbaf282e57a350c4fc01834066, edc690c903e2fcb28a8aecc74afdb92910fe926075034f722a4dd35433dac6b48a14723f4922997f4a7e5936f6075163 - -g_scalar = 65 -r = 7e2392bf7bc814db9cdd943547a18710d73b1fad8b8b5cfc73ddcd2c2eccfb1ab539f5fe50c66d708e66c6f69b8adeac, 73872d361702e1de909b656f420ec104a73e1d9af53e80541fef41850ad68693ffeddc211d67c04d914193c06c8f74e8 - -g_scalar = 66 -r = 180783fc39489b2827c614bfddbdd7a57befff1cb90a319f1c0f6241bb2863c829591fcce7274c8803802ee80fa4f860, 60a4d22a26f6a5df4c6c8fc838175105a47fbda3bed5e5259e8d5e0bba3a023a5464baea1b373ba72a89af6579ae9e06 - -g_scalar = 67 -r = 590da88e64671048113a7902e3da530d1ad95a94f23d84fcd3f0d14329c21de1ddcbb10eafd402bdd24cabaa21355d5f, 0c9e71377273dbedd6e2d5a62de40552601bd1c358fad1c397ebbb4ed86f4dfd1a52e4e7e62e6e0bf4a58282925bf0da - -g_scalar = 68 -r = 7117756e39dcddad381f4f06f473127497d1e75fd9f408b53dd4f91683002cf1cfd364cca03bfa6367126ced901410ec, ed306706377f04cfb06434324e2c7f76f5f40731eb8fedc1f3513c3b9c9e5f9ca3b9dd6e230c2f53e206f13b96d88ae7 - -g_scalar = 69 -r = d0ab3e3a99ebd09c022c75441a806542862ef39c275075e3077f30e5dd2c23bec367d6aea6e201bce6e91985e5802845, cc3ae72c6d8973a5cebaf145152f1923d3d57a9547202560372c23a9a91fff8ca5cf364fa9ad136b7d67ef60d99028b8 - -g_scalar = 6a -r = b380f170bff65e1c2633179cfa6a8ac6442e0f1f36905deda01780587776c7fea1295b179d724fdf3d303c72138de192, f1c69141971d1d5bb5a31d6abf10c960069f47e10aed184b1e0b982b4632f0a407c34b8181b17d37af66ced6d590155d - -g_scalar = 6b -r = 77964d793f740b4850994c4960a91622ccd4f456753f40d027c6ec25a0075d4673c21e204f761490d718e8e1f4363f23, 5182a7172afcedf2e1d99f78c7438e3995d6ad45b8659463488374d1a27f3f9f844fc79ae4193d79f4c955e2f647ed02 - -g_scalar = 6c -r = 2a532f0ac16a417882f24a114cb0b8671b23e3f7afef0b5d589f30567bb8dad3d81b74529a67044fa26631ef443c7161, 629a90bf9aee303f7499b3191ed0dde33c58b5e63c40024984d81e8e66d45390a985daa26e4abce9276d170f40383ceb - -g_scalar = 6d -r = 6e3c27bbf13f24033cd18c33b9cff887a911a58af0d93abb5841c5f8a8dcbdc89c7d35833cc1184b0efc2e27b2deb1fa, f4c46c56198c770587e19a4e7f7c756875ad33caf5a1411d2db57fb4f560daf435cdd90b54294c055b391712ea533ae6 - -g_scalar = 6e -r = 26956a5b83e5bd0bfa63d67feafb4dc8bdc1c92475053732ce481ae68d2624c8a4ba394e85d138d693f846d4906ef776, c59ff978106e08bfb775af8769e4422061d7272e75c0564abf9c791c76e941515426eb05ff14810bfac270f270cae3a5 - -g_scalar = 6f -r = a158aabcb9bdef14c3907b518b02667f27552012c727be036744720b50447fd908e0805000765fab8db3b74805be74b8, 09ca776808279da9c64b47b82300d9feccf8e1f94aeb2685a2ff54bc93c326191095bee4e305fb96aaddfa03f49cc56f - -g_scalar = 70 -r = b4a6714762f45dce83f2fd2cd8296a52fb25e37c9710b70b2b5609d5504c81290d20370a5d66455a2e20654839d6e2af, f82bb94445ed204db9a19eb57c182141473e6877caa846883e7ee43a2ec76a1716a71ccc0b6c4c64a818b9bea15c6a6c - -g_scalar = 71 -r = 869fcd17ff86a9864a5bdb048d7fa0c2e9815b09139b7fc5e72215ef852bd27fd2c616d1bbe33572f85b86b79b0bda12, a10b3df255f7944b3d0ed17c31b87757bf7fded9fc31bb676998722ae7b12029b9c007f1d6664d043278521791daf6be - -g_scalar = 72 -r = f80f423bb48af0e8e53bd76b6e4b3bc543c2a97d5743877a559b40a286dcfd8831ec9ab137796cdcebbc6b4cac6a280f, 0cc71a320bc4646e499467386204acd06ca075224dc4a5e8da508de78539d530f4a727682b1c4f45390696a8d488cc7a - -g_scalar = 73 -r = 274c69657350982d84442a4123c50746a97accf432406bfd33e868f326a488269120f7b3a043456daa4e673b34498f56, c0c5bdf6cf5a11db75029e32cf121f03df9a343af6312ec600dc39b8848a5b863ebf1db1ec7ae2413106b7fb95dc9eaa - -g_scalar = 74 -r = a40dbba76a0c98442700a45b812fab5c2e56dde7119ced404060d22edb6e808b6d812dba7e29445309e7d232ccd1c14b, c0ad2701581c66c57d04f5b9c910c402fe084c3f269a8382819b165ec127165cb49514f0e988e2f90a1c7cbe9cb66303 - -g_scalar = 75 -r = f26774cd7823568b517a6bae23acba53ad9e749a9aea738d613e5294fe8579619532b30ea229d070fdcce7a80723559a, 70509ab082b097737a546582bff1585ba6729b8db27984816d99c05f06aef600c6cb3a4beb8c057b940767a1ae53114d - -g_scalar = 76 -r = b8027be64a5eed689d19bd63befa48da4496f5a023133af12541da528e6a2448d1f2d42a406775a028f0ab7a080bfca5, ab9386aa4a3ef7e79966399f963aee20f35524d0b44501ccac13b8149df3fd7307819492dd5cde2308c7d5a296b0684f - -g_scalar = 77 -r = d2fc5c57998b057713167fb8ec9cf4cda4630ba1875fab27cd55e7b421cf9dde59f9078dab73bcc4732595ac7329d8d1, b16536288a40a5cd9a1bb1ac9221b7a3eb9ecabc9109b7e5d677a64899dc8f46b2db96f206cf9ceb761360c15ff51b6f - -g_scalar = 78 -r = f392f9632f3b0feda03a6787986794dbcd411e349499fe4eaf07a03eb8994b40d3259f2810248af41b3ea621f3c6f15a, 539875879a1da4c861bf593f532e0ecc3c967a464c37dda4ccbe6fba3778c83889e73d9a54d7c388f37166f8c08a1237 - -g_scalar = 79 -r = 79cd3f1e3891db8165df3c959329f7e0c29afbd47772778a6c33d5d6ba6744e48c9a16e3a896ab1e5198ba40189dfa8d, 11aeeda1c64d0916473d0df9f8265b7e9c1d39a8b716f21b95507a54ae4d8985f5404f6be9028e62caaa8f0bd784019b - -g_scalar = 7a -r = d109b62984083890da5fddab7e28aceae3da87e136a2812ddfffe0dd4cbeecde89a9a5422a1a0fad53b912fb21a3720b, 14411c67bfb77d57f6b8dd99613a733b02b77ffc1077afc76ce67450eb4d4ce0f0ef6939293f99667744095c728d3ee1 - -g_scalar = 7b -r = 8e4a4f6321dc82a6d4d6fd78550418d24b3d05ee4295440514a9c3ebea80907b46b07d4a2a1018fe151198480c4c0b80, 74c462ed1a798add03babcecc25ccf338a86ab0f498f447b5a82af3e9f30f7e883c6ba0470788c9f1be4d7f7a178b9d9 - -g_scalar = 7c -r = b4bb1133ad9267aa51cb20d25f083167238df4864cb95a00bdb4385fa6f8277692f3dbfda1435507f9e5ed57d99f5989, 49a89c9cf7a12be9b9e99d533cfb098b9544dbb2d4eb6e31045ce25c5e93210c55a4951bc8a66567bf4d13ab4f115bfc - -g_scalar = 7d -r = 03b2dab245cf48ae7ad6ebad036703ac9436a8cf3450356d50ea65aa46f614e270f25677719d6ada9612b8bc3cfb44bb, 8933bff572f35ccb7cd5a74bb0095802551f41bc219187aaecf53641e119ab8edf3fb730ed4f55a421953d2a4117061e - -g_scalar = 7e -r = ee82cb5d4c686f3145940572b53625a29c14d45c4d73654245b97c7577b60ca7135cfd8fd9f0f5f0ee101c5ade346cdf, 07b33602c5e1ecacbdf3a4d1afba7f8cf99d6754e04af855f9732cbb4f41b9c31525eb38bfca96d3aa1136b6b0c47624 - -g_scalar = 7f -r = bbe34e740f395db4a92bb11bd6e0f09d96fde63874231e0feef28f34522c62792aacfa4c569604aff7753246eca101ec, c7e92a61e3948069f3d6832e367b2f949e29e339ad180b0e88d22a44a467c5195698bdbe018ad5aaaa6e59ddbf943cf9 - -g_scalar = 80 -r = a6661cc4c241720a0336aab8777a16d2f313389118eb5195c0dd449e7c1c39840f4fa5eff21af80ae484fd9f8258030f, 239dcab2a277ac5b2657eedda5791ce3b01f1e0434a02a6b5d85a0e4a022c7a4228968656461e382678db970a7efacd0 - -g_scalar = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 4ee443f91860144e0b7f54eb7e4cf44aa177ad14077777efcdc4753ba05068eacfc4718769f60e03c84f917203bdf6d6, ecff7dd78d65f38ac5bd6cde7b2c6d8ebc4f93f4a0c7614aebc958fab8cdb6ce511137d7436c1b541279ed4d42bb6a93 - -g_scalar = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = bab3aa8c60a8a7a71cd9c342e31644be358bbd6e8948b6e231811365ee61bc954043079cd23ad193ffec6674f65de0f5, 813054feed0991144eb2e364b2aee6d7c96a040173750d6e8957c03b8517ae8af7d0b0414439990ce065519fa375beb6 - -g_scalar = 060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 304eaea00e786d5f4d6a091dfab87b368618aa02c421c69415aaed42cca2f15037ba0db6f0f49278ffe3104b684456b1, 57580c615f46086e7f7fca496dcf60205928791809de860f6094823b7a70d421f57e3a19ad387a8d0be977472c114074 - -g_scalar = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = bd6066681a87cd4a06737e54f91d813ef972804fbd39a2bc6be6abe3b91f14827be330a822fbbe61bb39a17a7c34f095, 5d0bc923f9671d8a9d7f416d067e2c198853cdf6ac0511b07a93aedfa58af042b8206a8134afd68fbf88b2e5f538d56e - -g_scalar = 0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = f20e5b8a6c7e9f94c3bf31d408595dea5caacb6256583c442822598ac5d6878a19eda013c543171e9468777a2b389b27, d0afdf5b9d883c58b8c0d1352cbdaf23481a5a2f7cdc0d7c2bd47584bd688e0173ae5d0d2939aa75254897370ba8a1c8 - -g_scalar = 0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = dc74d638c785f1439114cdd012def474f016adf1c094b38cbf75bb57da4d6ac4f60262b5dbbb9e4cf3b6fd79dd3532a7, 5b843830271041ee8c601615cb08f34f381dfc0c636ea6b6552685b79ddee1f51f141878cbcd0d4cdea060d6a8d90bbb - -g_scalar = 0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 7b81ecddcfc2ca46b9e0718a467f042b49a6481891dc89ff535ee486e03c0851ae3ecda2761b94ba2d268da9b28bdac2, 89104b6e85bbff54b98c3dc02b382474382e3fee338270c7e4dbf739c7625e9bd44a2420aebbab8f3ae95ed0c166648d - -g_scalar = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = a24c76d1da73b71a2ce33c2eee858bc3f02750715adf71d715f1ddc63eb317f94f1d082ed0e418512e7d0a16204be028, 6cad67cc0a4582e182cfaac2a2ea7b24d11122a1a47019739f5bf5a67502de64efcf170505cf96129ef6a70a6c70c483 - -g_scalar = 120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = d061fcb5f69a732f7c30fc84cca23e9d1671eeea9772efc6276d435bd2141b0ade8b59ae0034465b3055ed97444bde46, 3fb7d83ca8bb65857e9a06f182c8cf961078a2a0431e5293f3053a22002f5f90cec08d256e800eda8fc734fb6f5b4f20 - -g_scalar = 140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 3ec851d706c4d48507b3e8b9191a320efce43e873cbb2b3faa299008a84ace074399615939ffcb3b139d9fef6bfc08e4, 4c71b7aa4df8a1b2ccb178a0b29be48cdd6f8b5134f6613758b79d01c439ab23b6a5dcb213c31d5c03d8a672a4bb8477 - -g_scalar = 160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0c80134604501d21436c61161861628a33b080bbc3350983e151f53b35fce45855b20bc8b9ca1f6d3d7718adaf4b5201, ec4885df66cf4d6d8a2448a43cd92f7582229794b6cc154c6976b0bcfb7c8e36d3962457332d7fc38597180f63cefa64 - -g_scalar = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = b82c99d2e7c3018092587306f37f0bed46d4729f1771c5d3f05086ec827e6cf877253434ae2c30f292bf8c4508359896, a7a413318961204ecfed795f2736bce61a1ad3eea5d782045c583347165c238c7fa984be994ddaf5ee0141dcb1684841 - -g_scalar = 1a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = e9ba9558a68b98f9bd1e67afadc744e38aa99096770fda49bc4bcd77827b62965a01e68261e78db2d859799609f11ae9, 008e70995c29ccb22189ee16407df414d5b2734288f2a5c00483e97c5cecb4b5689baec35f0d88b25c9d3225ca4c3082 - -g_scalar = 1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 2f6fb08031e6e76933cf684789a9d8aee4b51dd0c9f579443a5902cee85717c53aace28e3573ecf687451ca71400851d, 5ef2562d0c8012a4b8c457c3bc17d1fca2c932c9a2098f4684d76151965109ab2d73fef4e78096384bf3da323b78dad1 - -g_scalar = 1e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 79512b8991d197c27b814ed800fe704761c1b06eee7c1e8878b310ee8b5624461fad39ee9819618481657860b1637988, 5a3de830cc8f5386617e5957c5ed0a036f1e2e87d76bc70004873d713a22660b174b640c477bb5af60433526dae6f367 - -g_scalar = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 4ebd334b35f68229c85eb23d57d002931fad8b304521d7e612449c4fbe35109c72913696e37f500696a1e74f51e4de5e, aed4dbde0ef567dc72a6af75bbba88c0eaab81be3a1c866b067b0456757cd570c2b4da6e5463de2e7c5b86682df5acf1 - -g_scalar = 220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = c51c0559814f7d9f39d71b35a50c71074a2d6ca29d6b6d55e462100285a8942994ee3cc9bc3e8cc1ef3a7281fad592da, 7bbce68c1760111324e69af34577cf0c4a034b36f131cc26ee5a08fa45c69c446885625d46719d58a883c21a5339bcde - -g_scalar = 240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 381e5b521d3f2ddd9386a35d4868dbb2031febb3374661eaaed46bbc35052bd18fb9294a8cf4e306085e33cd9273818a, 8dc0511f267d5c14042707ffa7443354bae262ae490c1969f446dfa92b9dacbcb0fc99f49dc95af1a938a3a5179617ed - -g_scalar = 260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0dc856f4656e00edffe544b3f3263dfa315acfccee43b8b5e10e7ed2dae76c71a9f177e1273679c8fc9aea79a04464ab, 8c225452496c1d6d54cbbd4056a4924725cfc139b1fe79ec5554a1ebe10252a4f0c735fb63a36ab88cd1ac907cfad555 - -g_scalar = 280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = b4315ab11afe8540cf6ba7db0f63dc797ad61b8ca57dbcbc1f719f7036fb5a4ed86e85a483e43c268f0e1908fac2674d, c158a2710b6dbd459b70bc8c60d2a62455867b5645149689ce98589b9eab87def51969ef8838a51d0448e852425c4df3 - -g_scalar = 2a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 7c18a7a8fa5753e85b6fd841f76a7b01cf6220d49d0216138213e04ad04e93359c03aa457c714b9ac4645ddfc70e9172, 30528343eb43d78d4a8b8cbf5174f2929c3cf0cac7402d75b75ebc0c35720ce2f197059e22168ffdd8747f67b6e9d715 - -g_scalar = 2c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0005bca678d1c0ec1a7c4af600d31e7ff4a4f3afab047cdb8ce2db1f4645152c64ba3bc73d501e010b262f808f1915f2, f7468e8a92d281c71494c6050dc3c22c105b9dd2fc657b724fa387e5fccb58f5a299b1002ea9abdff5ed135f6fe5ebb0 - -g_scalar = 2e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 8f21250473e722c5d76624e1c9fe92200eb5e4ff0b57513b30bb969b7a4289a53dc876ac1ac8a2fc9d420780b42108d0, d07bda4ec5c1a49a8ee95aaec496d9c8e643e936e9ef5a002a6ab465048c03d103c089de722b382dece006c9e640a463 - -g_scalar = 300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = af51c5bbf42e0e7c92f031be99275c32ce5ab665d8d544e60b06aff65c27f5f6264a09f3f9288555597a26ffb4dc8600, 5adb28dd9a2acc9bb8c8a6df334d4f57fcd999a86e2ccad9e73fd299f93fb7dc583fba6a8473543a5bb28b061e37b36d - -g_scalar = 320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = f2038e9fe8e9ad7b08d7d0b167b00a8b732a3b217f4e0b07fa70e3732c9139e3c6dcbc31b570e7e381eedabc8f38b7cb, 17f1e19d8f8d4f1ae3a56e099e87e8a5a3933d71e9581abf1cc21ab87f56595e01b54b247251e090c30dd7d38fcbe329 - -g_scalar = 340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 308b37a8d48b9574d1ef46340be2d8415267ded09aa9a5c005037f26de2f444ac6d97d37e7a97f33c760823646dd14f3, f99e952f24f8bd3b126505999bff252f71bfb8bc0b80f3bb2d8adde62c39c75a1d5169d938b7c1ef102f7878487bad5b - -g_scalar = 360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 4ab1773e6c85c123d67aed02d15b1f9de20b10f1f1021adf76cbc49717204f9387590cedf4db6d03c3db1f37120b62d4, 3255a34b29d1067d2cc2f92027d52c47d442a634f9ac58d3dd42c53bc0459adfe2d7f9695073039a5c4e64b578618661 - -g_scalar = 380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = e9ecf6ce198c99f00f6c5993c82e2013e2f87d5e2973be1d4200e00670744f159fc75c0aec6afe4324496a8b7a8a6d47, 8f02df83bcfcb9304f24ba23f3d93d73e4273a124bcffc618e962ffbd0fbb134bef4b8c8325d1d93cbdf72058b37d828 - -g_scalar = 3a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 4a7788de2d65774a2c8a2246a3e93b3391e674f5503557f209fd4dea45f979bba7f9f7519579f6d40c595629484cba20, 892fb605ef305ffae4751a325d1088af129a351bedd41f381d7f2c58f5f882beae702203863b049a9594c59414690f4a - -g_scalar = 3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 30568303868326be1f28862ef23931d5623d44b9e4a0bb425bdd4382a7b62effca4ca7cd5a03c014985c8f4b0614348a, 6d990c16f6f5c9a42f50395d155eae927b32249baf3f0dbb62b74879b1e70a9af4dc02330ac4a153850d2a0d82e76f04 - -g_scalar = 3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 37eea04d226c0de31df6b241f5ad41bb711e5b378c68c6d120f84bcbc82761b390c700aaa28b9162a408aa1b48819870, 09145c9f5e82ee78456f2ff137a46fe0c8f8bb0822ed1ddc6b1c960e7130079f628ad18ef2cd3f99c2b06d8b44c41c2b - -g_scalar = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 7fcf0ecc91251b6e64f27976d5d7412b1a6ea51a2a883b7f340c8ee3ba4a3301ecf10abc47bb619e3afdee277d221ab6, 89325d7a7f96e023d373931e8e7d712bf08398d5d542676dde3b73d6ad61b2cb38e48b96e2e13e585f3f8f41365b18b7 - -g_scalar = 420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 7e3e4b94ddaca7970a21251f7cc002a4391e974f262a7c900fa492995a642da315257c37b24074d0000d342aee928391, 53b272171804202c5c1d316ad8ab1a429fdffc17c7f4d0572b214816ad88cd68bbdeef04e8c08e47c80c4510743e1114 - -g_scalar = 440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 63102e93ff029787e2a938890afc827f951f92186359cf06536c999ce295c45100614bf206b7e166eb2e48c10bf4e94d, e6aa9eabae2ae9e3487ce890e10ee83736b7e9711cc2f3b4c0934ca6c86043047354df74928742bfab297c7d2ac89645 - -g_scalar = 460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 5508188555d35077eab1751b07c4cf3c9cd6be7b2601743ac8eeeb6ad5b89ac7e6a752c4783e3da875218ff22509a1df, 807893527f1ce4ef7f53fe8406c6a5ce4cb21d96e11e734910ca143b1285e27ff265d0abf1e40048e315baa104764080 - -g_scalar = 480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 3838356a53264b8a5239b5c4109797d6ae7b59c5fbe10a477fd7fd8eb3c2eff77db868f3a950dfa26e7a578340517347, 25ca45046cdbe5fede6af0ff83282fbd3df64ef5a06f3cf3fe1aad846241a50a67c86ef46958fa2c8df8454c320a8c5a - -g_scalar = 4a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = f27d64f3900000b28c140f1444bee3bf74ae1bb86f57ac995957f390ab2f9f38b6c4ad7e6725e6bcf7d0024dbbf692e0, 36c1f5a7f9f706f442cdc68447ffa0369a7b2a986150dfa43b5de0af2e50ca8f1c6441f777dcc42105df256b72fdc686 - -g_scalar = 4c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 1969eca437dd1341ca98c4364aaf2f73c0c88af6aec23cd24bea31ad623e7e55101f055acb1b1cd5a319340d6e6c0deb, c0213ec56844da05a7e5670079911cf9c3d1069474f262e9199ec0e93d6ea9c4afdc99532eaf5b086b03989f97866dc3 - -g_scalar = 4e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 2117cae94f663d08e5bd0119ed5225f74fed82fbb2d8dbdf78482d89dae531a4ad937387f2e050ade0732f6de3a1e252, 72b9ff99a67a5bac399ae62b881be3145d5e71b8e9b5b6a3296b1335bf341f2c589e22809e86c55a99b47ee3ea1f9b78 - -g_scalar = 500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = b942add81ef8465b860578cf416ccf69f307823e718c8aa3f9fbce33a82d37361c77a3054f1e0d095adf3d9a111792b9, cc7a9ceb854fe9da6bf6694891a626321f521c2dcbf3ccb8f99b9a8dc09da90be6792eefb01528a89ee0cf97cd9472e1 - -g_scalar = 520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 5f3fe3e3209d9fc047f02c4abc4c0e4ed15761fea5957703efaa521a05781b37a23f342d40f5ab43c72957c2b56c62ad, 8ea834b98cbc794316670382932d4183c743947400bf71245577e542aeac3cb5fcab0ca1117138ab1c1598df561b137b - -g_scalar = 540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 84422ba89c2d7eb037b11137f15f0cd229b0341dafb73ad113fe0588ba057fe284c5d6a71a50c560fc9660a3c8808373, c88f0cf685c54d31535e8540116e2db870cdeb0c9f242a42908895a9e02d77fcd7a8303f08b37a840b595ac52554ef7f - -g_scalar = 560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = d2fcedcd2a1986bab43adf697bfedda152ae359080ec87ec825104bc4ec82e0f6dbc484f2356b6a44dbfa5831af13e99, ad9e025b3e6da3e05f33f11ebbe4c690f088dfdeac7b2f9ce25dcfaec32d5809f74d9267c6fe4f5734951159045ad785 - -g_scalar = 580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0c5be4a1ab204fb0ab8802bab8da8e68be6bd7b92c078aa8716574c5e9ae3da03d081c0d7f15c9e3f534f145e2290eba, ab2bc89575ba5c996b532891e6550d3c855367c4924ec2d29c6e2ce0bb5cd2fd3929d0d78fc9b7a5ad25c5ee0d3f12b3 - -g_scalar = 5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 58ec20b5fa1aa22b08285f05e94af0d0e9245a047205187c5d74a59ee05637183b0b3ca6276cf8c41cecc6cd72c1dbda, b0e13fd36ad9560fb749ceaad9da4802cc74af38ff812ae36757a5c06d40592d0bfefe8d9b5c84757d367150c1220085 - -g_scalar = 5c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 71d663c80482a61b9e9c222607f4b670c77375da47644b079d86bcac8b5c43fccfa41da6f89ce836b56b035e2a0349ad, 46115292ae0c97d38a2bd7fed4dd03de9b463559631b985009e0cb2a7ca7548bf1cedf7e48832b5bb423e739ef237431 - -g_scalar = 5e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 1ddaad3e57a8a6ce086cf9d3c08d007d4980b91eae21ee2813a6eab45a5f233af7bd1613d7e0ea774be55e045320c643, c16aaed957e5a62c33587da0f82147cb54941191f098f87980dda6bc17c4e9dc4da655da00cc3d4107d0c19db8c6b532 - -g_scalar = 600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 5016c8533573235fb1fae2fbf363100ac12df68cce52defb1004254501c4e17190cab0eb9d74e3f6e44e3f864b3759cf, c1da40d31f5867b241c7611ff54e48765abfa961308772e9324985835a4e118e8a20d42317f84ef28d4deb661d922e9b - -g_scalar = 620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 976a426e7e387e5c86346adfc17b570aa537fb6be3a14ebf219a097cca4d32e7607683d6d30481954490d42249f884ab, 622cc08030b6aefc8bf4b8321496b6541a6d9ccb5e20adea3407694184546e81f870516b4b009441cdd13f0664fa241b - -g_scalar = 640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 972877d5c351148008e952e365e5ebabea435fa0e9ceaf442a773270df98069e7dea27ea124874854df02a7d3088aebc, 7d5f05a3faa1be224b72a1e6193547517d9878e811c89153bbb792e2c3225f20e50abe68b8c7c796ef5685f859a04cd0 - -g_scalar = 660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 9c3eb2bcc338e60ca5e4a81611e943ceea32131487917fb3ff4d80e7182e7578122d7b16cd1909a4a9c5286d78c8e4f7, 3a8745f4519dcddaf346b75a9538fb01980f87c8f605c9584c9ef41d9b15d60be1c92fb8b5217ea220e58adc72476919 - -g_scalar = 680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 762b3406c6577d810accb4a7922d3b253a998cdcc8995cace659cbd6ace07e138540213ea7a3f2f761dd7692f27eed54, c27d13df98b867b536815de2c724284ab6d72f7ce6490808080a522673b98cd37f78e02d8cc9bc5fa09db4f57e043740 - -g_scalar = 6a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 8df49d947bc531c51cc8fa418508b201bd7dd40b7a34781499b5020891035d21e8d66a73fbc1180d5f29d3aaa7d9e25d, 8db14a1dba6f378f3cebe7e079393df73fb41991aebc0e3b56c448174ae09d13854dba16f2f6917f572cc562f0c8665e - -g_scalar = 6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 490753350b7e4afcb041ec67cf575de55f49ef880115b9a54771281390833f18b5e8876c499a1455bfeffd5356adb6e4, 868d06baff60e943fdf76899c1e4f8b433ee16e27993eed6a84431a6e6ed51989dbb181edafad9a5ad4dc4a15f0b9f24 - -g_scalar = 6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = d93bd14b4b11ac38c8de9fdf7506b004184b98d7ebbb8c4dc3c2cba3492a416a313c0cbcbb713c2501b7f6985f7f481b, e8ffeec6163e34a582b65a57276cefd26331de3919b3882df3a5bacc08ece1b892bdd75b9f6e7821471119db51bb7d4b - -g_scalar = 700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = ada548c3b46f1e376b9fd3f7f19df4bc7f7009d735b193cfd8e497fff172c7cfa80a8c0d2771235b46303171491ccb92, fedd3a7011a6a30f33803a10b77840dc29a6d5d779b8f5cc2a121042539eab95ef2245d6ae78ef9987c6eaa9c7a20270 - -g_scalar = 720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 2d56966a409303d605de72b7f70a3994bbaeed33041120a96122ec75d132b62c870346945bf287ec264b3d9d11eeb9e1, 42b1ee108ec7069ffcc4a5271566115518cceb0e66f4debfa90f02531e45559aaa2c0e009a84256bb5d2a629e73a0b47 - -g_scalar = 740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 24ad6b0ca28c80673f16d1ed3b5fe8d68ec00d9fc04d8cd5937a15f52a67b12bc1413da46682c7795d782a0778664144, dcd9e4e8120b38813770e54d16bd75b2d686eb7239384e157d863f5b2ac0c23862c4c2beab2fa785dd1eecc532732b19 - -g_scalar = 760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 326448a0597de5b3e6361a339e0e1c54fc3e322c7496d0809030804ef95021bcd40b4963d24a2b6eb9f1b4ae3e29ef63, 0252a9b99e9793e560cbc4f2287857e213731c2735ba183196af3f106cc7ef543613bcad0c6218776b95c41a2c74527e - -g_scalar = 780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 20b358444182aa555d43a4a6191cc808919081881990c13c49b13eb95acc557287bc4d75b1baaa7ce3052838df5147e1, 14101ec7326c4d3885b6c505470fbe135db7d06920f68ec58d130b3900c5ae9ec6e6e061722e91e770d49a4a670b1fd1 - -g_scalar = 7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = f04df323cee02f61cd5a7a956b1f77beee55d9e0594c44ac013ec26cee34c1dc43011b315c10da9bcbd0f599c8e64d24, c4409631dc14adb19dfe638a11b9f3e7cf019abdd3531546a029482b423ca901b3c436c152ec76c9cd4026d1d96e851a - -g_scalar = 7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 010865380377ba8f43a195425fed884fd7323e01a856ae6b6c8e22676e97f5af75921e487576c3ddeef03450e10e8018, 210d6016e25a2073ddf723ec0a11fb830c8d328bdd918524ae098b7f9e67bed0c6fce58bf0fd42817cdbd06ac82a8f67 - -g_scalar = 7e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = eebb047e6d7c9413a7235359a60a123952d9264a3ba048ebbfb45e7b89486d643ee8c19f0b66d8180150d085890f1e7a, 7ae63ab9d214faedcd833fa6420136d7dda482d4320786f171e24d58264265e0cc43f5763d6f21692afe72ea99eff33e - -g_scalar = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 60ad991e4e4eac458e5c12139ee4718f77b9b6dd6816b0099aca885c1a0d58e235414174e52691403c90a59f85adde98, 5e9bfc5c290405122e7b49c76f7a882f5f99092d42a87e32cba1ffc75eaf3eaaacbf4eb25bc5fd2ac00c35694d71f624 - -g_scalar = 820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 1f1b6cc936184c1f444217e60b4b3953db3e9066d9772914d5968b29ac900f4c39dd0be4c1125a63782903630deecb3f, 95f412236ee17cb99ca45b884179b279df74bc7c4b15781d9c94aca42b2ad238d4d435352c5b300f016170c37e873b7a - -g_scalar = 840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 9db0ee0b907f2cfdf5b944c9040b7ad4d4447c1b20eefa54e8804ab3329a0b9a9713a5e04894f486a31d3524b295958d, 1e7a7fca9b447bd44f952109f1172bcd2b47ca0622d4deefe0663b5ab29c3cff3137241ea83517640b1a1f3a5384a999 - -g_scalar = 860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 2f6bdb104cbbe283f9c8e74d26b173fb5cd20671daeb6361192707699fd1661b8ad7721233e84ecf88f2de40a7b3fe4a, 247805475c8c8aa5a9c90bdfa1886bae3417f527a3ff3a510c10b90efbd02188b3df0b25e67e3852f8c33386d8796519 - -g_scalar = 880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 6847c20de211c90eed3a6508ea56be90d9b625dcf9ce0cde6459720f8eeefff520d0c4740dcd66f6c9898355ecf2a473, 6c7c065add370f7749cedc634470e754cac8f277d145b8313155874750209b4d9222eab23023d16e36d86bed71a73cee - -g_scalar = 8a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = b1516b4697bf25d1c1c0468307a8949bdf7187596ece704b26adc1564300df17ec96212c96174bf6bb114c0747f74319, dcb074825d92d8f2c13d11c350c7aed054be86810945e3b8c23ea6101f426a499d93d21a6664d9609d83fa5148b60820 - -g_scalar = 8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 02a37213fac8a477162aaad842f412c5aff5505f1070737afb8a08285bb5202d1ff2549ec4c9347646a95735f8171804, d7aa1d2378d82f9aa2006f207e6ee867e657e8c782d04913373a9039db1e5a409be6a0b29fc6678705ff9238932f08e2 - -g_scalar = 8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 80e70362a61f6b8e5b9d91d31e8f6424ebba130bb3663e1b6a9f149f55dcae398360743ca827378dfa8cd197722395eb, 0e1d6bd572a38c9c5f50d1af56f0674602d7f0008e445809a7e00178e83b6101d09f7ae147cd387c0f569fe2df0d96c1 - -g_scalar = 900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 3a34819d7eceec8835d9fafccf45b75b22bbd01853e14183e09f04e6223a0ce868ff316015c6f7f5fa070e22142403d1, 335c8d36b7784e7c19e12d0565e800aa8e77d9f05f7edc6a0c8005659eb2a79a431036d5841d1505d9cf7568d33262d2 - -g_scalar = 920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = e70634860b99a9811d923a955e2994097a0a8df4a85fab6ec4a354244dc0e8bcd1b7191b3cfdbab92ca47e98ac1b85fd, 41cf4463651dd58c61df35a2872fb3389054ff7cf92744f7ce7b2c34274700c5382c5952a9ddc0372d6a573bc4066501 - -g_scalar = 940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = a6e5585e996d20338e857069e462cfa8f60ce5d991f1d4875c240cefa3ef520288322d8bc225ce6edcac39d87c1d9f4d, 1bb28be140089be5f8cb9c26a5325b8c74b14432148922915343a0a2a3231eeccd90c140f907ebf0709675a556281e6a - -g_scalar = 960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0a14f23eb0470188da64bf1e5628f2863ba37c232de1294438d28dcfa9312a5e224f404933c384e47b7bd39f39e00e98, c42dc328091678ee839334b1f7b077cd7f81c9f49d1206a69ce1716ab4aaec2b9c8dbe79044c3f2b2546b252c1e279ef - -g_scalar = 980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 6189f5e41a991ea2da296dacfe7d778f186d3d934f810d8fbac785aeac0939e3c7c9e5f1d27d1f312bb6e7ec3092d0b2, 6f670479e22efa03720cd3908d1363fda447a31ed83044a609d718487196dfa804aaf59a88a4dcca098f794e9634363e - -g_scalar = 9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 1dcb9da2e49ff45c55a12128a50853d180f745e27f7209ce78b59db06f2c572163a394e1404b5b23cbb76478b52110e1, 2fb48e2c66241e371d10aeb29d2f0d8c854417e329d324feb5951f413db491f31c2d9362850112c8ca76464c896fba5f - -g_scalar = 9c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 9bace7adf8a7c0bacccb784f77921ca4d56ec8f223a1656e16ddefa50589fd01f3dc472a8e2c58e9aa452e81cdf60f9a, 5a446de871ba27a5c828fcc77a21add6033647c392a209513599817883ce8674a70c0579c34e7cb5c94ef3ef51f052e2 - -g_scalar = 9e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 7a51381b1772fc22ca98304759d16a8b665870899d73fb3bfb3339ee5b1cd14117a70200b441bfd0f943b61f038af8d1, 69177896bbe85f1969ae68d02e13af263f388dd5b8607a50b75759eb4663d9a45d1ad5200cc384a85231f7e02c6dd801 - -g_scalar = a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 282358aa2ff95cfe76ed6fe718bd01b79f67567fe0a7ad0b990e3425ca7b8369b69e308bf8ae956575cba9d530a3ada1, 54d845b93d962c14b89f3ae81dcd916454f8664c26330782969bb272b6a7b8f989d1533fccd67c8128d2ea41410f8841 - -g_scalar = a20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 6d7604cffe8d69d781c5409e908e92f8e7dd1034ac8f1eb78fee1bd6e78c1828a32243ccb026239500cce541ad148e09, 904505603fc9a558c5f565033265f4f50922057669559f2d83dc4cd6bb887bd193403956a36123ec210830de2eb271bc - -g_scalar = a40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 30369ea0ee12356a6aed101a5295e728e964dc9c9aabc3fc885253779336b2b939b1a9c697b17ee608ba5b61fde4ca03, aca079354468e4199e528623e854d7cfd16c7a85a1a5e5043b2f7aab5590750c3a769ef0df9f47c0e081e022c8e80e5e - -g_scalar = a60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 6f261a720ebf3f5d30519b089ab91b5eea5b069985bbf511bd196739a548a22078cf85c78720ea377868bbc67f777fd8, f6f0e6c179d0e8c66d82e4b6a56ba80bdc94cf7759426145238dd0a4ee913d94d5c64a5e614695e2776b7343033e612e - -g_scalar = a80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 33a95de702001e8cafbf32372a69ad0d093c3dc2769de89117779f5e7bbc58fef517c925b79aa0ebee521c0af93098bf, f259795816fa1b16e5cd9c39cab3387104f0bb334fca052ff1c069251604a646b379a3f425bc7d9a3b30afc73410a2b0 - -g_scalar = aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 35edc49ca54239bd0adc36938b9046147f82050a305601877ee84419f5dfa296664ca68b46f5d9044033ece91c1f582e, ee2fe77309f54b6071c9dd5cb2a538e9b04cb2d370c923cfb180f8055004fd5934513baccad673e88e0ca3ac10854021 - -g_scalar = ac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = a1cae78c7b491c4d752d98f6018d7c6455d40c1b2eb7f0fd55f7680599440d4bb16ca18bd8e94e49291d65c801189d9a, 7f87b4412a9a02720deaa373e92656f4583b336aa5683ef8b8f9498dfaa9451fbb48956a3ceecd27898fc8c78f66b8d3 - -g_scalar = ae0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 3c9e1bb5534739e879ab7a5bc5b76b4fbe21ff8d02a855fc4fd1fd2cde268c8c809a6b6cc5a362e31ee1b6033b28bcbd, 9f8101706c09daffbc05ccc588e874af045f5abf2690cf6c3ac1c2d3f29402a2c2a2b45d85a211d06ba4d9a7a58bbd09 - -g_scalar = b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = f1d5b458dc7dd67fd6f1b8df647cad2f805b4048e097047f15b28ac7b871c3f3ee702764a35d24ea8b2fc4e96484fd40, 5f6ec65d882935e193ad20e74cbebf1a283ed89d28f284f4af14751e95148b55f6185ebe21274faf324c529c25148803 - -g_scalar = b20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = fce39cd1e1a9d1708bc1da4093b5b983b727f6a0f7728c1ae7f34f712b796613950ef6a86c660602cc862ba801631411, bf09816bd0a0afef4270cd9a7eec7bbb142fefb1e4319697c10e9f0a2c74217759ba530e18d34abbf19e723e9493357a - -g_scalar = b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = f08cbfe771c4d06186628102bdf579e6675f12cca4fa74a94ebfbda7cf3dab12907e4f38199c51764b0c7d0c69c284cb, 83c09192eb103fe01c071597924baeb18d978a8110d1e8817cad28c370c0b7bfb6d0d48b4c7279159dde390e03bc1cb9 - -g_scalar = b60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0e1f061a92f572f08000fb5849e023a3884a0bfdef058b6faa278acb01a177dc1c919775c21b9dde3169bc090cc65977, 189092064329b28b4e5917c682138a439f26e75ef93913dc44f8c04af09a402421e6a59d820d7e6d2cc96f2fdbe0247f - -g_scalar = b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = e4c35c2244ab2fcc5bd45adcdc6938b91588c4712a3f012d38a1ec5ce16b874de239b1d404b6fc45494dbd2665925506, 56eb022838caa90104616318263ea256caf679765bb0fddf3a0e55c7982a492892a9c3b2144fd3ee87cbd9ff887108a2 - -g_scalar = ba0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 2d2542568fd9f423f6d41b65310fafd4a5591868498f151f764ab40ace8713c9023872c88f2d14ff40fd181041ad343d, aa4016646be126ec39dbfed5502f7fcf94945e512d32ca7a20bda998e6d6f6e5538bb2f6e19b255d35a163172fa4ee80 - -g_scalar = bc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = fd96bd168940c7665927968beb0f6ca5717c302a766b69dad2d9da967e155bd5323bd638835a4edf2f7de141a48da000, d35a825190e43169a836a6ad53b7e6e988f31e162314c0ce7e639523a3d57aa84ba9cd8bd870954ff89f7539a334fd71 - -g_scalar = be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = eb7c7b187673dfc835238e9ac5d8b3ccc2493d3db86726814381646777c6b7eab211af35bed7aea0a101c2f02838469f, 8a072506b9ede54cf5d581b34cfff8097502808145cd4df20fa690f0143b29885304cd1869ee2b769a08446474ea8788 - -g_scalar = c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 024cdcfd74a513932dcc51180f94f4d767ef024eb3dbe034f4ac2b677dec20d2f9fa4483d8b4d6bcb3984b176c0f3509, 053113221defbe00a0c0fe6040411c15eccb0521817bc8d1b00ce5567062cb0bffc18f81d3a7414ff1c0fead20e7abcb - -g_scalar = c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 217e60f334f621e52a4d3ec6d979444c99758103696866db3ee3d96da9de154c65382a2312055ff2a6730cb7311cc98a, 2acf783576e3dd6ef3d9c0864cd087f3366b49a4ac4b2b6c5e9c62063177abd6d7856a5d5d3a2fbfe62886616bc56f0c - -g_scalar = c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = ab3ae700d1a378c565bd03584590bf03605e7a32d2e2bcf1d69b7c83177305ff6f206002d878a97a74faca8a6af7e742, 7708617f1989244e1e704c3bd7924df112c6d168e67756b182a18f03492b01d483625ae0a7c451c6037e79028a929b0d - -g_scalar = c60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = ed111a7a3bd0c935557d173489ac563e8476e71696aae3352dbb2f572373797325d250419c736f9a583dccc1918722ca, 58d3857219e15bd18b377061a65f4b1c2dc9e0349fb5102e473a13397c60ed02ea17b3b814dd3ec3a47ccef10b0615f1 - -g_scalar = c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = d363e435d58d42d2d9f3982e3ec5f7ff162cf27f36ba3ceb1ceee947c3f392126a55edf1c354f4334c98c61d097bde48, 0a4f9c10525dbccf89d23e8b6de529945010582e923c1acd61d94ed8d7c27fe7d916df56ebfbf51c2ee90d7bad36681d - -g_scalar = ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = bc61bbaba368819180d7ec75226d534da72e9ae08144a60f51e4475e9f97151bc404defedbaf8b42178b590f1c477d9d, 730cd43523c6c257e43c1ebdaefc387258eaff8bc9a218f7f088ec4816bdea361c74b961c5a091ddd01aa30fea2aea81 - -g_scalar = cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 218e7fb1b71a25a46888444f98a9add79be8a33f67d61b2ed78ecebfec57d967a4af7a2d749862107778fad7e65573e2, 68fefc83f624665a29c25cc3fe3bdeee3a37965f71fe847b23692f85fc6837ca2f8610ad11a52cd9f75a6b795f46323b - -g_scalar = ce0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = bba8c7b11cc64bb5a6581582454dc4f3d92b8ac4d708451051375d6af7acf0bcdad4e4b8dd0ee7526c79a60950a78a78, 9497fb38430bdab3d55200ec8918e0d0587a6ce79d8b271c6459e58b6aad83062af531adaa50ba8b6b8c42c89a52527b - -g_scalar = d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = ced5e4cf2b4313900490c970f5aa2fc4547bd050b48bdd872e0bf749e05b18e763ad235fec1ceb74e222eba4a4dcefe9, 925a8e7c11b85640d8ee724f8d890a9855f7905e50510da6a4ada2305037fce844b72442083b57d407d8270451d2898e - -g_scalar = d20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 5526e694909f969fbc6d93d12b1ecf5da54322ea0b5c08c1d151433074d7b4608b7e7552cfc6aa6e17f7e937cdf7bd50, e8d38ff491dff6592d1f6672746949222745021fbc62869644b0df3d2132566a477480ecaec1966d7195a9a4726c431a - -g_scalar = d40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = f79e2d39b2e8fac1bf3cd96c034d021b15245ac616c11ef494035a1f0c82ab81c749a6a77709a52b8357d8bb460e77b2, 6cfe44c63f488c2e89d0c4c5da7830b316f34bdd553a8e68b2584aabdda9acf2341f9b53b3143bf7387015194b6cf1bd - -g_scalar = d60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 7bd84d4848a7403bb88ee110d4c2aca40e7ca13cdcc93ab719e453d26360d0b1160eeaa784e7e36db3ca02e33c34e954, 77eafee6b4388e98009e51eb2912e1776d2a36102ea95493d118e90b7413e79a631998ddb8d0fdfc2e8d3d031ca838f8 - -g_scalar = d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 058ff1904c89c9a87b6e3e4d1f54ef38a901f2551406ec90b28f476b59a7eb995ea6a57c699397bfee536a26d4bcaa59, b33ea619b01958523e1957812ce0f9693ebe84466964b9ae6181fa1675362f5dfe98793145e142685690fa10fca546cc - -g_scalar = da0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = b5f1a6c4605f84ccade63185d292887e6000e8b97de5f75dacdf3c75960857e5a56359b898797f27f6666dbd1e720925, c44f3da9c30ac7611159b5ed472b66acfe60d8144ec4fa790f0977b76c70738cc26cfc824b2f4be14c77f69461c7e0e4 - -g_scalar = dc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 13db3201919c187099c2ff0b948ac53b031fc087255e8c5eab4bb08268cc66781f72c1f8911316f6eef402410ec537ac, 2221798b9f4337d5e08e4213817ea56033a9fe40bd21effe748d2e93d97167e2bdffa226ff7a44cbdec81fd312057a3c - -g_scalar = de0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = cfc013b68f5c17418ca6fcc4789fbee8efe3a068daa3ed3a85ce557932132eca1c048aa58f30fb6a7912ca4e168fecd6, 68c1cbe20070491721f97889d9a0fb29499a28ed6765f23262c2ddb7115a89d837d96dd573be5978d1986f75e6ce6f9b - -g_scalar = e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = f58b321ed1f9bce830bf1ee34f114abc72483dc5b3e1d84f0eed233cc25c696a5e9abf67d640c2a1da828fe556467257, f0d0ced355035432d8afda341fa2f06decf5649dfeef88629da43ceb72a982dddc2f105e1e453229cb26564c97524f33 - -g_scalar = e20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = aaf3726a32ec147e505f5eb8a58e699214f3ee55fc5144da5629e0626bc5035c0a3de8f6666dcfb1695089a73532e60d, 1732ab634996103eea5a145d3af12f79b86e5b4bc6884f242e81ff821a1d8e28f49ce51b7ea1eec7496fef2e71eb7799 - -g_scalar = e40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 7f517c9c01f3f401b21e275d8b991b2903c6831675f0f13991217a6be34fe2e0e4d168e75b0b727bec22bb32205a5301, 8f1fd1bd5716ed9b08647a158d2ab0ba242cb06bbfd24bacb88be15c7cc1367dc5470808504514b1bbe95d19e55e49fa - -g_scalar = e60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 8aed67b865bac360c6dce3bb1fd8ee17442ae6052b0dbd5d807d8c25d5126552b050787598a85112aad13b2f80f89c8f, 5762947321262e1fdcfdd945855bd37a8b89bba354066b5b6859bc5ad6787215a698c82256f8a4889641c91279038efe - -g_scalar = e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 1690687e164c44ba8b5101310dd4e1d4b120589021649255e7d94f4697b97d7c243622f9e8a47507e787054518ba5236, 9d3eaa58c5b0f8e74d2cda1c81cca7deccaddeaf391ad03d2aa11707c463a975fffffee70a684c3d65bb4d8cf100fef5 - -g_scalar = ea0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 152fe43844ecf2464c549c0e5375bafd29a9b8a5787c26f8979564774ff41b268a370b2f4897efbcaf2c49c193eeaaeb, 90ef55d72e7302ed5e5b65408484a45a931392d01e03117874a6973313129d1a10a3f1f5b62aa404b45da2103332ff90 - -g_scalar = ec0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = d4b25ed3883ebf03e1ee7508c3ff73564f4576a12c9c77446bdf53fc46c1f31b3024ce311a7194613d92ecc18f8802df, c7edb5db6c742e1b6960312ff19fa66aeb82b33740ed314336e175265e9693f5376ebbfa11ecefa91dc46052420c3ac9 - -g_scalar = ee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 1a0ab3fe3e1aa3b2da05dfc0faf576dcb6743901254cca1a54fe2ed1821745a31e6d2cc15044f8e3aed505fefec299b5, 5c070feddbad43935b066cdebe027cd079d50a1f256ddbe05e3587f3fa6333404dca34fadee620c74dfdf356b6434dc7 - -g_scalar = f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = edcff8331d6dc79d7cfa71e1cf1cb8b3c11c95a22527c1ade6f0ad9bc0579c3e593f085a6dcf56bf5bfa10cd1ca459ed, 79d53dad0091bc903fb148b8d721d034ed555e37e2606ec054c38b71be3a107bbf620096144e11a0581c4bbe432521c9 - -g_scalar = f20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 91d26e18089b6194c58fed0143bfa89695f4f8a7c76e93579b34ffa032e7bad15a5e1b61f59698d9f12d87d33dad94a4, 8e5cfd1643f60ce9edc913822c32d8d857d63f10b73137d07b6bc3fafff00c4321b9d7a0a897a35ac218da26d62bdedf - -g_scalar = f40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 4a95f7f3ad4777a41ee7797f6590d0ecbc2c3b8d7a81382003d42e96afc190c3887071bbcac96dab4b98cb69c5c8a182, df206f19be8f2e7e1b00fb28a2171c8b759fee1c8b53025af9874bf6974c0a8e7f8c6751ad78dab67a36de4e2a8d2736 - -g_scalar = f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 92fc21e8098c5b74dcce4b866dcc347a56485fc5055a1e76d2413d03360766ac3a0699eb49cb60f46fe114183c5d5268, c600f4375b6eb0c0b53e970c73c2308a8a45d99a9028c820b1cafe29b04194d9960ea3a5924cf515e18ee91f68707ae9 - -g_scalar = f80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 0b2d3d2ee01df4e90f17d421a6542ac0bbf2d5477007f2e9840210ee61ff9d1e7734dc91f8fe7a42e6bbcf0bf8ed6302, 633a2ac888531d81eef1c6710b09ffe22dfa176cc44153bbdcfc96ae6e50d8368362f7b1431106b7520e4fbb84f3703f - -g_scalar = fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 051860f8db9d37b374ddf359c387adeacbea730d7b0b1b3dc9ef099a6d40b18658ec13e188173f1b430f3082d997bb97, 0879ac02fd3f45cb6abb20c30a400fcb8be482395c7d44222798b7f0a1acb1c52dd2fd248977979ad65443bd231491a9 - -g_scalar = fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 977b4bce597694b4780ec65de871b7928025224f7ad39d9aa441e5035bcf0e19dc504f01d3ce296729262b6d7636a78d, 37e9158235c16a0f6f7f2fc47d31bf61f5da63e0f8f90368b669c1d60c34153a1cff87ac9748b10ee05eaeb87fe3ef11 - -g_scalar = fe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 75c5b10bcac05c018d3e2eea122e7ff2b2f9d05f3cccc6b797a1f8404db70676b7b8f12986a52261b0428d6baa542b1f, 741623d5932bbc56910fe7424a0eaa765b464e18535a5866c6b4571c54a598e1c51a6f08e6edbbcfcd80f0d9b5def90a - -# g_scalar = n - 128 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f3 -r = a6661cc4c241720a0336aab8777a16d2f313389118eb5195c0dd449e7c1c39840f4fa5eff21af80ae484fd9f8258030f, dc62354d5d8853a4d9a811225a86e31c4fe0e1fbcb5fd594a27a5f1b5fdd385add7697999b9e1c7d987246905810532f - -# g_scalar = n - 127 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f4 -r = bbe34e740f395db4a92bb11bd6e0f09d96fde63874231e0feef28f34522c62792aacfa4c569604aff7753246eca101ec, 3816d59e1c6b7f960c297cd1c984d06b61d61cc652e7f4f1772dd5bb5b983ae5a9674240fe752a555591a623406bc306 - -# g_scalar = n - 126 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f5 -r = ee82cb5d4c686f3145940572b53625a29c14d45c4d73654245b97c7577b60ca7135cfd8fd9f0f5f0ee101c5ade346cdf, f84cc9fd3a1e1353420c5b2e50458073066298ab1fb507aa068cd344b0be463beada14c64035692c55eec94a4f3b89db - -# g_scalar = n - 125 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f6 -r = 03b2dab245cf48ae7ad6ebad036703ac9436a8cf3450356d50ea65aa46f614e270f25677719d6ada9612b8bc3cfb44bb, 76cc400a8d0ca334832a58b44ff6a7fdaae0be43de6e7855130ac9be1ee6547020c048ce12b0aa5bde6ac2d6bee8f9e1 - -# g_scalar = n - 124 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f7 -r = b4bb1133ad9267aa51cb20d25f083167238df4864cb95a00bdb4385fa6f8277692f3dbfda1435507f9e5ed57d99f5989, b6576363085ed416461662acc304f6746abb244d2b1491cefba31da3a16cdef2aa5b6ae337599a9840b2ec55b0eea403 - -# g_scalar = n - 123 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f8 -r = 8e4a4f6321dc82a6d4d6fd78550418d24b3d05ee4295440514a9c3ebea80907b46b07d4a2a1018fe151198480c4c0b80, 8b3b9d12e5867522fc4543133da330cc757954f0b670bb84a57d50c160cf08167c3945fa8f877360e41b28095e874626 - -# g_scalar = n - 122 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f9 -r = d109b62984083890da5fddab7e28aceae3da87e136a2812ddfffe0dd4cbeecde89a9a5422a1a0fad53b912fb21a3720b, ebbee398404882a8094722669ec58cc4fd488003ef88503893198baf14b2b31e0f1096c5d6c0669988bbf6a48d72c11e - -# g_scalar = n - 121 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fa -r = 79cd3f1e3891db8165df3c959329f7e0c29afbd47772778a6c33d5d6ba6744e48c9a16e3a896ab1e5198ba40189dfa8d, ee51125e39b2f6e9b8c2f20607d9a48163e2c65748e90de46aaf85ab51b276790abfb09316fd719d355570f5287bfe64 - -# g_scalar = n - 120 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fb -r = f392f9632f3b0feda03a6787986794dbcd411e349499fe4eaf07a03eb8994b40d3259f2810248af41b3ea621f3c6f15a, ac678a7865e25b379e40a6c0acd1f133c36985b9b3c8225b33419045c88737c67618c264ab283c770c8e99083f75edc8 - -# g_scalar = n - 119 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fc -r = d2fc5c57998b057713167fb8ec9cf4cda4630ba1875fab27cd55e7b421cf9dde59f9078dab73bcc4732595ac7329d8d1, 4e9ac9d775bf5a3265e44e536dde485c146135436ef6481a298859b7662370b84d24690cf930631489ec9f3fa00ae490 - -# g_scalar = n - 118 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fd -r = b8027be64a5eed689d19bd63befa48da4496f5a023133af12541da528e6a2448d1f2d42a406775a028f0ab7a080bfca5, 546c7955b5c108186699c66069c511df0caadb2f4bbafe3353ec47eb620c028bf87e6b6c22a321dcf7382a5e694f97b0 - -# g_scalar = n - 117 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fe -r = f26774cd7823568b517a6bae23acba53ad9e749a9aea738d613e5294fe8579619532b30ea229d070fdcce7a80723559a, 8faf654f7d4f688c85ab9a7d400ea7a4598d64724d867b7e92663fa0f95109fe3934c5b31473fa846bf8985f51aceeb2 - -# g_scalar = n - 116 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528ff -r = a40dbba76a0c98442700a45b812fab5c2e56dde7119ced404060d22edb6e808b6d812dba7e29445309e7d232ccd1c14b, 3f52d8fea7e3993a82fb0a4636ef3bfd01f7b3c0d9657c7d7e64e9a13ed8e9a24b6aeb0e16771d06f5e3834263499cfc - -# g_scalar = n - 115 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52900 -r = 274c69657350982d84442a4123c50746a97accf432406bfd33e868f326a488269120f7b3a043456daa4e673b34498f56, 3f3a420930a5ee248afd61cd30ede0fc2065cbc509ced139ff23c6477b75a478c140e24d13851dbecef948056a236155 - -# g_scalar = n - 114 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52901 -r = f80f423bb48af0e8e53bd76b6e4b3bc543c2a97d5743877a559b40a286dcfd8831ec9ab137796cdcebbc6b4cac6a280f, f338e5cdf43b9b91b66b98c79dfb532f935f8addb23b5a1725af72187ac62ace0b58d896d4e3b0bac6f969582b773385 - -# g_scalar = n - 113 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52902 -r = 869fcd17ff86a9864a5bdb048d7fa0c2e9815b09139b7fc5e72215ef852bd27fd2c616d1bbe33572f85b86b79b0bda12, 5ef4c20daa086bb4c2f12e83ce4788a84080212603ce449896678dd5184edfd5463ff80d2999b2fbcd87ade96e250941 - -# g_scalar = n - 112 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52903 -r = b4a6714762f45dce83f2fd2cd8296a52fb25e37c9710b70b2b5609d5504c81290d20370a5d66455a2e20654839d6e2af, 07d446bbba12dfb2465e614a83e7debeb8c197883557b977c1811bc5d13895e7e958e332f493b39b57e746425ea39593 - -# g_scalar = n - 111 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52904 -r = a158aabcb9bdef14c3907b518b02667f27552012c727be036744720b50447fd908e0805000765fab8db3b74805be74b8, f6358897f7d8625639b4b847dcff260133071e06b514d97a5d00ab436c3cd9e5ef6a411a1cfa0469552205fd0b633a90 - -# g_scalar = n - 110 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52905 -r = 26956a5b83e5bd0bfa63d67feafb4dc8bdc1c92475053732ce481ae68d2624c8a4ba394e85d138d693f846d4906ef776, 3a600687ef91f740488a5078961bbddf9e28d8d18a3fa9b5406386e38916beadabd914f900eb7ef4053d8f0e8f351c5a - -# g_scalar = n - 109 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52906 -r = 6e3c27bbf13f24033cd18c33b9cff887a911a58af0d93abb5841c5f8a8dcbdc89c7d35833cc1184b0efc2e27b2deb1fa, 0b3b93a9e67388fa781e65b180838a978a52cc350a5ebee2d24a804b0a9f250aca3226f3abd6b3faa4c6e8ee15acc519 - -# g_scalar = n - 108 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52907 -r = 2a532f0ac16a417882f24a114cb0b8671b23e3f7afef0b5d589f30567bb8dad3d81b74529a67044fa26631ef443c7161, 9d656f406511cfc08b664ce6e12f221cc3a74a19c3bffdb67b27e171992bac6e567a255c91b54316d892e8f1bfc7c314 - -# g_scalar = n - 107 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52908 -r = 77964d793f740b4850994c4960a91622ccd4f456753f40d027c6ec25a0075d4673c21e204f761490d718e8e1f4363f23, ae7d58e8d503120d1e26608738bc71c66a2952ba479a6b9cb77c8b2e5d80c05f7bb038641be6c2860b36aa1e09b812fd - -# g_scalar = n - 106 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52909 -r = b380f170bff65e1c2633179cfa6a8ac6442e0f1f36905deda01780587776c7fea1295b179d724fdf3d303c72138de192, 0e396ebe68e2e2a44a5ce29540ef369ff960b81ef512e7b4e1f467d4b9cd0f5af83cb47d7e4e82c85099312a2a6feaa2 - -# g_scalar = n - 105 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290a -r = d0ab3e3a99ebd09c022c75441a806542862ef39c275075e3077f30e5dd2c23bec367d6aea6e201bce6e91985e5802845, 33c518d392768c5a31450ebaead0e6dc2c2a856ab8dfda9fc8d3dc5656e000725a30c9af5652ec94829810a0266fd747 - -# g_scalar = n - 104 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290b -r = 7117756e39dcddad381f4f06f473127497d1e75fd9f408b53dd4f91683002cf1cfd364cca03bfa6367126ced901410ec, 12cf98f9c880fb304f9bcbcdb1d380890a0bf8ce1470123e0caec3c46361a0625c462290dcf3d0ac1df90ec569277518 - -# g_scalar = n - 103 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290c -r = 590da88e64671048113a7902e3da530d1ad95a94f23d84fcd3f0d14329c21de1ddcbb10eafd402bdd24cabaa21355d5f, f3618ec88d8c2412291d2a59d21bfaad9fe42e3ca7052e3c681444b12790b201e5ad1b1719d191f40b5a7d7e6da40f25 - -# g_scalar = n - 102 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290d -r = 180783fc39489b2827c614bfddbdd7a57befff1cb90a319f1c0f6241bb2863c829591fcce7274c8803802ee80fa4f860, 9f5b2dd5d9095a20b3937037c7e8aefa5b80425c412a1ada6172a1f445c5fdc4ab9b4514e4c8c458d576509b865161f9 - -# g_scalar = n - 101 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290e -r = 7e2392bf7bc814db9cdd943547a18710d73b1fad8b8b5cfc73ddcd2c2eccfb1ab539f5fe50c66d708e66c6f69b8adeac, 8c78d2c9e8fd1e216f649a90bdf13efb58c1e2650ac17fabe010be7af529796b001223dde2983fb26ebe6c4093708b17 - -# g_scalar = n - 100 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290f -r = d884d30b2f03f287419f4d2eab386382b0e595a155fac50e100134e2338c10e0f9d9c4dbaf282e57a350c4fc01834066, 12396f36fc1d034d75751338b50246d6ef016d9f8afcb08dd5b22cabcc25394a75eb8dbfb6dd6680b581a6ca09f8ae9c - -# g_scalar = n - 99 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52910 -r = 648c5f00bb28223ad49cae0982d9d6bdb9b2e6b479c8f8bd1b41177c708ba469bb4f9e0f41aa174e6e3835a9b05f84a1, fc1e9674cdd29c42e08b6c4e89e6f2672908a6272e5f15f7998aec708f7db81d01cf69217e5f5c72fb0b7a8aa2733b5a - -# g_scalar = n - 98 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52911 -r = 458ac76d0f40ec396e6880f15c434085ca861b4d97740fcab1bcd42525fc2c50f05e0ddedb37f6ddd2872262b0a9e00d, 588efb43001fde0cb63e8243d9d7df8c846959120049ed20ffc36e0aab1162a528fdfb218f772d25a02f6b017b751bed - -# g_scalar = n - 97 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52912 -r = 8c081acd170d807f87b1e51bac06961610241ed16fef9d9d8f273e3065278f98c1f0db004a49492c7cd2035d7f5c54e2, 7c3948713b0fcff9b3c1db6e3b0a969b34b81b1287765c61282db10bcf1fa22b1b14aaec2979a40bffafae16e38c4a67 - -# g_scalar = n - 96 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52913 -r = 8bf3dccc39c18b96cb4aa43c9741eb4226de4c6581998af2ee21597e52ce08f68fd61e31148840d4dc5293851d15bba7, 4da80493a5bbcb5b311f7bd0a2a97f47062e615f37cedab47abac690cfa11b0eaf81dbf9822783c6991e2a26278d67b1 - -# g_scalar = n - 95 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52914 -r = b8f42fe52fead1e4257b0bb5ad7f23e10be90befa27d2b794a607b9d0ef989779f74ca169bc0cbb10fc0f2630dbc3c91, 4492b45abd20d7919ac9b212aa546c0673f09b17c4384a6eba33c0eb22660603afa0181302869e8221871bcfa06c4a6d - -# g_scalar = n - 94 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52915 -r = ed9602dc7912de8d89dabf40cf9eed19f4db0ad3ad1bd1192e2bfb0c25998b5d4259f70ee435a0deb134a04174225251, 7bc3be41639313209fef39c6248c25eefc0b0623143223f782ea0dbc32343506879cd4b6bf767610a7a492e83e606dec - -# g_scalar = n - 93 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52916 -r = 813355b3430aa2d72df91689cfd151547a3545de7cfdb00e1c634764b16142cd1b1cc24f5380675eebd14d71e32d80af, 3f8e0c70994062f638e4c6ab6f5d971aa8d5bda48e98f234018357efc34f9966261cfc071fc54486e9231d377a0d3581 - -# g_scalar = n - 92 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52917 -r = 1031cbfcdef715d74efeec75e724f56cb8a88d32c7b6b5a626905570df79b6048f97bc3df1b9f55b91b6e58f1036e450, c1f7f4cae5df901da1bc3e946f0c72e2c2125f7d57596e065b2978e2b8d52dcd31169bb7d9356b23551529f1d234dcf9 - -# g_scalar = n - 91 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52918 -r = eb0f52348bf223b0e7e7382759dc3eb7b04b977d42d74f5fa4f6e534bbc2618a35c2421b14ae3f635dea409c9cba0858, b83538fc0ee9391df4f64c4265477b8734871f379c5d345ff62f4cce6dc9cbc12fed7ee4c021d39266e3ae99f038aea7 - -# g_scalar = n - 90 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52919 -r = 4347b760969bd7f7b560d7e63dc77e7bb34f09fbd045d31e28bd6aae6e6e8e57672649def3c36ba79b35cdf7a7871029, 6031b8801482c98e1001a0af8dd013512114cc6ed63b8db6ad0d3541ec292413dc3151d601531272d0e9e5f8a1ab691a - -# g_scalar = n - 89 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291a -r = d0d105de164b7361d63dd29d19e0e2b667d3644ac8e55b7b463df30b0096721f18a49fdc4bf163e00c62094b2d71d4ac, fe3816c64720c80ce2d7dbcabf469d26eb88fef6f4b21b3f9a330faed255dac2879e48e3df6c30811a79a3b2fde8e771 - -# g_scalar = n - 88 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291b -r = 9398236759e97922f158f85541bb965c782840d1edd794907774056232329baff0041e2423786267db52eb03d1db891d, 3be5902bcea7c2ade50d59ce11e7a67cbd7b9ae3c198db4bf80683e20745bcfc590ac7b2d0a332efb4bf33481c7b8873 - -# g_scalar = n - 87 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291c -r = 1c1b3417a500bb22c4840320387b6b2ef30a928d9a3c3af1df0ec1ba8b80919559424730109677754f11a02e4aa0372e, 60fb90511669019742537e77f184b248ce6bbe8a18aa60f62120dbab067b576fe7db928a586f697e96f1193940cd990d - -# g_scalar = n - 86 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291d -r = 94dc48fab7e8cfcde61e6c2984cb7e449e30229d0a06f838361494cc0b162b571234181c1dbb4629c7364268d94ab449, bc29e690721b7a85ebc3917cd36d209e5cd08f195f3c1e5a8566ef2afe3b86975b01a09f54df4c80f281bb0e764997f9 - -# g_scalar = n - 85 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291e -r = c835025446e64d4db0a08fe1114e6f01d953aaff73256a577bbdcadd053153d82148bbb88207255a935d2cdf9b06762d, 93de726d366c0dec5dce7c601d76ae6a3c2baa2dd350ad0d8bdd58d5f4141ceac6d551fc8e04169618304528ff243ea8 - -# g_scalar = n - 84 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291f -r = 00eb5c040d16b7fcb048b60e740c04a52686cba73934e93664a8bdc7c791db8094b80b8f691e858b3c712c3c6323cd05, c1a39004c52046be23675426bcbe02b6781c1cb2727eba5feb1a8d0de33161f1600347ae28364a4f7f3f276fb2237d89 - -# g_scalar = n - 83 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52920 -r = a075b16ac03d7805c25baa03520a8926eeb88ca1c7a4aab58487aa0d4a6694eb44cf847ed2f05eb48e61f0bf44e94071, 88c201259631e30648d5832fa9c3871bf55d9d45ddae432530de56a8b619fbd5b1c3ec8e9ff69bc13ca85b76ec268f3c - -# g_scalar = n - 82 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52921 -r = e6db24057f12bea3dfc6d038305bfc7c87e75dfbed69216bd6021049cbfbd0c2e8c09f59ec5cc866783cc5bb88f82a12, 9ff65a61432cf2d79614842d0111801a128c900058cb66b01bf2fb109f97aed67b05c629b44ff8449b961eba485c5d2d - -# g_scalar = n - 81 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52922 -r = 0984c2e37cdf344f11238a859f436faff2c3118feaf138afd8cb3560e07b1bfbde45473e86c087853cbdd3cbdb06f682, 6228489f68ba4781a21c729c51d8f958fefb85a11a22d872a9522d0fe70d9c816a65eb2a8c905dbf1ef7c3e93c7da7b0 - -# g_scalar = n - 80 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52923 -r = 1e8568cca446324620fe8c27a715ace6dd2ec6d351fea1dc49066428b121360923e5c6b90e42d1f9194924b4ad0a415d, acf544bdf9eb5906469f4a101132751bdbecf9c5ec87197043856fc39b7b9be1671680e226dc9c88ff3dec4503318195 - -# g_scalar = n - 79 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52924 -r = 23b245a5d53912dab3cc818a7069cb7c491c312dd15d01f0e58901a204ca55712cdac248c3b74585ca11d9d4e9a6c224, b468d707e2854daa6be399360cfd7e069e84cfe4f79cd14cbfcdbc161146a13d5fad14c0cd88aaadcf087c75594f4e9c - -# g_scalar = n - 78 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52925 -r = 02781ecd4db639eea1560f9775dae55bd35175d9a506191dd3338ff4b743bdfc47842147688c1ced3c80145ddb9f0b60, c186abde517042932b85fcf8b1c370d37bdc719b3b585b043b78f3624319ffcb939d400bd3ba155366c5cfd3dc231ac9 - -# g_scalar = n - 77 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52926 -r = 63d23607fa5c9816742e060b28a126270ca930b998ce78a327ccb6c0212a6125114a9b40334793a79f2134c12a501a3f, 2bb4ef8acfd302d1319e3c1aa8d6be5922fc6affcf36304deaff7af1b602c3c1cb3281d00cb2e2dc88b2345c13e06e23 - -# g_scalar = n - 76 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52927 -r = e677b97c61007b808b8d434e90bfa219a7253817daee85404552fc68956bce558c547a520c8d74e1fb2f775e4230e336, 1878e3cec6c847f09be8d23ce6fe11ddbe445e6ee45c22f9585965db1b07aa3f6914734b9fcd9c064015190e08e5438b - -# g_scalar = n - 75 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52928 -r = a1e0ae0fe6ca7a154a7ee23df367b5c85d4631b4392f8f665b28cf8991549a96c8cbc40a420ab7ef6b5d4014867303de, 02bd279dbe829a9d2878ffbd6a801bba9b1dc61c0fbfd1e2989d5496bcf5128d5ace3d3aaf0546fed59aa11fec605d83 - -# g_scalar = n - 74 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52929 -r = ca50bae743ca3e45a0dd8e3cc10c4f6c40d420cb5c36dc4c02ae1f9150f6a5cc7f3bc516e1b24b64126d4cde13dcbd9f, 53cf2923ca46546146228db7428f7a38a5581a9c35e612f0dba73610ec30dd42ca22922f8eda2e960f8b41171022d4bf - -# g_scalar = n - 73 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292a -r = b89d83e72bf4673cb08db04de8caa7d29029a9252d3731c25b8d230bdf8b9b24a9c2a9b11de8963b43385c32d851a702, 909a50c483675e9df4ea8bfc78479c8cfb1de1fc6dd9a5a650603784b0e2de90607649281e1729e95702c6411e0dbbdb - -# g_scalar = n - 72 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292b -r = 0966d45a6517888e2ac250f6058daca83b7debe494eaf32810757e2e3f599369f4445a249b234eff668240536434688c, ced3e2d0c97db2c54fef5323f68505de87ab07433c0f52c5384bc9e6546988b866326235288bc8f68aaa33871896c4e1 - -# g_scalar = n - 71 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292c -r = 0b4faa5a537ecd702b123738fe255dda27bbde143508ac5493ba15cfe58d0a92bf5731b3abb11441c42ece45effefcb1, 065815d78cd52fe34246db11f8ec6a99debb250e319bc8c5eab0d7afda4c1ce57986c3b1f7feadc295bb2f7c22137c39 - -# g_scalar = n - 70 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292d -r = 2bd44119aa9079b7d8436f83a2ce4101a4c793741489a3c09c2e8aec0cdf6d91edfdd44e94cf7a32bcef0b6a37548a32, bbc20af538b960b5a3a666e82c5892143bf889a8303249483375299a738da5821d5d4f65989e1ac760fbea436400d5cb - -# g_scalar = n - 69 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292e -r = 59d65d78a3f735f42c86ee164fdd3ccad4bcc8b125abfd65cc66c8aa0f19981b5ccb2859a1115e28f8d3df74670c2752, 0432feffd8e2428590d361748ce985cdf53111b77d1299432ec51b76d42bdc5aa889629cba2c66b2fca521d883f3aa31 - -# g_scalar = n - 68 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292f -r = f6a8130b3a7741e35508c2b38bdb088aee34bd1706035fdea4160def7fe6923a2fd77b5ae6018776af78aa17286ac2fb, 2b984f17d03b99c1263a29e0f60970b3d64fb6a881f035febd88176d8fcf3364a656197694e18dc03fd1299e8683382b - -# g_scalar = n - 67 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52930 -r = e462ca48e153035af9af3e4d90909d25556e637e6ef3d8f765d75edaa55d6185eac7dd3b0b634f686efc5cbc8b1772ca, 7cdd34755386b66bf695940fec9d3a06a66f48b939143ffce581ca12c0a61b42efb54e58bd87a2f9ad89c485f5ef612e - -# g_scalar = n - 66 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52931 -r = 3418c841ef19aa6cab34164b3870beb7acd0361f5decad089983c10a492b899ae22c691d99c0b909b60fb64e52990b5c, 4d78416af80aa2fb6d4b7f1128f293c5902cce5c4f2a515ab12c02e6d597baf65a7f2fbe3d3776f8930dfc5adf64cc92 - -# g_scalar = n - 65 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52932 -r = b84c3a6a5fd4266f8b0350b2650b22534597ec8abdd5f002cf9edc15edb63c80becda43b0d1d279f8e469454839b9679, 1590dad75aa44e365d7993db37060f78e689c292776299225487b4d321d43d98495b787bc5266a2cf1e927c3cf038606 - -# g_scalar = n - 64 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52933 -r = 4f5d5ab6d1b30e5cfc8e87cf3be44d56a309199dca57b7bde04b3d30f8a0580d957c980f297a9a37ed4de4f88e89b258, 77748f746bfb35aec11ed876a132c01792683543cfe01da601ae4440ef6f0120f02e3ad10f6e43fe4dec3960cf56cda4 - -# g_scalar = n - 63 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52934 -r = 1c9bf0b0f1e52d1ef6159e519a049f7acd7e35f76e2b71aa7a50f7458c949f8f6ce8ead6149a1896c5c0e6d7aaed89c0, ad44c8ed5f5976170a508471c8ca20dd237642b6682bfb72c44fcb17772e80e572c5a09ce13284e5c4493e0be7dfd37f - -# g_scalar = n - 62 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52935 -r = cb4c0a54561fedf2d194b7054b14d11703b9f1cebfec21da0c7d749907dbb9af1e659730c1fb476e49a04dc0f5acf772, f6fd33dceb6bb947353cdb137d3b0558c2daf76dd456dc649a9f61a62600f544a0a164df29cf3eba509dc2c1de25b2bd - -# g_scalar = n - 61 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52936 -r = c93ea049ef6ba0062366467300fe51fd5ff77ff2332982d06035e34f772ae08054fb5a34222241e848da1fd3fc60a6e0, 3b33eebae03967d64f59388dfeb992dcf225e6001ad8a898195877ac8f2cfc13c6b2cd3195160b5399bf0ee982c7ed99 - -# g_scalar = n - 60 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52937 -r = 95bb80cece47968c61bba736a55b527784b7c2fed74cccd40402d5c4eb809f85a61fada6fb4f60e8c711d5d1c425543e, 722de40f4b15b0aed603c4d7b76d198944ba5ae06b757c8a5328f47952d5df020f1f0b07197d55d6f606d524e914846a - -# g_scalar = n - 59 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52938 -r = 9ba039679267b6463703435b0de64db996a917cf1ed0e31564473b595c322738dfca6897f929974caf467ce227bf64c9, 00cc90edafb9aa3e692645f4261c35e6904cb4cfd7b9c3315330d12284fa68fbbe4248bd4cca100f20f3d552c5add041 - -# g_scalar = n - 58 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52939 -r = 104cec0666ac72e09e9520bf57acc87aa58db4ea4f96af4fdab9dc0015b0fa13341cf9d9c46785af941c5c257d0be180, d4ae66a086b256fe3f7a6a1caab704151ee96616f605a75e4a0ea855a964a826474b535f057fc7f560c08456e6d6198a - -# g_scalar = n - 57 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293a -r = 814d7fa07a78c189c052f3eb1c99ceef1e9dd1509bf446e0a14967dfac4bbf6273bae4c1694b8b0db14ba61cf97f865c, f57dc465b4d9209c2d1ecfaad6ad3e0370bd843b8c37e2a4f29f454817f65ec288773da65e8c849a5efe5b7d548b4fa2 - -# g_scalar = n - 56 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293b -r = 7772a913e6436cc1e9981ea6820da79f2629ba4fd1deca258b6fc785e692fdd2d4215b4fc7a8baa1483350a5ebb8cdad, ce009b71f07747d2a901000cd90cb631fa7d9e6db6f44a8d49dc5e5114733de2d7e8619237ad09b42ebedca4aac04be2 - -# g_scalar = n - 55 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293c -r = b3fcd5d1690cd408fa5cbfda60f4554f6078d8bf085faeb3a4fb7867e3a142d6fd6622bc1718ec3cbcab5f60069f3367, 8b9fda8ceb31112b956e18c6682f05f9e8394a3441dccb07721cef83c2f8609d7d50dc54e7f59c58b1421183d7e0877b - -# g_scalar = n - 54 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293d -r = 4576a6497cb8944248c075daaadd6150075134ebabd64a6acff00bd23c9b5a41ab2f15202175fbf411853add834e6c54, bdf1498c6f95d6b69161794484e14885e51e22682ecbbb44f40786296c4bb1587244a8e288032e0bcbf58990cb52125c - -# g_scalar = n - 53 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293e -r = a8ba8f10e0f383ea642ec4e615c3aae2cf485c74a7c54b160b0110610f0422a2daed7c268a0915cc3b1bddc6fbde49ef, 120d1c1481336b7a5236c265b7e89a1d2d38e52ec6f9669ca8795e65b1d057c014139bbcf7610574d5dfab4c6a9e7afe - -# g_scalar = n - 52 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293f -r = 4b820d9b31d83660252b48f5cd8d7d770bedaa85e5377c005687d1dca6ccfd358a944b316b3262328f6468656f9201b9, 3a33cc62345e02b4dddb9a7991a121896f1d51528087550792f5e99312c3c484f576cf02edf74605561a50c4351f80ea - -# g_scalar = n - 51 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52940 -r = 16634a504f35cb3c3dba16e9daaabc27464ae8d241a84de7a5e0fb598c5a78d91947c0caec4a22b82c4ccac72070ac8d, ae74fb823455f268396b761dc8c0e5f2f4ddbfffc37782c925153f3ca8fabc0ecdb2f9808ca622ca523e74074e9137b0 - -# g_scalar = n - 50 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52941 -r = a820e8303a5d50d19cbf755b46f97ac7beabb91ac3c90051510bd675cb2ec3f1172cfe4ecb5af900a96763d2fba32d1f, 90a705748e7e3d5e90840581ec5b08293e4bbbec6ccc1bfa9edb9bd0f0cd4ead208238f9cfb7b9e57c560e82cf73baba - -# g_scalar = n - 49 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52942 -r = 0b470bb250e4ea9e1197832bcea03f5647c56c115b6e3386a669156542e365a48ea5af63a5ea6fb8fa5c3aef697136c6, d2e33ae71d74d42488e19bbea4a841d0db78122a807d422c03bb7911b63614167293e8b02db682b7ceec38bdec4da8ed - -# g_scalar = n - 48 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52943 -r = 66e4794bae7d740062e5c5d3e73a1bc940d01ff53a7d2f3c4f504e06ea52bef92d368d48e7f30c2b3ccf806ab35bf6cf, d8e1bd5ed9db5a7cb7154ff14a36b9d3d9fa35ff625d5d35a3c35ef2fb454679ba7f9f615899220ec2cf9da2a0010ced - -# g_scalar = n - 47 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52944 -r = ea5b37c5da233371504f21b1570cf950780abff7d878acd0bfb185125f5b07a065c788785f0dc66c6f888f7df0c668ca, 536201382058d574110ff96ed1df03dc20115e5d9a1f036e079a9d576704caff638fe8a6db630648b7851743ddbc812e - -# g_scalar = n - 46 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52945 -r = 374aa9069481ed0dd9c79db8005412579266634957719f5460976b01b472d7899f24fba649ddd10ea618d7479fc4f435, 03ac614c1da6382437d2a66713f6f2f9e6547fdceb14b546285e675be7a57b625ea6f3ce130a79bc9f104eec8023d285 - -# g_scalar = n - 45 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52946 -r = 9c94c858b2ac340599e1c0c61f2bb599b0040c0e8d6fcf13ffe8e0bb39eb8f59d4af65c673ad9112d4c411564fddda5b, bd14d686247c5b7ae8b888dd42d50e61e906998948dcb16c14c4bb561a4a96e69d4d0abbae0335c070778729911127a2 - -# g_scalar = n - 44 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52947 -r = 9c7e7754a320d35204ce2a21986c5ce6d50a288981ea36c2767b4ad7f8f99b51ae97af8bf240b30a1c5f0e5b36a400d3, a04d71cdd5e228c45219f692fd1abc51b8987504d822571a397fe89afa3852928337d5b10e96704d3ccc9ccf44527cb9 - -# g_scalar = n - 43 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52948 -r = 35178bad22dab3935cf095a901fefb567314f5f0416dbd86dad9f5b239c4943d09112fc50578bc8c37fa935500846d44, 70c0e09c369cd487568b4f6bea3406b755071f0942f9d72043187556121ceb43e4811bd18b61ab67308603e5c9450e58 - -# g_scalar = n - 42 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52949 -r = 7438b4933c1e593ce983e169ffff96c73fd72a308f234c864b21c4f3eb6c7e6231b22efc5df46c6618ef56cd5d76b881, 2497d63d0ffd4491affd6a97b8d58e8a18c6049e1559889cda2f355125e1520af26a645586926ed679c5dc5d5aac171c - -# g_scalar = n - 41 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294a -r = 8764cd2cda92245de3bc778895fd71ae89746c8d852ca03573a82933a80d68f341dfd24d456a201ead148e87bca6d14c, 7d158fd114e70e3a9866ad382e6cd8d14236293cb060a765a879f31ede9b90cda5389d1ef0c362915d01d3b97d14dc1d - -# g_scalar = n - 40 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294b -r = 51c4b1b36a4d6e813b021cf316d7a9adae78bc3a3134216c86fcfe4760be3ebc43a53ff21beb359e6048c6949399c38a, 2026d49256eb44fe244dd362214b91939c5ff5f59f1f55d567007808c8f148bae207337a59615c5cab4632734a6c27e9 - -# g_scalar = n - 39 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294c -r = 587df4d6b89b1fc2c9985040b76c066536a1cd6dde9b62306d7edf642b7f006fd984244a8e3d2c467d894f80506e0e42, d2843ed7f8b69704e56acaa0e329fcbf49b91bacbc92601dcba3aac54aceac4684d4f54b17d6b8b8b3f9c7b9958e5185 - -# g_scalar = n - 38 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294d -r = 47ba96091da7b1476b464412bc9a48c7479ecf018173fb32f3d752f5ad6cbeac018843c01c0d77024703cd85891f8ffe, e0b9996badf9e70ded641ceb68bcdf5b0cff1e39b7cb8065251db867bb6a946b783e7c3b1e5f1f936e50d916543ecb77 - -# g_scalar = n - 37 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294e -r = 1eba28f3defc58b59261ede87ef27114acb60a7597482b86a129e2dff5b54a5d4027704bb5630ef20202d57de44f61a3, 05f1f848017a407ad7b0344a9c735cc84af9b6576bfb82e0d156edbca2d35fcad0e9bc29eba6b411936e3f37741aa761 - -# g_scalar = n - 36 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294f -r = 1608643883061d376f01faee26946e789f82b7fbab52606ca39180d45c2c7ce14a13260770b1b757f216aa2531238ed0, 096677847f9f7a4820cc112848cbfe4e95cda713cc0aa98aefdf6be73e9802dee2ee43a0291d7ec7a68120c9f04f8843 - -# g_scalar = n - 35 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52950 -r = d6149f75e9417bc6832bd8e34fc7852365f16273a02583fd4a508620dde6bd0abb3800d52d7c2fb458a5b5433720ec9b, 4ec57527cf1dc0d953757880ad332ca3dd0e6054d70ca111affe7667677f6d5cf31e7f765aa1f6a9014fd917c2114ad5 - -# g_scalar = n - 34 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52951 -r = cdb55e6ba07b7cae7ec2bc1cd50b3e6d9d6ac102b4e2520145700722abb9102f0648c2cd2d668c4180b309dd2ada5bf4, 569b110402522db1fc3faf5f9eadf8d9fd2ff30475894d2961ebe75baabaa83bb8f22396075a80b7143425f97925c6bc - -# g_scalar = n - 33 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52952 -r = cc9e97a46c833e9d68af622641d5c400da631fc160f09efbbbc7c7ee955ef3afdf330d9d5b943c8661333a382fb3ba63, 5802d49e6fa8252890336c5e473cef8d75be91464490f545f7b98315b746f46dec409eda3df61aa18028c172c59da189 - -# g_scalar = n - 32 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52953 -r = 5dd2a4a0626b3d793a9865baa631cfb0ba8953d612e8dc871896b9fcc651b1dd0d784cf208f779d5ad852b878c0a64a4, 3aef526c554356608c4bd8da4ca4b00fb434f90ff5dc884988cea0616bb702f65c8d203c0d5ad402eeb7438e9783df44 - -# g_scalar = n - 31 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52954 -r = 6c07c4040a3305d11afb51a3e3ba8285d42f7dc953c149652ecf8340f0df4fe6b6e7ecdd9e821ee6a39c89317c8906a4, b8a5c18a9c675e62a4c2f292c941133b2822b9b0fba585e3bfd56454bd14df2143f59663c8b3b4f72547cd78ed803e25 - -# g_scalar = n - 30 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52955 -r = 92cea8f4c4360dd87002990485ba414315f9abe1feb6b100519b9fd50a18323276aad8b8131263886a7a3464d0cbcea0, 6bed6d1aff07734d0a96bb95d8aaa96d693de4d6095e980dcee822fb2b85be22e7b9110222c14ea92393a2e33ed8b75e - -# g_scalar = n - 29 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52956 -r = c8b00ae8187cea1f2065b7cba7df26e43dc22d490e3feb0fce3c15ed55c9764725846b66780443d6019d6ac5d3021470, e2d5e3fea6880e93090a818e6f37dfcc71924ef4bfbafa0454e872d93317ae4bd6c3e9b5df37c21de5ad7b6079a2212c - -# g_scalar = n - 28 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52957 -r = 55be5764d37da1a2d8232f8b4e492aa88fb0c597a4da3e15550e0bee8ff22c6f4169b4117b3c1220c76afaa373b64643, fa3235c018677e8986dc880407147ce63b71190c4fcc3eede7b42b8cc52967c46008963a78a011f00e43764ad7188061 - -# g_scalar = n - 27 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52958 -r = e8ca780e373e5aec2f7e8d509c6a58fe7228e2d5d18f14d08e0d4168482396f9cf1912934d78291da04482d2467d66e4, e87df5f43aecb12898198e6a2bb2c32082d9abf9c737a57a28865201ce25e414a7592809961d070bbd552e2ae4971607 - -# g_scalar = n - 26 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52959 -r = 37a45bdb091cbb80f14b309f03fa90f2808497b7b0bba4a76efedb8023bf0b90b0391b37897b93f56423197d2afd473d, b82675620f6ddbe340d3f79d9683f702a2aed20662bd58d8da3846eb90a0db3724c0bdd16a1e92911225b51c7570a234 - -# g_scalar = n - 25 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295a -r = c29c6e2ca5bb73313809ab50de2480249bd51b99208abe1e57d0f3d2e2be174abb280dfa3cb3fb361e93722758ce3b83, e01904bd1687f62325c1e5c2b3143691295d0ae21571bcbbfe9d70fa6bdb5c327c3343b06ff61c6e66bb02d29eedb0fa - -# g_scalar = n - 24 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295b -r = 4f13f901fc55723f38076e8fca77d74f563361909bd5c2f7540c045a409c930b20c1b8e0d809afcd259f272cfab816a7, eaf7f719da5cfd36ec6a5786995b16fb17d88bc65f0652c520aa8605b4157d216727d52d25db813776f6cd2942c2ef3c - -# g_scalar = n - 23 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295c -r = 80826a69eea8f22461e4ca2b905432f01c75b8ab2a351783b9d3dd25429c0a18990ed20b569b8ef6d1b4e74d12e3683b, 620334f21ddedaa6d7d2dbc8a998e73e0fec76af150dd38185275ecd5ad83140f4335c0e59a1b7ec803cc59513ad5452 - -# g_scalar = n - 22 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295d -r = e082882d69059095fd7a8b13f0681fcac382472ebe0e1fdbccd57831927ed783981b788d16f325b84f595351262bb775, 98e2963670327be7af037b8dea7f6322389b1207bf2f030884e54b763407c8470629d02536a89396b2e3cfb70558e023 - -# g_scalar = n - 21 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295e -r = ab16c626dac012b51b1a0f6c5df0e5372e59ab62bd9ebe6930128aa06177f75d88e0d496dd2f9e2108265e510422ce2f, de7db0beecac3345d9952ea55315a7e84babeee17ad832a6d9d144b675eb6f66558bf560c70e84157febdeb5ff73a218 - -# g_scalar = n - 20 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295f -r = 1d1cdf7b5f22346598ca8dd42d96c936f78cff0cd467f03a713466708cbaffc7cd96f20591e71d16ad610a2d94a70ec1, 546227efad1404fea1fe48d4b8e74438bdd259bc0019ecd466cc04da2332b20bda0ab953cde7d7001d85e76c9f2b249f - -# g_scalar = n - 19 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52960 -r = fa0f1f450390d706b3b6639c539802ae23891298fc38538eca109c3b154aad5e22c4cc5f41a8c91282a2ed4abaa84c08, 5e2b84dc16a8889bea2e23887d9b498dc0a586644980cf3c6e8f4c87900d09bb5738d2c23c25d153b94871a34f23de2f - -# g_scalar = n - 18 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52961 -r = 57505d8d6749703068a232435567169355a96a6879909f083bd1c8f62edb0dbd198fd3f0f38f66625dfee73ce5b82700, 6e8ff4db814e419c642295f6d6ba58a8900303835b3026443d99147bbeed67a6ab47984708755821759f8e818a39baec - -# g_scalar = n - 17 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52962 -r = 524f166ee475ce709f6928555330455e7be3737d524ffefce6fc3f2af655a10d3ea4ea4c8ff1f43e8903e1304b4a3cd0, 53c86790aa4e9b36da14a20e4c3d98850782927ab5abafb5b631966ccc940e7bb1dc48ff2a463f25c033963393ed0faa - -# g_scalar = n - 16 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52963 -r = a10896aa435abaa137065f5313bdc3fa317b63ea2887d5ff37cf65517917652a992afb5b0ecdd2d8da6e8a7f7c33ed91, 9a624b7e7e10daecae3cfa3958d2e6984ccc420437711eb76eb78e23eab2beef14f82214dcf30ff264de9ea1105435d9 - -# g_scalar = n - 15 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52964 -r = fb62d26f4903026b0fc01fd4eb08599359500917789b307583ccf19550e07b342b7210e2ec3dabd8446ad8884709f4a9, a59739012f43d8e978cc03bebff3a8682223d79927670b8fb4dc2c5f21f99ef29e9f6341ebb42a79dcf6336390167644 - -# g_scalar = n - 14 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52965 -r = 46d227c432f6b1ba8058994c5710c0c944ce05ff88957166ca6b1af8b1f85c2ad02225fb01ec909f5865e5018f75244c, bbd67c622104520a9b82db24ec96f58b8dbbacba263c496ee1337a7a1ee2443fabf4747c8cf5662e41b4b570fc34971a - -# g_scalar = n - 13 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52966 -r = b51c56e18cf23c94d2657265ed22df97db5203a8d9c1bd568a7a8e4633b7d4aeb25e28c5f6749a959b7aeb7e75ccbdfb, b9e852483396861e7e0242e3c4b6f13c480153d2013c729f8765d5b730b2f01b271770e478351f3d0b2c6ba793c27ed2 - -# g_scalar = n - 12 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52967 -r = 627b415f9c35b26d523c40dbcf9ab45cf67eb42235d77d8303aced26c8edfee1d4258cc55d9704203db8477270313de0, f391bcf1063b50c2fcd6154e086bd0f1bf39b5b199412a5073867b702f1efd527f29f508d8559ae50533ba1c741aa127 - -# g_scalar = n - 11 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52968 -r = 9c19e9fc7ba9c437f8d89885f0561d7901b8bf56147b66020dcc67706cdad64f4532077c44377abac7708b19b68b8c7d, 6559d060cacc06e7be7de2f3c5acd785d1f8f0c9016197d1c317ecd67588187e9fb01b9353ebb47c89b14eba423b45da - -# g_scalar = n - 10 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52969 -r = a91a5280db1c212ec2f646025c4845ec54a612d7eb32cabee9f6368eab225fa32a15a9a6e58d6787845539d3c8d99c02, 91466a4137fe8b17c1fcc8f5b85647557e69e473302802e2a6d53f4586b15401fc5acf13ec4617a34468e0881984a031 - -# g_scalar = n - 9 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296a -r = 5cab1d1d53636c6a26d464c6dad54d6adc351dc13cbfff3f26094833a96d745de35d87293fd7e4f92f5d200e2353b92f, 188f9ccbce170a39826bd60b119658ab5913533397152f27d80f9e38fcc3583cc8881d8e28bd55d00d7ecf8e4e713f4f - -# g_scalar = n - 8 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296b -r = 5db4f184349cd9b11c7b5fe116b664231d9aebd64f3ddb371c5c2e7193d7e30f9e336de5ae9b587a23f60a05dd9bcbba, c3f39228f2d8109e8ff726bc3b7130f1166dcd9c5bd2445d8fe8ab408279791a7c9244c8481aa178f2d3017d199aa5bb - -# g_scalar = n - 7 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296c -r = 932c9f811c89025bf893db589db2df555f4215d1659753ed731edcf8211faa954ce6415f874774b1df13b9d17d69222b, 26f5e949509364c10a80dc7196c4f8f9f00c83fbfe00087f9a552890afecf7baecacb629579be386f6694de088f959e1 - -# g_scalar = n - 6 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296d -r = c482e189f0430c404f0f6a962b02d33b2a33f6661bdf6015ec52930f580d57f2cb2454b339d3413a7eb5c9317d56dad8, 3669dead50d56145a792712120deaa656c361a09e4ab90fa742b40034861cc4e8c653961a4c2b231c09d4e92584f7dfc - -# g_scalar = n - 5 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296e -r = e1bb26b11d178ffbc676b987e2e8e4c660db2cf5aacc05e67f1eb1b5293c703bc185c0cbcc873466bb595eba68f1f0df, b24e36291df61b5c193a6bbfdb21dc92b4dc805067d3fbee7f49e4cefe3ca465dd3e91d08d0cba99d496b4608f8c05de - -# g_scalar = n - 4 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296f -r = cfeee6dd34179228fb40f647d685d979078358d4736400ad2e4f153b0aecac4630594ccbee0421e30aae8477ebb68f2c, af6b978acfc20ce619f8461cc7dffe82eb8e9d2cfbe7396c71c19e5cb3abd52d18b4480d84013681ab0c171964c5fc4d - -# g_scalar = n - 3 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970 -r = d283fe68e7c1c3ace36f7e2d263aa4703a48d732d51c6c3e6b2034e9a170ccf0c54ea9fff04f779c05e4dbe6c1dc4073, b9ab9a0367cd6d500924974eaefd4cc697fed2a52d1e2f4becd99c3fb1098bb86d287657851f1c9281d7b7df3fb11ea8 - -# g_scalar = n - 2 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 - -# g_scalar = n - 1 -g_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972 -r = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 diff --git a/src/ec_17/suite_b/ops/p384_point_mul_tests.txt b/src/ec_17/suite_b/ops/p384_point_mul_tests.txt deleted file mode 100644 index 5e3f1ca0e2..0000000000 --- a/src/ec_17/suite_b/ops/p384_point_mul_tests.txt +++ /dev/null @@ -1,1664 +0,0 @@ - -p_scalar = 00 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = inf - -p_scalar = 01 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 - -p_scalar = 02 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 - -p_scalar = 03 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d283fe68e7c1c3ace36f7e2d263aa4703a48d732d51c6c3e6b2034e9a170ccf0c54ea9fff04f779c05e4dbe6c1dc4073, b9ab9a0367cd6d500924974eaefd4cc697fed2a52d1e2f4becd99c3fb1098bb86d287657851f1c9281d7b7df3fb11ea8 - -p_scalar = 04 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cfeee6dd34179228fb40f647d685d979078358d4736400ad2e4f153b0aecac4630594ccbee0421e30aae8477ebb68f2c, af6b978acfc20ce619f8461cc7dffe82eb8e9d2cfbe7396c71c19e5cb3abd52d18b4480d84013681ab0c171964c5fc4d - -p_scalar = 05 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e1bb26b11d178ffbc676b987e2e8e4c660db2cf5aacc05e67f1eb1b5293c703bc185c0cbcc873466bb595eba68f1f0df, b24e36291df61b5c193a6bbfdb21dc92b4dc805067d3fbee7f49e4cefe3ca465dd3e91d08d0cba99d496b4608f8c05de - -p_scalar = 06 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c482e189f0430c404f0f6a962b02d33b2a33f6661bdf6015ec52930f580d57f2cb2454b339d3413a7eb5c9317d56dad8, 3669dead50d56145a792712120deaa656c361a09e4ab90fa742b40034861cc4e8c653961a4c2b231c09d4e92584f7dfc - -p_scalar = 07 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 932c9f811c89025bf893db589db2df555f4215d1659753ed731edcf8211faa954ce6415f874774b1df13b9d17d69222b, 26f5e949509364c10a80dc7196c4f8f9f00c83fbfe00087f9a552890afecf7baecacb629579be386f6694de088f959e1 - -p_scalar = 08 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5db4f184349cd9b11c7b5fe116b664231d9aebd64f3ddb371c5c2e7193d7e30f9e336de5ae9b587a23f60a05dd9bcbba, c3f39228f2d8109e8ff726bc3b7130f1166dcd9c5bd2445d8fe8ab408279791a7c9244c8481aa178f2d3017d199aa5bb - -p_scalar = 09 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5cab1d1d53636c6a26d464c6dad54d6adc351dc13cbfff3f26094833a96d745de35d87293fd7e4f92f5d200e2353b92f, 188f9ccbce170a39826bd60b119658ab5913533397152f27d80f9e38fcc3583cc8881d8e28bd55d00d7ecf8e4e713f4f - -p_scalar = 0a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a91a5280db1c212ec2f646025c4845ec54a612d7eb32cabee9f6368eab225fa32a15a9a6e58d6787845539d3c8d99c02, 91466a4137fe8b17c1fcc8f5b85647557e69e473302802e2a6d53f4586b15401fc5acf13ec4617a34468e0881984a031 - -p_scalar = 0b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9c19e9fc7ba9c437f8d89885f0561d7901b8bf56147b66020dcc67706cdad64f4532077c44377abac7708b19b68b8c7d, 6559d060cacc06e7be7de2f3c5acd785d1f8f0c9016197d1c317ecd67588187e9fb01b9353ebb47c89b14eba423b45da - -p_scalar = 0c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 627b415f9c35b26d523c40dbcf9ab45cf67eb42235d77d8303aced26c8edfee1d4258cc55d9704203db8477270313de0, f391bcf1063b50c2fcd6154e086bd0f1bf39b5b199412a5073867b702f1efd527f29f508d8559ae50533ba1c741aa127 - -p_scalar = 0d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b51c56e18cf23c94d2657265ed22df97db5203a8d9c1bd568a7a8e4633b7d4aeb25e28c5f6749a959b7aeb7e75ccbdfb, b9e852483396861e7e0242e3c4b6f13c480153d2013c729f8765d5b730b2f01b271770e478351f3d0b2c6ba793c27ed2 - -p_scalar = 0e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 46d227c432f6b1ba8058994c5710c0c944ce05ff88957166ca6b1af8b1f85c2ad02225fb01ec909f5865e5018f75244c, bbd67c622104520a9b82db24ec96f58b8dbbacba263c496ee1337a7a1ee2443fabf4747c8cf5662e41b4b570fc34971a - -p_scalar = 0f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = fb62d26f4903026b0fc01fd4eb08599359500917789b307583ccf19550e07b342b7210e2ec3dabd8446ad8884709f4a9, a59739012f43d8e978cc03bebff3a8682223d79927670b8fb4dc2c5f21f99ef29e9f6341ebb42a79dcf6336390167644 - -p_scalar = 10 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a10896aa435abaa137065f5313bdc3fa317b63ea2887d5ff37cf65517917652a992afb5b0ecdd2d8da6e8a7f7c33ed91, 9a624b7e7e10daecae3cfa3958d2e6984ccc420437711eb76eb78e23eab2beef14f82214dcf30ff264de9ea1105435d9 - -p_scalar = 11 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 524f166ee475ce709f6928555330455e7be3737d524ffefce6fc3f2af655a10d3ea4ea4c8ff1f43e8903e1304b4a3cd0, 53c86790aa4e9b36da14a20e4c3d98850782927ab5abafb5b631966ccc940e7bb1dc48ff2a463f25c033963393ed0faa - -p_scalar = 12 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 57505d8d6749703068a232435567169355a96a6879909f083bd1c8f62edb0dbd198fd3f0f38f66625dfee73ce5b82700, 6e8ff4db814e419c642295f6d6ba58a8900303835b3026443d99147bbeed67a6ab47984708755821759f8e818a39baec - -p_scalar = 13 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = fa0f1f450390d706b3b6639c539802ae23891298fc38538eca109c3b154aad5e22c4cc5f41a8c91282a2ed4abaa84c08, 5e2b84dc16a8889bea2e23887d9b498dc0a586644980cf3c6e8f4c87900d09bb5738d2c23c25d153b94871a34f23de2f - -p_scalar = 14 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1d1cdf7b5f22346598ca8dd42d96c936f78cff0cd467f03a713466708cbaffc7cd96f20591e71d16ad610a2d94a70ec1, 546227efad1404fea1fe48d4b8e74438bdd259bc0019ecd466cc04da2332b20bda0ab953cde7d7001d85e76c9f2b249f - -p_scalar = 15 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ab16c626dac012b51b1a0f6c5df0e5372e59ab62bd9ebe6930128aa06177f75d88e0d496dd2f9e2108265e510422ce2f, de7db0beecac3345d9952ea55315a7e84babeee17ad832a6d9d144b675eb6f66558bf560c70e84157febdeb5ff73a218 - -p_scalar = 16 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e082882d69059095fd7a8b13f0681fcac382472ebe0e1fdbccd57831927ed783981b788d16f325b84f595351262bb775, 98e2963670327be7af037b8dea7f6322389b1207bf2f030884e54b763407c8470629d02536a89396b2e3cfb70558e023 - -p_scalar = 17 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 80826a69eea8f22461e4ca2b905432f01c75b8ab2a351783b9d3dd25429c0a18990ed20b569b8ef6d1b4e74d12e3683b, 620334f21ddedaa6d7d2dbc8a998e73e0fec76af150dd38185275ecd5ad83140f4335c0e59a1b7ec803cc59513ad5452 - -p_scalar = 18 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4f13f901fc55723f38076e8fca77d74f563361909bd5c2f7540c045a409c930b20c1b8e0d809afcd259f272cfab816a7, eaf7f719da5cfd36ec6a5786995b16fb17d88bc65f0652c520aa8605b4157d216727d52d25db813776f6cd2942c2ef3c - -p_scalar = 19 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c29c6e2ca5bb73313809ab50de2480249bd51b99208abe1e57d0f3d2e2be174abb280dfa3cb3fb361e93722758ce3b83, e01904bd1687f62325c1e5c2b3143691295d0ae21571bcbbfe9d70fa6bdb5c327c3343b06ff61c6e66bb02d29eedb0fa - -p_scalar = 1a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 37a45bdb091cbb80f14b309f03fa90f2808497b7b0bba4a76efedb8023bf0b90b0391b37897b93f56423197d2afd473d, b82675620f6ddbe340d3f79d9683f702a2aed20662bd58d8da3846eb90a0db3724c0bdd16a1e92911225b51c7570a234 - -p_scalar = 1b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e8ca780e373e5aec2f7e8d509c6a58fe7228e2d5d18f14d08e0d4168482396f9cf1912934d78291da04482d2467d66e4, e87df5f43aecb12898198e6a2bb2c32082d9abf9c737a57a28865201ce25e414a7592809961d070bbd552e2ae4971607 - -p_scalar = 1c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 55be5764d37da1a2d8232f8b4e492aa88fb0c597a4da3e15550e0bee8ff22c6f4169b4117b3c1220c76afaa373b64643, fa3235c018677e8986dc880407147ce63b71190c4fcc3eede7b42b8cc52967c46008963a78a011f00e43764ad7188061 - -p_scalar = 1d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c8b00ae8187cea1f2065b7cba7df26e43dc22d490e3feb0fce3c15ed55c9764725846b66780443d6019d6ac5d3021470, e2d5e3fea6880e93090a818e6f37dfcc71924ef4bfbafa0454e872d93317ae4bd6c3e9b5df37c21de5ad7b6079a2212c - -p_scalar = 1e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 92cea8f4c4360dd87002990485ba414315f9abe1feb6b100519b9fd50a18323276aad8b8131263886a7a3464d0cbcea0, 6bed6d1aff07734d0a96bb95d8aaa96d693de4d6095e980dcee822fb2b85be22e7b9110222c14ea92393a2e33ed8b75e - -p_scalar = 1f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 6c07c4040a3305d11afb51a3e3ba8285d42f7dc953c149652ecf8340f0df4fe6b6e7ecdd9e821ee6a39c89317c8906a4, b8a5c18a9c675e62a4c2f292c941133b2822b9b0fba585e3bfd56454bd14df2143f59663c8b3b4f72547cd78ed803e25 - -p_scalar = 20 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5dd2a4a0626b3d793a9865baa631cfb0ba8953d612e8dc871896b9fcc651b1dd0d784cf208f779d5ad852b878c0a64a4, 3aef526c554356608c4bd8da4ca4b00fb434f90ff5dc884988cea0616bb702f65c8d203c0d5ad402eeb7438e9783df44 - -p_scalar = 21 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cc9e97a46c833e9d68af622641d5c400da631fc160f09efbbbc7c7ee955ef3afdf330d9d5b943c8661333a382fb3ba63, 5802d49e6fa8252890336c5e473cef8d75be91464490f545f7b98315b746f46dec409eda3df61aa18028c172c59da189 - -p_scalar = 22 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cdb55e6ba07b7cae7ec2bc1cd50b3e6d9d6ac102b4e2520145700722abb9102f0648c2cd2d668c4180b309dd2ada5bf4, 569b110402522db1fc3faf5f9eadf8d9fd2ff30475894d2961ebe75baabaa83bb8f22396075a80b7143425f97925c6bc - -p_scalar = 23 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d6149f75e9417bc6832bd8e34fc7852365f16273a02583fd4a508620dde6bd0abb3800d52d7c2fb458a5b5433720ec9b, 4ec57527cf1dc0d953757880ad332ca3dd0e6054d70ca111affe7667677f6d5cf31e7f765aa1f6a9014fd917c2114ad5 - -p_scalar = 24 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1608643883061d376f01faee26946e789f82b7fbab52606ca39180d45c2c7ce14a13260770b1b757f216aa2531238ed0, 096677847f9f7a4820cc112848cbfe4e95cda713cc0aa98aefdf6be73e9802dee2ee43a0291d7ec7a68120c9f04f8843 - -p_scalar = 25 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1eba28f3defc58b59261ede87ef27114acb60a7597482b86a129e2dff5b54a5d4027704bb5630ef20202d57de44f61a3, 05f1f848017a407ad7b0344a9c735cc84af9b6576bfb82e0d156edbca2d35fcad0e9bc29eba6b411936e3f37741aa761 - -p_scalar = 26 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 47ba96091da7b1476b464412bc9a48c7479ecf018173fb32f3d752f5ad6cbeac018843c01c0d77024703cd85891f8ffe, e0b9996badf9e70ded641ceb68bcdf5b0cff1e39b7cb8065251db867bb6a946b783e7c3b1e5f1f936e50d916543ecb77 - -p_scalar = 27 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 587df4d6b89b1fc2c9985040b76c066536a1cd6dde9b62306d7edf642b7f006fd984244a8e3d2c467d894f80506e0e42, d2843ed7f8b69704e56acaa0e329fcbf49b91bacbc92601dcba3aac54aceac4684d4f54b17d6b8b8b3f9c7b9958e5185 - -p_scalar = 28 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 51c4b1b36a4d6e813b021cf316d7a9adae78bc3a3134216c86fcfe4760be3ebc43a53ff21beb359e6048c6949399c38a, 2026d49256eb44fe244dd362214b91939c5ff5f59f1f55d567007808c8f148bae207337a59615c5cab4632734a6c27e9 - -p_scalar = 29 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8764cd2cda92245de3bc778895fd71ae89746c8d852ca03573a82933a80d68f341dfd24d456a201ead148e87bca6d14c, 7d158fd114e70e3a9866ad382e6cd8d14236293cb060a765a879f31ede9b90cda5389d1ef0c362915d01d3b97d14dc1d - -p_scalar = 2a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7438b4933c1e593ce983e169ffff96c73fd72a308f234c864b21c4f3eb6c7e6231b22efc5df46c6618ef56cd5d76b881, 2497d63d0ffd4491affd6a97b8d58e8a18c6049e1559889cda2f355125e1520af26a645586926ed679c5dc5d5aac171c - -p_scalar = 2b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 35178bad22dab3935cf095a901fefb567314f5f0416dbd86dad9f5b239c4943d09112fc50578bc8c37fa935500846d44, 70c0e09c369cd487568b4f6bea3406b755071f0942f9d72043187556121ceb43e4811bd18b61ab67308603e5c9450e58 - -p_scalar = 2c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9c7e7754a320d35204ce2a21986c5ce6d50a288981ea36c2767b4ad7f8f99b51ae97af8bf240b30a1c5f0e5b36a400d3, a04d71cdd5e228c45219f692fd1abc51b8987504d822571a397fe89afa3852928337d5b10e96704d3ccc9ccf44527cb9 - -p_scalar = 2d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9c94c858b2ac340599e1c0c61f2bb599b0040c0e8d6fcf13ffe8e0bb39eb8f59d4af65c673ad9112d4c411564fddda5b, bd14d686247c5b7ae8b888dd42d50e61e906998948dcb16c14c4bb561a4a96e69d4d0abbae0335c070778729911127a2 - -p_scalar = 2e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 374aa9069481ed0dd9c79db8005412579266634957719f5460976b01b472d7899f24fba649ddd10ea618d7479fc4f435, 03ac614c1da6382437d2a66713f6f2f9e6547fdceb14b546285e675be7a57b625ea6f3ce130a79bc9f104eec8023d285 - -p_scalar = 2f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ea5b37c5da233371504f21b1570cf950780abff7d878acd0bfb185125f5b07a065c788785f0dc66c6f888f7df0c668ca, 536201382058d574110ff96ed1df03dc20115e5d9a1f036e079a9d576704caff638fe8a6db630648b7851743ddbc812e - -p_scalar = 30 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 66e4794bae7d740062e5c5d3e73a1bc940d01ff53a7d2f3c4f504e06ea52bef92d368d48e7f30c2b3ccf806ab35bf6cf, d8e1bd5ed9db5a7cb7154ff14a36b9d3d9fa35ff625d5d35a3c35ef2fb454679ba7f9f615899220ec2cf9da2a0010ced - -p_scalar = 31 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0b470bb250e4ea9e1197832bcea03f5647c56c115b6e3386a669156542e365a48ea5af63a5ea6fb8fa5c3aef697136c6, d2e33ae71d74d42488e19bbea4a841d0db78122a807d422c03bb7911b63614167293e8b02db682b7ceec38bdec4da8ed - -p_scalar = 32 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a820e8303a5d50d19cbf755b46f97ac7beabb91ac3c90051510bd675cb2ec3f1172cfe4ecb5af900a96763d2fba32d1f, 90a705748e7e3d5e90840581ec5b08293e4bbbec6ccc1bfa9edb9bd0f0cd4ead208238f9cfb7b9e57c560e82cf73baba - -p_scalar = 33 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 16634a504f35cb3c3dba16e9daaabc27464ae8d241a84de7a5e0fb598c5a78d91947c0caec4a22b82c4ccac72070ac8d, ae74fb823455f268396b761dc8c0e5f2f4ddbfffc37782c925153f3ca8fabc0ecdb2f9808ca622ca523e74074e9137b0 - -p_scalar = 34 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4b820d9b31d83660252b48f5cd8d7d770bedaa85e5377c005687d1dca6ccfd358a944b316b3262328f6468656f9201b9, 3a33cc62345e02b4dddb9a7991a121896f1d51528087550792f5e99312c3c484f576cf02edf74605561a50c4351f80ea - -p_scalar = 35 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a8ba8f10e0f383ea642ec4e615c3aae2cf485c74a7c54b160b0110610f0422a2daed7c268a0915cc3b1bddc6fbde49ef, 120d1c1481336b7a5236c265b7e89a1d2d38e52ec6f9669ca8795e65b1d057c014139bbcf7610574d5dfab4c6a9e7afe - -p_scalar = 36 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4576a6497cb8944248c075daaadd6150075134ebabd64a6acff00bd23c9b5a41ab2f15202175fbf411853add834e6c54, bdf1498c6f95d6b69161794484e14885e51e22682ecbbb44f40786296c4bb1587244a8e288032e0bcbf58990cb52125c - -p_scalar = 37 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b3fcd5d1690cd408fa5cbfda60f4554f6078d8bf085faeb3a4fb7867e3a142d6fd6622bc1718ec3cbcab5f60069f3367, 8b9fda8ceb31112b956e18c6682f05f9e8394a3441dccb07721cef83c2f8609d7d50dc54e7f59c58b1421183d7e0877b - -p_scalar = 38 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7772a913e6436cc1e9981ea6820da79f2629ba4fd1deca258b6fc785e692fdd2d4215b4fc7a8baa1483350a5ebb8cdad, ce009b71f07747d2a901000cd90cb631fa7d9e6db6f44a8d49dc5e5114733de2d7e8619237ad09b42ebedca4aac04be2 - -p_scalar = 39 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 814d7fa07a78c189c052f3eb1c99ceef1e9dd1509bf446e0a14967dfac4bbf6273bae4c1694b8b0db14ba61cf97f865c, f57dc465b4d9209c2d1ecfaad6ad3e0370bd843b8c37e2a4f29f454817f65ec288773da65e8c849a5efe5b7d548b4fa2 - -p_scalar = 3a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 104cec0666ac72e09e9520bf57acc87aa58db4ea4f96af4fdab9dc0015b0fa13341cf9d9c46785af941c5c257d0be180, d4ae66a086b256fe3f7a6a1caab704151ee96616f605a75e4a0ea855a964a826474b535f057fc7f560c08456e6d6198a - -p_scalar = 3b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9ba039679267b6463703435b0de64db996a917cf1ed0e31564473b595c322738dfca6897f929974caf467ce227bf64c9, 00cc90edafb9aa3e692645f4261c35e6904cb4cfd7b9c3315330d12284fa68fbbe4248bd4cca100f20f3d552c5add041 - -p_scalar = 3c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 95bb80cece47968c61bba736a55b527784b7c2fed74cccd40402d5c4eb809f85a61fada6fb4f60e8c711d5d1c425543e, 722de40f4b15b0aed603c4d7b76d198944ba5ae06b757c8a5328f47952d5df020f1f0b07197d55d6f606d524e914846a - -p_scalar = 3d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c93ea049ef6ba0062366467300fe51fd5ff77ff2332982d06035e34f772ae08054fb5a34222241e848da1fd3fc60a6e0, 3b33eebae03967d64f59388dfeb992dcf225e6001ad8a898195877ac8f2cfc13c6b2cd3195160b5399bf0ee982c7ed99 - -p_scalar = 3e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cb4c0a54561fedf2d194b7054b14d11703b9f1cebfec21da0c7d749907dbb9af1e659730c1fb476e49a04dc0f5acf772, f6fd33dceb6bb947353cdb137d3b0558c2daf76dd456dc649a9f61a62600f544a0a164df29cf3eba509dc2c1de25b2bd - -p_scalar = 3f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1c9bf0b0f1e52d1ef6159e519a049f7acd7e35f76e2b71aa7a50f7458c949f8f6ce8ead6149a1896c5c0e6d7aaed89c0, ad44c8ed5f5976170a508471c8ca20dd237642b6682bfb72c44fcb17772e80e572c5a09ce13284e5c4493e0be7dfd37f - -p_scalar = 40 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4f5d5ab6d1b30e5cfc8e87cf3be44d56a309199dca57b7bde04b3d30f8a0580d957c980f297a9a37ed4de4f88e89b258, 77748f746bfb35aec11ed876a132c01792683543cfe01da601ae4440ef6f0120f02e3ad10f6e43fe4dec3960cf56cda4 - -p_scalar = 41 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b84c3a6a5fd4266f8b0350b2650b22534597ec8abdd5f002cf9edc15edb63c80becda43b0d1d279f8e469454839b9679, 1590dad75aa44e365d7993db37060f78e689c292776299225487b4d321d43d98495b787bc5266a2cf1e927c3cf038606 - -p_scalar = 42 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 3418c841ef19aa6cab34164b3870beb7acd0361f5decad089983c10a492b899ae22c691d99c0b909b60fb64e52990b5c, 4d78416af80aa2fb6d4b7f1128f293c5902cce5c4f2a515ab12c02e6d597baf65a7f2fbe3d3776f8930dfc5adf64cc92 - -p_scalar = 43 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e462ca48e153035af9af3e4d90909d25556e637e6ef3d8f765d75edaa55d6185eac7dd3b0b634f686efc5cbc8b1772ca, 7cdd34755386b66bf695940fec9d3a06a66f48b939143ffce581ca12c0a61b42efb54e58bd87a2f9ad89c485f5ef612e - -p_scalar = 44 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f6a8130b3a7741e35508c2b38bdb088aee34bd1706035fdea4160def7fe6923a2fd77b5ae6018776af78aa17286ac2fb, 2b984f17d03b99c1263a29e0f60970b3d64fb6a881f035febd88176d8fcf3364a656197694e18dc03fd1299e8683382b - -p_scalar = 45 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 59d65d78a3f735f42c86ee164fdd3ccad4bcc8b125abfd65cc66c8aa0f19981b5ccb2859a1115e28f8d3df74670c2752, 0432feffd8e2428590d361748ce985cdf53111b77d1299432ec51b76d42bdc5aa889629cba2c66b2fca521d883f3aa31 - -p_scalar = 46 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2bd44119aa9079b7d8436f83a2ce4101a4c793741489a3c09c2e8aec0cdf6d91edfdd44e94cf7a32bcef0b6a37548a32, bbc20af538b960b5a3a666e82c5892143bf889a8303249483375299a738da5821d5d4f65989e1ac760fbea436400d5cb - -p_scalar = 47 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0b4faa5a537ecd702b123738fe255dda27bbde143508ac5493ba15cfe58d0a92bf5731b3abb11441c42ece45effefcb1, 065815d78cd52fe34246db11f8ec6a99debb250e319bc8c5eab0d7afda4c1ce57986c3b1f7feadc295bb2f7c22137c39 - -p_scalar = 48 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0966d45a6517888e2ac250f6058daca83b7debe494eaf32810757e2e3f599369f4445a249b234eff668240536434688c, ced3e2d0c97db2c54fef5323f68505de87ab07433c0f52c5384bc9e6546988b866326235288bc8f68aaa33871896c4e1 - -p_scalar = 49 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b89d83e72bf4673cb08db04de8caa7d29029a9252d3731c25b8d230bdf8b9b24a9c2a9b11de8963b43385c32d851a702, 909a50c483675e9df4ea8bfc78479c8cfb1de1fc6dd9a5a650603784b0e2de90607649281e1729e95702c6411e0dbbdb - -p_scalar = 4a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ca50bae743ca3e45a0dd8e3cc10c4f6c40d420cb5c36dc4c02ae1f9150f6a5cc7f3bc516e1b24b64126d4cde13dcbd9f, 53cf2923ca46546146228db7428f7a38a5581a9c35e612f0dba73610ec30dd42ca22922f8eda2e960f8b41171022d4bf - -p_scalar = 4b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a1e0ae0fe6ca7a154a7ee23df367b5c85d4631b4392f8f665b28cf8991549a96c8cbc40a420ab7ef6b5d4014867303de, 02bd279dbe829a9d2878ffbd6a801bba9b1dc61c0fbfd1e2989d5496bcf5128d5ace3d3aaf0546fed59aa11fec605d83 - -p_scalar = 4c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e677b97c61007b808b8d434e90bfa219a7253817daee85404552fc68956bce558c547a520c8d74e1fb2f775e4230e336, 1878e3cec6c847f09be8d23ce6fe11ddbe445e6ee45c22f9585965db1b07aa3f6914734b9fcd9c064015190e08e5438b - -p_scalar = 4d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 63d23607fa5c9816742e060b28a126270ca930b998ce78a327ccb6c0212a6125114a9b40334793a79f2134c12a501a3f, 2bb4ef8acfd302d1319e3c1aa8d6be5922fc6affcf36304deaff7af1b602c3c1cb3281d00cb2e2dc88b2345c13e06e23 - -p_scalar = 4e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 02781ecd4db639eea1560f9775dae55bd35175d9a506191dd3338ff4b743bdfc47842147688c1ced3c80145ddb9f0b60, c186abde517042932b85fcf8b1c370d37bdc719b3b585b043b78f3624319ffcb939d400bd3ba155366c5cfd3dc231ac9 - -p_scalar = 4f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 23b245a5d53912dab3cc818a7069cb7c491c312dd15d01f0e58901a204ca55712cdac248c3b74585ca11d9d4e9a6c224, b468d707e2854daa6be399360cfd7e069e84cfe4f79cd14cbfcdbc161146a13d5fad14c0cd88aaadcf087c75594f4e9c - -p_scalar = 50 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1e8568cca446324620fe8c27a715ace6dd2ec6d351fea1dc49066428b121360923e5c6b90e42d1f9194924b4ad0a415d, acf544bdf9eb5906469f4a101132751bdbecf9c5ec87197043856fc39b7b9be1671680e226dc9c88ff3dec4503318195 - -p_scalar = 51 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0984c2e37cdf344f11238a859f436faff2c3118feaf138afd8cb3560e07b1bfbde45473e86c087853cbdd3cbdb06f682, 6228489f68ba4781a21c729c51d8f958fefb85a11a22d872a9522d0fe70d9c816a65eb2a8c905dbf1ef7c3e93c7da7b0 - -p_scalar = 52 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e6db24057f12bea3dfc6d038305bfc7c87e75dfbed69216bd6021049cbfbd0c2e8c09f59ec5cc866783cc5bb88f82a12, 9ff65a61432cf2d79614842d0111801a128c900058cb66b01bf2fb109f97aed67b05c629b44ff8449b961eba485c5d2d - -p_scalar = 53 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a075b16ac03d7805c25baa03520a8926eeb88ca1c7a4aab58487aa0d4a6694eb44cf847ed2f05eb48e61f0bf44e94071, 88c201259631e30648d5832fa9c3871bf55d9d45ddae432530de56a8b619fbd5b1c3ec8e9ff69bc13ca85b76ec268f3c - -p_scalar = 54 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 00eb5c040d16b7fcb048b60e740c04a52686cba73934e93664a8bdc7c791db8094b80b8f691e858b3c712c3c6323cd05, c1a39004c52046be23675426bcbe02b6781c1cb2727eba5feb1a8d0de33161f1600347ae28364a4f7f3f276fb2237d89 - -p_scalar = 55 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c835025446e64d4db0a08fe1114e6f01d953aaff73256a577bbdcadd053153d82148bbb88207255a935d2cdf9b06762d, 93de726d366c0dec5dce7c601d76ae6a3c2baa2dd350ad0d8bdd58d5f4141ceac6d551fc8e04169618304528ff243ea8 - -p_scalar = 56 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 94dc48fab7e8cfcde61e6c2984cb7e449e30229d0a06f838361494cc0b162b571234181c1dbb4629c7364268d94ab449, bc29e690721b7a85ebc3917cd36d209e5cd08f195f3c1e5a8566ef2afe3b86975b01a09f54df4c80f281bb0e764997f9 - -p_scalar = 57 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1c1b3417a500bb22c4840320387b6b2ef30a928d9a3c3af1df0ec1ba8b80919559424730109677754f11a02e4aa0372e, 60fb90511669019742537e77f184b248ce6bbe8a18aa60f62120dbab067b576fe7db928a586f697e96f1193940cd990d - -p_scalar = 58 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9398236759e97922f158f85541bb965c782840d1edd794907774056232329baff0041e2423786267db52eb03d1db891d, 3be5902bcea7c2ade50d59ce11e7a67cbd7b9ae3c198db4bf80683e20745bcfc590ac7b2d0a332efb4bf33481c7b8873 - -p_scalar = 59 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d0d105de164b7361d63dd29d19e0e2b667d3644ac8e55b7b463df30b0096721f18a49fdc4bf163e00c62094b2d71d4ac, fe3816c64720c80ce2d7dbcabf469d26eb88fef6f4b21b3f9a330faed255dac2879e48e3df6c30811a79a3b2fde8e771 - -p_scalar = 5a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4347b760969bd7f7b560d7e63dc77e7bb34f09fbd045d31e28bd6aae6e6e8e57672649def3c36ba79b35cdf7a7871029, 6031b8801482c98e1001a0af8dd013512114cc6ed63b8db6ad0d3541ec292413dc3151d601531272d0e9e5f8a1ab691a - -p_scalar = 5b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = eb0f52348bf223b0e7e7382759dc3eb7b04b977d42d74f5fa4f6e534bbc2618a35c2421b14ae3f635dea409c9cba0858, b83538fc0ee9391df4f64c4265477b8734871f379c5d345ff62f4cce6dc9cbc12fed7ee4c021d39266e3ae99f038aea7 - -p_scalar = 5c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1031cbfcdef715d74efeec75e724f56cb8a88d32c7b6b5a626905570df79b6048f97bc3df1b9f55b91b6e58f1036e450, c1f7f4cae5df901da1bc3e946f0c72e2c2125f7d57596e065b2978e2b8d52dcd31169bb7d9356b23551529f1d234dcf9 - -p_scalar = 5d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 813355b3430aa2d72df91689cfd151547a3545de7cfdb00e1c634764b16142cd1b1cc24f5380675eebd14d71e32d80af, 3f8e0c70994062f638e4c6ab6f5d971aa8d5bda48e98f234018357efc34f9966261cfc071fc54486e9231d377a0d3581 - -p_scalar = 5e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ed9602dc7912de8d89dabf40cf9eed19f4db0ad3ad1bd1192e2bfb0c25998b5d4259f70ee435a0deb134a04174225251, 7bc3be41639313209fef39c6248c25eefc0b0623143223f782ea0dbc32343506879cd4b6bf767610a7a492e83e606dec - -p_scalar = 5f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b8f42fe52fead1e4257b0bb5ad7f23e10be90befa27d2b794a607b9d0ef989779f74ca169bc0cbb10fc0f2630dbc3c91, 4492b45abd20d7919ac9b212aa546c0673f09b17c4384a6eba33c0eb22660603afa0181302869e8221871bcfa06c4a6d - -p_scalar = 60 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8bf3dccc39c18b96cb4aa43c9741eb4226de4c6581998af2ee21597e52ce08f68fd61e31148840d4dc5293851d15bba7, 4da80493a5bbcb5b311f7bd0a2a97f47062e615f37cedab47abac690cfa11b0eaf81dbf9822783c6991e2a26278d67b1 - -p_scalar = 61 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8c081acd170d807f87b1e51bac06961610241ed16fef9d9d8f273e3065278f98c1f0db004a49492c7cd2035d7f5c54e2, 7c3948713b0fcff9b3c1db6e3b0a969b34b81b1287765c61282db10bcf1fa22b1b14aaec2979a40bffafae16e38c4a67 - -p_scalar = 62 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 458ac76d0f40ec396e6880f15c434085ca861b4d97740fcab1bcd42525fc2c50f05e0ddedb37f6ddd2872262b0a9e00d, 588efb43001fde0cb63e8243d9d7df8c846959120049ed20ffc36e0aab1162a528fdfb218f772d25a02f6b017b751bed - -p_scalar = 63 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 648c5f00bb28223ad49cae0982d9d6bdb9b2e6b479c8f8bd1b41177c708ba469bb4f9e0f41aa174e6e3835a9b05f84a1, fc1e9674cdd29c42e08b6c4e89e6f2672908a6272e5f15f7998aec708f7db81d01cf69217e5f5c72fb0b7a8aa2733b5a - -p_scalar = 64 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d884d30b2f03f287419f4d2eab386382b0e595a155fac50e100134e2338c10e0f9d9c4dbaf282e57a350c4fc01834066, 12396f36fc1d034d75751338b50246d6ef016d9f8afcb08dd5b22cabcc25394a75eb8dbfb6dd6680b581a6ca09f8ae9c - -p_scalar = 65 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7e2392bf7bc814db9cdd943547a18710d73b1fad8b8b5cfc73ddcd2c2eccfb1ab539f5fe50c66d708e66c6f69b8adeac, 8c78d2c9e8fd1e216f649a90bdf13efb58c1e2650ac17fabe010be7af529796b001223dde2983fb26ebe6c4093708b17 - -p_scalar = 66 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 180783fc39489b2827c614bfddbdd7a57befff1cb90a319f1c0f6241bb2863c829591fcce7274c8803802ee80fa4f860, 9f5b2dd5d9095a20b3937037c7e8aefa5b80425c412a1ada6172a1f445c5fdc4ab9b4514e4c8c458d576509b865161f9 - -p_scalar = 67 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 590da88e64671048113a7902e3da530d1ad95a94f23d84fcd3f0d14329c21de1ddcbb10eafd402bdd24cabaa21355d5f, f3618ec88d8c2412291d2a59d21bfaad9fe42e3ca7052e3c681444b12790b201e5ad1b1719d191f40b5a7d7e6da40f25 - -p_scalar = 68 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7117756e39dcddad381f4f06f473127497d1e75fd9f408b53dd4f91683002cf1cfd364cca03bfa6367126ced901410ec, 12cf98f9c880fb304f9bcbcdb1d380890a0bf8ce1470123e0caec3c46361a0625c462290dcf3d0ac1df90ec569277518 - -p_scalar = 69 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d0ab3e3a99ebd09c022c75441a806542862ef39c275075e3077f30e5dd2c23bec367d6aea6e201bce6e91985e5802845, 33c518d392768c5a31450ebaead0e6dc2c2a856ab8dfda9fc8d3dc5656e000725a30c9af5652ec94829810a0266fd747 - -p_scalar = 6a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b380f170bff65e1c2633179cfa6a8ac6442e0f1f36905deda01780587776c7fea1295b179d724fdf3d303c72138de192, 0e396ebe68e2e2a44a5ce29540ef369ff960b81ef512e7b4e1f467d4b9cd0f5af83cb47d7e4e82c85099312a2a6feaa2 - -p_scalar = 6b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 77964d793f740b4850994c4960a91622ccd4f456753f40d027c6ec25a0075d4673c21e204f761490d718e8e1f4363f23, ae7d58e8d503120d1e26608738bc71c66a2952ba479a6b9cb77c8b2e5d80c05f7bb038641be6c2860b36aa1e09b812fd - -p_scalar = 6c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2a532f0ac16a417882f24a114cb0b8671b23e3f7afef0b5d589f30567bb8dad3d81b74529a67044fa26631ef443c7161, 9d656f406511cfc08b664ce6e12f221cc3a74a19c3bffdb67b27e171992bac6e567a255c91b54316d892e8f1bfc7c314 - -p_scalar = 6d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 6e3c27bbf13f24033cd18c33b9cff887a911a58af0d93abb5841c5f8a8dcbdc89c7d35833cc1184b0efc2e27b2deb1fa, 0b3b93a9e67388fa781e65b180838a978a52cc350a5ebee2d24a804b0a9f250aca3226f3abd6b3faa4c6e8ee15acc519 - -p_scalar = 6e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 26956a5b83e5bd0bfa63d67feafb4dc8bdc1c92475053732ce481ae68d2624c8a4ba394e85d138d693f846d4906ef776, 3a600687ef91f740488a5078961bbddf9e28d8d18a3fa9b5406386e38916beadabd914f900eb7ef4053d8f0e8f351c5a - -p_scalar = 6f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a158aabcb9bdef14c3907b518b02667f27552012c727be036744720b50447fd908e0805000765fab8db3b74805be74b8, f6358897f7d8625639b4b847dcff260133071e06b514d97a5d00ab436c3cd9e5ef6a411a1cfa0469552205fd0b633a90 - -p_scalar = 70 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b4a6714762f45dce83f2fd2cd8296a52fb25e37c9710b70b2b5609d5504c81290d20370a5d66455a2e20654839d6e2af, 07d446bbba12dfb2465e614a83e7debeb8c197883557b977c1811bc5d13895e7e958e332f493b39b57e746425ea39593 - -p_scalar = 71 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 869fcd17ff86a9864a5bdb048d7fa0c2e9815b09139b7fc5e72215ef852bd27fd2c616d1bbe33572f85b86b79b0bda12, 5ef4c20daa086bb4c2f12e83ce4788a84080212603ce449896678dd5184edfd5463ff80d2999b2fbcd87ade96e250941 - -p_scalar = 72 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f80f423bb48af0e8e53bd76b6e4b3bc543c2a97d5743877a559b40a286dcfd8831ec9ab137796cdcebbc6b4cac6a280f, f338e5cdf43b9b91b66b98c79dfb532f935f8addb23b5a1725af72187ac62ace0b58d896d4e3b0bac6f969582b773385 - -p_scalar = 73 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 274c69657350982d84442a4123c50746a97accf432406bfd33e868f326a488269120f7b3a043456daa4e673b34498f56, 3f3a420930a5ee248afd61cd30ede0fc2065cbc509ced139ff23c6477b75a478c140e24d13851dbecef948056a236155 - -p_scalar = 74 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a40dbba76a0c98442700a45b812fab5c2e56dde7119ced404060d22edb6e808b6d812dba7e29445309e7d232ccd1c14b, 3f52d8fea7e3993a82fb0a4636ef3bfd01f7b3c0d9657c7d7e64e9a13ed8e9a24b6aeb0e16771d06f5e3834263499cfc - -p_scalar = 75 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f26774cd7823568b517a6bae23acba53ad9e749a9aea738d613e5294fe8579619532b30ea229d070fdcce7a80723559a, 8faf654f7d4f688c85ab9a7d400ea7a4598d64724d867b7e92663fa0f95109fe3934c5b31473fa846bf8985f51aceeb2 - -p_scalar = 76 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b8027be64a5eed689d19bd63befa48da4496f5a023133af12541da528e6a2448d1f2d42a406775a028f0ab7a080bfca5, 546c7955b5c108186699c66069c511df0caadb2f4bbafe3353ec47eb620c028bf87e6b6c22a321dcf7382a5e694f97b0 - -p_scalar = 77 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d2fc5c57998b057713167fb8ec9cf4cda4630ba1875fab27cd55e7b421cf9dde59f9078dab73bcc4732595ac7329d8d1, 4e9ac9d775bf5a3265e44e536dde485c146135436ef6481a298859b7662370b84d24690cf930631489ec9f3fa00ae490 - -p_scalar = 78 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f392f9632f3b0feda03a6787986794dbcd411e349499fe4eaf07a03eb8994b40d3259f2810248af41b3ea621f3c6f15a, ac678a7865e25b379e40a6c0acd1f133c36985b9b3c8225b33419045c88737c67618c264ab283c770c8e99083f75edc8 - -p_scalar = 79 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 79cd3f1e3891db8165df3c959329f7e0c29afbd47772778a6c33d5d6ba6744e48c9a16e3a896ab1e5198ba40189dfa8d, ee51125e39b2f6e9b8c2f20607d9a48163e2c65748e90de46aaf85ab51b276790abfb09316fd719d355570f5287bfe64 - -p_scalar = 7a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d109b62984083890da5fddab7e28aceae3da87e136a2812ddfffe0dd4cbeecde89a9a5422a1a0fad53b912fb21a3720b, ebbee398404882a8094722669ec58cc4fd488003ef88503893198baf14b2b31e0f1096c5d6c0669988bbf6a48d72c11e - -p_scalar = 7b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8e4a4f6321dc82a6d4d6fd78550418d24b3d05ee4295440514a9c3ebea80907b46b07d4a2a1018fe151198480c4c0b80, 8b3b9d12e5867522fc4543133da330cc757954f0b670bb84a57d50c160cf08167c3945fa8f877360e41b28095e874626 - -p_scalar = 7c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b4bb1133ad9267aa51cb20d25f083167238df4864cb95a00bdb4385fa6f8277692f3dbfda1435507f9e5ed57d99f5989, b6576363085ed416461662acc304f6746abb244d2b1491cefba31da3a16cdef2aa5b6ae337599a9840b2ec55b0eea403 - -p_scalar = 7d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 03b2dab245cf48ae7ad6ebad036703ac9436a8cf3450356d50ea65aa46f614e270f25677719d6ada9612b8bc3cfb44bb, 76cc400a8d0ca334832a58b44ff6a7fdaae0be43de6e7855130ac9be1ee6547020c048ce12b0aa5bde6ac2d6bee8f9e1 - -p_scalar = 7e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ee82cb5d4c686f3145940572b53625a29c14d45c4d73654245b97c7577b60ca7135cfd8fd9f0f5f0ee101c5ade346cdf, f84cc9fd3a1e1353420c5b2e50458073066298ab1fb507aa068cd344b0be463beada14c64035692c55eec94a4f3b89db - -p_scalar = 7f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = bbe34e740f395db4a92bb11bd6e0f09d96fde63874231e0feef28f34522c62792aacfa4c569604aff7753246eca101ec, 3816d59e1c6b7f960c297cd1c984d06b61d61cc652e7f4f1772dd5bb5b983ae5a9674240fe752a555591a623406bc306 - -p_scalar = 80 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a6661cc4c241720a0336aab8777a16d2f313389118eb5195c0dd449e7c1c39840f4fa5eff21af80ae484fd9f8258030f, dc62354d5d8853a4d9a811225a86e31c4fe0e1fbcb5fd594a27a5f1b5fdd385add7697999b9e1c7d987246905810532f - -p_scalar = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4ee443f91860144e0b7f54eb7e4cf44aa177ad14077777efcdc4753ba05068eacfc4718769f60e03c84f917203bdf6d6, 13008228729a0c753a42932184d3927143b06c0b5f389eb51436a70547324930aeeec827bc93e4abed8612b3bd44956c - -p_scalar = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = bab3aa8c60a8a7a71cd9c342e31644be358bbd6e8948b6e231811365ee61bc954043079cd23ad193ffec6674f65de0f5, 7ecfab0112f66eebb14d1c9b4d5119283695fbfe8c8af29176a83fc47ae85174082f4fbdbbc666f31f9aae615c8a4149 - -p_scalar = 060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 304eaea00e786d5f4d6a091dfab87b368618aa02c421c69415aaed42cca2f15037ba0db6f0f49278ffe3104b684456b1, a8a7f39ea0b9f791808035b692309fdfa6d786e7f62179f09f6b7dc4858f2bdd0a81c5e552c78572f41688b9d3eebf8b - -p_scalar = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = bd6066681a87cd4a06737e54f91d813ef972804fbd39a2bc6be6abe3b91f14827be330a822fbbe61bb39a17a7c34f095, a2f436dc0698e2756280be92f981d3e677ac320953faee4f856c51205a750fbc47df957dcb50297040774d1b0ac72a91 - -p_scalar = 0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f20e5b8a6c7e9f94c3bf31d408595dea5caacb6256583c442822598ac5d6878a19eda013c543171e9468777a2b389b27, 2f5020a46277c3a7473f2ecad34250dcb7e5a5d08323f283d42b8a7b429771fd8c51a2f1d6c6558adab768c9f4575e37 - -p_scalar = 0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = dc74d638c785f1439114cdd012def474f016adf1c094b38cbf75bb57da4d6ac4f60262b5dbbb9e4cf3b6fd79dd3532a7, a47bc7cfd8efbe11739fe9ea34f70cb0c7e203f39c915949aad97a4862211e09e0ebe7863432f2b3215f9f2a5726f444 - -p_scalar = 0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7b81ecddcfc2ca46b9e0718a467f042b49a6481891dc89ff535ee486e03c0851ae3ecda2761b94ba2d268da9b28bdac2, 76efb4917a4400ab4673c23fd4c7db8bc7d1c011cc7d8f381b2408c6389da1632bb5dbde51445470c516a1303e999b72 - -p_scalar = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a24c76d1da73b71a2ce33c2eee858bc3f02750715adf71d715f1ddc63eb317f94f1d082ed0e418512e7d0a16204be028, 93529833f5ba7d1e7d30553d5d1584db2eeedd5e5b8fe68c60a40a598afd219a1030e8f9fa3069ed610958f6938f3b7c - -p_scalar = 120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d061fcb5f69a732f7c30fc84cca23e9d1671eeea9772efc6276d435bd2141b0ade8b59ae0034465b3055ed97444bde46, c04827c357449a7a8165f90e7d373069ef875d5fbce1ad6c0cfac5ddffd0a06e313f72d9917ff1257038cb0590a4b0df - -p_scalar = 140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 3ec851d706c4d48507b3e8b9191a320efce43e873cbb2b3faa299008a84ace074399615939ffcb3b139d9fef6bfc08e4, b38e4855b2075e4d334e875f4d641b73229074aecb099ec8a74862fe3bc654db495a234cec3ce2a3fc27598e5b447b88 - -p_scalar = 160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0c80134604501d21436c61161861628a33b080bbc3350983e151f53b35fce45855b20bc8b9ca1f6d3d7718adaf4b5201, 13b77a209930b29275dbb75bc326d08a7ddd686b4933eab396894f43048371c82c69dba7ccd2803c7a68e7f19c31059b - -p_scalar = 180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b82c99d2e7c3018092587306f37f0bed46d4729f1771c5d3f05086ec827e6cf877253434ae2c30f292bf8c4508359896, 585becce769edfb1301286a0d8c94319e5e52c115a287dfba3a7ccb8e9a3dc7280567b4066b2250a11febe244e97b7be - -p_scalar = 1a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e9ba9558a68b98f9bd1e67afadc744e38aa99096770fda49bc4bcd77827b62965a01e68261e78db2d859799609f11ae9, ff718f66a3d6334dde7611e9bf820beb2a4d8cbd770d5a3ffb7c1683a3134b499764513ba0f2774da362cddb35b3cf7d - -p_scalar = 1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2f6fb08031e6e76933cf684789a9d8aee4b51dd0c9f579443a5902cee85717c53aace28e3573ecf687451ca71400851d, a10da9d2f37fed5b473ba83c43e82e035d36cd365df670b97b289eae69aef653d28c010a187f69c7b40c25cec487252e - -p_scalar = 1e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 79512b8991d197c27b814ed800fe704761c1b06eee7c1e8878b310ee8b5624461fad39ee9819618481657860b1637988, a5c217cf3370ac799e81a6a83a12f5fc90e1d178289438fffb78c28ec5dd99f3e8b49bf2b8844a509fbccada25190c98 - -p_scalar = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4ebd334b35f68229c85eb23d57d002931fad8b304521d7e612449c4fbe35109c72913696e37f500696a1e74f51e4de5e, 512b2421f10a98238d59508a4445773f15547e41c5e37994f984fba98a832a8e3d4b2590ab9c21d183a47998d20a530e - -p_scalar = 220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c51c0559814f7d9f39d71b35a50c71074a2d6ca29d6b6d55e462100285a8942994ee3cc9bc3e8cc1ef3a7281fad592da, 84431973e89feeecdb19650cba8830f3b5fcb4c90ece33d911a5f705ba3963ba977a9da1b98e62a7577c3de6acc64321 - -p_scalar = 240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 381e5b521d3f2ddd9386a35d4868dbb2031febb3374661eaaed46bbc35052bd18fb9294a8cf4e306085e33cd9273818a, 723faee0d982a3ebfbd8f80058bbccab451d9d51b6f3e6960bb92056d46253424f03660a6236a50e56c75c5be869e812 - -p_scalar = 260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0dc856f4656e00edffe544b3f3263dfa315acfccee43b8b5e10e7ed2dae76c71a9f177e1273679c8fc9aea79a04464ab, 73ddabadb693e292ab3442bfa95b6db8da303ec64e018613aaab5e141efdad5a0f38ca039c5c9547732e537083052aaa - -p_scalar = 280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b4315ab11afe8540cf6ba7db0f63dc797ad61b8ca57dbcbc1f719f7036fb5a4ed86e85a483e43c268f0e1908fac2674d, 3ea75d8ef49242ba648f43739f2d59dbaa7984a9baeb69763167a764615478200ae6960f77c75ae2fbb717aebda3b20c - -p_scalar = 2a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7c18a7a8fa5753e85b6fd841f76a7b01cf6220d49d0216138213e04ad04e93359c03aa457c714b9ac4645ddfc70e9172, cfad7cbc14bc2872b5747340ae8b0d6d63c30f3538bfd28a48a143f3ca8df31c0e68fa60dde97002278b8099491628ea - -p_scalar = 2c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0005bca678d1c0ec1a7c4af600d31e7ff4a4f3afab047cdb8ce2db1f4645152c64ba3bc73d501e010b262f808f1915f2, 08b971756d2d7e38eb6b39faf23c3dd3efa4622d039a848db05c781a0334a7095d664efed15654200a12eca1901a144f - -p_scalar = 2e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8f21250473e722c5d76624e1c9fe92200eb5e4ff0b57513b30bb969b7a4289a53dc876ac1ac8a2fc9d420780b42108d0, 2f8425b13a3e5b657116a5513b69263719bc16c91610a5ffd5954b9afb73fc2dfc3f76208dd4c7d2131ff93719bf5b9c - -p_scalar = 300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = af51c5bbf42e0e7c92f031be99275c32ce5ab665d8d544e60b06aff65c27f5f6264a09f3f9288555597a26ffb4dc8600, a524d72265d5336447375920ccb2b0a80326665791d3352618c02d6606c04822a7c045947b8cabc5a44d74fae1c84c92 - -p_scalar = 320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f2038e9fe8e9ad7b08d7d0b167b00a8b732a3b217f4e0b07fa70e3732c9139e3c6dcbc31b570e7e381eedabc8f38b7cb, e80e1e627072b0e51c5a91f66178175a5c6cc28e16a7e540e33de54780a9a6a0fe4ab4da8dae1f6f3cf2282d70341cd6 - -p_scalar = 340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 308b37a8d48b9574d1ef46340be2d8415267ded09aa9a5c005037f26de2f444ac6d97d37e7a97f33c760823646dd14f3, 06616ad0db0742c4ed9afa666400dad08e404743f47f0c44d2752219d3c638a4e2ae9625c7483e10efd08788b78452a4 - -p_scalar = 360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4ab1773e6c85c123d67aed02d15b1f9de20b10f1f1021adf76cbc49717204f9387590cedf4db6d03c3db1f37120b62d4, cdaa5cb4d62ef982d33d06dfd82ad3b82bbd59cb0653a72c22bd3ac43fba651f1d280695af8cfc65a3b19b4b879e799e - -p_scalar = 380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e9ecf6ce198c99f00f6c5993c82e2013e2f87d5e2973be1d4200e00670744f159fc75c0aec6afe4324496a8b7a8a6d47, 70fd207c430346cfb0db45dc0c26c28c1bd8c5edb430039e7169d0042f044eca410b4736cda2e26c34208dfb74c827d7 - -p_scalar = 3a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4a7788de2d65774a2c8a2246a3e93b3391e674f5503557f209fd4dea45f979bba7f9f7519579f6d40c595629484cba20, 76d049fa10cfa0051b8ae5cda2ef7750ed65cae4122be0c7e280d3a70a077d40518fddfb79c4fb656a6b3a6ceb96f0b5 - -p_scalar = 3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 30568303868326be1f28862ef23931d5623d44b9e4a0bb425bdd4382a7b62effca4ca7cd5a03c014985c8f4b0614348a, 9266f3e9090a365bd0afc6a2eaa1516d84cddb6450c0f2449d48b7864e18f5640b23fdcbf53b5eac7af2d5f37d1890fb - -p_scalar = 3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 37eea04d226c0de31df6b241f5ad41bb711e5b378c68c6d120f84bcbc82761b390c700aaa28b9162a408aa1b48819870, f6eba360a17d1187ba90d00ec85b901f370744f7dd12e22394e369f18ecff85f9d752e700d32c0663d4f9275bb3be3d4 - -p_scalar = 400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7fcf0ecc91251b6e64f27976d5d7412b1a6ea51a2a883b7f340c8ee3ba4a3301ecf10abc47bb619e3afdee277d221ab6, 76cda28580691fdc2c8c6ce171828ed40f7c672a2abd989221c48c29529e4d33c71b74681d1ec1a7a0c070bfc9a4e748 - -p_scalar = 420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7e3e4b94ddaca7970a21251f7cc002a4391e974f262a7c900fa492995a642da315257c37b24074d0000d342aee928391, ac4d8de8e7fbdfd3a3e2ce952754e5bd602003e8380b2fa8d4deb7e952773296442110fa173f71b837f3baf08bc1eeeb - -p_scalar = 440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 63102e93ff029787e2a938890afc827f951f92186359cf06536c999ce295c45100614bf206b7e166eb2e48c10bf4e94d, 1955615451d5161cb783176f1ef117c8c948168ee33d0c4b3f6cb359379fbcfa8cab208a6d78bd4054d68383d53769ba - -p_scalar = 460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5508188555d35077eab1751b07c4cf3c9cd6be7b2601743ac8eeeb6ad5b89ac7e6a752c4783e3da875218ff22509a1df, 7f876cad80e31b1080ac017bf9395a31b34de2691ee18cb6ef35ebc4ed7a1d7f0d9a2f530e1bffb71cea455ffb89bf7f - -p_scalar = 480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 3838356a53264b8a5239b5c4109797d6ae7b59c5fbe10a477fd7fd8eb3c2eff77db868f3a950dfa26e7a578340517347, da35bafb93241a0121950f007cd7d042c209b10a5f90c30c01e5527b9dbe5af49837910a96a705d37207bab4cdf573a5 - -p_scalar = 4a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f27d64f3900000b28c140f1444bee3bf74ae1bb86f57ac995957f390ab2f9f38b6c4ad7e6725e6bcf7d0024dbbf692e0, c93e0a580608f90bbd32397bb8005fc96584d5679eaf205bc4a21f50d1af356fe39bbe0788233bdefa20da958d023979 - -p_scalar = 4c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1969eca437dd1341ca98c4364aaf2f73c0c88af6aec23cd24bea31ad623e7e55101f055acb1b1cd5a319340d6e6c0deb, 3fdec13a97bb25fa581a98ff866ee3063c2ef96b8b0d9d16e6613f16c291563a502366abd150a4f794fc67616879923c - -p_scalar = 4e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2117cae94f663d08e5bd0119ed5225f74fed82fbb2d8dbdf78482d89dae531a4ad937387f2e050ade0732f6de3a1e252, 8d4600665985a453c66519d477e41ceba2a18e47164a495cd694ecca40cbe0d2a761dd7e61793aa5664b811d15e06487 - -p_scalar = 500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b942add81ef8465b860578cf416ccf69f307823e718c8aa3f9fbce33a82d37361c77a3054f1e0d095adf3d9a111792b9, 338563147ab01625940996b76e59d9cde0ade3d2340c3347066465723f6256f31986d10f4fead757611f3069326b8d1e - -p_scalar = 520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5f3fe3e3209d9fc047f02c4abc4c0e4ed15761fea5957703efaa521a05781b37a23f342d40f5ab43c72957c2b56c62ad, 7157cb46734386bce998fc7d6cd2be7c38bc6b8bff408edbaa881abd5153c3490354f35dee8ec754e3ea6721a9e4ec84 - -p_scalar = 540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 84422ba89c2d7eb037b11137f15f0cd229b0341dafb73ad113fe0588ba057fe284c5d6a71a50c560fc9660a3c8808373, 3770f3097a3ab2ceaca17abfee91d2478f3214f360dbd5bd6f776a561fd288022857cfbff74c857bf4a6a53bdaab1080 - -p_scalar = 560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d2fcedcd2a1986bab43adf697bfedda152ae359080ec87ec825104bc4ec82e0f6dbc484f2356b6a44dbfa5831af13e99, 5261fda4c1925c1fa0cc0ee1441b396f0f7720215384d0631da230513cd2a7f508b26d973901b0a8cb6aeea7fba5287a - -p_scalar = 580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0c5be4a1ab204fb0ab8802bab8da8e68be6bd7b92c078aa8716574c5e9ae3da03d081c0d7f15c9e3f534f145e2290eba, 54d4376a8a45a36694acd76e19aaf2c37aac983b6db13d2d6391d31f44a32d01c6d62f277036485a52da3a12f2c0ed4c - -p_scalar = 5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 58ec20b5fa1aa22b08285f05e94af0d0e9245a047205187c5d74a59ee05637183b0b3ca6276cf8c41cecc6cd72c1dbda, 4f1ec02c9526a9f048b631552625b7fd338b50c7007ed51c98a85a3f92bfa6d1f401017164a37b8a82c98eb03eddff7a - -p_scalar = 5c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 71d663c80482a61b9e9c222607f4b670c77375da47644b079d86bcac8b5c43fccfa41da6f89ce836b56b035e2a0349ad, b9eead6d51f3682c75d428012b22fc2164b9caa69ce467aff61f34d58358ab730e312080b77cd4a44bdc18c710dc8bce - -p_scalar = 5e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1ddaad3e57a8a6ce086cf9d3c08d007d4980b91eae21ee2813a6eab45a5f233af7bd1613d7e0ea774be55e045320c643, 3e955126a81a59d3cca7825f07deb834ab6bee6e0f6707867f225943e83b1622b259aa24ff33c2bef82f3e6347394acd - -p_scalar = 600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5016c8533573235fb1fae2fbf363100ac12df68cce52defb1004254501c4e17190cab0eb9d74e3f6e44e3f864b3759cf, 3e25bf2ce0a7984dbe389ee00ab1b789a540569ecf788d16cdb67a7ca5b1ee7075df2bdbe807b10d72b2149ae26dd164 - -p_scalar = 620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 976a426e7e387e5c86346adfc17b570aa537fb6be3a14ebf219a097cca4d32e7607683d6d30481954490d42249f884ab, 9dd33f7fcf495103740b47cdeb6949abe5926334a1df5215cbf896be7bab917d078fae93b4ff6bbe322ec0fa9b05dbe4 - -p_scalar = 640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 972877d5c351148008e952e365e5ebabea435fa0e9ceaf442a773270df98069e7dea27ea124874854df02a7d3088aebc, 82a0fa5c055e41ddb48d5e19e6cab8ae82678717ee376eac44486d1d3cdda0de1af541964738386910a97a08a65fb32f - -p_scalar = 660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9c3eb2bcc338e60ca5e4a81611e943ceea32131487917fb3ff4d80e7182e7578122d7b16cd1909a4a9c5286d78c8e4f7, c578ba0bae6232250cb948a56ac704fe67f0783709fa36a7b3610be264ea29f31e36d0464ade815ddf1a75248db896e6 - -p_scalar = 680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 762b3406c6577d810accb4a7922d3b253a998cdcc8995cace659cbd6ace07e138540213ea7a3f2f761dd7692f27eed54, 3d82ec206747984ac97ea21d38dbd7b54928d08319b6f7f7f7f5add98c46732b80871fd1733643a05f624b0b81fbc8bf - -p_scalar = 6a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8df49d947bc531c51cc8fa418508b201bd7dd40b7a34781499b5020891035d21e8d66a73fbc1180d5f29d3aaa7d9e25d, 724eb5e24590c870c314181f86c6c208c04be66e5143f1c4a93bb7e8b51f62eb7ab245e80d096e80a8d33a9e0f3799a1 - -p_scalar = 6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 490753350b7e4afcb041ec67cf575de55f49ef880115b9a54771281390833f18b5e8876c499a1455bfeffd5356adb6e4, 7972f945009f16bc020897663e1b074bcc11e91d866c112957bbce591912ae666244e7e02505265a52b23b5fa0f460db - -p_scalar = 6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d93bd14b4b11ac38c8de9fdf7506b004184b98d7ebbb8c4dc3c2cba3492a416a313c0cbcbb713c2501b7f6985f7f481b, 17001139e9c1cb5a7d49a5a8d893102d9cce21c6e64c77d20c5a4533f7131e466d4228a3609187deb8eee625ae4482b4 - -p_scalar = 700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ada548c3b46f1e376b9fd3f7f19df4bc7f7009d735b193cfd8e497fff172c7cfa80a8c0d2771235b46303171491ccb92, 0122c58fee595cf0cc7fc5ef4887bf23d6592a2886470a33d5edefbdac61546910ddba285187106678391557385dfd8f - -p_scalar = 720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2d56966a409303d605de72b7f70a3994bbaeed33041120a96122ec75d132b62c870346945bf287ec264b3d9d11eeb9e1, bd4e11ef7138f960033b5ad8ea99eeaae73314f1990b214056f0fdace1baaa6455d3f1fe657bda944a2d59d718c5f4b8 - -p_scalar = 740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 24ad6b0ca28c80673f16d1ed3b5fe8d68ec00d9fc04d8cd5937a15f52a67b12bc1413da46682c7795d782a0778664144, 23261b17edf4c77ec88f1ab2e9428a4d2979148dc6c7b1ea8279c0a4d53f3dc69d3b3d4054d0587a22e1133bcd8cd4e6 - -p_scalar = 760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 326448a0597de5b3e6361a339e0e1c54fc3e322c7496d0809030804ef95021bcd40b4963d24a2b6eb9f1b4ae3e29ef63, fdad564661686c1a9f343b0dd787a81dec8ce3d8ca45e7ce6950c0ef933810aac9ec4351f39de788946a3be6d38bad81 - -p_scalar = 780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 20b358444182aa555d43a4a6191cc808919081881990c13c49b13eb95acc557287bc4d75b1baaa7ce3052838df5147e1, ebefe138cd93b2c77a493afab8f041eca2482f96df09713a72ecf4c6ff3a516039191f9d8dd16e188f2b65b698f4e02e - -p_scalar = 7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f04df323cee02f61cd5a7a956b1f77beee55d9e0594c44ac013ec26cee34c1dc43011b315c10da9bcbd0f599c8e64d24, 3bbf69ce23eb524e62019c75ee460c1830fe65422caceab95fd6b7d4bdc356fd4c3bc93dad13893632bfd92f26917ae5 - -p_scalar = 7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 010865380377ba8f43a195425fed884fd7323e01a856ae6b6c8e22676e97f5af75921e487576c3ddeef03450e10e8018, def29fe91da5df8c2208dc13f5ee047cf372cd74226e7adb51f674806198412e39031a730f02bd7e83242f9637d57098 - -p_scalar = 7e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = eebb047e6d7c9413a7235359a60a123952d9264a3ba048ebbfb45e7b89486d643ee8c19f0b66d8180150d085890f1e7a, 8519c5462deb0512327cc059bdfec928225b7d2bcdf8790e8e1db2a7d9bd9a1e33bc0a88c290de96d5018d1666100cc1 - -p_scalar = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 60ad991e4e4eac458e5c12139ee4718f77b9b6dd6816b0099aca885c1a0d58e235414174e52691403c90a59f85adde98, a16403a3d6fbfaedd184b638908577d0a066f6d2bd5781cd345e0038a150c1545340b14ca43a02d53ff3ca97b28e09db - -p_scalar = 820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1f1b6cc936184c1f444217e60b4b3953db3e9066d9772914d5968b29ac900f4c39dd0be4c1125a63782903630deecb3f, 6a0beddc911e8346635ba477be864d86208b4383b4ea87e2636b535bd4d52dc62b2bcac9d3a4cff0fe9e8f3d8178c485 - -p_scalar = 840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9db0ee0b907f2cfdf5b944c9040b7ad4d4447c1b20eefa54e8804ab3329a0b9a9713a5e04894f486a31d3524b295958d, e185803564bb842bb06adef60ee8d432d4b835f9dd2b21101f99c4a54d63c2ffcec8dbe057cae89bf4e5e0c6ac7b5666 - -p_scalar = 860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2f6bdb104cbbe283f9c8e74d26b173fb5cd20671daeb6361192707699fd1661b8ad7721233e84ecf88f2de40a7b3fe4a, db87fab8a373755a5636f4205e779451cbe80ad85c00c5aef3ef46f1042fde764c20f4d91981c7ad073ccc7a27869ae6 - -p_scalar = 880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 6847c20de211c90eed3a6508ea56be90d9b625dcf9ce0cde6459720f8eeefff520d0c4740dcd66f6c9898355ecf2a473, 9383f9a522c8f088b631239cbb8f18ab35370d882eba47ceceaa78b8afdf64b16ddd154ccfdc2e91c92794138e58c311 - -p_scalar = 8a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b1516b4697bf25d1c1c0468307a8949bdf7187596ece704b26adc1564300df17ec96212c96174bf6bb114c0747f74319, 234f8b7da26d270d3ec2ee3caf38512fab41797ef6ba1c473dc159efe0bd95b5626c2de4999b269f627c05afb749f7df - -p_scalar = 8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 02a37213fac8a477162aaad842f412c5aff5505f1070737afb8a08285bb5202d1ff2549ec4c9347646a95735f8171804, 2855e2dc8727d0655dff90df8191179819a817387d2fb6ecc8c56fc624e1a5be64195f4c60399878fa006dc86cd0f71d - -p_scalar = 8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 80e70362a61f6b8e5b9d91d31e8f6424ebba130bb3663e1b6a9f149f55dcae398360743ca827378dfa8cd197722395eb, f1e2942a8d5c7363a0af2e50a90f98b9fd280fff71bba7f6581ffe8717c49efd2f60851db832c783f0a9601e20f2693e - -p_scalar = 900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 3a34819d7eceec8835d9fafccf45b75b22bbd01853e14183e09f04e6223a0ce868ff316015c6f7f5fa070e22142403d1, cca372c94887b183e61ed2fa9a17ff557188260fa0812395f37ffa9a614d5864bcefc9297be2eafa26308a982ccd9d2d - -p_scalar = 920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e70634860b99a9811d923a955e2994097a0a8df4a85fab6ec4a354244dc0e8bcd1b7191b3cfdbab92ca47e98ac1b85fd, be30bb9c9ae22a739e20ca5d78d04cc76fab008306d8bb083184d3cbd8b8ff39c7d3a6ac56223fc8d295a8c53bf99afe - -p_scalar = 940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a6e5585e996d20338e857069e462cfa8f60ce5d991f1d4875c240cefa3ef520288322d8bc225ce6edcac39d87c1d9f4d, e44d741ebff7641a073463d95acda4738b4ebbcdeb76dd6eacbc5f5d5cdce112326f3ebe06f8140f8f698a5ba9d7e195 - -p_scalar = 960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0a14f23eb0470188da64bf1e5628f2863ba37c232de1294438d28dcfa9312a5e224f404933c384e47b7bd39f39e00e98, 3bd23cd7f6e987117c6ccb4e084f8832807e360b62edf959631e8e954b5513d363724185fbb3c0d4dab94dae3e1d8610 - -p_scalar = 980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 6189f5e41a991ea2da296dacfe7d778f186d3d934f810d8fbac785aeac0939e3c7c9e5f1d27d1f312bb6e7ec3092d0b2, 9098fb861dd105fc8df32c6f72ec9c025bb85ce127cfbb59f628e7b78e692056fb550a64775b2335f67086b269cbc9c1 - -p_scalar = 9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1dcb9da2e49ff45c55a12128a50853d180f745e27f7209ce78b59db06f2c572163a394e1404b5b23cbb76478b52110e1, d04b71d399dbe1c8e2ef514d62d0f2737abbe81cd62cdb014a6ae0bec24b6e0be3d26c9c7afeed373589b9b4769045a0 - -p_scalar = 9c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9bace7adf8a7c0bacccb784f77921ca4d56ec8f223a1656e16ddefa50589fd01f3dc472a8e2c58e9aa452e81cdf60f9a, a5bb92178e45d85a37d7033885de5229fcc9b83c6d5df6aeca667e877c31798a58f3fa853cb1834a36b10c11ae0fad1d - -p_scalar = 9e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7a51381b1772fc22ca98304759d16a8b665870899d73fb3bfb3339ee5b1cd14117a70200b441bfd0f943b61f038af8d1, 96e887694417a0e69651972fd1ec50d9c0c7722a479f85af48a8a614b99c265aa2e52adef33c7b57adce0820d39227fe - -p_scalar = a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 282358aa2ff95cfe76ed6fe718bd01b79f67567fe0a7ad0b990e3425ca7b8369b69e308bf8ae956575cba9d530a3ada1, ab27ba46c269d3eb4760c517e2326e9bab0799b3d9ccf87d69644d8d49584705762eacbf3329837ed72d15bfbef077be - -p_scalar = a20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 6d7604cffe8d69d781c5409e908e92f8e7dd1034ac8f1eb78fee1bd6e78c1828a32243ccb026239500cce541ad148e09, 6fbafa9fc0365aa73a0a9afccd9a0b0af6ddfa8996aa60d27c23b3294477842d6cbfc6a85c9edc13def7cf22d14d8e43 - -p_scalar = a40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 30369ea0ee12356a6aed101a5295e728e964dc9c9aabc3fc885253779336b2b939b1a9c697b17ee608ba5b61fde4ca03, 535f86cabb971be661ad79dc17ab28302e93857a5e5a1afbc4d08554aa6f8af2c589610e2060b83f1f7e1fde3717f1a1 - -p_scalar = a60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 6f261a720ebf3f5d30519b089ab91b5eea5b069985bbf511bd196739a548a22078cf85c78720ea377868bbc67f777fd8, 090f193e862f1739927d1b495a9457f4236b3088a6bd9ebadc722f5b116ec26a2a39b5a09eb96a1d88948cbdfcc19ed1 - -p_scalar = a80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 33a95de702001e8cafbf32372a69ad0d093c3dc2769de89117779f5e7bbc58fef517c925b79aa0ebee521c0af93098bf, 0da686a7e905e4e91a3263c6354cc78efb0f44ccb035fad00e3f96dae9fb59b84c865c0ada438265c4cf5039cbef5d4f - -p_scalar = aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 35edc49ca54239bd0adc36938b9046147f82050a305601877ee84419f5dfa296664ca68b46f5d9044033ece91c1f582e, 11d0188cf60ab49f8e3622a34d5ac7164fb34d2c8f36dc304e7f07faaffb02a5cbaec45235298c1771f35c54ef7abfde - -p_scalar = ac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a1cae78c7b491c4d752d98f6018d7c6455d40c1b2eb7f0fd55f7680599440d4bb16ca18bd8e94e49291d65c801189d9a, 80784bbed565fd8df2155c8c16d9a90ba7c4cc955a97c1074706b6720556badf44b76a94c31132d8767037397099472c - -p_scalar = ae0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 3c9e1bb5534739e879ab7a5bc5b76b4fbe21ff8d02a855fc4fd1fd2cde268c8c809a6b6cc5a362e31ee1b6033b28bcbd, 607efe8f93f6250043fa333a77178b50fba0a540d96f3093c53e3d2c0d6bfd5c3d5d4ba17a5dee2f945b26595a7442f6 - -p_scalar = b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f1d5b458dc7dd67fd6f1b8df647cad2f805b4048e097047f15b28ac7b871c3f3ee702764a35d24ea8b2fc4e96484fd40, a09139a277d6ca1e6c52df18b34140e5d7c12762d70d7b0b50eb8ae16aeb74a909e7a140ded8b050cdb3ad64daeb77fc - -p_scalar = b20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = fce39cd1e1a9d1708bc1da4093b5b983b727f6a0f7728c1ae7f34f712b796613950ef6a86c660602cc862ba801631411, 40f67e942f5f5010bd8f326581138444ebd0104e1bce69683ef160f5d38bde87a645acf0e72cb5440e618dc26b6cca85 - -p_scalar = b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f08cbfe771c4d06186628102bdf579e6675f12cca4fa74a94ebfbda7cf3dab12907e4f38199c51764b0c7d0c69c284cb, 7c3f6e6d14efc01fe3f8ea686db4514e7268757eef2e177e8352d73c8f3f483f492f2b73b38d86ea6221c6f2fc43e346 - -p_scalar = b60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0e1f061a92f572f08000fb5849e023a3884a0bfdef058b6faa278acb01a177dc1c919775c21b9dde3169bc090cc65977, e76f6df9bcd64d74b1a6e8397dec75bc60d918a106c6ec23bb073fb50f65bfdade195a617df28192d33690d1241fdb80 - -p_scalar = b80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e4c35c2244ab2fcc5bd45adcdc6938b91588c4712a3f012d38a1ec5ce16b874de239b1d404b6fc45494dbd2665925506, a914fdd7c73556fefb9e9ce7d9c15da935098689a44f0220c5f1aa3867d5b6d66d563c4cebb02c1178342601778ef75d - -p_scalar = ba0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2d2542568fd9f423f6d41b65310fafd4a5591868498f151f764ab40ace8713c9023872c88f2d14ff40fd181041ad343d, 55bfe99b941ed913c624012aafd080306b6ba1aed2cd3585df42566719290919ac744d081e64daa2ca5e9ce9d05b117f - -p_scalar = bc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = fd96bd168940c7665927968beb0f6ca5717c302a766b69dad2d9da967e155bd5323bd638835a4edf2f7de141a48da000, 2ca57dae6f1bce9657c95952ac481916770ce1e9dceb3f31819c6adc5c2a8556b4563273278f6ab007608ac75ccb028e - -p_scalar = be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = eb7c7b187673dfc835238e9ac5d8b3ccc2493d3db86726814381646777c6b7eab211af35bed7aea0a101c2f02838469f, 75f8daf946121ab30a2a7e4cb30007f68afd7f7eba32b20df0596f0febc4d676acfb32e69611d48965f7bb9c8b157877 - -p_scalar = c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 024cdcfd74a513932dcc51180f94f4d767ef024eb3dbe034f4ac2b677dec20d2f9fa4483d8b4d6bcb3984b176c0f3509, faceecdde21041ff5f3f019fbfbee3ea1334fade7e84372e4ff31aa98f9d34f3003e707d2c58beb00e3f0153df185434 - -p_scalar = c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 217e60f334f621e52a4d3ec6d979444c99758103696866db3ee3d96da9de154c65382a2312055ff2a6730cb7311cc98a, d53087ca891c22910c263f79b32f780cc994b65b53b4d493a1639df9ce885428287a95a1a2c5d04019d7799f943a90f3 - -p_scalar = c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ab3ae700d1a378c565bd03584590bf03605e7a32d2e2bcf1d69b7c83177305ff6f206002d878a97a74faca8a6af7e742, 88f79e80e676dbb1e18fb3c4286db20eed392e971988a94e7d5e70fcb6d4fe2a7c9da51e583bae39fc8186fe756d64f2 - -p_scalar = c60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ed111a7a3bd0c935557d173489ac563e8476e71696aae3352dbb2f572373797325d250419c736f9a583dccc1918722ca, a72c7a8de61ea42e74c88f9e59a0b4e3d2361fcb604aefd1b8c5ecc6839f12fc15e84c46eb22c13c5b83310ff4f9ea0e - -p_scalar = c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d363e435d58d42d2d9f3982e3ec5f7ff162cf27f36ba3ceb1ceee947c3f392126a55edf1c354f4334c98c61d097bde48, f5b063efada24330762dc174921ad66bafefa7d16dc3e5329e26b127283d801726e920a814040ae3d116f28552c997e2 - -p_scalar = ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = bc61bbaba368819180d7ec75226d534da72e9ae08144a60f51e4475e9f97151bc404defedbaf8b42178b590f1c477d9d, 8cf32bcadc393da81bc3e1425103c78da7150074365de7080f7713b7e94215c8e38b469d3a5f6e222fe55cf115d5157e - -p_scalar = cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 218e7fb1b71a25a46888444f98a9add79be8a33f67d61b2ed78ecebfec57d967a4af7a2d749862107778fad7e65573e2, 9701037c09db99a5d63da33c01c42111c5c869a08e017b84dc96d07a0397c834d079ef51ee5ad32608a59487a0b9cdc4 - -p_scalar = ce0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = bba8c7b11cc64bb5a6581582454dc4f3d92b8ac4d708451051375d6af7acf0bcdad4e4b8dd0ee7526c79a60950a78a78, 6b6804c7bcf4254c2aadff1376e71f2fa78593186274d8e39ba61a7495527cf8d50ace5155af45749473bd3865adad84 - -p_scalar = d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ced5e4cf2b4313900490c970f5aa2fc4547bd050b48bdd872e0bf749e05b18e763ad235fec1ceb74e222eba4a4dcefe9, 6da57183ee47a9bf27118db07276f567aa086fa1afaef2595b525dcfafc80316bb48dbbcf7c4a82bf827d8fcae2d7671 - -p_scalar = d20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5526e694909f969fbc6d93d12b1ecf5da54322ea0b5c08c1d151433074d7b4608b7e7552cfc6aa6e17f7e937cdf7bd50, 172c700b6e2009a6d2e0998d8b96b6ddd8bafde0439d7969bb4f20c2decda994b88b7f12513e69928e6a565c8d93bce5 - -p_scalar = d40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f79e2d39b2e8fac1bf3cd96c034d021b15245ac616c11ef494035a1f0c82ab81c749a6a77709a52b8357d8bb460e77b2, 9301bb39c0b773d1762f3b3a2587cf4ce90cb422aac571974da7b5542256530ccbe064ab4cebc408c78feae7b4930e42 - -p_scalar = d60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7bd84d4848a7403bb88ee110d4c2aca40e7ca13cdcc93ab719e453d26360d0b1160eeaa784e7e36db3ca02e33c34e954, 881501194bc77167ff61ae14d6ed1e8892d5c9efd156ab6c2ee716f48bec18649ce66721472f0203d172c2fde357c707 - -p_scalar = d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 058ff1904c89c9a87b6e3e4d1f54ef38a901f2551406ec90b28f476b59a7eb995ea6a57c699397bfee536a26d4bcaa59, 4cc159e64fe6a7adc1e6a87ed31f0696c1417bb9969b46519e7e05e98ac9d0a1016786cdba1ebd97a96f05f0035ab933 - -p_scalar = da0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b5f1a6c4605f84ccade63185d292887e6000e8b97de5f75dacdf3c75960857e5a56359b898797f27f6666dbd1e720925, 3bb0c2563cf5389eeea64a12b8d49953019f27ebb13b0586f0f68848938f8c723d93037cb4d0b41eb388096c9e381f1b - -p_scalar = dc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 13db3201919c187099c2ff0b948ac53b031fc087255e8c5eab4bb08268cc66781f72c1f8911316f6eef402410ec537ac, ddde867460bcc82a1f71bdec7e815a9fcc5601bf42de10018b72d16c268e981c42005dd80085bb342137e02dedfa85c3 - -p_scalar = de0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cfc013b68f5c17418ca6fcc4789fbee8efe3a068daa3ed3a85ce557932132eca1c048aa58f30fb6a7912ca4e168fecd6, 973e341dff8fb6e8de068776265f04d6b665d712989a0dcd9d3d2248eea57626c82692298c41a6872e67908b19319064 - -p_scalar = e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f58b321ed1f9bce830bf1ee34f114abc72483dc5b3e1d84f0eed233cc25c696a5e9abf67d640c2a1da828fe556467257, 0f2f312caafcabcd275025cbe05d0f92130a9b620110779d625bc3148d567d2123d0efa0e1bacdd634d9a9b468adb0cc - -p_scalar = e20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = aaf3726a32ec147e505f5eb8a58e699214f3ee55fc5144da5629e0626bc5035c0a3de8f6666dcfb1695089a73532e60d, e8cd549cb669efc115a5eba2c50ed0864791a4b43977b0dbd17e007de5e271d60b631ae3815e1138b69010d28e148866 - -p_scalar = e40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7f517c9c01f3f401b21e275d8b991b2903c6831675f0f13991217a6be34fe2e0e4d168e75b0b727bec22bb32205a5301, 70e02e42a8e91264f79b85ea72d54f45dbd34f94402db45347741ea3833ec9813ab8f7f6afbaeb4e4416a2e71aa1b605 - -p_scalar = e60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8aed67b865bac360c6dce3bb1fd8ee17442ae6052b0dbd5d807d8c25d5126552b050787598a85112aad13b2f80f89c8f, a89d6b8cded9d1e0230226ba7aa42c857476445cabf994a497a643a529878de9596737dca9075b7769be36ee86fc7101 - -p_scalar = e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1690687e164c44ba8b5101310dd4e1d4b120589021649255e7d94f4697b97d7c243622f9e8a47507e787054518ba5236, 62c155a73a4f0718b2d325e37e33582133522150c6e52fc2d55ee8f83b9c568900000117f597b3c29a44b2740eff010a - -p_scalar = ea0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 152fe43844ecf2464c549c0e5375bafd29a9b8a5787c26f8979564774ff41b268a370b2f4897efbcaf2c49c193eeaaeb, 6f10aa28d18cfd12a1a49abf7b7b5ba56cec6d2fe1fcee878b5968cceced62e4ef5c0e0949d55bfb4ba25df0cccd006f - -p_scalar = ec0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d4b25ed3883ebf03e1ee7508c3ff73564f4576a12c9c77446bdf53fc46c1f31b3024ce311a7194613d92ecc18f8802df, 38124a24938bd1e4969fced00e605995147d4cc8bf12cebcc91e8ad9a1696c09c8914404ee131056e23b9faebdf3c536 - -p_scalar = ee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1a0ab3fe3e1aa3b2da05dfc0faf576dcb6743901254cca1a54fe2ed1821745a31e6d2cc15044f8e3aed505fefec299b5, a3f8f0122452bc6ca4f9932141fd832f862af5e0da92241fa1ca780c059cccbeb235cb042119df38b2020caa49bcb238 - -p_scalar = f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = edcff8331d6dc79d7cfa71e1cf1cb8b3c11c95a22527c1ade6f0ad9bc0579c3e593f085a6dcf56bf5bfa10cd1ca459ed, 862ac252ff6e436fc04eb74728de2fcb12aaa1c81d9f913fab3c748e41c5ef83409dff68ebb1ee5fa7e3b442bcdade36 - -p_scalar = f20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 91d26e18089b6194c58fed0143bfa89695f4f8a7c76e93579b34ffa032e7bad15a5e1b61f59698d9f12d87d33dad94a4, 71a302e9bc09f3161236ec7dd3cd2727a829c0ef48cec82f84943c05000ff3bbde46285e57685ca53de725da29d42120 - -p_scalar = f40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4a95f7f3ad4777a41ee7797f6590d0ecbc2c3b8d7a81382003d42e96afc190c3887071bbcac96dab4b98cb69c5c8a182, 20df90e64170d181e4ff04d75de8e3748a6011e374acfda50678b40968b3f570807398ad5287254985c921b2d572d8c9 - -p_scalar = f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 92fc21e8098c5b74dcce4b866dcc347a56485fc5055a1e76d2413d03360766ac3a0699eb49cb60f46fe114183c5d5268, 39ff0bc8a4914f3f4ac168f38c3dcf7575ba26656fd737df4e3501d64fbe6b2569f15c596db30aea1e7116e1978f8516 - -p_scalar = f80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0b2d3d2ee01df4e90f17d421a6542ac0bbf2d5477007f2e9840210ee61ff9d1e7734dc91f8fe7a42e6bbcf0bf8ed6302, 9cc5d53777ace27e110e398ef4f6001dd205e8933bbeac442303695191af27c87c9d084dbceef948adf1b0457b0c8fc0 - -p_scalar = fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 051860f8db9d37b374ddf359c387adeacbea730d7b0b1b3dc9ef099a6d40b18658ec13e188173f1b430f3082d997bb97, f78653fd02c0ba349544df3cf5bff034741b7dc6a382bbddd867480f5e534e39d22d02da7688686529abbc43dceb6e56 - -p_scalar = fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 977b4bce597694b4780ec65de871b7928025224f7ad39d9aa441e5035bcf0e19dc504f01d3ce296729262b6d7636a78d, c816ea7dca3e95f09080d03b82ce409e0a259c1f0706fc9749963e29f3cbeac4e300785268b74ef11fa15148801c10ee - -p_scalar = fe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 75c5b10bcac05c018d3e2eea122e7ff2b2f9d05f3cccc6b797a1f8404db70676b7b8f12986a52261b0428d6baa542b1f, 8be9dc2a6cd443a96ef018bdb5f15589a4b9b1e7aca5a799394ba8e3ab5a671d3ae590f619124430327f0f274a2106f5 - -# p_scalar = n - 128 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f3 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a6661cc4c241720a0336aab8777a16d2f313389118eb5195c0dd449e7c1c39840f4fa5eff21af80ae484fd9f8258030f, 239dcab2a277ac5b2657eedda5791ce3b01f1e0434a02a6b5d85a0e4a022c7a4228968656461e382678db970a7efacd0 - -# p_scalar = n - 127 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f4 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = bbe34e740f395db4a92bb11bd6e0f09d96fde63874231e0feef28f34522c62792aacfa4c569604aff7753246eca101ec, c7e92a61e3948069f3d6832e367b2f949e29e339ad180b0e88d22a44a467c5195698bdbe018ad5aaaa6e59ddbf943cf9 - -# p_scalar = n - 126 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f5 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ee82cb5d4c686f3145940572b53625a29c14d45c4d73654245b97c7577b60ca7135cfd8fd9f0f5f0ee101c5ade346cdf, 07b33602c5e1ecacbdf3a4d1afba7f8cf99d6754e04af855f9732cbb4f41b9c31525eb38bfca96d3aa1136b6b0c47624 - -# p_scalar = n - 125 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f6 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 03b2dab245cf48ae7ad6ebad036703ac9436a8cf3450356d50ea65aa46f614e270f25677719d6ada9612b8bc3cfb44bb, 8933bff572f35ccb7cd5a74bb0095802551f41bc219187aaecf53641e119ab8edf3fb730ed4f55a421953d2a4117061e - -# p_scalar = n - 124 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f7 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b4bb1133ad9267aa51cb20d25f083167238df4864cb95a00bdb4385fa6f8277692f3dbfda1435507f9e5ed57d99f5989, 49a89c9cf7a12be9b9e99d533cfb098b9544dbb2d4eb6e31045ce25c5e93210c55a4951bc8a66567bf4d13ab4f115bfc - -# p_scalar = n - 123 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f8 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8e4a4f6321dc82a6d4d6fd78550418d24b3d05ee4295440514a9c3ebea80907b46b07d4a2a1018fe151198480c4c0b80, 74c462ed1a798add03babcecc25ccf338a86ab0f498f447b5a82af3e9f30f7e883c6ba0470788c9f1be4d7f7a178b9d9 - -# p_scalar = n - 122 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f9 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d109b62984083890da5fddab7e28aceae3da87e136a2812ddfffe0dd4cbeecde89a9a5422a1a0fad53b912fb21a3720b, 14411c67bfb77d57f6b8dd99613a733b02b77ffc1077afc76ce67450eb4d4ce0f0ef6939293f99667744095c728d3ee1 - -# p_scalar = n - 121 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fa -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 79cd3f1e3891db8165df3c959329f7e0c29afbd47772778a6c33d5d6ba6744e48c9a16e3a896ab1e5198ba40189dfa8d, 11aeeda1c64d0916473d0df9f8265b7e9c1d39a8b716f21b95507a54ae4d8985f5404f6be9028e62caaa8f0bd784019b - -# p_scalar = n - 120 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fb -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f392f9632f3b0feda03a6787986794dbcd411e349499fe4eaf07a03eb8994b40d3259f2810248af41b3ea621f3c6f15a, 539875879a1da4c861bf593f532e0ecc3c967a464c37dda4ccbe6fba3778c83889e73d9a54d7c388f37166f8c08a1237 - -# p_scalar = n - 119 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fc -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d2fc5c57998b057713167fb8ec9cf4cda4630ba1875fab27cd55e7b421cf9dde59f9078dab73bcc4732595ac7329d8d1, b16536288a40a5cd9a1bb1ac9221b7a3eb9ecabc9109b7e5d677a64899dc8f46b2db96f206cf9ceb761360c15ff51b6f - -# p_scalar = n - 118 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fd -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b8027be64a5eed689d19bd63befa48da4496f5a023133af12541da528e6a2448d1f2d42a406775a028f0ab7a080bfca5, ab9386aa4a3ef7e79966399f963aee20f35524d0b44501ccac13b8149df3fd7307819492dd5cde2308c7d5a296b0684f - -# p_scalar = n - 117 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528fe -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f26774cd7823568b517a6bae23acba53ad9e749a9aea738d613e5294fe8579619532b30ea229d070fdcce7a80723559a, 70509ab082b097737a546582bff1585ba6729b8db27984816d99c05f06aef600c6cb3a4beb8c057b940767a1ae53114d - -# p_scalar = n - 116 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528ff -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a40dbba76a0c98442700a45b812fab5c2e56dde7119ced404060d22edb6e808b6d812dba7e29445309e7d232ccd1c14b, c0ad2701581c66c57d04f5b9c910c402fe084c3f269a8382819b165ec127165cb49514f0e988e2f90a1c7cbe9cb66303 - -# p_scalar = n - 115 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52900 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 274c69657350982d84442a4123c50746a97accf432406bfd33e868f326a488269120f7b3a043456daa4e673b34498f56, c0c5bdf6cf5a11db75029e32cf121f03df9a343af6312ec600dc39b8848a5b863ebf1db1ec7ae2413106b7fb95dc9eaa - -# p_scalar = n - 114 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52901 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f80f423bb48af0e8e53bd76b6e4b3bc543c2a97d5743877a559b40a286dcfd8831ec9ab137796cdcebbc6b4cac6a280f, 0cc71a320bc4646e499467386204acd06ca075224dc4a5e8da508de78539d530f4a727682b1c4f45390696a8d488cc7a - -# p_scalar = n - 113 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52902 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 869fcd17ff86a9864a5bdb048d7fa0c2e9815b09139b7fc5e72215ef852bd27fd2c616d1bbe33572f85b86b79b0bda12, a10b3df255f7944b3d0ed17c31b87757bf7fded9fc31bb676998722ae7b12029b9c007f1d6664d043278521791daf6be - -# p_scalar = n - 112 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52903 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b4a6714762f45dce83f2fd2cd8296a52fb25e37c9710b70b2b5609d5504c81290d20370a5d66455a2e20654839d6e2af, f82bb94445ed204db9a19eb57c182141473e6877caa846883e7ee43a2ec76a1716a71ccc0b6c4c64a818b9bea15c6a6c - -# p_scalar = n - 111 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52904 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a158aabcb9bdef14c3907b518b02667f27552012c727be036744720b50447fd908e0805000765fab8db3b74805be74b8, 09ca776808279da9c64b47b82300d9feccf8e1f94aeb2685a2ff54bc93c326191095bee4e305fb96aaddfa03f49cc56f - -# p_scalar = n - 110 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52905 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 26956a5b83e5bd0bfa63d67feafb4dc8bdc1c92475053732ce481ae68d2624c8a4ba394e85d138d693f846d4906ef776, c59ff978106e08bfb775af8769e4422061d7272e75c0564abf9c791c76e941515426eb05ff14810bfac270f270cae3a5 - -# p_scalar = n - 109 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52906 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 6e3c27bbf13f24033cd18c33b9cff887a911a58af0d93abb5841c5f8a8dcbdc89c7d35833cc1184b0efc2e27b2deb1fa, f4c46c56198c770587e19a4e7f7c756875ad33caf5a1411d2db57fb4f560daf435cdd90b54294c055b391712ea533ae6 - -# p_scalar = n - 108 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52907 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2a532f0ac16a417882f24a114cb0b8671b23e3f7afef0b5d589f30567bb8dad3d81b74529a67044fa26631ef443c7161, 629a90bf9aee303f7499b3191ed0dde33c58b5e63c40024984d81e8e66d45390a985daa26e4abce9276d170f40383ceb - -# p_scalar = n - 107 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52908 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 77964d793f740b4850994c4960a91622ccd4f456753f40d027c6ec25a0075d4673c21e204f761490d718e8e1f4363f23, 5182a7172afcedf2e1d99f78c7438e3995d6ad45b8659463488374d1a27f3f9f844fc79ae4193d79f4c955e2f647ed02 - -# p_scalar = n - 106 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52909 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b380f170bff65e1c2633179cfa6a8ac6442e0f1f36905deda01780587776c7fea1295b179d724fdf3d303c72138de192, f1c69141971d1d5bb5a31d6abf10c960069f47e10aed184b1e0b982b4632f0a407c34b8181b17d37af66ced6d590155d - -# p_scalar = n - 105 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d0ab3e3a99ebd09c022c75441a806542862ef39c275075e3077f30e5dd2c23bec367d6aea6e201bce6e91985e5802845, cc3ae72c6d8973a5cebaf145152f1923d3d57a9547202560372c23a9a91fff8ca5cf364fa9ad136b7d67ef60d99028b8 - -# p_scalar = n - 104 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7117756e39dcddad381f4f06f473127497d1e75fd9f408b53dd4f91683002cf1cfd364cca03bfa6367126ced901410ec, ed306706377f04cfb06434324e2c7f76f5f40731eb8fedc1f3513c3b9c9e5f9ca3b9dd6e230c2f53e206f13b96d88ae7 - -# p_scalar = n - 103 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 590da88e64671048113a7902e3da530d1ad95a94f23d84fcd3f0d14329c21de1ddcbb10eafd402bdd24cabaa21355d5f, 0c9e71377273dbedd6e2d5a62de40552601bd1c358fad1c397ebbb4ed86f4dfd1a52e4e7e62e6e0bf4a58282925bf0da - -# p_scalar = n - 102 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 180783fc39489b2827c614bfddbdd7a57befff1cb90a319f1c0f6241bb2863c829591fcce7274c8803802ee80fa4f860, 60a4d22a26f6a5df4c6c8fc838175105a47fbda3bed5e5259e8d5e0bba3a023a5464baea1b373ba72a89af6579ae9e06 - -# p_scalar = n - 101 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7e2392bf7bc814db9cdd943547a18710d73b1fad8b8b5cfc73ddcd2c2eccfb1ab539f5fe50c66d708e66c6f69b8adeac, 73872d361702e1de909b656f420ec104a73e1d9af53e80541fef41850ad68693ffeddc211d67c04d914193c06c8f74e8 - -# p_scalar = n - 100 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5290f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d884d30b2f03f287419f4d2eab386382b0e595a155fac50e100134e2338c10e0f9d9c4dbaf282e57a350c4fc01834066, edc690c903e2fcb28a8aecc74afdb92910fe926075034f722a4dd35433dac6b48a14723f4922997f4a7e5936f6075163 - -# p_scalar = n - 99 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52910 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 648c5f00bb28223ad49cae0982d9d6bdb9b2e6b479c8f8bd1b41177c708ba469bb4f9e0f41aa174e6e3835a9b05f84a1, 03e1698b322d63bd1f7493b176190d98d6f759d8d1a0ea086675138f708247e1fe3096dd81a0a38d04f485765d8cc4a5 - -# p_scalar = n - 98 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52911 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 458ac76d0f40ec396e6880f15c434085ca861b4d97740fcab1bcd42525fc2c50f05e0ddedb37f6ddd2872262b0a9e00d, a77104bcffe021f349c17dbc262820737b96a6edffb612df003c91f554ee9d59d70204dd7088d2da5fd094ff848ae412 - -# p_scalar = n - 97 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52912 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8c081acd170d807f87b1e51bac06961610241ed16fef9d9d8f273e3065278f98c1f0db004a49492c7cd2035d7f5c54e2, 83c6b78ec4f030064c3e2491c4f56964cb47e4ed7889a39ed7d24ef430e05dd3e4eb5512d6865bf4005051ea1c73b598 - -# p_scalar = n - 96 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52913 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8bf3dccc39c18b96cb4aa43c9741eb4226de4c6581998af2ee21597e52ce08f68fd61e31148840d4dc5293851d15bba7, b257fb6c5a4434a4cee0842f5d5680b8f9d19ea0c831254b8545396f305ee4f0507e24057dd87c3966e1d5dad872984e - -# p_scalar = n - 95 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52914 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b8f42fe52fead1e4257b0bb5ad7f23e10be90befa27d2b794a607b9d0ef989779f74ca169bc0cbb10fc0f2630dbc3c91, bb6d4ba542df286e65364ded55ab93f98c0f64e83bc7b59145cc3f14dd99f9fb505fe7ebfd79617dde78e4315f93b592 - -# p_scalar = n - 94 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52915 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ed9602dc7912de8d89dabf40cf9eed19f4db0ad3ad1bd1192e2bfb0c25998b5d4259f70ee435a0deb134a04174225251, 843c41be9c6cecdf6010c639db73da1103f4f9dcebcddc087d15f243cdcbcaf878632b48408989ef585b6d18c19f9213 - -# p_scalar = n - 93 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52916 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 813355b3430aa2d72df91689cfd151547a3545de7cfdb00e1c634764b16142cd1b1cc24f5380675eebd14d71e32d80af, c071f38f66bf9d09c71b395490a268e5572a425b71670dcbfe7ca8103cb06698d9e303f7e03abb7916dce2c985f2ca7e - -# p_scalar = n - 92 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52917 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1031cbfcdef715d74efeec75e724f56cb8a88d32c7b6b5a626905570df79b6048f97bc3df1b9f55b91b6e58f1036e450, 3e080b351a206fe25e43c16b90f38d1d3deda082a8a691f9a4d6871d472ad231cee9644726ca94dcaaead60f2dcb2306 - -# p_scalar = n - 91 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52918 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = eb0f52348bf223b0e7e7382759dc3eb7b04b977d42d74f5fa4f6e534bbc2618a35c2421b14ae3f635dea409c9cba0858, 47cac703f116c6e20b09b3bd9ab88478cb78e0c863a2cba009d0b3319236343dd012811a3fde2c6d991c51670fc75158 - -# p_scalar = n - 90 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52919 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4347b760969bd7f7b560d7e63dc77e7bb34f09fbd045d31e28bd6aae6e6e8e57672649def3c36ba79b35cdf7a7871029, 9fce477feb7d3671effe5f50722fecaedeeb339129c4724952f2cabe13d6dbeb23ceae28feaced8d2f161a085e5496e5 - -# p_scalar = n - 89 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d0d105de164b7361d63dd29d19e0e2b667d3644ac8e55b7b463df30b0096721f18a49fdc4bf163e00c62094b2d71d4ac, 01c7e939b8df37f31d28243540b962d9147701090b4de4c065ccf0512daa253c7861b71b2093cf7ee5865c4e0217188e - -# p_scalar = n - 88 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9398236759e97922f158f85541bb965c782840d1edd794907774056232329baff0041e2423786267db52eb03d1db891d, c41a6fd431583d521af2a631ee1859834284651c3e6724b407f97c1df8ba4302a6f5384c2f5ccd104b40ccb8e384778c - -# p_scalar = n - 87 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1c1b3417a500bb22c4840320387b6b2ef30a928d9a3c3af1df0ec1ba8b80919559424730109677754f11a02e4aa0372e, 9f046faee996fe68bdac81880e7b4db731944175e7559f09dedf2454f984a88f18246d74a7909681690ee6c7bf3266f2 - -# p_scalar = n - 86 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 94dc48fab7e8cfcde61e6c2984cb7e449e30229d0a06f838361494cc0b162b571234181c1dbb4629c7364268d94ab449, 43d6196f8de4857a143c6e832c92df61a32f70e6a0c3e1a57a9910d501c47967a4fe5f5fab20b37f0d7e44f289b66806 - -# p_scalar = n - 85 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c835025446e64d4db0a08fe1114e6f01d953aaff73256a577bbdcadd053153d82148bbb88207255a935d2cdf9b06762d, 6c218d92c993f213a231839fe2895195c3d455d22caf52f27422a72a0bebe314392aae0271fbe969e7cfbad800dbc157 - -# p_scalar = n - 84 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5291f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 00eb5c040d16b7fcb048b60e740c04a52686cba73934e93664a8bdc7c791db8094b80b8f691e858b3c712c3c6323cd05, 3e5c6ffb3adfb941dc98abd94341fd4987e3e34d8d8145a014e572f21cce9e0d9ffcb850d7c9b5b080c0d8914ddc8276 - -# p_scalar = n - 83 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52920 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a075b16ac03d7805c25baa03520a8926eeb88ca1c7a4aab58487aa0d4a6694eb44cf847ed2f05eb48e61f0bf44e94071, 773dfeda69ce1cf9b72a7cd0563c78e40aa262ba2251bcdacf21a95749e604294e3c13706009643ec357a48a13d970c3 - -# p_scalar = n - 82 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52921 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e6db24057f12bea3dfc6d038305bfc7c87e75dfbed69216bd6021049cbfbd0c2e8c09f59ec5cc866783cc5bb88f82a12, 6009a59ebcd30d2869eb7bd2feee7fe5ed736fffa734994fe40d04ef6068512884fa39d54bb007bb6469e146b7a3a2d2 - -# p_scalar = n - 81 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52922 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0984c2e37cdf344f11238a859f436faff2c3118feaf138afd8cb3560e07b1bfbde45473e86c087853cbdd3cbdb06f682, 9dd7b7609745b87e5de38d63ae2706a701047a5ee5dd278d56add2f018f2637d959a14d4736fa240e1083c17c382584f - -# p_scalar = n - 80 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52923 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1e8568cca446324620fe8c27a715ace6dd2ec6d351fea1dc49066428b121360923e5c6b90e42d1f9194924b4ad0a415d, 530abb420614a6f9b960b5efeecd8ae42413063a1378e68fbc7a903c6484641d98e97f1cd923637700c213bbfcce7e6a - -# p_scalar = n - 79 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52924 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 23b245a5d53912dab3cc818a7069cb7c491c312dd15d01f0e58901a204ca55712cdac248c3b74585ca11d9d4e9a6c224, 4b9728f81d7ab255941c66c9f30281f9617b301b08632eb3403243e9eeb95ec1a052eb3e3277555230f7838ba6b0b163 - -# p_scalar = n - 78 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52925 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 02781ecd4db639eea1560f9775dae55bd35175d9a506191dd3338ff4b743bdfc47842147688c1ced3c80145ddb9f0b60, 3e795421ae8fbd6cd47a03074e3c8f2c84238e64c4a7a4fbc4870c9dbce600336c62bff32c45eaac993a302d23dce536 - -# p_scalar = n - 77 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52926 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 63d23607fa5c9816742e060b28a126270ca930b998ce78a327ccb6c0212a6125114a9b40334793a79f2134c12a501a3f, d44b1075302cfd2ece61c3e5572941a6dd03950030c9cfb21500850e49fd3c3d34cd7e2ef34d1d23774dcba4ec1f91dc - -# p_scalar = n - 76 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52927 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e677b97c61007b808b8d434e90bfa219a7253817daee85404552fc68956bce558c547a520c8d74e1fb2f775e4230e336, e7871c313937b80f64172dc31901ee2241bba1911ba3dd06a7a69a24e4f855bf96eb8cb3603263f9bfeae6f2f71abc74 - -# p_scalar = n - 75 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52928 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a1e0ae0fe6ca7a154a7ee23df367b5c85d4631b4392f8f665b28cf8991549a96c8cbc40a420ab7ef6b5d4014867303de, fd42d862417d6562d7870042957fe44564e239e3f0402e1d6762ab69430aed71a531c2c450fab9012a655ee1139fa27c - -# p_scalar = n - 74 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52929 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ca50bae743ca3e45a0dd8e3cc10c4f6c40d420cb5c36dc4c02ae1f9150f6a5cc7f3bc516e1b24b64126d4cde13dcbd9f, ac30d6dc35b9ab9eb9dd7248bd7085c75aa7e563ca19ed0f2458c9ef13cf22bc35dd6dcf7125d169f074bee9efdd2b40 - -# p_scalar = n - 73 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b89d83e72bf4673cb08db04de8caa7d29029a9252d3731c25b8d230bdf8b9b24a9c2a9b11de8963b43385c32d851a702, 6f65af3b7c98a1620b15740387b8637304e21e0392265a59af9fc87b4f1d216e9f89b6d6e1e8d616a8fd39bfe1f24424 - -# p_scalar = n - 72 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0966d45a6517888e2ac250f6058daca83b7debe494eaf32810757e2e3f599369f4445a249b234eff668240536434688c, 312c1d2f36824d3ab010acdc097afa217854f8bcc3f0ad3ac7b43619ab96774699cd9dc9d77437097555cc79e7693b1e - -# p_scalar = n - 71 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0b4faa5a537ecd702b123738fe255dda27bbde143508ac5493ba15cfe58d0a92bf5731b3abb11441c42ece45effefcb1, f9a7ea28732ad01cbdb924ee071395662144daf1ce64373a154f285025b3e31986793c4d0801523d6a44d084ddec83c6 - -# p_scalar = n - 70 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 2bd44119aa9079b7d8436f83a2ce4101a4c793741489a3c09c2e8aec0cdf6d91edfdd44e94cf7a32bcef0b6a37548a32, 443df50ac7469f4a5c599917d3a76debc4077657cfcdb6b7cc8ad6658c725a7ce2a2b0996761e5389f0415bd9bff2a34 - -# p_scalar = n - 69 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 59d65d78a3f735f42c86ee164fdd3ccad4bcc8b125abfd65cc66c8aa0f19981b5ccb2859a1115e28f8d3df74670c2752, fbcd0100271dbd7a6f2c9e8b73167a320aceee4882ed66bcd13ae4892bd423a457769d6245d3994d035ade287c0c55ce - -# p_scalar = n - 68 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5292f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = f6a8130b3a7741e35508c2b38bdb088aee34bd1706035fdea4160def7fe6923a2fd77b5ae6018776af78aa17286ac2fb, d467b0e82fc4663ed9c5d61f09f68f4c29b049577e0fca014277e8927030cc9a59a9e6886b1e723fc02ed662797cc7d4 - -# p_scalar = n - 67 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52930 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e462ca48e153035af9af3e4d90909d25556e637e6ef3d8f765d75edaa55d6185eac7dd3b0b634f686efc5cbc8b1772ca, 8322cb8aac794994096a6bf01362c5f95990b746c6ebc0031a7e35ed3f59e4bc104ab1a642785d0652763b7b0a109ed1 - -# p_scalar = n - 66 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52931 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 3418c841ef19aa6cab34164b3870beb7acd0361f5decad089983c10a492b899ae22c691d99c0b909b60fb64e52990b5c, b287be9507f55d0492b480eed70d6c3a6fd331a3b0d5aea54ed3fd192a684508a580d040c2c889076cf203a6209b336d - -# p_scalar = n - 65 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52932 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b84c3a6a5fd4266f8b0350b2650b22534597ec8abdd5f002cf9edc15edb63c80becda43b0d1d279f8e469454839b9679, ea6f2528a55bb1c9a2866c24c8f9f08719763d6d889d66ddab784b2cde2bc266b6a487833ad995d30e16d83d30fc79f9 - -# p_scalar = n - 64 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52933 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4f5d5ab6d1b30e5cfc8e87cf3be44d56a309199dca57b7bde04b3d30f8a0580d957c980f297a9a37ed4de4f88e89b258, 888b708b9404ca513ee127895ecd3fe86d97cabc301fe259fe51bbbf1090fede0fd1c52df091bc01b213c6a030a9325b - -# p_scalar = n - 63 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52934 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1c9bf0b0f1e52d1ef6159e519a049f7acd7e35f76e2b71aa7a50f7458c949f8f6ce8ead6149a1896c5c0e6d7aaed89c0, 52bb3712a0a689e8f5af7b8e3735df22dc89bd4997d4048d3bb034e888d17f198d3a5f621ecd7b1a3bb6c1f518202c80 - -# p_scalar = n - 62 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52935 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cb4c0a54561fedf2d194b7054b14d11703b9f1cebfec21da0c7d749907dbb9af1e659730c1fb476e49a04dc0f5acf772, 0902cc23149446b8cac324ec82c4faa73d2508922ba9239b65609e59d9ff0aba5f5e9b1fd630c145af623d3f21da4d42 - -# p_scalar = n - 61 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52936 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c93ea049ef6ba0062366467300fe51fd5ff77ff2332982d06035e34f772ae08054fb5a34222241e848da1fd3fc60a6e0, c4cc11451fc69829b0a6c77201466d230dda19ffe5275767e6a7885370d303eb394d32cd6ae9f4ac6640f1177d381266 - -# p_scalar = n - 60 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52937 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 95bb80cece47968c61bba736a55b527784b7c2fed74cccd40402d5c4eb809f85a61fada6fb4f60e8c711d5d1c425543e, 8dd21bf0b4ea4f5129fc3b284892e676bb45a51f948a8375acd70b86ad2a20fcf0e0f4f7e682aa2909f92adc16eb7b95 - -# p_scalar = n - 59 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52938 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9ba039679267b6463703435b0de64db996a917cf1ed0e31564473b595c322738dfca6897f929974caf467ce227bf64c9, ff336f12504655c196d9ba0bd9e3ca196fb34b3028463cceaccf2edd7b05970341bdb741b335eff0df0c2aae3a522fbe - -# p_scalar = n - 58 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52939 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 104cec0666ac72e09e9520bf57acc87aa58db4ea4f96af4fdab9dc0015b0fa13341cf9d9c46785af941c5c257d0be180, 2b51995f794da901c08595e35548fbeae11699e909fa58a1b5f157aa569b57d8b8b4ac9ffa80380a9f3f7baa1929e675 - -# p_scalar = n - 57 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 814d7fa07a78c189c052f3eb1c99ceef1e9dd1509bf446e0a14967dfac4bbf6273bae4c1694b8b0db14ba61cf97f865c, 0a823b9a4b26df63d2e130552952c1fc8f427bc473c81d5b0d60bab7e809a13c7788c258a1737b65a101a483ab74b05d - -# p_scalar = n - 56 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7772a913e6436cc1e9981ea6820da79f2629ba4fd1deca258b6fc785e692fdd2d4215b4fc7a8baa1483350a5ebb8cdad, 31ff648e0f88b82d56fefff326f349ce05826192490bb572b623a1aeeb8cc21c28179e6cc852f64bd141235c553fb41d - -# p_scalar = n - 55 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b3fcd5d1690cd408fa5cbfda60f4554f6078d8bf085faeb3a4fb7867e3a142d6fd6622bc1718ec3cbcab5f60069f3367, 7460257314ceeed46a91e73997d0fa0617c6b5cbbe2334f88de3107c3d079f6182af23aa180a63a74ebdee7d281f7884 - -# p_scalar = n - 54 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4576a6497cb8944248c075daaadd6150075134ebabd64a6acff00bd23c9b5a41ab2f15202175fbf411853add834e6c54, 420eb673906a29496e9e86bb7b1eb77a1ae1dd97d13444bb0bf879d693b44ea68dbb571c77fcd1f4340a767034adeda3 - -# p_scalar = n - 53 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a8ba8f10e0f383ea642ec4e615c3aae2cf485c74a7c54b160b0110610f0422a2daed7c268a0915cc3b1bddc6fbde49ef, edf2e3eb7ecc9485adc93d9a481765e2d2c71ad1390699635786a19a4e2fa83eebec6442089efa8b2a2054b495618501 - -# p_scalar = n - 52 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5293f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4b820d9b31d83660252b48f5cd8d7d770bedaa85e5377c005687d1dca6ccfd358a944b316b3262328f6468656f9201b9, c5cc339dcba1fd4b222465866e5ede7690e2aead7f78aaf86d0a166ced3c3b7a0a8930fc1208b9faa9e5af3ccae07f15 - -# p_scalar = n - 51 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52940 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 16634a504f35cb3c3dba16e9daaabc27464ae8d241a84de7a5e0fb598c5a78d91947c0caec4a22b82c4ccac72070ac8d, 518b047dcbaa0d97c69489e2373f1a0d0b2240003c887d36daeac0c3570543f0324d067e7359dd35adc18bf9b16ec84f - -# p_scalar = n - 50 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52941 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a820e8303a5d50d19cbf755b46f97ac7beabb91ac3c90051510bd675cb2ec3f1172cfe4ecb5af900a96763d2fba32d1f, 6f58fa8b7181c2a16f7bfa7e13a4f7d6c1b444139333e4056124642f0f32b151df7dc7053048461a83a9f17e308c4545 - -# p_scalar = n - 49 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52942 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 0b470bb250e4ea9e1197832bcea03f5647c56c115b6e3386a669156542e365a48ea5af63a5ea6fb8fa5c3aef697136c6, 2d1cc518e28b2bdb771e64415b57be2f2487edd57f82bdd3fc4486ee49c9ebe88d6c174ed2497d483113c74313b25712 - -# p_scalar = n - 48 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52943 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 66e4794bae7d740062e5c5d3e73a1bc940d01ff53a7d2f3c4f504e06ea52bef92d368d48e7f30c2b3ccf806ab35bf6cf, 271e42a12624a58348eab00eb5c9462c2605ca009da2a2ca5c3ca10d04bab9854580609da766ddf13d30625e5ffef312 - -# p_scalar = n - 47 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52944 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ea5b37c5da233371504f21b1570cf950780abff7d878acd0bfb185125f5b07a065c788785f0dc66c6f888f7df0c668ca, ac9dfec7dfa72a8beef006912e20fc23dfeea1a265e0fc91f86562a898fb34ff9c701758249cf9b7487ae8bd22437ed1 - -# p_scalar = n - 46 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52945 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 374aa9069481ed0dd9c79db8005412579266634957719f5460976b01b472d7899f24fba649ddd10ea618d7479fc4f435, fc539eb3e259c7dbc82d5998ec090d0619ab802314eb4ab9d7a198a4185a849ca1590c30ecf5864360efb1147fdc2d7a - -# p_scalar = n - 45 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52946 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9c94c858b2ac340599e1c0c61f2bb599b0040c0e8d6fcf13ffe8e0bb39eb8f59d4af65c673ad9112d4c411564fddda5b, 42eb2979db83a48517477722bd2af19e16f96676b7234e93eb3b44a9e5b5691862b2f54351fcca3f8f8878d76eeed85d - -# p_scalar = n - 44 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52947 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9c7e7754a320d35204ce2a21986c5ce6d50a288981ea36c2767b4ad7f8f99b51ae97af8bf240b30a1c5f0e5b36a400d3, 5fb28e322a1dd73bade6096d02e543ae47678afb27dda8e5c680176505c7ad6c7cc82a4df1698fb2c3336331bbad8346 - -# p_scalar = n - 43 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52948 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 35178bad22dab3935cf095a901fefb567314f5f0416dbd86dad9f5b239c4943d09112fc50578bc8c37fa935500846d44, 8f3f1f63c9632b78a974b09415cbf948aaf8e0f6bd0628dfbce78aa9ede314bb1b7ee42d749e5498cf79fc1b36baf1a7 - -# p_scalar = n - 42 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52949 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 7438b4933c1e593ce983e169ffff96c73fd72a308f234c864b21c4f3eb6c7e6231b22efc5df46c6618ef56cd5d76b881, db6829c2f002bb6e50029568472a7175e739fb61eaa6776325d0caaeda1eadf40d959ba9796d9129863a23a3a553e8e3 - -# p_scalar = n - 41 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 8764cd2cda92245de3bc778895fd71ae89746c8d852ca03573a82933a80d68f341dfd24d456a201ead148e87bca6d14c, 82ea702eeb18f1c5679952c7d193272ebdc9d6c34f9f589a57860ce121646f315ac762e00f3c9d6ea2fe2c4782eb23e2 - -# p_scalar = n - 40 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 51c4b1b36a4d6e813b021cf316d7a9adae78bc3a3134216c86fcfe4760be3ebc43a53ff21beb359e6048c6949399c38a, dfd92b6da914bb01dbb22c9ddeb46e6c63a00a0a60e0aa2a98ff87f7370eb7441df8cc84a69ea3a354b9cd8db593d816 - -# p_scalar = n - 39 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 587df4d6b89b1fc2c9985040b76c066536a1cd6dde9b62306d7edf642b7f006fd984244a8e3d2c467d894f80506e0e42, 2d7bc128074968fb1a95355f1cd60340b646e453436d9fe2345c553ab53153b87b2b0ab3e82947474c0638476a71ae7a - -# p_scalar = n - 38 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 47ba96091da7b1476b464412bc9a48c7479ecf018173fb32f3d752f5ad6cbeac018843c01c0d77024703cd85891f8ffe, 1f466694520618f2129be314974320a4f300e1c648347f9adae2479844956b9387c183c3e1a0e06c91af26eaabc13488 - -# p_scalar = n - 37 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1eba28f3defc58b59261ede87ef27114acb60a7597482b86a129e2dff5b54a5d4027704bb5630ef20202d57de44f61a3, fa0e07b7fe85bf85284fcbb5638ca337b50649a894047d1f2ea912435d2ca0342f1643d514594bee6c91c0c98be5589e - -# p_scalar = n - 36 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5294f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1608643883061d376f01faee26946e789f82b7fbab52606ca39180d45c2c7ce14a13260770b1b757f216aa2531238ed0, f699887b806085b7df33eed7b73401b16a3258ec33f5567510209418c167fd201d11bc5ed6e28138597edf370fb077bc - -# p_scalar = n - 35 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52950 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d6149f75e9417bc6832bd8e34fc7852365f16273a02583fd4a508620dde6bd0abb3800d52d7c2fb458a5b5433720ec9b, b13a8ad830e23f26ac8a877f52ccd35c22f19fab28f35eee50018998988092a20ce18088a55e0956feb026e93deeb52a - -# p_scalar = n - 34 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52951 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cdb55e6ba07b7cae7ec2bc1cd50b3e6d9d6ac102b4e2520145700722abb9102f0648c2cd2d668c4180b309dd2ada5bf4, a964eefbfdadd24e03c050a06152072602d00cfb8a76b2d69e1418a4554557c3470ddc68f8a57f48ebcbda0786da3943 - -# p_scalar = n - 33 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52952 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cc9e97a46c833e9d68af622641d5c400da631fc160f09efbbbc7c7ee955ef3afdf330d9d5b943c8661333a382fb3ba63, a7fd2b619057dad76fcc93a1b8c310728a416eb9bb6f0aba08467cea48b90b9113bf6124c209e55e7fd73e8e3a625e76 - -# p_scalar = n - 32 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52953 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5dd2a4a0626b3d793a9865baa631cfb0ba8953d612e8dc871896b9fcc651b1dd0d784cf208f779d5ad852b878c0a64a4, c510ad93aabca99f73b42725b35b4ff04bcb06f00a2377b677315f9e9448fd08a372dfc2f2a52bfd1148bc72687c20bb - -# p_scalar = n - 31 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52954 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 6c07c4040a3305d11afb51a3e3ba8285d42f7dc953c149652ecf8340f0df4fe6b6e7ecdd9e821ee6a39c89317c8906a4, 475a3e756398a19d5b3d0d6d36beecc4d7dd464f045a7a1c402a9bab42eb20ddbc0a699b374c4b08dab83288127fc1da - -# p_scalar = n - 30 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52955 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 92cea8f4c4360dd87002990485ba414315f9abe1feb6b100519b9fd50a18323276aad8b8131263886a7a3464d0cbcea0, 941292e500f88cb2f569446a2755569296c21b29f6a167f23117dd04d47a41dc1846eefcdd3eb156dc6c5d1dc12748a1 - -# p_scalar = n - 29 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52956 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c8b00ae8187cea1f2065b7cba7df26e43dc22d490e3feb0fce3c15ed55c9764725846b66780443d6019d6ac5d3021470, 1d2a1c015977f16cf6f57e7190c820338e6db10b404505fbab178d26cce851b3293c164920c83de21a5284a0865dded3 - -# p_scalar = n - 28 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52957 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 55be5764d37da1a2d8232f8b4e492aa88fb0c597a4da3e15550e0bee8ff22c6f4169b4117b3c1220c76afaa373b64643, 05cdca3fe7988176792377fbf8eb8319c48ee6f3b033c112184bd4733ad6983a9ff769c4875fee0ff1bc89b628e77f9e - -# p_scalar = n - 27 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52958 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e8ca780e373e5aec2f7e8d509c6a58fe7228e2d5d18f14d08e0d4168482396f9cf1912934d78291da04482d2467d66e4, 17820a0bc5134ed767e67195d44d3cdf7d26540638c85a85d779adfe31da1bea58a6d7f569e2f8f442aad1d61b68e9f8 - -# p_scalar = n - 26 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52959 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 37a45bdb091cbb80f14b309f03fa90f2808497b7b0bba4a76efedb8023bf0b90b0391b37897b93f56423197d2afd473d, 47d98a9df092241cbf2c0862697c08fd5d512df99d42a72725c7b9146f5f24c7db3f422d95e16d6eedda4ae48a8f5dcb - -# p_scalar = n - 25 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c29c6e2ca5bb73313809ab50de2480249bd51b99208abe1e57d0f3d2e2be174abb280dfa3cb3fb361e93722758ce3b83, 1fe6fb42e97809dcda3e1a3d4cebc96ed6a2f51dea8e434401628f059424a3cc83ccbc4e9009e3919944fd2e61124f05 - -# p_scalar = n - 24 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4f13f901fc55723f38076e8fca77d74f563361909bd5c2f7540c045a409c930b20c1b8e0d809afcd259f272cfab816a7, 150808e625a302c91395a87966a4e904e8277439a0f9ad3adf5579fa4bea82dd98d82ad1da247ec8890932d7bd3d10c3 - -# p_scalar = n - 23 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 80826a69eea8f22461e4ca2b905432f01c75b8ab2a351783b9d3dd25429c0a18990ed20b569b8ef6d1b4e74d12e3683b, 9dfccb0de2212559282d2437566718c1f0138950eaf22c7e7ad8a132a527cebe0bcca3f0a65e48137fc33a6bec52abad - -# p_scalar = n - 22 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e082882d69059095fd7a8b13f0681fcac382472ebe0e1fdbccd57831927ed783981b788d16f325b84f595351262bb775, 671d69c98fcd841850fc847215809cddc764edf840d0fcf77b1ab489cbf837b7f9d62fd9c9576c694d1c3049faa71fdc - -# p_scalar = n - 21 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = ab16c626dac012b51b1a0f6c5df0e5372e59ab62bd9ebe6930128aa06177f75d88e0d496dd2f9e2108265e510422ce2f, 21824f411353ccba266ad15aacea5817b454111e8527cd59262ebb498a149098aa740a9e38f17bea8014214b008c5de7 - -# p_scalar = n - 20 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 1d1cdf7b5f22346598ca8dd42d96c936f78cff0cd467f03a713466708cbaffc7cd96f20591e71d16ad610a2d94a70ec1, ab9dd81052ebfb015e01b72b4718bbc7422da643ffe6132b9933fb25dccd4df325f546ab321828ffe27a189460d4db60 - -# p_scalar = n - 19 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52960 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = fa0f1f450390d706b3b6639c539802ae23891298fc38538eca109c3b154aad5e22c4cc5f41a8c91282a2ed4abaa84c08, a1d47b23e957776415d1dc778264b6723f5a799bb67f30c39170b3786ff2f643a8c72d3cc3da2eac46b78e5db0dc21d0 - -# p_scalar = n - 18 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52961 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 57505d8d6749703068a232435567169355a96a6879909f083bd1c8f62edb0dbd198fd3f0f38f66625dfee73ce5b82700, 91700b247eb1be639bdd6a092945a7576ffcfc7ca4cfd9bbc266eb844112985854b867b7f78aa7de8a60717f75c64513 - -# p_scalar = n - 17 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52962 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 524f166ee475ce709f6928555330455e7be3737d524ffefce6fc3f2af655a10d3ea4ea4c8ff1f43e8903e1304b4a3cd0, ac37986f55b164c925eb5df1b3c2677af87d6d854a54504a49ce6993336bf1834e23b6ffd5b9c0da3fcc69cd6c12f055 - -# p_scalar = n - 16 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52963 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a10896aa435abaa137065f5313bdc3fa317b63ea2887d5ff37cf65517917652a992afb5b0ecdd2d8da6e8a7f7c33ed91, 659db48181ef251351c305c6a72d1967b333bdfbc88ee148914871dc154d410feb07ddea230cf00d9b21615fefabca26 - -# p_scalar = n - 15 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52964 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = fb62d26f4903026b0fc01fd4eb08599359500917789b307583ccf19550e07b342b7210e2ec3dabd8446ad8884709f4a9, 5a68c6fed0bc27168733fc41400c5797dddc2866d898f4704b23d3a0de06610c61609cbd144bd5862309cc9d6fe989bb - -# p_scalar = n - 14 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52965 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 46d227c432f6b1ba8058994c5710c0c944ce05ff88957166ca6b1af8b1f85c2ad02225fb01ec909f5865e5018f75244c, 4429839ddefbadf5647d24db13690a7472445345d9c3b6911ecc8585e11dbbbf540b8b82730a99d1be4b4a9003cb68e5 - -# p_scalar = n - 13 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52966 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = b51c56e18cf23c94d2657265ed22df97db5203a8d9c1bd568a7a8e4633b7d4aeb25e28c5f6749a959b7aeb7e75ccbdfb, 4617adb7cc6979e181fdbd1c3b490ec3b7feac2dfec38d60789a2a48cf4d0fe3d8e88f1a87cae0c2f4d394596c3d812d - -# p_scalar = n - 12 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52967 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 627b415f9c35b26d523c40dbcf9ab45cf67eb42235d77d8303aced26c8edfee1d4258cc55d9704203db8477270313de0, 0c6e430ef9c4af3d0329eab1f7942f0e40c64a4e66bed5af8c79848fd0e102ac80d60af627aa651afacc45e48be55ed8 - -# p_scalar = n - 11 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52968 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 9c19e9fc7ba9c437f8d89885f0561d7901b8bf56147b66020dcc67706cdad64f4532077c44377abac7708b19b68b8c7d, 9aa62f9f3533f91841821d0c3a53287a2e070f36fe9e682e3ce813298a77e780604fe46bac144b83764eb146bdc4ba25 - -# p_scalar = n - 10 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52969 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = a91a5280db1c212ec2f646025c4845ec54a612d7eb32cabee9f6368eab225fa32a15a9a6e58d6787845539d3c8d99c02, 6eb995bec80174e83e03370a47a9b8aa81961b8ccfd7fd1d592ac0ba794eabfd03a530eb13b9e85cbb971f78e67b5fce - -# p_scalar = n - 9 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296a -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5cab1d1d53636c6a26d464c6dad54d6adc351dc13cbfff3f26094833a96d745de35d87293fd7e4f92f5d200e2353b92f, e770633431e8f5c67d9429f4ee69a754a6ecaccc68ead0d827f061c7033ca7c23777e270d742aa2ff2813072b18ec0b0 - -# p_scalar = n - 8 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296b -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 5db4f184349cd9b11c7b5fe116b664231d9aebd64f3ddb371c5c2e7193d7e30f9e336de5ae9b587a23f60a05dd9bcbba, 3c0c6dd70d27ef617008d943c48ecf0ee9923263a42dbba2701754bf7d8686e4836dbb36b7e55e870d2cfe83e6655a44 - -# p_scalar = n - 7 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296c -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 932c9f811c89025bf893db589db2df555f4215d1659753ed731edcf8211faa954ce6415f874774b1df13b9d17d69222b, d90a16b6af6c9b3ef57f238e693b07060ff37c0401fff78065aad76f50130844135349d5a8641c790996b2207706a61e - -# p_scalar = n - 6 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296d -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = c482e189f0430c404f0f6a962b02d33b2a33f6661bdf6015ec52930f580d57f2cb2454b339d3413a7eb5c9317d56dad8, c9962152af2a9eba586d8ededf21559a93c9e5f61b546f058bd4bffcb79e33b0739ac69d5b3d4dce3f62b16ea7b08203 - -# p_scalar = n - 5 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296e -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = e1bb26b11d178ffbc676b987e2e8e4c660db2cf5aacc05e67f1eb1b5293c703bc185c0cbcc873466bb595eba68f1f0df, 4db1c9d6e209e4a3e6c5944024de236d4b237faf982c041180b61b3101c35b9922c16e2e72f345662b694ba07073fa21 - -# p_scalar = n - 4 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296f -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = cfeee6dd34179228fb40f647d685d979078358d4736400ad2e4f153b0aecac4630594ccbee0421e30aae8477ebb68f2c, 50946875303df319e607b9e33820017d147162d30418c6938e3e61a34c542ad1e74bb7f17bfec97e54f3e8e79b3a03b2 - -# p_scalar = n - 3 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = d283fe68e7c1c3ace36f7e2d263aa4703a48d732d51c6c3e6b2034e9a170ccf0c54ea9fff04f779c05e4dbe6c1dc4073, 465465fc983292aff6db68b15102b33968012d5ad2e1d0b4132663c04ef6744692d789a77ae0e36d7e284821c04ee157 - -# p_scalar = n - 2 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, e34947f7123df0c2070d430900b0e68409f1fe415172bad915e4f18bdc588258e8e8e4a8c2aaccd842ea84633140bfda - -# p_scalar = n - 1 -p_scalar = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972 -p = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01 -r = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe diff --git a/src/ec_17/suite_b/ops/p384_point_sum_tests.txt b/src/ec_17/suite_b/ops/p384_point_sum_tests.txt deleted file mode 100644 index 3eb772b8ff..0000000000 --- a/src/ec_17/suite_b/ops/p384_point_sum_tests.txt +++ /dev/null @@ -1,120 +0,0 @@ - -# inf + inf == 2 * inf == inf -a = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf (n*G) + inf (n*G) == 2 * inf == inf -a = 4a0fd63f894499928e4b2b72aced45cfc589976f4ff86f78c904d59da9379a62b702d968c1184834c11db28c7356ceb6, be113b04484cd4bc215a9f2a33a674c3764c38ca4de135dd50ce8dcf3c85d55a5aad0e171860bdb6c58201e6212d9ac5, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 4a0fd63f894499928e4b2b72aced45cfc589976f4ff86f78c904d59da9379a62b702d968c1184834c11db28c7356ceb6, be113b04484cd4bc215a9f2a33a674c3764c38ca4de135dd50ce8dcf3c85d55a5aad0e171860bdb6c58201e6212d9ac5, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf (n*G) + inf == 2 * inf == inf -a = 4a0fd63f894499928e4b2b72aced45cfc589976f4ff86f78c904d59da9379a62b702d968c1184834c11db28c7356ceb6, be113b04484cd4bc215a9f2a33a674c3764c38ca4de135dd50ce8dcf3c85d55a5aad0e171860bdb6c58201e6212d9ac5, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# inf + inf (n*G) == 2 * inf == inf -a = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 4a0fd63f894499928e4b2b72aced45cfc589976f4ff86f78c904d59da9379a62b702d968c1184834c11db28c7356ceb6, be113b04484cd4bc215a9f2a33a674c3764c38ca4de135dd50ce8dcf3c85d55a5aad0e171860bdb6c58201e6212d9ac5, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = inf - -# G + inf == G -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe - -# G + inf (n*G) == G -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = 4a0fd63f894499928e4b2b72aced45cfc589976f4ff86f78c904d59da9379a62b702d968c1184834c11db28c7356ceb6, be113b04484cd4bc215a9f2a33a674c3764c38ca4de135dd50ce8dcf3c85d55a5aad0e171860bdb6c58201e6212d9ac5, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -r = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe - -# inf + G == G -a = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe - -# inf (n*G) + G == G -a = 4a0fd63f894499928e4b2b72aced45cfc589976f4ff86f78c904d59da9379a62b702d968c1184834c11db28c7356ceb6, be113b04484cd4bc215a9f2a33a674c3764c38ca4de135dd50ce8dcf3c85d55a5aad0e171860bdb6c58201e6212d9ac5, 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe - -# G + G == 2*G -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, e34947f7123df0c2070d430900b0e68409f1fe415172bad915e4f18bdc588258e8e8e4a8c2aaccd842ea84633140bfda - -# (n-1)*G + G == inf; note that -G is (n-1)*G -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = inf - -# G + (n-1)*G == inf; note that -G is (n-1)*G -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = inf - -# (n-1)*G + (n-1)*G == 2*(n-1)*G -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 - -# (n-1)*G (affine) + (n-1)*G == 2*(n-1)*G -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 - -# (n-1)*G + -(n-1)*G == inf -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, a847d35ead83a5fe487437334601418be874fb4839021e3e3b1065ddf3bcdf43a9f34f86abdda95c6ff209e4ef82193a, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = inf - -# -(n-1)*G + (n-1)*G == inf -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, a847d35ead83a5fe487437334601418be874fb4839021e3e3b1065ddf3bcdf43a9f34f86abdda95c6ff209e4ef82193a, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = inf - -# -(n-1)*G (affine) + (n-1)*G == inf -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, a847d35ead83a5fe487437334601418be874fb4839021e3e3b1065ddf3bcdf43a9f34f86abdda95c6ff209e4ef82193a, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = inf - -# -(n-1)*G + -G == inf; note that -G is (n-1)*G (affine) -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, a847d35ead83a5fe487437334601418be874fb4839021e3e3b1065ddf3bcdf43a9f34f86abdda95c6ff209e4ef82193a, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = inf - -# -G + -(n-1)*G == inf; note that -G is (n-1)*G (affine) -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, a847d35ead83a5fe487437334601418be874fb4839021e3e3b1065ddf3bcdf43a9f34f86abdda95c6ff209e4ef82193a, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = inf - -# (n-1)*G + -G; == -2*G; note that -G == (n-1)*G (affine) -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 - -# -G + (n-1)*G == -2*G; note that -G is (n-1)*G (affine) -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 - -# (n-1)*G + -G == -2*G; note that -G is (n-1)*G (affine) -a = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 - -# -G + (n-1)*G == -2*G; note that -G = (n-1)*G -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = f3ee335326d22614d01b5d7cd0be73f1bfdd75982c9c273f72d0abfeecbca0431601a1bcafcdeb07e21ecf4d91c7b520, 57b82ca1527c5a01b78bc8ccb9febe74178b04b7c6fde1c1c4ef9a220c4320bb560cb078542256a3900df61c107de6c5, 53b3adc887551c0e17c07ecb42d1a5ec105aeec6b0f040a936ed4f756e83939226232b4e11191b3eb1d841c650682ca0 -r = db93b776427460c39c90a4fd2de4b506da821495f0687f503504e6f0ff9d48a18e6c8f2e022b53f0c8229e55783dde91, 1cb6b808edc20f3df8f2bcf6ff4f197bf60e01beae8d4526ea1b0e7423a77da617171b563d553327bd157b9dcebf4025 - -# -G + G == inf; note that -G is (n-1)*G (affine) -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = inf - -# G + -G == inf; note that -G is (n-1)*G (affine) -a = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, 2b78abc25a15c5e9dd8002263969a840c6c3521968f4ffd98bade7562e83b050a1bfa8bf7bb4a9ac23043dad4b03a4fe, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -b = 4d3aadc2299e1513812ff723614ede2b6454868459a30eff879c3afc541b4d6e20e378e2a0d6ce383dd0756649c0b528, d487543da5ea3a16227ffdd9c69657bf393cade6970b0026745218a9d17c4fae5e40573f844b5653dcfbc253b4fc5b01, 000000000000000000000000000000000000000000000000000000000000000100000000ffffffffffffffff00000001 -r = inf diff --git a/src/ec_17/suite_b/ops/p384_scalar_mul_tests.txt b/src/ec_17/suite_b/ops/p384_scalar_mul_tests.txt deleted file mode 100644 index 8b2d0dcad9..0000000000 --- a/src/ec_17/suite_b/ops/p384_scalar_mul_tests.txt +++ /dev/null @@ -1,32 +0,0 @@ - -a = 00 -b = 00 -r = 00 - -a = 00 -b = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972 -r = 00 - -a = 01 -b = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972 -r = caa357821c6244e05eafdf931b0e6b53872b45a79929e877e4c3adcae9998bc585acc2c6a24bb9ca8be13114da045062 - -a = 02 -b = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972 -r = 9546af0438c489c0bd5fbf26361cd6a70e568b4f3253d0f002240e13defbe9abb33f77dafbe6cc1a2ad648bee7437751 - -a = 03 -b = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972 -r = 5fea06865526cea11c0f9eb9512b41fa9581d0f6cb7db9681f846e5cd45e4791e0d22cef5581de69c9cb6068f4829e40 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9 -b = 02 -r = caa357821c6244e05eafdf931b0e6b53872b45a79929e877e4c3adcae9998bc585acc2c6a24bb9ca8be13114da045062 - -a = 7fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294ba -b = 02 -r = 355ca87de39dbb1fa150206ce4f194ac78d4ba5866d61787e29f9fb70a9da219d26d4aeba664edb0610ae855f2c0d911 - -a = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -b = 02 -r = 01 diff --git a/src/ec_17/suite_b/private_key.rs b/src/ec_17/suite_b/private_key.rs deleted file mode 100644 index 31c35664f6..0000000000 --- a/src/ec_17/suite_b/private_key.rs +++ /dev/null @@ -1,203 +0,0 @@ -// Copyright 2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! Functionality shared by operations on private keys (ECC keygen and -//! ECDSA signing). - -use super::{ops::*, verify_affine_point_is_on_the_curve}; -use crate::{ - arithmetic::montgomery::R, - ec, error, - limb::{self, LIMB_BYTES}, - rand, -}; - -/// Generates a random scalar in the range [1, n). -pub fn random_scalar( - ops: &PrivateKeyOps, - rng: &dyn rand::SecureRandom, -) -> Result { - let num_limbs = ops.common.num_limbs; - let mut bytes = [0; ec::SCALAR_MAX_BYTES]; - let bytes = &mut bytes[..(num_limbs * LIMB_BYTES)]; - generate_private_scalar_bytes(ops, rng, bytes)?; - scalar_from_big_endian_bytes(ops, bytes) -} - -pub fn generate_private_scalar_bytes( - ops: &PrivateKeyOps, - rng: &dyn rand::SecureRandom, - out: &mut [u8], -) -> Result<(), error::Unspecified> { - // [NSA Suite B Implementer's Guide to ECDSA] Appendix A.1.2, and - // [NSA Suite B Implementer's Guide to NIST SP 800-56A] Appendix B.2, - // "Key Pair Generation by Testing Candidates". - // - // [NSA Suite B Implementer's Guide to ECDSA]: doc/ecdsa.pdf. - // [NSA Suite B Implementer's Guide to NIST SP 800-56A]: doc/ecdh.pdf. - - // TODO: The NSA guide also suggests, in appendix B.1, another mechanism - // that would avoid the need to use `rng.fill()` more than once. It works - // by generating an extra 64 bits of random bytes and then reducing the - // output (mod n). Supposedly, this removes enough of the bias towards - // small values from the modular reduction, but it isn't obvious that it is - // sufficient. TODO: Figure out what we can do to mitigate the bias issue - // and switch to the other mechanism. - - let candidate = out; - - // XXX: The value 100 was chosen to match OpenSSL due to uncertainty of - // what specific value would be better, but it seems bad to try 100 times. - for _ in 0..100 { - // NSA Guide Steps 1, 2, and 3. - // - // Since we calculate the length ourselves, it is pointless to check - // it, since we can only check it by doing the same calculation. - - // NSA Guide Step 4. - // - // The requirement that the random number generator has the - // requested security strength is delegated to `rng`. - rng.fill(candidate)?; - - // NSA Guide Steps 5, 6, and 7. - if check_scalar_big_endian_bytes(ops, candidate).is_err() { - continue; - } - - // NSA Guide Step 8 is done in `public_from_private()`. - - // NSA Guide Step 9. - return Ok(()); - } - - Err(error::Unspecified) -} - -// The underlying X25519 and Ed25519 code uses an [u8; 32] to store the private -// key. To make the ECDH and ECDSA code similar to that, we also store the -// private key that way, which means we have to convert it to a Scalar whenever -// we need to use it. -#[inline] -pub fn private_key_as_scalar(ops: &PrivateKeyOps, private_key: &ec::Seed) -> Scalar { - // This cannot fail because we know the private key is valid. - scalar_from_big_endian_bytes(ops, private_key.bytes_less_safe()).unwrap() -} - -pub fn check_scalar_big_endian_bytes( - ops: &PrivateKeyOps, - bytes: &[u8], -) -> Result<(), error::Unspecified> { - debug_assert_eq!(bytes.len(), ops.common.num_limbs * LIMB_BYTES); - scalar_from_big_endian_bytes(ops, bytes).map(|_| ()) -} - -// Parses a fixed-length (zero-padded) big-endian-encoded scalar in the range -// [1, n). This is constant-time with respect to the actual value *only if* the -// value is actually in range. In other words, this won't leak anything about a -// valid value, but it might leak small amounts of information about an invalid -// value (which constraint it failed). -pub fn scalar_from_big_endian_bytes( - ops: &PrivateKeyOps, - bytes: &[u8], -) -> Result { - // [NSA Suite B Implementer's Guide to ECDSA] Appendix A.1.2, and - // [NSA Suite B Implementer's Guide to NIST SP 800-56A] Appendix B.2, - // "Key Pair Generation by Testing Candidates". - // - // [NSA Suite B Implementer's Guide to ECDSA]: doc/ecdsa.pdf. - // [NSA Suite B Implementer's Guide to NIST SP 800-56A]: doc/ecdh.pdf. - // - // Steps 5, 6, and 7. - // - // XXX: The NSA guide says that we should verify that the random scalar is - // in the range [0, n - 1) and then add one to it so that it is in the range - // [1, n). Instead, we verify that the scalar is in the range [1, n). This - // way, we avoid needing to compute or store the value (n - 1), we avoid the - // need to implement a function to add one to a scalar, and we avoid needing - // to convert the scalar back into an array of bytes. - scalar_parse_big_endian_fixed_consttime(ops.common, untrusted::Input::from(bytes)) -} - -pub fn public_from_private( - ops: &PrivateKeyOps, - public_out: &mut [u8], - my_private_key: &ec::Seed, -) -> Result<(), error::Unspecified> { - let elem_and_scalar_bytes = ops.common.num_limbs * LIMB_BYTES; - debug_assert_eq!(public_out.len(), 1 + (2 * elem_and_scalar_bytes)); - let my_private_key = private_key_as_scalar(ops, my_private_key); - let my_public_key = ops.point_mul_base(&my_private_key); - public_out[0] = 4; // Uncompressed encoding. - let (x_out, y_out) = (&mut public_out[1..]).split_at_mut(elem_and_scalar_bytes); - - // `big_endian_affine_from_jacobian` verifies that the point is not at - // infinity and is on the curve. - big_endian_affine_from_jacobian(ops, Some(x_out), Some(y_out), &my_public_key) -} - -pub fn affine_from_jacobian( - ops: &PrivateKeyOps, - p: &Point, -) -> Result<(Elem, Elem), error::Unspecified> { - let z = ops.common.point_z(p); - - // Since we restrict our private key to the range [1, n), the curve has - // prime order, and we verify that the peer's point is on the curve, - // there's no way that the result can be at infinity. But, use `assert!` - // instead of `debug_assert!` anyway - assert!(ops.common.elem_verify_is_not_zero(&z).is_ok()); - - let x = ops.common.point_x(p); - let y = ops.common.point_y(p); - - let zz_inv = ops.elem_inverse_squared(&z); - - let x_aff = ops.common.elem_product(&x, &zz_inv); - - // `y_aff` is needed to validate the point is on the curve. It is also - // needed in the non-ECDH case where we need to output it. - let y_aff = { - let zzzz_inv = ops.common.elem_squared(&zz_inv); - let zzz_inv = ops.common.elem_product(&z, &zzzz_inv); - ops.common.elem_product(&y, &zzz_inv) - }; - - // If we validated our inputs correctly and then computed (x, y, z), then - // (x, y, z) will be on the curve. See - // `verify_affine_point_is_on_the_curve_scaled` for the motivation. - verify_affine_point_is_on_the_curve(ops.common, (&x_aff, &y_aff))?; - - Ok((x_aff, y_aff)) -} - -pub fn big_endian_affine_from_jacobian( - ops: &PrivateKeyOps, - x_out: Option<&mut [u8]>, - y_out: Option<&mut [u8]>, - p: &Point, -) -> Result<(), error::Unspecified> { - let (x_aff, y_aff) = affine_from_jacobian(ops, p)?; - let num_limbs = ops.common.num_limbs; - if let Some(x_out) = x_out { - let x = ops.common.elem_unencoded(&x_aff); - limb::big_endian_from_limbs(&x.limbs[..num_limbs], x_out); - } - if let Some(y_out) = y_out { - let y = ops.common.elem_unencoded(&y_aff); - limb::big_endian_from_limbs(&y.limbs[..num_limbs], y_out); - } - - Ok(()) -} diff --git a/src/ec_17/suite_b/public_key.rs b/src/ec_17/suite_b/public_key.rs deleted file mode 100644 index 5bafa36039..0000000000 --- a/src/ec_17/suite_b/public_key.rs +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! Functionality shared by operations on public keys (ECDSA verification and -//! ECDH agreement). - -use super::{ops::*, verify_affine_point_is_on_the_curve}; -use crate::{arithmetic::montgomery::*, error}; - -/// Parses a public key encoded in uncompressed form. The key is validated -/// using the ECC Partial Public-Key Validation Routine from -/// [NIST SP 800-56A, revision 2] Section 5.6.2.3.3, the NSA's -/// "Suite B Implementer's Guide to NIST SP 800-56A," Appendix B.3, and the -/// NSA's "Suite B Implementer's Guide to FIPS 186-3 (ECDSA)," Appendix A.3. -/// -/// [NIST SP 800-56A, revision 2]: -/// http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar2.pdf -pub fn parse_uncompressed_point( - ops: &PublicKeyOps, - input: untrusted::Input, -) -> Result<(Elem, Elem), error::Unspecified> { - // NIST SP 800-56A Step 1: "Verify that Q is not the point at infinity. - // This can be done by inspection if the point is entered in the standard - // affine representation." (We do it by inspection since we only accept - // the affine representation.) - let (x, y) = input.read_all(error::Unspecified, |input| { - // The encoding must be 4, which is the encoding for "uncompressed". - let encoding = input.read_byte()?; - if encoding != 4 { - return Err(error::Unspecified); - } - - // NIST SP 800-56A Step 2: "Verify that xQ and yQ are integers in the - // interval [0, p-1] in the case that q is an odd prime p[.]" - let x = ops.elem_parse(input)?; - let y = ops.elem_parse(input)?; - Ok((x, y)) - })?; - - // NIST SP 800-56A Step 3: "If q is an odd prime p, verify that - // yQ**2 = xQ**3 + axQ + b in GF(p), where the arithmetic is performed - // modulo p." - verify_affine_point_is_on_the_curve(ops.common, (&x, &y))?; - - // NIST SP 800-56A Note: "Since its order is not verified, there is no - // check that the public key is in the correct EC subgroup." - // - // NSA Suite B Implementer's Guide Note: "ECC Full Public-Key Validation - // includes an additional check to ensure that the point has the correct - // order. This check is not necessary for curves having prime order (and - // cofactor h = 1), such as P-256 and P-384." - - Ok((x, y)) -} - -#[cfg(test)] -mod tests { - use super::{super::ops, *}; - use crate::test; - - #[test] - fn parse_uncompressed_point_test() { - test::run( - test_file!("suite_b_public_key_tests.txt"), - |section, test_case| { - assert_eq!(section, ""); - - let curve_name = test_case.consume_string("Curve"); - - let public_key = test_case.consume_bytes("Q"); - let public_key = untrusted::Input::from(&public_key); - let is_valid = test_case.consume_string("Result") == "P"; - - let curve_ops = public_key_ops_from_curve_name(&curve_name); - - let result = parse_uncompressed_point(curve_ops, public_key); - assert_eq!(is_valid, result.is_ok()); - - // TODO: Verify that we when we re-serialize the parsed (x, y), the - // output is equal to the input. - - Ok(()) - }, - ); - } - - fn public_key_ops_from_curve_name(curve_name: &str) -> &'static PublicKeyOps { - if curve_name == "P-256" { - &ops::p256::PUBLIC_KEY_OPS - } else if curve_name == "P-384" { - &ops::p384::PUBLIC_KEY_OPS - } else { - panic!("Unsupported curve: {}", curve_name); - } - } -} diff --git a/src/ec_17/suite_b/suite_b_public_key_tests.txt b/src/ec_17/suite_b/suite_b_public_key_tests.txt deleted file mode 100644 index 229a37eb19..0000000000 --- a/src/ec_17/suite_b/suite_b_public_key_tests.txt +++ /dev/null @@ -1,233 +0,0 @@ -# Test vectors for public key validation. - -# Invalid Curve Attack from -# https://web-in-security.blogspot.ca/2015/09/practical-invalid-curve-attacks.html -# https://www.nds.rub.de/media/nds/veroeffentlichungen/2015/09/14/main-full.pdf -Curve = P-256 -Q = 04b70bf043c144935756f8f4578c369cf960ee510a5a0f90e93a373a21f0d1397f4a2e0ded57a5156bb82eb4314c37fd4155395a7e51988af289cce531b9c17192 -Result = F - - -# Test vectors for Public Key Point Validation. -# -# These test vectors were generated by applying the patch in -# util/generate-tests.patch to BoringSSL, and then running -# `bssl generate-tests ecc-public-key`. -# - -# X == 0, decompressed with y_bit == 0. This verifies that the -# implementation doesn't reject zero-valued field elements (they -# aren't scalars). -Curve = P-256 -Q = 04000000000000000000000000000000000000000000000000000000000000000066485c780e2f83d72433bd5d84a06bb6541c2af31dae871728bf856a174f93f4 -Result = P - -# X == q. This is invalid because q isn't a valid field element. Some -# broken implementations might accept this if they reduce X mod q -# since q mod q == 0 and the Y coordinate matches the one from the -# x == 0 test case above. -Curve = P-256 -Q = 04ffffffff00000001000000000000000000000000ffffffffffffffffffffffff66485c780e2f83d72433bd5d84a06bb6541c2af31dae871728bf856a174f93f4 -Result = F (X is out of range) - -# X == 0, decompressed with y_bit == 1. -Curve = P-256 -Q = 04000000000000000000000000000000000000000000000000000000000000000099b7a386f1d07c29dbcc42a27b5f9449abe3d50de25178e8d7407a95e8b06c0b -Result = P - -# X == q, decompressed with y_bit == 1. See the previous X == q test -# case. -Curve = P-256 -Q = 04ffffffff00000001000000000000000000000000ffffffffffffffffffffffff99b7a386f1d07c29dbcc42a27b5f9449abe3d50de25178e8d7407a95e8b06c0b -Result = F (X is out of range) - -# The largest valid X coordinate, decompressed with y_bit == 0. This -# helps ensure that the upper bound on coordinate values is not too -# low. -Curve = P-256 -Q = 04ffffffff00000001000000000000000000000000fffffffffffffffffffffffce68e641309515ec1da369202838e0adda2b37040614a5f5460c616e871aa3ede -Result = P - -# X == 0, decompressed with y_bit == 0. This verifies that the -# implementation doesn't reject zero-valued field elements (they -# aren't scalars). -Curve = P-384 -Q = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e -Result = P - -# X == q. This is invalid because q isn't a valid field element. Some -# broken implementations might accept this if they reduce X mod q -# since q mod q == 0 and the Y coordinate matches the one from the -# x == 0 test case above. -Curve = P-384 -Q = 04fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff3cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e -Result = F (X is out of range) - -# X == 0, decompressed with y_bit == 1. -Curve = P-384 -Q = 04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c306610fb0ae5a159cf45c06069f22a6c5eb3641c602d42dea2c4b4f75550793406d80d2b91ad54f9048bd487af1ade1 -Result = P - -# X == q, decompressed with y_bit == 1. See the previous X == q test -# case. -Curve = P-384 -Q = 04fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffffc306610fb0ae5a159cf45c06069f22a6c5eb3641c602d42dea2c4b4f75550793406d80d2b91ad54f9048bd487af1ade1 -Result = F (X is out of range) - -# The largest valid X coordinate, decompressed with y_bit == 0. This -# helps ensure that the upper bound on coordinate values is not too -# low. -Curve = P-384 -Q = 04fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe8cdeadbbd04911a3c1931e26df3fa6439dca9c7eb286fbd46fc319f0e2bb780232baf57825fc0c1912ada2fefe84024c -Result = P - - -# RFC 5903 (IKE and IKEv2 ECDH) Test Vectors -# Q is (grx, gry) in uncompressed encoding. - -Curve = P-256 -Q = 04D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF6356FBF3CA366CC23E8157854C13C58D6AAC23F046ADA30F8353E74F33039872AB -Result = P - -Curve = P-384 -Q = 04E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571DCFBEC7AACF3196472169E838430367F66EEBE3C6E70C416DD5F0C68759DD1FFF83FA40142209DFF5EAAD96DB9E6386C -Result = P - -# Tweaks of the RFC 5903 vectors for testing malformed (syntactically) public -# keys - -Curve = P-256 -Q = "" -Result = F (Peer public key is empty.) - -Curve = P-384 -Q = "" -Result = F (Peer public key is empty.) - -Curve = P-256 -Q = 00 -Result = F (Peer public key is the special encoding of the point at infinity.) - -Curve = P-384 -Q = 00 -Result = F (Peer public key is the special encoding of the point at infinity.) - -Curve = P-256 -Q = 01 -Result = F (Peer public key consists of (only) an invalid encoding indicator.) - -Curve = P-384 -Q = 01 -Result = F (Peer public key consists of (only) an invalid encoding indicator.) - -Curve = P-256 -Q = 02 -Result = F (Peer public key consists of (only) a compressed encoding indicator (0x02).) - -Curve = P-384 -Q = 02 -Result = F (Peer public key consists of (only) a compressed encoding indicator (0x02).) - -Curve = P-256 -Q = 03 -Result = F (Peer public key consists of (only) a compressed encoding indicator (0x03).) - -Curve = P-384 -Q = 03 -Result = F (Peer public key consists of (only) a compressed encoding indicator (0x03).) - -Curve = P-256 -Q = 04 -Result = F (Peer public key consists of (only) a uncompressed encoding indicator.) - -Curve = P-384 -Q = 04 -Result = F (Peer public key consists of (only) a compressed encoding indicator.) - -Curve = P-256 -Q = 04 -Result = F (Peer public key consists of (only) an invalid encoding indicator (0x05).) - -Curve = P-384 -Q = 04 -Result = F (Peer public key consists of (only) an invalid encoding indicator (0x05).) - -Curve = P-256 -Q = 01D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF6356FBF3CA366CC23E8157854C13C58D6AAC23F046ADA30F8353E74F33039872AB -Result = F (Peer public key starts with a completely invalid encoding indicator byte (0x01).) - -Curve = P-384 -Q = 01E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571DCFBEC7AACF3196472169E838430367F66EEBE3C6E70C416DD5F0C68759DD1FFF83FA40142209DFF5EAAD96DB9E6386C -Result = F (Peer public key starts with a completely invalid encoding indicator byte (0x01).) - -Curve = P-256 -Q = 02D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF6356FBF3CA366CC23E8157854C13C58D6AAC23F046ADA30F8353E74F33039872AB -Result = F (Peer public key encoding's first byte is 0x02, should be 0x04.) - -Curve = P-384 -Q = 02E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571DCFBEC7AACF3196472169E838430367F66EEBE3C6E70C416DD5F0C68759DD1FFF83FA40142209DFF5EAAD96DB9E6386C -Result = F (Peer public key encoding's first byte is 0x02, should be 0x04.) - -Curve = P-256 -Q = 03D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF6356FBF3CA366CC23E8157854C13C58D6AAC23F046ADA30F8353E74F33039872AB -Result = F (Peer public key encoding's first byte is 0x03, should be 0x04.) - -Curve = P-384 -Q = 03E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571DCFBEC7AACF3196472169E838430367F66EEBE3C6E70C416DD5F0C68759DD1FFF83FA40142209DFF5EAAD96DB9E6386C -Result = F (Peer public key encoding's first byte is 0x03, should be 0x04.) - -Curve = P-256 -Q = 05D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF6356FBF3CA366CC23E8157854C13C58D6AAC23F046ADA30F8353E74F33039872AB -Result = F (Peer public key starts with a completely invalid encoding indicator byte (0x05).) - -Curve = P-384 -Q = 05E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571DCFBEC7AACF3196472169E838430367F66EEBE3C6E70C416DD5F0C68759DD1FFF83FA40142209DFF5EAAD96DB9E6386C -Result = F (Peer public key starts with a completely invalid encoding indicator byte (0x05).) - -Curve = P-256 -Q = FFD12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF6356FBF3CA366CC23E8157854C13C58D6AAC23F046ADA30F8353E74F33039872AB -Result = F (Peer public key starts with a completely invalid encoding indicator byte (0xff).) - -Curve = P-384 -Q = FFE558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571DCFBEC7AACF3196472169E838430367F66EEBE3C6E70C416DD5F0C68759DD1FFF83FA40142209DFF5EAAD96DB9E6386C -Result = F (Peer public key starts with a completely invalid encoding indicator byte (0xff).) - -Curve = P-256 -Q = D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF6356FBF3CA366CC23E8157854C13C58D6AAC23F046ADA30F8353E74F33039872AB -Result = F (Peer public key is missing the encoding indicator byte.) - -Curve = P-384 -Q = E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571DCFBEC7AACF3196472169E838430367F66EEBE3C6E70C416DD5F0C68759DD1FFF83FA40142209DFF5EAAD96DB9E6386C -Result = F (Peer public key is missing the encoding indicator byte.) - -Curve = P-256 -Q = 04D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF6356FBF3CA366CC23E8157854C13C58D6AAC23F046ADA30F8353E74F33039872 -Result = F (Peer public key has the last byte truncated.) - -Curve = P-384 -Q = 04E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571DCFBEC7AACF3196472169E838430367F66EEBE3C6E70C416DD5F0C68759DD1FFF83FA40142209DFF5EAAD96DB9E638 -Result = F (Peer public key has the last byte truncated.) - -Curve = P-256 -Q = 04D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF63 -Result = F (Peer public key is missing the Y coordinate completely.) - -Curve = P-384 -Q = 04E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571 -Result = F (Peer public key is missing the Y coordinate completely.) - -Curve = P-256 -Q = 02D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF63 -Result = F (Peer public key is in compressed form (0x02).) - -Curve = P-384 -Q = 02E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571 -Result = F (Peer public key is in compressed form (0x02).) - -Curve = P-256 -Q = 03D12DFB5289C8D4F81208B70270398C342296970A0BCCB74C736FC7554494BF63 -Result = F (Peer public key is in compressed form (0x03).) - -Curve = P-384 -Q = 03E558DBEF53EECDE3D3FCCFC1AEA08A89A987475D12FD950D83CFA41732BC509D0D1AC43A0336DEF96FDA41D0774A3571 -Result = F (Peer public key is in compressed form (0x03).) diff --git a/src/ec_17/suite_b_17.rs b/src/ec_17/suite_b_17.rs deleted file mode 100644 index ce6ebb5bf9..0000000000 --- a/src/ec_17/suite_b_17.rs +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright 2016 Brian Smith. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -//! Elliptic curve operations on P-256 & P-384. - -use self::ops::*; -use crate::{arithmetic::montgomery::*, cpu, ec, error, io::der, limb::LimbMask, pkcs8}; - -// NIST SP 800-56A Step 3: "If q is an odd prime p, verify that -// yQ**2 = xQ**3 + axQ + b in GF(p), where the arithmetic is performed modulo -// p." -// -// That is, verify that (x, y) is on the curve, which is true iif: -// -// y**2 == x**3 + a*x + b (mod q) -// -// Or, equivalently, but more efficiently: -// -// y**2 == (x**2 + a)*x + b (mod q) -// -fn verify_affine_point_is_on_the_curve( - ops: &CommonOps, - (x, y): (&Elem, &Elem), -) -> Result<(), error::Unspecified> { - verify_affine_point_is_on_the_curve_scaled(ops, (x, y), &ops.a, &ops.b) -} - -// Use `verify_affine_point_is_on_the_curve` instead of this function whenever -// the affine coordinates are available or will become available. This function -// should only be used then the affine coordinates are never calculated. See -// the notes for `verify_affine_point_is_on_the_curve_scaled`. -// -// The value `z**2` is returned on success because it is useful for ECDSA -// verification. -// -// This function also verifies that the point is not at infinity. -fn verify_jacobian_point_is_on_the_curve( - ops: &CommonOps, - p: &Point, -) -> Result, error::Unspecified> { - let z = ops.point_z(p); - - // Verify that the point is not at infinity. - ops.elem_verify_is_not_zero(&z)?; - - let x = ops.point_x(p); - let y = ops.point_y(p); - - // We are given Jacobian coordinates (x, y, z). So, we have: - // - // (x/z**2, y/z**3) == (x', y'), - // - // where (x', y') are the affine coordinates. The curve equation is: - // - // y'**2 == x'**3 + a*x' + b == (x'**2 + a)*x' + b - // - // Substituting our Jacobian coordinates, we get: - // - // / y \**2 / / x \**2 \ / x \ - // | ---- | == | | ---- | + a | * | ---- | + b - // \ z**3 / \ \ z**2 / / \ z**2 / - // - // Simplify: - // - // y**2 / x**2 \ x - // ---- == | ---- + a | * ---- + b - // z**6 \ z**4 / z**2 - // - // Multiply both sides by z**6: - // - // z**6 / x**2 \ z**6 - // ---- * y**2 == | ---- + a | * ---- * x + (z**6) * b - // z**6 \ z**4 / z**2 - // - // Simplify: - // - // / x**2 \ - // y**2 == | ---- + a | * z**4 * x + (z**6) * b - // \ z**4 / - // - // Distribute z**4: - // - // / z**4 \ - // y**2 == | ---- * x**2 + z**4 * a | * x + (z**6) * b - // \ z**4 / - // - // Simplify: - // - // y**2 == (x**2 + z**4 * a) * x + (z**6) * b - // - let z2 = ops.elem_squared(&z); - let z4 = ops.elem_squared(&z2); - let z4_a = ops.elem_product(&z4, &ops.a); - let z6 = ops.elem_product(&z4, &z2); - let z6_b = ops.elem_product(&z6, &ops.b); - verify_affine_point_is_on_the_curve_scaled(ops, (&x, &y), &z4_a, &z6_b)?; - Ok(z2) -} - -// Handles the common logic of point-is-on-the-curve checks for both affine and -// Jacobian cases. -// -// When doing the check that the point is on the curve after a computation, -// to avoid fault attacks or mitigate potential bugs, it is better for security -// to use `verify_affine_point_is_on_the_curve` on the affine coordinates, -// because it provides some protection against faults that occur in the -// computation of the inverse of `z`. See the paper and presentation "Fault -// Attacks on Projective-to-Affine Coordinates Conversion" by Diana Maimuţ, -// Cédric Murdica, David Naccache, Mehdi Tibouchi. That presentation concluded -// simply "Check the validity of the result after conversion to affine -// coordinates." (It seems like a good idea to verify that -// z_inv * z == 1 mod q too). -// -// In the case of affine coordinates (x, y), `a_scaled` and `b_scaled` are -// `a` and `b`, respectively. In the case of Jacobian coordinates (x, y, z), -// the computation and comparison is the same, except `a_scaled` and `b_scaled` -// are (z**4 * a) and (z**6 * b), respectively. Thus, performance is another -// reason to prefer doing the check on the affine coordinates, as Jacobian -// computation requires 3 extra multiplications and 2 extra squarings. -// -// An example of a fault attack that isn't mitigated by a point-on-the-curve -// check after multiplication is given in "Sign Change Fault Attacks On -// Elliptic Curve Cryptosystems" by Johannes Blömer, Martin Otto, and -// Jean-Pierre Seifert. -fn verify_affine_point_is_on_the_curve_scaled( - ops: &CommonOps, - (x, y): (&Elem, &Elem), - a_scaled: &Elem, - b_scaled: &Elem, -) -> Result<(), error::Unspecified> { - let lhs = ops.elem_squared(y); - - let mut rhs = ops.elem_squared(x); - ops.elem_add(&mut rhs, a_scaled); - ops.elem_mul(&mut rhs, x); - ops.elem_add(&mut rhs, b_scaled); - - if ops.elems_are_equal(&lhs, &rhs) != LimbMask::True { - return Err(error::Unspecified); - } - - Ok(()) -} - -pub(crate) fn key_pair_from_pkcs8( - curve: &'static ec::Curve, - template: &pkcs8::Template, - input: untrusted::Input, - cpu_features: cpu::Features, -) -> Result { - let (ec_private_key, _) = pkcs8::unwrap_key(template, pkcs8::Version::V1Only, input)?; - let (private_key, public_key) = - ec_private_key.read_all(error::KeyRejected::invalid_encoding(), |input| { - // https://tools.ietf.org/html/rfc5915#section-3 - der::nested( - input, - der::Tag::Sequence, - error::KeyRejected::invalid_encoding(), - |input| key_pair_from_pkcs8_(template, input), - ) - })?; - key_pair_from_bytes(curve, private_key, public_key, cpu_features) -} - -fn key_pair_from_pkcs8_<'a>( - template: &pkcs8::Template, - input: &mut untrusted::Reader<'a>, -) -> Result<(untrusted::Input<'a>, untrusted::Input<'a>), error::KeyRejected> { - let version = der::small_nonnegative_integer(input) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - if version != 1 { - return Err(error::KeyRejected::version_not_supported()); - } - - let private_key = der::expect_tag_and_get_value(input, der::Tag::OctetString) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - - // [0] parameters (optional). - if input.peek(u8::from(der::Tag::ContextSpecificConstructed0)) { - let actual_alg_id = - der::expect_tag_and_get_value(input, der::Tag::ContextSpecificConstructed0) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - if actual_alg_id != template.curve_oid() { - return Err(error::KeyRejected::wrong_algorithm()); - } - } - - // [1] publicKey. The RFC says it is optional, but we require it - // to be present. - let public_key = der::nested( - input, - der::Tag::ContextSpecificConstructed1, - error::Unspecified, - der::bit_string_with_no_unused_bits, - ) - .map_err(|error::Unspecified| error::KeyRejected::invalid_encoding())?; - - Ok((private_key, public_key)) -} - -pub(crate) fn key_pair_from_bytes( - curve: &'static ec::Curve, - private_key_bytes: untrusted::Input, - public_key_bytes: untrusted::Input, - cpu_features: cpu::Features, -) -> Result { - let seed = ec::Seed::from_bytes(curve, private_key_bytes, cpu_features) - .map_err(|error::Unspecified| error::KeyRejected::invalid_component())?; - - let r = ec::KeyPair::derive(seed) - .map_err(|error::Unspecified| error::KeyRejected::unexpected_error())?; - if public_key_bytes != *r.public_key().as_ref() { - return Err(error::KeyRejected::inconsistent_components()); - } - - Ok(r) -} - -pub mod curve; -pub mod ecdh; -pub mod ecdsa; - -pub mod ops; - -mod private_key; -mod public_key; diff --git a/src/lib.rs b/src/lib.rs index 3c842bf5f1..0275f4ba6b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -120,11 +120,6 @@ pub mod io; mod cpu; pub mod digest; -#[cfg(any(target_arch="wasm32", all(target_os="xous",not(target_arch="x86_64"))))] -pub mod ec_17; -#[cfg(any(target_arch="wasm32", all(target_os="xous",not(target_arch="x86_64"))))] -pub use ec_17 as ec; -#[cfg(not(any(target_arch="wasm32", all(target_os="xous",not(target_arch="x86_64")))))] mod ec; mod endian; pub mod error;