diff --git a/docs/arecibo/errors/enum.NovaError.html b/docs/arecibo/errors/enum.NovaError.html index d7852fec8..78a27469f 100644 --- a/docs/arecibo/errors/enum.NovaError.html +++ b/docs/arecibo/errors/enum.NovaError.html @@ -44,7 +44,7 @@
§

SynthesisError(String)

return when error during synthesis

§

DigestError

returned when there is an error creating a digest

§

InternalError

returned when the prover cannot prove the provided statement due to completeness error

-

Trait Implementations§

source§

impl Debug for NovaError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for NovaError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for NovaError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<NovaError> for SuperNovaError

source§

fn from(source: NovaError) -> Self

Converts to this type from the input type.
source§

impl From<PCSError> for NovaError

source§

fn from(source: PCSError) -> Self

Converts to this type from the input type.
source§

impl From<SynthesisError> for NovaError

source§

fn from(err: SynthesisError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for NovaError

source§

fn eq(&self, other: &NovaError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Debug for NovaError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for NovaError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for NovaError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<NovaError> for SuperNovaError

source§

fn from(source: NovaError) -> Self

Converts to this type from the input type.
source§

impl From<PCSError> for NovaError

source§

fn from(source: PCSError) -> Self

Converts to this type from the input type.
source§

impl From<SynthesisError> for NovaError

source§

fn from(err: SynthesisError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for NovaError

source§

fn eq(&self, other: &NovaError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for NovaError

source§

impl StructuralEq for NovaError

source§

impl StructuralPartialEq for NovaError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/arecibo/spartan/batched/index.html b/docs/arecibo/spartan/batched/index.html index 94e55084f..babbad9b1 100644 --- a/docs/arecibo/spartan/batched/index.html +++ b/docs/arecibo/spartan/batched/index.html @@ -1,5 +1,5 @@ arecibo::spartan::batched - Rust -

Module arecibo::spartan::batched

source ·
Expand description

This module implements BatchedRelaxedR1CSSNARKTrait using Spartan that is generic over the polynomial commitment +

Module arecibo::spartan::batched

source ·
Expand description

This module implements BatchedRelaxedR1CSSNARKTrait using Spartan that is generic over the polynomial commitment and evaluation argument (i.e., a PCS) This version of Spartan does not use preprocessing so the verifier keeps the entire description of R1CS matrices. This is essentially optimal for the verifier when using an IPA-based polynomial commitment scheme. This batched implementation batches the outer and inner sumchecks of the Spartan SNARK.

diff --git a/docs/arecibo/spartan/batched/struct.BatchedRelaxedR1CSSNARK.html b/docs/arecibo/spartan/batched/struct.BatchedRelaxedR1CSSNARK.html index bb717f39e..69decfaa5 100644 --- a/docs/arecibo/spartan/batched/struct.BatchedRelaxedR1CSSNARK.html +++ b/docs/arecibo/spartan/batched/struct.BatchedRelaxedR1CSSNARK.html @@ -2,7 +2,7 @@
pub struct BatchedRelaxedR1CSSNARK<E: Engine, EE: EvaluationEngineTrait<E>> { /* private fields */ }
Expand description

A succinct proof of knowledge of a witness to a batch of relaxed R1CS instances The proof is produced using Spartan’s combination of the sum-check and the commitment to a vector viewed as a polynomial commitment

-

Trait Implementations§

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

A type that represents the prover’s key
§

type VerifierKey = VerifierKey<E, EE>

A type that represents the verifier’s key
source§

fn setup( +

Trait Implementations§

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

A type that represents the prover’s key
§

type VerifierKey = VerifierKey<E, EE>

A type that represents the verifier’s key
source§

fn setup( ck: Arc<<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey>, S: Vec<&R1CSShape<E>> ) -> Result<(Self::ProverKey, Self::VerifierKey), NovaError>

Produces the keys for the prover and the verifier Read more
source§

fn prove( @@ -11,7 +11,7 @@ S: Vec<&R1CSShape<E>>, U: &[RelaxedR1CSInstance<E>], W: &[RelaxedR1CSWitness<E>] -) -> Result<Self, NovaError>

Produces a new SNARK for a batch of relaxed R1CS
source§

fn verify( +) -> Result<Self, NovaError>

Produces a new SNARK for a batch of relaxed R1CS
source§

fn verify( &self, vk: &Self::VerifierKey, U: &[RelaxedR1CSInstance<E>] @@ -21,19 +21,19 @@ be at least as large as this hint.

source§

impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for BatchedRelaxedR1CSSNARK<E, EE>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

A type that represents the prover’s key
§

type VerifierKey = VerifierKey<E, EE>

A type that represents the verifier’s key
source§

fn ck_floor() -> Box<dyn for<'a> Fn(&'a R1CSShape<E>) -> usize>

This associated function (not a method) provides a hint that offers + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

A type that represents the prover’s key
§

type VerifierKey = VerifierKey<E, EE>

A type that represents the verifier’s key
source§

fn ck_floor() -> Box<dyn for<'a> Fn(&'a R1CSShape<E>) -> usize>

This associated function (not a method) provides a hint that offers a minimum sizing cue for the commitment key used by this SNARK implementation. The commitment key passed in setup should then -be at least as large as this hint.
source§

fn setup( +be at least as large as this hint.

source§

fn setup( ck: Arc<<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey>, S: &R1CSShape<E> -) -> Result<(Self::ProverKey, Self::VerifierKey), NovaError>

Produces the keys for the prover and the verifier
source§

fn prove( +) -> Result<(Self::ProverKey, Self::VerifierKey), NovaError>

Produces the keys for the prover and the verifier
source§

fn prove( ck: &<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey, pk: &Self::ProverKey, S: &R1CSShape<E>, U: &RelaxedR1CSInstance<E>, W: &RelaxedR1CSWitness<E> -) -> Result<Self, NovaError>

Produces a new SNARK for a relaxed R1CS
source§

fn verify( +) -> Result<Self, NovaError>

Produces a new SNARK for a relaxed R1CS
source§

fn verify( &self, vk: &Self::VerifierKey, U: &RelaxedR1CSInstance<E> diff --git a/docs/arecibo/spartan/index.html b/docs/arecibo/spartan/index.html index 84622a814..79629b81f 100644 --- a/docs/arecibo/spartan/index.html +++ b/docs/arecibo/spartan/index.html @@ -1,5 +1,5 @@ arecibo::spartan - Rust -

Module arecibo::spartan

source ·
Expand description

This module implements RelaxedR1CSSNARKTrait using Spartan that is generic +

Module arecibo::spartan

source ·
Expand description

This module implements RelaxedR1CSSNARKTrait using Spartan that is generic over the polynomial commitment and evaluation argument (i.e., a PCS) We provide two implementations, one in snark.rs (which does not use any preprocessing) and another in ppsnark.rs (which uses preprocessing to keep the verifier’s state small if the PCS provides a succinct verifier) diff --git a/docs/arecibo/spartan/snark/index.html b/docs/arecibo/spartan/snark/index.html index bff6bd5f8..bd97d2b47 100644 --- a/docs/arecibo/spartan/snark/index.html +++ b/docs/arecibo/spartan/snark/index.html @@ -1,5 +1,5 @@ arecibo::spartan::snark - Rust

-

Module arecibo::spartan::snark

source ·
Expand description

This module implements RelaxedR1CSSNARKTrait using Spartan that is generic +

Module arecibo::spartan::snark

source ·
Expand description

This module implements RelaxedR1CSSNARKTrait using Spartan that is generic over the polynomial commitment and evaluation argument (i.e., a PCS) This version of Spartan does not use preprocessing so the verifier keeps the entire description of R1CS matrices. This is essentially optimal for the verifier when using diff --git a/docs/arecibo/spartan/snark/struct.RelaxedR1CSSNARK.html b/docs/arecibo/spartan/snark/struct.RelaxedR1CSSNARK.html index be6dc6529..d12354eab 100644 --- a/docs/arecibo/spartan/snark/struct.RelaxedR1CSSNARK.html +++ b/docs/arecibo/spartan/snark/struct.RelaxedR1CSSNARK.html @@ -7,14 +7,14 @@ EE::EvaluationArgument: Clone,

source§

fn clone(&self) -> RelaxedR1CSSNARK<E, EE>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for RelaxedR1CSSNARK<E, EE>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for RelaxedR1CSSNARK<E, EE>

source§

fn prove( + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for RelaxedR1CSSNARK<E, EE>

source§

fn prove( ck: &<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey, pk: &Self::ProverKey, S: &R1CSShape<E>, U: &RelaxedR1CSInstance<E>, W: &RelaxedR1CSWitness<E> ) -> Result<Self, NovaError>

produces a succinct proof of satisfiability of a RelaxedR1CS instance

-
source§

fn verify( +

source§

fn verify( &self, vk: &Self::VerifierKey, U: &RelaxedR1CSInstance<E> diff --git a/docs/arecibo/traits/snark/trait.BatchedRelaxedR1CSSNARKTrait.html b/docs/arecibo/traits/snark/trait.BatchedRelaxedR1CSSNARKTrait.html index 76bcd5b63..dc70f027d 100644 --- a/docs/arecibo/traits/snark/trait.BatchedRelaxedR1CSSNARKTrait.html +++ b/docs/arecibo/traits/snark/trait.BatchedRelaxedR1CSSNARKTrait.html @@ -48,4 +48,4 @@ a minimum sizing cue for the commitment key used by this SNARK implementation. The commitment key passed in setup should then be at least as large as this hint.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched::BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched_ppsnark::BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched::BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched_ppsnark::BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

\ No newline at end of file diff --git a/docs/arecibo/traits/snark/trait.RelaxedR1CSSNARKTrait.html b/docs/arecibo/traits/snark/trait.RelaxedR1CSSNARKTrait.html index 5852c2222..128fbba8f 100644 --- a/docs/arecibo/traits/snark/trait.RelaxedR1CSSNARKTrait.html +++ b/docs/arecibo/traits/snark/trait.RelaxedR1CSSNARKTrait.html @@ -46,4 +46,4 @@ a minimum sizing cue for the commitment key used by this SNARK implementation. The commitment key passed in setup should then be at least as large as this hint.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched::BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched_ppsnark::BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::ppsnark::RelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::snark::RelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched::BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched_ppsnark::BatchedRelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::ppsnark::RelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

source§

impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::snark::RelaxedR1CSSNARK<E, EE>

§

type ProverKey = ProverKey<E, EE>

§

type VerifierKey = VerifierKey<E, EE>

\ No newline at end of file diff --git a/docs/arecibo/traits/trait.Group.html b/docs/arecibo/traits/trait.Group.html index 33cf3b9c7..2a30f7da6 100644 --- a/docs/arecibo/traits/trait.Group.html +++ b/docs/arecibo/traits/trait.Group.html @@ -10,4 +10,4 @@

Required Associated Types§

source

type Base: PrimeFieldBits + Serialize + for<'de> Deserialize<'de>

A type representing an element of the base field of the group

source

type Scalar: PrimeFieldBits + PrimeFieldExt + Send + Sync + Serialize + for<'de> Deserialize<'de>

A type representing an element of the scalar field of the group

Required Methods§

source

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

Returns A, B, the order of the group, the size of the base field as big integers

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Group for Point

§

type Base = Fp

§

type Scalar = Fq

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fp

§

type Scalar = Fq

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fr

§

type Scalar = Fq

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fq

§

type Scalar = Fp

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fq

§

type Scalar = Fp

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fq

§

type Scalar = Fr

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Group for Point

§

type Base = Fp

§

type Scalar = Fq

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fp

§

type Scalar = Fq

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fq

§

type Scalar = Fp

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fr

§

type Scalar = Fq

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fq

§

type Scalar = Fp

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

source§

impl Group for Point

§

type Base = Fq

§

type Scalar = Fr

source§

fn group_params() -> (Self::Base, Self::Base, BigInt, BigInt)

Implementors§

\ No newline at end of file diff --git a/docs/arecibo/traits/trait.PrimeFieldExt.html b/docs/arecibo/traits/trait.PrimeFieldExt.html index a2bafa70c..d8c5d084d 100644 --- a/docs/arecibo/traits/trait.PrimeFieldExt.html +++ b/docs/arecibo/traits/trait.PrimeFieldExt.html @@ -4,4 +4,4 @@ fn from_uniform(bytes: &[u8]) -> Self; }
Expand description

Defines additional methods on PrimeField objects

Required Methods§

source

fn from_uniform(bytes: &[u8]) -> Self

Returns a scalar representing the bytes

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

source§

impl PrimeFieldExt for Scalar

source§

fn from_uniform(bytes: &[u8]) -> Self

Implementors§

\ No newline at end of file diff --git a/docs/arecibo/traits/trait.TranscriptReprTrait.html b/docs/arecibo/traits/trait.TranscriptReprTrait.html index 5e88e3949..548ec732e 100644 --- a/docs/arecibo/traits/trait.TranscriptReprTrait.html +++ b/docs/arecibo/traits/trait.TranscriptReprTrait.html @@ -4,4 +4,4 @@ fn to_transcript_bytes(&self) -> Vec<u8> ; }
Expand description

This trait allows types to implement how they want to be added to TranscriptEngine

Required Methods§

source

fn to_transcript_bytes(&self) -> Vec<u8>

returns a byte representation of self to be added to the transcript

-

Implementations on Foreign Types§

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group, T: TranscriptReprTrait<G>> TranscriptReprTrait<G> for &[T]

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Compressed

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Compressed

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Compressed

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Compressed

source§

fn to_transcript_bytes(&self) -> Vec<u8>

Implementors§

source§

impl<E: Engine> TranscriptReprTrait<<E as Engine>::GE> for RelaxedR1CSInstance<E>

source§

impl<E: Engine> TranscriptReprTrait<<E as Engine>::GE> for R1CSShapeSparkCommitment<E>

\ No newline at end of file +

Implementations on Foreign Types§

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group> TranscriptReprTrait<G> for Scalar

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: Group, T: TranscriptReprTrait<G>> TranscriptReprTrait<G> for &[T]

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Affine

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Compressed

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Compressed

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Compressed

source§

fn to_transcript_bytes(&self) -> Vec<u8>

source§

impl<G: DlogGroup> TranscriptReprTrait<G> for Compressed

source§

fn to_transcript_bytes(&self) -> Vec<u8>

Implementors§

source§

impl<E: Engine> TranscriptReprTrait<<E as Engine>::GE> for RelaxedR1CSInstance<E>

source§

impl<E: Engine> TranscriptReprTrait<<E as Engine>::GE> for R1CSShapeSparkCommitment<E>

\ No newline at end of file diff --git a/docs/search-index.js b/docs/search-index.js index fec523f27..aa461cdf2 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["arecibo",{"doc":"This library implements Nova, a high-speed recursive SNARK.","t":"FFFFFFFNNNNNNNNNNNNNNHNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCQNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNCCNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQSPPPPPPPPPPPPPPPPPPGGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFIFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCHCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFRRFKFFKFFMNNNNNNNNNNNNNNHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNMNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGPNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKRRRRRRKIKRKRKRRKIIKRRRRKKMMMMCCMCMMMMMCMMMMKFMNNNNNNNNNNNNNNMNNNNNNRKRKRKKMMMMMMRKRRMMMKKRRKRRNNHMMMMMMM","n":["CompressedSNARK","ProverKey","PublicParams","R1CSWithArity","RecursiveSNARK","ResourceBuffer","VerifierKey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_digest","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","constants","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","digest","digest","drop","drop","drop","drop","drop","drop","drop","entomb","eq","eq","errors","exhume","extent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","gadgets","impl_traits","init","init","init","init","init","init","init","into","into","into","into","into","into","into","new","new","num_constraints","num_steps","num_variables","outputs","prove","prove_step","provider","r1cs","serialize","serialize","serialize","serialize","serialize","serialize","setup","setup","spartan","supernova","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","traits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","z0_primary","zi_primary","zip_with","zip_with_for_each","NUM_HASH_BITS","DecompressionError","DigestError","IncorrectWitness","InternalError","InternalTranscriptError","InvalidCommitmentKeyLength","InvalidIndex","InvalidInitialInputLength","InvalidInputLength","InvalidMultisetProof","InvalidNumSteps","InvalidPCS","InvalidProductProof","InvalidStepCircuitIO","InvalidStepOutputLength","InvalidSumcheckProof","InvalidWitnessLength","LengthError","NovaError","PCSError","PCSError","ProofVerifyError","SynthesisError","UnSat","UnSatIndex","ZMError","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","from","init","init","into","into","source","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Bn256EngineIPA","Bn256EngineKZG","Bn256EngineZM","GrumpkinEngine","PallasEngine","Secp256k1Engine","Secq256k1Engine","VestaEngine","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hyperkzg","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","ipa_pc","non_hiding_zeromorph","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","EvaluationArgument","EvaluationEngine","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","fmt","fmt","from","from","init","init","into","into","prove","serialize","serialize","setup","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify","vzip","vzip","EvaluationEngine","InnerProductArgument","ProverKey","VerifierKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","prove","serialize","serialize","setup","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","UVKZGEvaluation","UVKZGPCS","UVKZGPoly","UVKZGProof","ZMCommitment","ZMEvaluation","ZMPCS","ZMProof","ZMProverKey","ZMVerifierKey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeffs","commit","default","default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","open","proof","prove","serialize","serialize","setup","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CommitmentKeyHint","R1CSInstance","R1CSResult","R1CSShape","R1CSWitness","RelaxedR1CSInstance","RelaxedR1CSWitness","absorb_in_ro","absorb_in_ro","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commit","commit_T","commit_T_into","commitment_key","commitment_key_size","default","default","default","default_T","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","drop","drop","entomb","eq","eq","eq","eq","eq","eq","exhume","extent","fmt","fmt","fmt","fmt","fmt","fmt","fold","fold","fold_mut","fold_mut","from","from","from","from","from","from","from_r1cs_instance","from_r1cs_instance_unchecked","from_r1cs_witness","init","init","init","init","init","init","into","into","into","into","into","into","is_sat","is_sat_relaxed","new","new","new","pad","pad","random","random_witness_instance","serialize","serialize","serialize","serialize","serialize","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_transcript_bytes","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","batched","batched_ppsnark","polys","powers","ppsnark","snark","BatchedRelaxedR1CSSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","ck_floor","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","prove","serialize","serialize","setup","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","BatchedRelaxedR1CSSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","ck_floor","ck_floor","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","prove","serialize","serialize","setup","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","multilinear","MultilinearPolynomial","add","bind_poly_var_top","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","evaluate","evaluate_with","evaluate_with_chis","evaluations","fmt","from","get_num_vars","index","init","into","is_empty","len","new","random","serialize","to_owned","try_from","try_into","type_id","vzip","ProverKey","R1CSShapeSparkCommitment","R1CSShapeSparkRepr","RelaxedR1CSSNARK","VerifierKey","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ck_floor","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","new","prove","serialize","serialize","serialize","serialize","setup","to_owned","to_owned","to_owned","to_owned","to_owned","to_transcript_bytes","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","ProverKey","RelaxedR1CSSNARK","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","serialize","serialize","setup","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","AuxParams","C1","C2","CircuitDigests","NonUniformCircuit","PublicParams","RecursiveSNARK","StepCircuit","TrivialSecondaryCircuit","TrivialTestCircuit","arity","arity","arity","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_digest","circuit_index","circuit_index","circuit_index","circuit_param_digests","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","digest","digest","drop","drop","drop","drop","drop","drop","eq","eq","error","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_parts","from_parts_unchecked","index","init","init","init","init","init","init","initial_circuit_index","into","into","into","into","into","into","into_parts","new","new","num_circuits","primary_circuit","prove_step","secondary_circuit","serialize","serialize","serialize","serialize","setup","snark","synthesize","synthesize","synthesize","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","z0_primary","zi_primary","MissingCK","NovaError","SuperNovaError","UnSatIndex","borrow","borrow_mut","deref","deref_mut","drop","eq","fmt","fmt","from","from","init","into","source","to_string","try_from","try_into","type_id","vzip","CompressedSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","serialize","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","AbsorbInROTrait","Base","Base","CE","CircuitRO","Constants","Constants","CurveCycleEquipped","Dual","Engine","GE","Group","NativeRO","PrimeFieldExt","RO","ROCircuit","ROCircuitTrait","ROConstants","ROConstantsCircuit","ROTrait","Scalar","Scalar","Secondary","TE","TranscriptEngineTrait","TranscriptReprTrait","absorb","absorb","absorb","absorb_in_ro","circuit","commitment","dom_sep","evaluation","from_uniform","group_params","new","new","new","snark","squeeze","squeeze","squeeze","to_transcript_bytes","StepCircuit","TrivialCircuit","arity","arity","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","eq","fmt","from","init","into","synthesize","synthesize","to_owned","try_from","try_into","type_id","vzip","Commitment","CommitmentEngineTrait","CommitmentKey","CommitmentTrait","CompressedCommitment","Len","ScalarMul","commit","compress","decompress","length","setup","to_coordinates","EvaluationArgument","EvaluationEngineTrait","ProverKey","VerifierKey","prove","setup","verify","BatchedRelaxedR1CSSNARKTrait","DigestHelperTrait","ProverKey","ProverKey","RelaxedR1CSSNARKTrait","VerifierKey","VerifierKey","ck_floor","ck_floor","default_ck_hint","digest","prove","prove","setup","setup","verify","verify"],"q":[[0,"arecibo"],[160,"arecibo::constants"],[161,"arecibo::errors"],[222,"arecibo::provider"],[369,"arecibo::provider::hyperkzg"],[410,"arecibo::provider::ipa_pc"],[478,"arecibo::provider::non_hiding_zeromorph"],[659,"arecibo::r1cs"],[813,"arecibo::spartan"],[819,"arecibo::spartan::batched"],[872,"arecibo::spartan::batched_ppsnark"],[926,"arecibo::spartan::polys"],[927,"arecibo::spartan::polys::multilinear"],[959,"arecibo::spartan::ppsnark"],[1058,"arecibo::spartan::snark"],[1116,"arecibo::supernova"],[1256,"arecibo::supernova::error"],[1278,"arecibo::supernova::snark"],[1325,"arecibo::traits"],[1369,"arecibo::traits::circuit"],[1393,"arecibo::traits::commitment"],[1406,"arecibo::traits::evaluation"],[1413,"arecibo::traits::snark"],[1430,"core::clone"],[1431,"core::result"],[1432,"serde::de"],[1433,"std::io::error"],[1434,"std::io"],[1435,"core::cmp"],[1436,"core::option"],[1437,"core::fmt"],[1438,"core::fmt"],[1439,"core::any"],[1440,"alloc::vec"],[1441,"bellpepper_core::constraint_system"],[1442,"core::error"],[1443,"alloc::string"],[1444,"pairing"],[1445,"pairing"],[1446,"core::borrow"],[1447,"core::default"],[1448,"rand_core"],[1449,"rand_core"],[1450,"core::ops::function"],[1451,"alloc::boxed"],[1452,"ff"],[1453,"bellpepper_core::constraint_system"],[1454,"core::marker"],[1455,"num_bigint::bigint"],[1456,"bellpepper_core::gadgets::boolean"],[1457,"core::cmp"]],"d":["A SNARK that proves the knowledge of a valid RecursiveSNARK","A type that holds the prover key for CompressedSNARK","A type that holds public parameters of Nova","A type that holds parameters for the primary and secondary …","A SNARK that proves the correct execution of an …","A resource buffer for RecursiveSNARK for storing scratch …","A type that holds the verifier key for CompressedSNARK","","","","","","","","","","","","","","","Compute the circuit digest of a StepCircuit.","","","","","","","","","","","","","Global Nova constants","","","","","","","","","","","","","","","","","","","","Return the R1CSWithArity’ digest.","Retrieve the digest of the public parameters.","","","","","","","","","","","This module defines errors returned by the library.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","This module implements various gadgets necessary for Nova …","This implementation behaves in ways specific to the …","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new R1CSWithArity","Create new instance of recursive SNARK","Returns the number of constraints in the primary and …","The number of steps which have been executed thus far.","Returns the number of variables in the primary and …","Get the outputs after the last step of computation.","Create a new CompressedSNARK","Create a new RecursiveSNARK (or updates the provided …","This module implements Nova’s traits using the following …","This module defines R1CS related types and a folding …","","","","","","","Set up builder to create PublicParams for a pair of …","Creates prover and verifier keys for CompressedSNARK","This module implements RelaxedR1CSSNARKTrait using Spartan …","SuperNova Description","","","","","","","This module defines various traits required by the users …","","","","","","","","","","","","","","","","","","","","","","Verify the correctness of the RecursiveSNARK","Verify the correctness of the CompressedSNARK","","","","","","","","Inputs of the primary circuits","Outputs of the primary circuits","Macros to give syntactic sugar for zipWith pattern and …","Like zip_with but use for_each instead of map.","Bit size of Nova field element hashes","returned when the supplied compressed commitment cannot be …","returned when there is an error creating a digest","returned when the consistency with public IO and …","returned when the prover cannot prove the provided …","returned when the transcript engine encounters an overflow …","returned if the provided commitment key is not of …","returned if the supplied row or col in (row,col,val) tuple …","returned when the initial input to an incremental …","returned if the supplied input is not of the right length","returned when the multiset check fails","returned if the provided number of steps is zero","returned when an invalid PCS evaluation argument is …","returned when the product proof check fails","returned if the step circuit calls inputize or alloc_io in …","returned when the step execution produces an output whose …","returned when an invalid sum-check proof is provided","returned if the supplied witness is not of the right length","returned when a length check fails in a PCS","Errors returned by Nova","Errors specific to the Polynomial commitment scheme","returned if there is an error in the proof/verification of …","returned if proof verification fails","return when error during synthesis","returned if the supplied witness is not a satisfying …","returned if the supplied witness is not a satisfying …","returned when there is a Zeromorph error","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An implementation of the Nova Engine trait with BN254 …","An implementation of Nova traits with HyperKZG over the …","An implementation of the Nova Engine trait with BN254 …","An implementation of the Nova Engine trait with Grumpkin …","An implementation of the Nova Engine trait with Pallas …","An implementation of the Nova Engine trait with Secp256k1 …","An implementation of the Nova Engine trait with Secp256k1 …","An implementation of the Nova Engine trait with Vesta …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","This module implements Nova’s evaluation engine using …","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","This module implements EvaluationEngine using an IPA-based …","Non-hiding Zeromorph scheme for Multilinear Polynomials.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Provides an implementation of a polynomial evaluation …","Provides an implementation of a polynomial evaluation …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","A method to verify purported evaluations of a batch of …","","","Provides an implementation of a polynomial evaluation …","An inner product argument","Provides an implementation of the prover key","Provides an implementation of the verifier key","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","A method to verify purported evaluations of a batch of …","","","","","Polynomial Evaluation","KZG Polynomial Commitment Scheme on univariate polynomial. …","Polynomial and its associated types","Proofs","Commitments","Polynomial Evaluation","Zeromorph Polynomial Commitment Scheme on multilinear …","Proofs","ZMProverKey is used to generate a proof","ZMVerifierKey is used to check evaluation proofs for a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Generate a commitment for a polynomial Note that the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","On input a polynomial p and a point point, outputs a proof …","proof","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A type for functions that hints commitment key sizing by …","A type that holds an R1CS instance","A type that holds the result of a R1CS multiplication","A type that holds the shape of the R1CS matrices","A type that holds a witness for a given R1CS instance","A type that holds a Relaxed R1CS instance","A type that holds a witness for a given Relaxed R1CS …","","","","","","","","","","","","","","","","","","","","","","","","","","","Commits to the witness using the supplied generators","Commits to the witness using the supplied generators","A method to compute a commitment to the cross-term T given …","A method to compute a commitment to the cross-term T given …","Generates public parameters for a Rank-1 Constraint System …","Computes the number of generators required for the …","Produces a default R1CSResult given an R1CSShape","Produces a default RelaxedR1CSWitness given an R1CSShape","Produces a default RelaxedR1CSInstance given R1CSGens and …","Empty buffer for commit_T_into","","","","","","","","","","","","","","","","","","","returned the digest of the R1CSShape","","","","","","","","","","","","","","","","","","","","","","Folds an incoming R1CSWitness into the current one","Folds an incoming RelaxedR1CSInstance into the current one","Mutably folds an incoming R1CSWitness into the current one","Mutably folds an incoming RelaxedR1CSInstance into the …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Initializes a new RelaxedR1CSInstance from an R1CSInstance","Initializes a new RelaxedR1CSInstance from an R1CSInstance","Initializes a new RelaxedR1CSWitness from an R1CSWitness","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Checks if the R1CS instance is satisfiable given a witness …","Checks if the Relaxed R1CS instance is satisfiable given a …","Create an object of type R1CSShape from the explicitly …","A method to create a witness object using a vector of …","A method to create an instance object using constituent …","Pads the R1CSShape so that the shape passes …","Pads the provided witness to the correct length","Generate a random R1CSShape with the specified number of …","Generate a satisfying RelaxedR1CSWitness and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This module implements BatchedRelaxedR1CSSNARKTrait using …","batched pp snark","This module contains the definitions of polynomial types …","Creates a vector of the first n powers of s.","This module implements RelaxedR1CSSNARK traits using a …","This module implements RelaxedR1CSSNARKTrait using Spartan …","A succinct proof of knowledge of a witness to a batch of …","A type that represents the prover’s key","A type that represents the verifier’s key","","","","","","","","","","","","","","","Returns the digest of the verifier’s key.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the prover’s key","A type that represents the verifier’s key","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Main components:","A multilinear extension of a polynomial $Z(\\\\cdot)$, denote …","","Binds the polynomial’s top variable using the given …","","","","","","","","","","Evaluates the polynomial at the given point. Returns Z(r) …","Evaluates the polynomial with the given evaluations and …","Evaluates the polynomial with the given evaluations and …","evaluations of the polynomial in all the 2^num_vars …","","Returns the argument unchanged.","Returns the number of variables in the multilinear …","","","Calls U::from(self).","Returns true if no evaluations.","Returns the total number of evaluations.","Creates a new MultilinearPolynomial from the given …","Returns a random polynomial","","","","","","","A type that represents the prover’s key","A type that holds a commitment to a sparse polynomial","A type that holds R1CSShape in a form amenable to memory …","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the verifier’s key","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","represents R1CSShape in a Spark-friendly format amenable …","produces a succinct proof of satisfiability of a …","","","","","","","","","","","","","","","","","","","","","","","","","","","verifies a proof of satisfiability of a RelaxedR1CS …","","","","","","A type that represents the prover’s key","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the verifier’s key","","","","","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","produces a succinct proof of satisfiability of a …","","","","","","","","","","","","","","","","verifies a proof of satisfiability of a RelaxedR1CS …","","","","Auxiliary PublicParams information about the commitment …","The type of the step-circuits on the primary","The type of the step-circuits on the secondary","A struct that manages all the digests of the primary …","SuperNova helper trait, for implementors that provide sets …","A vector of R1CSWithArity adjoined to a set of PublicParams","A SNARK that proves the correct execution of an …","A helper trait for a step of the incremental computation …","A trivial step circuit that simply returns the input, for …","A trivial step circuit that simply returns the input","Return the the number of inputs or outputs of each step …","","","","","","","","","","","","","","","Compute the circuit digest of a supernova StepCircuit.","Return this StepCircuit’s assigned index, for use when …","","","All of the primary circuit digests of this PublicParams","","","","","","","","","","","","","","","","","","","","","","","","","Return the CircuitDigests’ digest.","Return the PublicParams’ digest.","","","","","","","","","This module defines errors returned by the library.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a PublicParams from a vector of raw R1CSWithArity …","Create a PublicParams from a vector of raw R1CSWithArity …","","","","","","","","Initial circuit index, defaults to zero.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Breaks down an instance of PublicParams into the circuit …","Construct a new CircuitDigests","iterate base step to get new instance of recursive SNARK","How many circuits are provided?","Return a new instance of the primary circuit at index.","executing a step of the incremental computation","Return a new instance of the secondary circuit.","","","","","Construct a new PublicParams","This module defines a final compressing SNARK for …","Synthesize the circuit for a computation step and return …","","","","","","","","","","","","","","","","","","","","","","","","","verify recursive snark","","","","","","","Inputs of the primary circuits","Outputs of the primary circuits","missing commitment key","Nova error","Errors returned by Nova","Extended error for supernova","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","A SNARK that proves the knowledge of a valid RecursiveSNARK","A type that holds the prover key for CompressedSNARK","A type that holds the verifier key for CompressedSNARK","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new CompressedSNARK","","Creates prover and verifier keys for CompressedSNARK","","","","","","","","","","Verify the correctness of the CompressedSNARK","","","","A helper trait to absorb different objects in RO","A type representing an element of the base field of the …","A type representing an element of the base field of the …","A type that defines a commitment engine over scalars in …","The circuit alter ego of this trait impl - this constrains …","A type representing constants/parameters associated with …","A type representing constants/parameters associated with …","This is a convenience trait to pair engines which fields …","Convenience projection to the secondary Engine of a …","A collection of engines that are required by the library","A type that represents an element of the group","Represents an element of a group This is currently …","the vanilla alter ego of this trait - this constrains it …","Defines additional methods on PrimeField objects","A type that represents a circuit-friendly sponge that …","An alternate implementation of Self::RO in the circuit …","A helper trait that defines the behavior of a hash …","An alias for constants associated with E::RO","An alias for constants associated with E::ROCircuit","A helper trait that defines the behavior of a hash …","A type representing an element of the scalar field of the …","A type representing an element of the scalar field of the …","The secondary Engine of Self","A type that provides a generic Fiat-Shamir transcript to …","This trait defines the behavior of a transcript engine …","This trait allows types to implement how they want to be …","Adds a scalar to the internal state","Adds a scalar to the internal state","absorbs any type that implements TranscriptReprTrait under …","Absorbs the value in the provided RO","This module defines traits that a step function must …","This module defines a collection of traits that define the …","adds a domain separator","This module defines a collection of traits that define the …","Returns a scalar representing the bytes","Returns A, B, the order of the group, the size of the base …","Initializes the hash function","Initializes the hash function","initializes the transcript","This module defines a collection of traits that define the …","Returns a challenge of num_bits by hashing the internal …","Returns a challenge of num_bits by hashing the internal …","returns a scalar element of the group as a challenge","returns a byte representation of self to be added to the …","A helper trait for a step of the incremental computation …","A trivial step circuit that simply returns the input","Return the number of inputs or outputs of each step (this …","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Sythesize the circuit for a computation step and return …","","","","","","","Holds the type of the commitment","A trait that ties different pieces of the commitment …","Holds the type of the commitment key The key should …","This trait defines the behavior of the commitment","Holds the type of the compressed commitment","A trait that helps determine the length of a structure. …","A helper trait for types implementing scalar …","Commits to the provided vector using the provided …","Compresses self into a compressed commitment","Decompresses a compressed commitment into a commitment","Returns the length of the structure.","Samples a new commitment key of a specified size","Returns the coordinate representation of the commitment","A type that holds the evaluation argument","A trait that ties different pieces of the commitment …","A type that holds the prover key","A type that holds the verifier key","A method to prove the evaluation of a multilinear …","A method to perform any additional setup needed to produce …","A method to verify the purported evaluation of a …","A trait that defines the behavior of a zkSNARK to prove …","A helper trait that defines the behavior of a verifier key …","A type that represents the prover’s key","A type that represents the prover’s key","A trait that defines the behavior of a zkSNARK","A type that represents the verifier’s key","A type that represents the verifier’s key","This associated function (not a method) provides a hint …","This associated function (not a method) provides a hint …","Public parameter creation takes a size hint. This size …","Returns the digest of the verifier’s key","Produces a new SNARK for a relaxed R1CS","Produces a new SNARK for a batch of relaxed R1CS","Produces the keys for the prover and the verifier","Produces the keys for the prover and the verifier","Verifies a SNARK for a relaxed R1CS","Verifies a SNARK for a batch of relaxed R1CS"],"i":[0,0,0,0,0,0,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,0,2,5,7,8,9,12,2,5,7,8,9,12,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,5,7,8,17,2,5,2,5,7,8,9,12,17,2,2,5,0,2,2,2,5,7,8,9,12,17,2,5,7,8,9,12,17,0,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,8,5,8,5,8,17,8,0,0,2,5,7,8,12,17,5,17,0,0,2,5,7,8,9,12,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,5,7,8,9,12,17,8,17,2,5,7,8,9,12,17,8,8,0,0,0,29,29,29,29,29,29,29,29,29,29,29,34,29,29,29,29,29,34,0,0,29,29,29,29,29,34,29,34,29,34,29,34,29,34,29,34,29,34,29,29,34,34,29,29,29,34,29,34,29,34,29,29,34,29,34,29,34,29,34,29,34,0,0,0,0,0,0,0,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,0,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,48,46,48,48,46,48,46,48,46,48,46,48,48,46,48,0,0,0,0,56,57,54,55,56,57,54,55,54,55,54,55,56,57,54,55,56,57,54,55,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,54,55,54,57,55,54,54,55,56,57,54,55,56,57,54,55,56,57,54,55,54,56,57,54,55,0,0,0,0,0,0,0,0,0,0,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,67,60,58,59,60,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,65,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,60,59,66,62,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,66,58,59,60,61,62,63,64,65,66,0,0,0,0,0,0,0,70,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,73,74,28,28,0,0,72,74,71,0,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,28,72,73,70,74,71,28,28,72,73,70,74,71,28,28,28,72,73,70,74,71,74,71,74,71,28,72,73,70,74,71,71,71,74,28,72,73,70,74,71,28,72,73,70,74,71,28,28,28,73,70,28,74,28,28,28,72,73,70,74,71,28,72,73,70,74,71,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,0,0,0,0,0,0,0,0,0,80,83,82,80,83,82,80,80,83,82,80,83,82,80,82,80,83,82,80,83,82,80,83,82,80,83,82,80,83,82,80,80,80,82,80,80,80,83,82,80,83,82,80,83,82,80,80,80,83,82,0,0,0,86,85,84,86,85,84,84,84,86,85,84,86,85,84,84,85,86,85,84,86,85,84,86,85,84,86,85,84,86,85,84,84,84,85,84,84,84,86,85,84,86,85,84,86,85,84,84,84,86,85,84,0,0,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,0,0,0,0,0,91,92,93,94,95,91,92,93,94,95,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,95,94,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,95,91,92,94,95,95,91,92,93,94,95,92,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,95,91,92,93,94,95,0,0,0,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,98,97,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,98,97,98,98,96,97,98,96,97,98,96,97,98,96,97,98,98,96,97,98,0,108,108,0,0,0,0,0,0,0,99,100,101,100,101,103,102,104,105,100,101,103,102,104,105,0,99,100,101,102,100,101,104,105,100,101,104,105,100,101,100,101,103,103,102,104,105,100,101,103,102,104,105,105,103,102,100,101,103,102,104,105,103,104,0,100,101,103,102,104,105,100,101,103,102,104,105,102,102,102,100,101,103,102,104,105,108,100,101,103,102,104,105,102,103,105,108,108,105,108,103,102,104,105,102,0,99,100,101,100,101,104,105,100,101,103,102,104,105,100,101,103,102,104,105,100,101,103,102,104,105,105,100,101,103,102,104,105,105,105,109,109,0,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,0,0,0,114,115,112,114,115,112,114,115,112,114,115,112,112,114,115,112,114,115,112,114,115,112,114,115,112,114,115,112,112,112,112,114,115,112,114,115,112,114,115,112,112,114,115,112,0,138,4,4,118,118,119,0,0,0,4,0,119,0,4,4,0,0,0,0,138,4,6,4,0,0,118,119,124,126,0,0,124,0,127,138,118,119,124,0,118,119,124,125,0,0,1,130,130,130,130,130,130,130,130,130,130,130,130,130,130,1,130,130,130,130,130,130,139,0,139,0,132,0,0,139,132,132,134,139,132,81,0,81,81,81,81,81,0,0,10,113,0,10,113,10,113,0,135,10,113,10,113,10,113],"f":[0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[],1],[[[2,[-1]]],[[2,[-1]]],[3,4]],[[[5,[-1]]],[[5,[-1]]],[6,3]],[[[7,[-1]]],[[7,[-1]]],[3,4]],[[[8,[-1]]],[[8,[-1]]],[6,3]],[[[9,[-1,-2,-3]]],[[9,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[[12,[-1,-2,-3]]],[[12,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[2,[-2]]]]],16,4],[-1,[[15,[[5,[-2]]]]],16,6],[-1,[[15,[[7,[-2]]]]],16,4],[-1,[[15,[[8,[-2]]]]],16,6],[-1,[[15,[[17,[-2,-3,-4]]]]],16,6,[[10,[-2]]],[[10,[[11,[-2]]]]]],[[[2,[-1]]],[],4],[[[5,[-1]]],[],6],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[2,[-1]],-2],[[18,[13]]],4,19],[[[2,[-1]],[2,[-1]]],20,[21,4]],[[[5,[-1]],[5,[-1]]],20,[6,21]],0,[[[2,[-1]],[23,[22]]],[[24,[[23,[22]]]]],4],[[[2,[-1]]],14,4],[[[2,[-1]],25],26,[27,4]],[[[5,[-1]],25],26,[6,27]],[[[7,[-1]],25],26,[27,4]],[[[8,[-1]],25],26,[6,27]],[[[9,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[[[12,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[[[17,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],14],[[2,[-1]]],4],[[[5,[-1]],-2,-3,23,23],[[15,[[8,[-1]],29]]],6,1,1],[[[5,[-1]]],[[13,[14,14]]],6],[[[8,[-1]]],14,6],[[[5,[-1]]],[[13,[14,14]]],6],[[[8,[-1]]],[[13,[23,23]]],6],[[[5,[-1]],[9,[-1,-2,-3]],[8,[-1]]],[[15,[[17,[-1,-2,-3]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[[[8,[-1]],[5,[-1]],-2,-3],[[15,[13,29]]],6,1,1],0,0,[[[2,[-1]],-2],15,4,30],[[[5,[-1]],-2],15,6,30],[[[7,[-1]],-2],15,4,30],[[[8,[-1]],-2],15,6,30],[[[12,[-1,-2,-3]],-4],15,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[[17,[-1,-2,-3]],-4],15,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[-1,-2,[31,[-3]],[31,[[11,[-3]]]]],[[15,[[5,[-3]],29]]],1,1,6],[[[5,[-1]]],[[15,[[13,[[9,[-1,-2,-3]],[12,[-1,-2,-3]]]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[8,[-1]],[5,[-1]],14,23,23],[[15,[[13,[33,33]],29]]],6],[[[17,[-1,-2,-3]],[12,[-1,-2,-3]],14,23,23],[[15,[[13,[33,33]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[8,[-1]]],33,6],[[[8,[-1]]],33,6],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,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,13],[14,13],[[29,29],20],[[34,34],20],[[29,25],26],[[29,25],26],[[34,25],26],[[34,25],26],[35,29],[-1,-1,[]],[34,29],[-1,-1,[]],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[29,[[24,[36]]]],[-1,37,[]],[-1,37,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,38],[39,39],[40,40],[41,41],[42,42],[43,43],[44,44],[45,45],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[38,38],20],[[39,39],20],[[40,40],20],[[41,41],20],[[42,42],20],[[43,43],20],[[44,44],20],[[45,45],20],[[38,25],26],[[39,25],26],[[40,25],26],[[41,25],26],[[42,25],26],[[43,25],26],[[44,25],26],[[45,25],26],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[46,[-1]]],[[46,[-1]]],[3,47]],[[[48,[-1,-2]]],[[48,[-1,-2]]],3,3],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[46,[-2]]]]],16,47],[-1,[[15,[[48,[-2,-3]]]]],16,[],[]],[14,13],[14,13],[[[46,[-1]],25],26,[27,47]],[[[48,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[[[0,[-1]],-2,[0,[-3]],23,23],[[15,[-4,29]]],49,[],[[4,[],[[50,[]],[51,[]],[52,[[0,[-1]]]]]]],[]],[[[46,[-1]],-2],15,47,30],[[[48,[-1,-2]],-3],15,[],[],30],[[[53,[[0,[-1]]]]],[[13,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[[-1,[0,[-3]],23,-4],[[15,[13,29]]],[],49,[[4,[],[[50,[]],[51,[]],[52,[[0,[-2]]]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[-1]]],3],[[[55,[-1]]],[[55,[-1]]],[3,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[55,[-2]]]]],16,4],[14,13],[14,13],[14,13],[14,13],[[[56,[-1]],25],26,[27,4]],[[[57,[-1]],25],26,[27,4]],[[[54,[-1]],25],26,27],[[[55,[-1]],25],26,[27,4]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,23,23],[[15,[-2,29]]],[],[]],[[[57,[-1]],-2],15,4,30],[[[55,[-1]],-2],15,4,30],[53,[[13,[-1,-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[15,[13,29]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[58,[-1]]],[[58,[-1]]],[3,47]],[[[59,[-1]]],[[59,[-1]]],[3,47]],[[[60,[-1]]],[[60,[-1]]],3],[[[61,[-1]]],[[61,[-1]]],[3,47]],[[[62,[-1]]],[[62,[-1]]],[3,47]],[[[63,[-1]]],[[63,[-1]]],[3,47]],[[[64,[-1]]],[[64,[-1]]],[3,47]],[[[65,[-1]]],[[65,[-1]]],[3,47]],[[[66,[-1,-2]]],[[66,[-1,-2]]],3,3],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[[-2,67],[[15,[[0,[-1]],29]]],49,[[68,[[0,[-1]]]]]],[[],[[58,[-1]]],[69,47]],[[],[[59,[-1]]],[69,47]],[[],[[60,[-1]]],69],[[],[[63,[-1]]],[69,47]],[[],[[64,[-1]]],[69,47]],[[],[[65,[-1]]],[69,47]],[[],[[66,[-1,-2]]],69,69],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[65,[-2]]]]],16,47],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[58,[-1]],[58,[-1]]],20,[21,47]],[[[59,[-1]],[59,[-1]]],20,[21,47]],[[[60,[-1]],[60,[-1]]],20,21],[[[61,[-1]],[61,[-1]]],20,[21,47]],[[[62,[-1]],[62,[-1]]],20,[21,47]],[[[63,[-1]],[63,[-1]]],20,[21,47]],[[[64,[-1]],[64,[-1]]],20,[21,47]],[[[65,[-1]],[65,[-1]]],20,[21,47]],[[[66,[-1,-2]],[66,[-1,-2]]],20,21,21],[[[58,[-1]],25],26,[27,47]],[[[59,[-1]],25],26,[27,47]],[[[60,[-1]],25],26,27],[[[61,[-1]],25],26,[27,47]],[[[62,[-1]],25],26,[27,47]],[[[63,[-1]],25],26,[27,47]],[[[64,[-1]],25],26,[27,47]],[[[65,[-1]],25],26,[27,47]],[[[66,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[58,[-1]]],[[64,[-1]]],47],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,67],[[15,[[13,[[59,[-1]],[58,[-1]]]],29]]],49,[[68,[[0,[-1]]]]]],0,[[[0,[-1]],-2,23,23],[[15,[-3,29]]],49,[],[]],[[[62,[-1]],-2],15,47,30],[[[65,[-1]],-2],15,47,30],[[[53,[[0,[-1]]]]],[[13,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[15,[13,29]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[[70,[-1]]],13,4],[[[71,[-1]]],13,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[28,[-1]]],[3,4]],[[[72,[-1]]],[[72,[-1]]],[3,4]],[[[73,[-1]]],[[73,[-1]]],[3,4]],[[[70,[-1]]],[[70,[-1]]],[3,4]],[[[74,[-1]]],[[74,[-1]]],[3,4]],[[[71,[-1]]],[[71,[-1]]],[3,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[73,[-1]]],[],4],[[[74,[-1]]],13,4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]]],[[15,[[13,[33]],29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]],33,[72,[-1]],[72,[-1]]],[[15,[29]]],4],[[[28,[-1]],[31,[-1]]],[],4],[[[28,[-1]],[31,[-1]]],14,4],[14,[[72,[-1]]],4],[[[28,[-1]]],[[74,[-1]]],4],[[[28,[-1]]],[[71,[-1]]],4],[14,33],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[28,[-2]]]]],16,4],[-1,[[15,[[72,[-2]]]]],16,4],[-1,[[15,[[73,[-2]]]]],16,4],[-1,[[15,[[70,[-2]]]]],16,4],[-1,[[15,[[74,[-2]]]]],16,4],[-1,[[15,[[71,[-2]]]]],16,4],[[[28,[-1]]],[],4],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[28,[-1]],-2],[[18,[13]]],4,19],[[[28,[-1]],[28,[-1]]],20,[21,4]],[[[72,[-1]],[72,[-1]]],20,[21,4]],[[[73,[-1]],[73,[-1]]],20,[21,4]],[[[70,[-1]],[70,[-1]]],20,[21,4]],[[[74,[-1]],[74,[-1]]],20,[21,4]],[[[71,[-1]],[71,[-1]]],20,[21,4]],[[[28,[-1]],[23,[22]]],[[24,[[23,[22]]]]],4],[[[28,[-1]]],14,4],[[[28,[-1]],25],26,[27,4]],[[[72,[-1]],25],26,[27,4]],[[[73,[-1]],25],26,[27,4]],[[[70,[-1]],25],26,[27,4]],[[[74,[-1]],25],26,[27,4]],[[[71,[-1]],25],26,[27,4]],[[[74,[-1]],[73,[-1]],23],[[15,[[74,[-1]],29]]],4],[[[71,[-1]],[70,[-1]]],[[71,[-1]]],4],[[[74,[-1]],[73,[-1]],23],[[15,[13,29]]],4],[[[71,[-1]],[70,[-1]]],13,4],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[28,[-1]],[70,[-1]]],[[71,[-1]]],4],[23,[[71,[-1]]],4],[[[28,[-1]],[73,[-1]]],[[74,[-1]]],4],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],[70,[-1]],[73,[-1]]],[[15,[13,29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]]],[[15,[13,29]]],4],0,[[[28,[-1]],33],[[15,[[73,[-1]],29]]],4],[[[28,[-1]],33],[[15,[[70,[-1]],29]]],4],[[[28,[-1]]],[[28,[-1]]],4],[[[74,[-1]],[28,[-1]]],[[74,[-1]]],4],[[14,14,14,14,-1],[[28,[-2]]],[75,76],4],[[[28,[-1]],-2],[[13,[[74,[-1]],[71,[-1]]]]],4,[75,76]],[[[28,[-1]],-2],15,4,30],[[[72,[-1]],-2],15,4,30],[[[73,[-1]],-2],15,4,30],[[[70,[-1]],-2],15,4,30],[[[74,[-1]],-2],15,4,30],[[[71,[-1]],-2],15,4,30],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[71,[-1]]],[[33,[22]]],4],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[-1,14],[[33,[-1]]],77],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[80,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[82,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[80,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[83,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[82,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[80,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[82,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[80,[-1,-2]],-3,[23,[[71,[-1]]]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[[[80,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[],[[79,[78]]]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[84,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[85,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[86,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[85,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[84,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[85,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[84,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[84,[-1,-2]],-3,[23,[[71,[-1]]]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[[[84,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[87,[-1]],[87,[-1]]],-2,88,[]],[[[87,[-1]],-1],13,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[87,[-1]]],[[87,[-1]]],3],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[87,[-2]]]]],16,89],[14,13],[[[87,[-1]],[87,[-1]]],20,21],[[[87,[-1]],[23,[-1]]],-1,88],[[[23,[-1]],[23,[-1]]],-1,88],[[[23,[-1]],[23,[-1]]],-1,88],[[[87,[-1]]],[[23,[-1]]],88],[[[87,[-1]],25],26,27],[-1,-1,[]],[[[87,[-1]]],14,88],[[[87,[-1]],14],-1,88],[[],14],[-1,-2,[],[]],[[[87,[-1]]],20,88],[[[87,[-1]]],14,88],[[[33,[-1]]],[[87,[-1]]],88],[[14,-1],[[87,[-2]]],[75,76],88],[[[87,[-1]],-2],15,90,30],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[[91,[-1]]],[[91,[-1]]],[3,4]],[[[92,[-1]]],[[92,[-1]]],[3,4]],[[[93,[-1,-2]]],[[93,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[94,[-1,-2]]],[[94,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[95,[-1,-2]]],[[95,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[91,[-2]]]]],16,4],[-1,[[15,[[92,[-2]]]]],16,4],[-1,[[15,[[95,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[94,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[14,13],[14,13],[[[91,[-1]],25],26,[27,4]],[[[92,[-1]],25],26,[27,4]],[[[93,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[94,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[95,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[91,[-1]]],4],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[95,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[91,[-1]],-2],15,4,30],[[[92,[-1]],-2],15,4,30],[[[94,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[95,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[92,[-1]]],[[33,[22]]],4],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[95,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[96,[-1,-2]]],[[96,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[97,[-1,-2]]],[[97,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[98,[-1,-2]]],[[98,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[98,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[97,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[96,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[97,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[98,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[98,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[97,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[98,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[98,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[99,14],[[[100,[-1]]],14,88],[[[101,[-1]]],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,14],[],99],[99,14],[[[100,[-1]]],14,88],[[[101,[-1]]],14,88],[[[102,[-1]]],[[103,[-1]]],6],[[[100,[-1]]],[[100,[-1]]],3],[[[101,[-1]]],[[101,[-1]]],3],[[[104,[-1]]],[[104,[-1]]],[6,3]],[[[105,[-1]]],[[105,[-1]]],[6,3]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[],[[100,[-1]]],69],[[],[[101,[-1]]],69],[14,-1,[]],[14,-1,[]],[[[103,[-1]]],-2,4,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[105,[-2]]]]],16,6],[[[103,[-1]]],[],4],[[[102,[-1]]],[],6],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[103,[-1]],[103,[-1]]],20,[21,4]],[[[104,[-1]],[104,[-1]]],20,[6,21]],0,[[[100,[-1]],25],26,27],[[[101,[-1]],25],26,27],[[[103,[-1]],25],26,[27,4]],[[[102,[-1]],25],26,[6,27]],[[[104,[-1]],25],26,[6,27]],[[[105,[-1]],25],26,[6,27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[33,[[2,[-1]]]],[104,[-1]]],[[102,[-1]]],6],[[[33,[[2,[-1]]]],[104,[-1]]],[[102,[-1]]],6],[[[102,[-1]],14],-2,6,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[[108,[],[[106,[-1]],[107,[-2]]]]],14,99,99],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]]],[[13,[[33,[[2,[-1]]]],[104,[-1]]]]],6],[33,[[103,[-1]]],4],[[[102,[-1]],-2,23,23],[[15,[[105,[-1]],109]]],6,[[108,[-1]]]],[[[108,[],[[106,[-1]],[107,[-2]]]]],14,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]],14],-1,99,99],[[[105,[-1]],[102,[-1]],-2,-3],[[15,[13,109]]],6,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]]],-2,99,99],[[[103,[-1]],-2],15,4,30],[[[102,[-1]],-2],15,6,30],[[[104,[-1]],-2],15,6,30],[[[105,[-1]],-2],15,6,30],[[-2,[31,[-1]],[31,[[11,[-1]]]]],[[102,[-1]]],6,[[108,[-1]]]],0,[[99,-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[100,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[101,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[105,[-1]],[102,[-1]],23,23],[[15,[[13,[33,33]],109]]],6],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[105,[-1]]],33,6],[[[105,[-1]]],33,6],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,13],[[109,109],20],[[109,25],26],[[109,25],26],[29,109],[-1,-1,[]],[[],14],[-1,-2,[],[]],[109,[[24,[36]]]],[-1,37,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[112,[-2,-3,-4]]]]],16,6,[[113,[-2]]],[[10,[[11,[-2]]]]]],[14,13],[14,13],[14,13],[[[114,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[[[115,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[[[112,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]],[114,[-1,-2,-3]],[105,[-1]]],[[15,[[112,[-1,-2,-3]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[[[112,[-1,-2,-3]],-4],15,6,[[113,[-1]]],[[10,[[11,[-1]]]]],30],[[[102,[-1]]],[[15,[[13,[[114,[-1,-2,-3]],[115,[-1,-2,-3]]]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[112,[-1,-2,-3]],[102,[-1]],[115,[-1,-2,-3]],23,23],[[15,[[13,[33,33]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],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,[[[118,[],[[116,[-1]],[117,[-3]]]],-2],13,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122]],[[[119,[],[[123,[-1]],[117,[-4]]]],[110,[-2]]],13,[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122]],[[124,[23,[22]],-1],13,125],[126,13],0,0,[[124,[23,[22]]],13],0,[[[23,[22]]],127],[[],[[13,[-1,-1,128,128]]],[]],[[-1,14],[[118,[],[[116,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[119,[-3],[[117,[-1]]]]],88],[[-1,14],[[119,[],[[123,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[118,[-3,-4],[[117,[-1]]]]],88,[]],[[[23,[22]]],124],0,[[[118,[],[[116,[-1]],[117,[-3]]]],14],-4,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122],[]],[[[119,[],[[123,[-1]],[117,[-4]]]],-5,14],[[15,[[33,[129]],35]]],[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122],[[111,[-2]]]],[[124,[23,[22]]],[[15,[29]]]],[125,[[33,[22]]]],0,0,[1,14],[[[130,[-1]]],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[130,[-1]]],[[130,[-1]]],3],[[-1,-2],13,[],[]],[[],[[130,[-1]]],69],[14,-1,[]],[14,-1,[]],[14,13],[[[130,[-1]],[130,[-1]]],20,21],[[[130,[-1]],25],26,27],[-1,-1,[]],[[],14],[-1,-2,[],[]],[[1,-2,[23,[[110,[-1]]]]],[[15,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[[[130,[-1]],-2,[23,[[110,[-1]]]]],[[15,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,23],-2,[],[]],[[[132,[],[[131,[-1]]]]],-1,[3,27,21,133,120,121,125,90,89]],[-1,[[15,[[132,[],[[131,[-1]]]],29]]],[3,27,21,133,120,121,125,90,89]],[134,14],[[[23,[22]],14],-1,[]],[[[132,[],[[131,[-1]]]]],[[13,[20]]],[3,27,21,133,120,121,125,90,89]],0,0,0,0,[[-1,23,23],[[15,[-2,29]]],[],[]],[53,[[13,[-1,-2]]],[],[]],[[-1,23,-2],[[15,[13,29]]],[],[]],0,0,0,0,0,0,0,[[],[[79,[78]]]],[[],[[79,[78]]]],[[],[[79,[78]]]],[135],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[10,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,90]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[113,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,[135,[-2]]]],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[[10,[],[[136,[-1]],[137,[-2]]]],-2,[71,[-3]]],[[15,[13,29]]],[120,121],[120,121,90],4],[[[113,[],[[136,[-1]],[137,[-2]]]],-2,[23,[[71,[-3]]]]],[[15,[13,29]]],[120,121],[120,121,[135,[-3]]],4]],"c":[],"p":[[10,"StepCircuit",1369],[5,"R1CSWithArity",0],[10,"Clone",1430],[10,"Engine",1325],[5,"PublicParams",0],[10,"CurveCycleEquipped",1325],[5,"ResourceBuffer",0],[5,"RecursiveSNARK",0],[5,"ProverKey",0],[10,"RelaxedR1CSSNARKTrait",1413],[8,"Dual",1325],[5,"VerifierKey",0],[1,"tuple"],[1,"usize"],[6,"Result",1431],[10,"Deserializer",1432],[5,"CompressedSNARK",0],[8,"Result",1433],[10,"Write",1434],[1,"bool"],[10,"PartialEq",1435],[1,"u8"],[1,"slice"],[6,"Option",1436],[5,"Formatter",1437],[8,"Result",1437],[10,"Debug",1437],[5,"R1CSShape",659],[6,"NovaError",161],[10,"Serializer",1438],[8,"CommitmentKeyHint",659],[5,"TypeId",1439],[5,"Vec",1440],[6,"PCSError",161],[6,"SynthesisError",1441],[10,"Error",1442],[5,"String",1443],[5,"GrumpkinEngine",222],[5,"Bn256EngineIPA",222],[5,"Bn256EngineZM",222],[5,"Bn256EngineKZG",222],[5,"Secp256k1Engine",222],[5,"Secq256k1Engine",222],[5,"PallasEngine",222],[5,"VestaEngine",222],[5,"EvaluationArgument",369],[10,"Engine",1444],[5,"EvaluationEngine",369],[10,"MultiMillerLoop",1444],[17,"GE"],[17,"Scalar"],[17,"CE"],[5,"Arc",1445],[5,"EvaluationEngine",410],[5,"InnerProductArgument",410],[5,"ProverKey",410],[5,"VerifierKey",410],[5,"UVKZGEvaluation",478],[5,"UVKZGProof",478],[5,"UVKZGPCS",478],[5,"ZMProverKey",478],[5,"ZMVerifierKey",478],[5,"ZMCommitment",478],[5,"ZMEvaluation",478],[5,"ZMProof",478],[5,"ZMPCS",478],[8,"UVKZGPoly",478],[10,"Borrow",1446],[10,"Default",1447],[5,"R1CSInstance",659],[5,"RelaxedR1CSInstance",659],[5,"R1CSResult",659],[5,"R1CSWitness",659],[5,"RelaxedR1CSWitness",659],[10,"RngCore",1448],[10,"CryptoRng",1448],[10,"Field",1449],[10,"Fn",1450],[5,"Box",1451],[5,"BatchedRelaxedR1CSSNARK",819],[10,"EvaluationEngineTrait",1406],[5,"VerifierKey",819],[5,"ProverKey",819],[5,"BatchedRelaxedR1CSSNARK",872],[5,"VerifierKey",872],[5,"ProverKey",872],[5,"MultilinearPolynomial",927],[10,"PrimeField",1449],[10,"Deserialize",1432],[10,"Serialize",1438],[5,"R1CSShapeSparkRepr",959],[5,"R1CSShapeSparkCommitment",959],[5,"ProverKey",959],[5,"VerifierKey",959],[5,"RelaxedR1CSSNARK",959],[5,"ProverKey",1058],[5,"VerifierKey",1058],[5,"RelaxedR1CSSNARK",1058],[10,"StepCircuit",1116],[5,"TrivialTestCircuit",1116],[5,"TrivialSecondaryCircuit",1116],[5,"PublicParams",1116],[5,"CircuitDigests",1116],[5,"AuxParams",1116],[5,"RecursiveSNARK",1116],[17,"C1"],[17,"C2"],[10,"NonUniformCircuit",1116],[6,"SuperNovaError",1256],[5,"AllocatedNum",1452],[10,"ConstraintSystem",1441],[5,"CompressedSNARK",1278],[10,"BatchedRelaxedR1CSSNARKTrait",1413],[5,"ProverKey",1278],[5,"VerifierKey",1278],[17,"CircuitRO"],[17,"Constants"],[10,"ROTrait",1325],[10,"ROCircuitTrait",1325],[10,"Send",1453],[10,"Sync",1453],[10,"Abomonation",1454],[17,"NativeRO"],[10,"TranscriptEngineTrait",1325],[10,"TranscriptReprTrait",1325],[10,"AbsorbInROTrait",1325],[10,"PrimeFieldExt",1325],[5,"BigInt",1455],[5,"AllocatedBit",1456],[5,"TrivialCircuit",1369],[17,"CompressedCommitment"],[10,"CommitmentTrait",1393],[10,"Eq",1435],[10,"Len",1393],[10,"DigestHelperTrait",1413],[17,"ProverKey"],[17,"VerifierKey"],[10,"Group",1325],[10,"CommitmentEngineTrait",1393]],"b":[[199,"impl-Debug-for-NovaError"],[200,"impl-Display-for-NovaError"],[201,"impl-Display-for-PCSError"],[202,"impl-Debug-for-PCSError"],[203,"impl-From%3CSynthesisError%3E-for-NovaError"],[205,"impl-From%3CPCSError%3E-for-NovaError"],[852,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[853,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[856,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[857,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[867,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[868,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[881,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[882,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[906,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[907,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[910,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[911,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[921,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[922,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[1266,"impl-Debug-for-SuperNovaError"],[1267,"impl-Display-for-SuperNovaError"]]}]\ +["arecibo",{"doc":"This library implements Nova, a high-speed recursive SNARK.","t":"FFFFFFFNNNNNNNNNNNNNNHNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCQNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNCCNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQSPPPPPPPPPPPPPPPPPPGGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFIFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCHCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFRRFKFFKFFMNNNNNNNNNNNNNNHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNMNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGPNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKRRRRRRKIKRKRKRRKIIKRRRRKKMMMMCCMCMMMMMCMMMMKFMNNNNNNNNNNNNNNMNNNNNNRKRKRKKMMMMMMRKRRMMMKKRRKRRNNHMMMMMMM","n":["CompressedSNARK","ProverKey","PublicParams","R1CSWithArity","RecursiveSNARK","ResourceBuffer","VerifierKey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_digest","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","constants","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","digest","digest","drop","drop","drop","drop","drop","drop","drop","entomb","eq","eq","errors","exhume","extent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","gadgets","impl_traits","init","init","init","init","init","init","init","into","into","into","into","into","into","into","new","new","num_constraints","num_steps","num_variables","outputs","prove","prove_step","provider","r1cs","serialize","serialize","serialize","serialize","serialize","serialize","setup","setup","spartan","supernova","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","traits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","z0_primary","zi_primary","zip_with","zip_with_for_each","NUM_HASH_BITS","DecompressionError","DigestError","IncorrectWitness","InternalError","InternalTranscriptError","InvalidCommitmentKeyLength","InvalidIndex","InvalidInitialInputLength","InvalidInputLength","InvalidMultisetProof","InvalidNumSteps","InvalidPCS","InvalidProductProof","InvalidStepCircuitIO","InvalidStepOutputLength","InvalidSumcheckProof","InvalidWitnessLength","LengthError","NovaError","PCSError","PCSError","ProofVerifyError","SynthesisError","UnSat","UnSatIndex","ZMError","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","from","init","init","into","into","source","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Bn256EngineIPA","Bn256EngineKZG","Bn256EngineZM","GrumpkinEngine","PallasEngine","Secp256k1Engine","Secq256k1Engine","VestaEngine","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hyperkzg","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","ipa_pc","non_hiding_zeromorph","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","EvaluationArgument","EvaluationEngine","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","fmt","fmt","from","from","init","init","into","into","prove","serialize","serialize","setup","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify","vzip","vzip","EvaluationEngine","InnerProductArgument","ProverKey","VerifierKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","prove","serialize","serialize","setup","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","UVKZGEvaluation","UVKZGPCS","UVKZGPoly","UVKZGProof","ZMCommitment","ZMEvaluation","ZMPCS","ZMProof","ZMProverKey","ZMVerifierKey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeffs","commit","default","default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","open","proof","prove","serialize","serialize","setup","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CommitmentKeyHint","R1CSInstance","R1CSResult","R1CSShape","R1CSWitness","RelaxedR1CSInstance","RelaxedR1CSWitness","absorb_in_ro","absorb_in_ro","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commit","commit_T","commit_T_into","commitment_key","commitment_key_size","default","default","default","default_T","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","drop","drop","entomb","eq","eq","eq","eq","eq","eq","exhume","extent","fmt","fmt","fmt","fmt","fmt","fmt","fold","fold","fold_mut","fold_mut","from","from","from","from","from","from","from_r1cs_instance","from_r1cs_instance_unchecked","from_r1cs_witness","init","init","init","init","init","init","into","into","into","into","into","into","is_sat","is_sat_relaxed","new","new","new","pad","pad","random","random_witness_instance","serialize","serialize","serialize","serialize","serialize","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_transcript_bytes","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","batched","batched_ppsnark","polys","powers","ppsnark","snark","BatchedRelaxedR1CSSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","ck_floor","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","prove","serialize","serialize","setup","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","BatchedRelaxedR1CSSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","ck_floor","ck_floor","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","prove","serialize","serialize","setup","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","multilinear","MultilinearPolynomial","add","bind_poly_var_top","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","evaluate","evaluate_with","evaluate_with_chis","evaluations","fmt","from","get_num_vars","index","init","into","is_empty","len","new","random","serialize","to_owned","try_from","try_into","type_id","vzip","ProverKey","R1CSShapeSparkCommitment","R1CSShapeSparkRepr","RelaxedR1CSSNARK","VerifierKey","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ck_floor","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","new","prove","serialize","serialize","serialize","serialize","setup","to_owned","to_owned","to_owned","to_owned","to_owned","to_transcript_bytes","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","ProverKey","RelaxedR1CSSNARK","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","serialize","serialize","setup","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","AuxParams","C1","C2","CircuitDigests","NonUniformCircuit","PublicParams","RecursiveSNARK","StepCircuit","TrivialSecondaryCircuit","TrivialTestCircuit","arity","arity","arity","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_digest","circuit_index","circuit_index","circuit_index","circuit_param_digests","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","digest","digest","drop","drop","drop","drop","drop","drop","eq","eq","error","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_parts","from_parts_unchecked","index","init","init","init","init","init","init","initial_circuit_index","into","into","into","into","into","into","into_parts","new","new","num_circuits","primary_circuit","prove_step","secondary_circuit","serialize","serialize","serialize","serialize","setup","snark","synthesize","synthesize","synthesize","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","z0_primary","zi_primary","MissingCK","NovaError","SuperNovaError","UnSatIndex","borrow","borrow_mut","deref","deref_mut","drop","eq","fmt","fmt","from","from","init","into","source","to_string","try_from","try_into","type_id","vzip","CompressedSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","serialize","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","AbsorbInROTrait","Base","Base","CE","CircuitRO","Constants","Constants","CurveCycleEquipped","Dual","Engine","GE","Group","NativeRO","PrimeFieldExt","RO","ROCircuit","ROCircuitTrait","ROConstants","ROConstantsCircuit","ROTrait","Scalar","Scalar","Secondary","TE","TranscriptEngineTrait","TranscriptReprTrait","absorb","absorb","absorb","absorb_in_ro","circuit","commitment","dom_sep","evaluation","from_uniform","group_params","new","new","new","snark","squeeze","squeeze","squeeze","to_transcript_bytes","StepCircuit","TrivialCircuit","arity","arity","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","eq","fmt","from","init","into","synthesize","synthesize","to_owned","try_from","try_into","type_id","vzip","Commitment","CommitmentEngineTrait","CommitmentKey","CommitmentTrait","CompressedCommitment","Len","ScalarMul","commit","compress","decompress","length","setup","to_coordinates","EvaluationArgument","EvaluationEngineTrait","ProverKey","VerifierKey","prove","setup","verify","BatchedRelaxedR1CSSNARKTrait","DigestHelperTrait","ProverKey","ProverKey","RelaxedR1CSSNARKTrait","VerifierKey","VerifierKey","ck_floor","ck_floor","default_ck_hint","digest","prove","prove","setup","setup","verify","verify"],"q":[[0,"arecibo"],[160,"arecibo::constants"],[161,"arecibo::errors"],[222,"arecibo::provider"],[369,"arecibo::provider::hyperkzg"],[410,"arecibo::provider::ipa_pc"],[478,"arecibo::provider::non_hiding_zeromorph"],[659,"arecibo::r1cs"],[813,"arecibo::spartan"],[819,"arecibo::spartan::batched"],[872,"arecibo::spartan::batched_ppsnark"],[926,"arecibo::spartan::polys"],[927,"arecibo::spartan::polys::multilinear"],[959,"arecibo::spartan::ppsnark"],[1058,"arecibo::spartan::snark"],[1116,"arecibo::supernova"],[1256,"arecibo::supernova::error"],[1278,"arecibo::supernova::snark"],[1325,"arecibo::traits"],[1369,"arecibo::traits::circuit"],[1393,"arecibo::traits::commitment"],[1406,"arecibo::traits::evaluation"],[1413,"arecibo::traits::snark"],[1430,"core::clone"],[1431,"core::result"],[1432,"serde::de"],[1433,"std::io::error"],[1434,"std::io"],[1435,"core::cmp"],[1436,"core::option"],[1437,"core::fmt"],[1438,"core::fmt"],[1439,"core::any"],[1440,"alloc::vec"],[1441,"bellpepper_core::constraint_system"],[1442,"core::error"],[1443,"alloc::string"],[1444,"pairing"],[1445,"pairing"],[1446,"core::borrow"],[1447,"core::default"],[1448,"rand_core"],[1449,"rand_core"],[1450,"core::ops::function"],[1451,"alloc::boxed"],[1452,"ff"],[1453,"bellpepper_core::constraint_system"],[1454,"core::marker"],[1455,"num_bigint::bigint"],[1456,"bellpepper_core::gadgets::boolean"],[1457,"core::cmp"]],"d":["A SNARK that proves the knowledge of a valid RecursiveSNARK","A type that holds the prover key for CompressedSNARK","A type that holds public parameters of Nova","A type that holds parameters for the primary and secondary …","A SNARK that proves the correct execution of an …","A resource buffer for RecursiveSNARK for storing scratch …","A type that holds the verifier key for CompressedSNARK","","","","","","","","","","","","","","","Compute the circuit digest of a StepCircuit.","","","","","","","","","","","","","Global Nova constants","","","","","","","","","","","","","","","","","","","","Return the R1CSWithArity’ digest.","Retrieve the digest of the public parameters.","","","","","","","","","","","This module defines errors returned by the library.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","This module implements various gadgets necessary for Nova …","This implementation behaves in ways specific to the …","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new R1CSWithArity","Create new instance of recursive SNARK","Returns the number of constraints in the primary and …","The number of steps which have been executed thus far.","Returns the number of variables in the primary and …","Get the outputs after the last step of computation.","Create a new CompressedSNARK","Create a new RecursiveSNARK (or updates the provided …","This module implements Nova’s traits using the following …","This module defines R1CS related types and a folding …","","","","","","","Set up builder to create PublicParams for a pair of …","Creates prover and verifier keys for CompressedSNARK","This module implements RelaxedR1CSSNARKTrait using Spartan …","SuperNova Description","","","","","","","This module defines various traits required by the users …","","","","","","","","","","","","","","","","","","","","","","Verify the correctness of the RecursiveSNARK","Verify the correctness of the CompressedSNARK","","","","","","","","Inputs of the primary circuits","Outputs of the primary circuits","Macros to give syntactic sugar for zipWith pattern and …","Like zip_with but use for_each instead of map.","Bit size of Nova field element hashes","returned when the supplied compressed commitment cannot be …","returned when there is an error creating a digest","returned when the consistency with public IO and …","returned when the prover cannot prove the provided …","returned when the transcript engine encounters an overflow …","returned if the provided commitment key is not of …","returned if the supplied row or col in (row,col,val) tuple …","returned when the initial input to an incremental …","returned if the supplied input is not of the right length","returned when the multiset check fails","returned if the provided number of steps is zero","returned when an invalid PCS evaluation argument is …","returned when the product proof check fails","returned if the step circuit calls inputize or alloc_io in …","returned when the step execution produces an output whose …","returned when an invalid sum-check proof is provided","returned if the supplied witness is not of the right length","returned when a length check fails in a PCS","Errors returned by Nova","Errors specific to the Polynomial commitment scheme","returned if there is an error in the proof/verification of …","returned if proof verification fails","return when error during synthesis","returned if the supplied witness is not a satisfying …","returned if the supplied witness is not a satisfying …","returned when there is a Zeromorph error","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An implementation of the Nova Engine trait with BN254 …","An implementation of Nova traits with HyperKZG over the …","An implementation of the Nova Engine trait with BN254 …","An implementation of the Nova Engine trait with Grumpkin …","An implementation of the Nova Engine trait with Pallas …","An implementation of the Nova Engine trait with Secp256k1 …","An implementation of the Nova Engine trait with Secp256k1 …","An implementation of the Nova Engine trait with Vesta …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","This module implements Nova’s evaluation engine using …","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","This module implements EvaluationEngine using an IPA-based …","Non-hiding Zeromorph scheme for Multilinear Polynomials.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Provides an implementation of a polynomial evaluation …","Provides an implementation of a polynomial evaluation …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","A method to verify purported evaluations of a batch of …","","","Provides an implementation of a polynomial evaluation …","An inner product argument","Provides an implementation of the prover key","Provides an implementation of the verifier key","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","A method to verify purported evaluations of a batch of …","","","","","Polynomial Evaluation","KZG Polynomial Commitment Scheme on univariate polynomial. …","Polynomial and its associated types","Proofs","Commitments","Polynomial Evaluation","Zeromorph Polynomial Commitment Scheme on multilinear …","Proofs","ZMProverKey is used to generate a proof","ZMVerifierKey is used to check evaluation proofs for a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Generate a commitment for a polynomial Note that the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","On input a polynomial p and a point point, outputs a proof …","proof","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A type for functions that hints commitment key sizing by …","A type that holds an R1CS instance","A type that holds the result of a R1CS multiplication","A type that holds the shape of the R1CS matrices","A type that holds a witness for a given R1CS instance","A type that holds a Relaxed R1CS instance","A type that holds a witness for a given Relaxed R1CS …","","","","","","","","","","","","","","","","","","","","","","","","","","","Commits to the witness using the supplied generators","Commits to the witness using the supplied generators","A method to compute a commitment to the cross-term T given …","A method to compute a commitment to the cross-term T given …","Generates public parameters for a Rank-1 Constraint System …","Computes the number of generators required for the …","Produces a default R1CSResult given an R1CSShape","Produces a default RelaxedR1CSWitness given an R1CSShape","Produces a default RelaxedR1CSInstance given R1CSGens and …","Empty buffer for commit_T_into","","","","","","","","","","","","","","","","","","","returned the digest of the R1CSShape","","","","","","","","","","","","","","","","","","","","","","Folds an incoming R1CSWitness into the current one","Folds an incoming RelaxedR1CSInstance into the current one","Mutably folds an incoming R1CSWitness into the current one","Mutably folds an incoming RelaxedR1CSInstance into the …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Initializes a new RelaxedR1CSInstance from an R1CSInstance","Initializes a new RelaxedR1CSInstance from an R1CSInstance","Initializes a new RelaxedR1CSWitness from an R1CSWitness","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Checks if the R1CS instance is satisfiable given a witness …","Checks if the Relaxed R1CS instance is satisfiable given a …","Create an object of type R1CSShape from the explicitly …","A method to create a witness object using a vector of …","A method to create an instance object using constituent …","Pads the R1CSShape so that the shape passes …","Pads the provided witness to the correct length","Generate a random R1CSShape with the specified number of …","Generate a satisfying RelaxedR1CSWitness and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This module implements BatchedRelaxedR1CSSNARKTrait using …","batched pp snark","This module contains the definitions of polynomial types …","Creates a vector of the first n powers of s.","This module implements RelaxedR1CSSNARK traits using a …","This module implements RelaxedR1CSSNARKTrait using Spartan …","A succinct proof of knowledge of a witness to a batch of …","A type that represents the prover’s key","A type that represents the verifier’s key","","","","","","","","","","","","","","","Returns the digest of the verifier’s key.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the prover’s key","A type that represents the verifier’s key","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Main components:","A multilinear extension of a polynomial $Z(\\\\cdot)$, denote …","","Binds the polynomial’s top variable using the given …","","","","","","","","","","Evaluates the polynomial at the given point. Returns Z(r) …","Evaluates the polynomial with the given evaluations and …","Evaluates the polynomial with the given evaluations and …","evaluations of the polynomial in all the 2^num_vars …","","Returns the argument unchanged.","Returns the number of variables in the multilinear …","","","Calls U::from(self).","Returns true if no evaluations.","Returns the total number of evaluations.","Creates a new MultilinearPolynomial from the given …","Returns a random polynomial","","","","","","","A type that represents the prover’s key","A type that holds a commitment to a sparse polynomial","A type that holds R1CSShape in a form amenable to memory …","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the verifier’s key","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","represents R1CSShape in a Spark-friendly format amenable …","produces a succinct proof of satisfiability of a …","","","","","","","","","","","","","","","","","","","","","","","","","","","verifies a proof of satisfiability of a RelaxedR1CS …","","","","","","A type that represents the prover’s key","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the verifier’s key","","","","","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","produces a succinct proof of satisfiability of a …","","","","","","","","","","","","","","","","verifies a proof of satisfiability of a RelaxedR1CS …","","","","Auxiliary PublicParams information about the commitment …","The type of the step-circuits on the primary","The type of the step-circuits on the secondary","A struct that manages all the digests of the primary …","SuperNova helper trait, for implementors that provide sets …","A vector of R1CSWithArity adjoined to a set of PublicParams","A SNARK that proves the correct execution of an …","A helper trait for a step of the incremental computation …","A trivial step circuit that simply returns the input, for …","A trivial step circuit that simply returns the input","Return the the number of inputs or outputs of each step …","","","","","","","","","","","","","","","Compute the circuit digest of a supernova StepCircuit.","Return this StepCircuit’s assigned index, for use when …","","","All of the primary circuit digests of this PublicParams","","","","","","","","","","","","","","","","","","","","","","","","","Return the CircuitDigests’ digest.","Return the PublicParams’ digest.","","","","","","","","","This module defines errors returned by the library.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a PublicParams from a vector of raw R1CSWithArity …","Create a PublicParams from a vector of raw R1CSWithArity …","","","","","","","","Initial circuit index, defaults to zero.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Breaks down an instance of PublicParams into the circuit …","Construct a new CircuitDigests","iterate base step to get new instance of recursive SNARK","How many circuits are provided?","Return a new instance of the primary circuit at index.","executing a step of the incremental computation","Return a new instance of the secondary circuit.","","","","","Construct a new PublicParams","This module defines a final compressing SNARK for …","Synthesize the circuit for a computation step and return …","","","","","","","","","","","","","","","","","","","","","","","","","verify recursive snark","","","","","","","Inputs of the primary circuits","Outputs of the primary circuits","missing commitment key","Nova error","Errors returned by Nova","Extended error for supernova","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","A SNARK that proves the knowledge of a valid RecursiveSNARK","A type that holds the prover key for CompressedSNARK","A type that holds the verifier key for CompressedSNARK","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new CompressedSNARK","","Creates prover and verifier keys for CompressedSNARK","","","","","","","","","","Verify the correctness of the CompressedSNARK","","","","A helper trait to absorb different objects in RO","A type representing an element of the base field of the …","A type representing an element of the base field of the …","A type that defines a commitment engine over scalars in …","The circuit alter ego of this trait impl - this constrains …","A type representing constants/parameters associated with …","A type representing constants/parameters associated with …","This is a convenience trait to pair engines which fields …","Convenience projection to the secondary Engine of a …","A collection of engines that are required by the library","A type that represents an element of the group","Represents an element of a group This is currently …","the vanilla alter ego of this trait - this constrains it …","Defines additional methods on PrimeField objects","A type that represents a circuit-friendly sponge that …","An alternate implementation of Self::RO in the circuit …","A helper trait that defines the behavior of a hash …","An alias for constants associated with E::RO","An alias for constants associated with E::ROCircuit","A helper trait that defines the behavior of a hash …","A type representing an element of the scalar field of the …","A type representing an element of the scalar field of the …","The secondary Engine of Self","A type that provides a generic Fiat-Shamir transcript to …","This trait defines the behavior of a transcript engine …","This trait allows types to implement how they want to be …","Adds a scalar to the internal state","Adds a scalar to the internal state","absorbs any type that implements TranscriptReprTrait under …","Absorbs the value in the provided RO","This module defines traits that a step function must …","This module defines a collection of traits that define the …","adds a domain separator","This module defines a collection of traits that define the …","Returns a scalar representing the bytes","Returns A, B, the order of the group, the size of the base …","Initializes the hash function","Initializes the hash function","initializes the transcript","This module defines a collection of traits that define the …","Returns a challenge of num_bits by hashing the internal …","Returns a challenge of num_bits by hashing the internal …","returns a scalar element of the group as a challenge","returns a byte representation of self to be added to the …","A helper trait for a step of the incremental computation …","A trivial step circuit that simply returns the input","Return the number of inputs or outputs of each step (this …","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Sythesize the circuit for a computation step and return …","","","","","","","Holds the type of the commitment","A trait that ties different pieces of the commitment …","Holds the type of the commitment key The key should …","This trait defines the behavior of the commitment","Holds the type of the compressed commitment","A trait that helps determine the length of a structure. …","A helper trait for types implementing scalar …","Commits to the provided vector using the provided …","Compresses self into a compressed commitment","Decompresses a compressed commitment into a commitment","Returns the length of the structure.","Samples a new commitment key of a specified size","Returns the coordinate representation of the commitment","A type that holds the evaluation argument","A trait that ties different pieces of the commitment …","A type that holds the prover key","A type that holds the verifier key","A method to prove the evaluation of a multilinear …","A method to perform any additional setup needed to produce …","A method to verify the purported evaluation of a …","A trait that defines the behavior of a zkSNARK to prove …","A helper trait that defines the behavior of a verifier key …","A type that represents the prover’s key","A type that represents the prover’s key","A trait that defines the behavior of a zkSNARK","A type that represents the verifier’s key","A type that represents the verifier’s key","This associated function (not a method) provides a hint …","This associated function (not a method) provides a hint …","Public parameter creation takes a size hint. This size …","Returns the digest of the verifier’s key","Produces a new SNARK for a relaxed R1CS","Produces a new SNARK for a batch of relaxed R1CS","Produces the keys for the prover and the verifier","Produces the keys for the prover and the verifier","Verifies a SNARK for a relaxed R1CS","Verifies a SNARK for a batch of relaxed R1CS"],"i":[0,0,0,0,0,0,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,0,2,5,7,8,9,12,2,5,7,8,9,12,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,5,7,8,17,2,5,2,5,7,8,9,12,17,2,2,5,0,2,2,2,5,7,8,9,12,17,2,5,7,8,9,12,17,0,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,8,5,8,5,8,17,8,0,0,2,5,7,8,12,17,5,17,0,0,2,5,7,8,9,12,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,5,7,8,9,12,17,8,17,2,5,7,8,9,12,17,8,8,0,0,0,29,29,29,29,29,29,29,29,29,29,29,34,29,29,29,29,29,34,0,0,29,29,29,29,29,34,29,34,29,34,29,34,29,34,29,34,29,34,29,29,34,34,29,29,29,34,29,34,29,34,29,29,34,29,34,29,34,29,34,29,34,0,0,0,0,0,0,0,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,0,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,48,46,48,48,46,48,46,48,46,48,46,48,48,46,48,0,0,0,0,56,57,54,55,56,57,54,55,54,55,54,55,56,57,54,55,56,57,54,55,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,54,55,54,57,55,54,54,55,56,57,54,55,56,57,54,55,56,57,54,55,54,56,57,54,55,0,0,0,0,0,0,0,0,0,0,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,67,60,58,59,60,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,65,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,60,59,66,62,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,66,58,59,60,61,62,63,64,65,66,0,0,0,0,0,0,0,70,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,73,74,28,28,0,0,72,74,71,0,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,28,72,73,70,74,71,28,28,72,73,70,74,71,28,28,28,72,73,70,74,71,74,71,74,71,28,72,73,70,74,71,71,71,74,28,72,73,70,74,71,28,72,73,70,74,71,28,28,28,73,70,28,74,28,28,28,72,73,70,74,71,28,72,73,70,74,71,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,0,0,0,0,0,0,0,0,0,80,83,82,80,83,82,80,80,83,82,80,83,82,80,82,80,83,82,80,83,82,80,83,82,80,83,82,80,83,82,80,80,80,82,80,80,80,83,82,80,83,82,80,83,82,80,80,80,83,82,0,0,0,86,85,84,86,85,84,84,84,86,85,84,86,85,84,84,85,86,85,84,86,85,84,86,85,84,86,85,84,86,85,84,84,84,85,84,84,84,86,85,84,86,85,84,86,85,84,84,84,86,85,84,0,0,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,0,0,0,0,0,91,92,93,94,95,91,92,93,94,95,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,95,94,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,95,91,92,94,95,95,91,92,93,94,95,92,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,95,91,92,93,94,95,0,0,0,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,98,97,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,98,97,98,98,96,97,98,96,97,98,96,97,98,96,97,98,98,96,97,98,0,108,108,0,0,0,0,0,0,0,99,100,101,100,101,103,102,104,105,100,101,103,102,104,105,0,99,100,101,102,100,101,104,105,100,101,104,105,100,101,100,101,103,103,102,104,105,100,101,103,102,104,105,105,103,102,100,101,103,102,104,105,103,104,0,100,101,103,102,104,105,100,101,103,102,104,105,102,102,102,100,101,103,102,104,105,108,100,101,103,102,104,105,102,103,105,108,108,105,108,103,102,104,105,102,0,99,100,101,100,101,104,105,100,101,103,102,104,105,100,101,103,102,104,105,100,101,103,102,104,105,105,100,101,103,102,104,105,105,105,109,109,0,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,0,0,0,114,115,112,114,115,112,114,115,112,114,115,112,112,114,115,112,114,115,112,114,115,112,114,115,112,114,115,112,112,112,112,114,115,112,114,115,112,114,115,112,112,114,115,112,0,138,4,4,118,118,119,0,0,0,4,0,119,0,4,4,0,0,0,0,138,4,6,4,0,0,118,119,124,126,0,0,124,0,127,138,118,119,124,0,118,119,124,125,0,0,1,130,130,130,130,130,130,130,130,130,130,130,130,130,130,1,130,130,130,130,130,130,139,0,139,0,132,0,0,139,132,132,134,139,132,81,0,81,81,81,81,81,0,0,10,113,0,10,113,10,113,0,135,10,113,10,113,10,113],"f":[0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[],1],[[[2,[-1]]],[[2,[-1]]],[3,4]],[[[5,[-1]]],[[5,[-1]]],[6,3]],[[[7,[-1]]],[[7,[-1]]],[3,4]],[[[8,[-1]]],[[8,[-1]]],[6,3]],[[[9,[-1,-2,-3]]],[[9,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[[12,[-1,-2,-3]]],[[12,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[2,[-2]]]]],16,4],[-1,[[15,[[5,[-2]]]]],16,6],[-1,[[15,[[7,[-2]]]]],16,4],[-1,[[15,[[8,[-2]]]]],16,6],[-1,[[15,[[17,[-2,-3,-4]]]]],16,6,[[10,[-2]]],[[10,[[11,[-2]]]]]],[[[2,[-1]]],[],4],[[[5,[-1]]],[],6],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[2,[-1]],-2],[[18,[13]]],4,19],[[[2,[-1]],[2,[-1]]],20,[21,4]],[[[5,[-1]],[5,[-1]]],20,[6,21]],0,[[[2,[-1]],[23,[22]]],[[24,[[23,[22]]]]],4],[[[2,[-1]]],14,4],[[[2,[-1]],25],26,[27,4]],[[[5,[-1]],25],26,[6,27]],[[[7,[-1]],25],26,[27,4]],[[[8,[-1]],25],26,[6,27]],[[[9,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[[[12,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[[[17,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],14],[[2,[-1]]],4],[[[5,[-1]],-2,-3,23,23],[[15,[[8,[-1]],29]]],6,1,1],[[[5,[-1]]],[[13,[14,14]]],6],[[[8,[-1]]],14,6],[[[5,[-1]]],[[13,[14,14]]],6],[[[8,[-1]]],[[13,[23,23]]],6],[[[5,[-1]],[9,[-1,-2,-3]],[8,[-1]]],[[15,[[17,[-1,-2,-3]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[[[8,[-1]],[5,[-1]],-2,-3],[[15,[13,29]]],6,1,1],0,0,[[[2,[-1]],-2],15,4,30],[[[5,[-1]],-2],15,6,30],[[[7,[-1]],-2],15,4,30],[[[8,[-1]],-2],15,6,30],[[[12,[-1,-2,-3]],-4],15,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[[17,[-1,-2,-3]],-4],15,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[-1,-2,[31,[-3]],[31,[[11,[-3]]]]],[[15,[[5,[-3]],29]]],1,1,6],[[[5,[-1]]],[[15,[[13,[[9,[-1,-2,-3]],[12,[-1,-2,-3]]]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[8,[-1]],[5,[-1]],14,23,23],[[15,[[13,[33,33]],29]]],6],[[[17,[-1,-2,-3]],[12,[-1,-2,-3]],14,23,23],[[15,[[13,[33,33]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[8,[-1]]],33,6],[[[8,[-1]]],33,6],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,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,13],[14,13],[[29,29],20],[[34,34],20],[[29,25],26],[[29,25],26],[[34,25],26],[[34,25],26],[35,29],[-1,-1,[]],[34,29],[-1,-1,[]],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[29,[[24,[36]]]],[-1,37,[]],[-1,37,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,38],[39,39],[40,40],[41,41],[42,42],[43,43],[44,44],[45,45],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[38,38],20],[[39,39],20],[[40,40],20],[[41,41],20],[[42,42],20],[[43,43],20],[[44,44],20],[[45,45],20],[[38,25],26],[[39,25],26],[[40,25],26],[[41,25],26],[[42,25],26],[[43,25],26],[[44,25],26],[[45,25],26],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[46,[-1]]],[[46,[-1]]],[3,47]],[[[48,[-1,-2]]],[[48,[-1,-2]]],3,3],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[46,[-2]]]]],16,47],[-1,[[15,[[48,[-2,-3]]]]],16,[],[]],[14,13],[14,13],[[[46,[-1]],25],26,[27,47]],[[[48,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[[[0,[-1]],-2,[0,[-3]],23,23],[[15,[-4,29]]],49,[],[[4,[],[[50,[]],[51,[]],[52,[[0,[-1]]]]]]],[]],[[[46,[-1]],-2],15,47,30],[[[48,[-1,-2]],-3],15,[],[],30],[[[53,[[0,[-1]]]]],[[13,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[[-1,[0,[-3]],23,-4],[[15,[13,29]]],[],49,[[4,[],[[50,[]],[51,[]],[52,[[0,[-2]]]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[-1]]],3],[[[55,[-1]]],[[55,[-1]]],[3,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[55,[-2]]]]],16,4],[14,13],[14,13],[14,13],[14,13],[[[56,[-1]],25],26,[27,4]],[[[57,[-1]],25],26,[27,4]],[[[54,[-1]],25],26,27],[[[55,[-1]],25],26,[27,4]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,23,23],[[15,[-2,29]]],[],[]],[[[57,[-1]],-2],15,4,30],[[[55,[-1]],-2],15,4,30],[53,[[13,[-1,-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[15,[13,29]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[58,[-1]]],[[58,[-1]]],[3,47]],[[[59,[-1]]],[[59,[-1]]],[3,47]],[[[60,[-1]]],[[60,[-1]]],3],[[[61,[-1]]],[[61,[-1]]],[3,47]],[[[62,[-1]]],[[62,[-1]]],[3,47]],[[[63,[-1]]],[[63,[-1]]],[3,47]],[[[64,[-1]]],[[64,[-1]]],[3,47]],[[[65,[-1]]],[[65,[-1]]],[3,47]],[[[66,[-1,-2]]],[[66,[-1,-2]]],3,3],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[[-2,67],[[15,[[0,[-1]],29]]],49,[[68,[[0,[-1]]]]]],[[],[[58,[-1]]],[69,47]],[[],[[59,[-1]]],[69,47]],[[],[[60,[-1]]],69],[[],[[63,[-1]]],[69,47]],[[],[[64,[-1]]],[69,47]],[[],[[65,[-1]]],[69,47]],[[],[[66,[-1,-2]]],69,69],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[65,[-2]]]]],16,47],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[58,[-1]],[58,[-1]]],20,[21,47]],[[[59,[-1]],[59,[-1]]],20,[21,47]],[[[60,[-1]],[60,[-1]]],20,21],[[[61,[-1]],[61,[-1]]],20,[21,47]],[[[62,[-1]],[62,[-1]]],20,[21,47]],[[[63,[-1]],[63,[-1]]],20,[21,47]],[[[64,[-1]],[64,[-1]]],20,[21,47]],[[[65,[-1]],[65,[-1]]],20,[21,47]],[[[66,[-1,-2]],[66,[-1,-2]]],20,21,21],[[[58,[-1]],25],26,[27,47]],[[[59,[-1]],25],26,[27,47]],[[[60,[-1]],25],26,27],[[[61,[-1]],25],26,[27,47]],[[[62,[-1]],25],26,[27,47]],[[[63,[-1]],25],26,[27,47]],[[[64,[-1]],25],26,[27,47]],[[[65,[-1]],25],26,[27,47]],[[[66,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[58,[-1]]],[[64,[-1]]],47],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,67],[[15,[[13,[[59,[-1]],[58,[-1]]]],29]]],49,[[68,[[0,[-1]]]]]],0,[[[0,[-1]],-2,23,23],[[15,[-3,29]]],49,[],[]],[[[62,[-1]],-2],15,47,30],[[[65,[-1]],-2],15,47,30],[[[53,[[0,[-1]]]]],[[13,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[15,[13,29]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[[70,[-1]]],13,4],[[[71,[-1]]],13,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[28,[-1]]],[3,4]],[[[72,[-1]]],[[72,[-1]]],[3,4]],[[[73,[-1]]],[[73,[-1]]],[3,4]],[[[70,[-1]]],[[70,[-1]]],[3,4]],[[[74,[-1]]],[[74,[-1]]],[3,4]],[[[71,[-1]]],[[71,[-1]]],[3,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[73,[-1]]],[],4],[[[74,[-1]]],13,4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]]],[[15,[[13,[33]],29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]],33,[72,[-1]],[72,[-1]]],[[15,[29]]],4],[[[28,[-1]],[31,[-1]]],[],4],[[[28,[-1]],[31,[-1]]],14,4],[14,[[72,[-1]]],4],[[[28,[-1]]],[[74,[-1]]],4],[[[28,[-1]]],[[71,[-1]]],4],[14,33],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[28,[-2]]]]],16,4],[-1,[[15,[[72,[-2]]]]],16,4],[-1,[[15,[[73,[-2]]]]],16,4],[-1,[[15,[[70,[-2]]]]],16,4],[-1,[[15,[[74,[-2]]]]],16,4],[-1,[[15,[[71,[-2]]]]],16,4],[[[28,[-1]]],[],4],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[28,[-1]],-2],[[18,[13]]],4,19],[[[28,[-1]],[28,[-1]]],20,[21,4]],[[[72,[-1]],[72,[-1]]],20,[21,4]],[[[73,[-1]],[73,[-1]]],20,[21,4]],[[[70,[-1]],[70,[-1]]],20,[21,4]],[[[74,[-1]],[74,[-1]]],20,[21,4]],[[[71,[-1]],[71,[-1]]],20,[21,4]],[[[28,[-1]],[23,[22]]],[[24,[[23,[22]]]]],4],[[[28,[-1]]],14,4],[[[28,[-1]],25],26,[27,4]],[[[72,[-1]],25],26,[27,4]],[[[73,[-1]],25],26,[27,4]],[[[70,[-1]],25],26,[27,4]],[[[74,[-1]],25],26,[27,4]],[[[71,[-1]],25],26,[27,4]],[[[74,[-1]],[73,[-1]],23],[[15,[[74,[-1]],29]]],4],[[[71,[-1]],[70,[-1]]],[[71,[-1]]],4],[[[74,[-1]],[73,[-1]],23],[[15,[13,29]]],4],[[[71,[-1]],[70,[-1]]],13,4],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[28,[-1]],[70,[-1]]],[[71,[-1]]],4],[23,[[71,[-1]]],4],[[[28,[-1]],[73,[-1]]],[[74,[-1]]],4],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],[70,[-1]],[73,[-1]]],[[15,[13,29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]]],[[15,[13,29]]],4],0,[[[28,[-1]],33],[[15,[[73,[-1]],29]]],4],[[[28,[-1]],33],[[15,[[70,[-1]],29]]],4],[[[28,[-1]]],[[28,[-1]]],4],[[[74,[-1]],[28,[-1]]],[[74,[-1]]],4],[[14,14,14,14,-1],[[28,[-2]]],[75,76],4],[[[28,[-1]],-2],[[13,[[74,[-1]],[71,[-1]]]]],4,[75,76]],[[[28,[-1]],-2],15,4,30],[[[72,[-1]],-2],15,4,30],[[[73,[-1]],-2],15,4,30],[[[70,[-1]],-2],15,4,30],[[[74,[-1]],-2],15,4,30],[[[71,[-1]],-2],15,4,30],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[71,[-1]]],[[33,[22]]],4],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[-1,14],[[33,[-1]]],77],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[80,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[82,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[80,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[83,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[82,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[80,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[82,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[80,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[[[80,[-1,-2]],-3,[23,[[71,[-1]]]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[],[[79,[78]]]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[84,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[85,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[86,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[85,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[84,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[85,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[84,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[84,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[[[84,[-1,-2]],-3,[23,[[71,[-1]]]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[87,[-1]],[87,[-1]]],-2,88,[]],[[[87,[-1]],-1],13,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[87,[-1]]],[[87,[-1]]],3],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[87,[-2]]]]],16,89],[14,13],[[[87,[-1]],[87,[-1]]],20,21],[[[87,[-1]],[23,[-1]]],-1,88],[[[23,[-1]],[23,[-1]]],-1,88],[[[23,[-1]],[23,[-1]]],-1,88],[[[87,[-1]]],[[23,[-1]]],88],[[[87,[-1]],25],26,27],[-1,-1,[]],[[[87,[-1]]],14,88],[[[87,[-1]],14],-1,88],[[],14],[-1,-2,[],[]],[[[87,[-1]]],20,88],[[[87,[-1]]],14,88],[[[33,[-1]]],[[87,[-1]]],88],[[14,-1],[[87,[-2]]],[75,76],88],[[[87,[-1]],-2],15,90,30],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[[91,[-1]]],[[91,[-1]]],[3,4]],[[[92,[-1]]],[[92,[-1]]],[3,4]],[[[93,[-1,-2]]],[[93,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[94,[-1,-2]]],[[94,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[95,[-1,-2]]],[[95,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[91,[-2]]]]],16,4],[-1,[[15,[[92,[-2]]]]],16,4],[-1,[[15,[[95,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[94,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[14,13],[14,13],[[[91,[-1]],25],26,[27,4]],[[[92,[-1]],25],26,[27,4]],[[[93,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[94,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[95,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[91,[-1]]],4],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[95,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[91,[-1]],-2],15,4,30],[[[92,[-1]],-2],15,4,30],[[[94,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[95,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[92,[-1]]],[[33,[22]]],4],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[95,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[96,[-1,-2]]],[[96,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[97,[-1,-2]]],[[97,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[98,[-1,-2]]],[[98,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[98,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[97,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[96,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[97,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[98,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[98,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[97,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[98,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[98,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[99,14],[[[100,[-1]]],14,88],[[[101,[-1]]],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,14],[],99],[99,14],[[[100,[-1]]],14,88],[[[101,[-1]]],14,88],[[[102,[-1]]],[[103,[-1]]],6],[[[100,[-1]]],[[100,[-1]]],3],[[[101,[-1]]],[[101,[-1]]],3],[[[104,[-1]]],[[104,[-1]]],[6,3]],[[[105,[-1]]],[[105,[-1]]],[6,3]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[],[[100,[-1]]],69],[[],[[101,[-1]]],69],[14,-1,[]],[14,-1,[]],[14,-1,[]],[[[103,[-1]]],-2,4,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[105,[-2]]]]],16,6],[[[103,[-1]]],[],4],[[[102,[-1]]],[],6],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[103,[-1]],[103,[-1]]],20,[21,4]],[[[104,[-1]],[104,[-1]]],20,[6,21]],0,[[[100,[-1]],25],26,27],[[[101,[-1]],25],26,27],[[[103,[-1]],25],26,[27,4]],[[[102,[-1]],25],26,[6,27]],[[[104,[-1]],25],26,[6,27]],[[[105,[-1]],25],26,[6,27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[33,[[2,[-1]]]],[104,[-1]]],[[102,[-1]]],6],[[[33,[[2,[-1]]]],[104,[-1]]],[[102,[-1]]],6],[[[102,[-1]],14],-2,6,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[[108,[],[[106,[-1]],[107,[-2]]]]],14,99,99],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]]],[[13,[[33,[[2,[-1]]]],[104,[-1]]]]],6],[33,[[103,[-1]]],4],[[[102,[-1]],-2,23,23],[[15,[[105,[-1]],109]]],6,[[108,[-1]]]],[[[108,[],[[106,[-1]],[107,[-2]]]]],14,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]],14],-1,99,99],[[[105,[-1]],[102,[-1]],-2,-3],[[15,[13,109]]],6,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]]],-2,99,99],[[[103,[-1]],-2],15,4,30],[[[102,[-1]],-2],15,6,30],[[[104,[-1]],-2],15,6,30],[[[105,[-1]],-2],15,6,30],[[-2,[31,[-1]],[31,[[11,[-1]]]]],[[102,[-1]]],6,[[108,[-1]]]],0,[[99,-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[100,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[101,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[105,[-1]],[102,[-1]],23,23],[[15,[[13,[33,33]],109]]],6],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[105,[-1]]],33,6],[[[105,[-1]]],33,6],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,13],[[109,109],20],[[109,25],26],[[109,25],26],[-1,-1,[]],[29,109],[[],14],[-1,-2,[],[]],[109,[[24,[36]]]],[-1,37,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[112,[-2,-3,-4]]]]],16,6,[[113,[-2]]],[[10,[[11,[-2]]]]]],[14,13],[14,13],[14,13],[[[114,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[[[115,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[[[112,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]],[114,[-1,-2,-3]],[105,[-1]]],[[15,[[112,[-1,-2,-3]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[[[112,[-1,-2,-3]],-4],15,6,[[113,[-1]]],[[10,[[11,[-1]]]]],30],[[[102,[-1]]],[[15,[[13,[[114,[-1,-2,-3]],[115,[-1,-2,-3]]]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[112,[-1,-2,-3]],[102,[-1]],[115,[-1,-2,-3]],23,23],[[15,[[13,[33,33]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],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,[[[118,[],[[116,[-1]],[117,[-3]]]],-2],13,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122]],[[[119,[],[[123,[-1]],[117,[-4]]]],[110,[-2]]],13,[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122]],[[124,[23,[22]],-1],13,125],[126,13],0,0,[[124,[23,[22]]],13],0,[[[23,[22]]],127],[[],[[13,[-1,-1,128,128]]],[]],[[-1,14],[[118,[],[[116,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[119,[-3],[[117,[-1]]]]],88],[[-1,14],[[119,[],[[123,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[118,[-3,-4],[[117,[-1]]]]],88,[]],[[[23,[22]]],124],0,[[[118,[],[[116,[-1]],[117,[-3]]]],14],-4,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122],[]],[[[119,[],[[123,[-1]],[117,[-4]]]],-5,14],[[15,[[33,[129]],35]]],[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122],[[111,[-2]]]],[[124,[23,[22]]],[[15,[29]]]],[125,[[33,[22]]]],0,0,[1,14],[[[130,[-1]]],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[130,[-1]]],[[130,[-1]]],3],[[-1,-2],13,[],[]],[[],[[130,[-1]]],69],[14,-1,[]],[14,-1,[]],[14,13],[[[130,[-1]],[130,[-1]]],20,21],[[[130,[-1]],25],26,27],[-1,-1,[]],[[],14],[-1,-2,[],[]],[[1,-2,[23,[[110,[-1]]]]],[[15,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[[[130,[-1]],-2,[23,[[110,[-1]]]]],[[15,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,23],-2,[],[]],[[[132,[],[[131,[-1]]]]],-1,[3,27,21,133,120,121,125,90,89]],[-1,[[15,[[132,[],[[131,[-1]]]],29]]],[3,27,21,133,120,121,125,90,89]],[134,14],[[[23,[22]],14],-1,[]],[[[132,[],[[131,[-1]]]]],[[13,[20]]],[3,27,21,133,120,121,125,90,89]],0,0,0,0,[[-1,23,23],[[15,[-2,29]]],[],[]],[53,[[13,[-1,-2]]],[],[]],[[-1,23,-2],[[15,[13,29]]],[],[]],0,0,0,0,0,0,0,[[],[[79,[78]]]],[[],[[79,[78]]]],[[],[[79,[78]]]],[135],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[10,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,90]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[113,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,[135,[-2]]]],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[[10,[],[[136,[-1]],[137,[-2]]]],-2,[71,[-3]]],[[15,[13,29]]],[120,121],[120,121,90],4],[[[113,[],[[136,[-1]],[137,[-2]]]],-2,[23,[[71,[-3]]]]],[[15,[13,29]]],[120,121],[120,121,[135,[-3]]],4]],"c":[],"p":[[10,"StepCircuit",1369],[5,"R1CSWithArity",0],[10,"Clone",1430],[10,"Engine",1325],[5,"PublicParams",0],[10,"CurveCycleEquipped",1325],[5,"ResourceBuffer",0],[5,"RecursiveSNARK",0],[5,"ProverKey",0],[10,"RelaxedR1CSSNARKTrait",1413],[8,"Dual",1325],[5,"VerifierKey",0],[1,"tuple"],[1,"usize"],[6,"Result",1431],[10,"Deserializer",1432],[5,"CompressedSNARK",0],[8,"Result",1433],[10,"Write",1434],[1,"bool"],[10,"PartialEq",1435],[1,"u8"],[1,"slice"],[6,"Option",1436],[5,"Formatter",1437],[8,"Result",1437],[10,"Debug",1437],[5,"R1CSShape",659],[6,"NovaError",161],[10,"Serializer",1438],[8,"CommitmentKeyHint",659],[5,"TypeId",1439],[5,"Vec",1440],[6,"PCSError",161],[6,"SynthesisError",1441],[10,"Error",1442],[5,"String",1443],[5,"GrumpkinEngine",222],[5,"Bn256EngineIPA",222],[5,"Bn256EngineZM",222],[5,"Bn256EngineKZG",222],[5,"Secp256k1Engine",222],[5,"Secq256k1Engine",222],[5,"PallasEngine",222],[5,"VestaEngine",222],[5,"EvaluationArgument",369],[10,"Engine",1444],[5,"EvaluationEngine",369],[10,"MultiMillerLoop",1444],[17,"GE"],[17,"Scalar"],[17,"CE"],[5,"Arc",1445],[5,"EvaluationEngine",410],[5,"InnerProductArgument",410],[5,"ProverKey",410],[5,"VerifierKey",410],[5,"UVKZGEvaluation",478],[5,"UVKZGProof",478],[5,"UVKZGPCS",478],[5,"ZMProverKey",478],[5,"ZMVerifierKey",478],[5,"ZMCommitment",478],[5,"ZMEvaluation",478],[5,"ZMProof",478],[5,"ZMPCS",478],[8,"UVKZGPoly",478],[10,"Borrow",1446],[10,"Default",1447],[5,"R1CSInstance",659],[5,"RelaxedR1CSInstance",659],[5,"R1CSResult",659],[5,"R1CSWitness",659],[5,"RelaxedR1CSWitness",659],[10,"RngCore",1448],[10,"CryptoRng",1448],[10,"Field",1449],[10,"Fn",1450],[5,"Box",1451],[5,"BatchedRelaxedR1CSSNARK",819],[10,"EvaluationEngineTrait",1406],[5,"VerifierKey",819],[5,"ProverKey",819],[5,"BatchedRelaxedR1CSSNARK",872],[5,"VerifierKey",872],[5,"ProverKey",872],[5,"MultilinearPolynomial",927],[10,"PrimeField",1449],[10,"Deserialize",1432],[10,"Serialize",1438],[5,"R1CSShapeSparkRepr",959],[5,"R1CSShapeSparkCommitment",959],[5,"ProverKey",959],[5,"VerifierKey",959],[5,"RelaxedR1CSSNARK",959],[5,"ProverKey",1058],[5,"VerifierKey",1058],[5,"RelaxedR1CSSNARK",1058],[10,"StepCircuit",1116],[5,"TrivialTestCircuit",1116],[5,"TrivialSecondaryCircuit",1116],[5,"PublicParams",1116],[5,"CircuitDigests",1116],[5,"AuxParams",1116],[5,"RecursiveSNARK",1116],[17,"C1"],[17,"C2"],[10,"NonUniformCircuit",1116],[6,"SuperNovaError",1256],[5,"AllocatedNum",1452],[10,"ConstraintSystem",1441],[5,"CompressedSNARK",1278],[10,"BatchedRelaxedR1CSSNARKTrait",1413],[5,"ProverKey",1278],[5,"VerifierKey",1278],[17,"CircuitRO"],[17,"Constants"],[10,"ROTrait",1325],[10,"ROCircuitTrait",1325],[10,"Send",1453],[10,"Sync",1453],[10,"Abomonation",1454],[17,"NativeRO"],[10,"TranscriptEngineTrait",1325],[10,"TranscriptReprTrait",1325],[10,"AbsorbInROTrait",1325],[10,"PrimeFieldExt",1325],[5,"BigInt",1455],[5,"AllocatedBit",1456],[5,"TrivialCircuit",1369],[17,"CompressedCommitment"],[10,"CommitmentTrait",1393],[10,"Eq",1435],[10,"Len",1393],[10,"DigestHelperTrait",1413],[17,"ProverKey"],[17,"VerifierKey"],[10,"Group",1325],[10,"CommitmentEngineTrait",1393]],"b":[[199,"impl-Display-for-NovaError"],[200,"impl-Debug-for-NovaError"],[201,"impl-Display-for-PCSError"],[202,"impl-Debug-for-PCSError"],[203,"impl-From%3CSynthesisError%3E-for-NovaError"],[205,"impl-From%3CPCSError%3E-for-NovaError"],[852,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[853,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[856,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[857,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[867,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[868,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[881,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[882,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[906,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[907,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[910,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[911,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[921,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[922,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[1266,"impl-Debug-for-SuperNovaError"],[1267,"impl-Display-for-SuperNovaError"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/docs/src/arecibo/bellpepper/r1cs.rs.html b/docs/src/arecibo/bellpepper/r1cs.rs.html index 8927b7576..117afd019 100644 --- a/docs/src/arecibo/bellpepper/r1cs.rs.html +++ b/docs/src/arecibo/bellpepper/r1cs.rs.html @@ -267,9 +267,9 @@ ) { let (A, B, C, nn) = X; let n = **nn; - assert_eq!(n + 1, A.indptr.len(), "A: invalid shape"); - assert_eq!(n + 1, B.indptr.len(), "B: invalid shape"); - assert_eq!(n + 1, C.indptr.len(), "C: invalid shape"); + assert_eq!(n, A.num_rows(), "A: invalid shape"); + assert_eq!(n, B.num_rows(), "B: invalid shape"); + assert_eq!(n, C.num_rows(), "C: invalid shape"); let add_constraint_component = |index: Index, coeff: &S, M: &mut SparseMatrix<S>| { // we add constraints to the matrix only if the associated coefficient is non-zero diff --git a/docs/src/arecibo/r1cs/sparse.rs.html b/docs/src/arecibo/r1cs/sparse.rs.html index 2d7bf1426..d5579deee 100644 --- a/docs/src/arecibo/r1cs/sparse.rs.html +++ b/docs/src/arecibo/r1cs/sparse.rs.html @@ -341,6 +341,44 @@ 340 341 342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380
//! # Sparse Matrices
 //!
 //! This module defines a custom implementation of CSR/CSC sparse matrices.
@@ -356,6 +394,7 @@
 use itertools::Itertools as _;
 use rand_core::{CryptoRng, RngCore};
 use rayon::prelude::*;
+use ref_cast::RefCast;
 use serde::{Deserialize, Serialize};
 
 /// CSR format sparse matrix, We follow the names used by scipy.
@@ -374,6 +413,11 @@
   pub cols: usize,
 }
 
+/// Wrapper type for encode rows of [`SparseMatrix`]
+#[derive(Debug, Clone, RefCast)]
+#[repr(transparent)]
+pub struct RowData([usize; 2]);
+
 /// [`SparseMatrix`]s are often large, and this helps with cloning bottlenecks
 impl<F: PrimeField> Clone for SparseMatrix<F> {
   fn clone(&self) -> Self {
@@ -454,6 +498,30 @@
     Self::new(&matrix, rows, cols)
   }
 
+  /// Returns an iterator into the rows
+  pub fn iter_rows(&self) -> impl Iterator<Item = &RowData> {
+    self
+      .indptr
+      .windows(2)
+      .map(|ptrs| RowData::ref_cast(ptrs.try_into().unwrap()))
+  }
+
+  /// Returns a parallel iterator into the rows
+  pub fn par_iter_rows(&self) -> impl IndexedParallelIterator<Item = &RowData> {
+    self
+      .indptr
+      .par_windows(2)
+      .map(|ptrs| RowData::ref_cast(ptrs.try_into().unwrap()))
+  }
+
+  /// Retrieves the data for row slice [i..j] from `row`.
+  /// [`RowData`] **must** be created from unmodified `self` previously to guarentee safety.
+  pub fn get_row(&self, row: &RowData) -> impl Iterator<Item = (&F, &usize)> {
+    self.data[row.0[0]..row.0[1]]
+      .iter()
+      .zip_eq(&self.indices[row.0[0]..row.0[1]])
+  }
+
   /// Retrieves the data for row slice [i..j] from `ptrs`.
   /// We assume that `ptrs` is indexed from `indptrs` and do not check if the
   /// returned slice is actually a valid row.
@@ -569,6 +637,14 @@
       nnz: *self.indptr.last().unwrap(),
     }
   }
+
+  pub fn num_rows(&self) -> usize {
+    self.indptr.len() - 1
+  }
+
+  pub fn num_cols(&self) -> usize {
+    self.cols
+  }
 }
 
 /// Iterator for sparse matrix
diff --git a/docs/src/arecibo/spartan/batched.rs.html b/docs/src/arecibo/spartan/batched.rs.html
index be15d129d..349c93281 100644
--- a/docs/src/arecibo/spartan/batched.rs.html
+++ b/docs/src/arecibo/spartan/batched.rs.html
@@ -627,8 +627,6 @@
 626
 627
 628
-629
-630
 
//! This module implements `BatchedRelaxedR1CSSNARKTrait` using Spartan that is generic over the polynomial commitment
 //! and evaluation argument (i.e., a PCS) This version of Spartan does not use preprocessing so the verifier keeps the
 //! entire description of R1CS matrices. This is essentially optimal for the verifier when using an IPA-based polynomial
@@ -1144,13 +1142,11 @@
                           r_y: &[E::Scalar]|
      -> Vec<E::Scalar> {
       let evaluate_with_table =
-        // TODO(@winston-h-zhang): review
-        |M: &SparseMatrix<E::Scalar>, T_x: &[E::Scalar], T_y: &[E::Scalar]| -> E::Scalar {
-          M.indptr
-            .par_windows(2)
+        |M: &SparseMatrix<E::Scalar>, T_x: &[E::Scalar], T_y: &[E::Scalar]| -> E::Scalar {
+          M.par_iter_rows()
             .enumerate()
-            .map(|(row_idx, ptrs)| {
-              M.get_row_unchecked(ptrs.try_into().unwrap())
+            .map(|(row_idx, row)| {
+              M.get_row(row)
                 .map(|(val, col_idx)| T_x[row_idx] * T_y[*col_idx] * val)
                 .sum::<E::Scalar>()
             })
diff --git a/docs/src/arecibo/spartan/mod.rs.html b/docs/src/arecibo/spartan/mod.rs.html
index b1ca3f6ab..a7aca8ac6 100644
--- a/docs/src/arecibo/spartan/mod.rs.html
+++ b/docs/src/arecibo/spartan/mod.rs.html
@@ -327,6 +327,7 @@
 326
 327
 328
+329
 
//! This module implements `RelaxedR1CSSNARKTrait` using Spartan that is generic
 //! over the polynomial commitment and evaluation argument (i.e., a PCS)
 //! We provide two implementations, one in snark.rs (which does not use any preprocessing)
@@ -503,9 +504,10 @@
   assert_eq!(rx.len(), S.num_cons);
 
   let inner = |M: &SparseMatrix<E::Scalar>, M_evals: &mut Vec<E::Scalar>| {
-    for (row_idx, ptrs) in M.indptr.windows(2).enumerate() {
-      for (val, col_idx) in M.get_row_unchecked(ptrs.try_into().unwrap()) {
-        M_evals[*col_idx] += rx[row_idx] * val;
+    for (row_idx, row) in M.iter_rows().enumerate() {
+      for (val, col_idx) in M.get_row(row) {
+        // TODO(@winston-h-zhang): Parallelize? Will need more complicated locking
+        M_evals[*col_idx] += rx[row_idx] * val;
       }
     }
   };
diff --git a/docs/src/arecibo/spartan/snark.rs.html b/docs/src/arecibo/spartan/snark.rs.html
index 8c3bfd94d..adf89f85a 100644
--- a/docs/src/arecibo/spartan/snark.rs.html
+++ b/docs/src/arecibo/spartan/snark.rs.html
@@ -553,7 +553,6 @@
 552
 553
 554
-555
 
//! This module implements `RelaxedR1CSSNARKTrait` using Spartan that is generic
 //! over the polynomial commitment and evaluation argument (i.e., a PCS)
 //! This version of Spartan does not use preprocessing so the verifier keeps the entire
@@ -907,11 +906,10 @@
      -> Vec<E::Scalar> {
       let evaluate_with_table =
         |M: &SparseMatrix<E::Scalar>, T_x: &[E::Scalar], T_y: &[E::Scalar]| -> E::Scalar {
-          M.indptr
-            .par_windows(2)
+          M.par_iter_rows()
             .enumerate()
-            .map(|(row_idx, ptrs)| {
-              M.get_row_unchecked(ptrs.try_into().unwrap())
+            .map(|(row_idx, row)| {
+              M.get_row(row)
                 .map(|(val, col_idx)| T_x[row_idx] * T_y[*col_idx] * val)
                 .sum::<E::Scalar>()
             })
diff --git a/docs/trait.impl/core/clone/trait.Clone.js b/docs/trait.impl/core/clone/trait.Clone.js
index 7f5b824f3..967b14840 100644
--- a/docs/trait.impl/core/clone/trait.Clone.js
+++ b/docs/trait.impl/core/clone/trait.Clone.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"arecibo":[["impl<E: Clone, NE: Clone> Clone for ZMPCS<E, NE>"],["impl<E: Clone> Clone for EvaluationEngine<E>"],["impl<E: Clone + Engine> Clone for ZMProof<E>
where\n E::G1Affine: Clone,
"],["impl<E: Clone + Engine> Clone for ZMEvaluation<E>
where\n E::Fr: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for ProverKey<E, EE>
where\n EE::ProverKey: Clone,\n E::Scalar: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for VerifierKey<E, EE>
where\n EE::VerifierKey: Clone,\n E::Scalar: Clone,
"],["impl Clone for Secp256k1Engine"],["impl<E: Clone + Engine> Clone for ZMProverKey<E>"],["impl<E: Clone + Engine> Clone for R1CSResult<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for InnerProductArgument<E>
where\n E::Scalar: Clone,
"],["impl Clone for Bn256EngineIPA"],["impl<E: Clone + Engine> Clone for UVKZGProof<E>
where\n E::G1Affine: Clone,
"],["impl<E1> Clone for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSShapeSparkCommitment<E>"],["impl<E: Clone + Engine> Clone for R1CSWitness<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone> Clone for UVKZGPCS<E>"],["impl<E: Clone + Engine> Clone for ZMCommitment<E>
where\n E::G1Affine: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl<E: Clone + Engine> Clone for EvaluationArgument<E>
where\n E::G1Affine: Clone,\n E::Fr: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSShape<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for VerifierKey<E, EE>
where\n EE::VerifierKey: Clone,\n E::Scalar: Clone,
"],["impl Clone for Bn256EngineKZG"],["impl<E1, S1, S2> Clone for ProverKey<E1, S1, S2>"],["impl<E: Clone + Engine> Clone for ResourceBuffer<E>
where\n E::Scalar: Clone,
"],["impl Clone for PallasEngine"],["impl<E1, S1, S2> Clone for VerifierKey<E1, S1, S2>"],["impl<F: Clone> Clone for TrivialTestCircuit<F>"],["impl<E1> Clone for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone, NE: Clone> Clone for EvaluationEngine<E, NE>"],["impl<E: Clone + Engine> Clone for R1CSShapeSparkRepr<E>
where\n E::Scalar: Clone,
"],["impl<F: Clone> Clone for TrivialCircuit<F>"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl<E: Clone + Engine> Clone for RelaxedR1CSInstance<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for RelaxedR1CSWitness<E>
where\n E::Scalar: Clone,
"],["impl<E1> Clone for AuxParams<E1>
where\n E1: CurveCycleEquipped + Clone,\n E1::Scalar: Clone,
"],["impl<Scalar: Clone> Clone for MultilinearPolynomial<Scalar>"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for ProverKey<E, EE>
where\n EE::ProverKey: Clone,\n E::Scalar: Clone,
"],["impl<E> Clone for PublicParams<E>
where\n E: CurveCycleEquipped + Clone,\n E::Scalar: Clone,
"],["impl Clone for Secq256k1Engine"],["impl<E: Clone + Engine> Clone for ZMVerifierKey<E>
where\n E::G2Affine: Clone,
"],["impl Clone for VestaEngine"],["impl Clone for GrumpkinEngine"],["impl<F: Clone> Clone for TrivialSecondaryCircuit<F>"],["impl Clone for Bn256EngineZM"],["impl<E: Clone + Engine> Clone for R1CSInstance<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSWithArity<E>"],["impl<E: Clone + Engine> Clone for UVKZGEvaluation<E>
where\n E::Fr: Clone,
"]] +"arecibo":[["impl<F: Clone> Clone for TrivialSecondaryCircuit<F>"],["impl<E1> Clone for AuxParams<E1>
where\n E1: CurveCycleEquipped + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for ProverKey<E, EE>
where\n EE::ProverKey: Clone,\n E::Scalar: Clone,
"],["impl Clone for Secp256k1Engine"],["impl<E: Clone + Engine> Clone for ZMProof<E>
where\n E::G1Affine: Clone,
"],["impl<E> Clone for PublicParams<E>
where\n E: CurveCycleEquipped + Clone,\n E::Scalar: Clone,
"],["impl<E1, S1, S2> Clone for ProverKey<E1, S1, S2>"],["impl<Scalar: Clone> Clone for MultilinearPolynomial<Scalar>"],["impl<E: Clone + Engine> Clone for R1CSShapeSparkRepr<E>
where\n E::Scalar: Clone,
"],["impl Clone for GrumpkinEngine"],["impl<E1> Clone for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Clone,\n E1::Scalar: Clone,
"],["impl<E1> Clone for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for VerifierKey<E, EE>
where\n EE::VerifierKey: Clone,\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for UVKZGProof<E>
where\n E::G1Affine: Clone,
"],["impl<E: Clone + Engine> Clone for RelaxedR1CSInstance<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for ZMCommitment<E>
where\n E::G1Affine: Clone,
"],["impl Clone for Bn256EngineZM"],["impl<E: Clone, NE: Clone> Clone for ZMPCS<E, NE>"],["impl<E: Clone + Engine> Clone for ZMEvaluation<E>
where\n E::Fr: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSShapeSparkCommitment<E>"],["impl<E: Clone + Engine> Clone for R1CSWitness<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for ProverKey<E, EE>
where\n EE::ProverKey: Clone,\n E::Scalar: Clone,
"],["impl<E: Clone> Clone for UVKZGPCS<E>"],["impl Clone for Bn256EngineKZG"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl<E: Clone + Engine> Clone for EvaluationArgument<E>
where\n E::G1Affine: Clone,\n E::Fr: Clone,
"],["impl<E: Clone + Engine> Clone for UVKZGEvaluation<E>
where\n E::Fr: Clone,
"],["impl<E: Clone, NE: Clone> Clone for EvaluationEngine<E, NE>"],["impl Clone for PallasEngine"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for VerifierKey<E, EE>
where\n EE::VerifierKey: Clone,\n E::Scalar: Clone,
"],["impl Clone for Secq256k1Engine"],["impl<E: Clone + Engine> Clone for ZMVerifierKey<E>
where\n E::G2Affine: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl<E: Clone + Engine> Clone for InnerProductArgument<E>
where\n E::Scalar: Clone,
"],["impl Clone for Bn256EngineIPA"],["impl Clone for VestaEngine"],["impl<F: Clone> Clone for TrivialTestCircuit<F>"],["impl<E: Clone> Clone for EvaluationEngine<E>"],["impl<F: Clone> Clone for TrivialCircuit<F>"],["impl<E: Clone + Engine> Clone for R1CSResult<E>
where\n E::Scalar: Clone,
"],["impl<E1, S1, S2> Clone for VerifierKey<E1, S1, S2>"],["impl<E: Clone + Engine> Clone for R1CSWithArity<E>"],["impl<E: Clone + Engine> Clone for R1CSShape<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSInstance<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for RelaxedR1CSWitness<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for ZMProverKey<E>"],["impl<E: Clone + Engine> Clone for ResourceBuffer<E>
where\n E::Scalar: Clone,
"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/cmp/trait.Eq.js b/docs/trait.impl/core/cmp/trait.Eq.js index b13cdd7e8..2bae6b741 100644 --- a/docs/trait.impl/core/cmp/trait.Eq.js +++ b/docs/trait.impl/core/cmp/trait.Eq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl<E: Eq + Engine> Eq for R1CSWitness<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for ZMProverKey<E>"],["impl<E: Eq> Eq for UVKZGPCS<E>"],["impl Eq for NovaError"],["impl<E: Eq + Engine> Eq for UVKZGEvaluation<E>
where\n E::Fr: Eq,
"],["impl<E: Eq, NE: Eq> Eq for ZMPCS<E, NE>"],["impl Eq for SuperNovaError"],["impl Eq for GrumpkinEngine"],["impl<E: Eq + Engine> Eq for RelaxedR1CSInstance<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for ZMVerifierKey<E>
where\n E::G2Affine: Eq,
"],["impl Eq for PCSError"],["impl Eq for Secq256k1Engine"],["impl<E: Eq + Engine> Eq for RelaxedR1CSWitness<E>
where\n E::Scalar: Eq,
"],["impl Eq for Bn256EngineZM"],["impl<E: Eq + Engine> Eq for R1CSShape<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for ZMCommitment<E>
where\n E::G1Affine: Eq,
"],["impl<E: Eq + Engine> Eq for ZMEvaluation<E>
where\n E::Fr: Eq,
"],["impl<E: Eq + Engine> Eq for ZMProof<E>
where\n E::G1Affine: Eq,
"],["impl<E: Eq + Engine> Eq for R1CSInstance<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for CircuitDigests<E>
where\n E::Scalar: Eq,
"],["impl Eq for Secp256k1Engine"],["impl<F: Eq> Eq for TrivialCircuit<F>"],["impl Eq for Bn256EngineKZG"],["impl<E: Eq + Engine> Eq for R1CSWithArity<E>"],["impl<Scalar: Eq> Eq for MultilinearPolynomial<Scalar>"],["impl<E: Eq + Engine> Eq for R1CSResult<E>
where\n E::Scalar: Eq,
"],["impl Eq for PallasEngine"],["impl Eq for VestaEngine"],["impl<E: Eq + Engine> Eq for UVKZGProof<E>
where\n E::G1Affine: Eq,
"],["impl Eq for Bn256EngineIPA"]] +"arecibo":[["impl<E: Eq + Engine> Eq for CircuitDigests<E>
where\n E::Scalar: Eq,
"],["impl Eq for Secq256k1Engine"],["impl<E: Eq + Engine> Eq for R1CSInstance<E>
where\n E::Scalar: Eq,
"],["impl<Scalar: Eq> Eq for MultilinearPolynomial<Scalar>"],["impl<E: Eq + Engine> Eq for R1CSWitness<E>
where\n E::Scalar: Eq,
"],["impl Eq for VestaEngine"],["impl Eq for Bn256EngineIPA"],["impl Eq for Bn256EngineZM"],["impl<E: Eq + Engine> Eq for ZMVerifierKey<E>
where\n E::G2Affine: Eq,
"],["impl Eq for Bn256EngineKZG"],["impl<E: Eq + Engine> Eq for ZMCommitment<E>
where\n E::G1Affine: Eq,
"],["impl<E: Eq> Eq for UVKZGPCS<E>"],["impl<E: Eq + Engine> Eq for UVKZGProof<E>
where\n E::G1Affine: Eq,
"],["impl<E: Eq + Engine> Eq for R1CSResult<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for ZMProof<E>
where\n E::G1Affine: Eq,
"],["impl<F: Eq> Eq for TrivialCircuit<F>"],["impl Eq for GrumpkinEngine"],["impl<E: Eq + Engine> Eq for RelaxedR1CSWitness<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq, NE: Eq> Eq for ZMPCS<E, NE>"],["impl<E: Eq + Engine> Eq for R1CSShape<E>
where\n E::Scalar: Eq,
"],["impl Eq for PCSError"],["impl<E: Eq + Engine> Eq for ZMEvaluation<E>
where\n E::Fr: Eq,
"],["impl<E: Eq + Engine> Eq for RelaxedR1CSInstance<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for ZMProverKey<E>"],["impl Eq for Secp256k1Engine"],["impl<E: Eq + Engine> Eq for R1CSWithArity<E>"],["impl Eq for PallasEngine"],["impl Eq for SuperNovaError"],["impl<E: Eq + Engine> Eq for UVKZGEvaluation<E>
where\n E::Fr: Eq,
"],["impl Eq for NovaError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/cmp/trait.PartialEq.js b/docs/trait.impl/core/cmp/trait.PartialEq.js index 9361f9ec8..c9d0627e3 100644 --- a/docs/trait.impl/core/cmp/trait.PartialEq.js +++ b/docs/trait.impl/core/cmp/trait.PartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl<E: PartialEq + Engine> PartialEq for R1CSWithArity<E>"],["impl PartialEq for Bn256EngineIPA"],["impl<E: PartialEq + Engine> PartialEq for UVKZGProof<E>
where\n E::G1Affine: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for RelaxedR1CSWitness<E>
where\n E::Scalar: PartialEq,
"],["impl<F: PartialEq> PartialEq for TrivialCircuit<F>"],["impl<E1> PartialEq for AuxParams<E1>"],["impl<E: PartialEq + Engine> PartialEq for CircuitDigests<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for RelaxedR1CSInstance<E>
where\n E::Scalar: PartialEq,
"],["impl PartialEq for PCSError"],["impl PartialEq for Bn256EngineKZG"],["impl<E: PartialEq, NE: PartialEq> PartialEq for ZMPCS<E, NE>"],["impl<E: PartialEq + Engine> PartialEq for ZMCommitment<E>
where\n E::G1Affine: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for ZMVerifierKey<E>
where\n E::G2Affine: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for R1CSShape<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for R1CSInstance<E>
where\n E::Scalar: PartialEq,
"],["impl<E> PartialEq for PublicParams<E>"],["impl<E: PartialEq> PartialEq for UVKZGPCS<E>"],["impl PartialEq for SuperNovaError"],["impl PartialEq for NovaError"],["impl<E: PartialEq + Engine> PartialEq for ZMProverKey<E>"],["impl PartialEq for Secq256k1Engine"],["impl<E: PartialEq + Engine> PartialEq for ZMProof<E>
where\n E::G1Affine: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for ZMEvaluation<E>
where\n E::Fr: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for UVKZGEvaluation<E>
where\n E::Fr: PartialEq,
"],["impl PartialEq for VestaEngine"],["impl PartialEq for PallasEngine"],["impl<E: PartialEq + Engine> PartialEq for R1CSWitness<E>
where\n E::Scalar: PartialEq,
"],["impl PartialEq for Bn256EngineZM"],["impl PartialEq for GrumpkinEngine"],["impl<Scalar: PartialEq> PartialEq for MultilinearPolynomial<Scalar>"],["impl PartialEq for Secp256k1Engine"],["impl<E: PartialEq + Engine> PartialEq for R1CSResult<E>
where\n E::Scalar: PartialEq,
"]] +"arecibo":[["impl<E: PartialEq + Engine> PartialEq for ZMProverKey<E>"],["impl<E: PartialEq> PartialEq for UVKZGPCS<E>"],["impl PartialEq for Bn256EngineKZG"],["impl<E: PartialEq + Engine> PartialEq for R1CSShape<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for R1CSWitness<E>
where\n E::Scalar: PartialEq,
"],["impl PartialEq for PCSError"],["impl PartialEq for Secp256k1Engine"],["impl<E: PartialEq + Engine> PartialEq for ZMEvaluation<E>
where\n E::Fr: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for UVKZGProof<E>
where\n E::G1Affine: PartialEq,
"],["impl PartialEq for VestaEngine"],["impl PartialEq for Secq256k1Engine"],["impl<E: PartialEq + Engine> PartialEq for R1CSWithArity<E>"],["impl<E: PartialEq + Engine> PartialEq for ZMCommitment<E>
where\n E::G1Affine: PartialEq,
"],["impl PartialEq for PallasEngine"],["impl<E: PartialEq + Engine> PartialEq for ZMProof<E>
where\n E::G1Affine: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for RelaxedR1CSInstance<E>
where\n E::Scalar: PartialEq,
"],["impl<E1> PartialEq for AuxParams<E1>"],["impl PartialEq for SuperNovaError"],["impl<E: PartialEq + Engine> PartialEq for R1CSResult<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for R1CSInstance<E>
where\n E::Scalar: PartialEq,
"],["impl PartialEq for NovaError"],["impl<F: PartialEq> PartialEq for TrivialCircuit<F>"],["impl<E: PartialEq + Engine> PartialEq for CircuitDigests<E>
where\n E::Scalar: PartialEq,
"],["impl PartialEq for Bn256EngineZM"],["impl PartialEq for Bn256EngineIPA"],["impl<E: PartialEq + Engine> PartialEq for RelaxedR1CSWitness<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for ZMVerifierKey<E>
where\n E::G2Affine: PartialEq,
"],["impl<E> PartialEq for PublicParams<E>"],["impl<Scalar: PartialEq> PartialEq for MultilinearPolynomial<Scalar>"],["impl<E: PartialEq, NE: PartialEq> PartialEq for ZMPCS<E, NE>"],["impl PartialEq for GrumpkinEngine"],["impl<E: PartialEq + Engine> PartialEq for UVKZGEvaluation<E>
where\n E::Fr: PartialEq,
"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/default/trait.Default.js b/docs/trait.impl/core/default/trait.Default.js index bf63b7033..5bcda765c 100644 --- a/docs/trait.impl/core/default/trait.Default.js +++ b/docs/trait.impl/core/default/trait.Default.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl<E: Default + Engine> Default for UVKZGEvaluation<E>
where\n E::Fr: Default,
"],["impl<E: Default + Engine> Default for ZMProof<E>
where\n E::G1Affine: Default,
"],["impl<E: Default> Default for UVKZGPCS<E>"],["impl<E: Default + Engine> Default for ZMCommitment<E>
where\n E::G1Affine: Default,
"],["impl<E: Default, NE: Default> Default for ZMPCS<E, NE>"],["impl<F: Default> Default for TrivialCircuit<F>"],["impl<E: Default + Engine> Default for ZMEvaluation<E>
where\n E::Fr: Default,
"],["impl<F: Default> Default for TrivialSecondaryCircuit<F>"],["impl<E: Default + Engine> Default for UVKZGProof<E>
where\n E::G1Affine: Default,
"],["impl<F: Default> Default for TrivialTestCircuit<F>"]] +"arecibo":[["impl<F: Default> Default for TrivialSecondaryCircuit<F>"],["impl<E: Default + Engine> Default for ZMCommitment<E>
where\n E::G1Affine: Default,
"],["impl<E: Default + Engine> Default for UVKZGProof<E>
where\n E::G1Affine: Default,
"],["impl<E: Default + Engine> Default for ZMProof<E>
where\n E::G1Affine: Default,
"],["impl<E: Default> Default for UVKZGPCS<E>"],["impl<F: Default> Default for TrivialTestCircuit<F>"],["impl<F: Default> Default for TrivialCircuit<F>"],["impl<E: Default + Engine> Default for ZMEvaluation<E>
where\n E::Fr: Default,
"],["impl<E: Default + Engine> Default for UVKZGEvaluation<E>
where\n E::Fr: Default,
"],["impl<E: Default, NE: Default> Default for ZMPCS<E, NE>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/error/trait.Error.js b/docs/trait.impl/core/error/trait.Error.js index 4cae6b68f..a6d04c2ce 100644 --- a/docs/trait.impl/core/error/trait.Error.js +++ b/docs/trait.impl/core/error/trait.Error.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl Error for NovaError"],["impl Error for PCSError"],["impl Error for SuperNovaError"]] +"arecibo":[["impl Error for PCSError"],["impl Error for NovaError"],["impl Error for SuperNovaError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/fmt/trait.Debug.js b/docs/trait.impl/core/fmt/trait.Debug.js index 03254e49e..f6192ab7c 100644 --- a/docs/trait.impl/core/fmt/trait.Debug.js +++ b/docs/trait.impl/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl<F: Debug> Debug for TrivialTestCircuit<F>"],["impl Debug for GrumpkinEngine"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for VerifierKey<E>"],["impl Debug for PallasEngine"],["impl<E: Debug + Engine> Debug for UVKZGEvaluation<E>
where\n E::Fr: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl Debug for VestaEngine"],["impl<E: Debug + Engine> Debug for EvaluationArgument<E>
where\n E::G1Affine: Debug,\n E::Fr: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSShapeSparkCommitment<E>"],["impl<E: Debug + Engine> Debug for R1CSResult<E>
where\n E::Scalar: Debug,
"],["impl Debug for PCSError"],["impl<E: Debug + Engine> Debug for R1CSWitness<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSShape<E>
where\n E::Scalar: Debug,
"],["impl<E1, S1, S2> Debug for CompressedSNARK<E1, S1, S2>"],["impl Debug for SuperNovaError"],["impl<E: Debug + Engine> Debug for InnerProductArgument<E>
where\n E::Scalar: Debug,
"],["impl<Scalar: Debug> Debug for MultilinearPolynomial<Scalar>"],["impl<F: Debug> Debug for TrivialCircuit<F>"],["impl<E1, S1, S2> Debug for ProverKey<E1, S1, S2>"],["impl Debug for Bn256EngineIPA"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSInstance<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug> Debug for UVKZGPCS<E>"],["impl<E1> Debug for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl<E1, S1, S2> Debug for VerifierKey<E1, S1, S2>"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl Debug for NovaError"],["impl<E> Debug for PublicParams<E>
where\n E: CurveCycleEquipped + Debug,\n E::Scalar: Debug,
"],["impl<E: Debug, NE: Debug> Debug for ZMPCS<E, NE>"],["impl<E: Debug + Engine> Debug for RelaxedR1CSInstance<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for CircuitDigests<E>
where\n E::Scalar: Debug,
"],["impl Debug for Secp256k1Engine"],["impl<E: Debug + Engine> Debug for ZMProof<E>
where\n E::G1Affine: Debug,
"],["impl<E: Debug + Engine> Debug for RelaxedR1CSWitness<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ZMVerifierKey<E>
where\n E::G2Affine: Debug,
"],["impl<E: Debug + Engine> Debug for ZMCommitment<E>
where\n E::G1Affine: Debug,
"],["impl<E: Debug + Engine> Debug for ZMEvaluation<E>
where\n E::Fr: Debug,
"],["impl<E1> Debug for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSWithArity<E>"],["impl<E: Debug + Engine> Debug for R1CSShapeSparkRepr<E>
where\n E::Scalar: Debug,
"],["impl<F: Debug> Debug for TrivialSecondaryCircuit<F>"],["impl<E1> Debug for PublicParams<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E1, S1, S2> Debug for CompressedSNARK<E1, S1, S2>"],["impl<E: Debug + Engine> Debug for UVKZGProof<E>
where\n E::G1Affine: Debug,
"],["impl<E: Debug + Engine> Debug for ResourceBuffer<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl Debug for Bn256EngineKZG"],["impl<E: Debug> Debug for EvaluationEngine<E>"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl Debug for Secq256k1Engine"],["impl<E: Debug, NE: Debug> Debug for EvaluationEngine<E, NE>"],["impl<E1, S1, S2> Debug for ProverKey<E1, S1, S2>"],["impl<E: Debug + Engine> Debug for ProverKey<E>"],["impl<E1> Debug for AuxParams<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl Debug for Bn256EngineZM"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl<E1, S1, S2> Debug for VerifierKey<E1, S1, S2>"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ZMProverKey<E>"]] +"arecibo":[["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl<E1> Debug for PublicParams<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl Debug for Bn256EngineZM"],["impl<Scalar: Debug> Debug for MultilinearPolynomial<Scalar>"],["impl<E1, S1, S2> Debug for CompressedSNARK<E1, S1, S2>"],["impl<E: Debug + Engine> Debug for ZMVerifierKey<E>
where\n E::G2Affine: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSWitness<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl Debug for VestaEngine"],["impl<E: Debug + Engine> Debug for R1CSWithArity<E>"],["impl<E1, S1, S2> Debug for VerifierKey<E1, S1, S2>"],["impl<E> Debug for PublicParams<E>
where\n E: CurveCycleEquipped + Debug,\n E::Scalar: Debug,
"],["impl Debug for GrumpkinEngine"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl<E: Debug + Engine> Debug for ZMCommitment<E>
where\n E::G1Affine: Debug,
"],["impl<E1, S1, S2> Debug for VerifierKey<E1, S1, S2>"],["impl Debug for Bn256EngineIPA"],["impl<E: Debug, NE: Debug> Debug for ZMPCS<E, NE>"],["impl<E: Debug + Engine> Debug for UVKZGProof<E>
where\n E::G1Affine: Debug,
"],["impl Debug for SuperNovaError"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl<E1> Debug for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for UVKZGEvaluation<E>
where\n E::Fr: Debug,
"],["impl<E1> Debug for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ProverKey<E>"],["impl<E: Debug + Engine> Debug for R1CSResult<E>
where\n E::Scalar: Debug,
"],["impl Debug for PCSError"],["impl<E: Debug + Engine> Debug for R1CSShape<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ZMEvaluation<E>
where\n E::Fr: Debug,
"],["impl<E: Debug + Engine> Debug for RelaxedR1CSInstance<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ZMProverKey<E>"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl<E: Debug> Debug for UVKZGPCS<E>"],["impl<E1, S1, S2> Debug for ProverKey<E1, S1, S2>"],["impl<E: Debug + Engine> Debug for R1CSInstance<E>
where\n E::Scalar: Debug,
"],["impl<F: Debug> Debug for TrivialCircuit<F>"],["impl Debug for Secq256k1Engine"],["impl<E1, S1, S2> Debug for ProverKey<E1, S1, S2>"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for VerifierKey<E>"],["impl<E: Debug> Debug for EvaluationEngine<E>"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSShapeSparkCommitment<E>"],["impl Debug for Bn256EngineKZG"],["impl<E: Debug + Engine> Debug for EvaluationArgument<E>
where\n E::G1Affine: Debug,\n E::Fr: Debug,
"],["impl<F: Debug> Debug for TrivialTestCircuit<F>"],["impl<E1, S1, S2> Debug for CompressedSNARK<E1, S1, S2>"],["impl<E: Debug, NE: Debug> Debug for EvaluationEngine<E, NE>"],["impl<E: Debug + Engine> Debug for CircuitDigests<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for RelaxedR1CSWitness<E>
where\n E::Scalar: Debug,
"],["impl Debug for Secp256k1Engine"],["impl<F: Debug> Debug for TrivialSecondaryCircuit<F>"],["impl<E: Debug + Engine> Debug for R1CSShapeSparkRepr<E>
where\n E::Scalar: Debug,
"],["impl<E1> Debug for AuxParams<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ZMProof<E>
where\n E::G1Affine: Debug,
"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl Debug for NovaError"],["impl<E: Debug + Engine> Debug for ResourceBuffer<E>
where\n E::Scalar: Debug,
"],["impl Debug for PallasEngine"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl<E: Debug + Engine> Debug for InnerProductArgument<E>
where\n E::Scalar: Debug,
"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/fmt/trait.Display.js b/docs/trait.impl/core/fmt/trait.Display.js index d6b8c6d64..f55f1abff 100644 --- a/docs/trait.impl/core/fmt/trait.Display.js +++ b/docs/trait.impl/core/fmt/trait.Display.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl Display for SuperNovaError"],["impl Display for PCSError"],["impl Display for NovaError"]] +"arecibo":[["impl Display for SuperNovaError"],["impl Display for NovaError"],["impl Display for PCSError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Copy.js b/docs/trait.impl/core/marker/trait.Copy.js index 9103b7243..7e3e14130 100644 --- a/docs/trait.impl/core/marker/trait.Copy.js +++ b/docs/trait.impl/core/marker/trait.Copy.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl Copy for PallasEngine"],["impl Copy for Secp256k1Engine"],["impl Copy for GrumpkinEngine"],["impl Copy for Bn256EngineZM"],["impl Copy for Bn256EngineIPA"],["impl Copy for Secq256k1Engine"],["impl Copy for Bn256EngineKZG"],["impl Copy for VestaEngine"]] +"arecibo":[["impl Copy for Bn256EngineKZG"],["impl Copy for Bn256EngineZM"],["impl Copy for GrumpkinEngine"],["impl Copy for Secp256k1Engine"],["impl Copy for VestaEngine"],["impl Copy for PallasEngine"],["impl Copy for Bn256EngineIPA"],["impl Copy for Secq256k1Engine"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.StructuralEq.js b/docs/trait.impl/core/marker/trait.StructuralEq.js index db39bb290..98bca863b 100644 --- a/docs/trait.impl/core/marker/trait.StructuralEq.js +++ b/docs/trait.impl/core/marker/trait.StructuralEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl<E: Engine> StructuralEq for ZMProverKey<E>"],["impl<E: Engine> StructuralEq for UVKZGEvaluation<E>"],["impl<E: Engine> StructuralEq for CircuitDigests<E>"],["impl StructuralEq for PallasEngine"],["impl<F> StructuralEq for TrivialCircuit<F>"],["impl StructuralEq for Secq256k1Engine"],["impl StructuralEq for GrumpkinEngine"],["impl StructuralEq for VestaEngine"],["impl<E: Engine> StructuralEq for R1CSWitness<E>"],["impl<E: Engine> StructuralEq for ZMProof<E>"],["impl<E: Engine> StructuralEq for R1CSInstance<E>"],["impl StructuralEq for Secp256k1Engine"],["impl<E: Engine> StructuralEq for R1CSShape<E>"],["impl<E: Engine> StructuralEq for R1CSWithArity<E>"],["impl<E: Engine> StructuralEq for ZMVerifierKey<E>"],["impl<E: Engine> StructuralEq for UVKZGProof<E>"],["impl<E> StructuralEq for UVKZGPCS<E>"],["impl<E: Engine> StructuralEq for ZMCommitment<E>"],["impl<E: Engine> StructuralEq for RelaxedR1CSInstance<E>"],["impl<E, NE> StructuralEq for ZMPCS<E, NE>"],["impl StructuralEq for NovaError"],["impl StructuralEq for SuperNovaError"],["impl StructuralEq for Bn256EngineIPA"],["impl<E: Engine> StructuralEq for R1CSResult<E>"],["impl StructuralEq for Bn256EngineKZG"],["impl<E: Engine> StructuralEq for RelaxedR1CSWitness<E>"],["impl<E: Engine> StructuralEq for ZMEvaluation<E>"],["impl StructuralEq for Bn256EngineZM"],["impl StructuralEq for PCSError"],["impl<Scalar> StructuralEq for MultilinearPolynomial<Scalar>"]] +"arecibo":[["impl<E: Engine> StructuralEq for UVKZGProof<E>"],["impl StructuralEq for NovaError"],["impl StructuralEq for GrumpkinEngine"],["impl<E: Engine> StructuralEq for ZMProof<E>"],["impl<E: Engine> StructuralEq for CircuitDigests<E>"],["impl<E> StructuralEq for UVKZGPCS<E>"],["impl StructuralEq for Bn256EngineZM"],["impl<E: Engine> StructuralEq for ZMProverKey<E>"],["impl StructuralEq for Secp256k1Engine"],["impl<E: Engine> StructuralEq for R1CSShape<E>"],["impl<E: Engine> StructuralEq for UVKZGEvaluation<E>"],["impl<F> StructuralEq for TrivialCircuit<F>"],["impl StructuralEq for Bn256EngineIPA"],["impl StructuralEq for Bn256EngineKZG"],["impl StructuralEq for VestaEngine"],["impl StructuralEq for PCSError"],["impl<E: Engine> StructuralEq for R1CSResult<E>"],["impl<E: Engine> StructuralEq for ZMEvaluation<E>"],["impl<Scalar> StructuralEq for MultilinearPolynomial<Scalar>"],["impl StructuralEq for SuperNovaError"],["impl<E: Engine> StructuralEq for ZMVerifierKey<E>"],["impl<E: Engine> StructuralEq for R1CSInstance<E>"],["impl StructuralEq for PallasEngine"],["impl<E: Engine> StructuralEq for R1CSWitness<E>"],["impl<E, NE> StructuralEq for ZMPCS<E, NE>"],["impl<E: Engine> StructuralEq for ZMCommitment<E>"],["impl<E: Engine> StructuralEq for RelaxedR1CSWitness<E>"],["impl<E: Engine> StructuralEq for RelaxedR1CSInstance<E>"],["impl StructuralEq for Secq256k1Engine"],["impl<E: Engine> StructuralEq for R1CSWithArity<E>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.StructuralPartialEq.js b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js index 9bf3316cb..9639ffca4 100644 --- a/docs/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl StructuralPartialEq for Secq256k1Engine"],["impl<E: Engine> StructuralPartialEq for R1CSShape<E>"],["impl<E> StructuralPartialEq for UVKZGPCS<E>"],["impl<E: Engine> StructuralPartialEq for ZMEvaluation<E>"],["impl StructuralPartialEq for NovaError"],["impl StructuralPartialEq for Bn256EngineIPA"],["impl StructuralPartialEq for GrumpkinEngine"],["impl<Scalar> StructuralPartialEq for MultilinearPolynomial<Scalar>"],["impl StructuralPartialEq for PCSError"],["impl StructuralPartialEq for SuperNovaError"],["impl<E: Engine> StructuralPartialEq for ZMVerifierKey<E>"],["impl<E: Engine> StructuralPartialEq for R1CSWithArity<E>"],["impl<E> StructuralPartialEq for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<E: Engine> StructuralPartialEq for R1CSInstance<E>"],["impl StructuralPartialEq for PallasEngine"],["impl<E: Engine> StructuralPartialEq for R1CSWitness<E>"],["impl<E: Engine> StructuralPartialEq for R1CSResult<E>"],["impl<E: Engine> StructuralPartialEq for RelaxedR1CSWitness<E>"],["impl<E: Engine> StructuralPartialEq for RelaxedR1CSInstance<E>"],["impl StructuralPartialEq for Bn256EngineZM"],["impl<E: Engine> StructuralPartialEq for UVKZGProof<E>"],["impl<E: Engine> StructuralPartialEq for ZMProverKey<E>"],["impl StructuralPartialEq for Bn256EngineKZG"],["impl StructuralPartialEq for VestaEngine"],["impl<F> StructuralPartialEq for TrivialCircuit<F>"],["impl StructuralPartialEq for Secp256k1Engine"],["impl<E: Engine> StructuralPartialEq for UVKZGEvaluation<E>"],["impl<E: Engine> StructuralPartialEq for ZMProof<E>"],["impl<E1> StructuralPartialEq for AuxParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E, NE> StructuralPartialEq for ZMPCS<E, NE>"],["impl<E: Engine> StructuralPartialEq for ZMCommitment<E>"],["impl<E: Engine> StructuralPartialEq for CircuitDigests<E>"]] +"arecibo":[["impl StructuralPartialEq for SuperNovaError"],["impl<E: Engine> StructuralPartialEq for R1CSInstance<E>"],["impl StructuralPartialEq for Secq256k1Engine"],["impl StructuralPartialEq for VestaEngine"],["impl StructuralPartialEq for PCSError"],["impl<E: Engine> StructuralPartialEq for R1CSWithArity<E>"],["impl StructuralPartialEq for GrumpkinEngine"],["impl<E: Engine> StructuralPartialEq for UVKZGProof<E>"],["impl<E: Engine> StructuralPartialEq for ZMCommitment<E>"],["impl<E: Engine> StructuralPartialEq for RelaxedR1CSInstance<E>"],["impl<E: Engine> StructuralPartialEq for RelaxedR1CSWitness<E>"],["impl StructuralPartialEq for PallasEngine"],["impl<E: Engine> StructuralPartialEq for ZMProverKey<E>"],["impl<E1> StructuralPartialEq for AuxParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl StructuralPartialEq for Bn256EngineKZG"],["impl<E> StructuralPartialEq for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl StructuralPartialEq for NovaError"],["impl<E: Engine> StructuralPartialEq for ZMEvaluation<E>"],["impl<E: Engine> StructuralPartialEq for R1CSWitness<E>"],["impl<E, NE> StructuralPartialEq for ZMPCS<E, NE>"],["impl StructuralPartialEq for Secp256k1Engine"],["impl StructuralPartialEq for Bn256EngineIPA"],["impl<E: Engine> StructuralPartialEq for R1CSShape<E>"],["impl<E> StructuralPartialEq for UVKZGPCS<E>"],["impl StructuralPartialEq for Bn256EngineZM"],["impl<E: Engine> StructuralPartialEq for ZMProof<E>"],["impl<E: Engine> StructuralPartialEq for UVKZGEvaluation<E>"],["impl<E: Engine> StructuralPartialEq for ZMVerifierKey<E>"],["impl<E: Engine> StructuralPartialEq for CircuitDigests<E>"],["impl<F> StructuralPartialEq for TrivialCircuit<F>"],["impl<Scalar> StructuralPartialEq for MultilinearPolynomial<Scalar>"],["impl<E: Engine> StructuralPartialEq for R1CSResult<E>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/ops/index/trait.Index.js b/docs/trait.impl/core/ops/index/trait.Index.js index 9a91f7d5d..428ef3f32 100644 --- a/docs/trait.impl/core/ops/index/trait.Index.js +++ b/docs/trait.impl/core/ops/index/trait.Index.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl<Scalar: PrimeField> Index<usize> for MultilinearPolynomial<Scalar>"],["impl<E1> Index<usize> for PublicParams<E1>
where\n E1: CurveCycleEquipped,
"]] +"arecibo":[["impl<E1> Index<usize> for PublicParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<Scalar: PrimeField> Index<usize> for MultilinearPolynomial<Scalar>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/serde/de/trait.Deserialize.js b/docs/trait.impl/serde/de/trait.Deserialize.js index 7db23c14b..4a77baac6 100644 --- a/docs/trait.impl/serde/de/trait.Deserialize.js +++ b/docs/trait.impl/serde/de/trait.Deserialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSWitness<E>"],["impl<'de, Scalar> Deserialize<'de> for MultilinearPolynomial<Scalar>
where\n Scalar: Deserialize<'de>,
"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShape<E>"],["impl<'de, E, NE> Deserialize<'de> for EvaluationEngine<E, NE>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for ZMProof<E>
where\n E::G1Affine: Deserialize<'de>,
"],["impl<'de, E1, S1, S2> Deserialize<'de> for CompressedSNARK<E1, S1, S2>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSWithArity<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSResult<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for EvaluationArgument<E>
where\n E::G1Affine: Deserialize<'de>,\n E::Fr: Deserialize<'de>,
"],["impl<'de, E: Engine> Deserialize<'de> for RelaxedR1CSInstance<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSInstance<E>"],["impl<'de, E: Engine> Deserialize<'de> for ResourceBuffer<E>"],["impl<'de, E: Engine> Deserialize<'de> for InnerProductArgument<E>"],["impl<'de, E: Engine> Deserialize<'de> for RelaxedR1CSWitness<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>"],["impl<'de, E1> Deserialize<'de> for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShapeSparkCommitment<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShapeSparkRepr<E>"],["impl<'de, E1> Deserialize<'de> for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<'de, E1, S1, S2> Deserialize<'de> for CompressedSNARK<E1, S1, S2>"],["impl<'de, E> Deserialize<'de> for PublicParams<E>
where\n E: CurveCycleEquipped,
"]] +"arecibo":[["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSResult<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>"],["impl<'de, E> Deserialize<'de> for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<'de, E: Engine> Deserialize<'de> for InnerProductArgument<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSInstance<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>"],["impl<'de, E1, S1, S2> Deserialize<'de> for CompressedSNARK<E1, S1, S2>"],["impl<'de, E: Engine> Deserialize<'de> for RelaxedR1CSInstance<E>"],["impl<'de, Scalar> Deserialize<'de> for MultilinearPolynomial<Scalar>
where\n Scalar: Deserialize<'de>,
"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShapeSparkRepr<E>"],["impl<'de, E1, S1, S2> Deserialize<'de> for CompressedSNARK<E1, S1, S2>"],["impl<'de, E: Engine> Deserialize<'de> for RelaxedR1CSWitness<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShapeSparkCommitment<E>"],["impl<'de, E: Engine> Deserialize<'de> for EvaluationArgument<E>
where\n E::G1Affine: Deserialize<'de>,\n E::Fr: Deserialize<'de>,
"],["impl<'de, E1> Deserialize<'de> for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<'de, E: Engine> Deserialize<'de> for R1CSWitness<E>"],["impl<'de, E: Engine> Deserialize<'de> for ResourceBuffer<E>"],["impl<'de, E1> Deserialize<'de> for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<'de, E, NE> Deserialize<'de> for EvaluationEngine<E, NE>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSWithArity<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShape<E>"],["impl<'de, E: Engine> Deserialize<'de> for ZMProof<E>
where\n E::G1Affine: Deserialize<'de>,
"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/serde/ser/trait.Serialize.js b/docs/trait.impl/serde/ser/trait.Serialize.js index 4ea9ab504..9ded092d9 100644 --- a/docs/trait.impl/serde/ser/trait.Serialize.js +++ b/docs/trait.impl/serde/ser/trait.Serialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl<E1> Serialize for AuxParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<Scalar> Serialize for MultilinearPolynomial<Scalar>
where\n Scalar: Serialize,
"],["impl<E: Engine> Serialize for InnerProductArgument<E>"],["impl<E: Engine> Serialize for R1CSShapeSparkRepr<E>"],["impl<E: Engine> Serialize for ZMVerifierKey<E>
where\n E::G1Affine: Serialize,\n E::G2Affine: Serialize,
"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E: Engine> Serialize for EvaluationArgument<E>
where\n E::G1Affine: Serialize,\n E::Fr: Serialize,
"],["impl<E: Engine> Serialize for VerifierKey<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E: Engine> Serialize for RelaxedR1CSInstance<E>"],["impl<E1> Serialize for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>
where\n EE::VerifierKey: Serialize,
"],["impl<E> Serialize for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<E1, S1, S2> Serialize for CompressedSNARK<E1, S1, S2>"],["impl<E: Engine> Serialize for RelaxedR1CSWitness<E>"],["impl<E1, S1, S2> Serialize for CompressedSNARK<E1, S1, S2>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for RelaxedR1CSSNARK<E, EE>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for RelaxedR1CSSNARK<E, EE>"],["impl<E1> Serialize for PublicParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E, NE> Serialize for EvaluationEngine<E, NE>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<E: Engine> Serialize for ResourceBuffer<E>"],["impl<E1, S1, S2> Serialize for VerifierKey<E1, S1, S2>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E1> Serialize for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for R1CSResult<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<E: Engine> Serialize for R1CSShapeSparkCommitment<E>"],["impl<E: Engine> Serialize for ZMProof<E>
where\n E::G1Affine: Serialize,
"],["impl<E: Engine> Serialize for R1CSWitness<E>"],["impl<E: Engine> Serialize for R1CSShape<E>"],["impl<E: Engine> Serialize for R1CSWithArity<E>"],["impl<E: Engine> Serialize for R1CSInstance<E>"],["impl<E: Engine> Serialize for CircuitDigests<E>"]] +"arecibo":[["impl<E: Engine> Serialize for InnerProductArgument<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<Scalar> Serialize for MultilinearPolynomial<Scalar>
where\n Scalar: Serialize,
"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>
where\n EE::VerifierKey: Serialize,
"],["impl<E: Engine> Serialize for R1CSWitness<E>"],["impl<E: Engine> Serialize for ZMVerifierKey<E>
where\n E::G1Affine: Serialize,\n E::G2Affine: Serialize,
"],["impl<E: Engine> Serialize for R1CSResult<E>"],["impl<E1> Serialize for PublicParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for ResourceBuffer<E>"],["impl<E, NE> Serialize for EvaluationEngine<E, NE>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E1> Serialize for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for R1CSShape<E>"],["impl<E: Engine> Serialize for RelaxedR1CSWitness<E>"],["impl<E: Engine> Serialize for R1CSWithArity<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E1> Serialize for AuxParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E> Serialize for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for RelaxedR1CSSNARK<E, EE>"],["impl<E: Engine> Serialize for EvaluationArgument<E>
where\n E::G1Affine: Serialize,\n E::Fr: Serialize,
"],["impl<E: Engine> Serialize for VerifierKey<E>"],["impl<E: Engine> Serialize for R1CSShapeSparkCommitment<E>"],["impl<E1> Serialize for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for CircuitDigests<E>"],["impl<E: Engine> Serialize for R1CSInstance<E>"],["impl<E1, S1, S2> Serialize for CompressedSNARK<E1, S1, S2>"],["impl<E1, S1, S2> Serialize for CompressedSNARK<E1, S1, S2>"],["impl<E: Engine> Serialize for RelaxedR1CSInstance<E>"],["impl<E1, S1, S2> Serialize for VerifierKey<E1, S1, S2>"],["impl<E: Engine> Serialize for ZMProof<E>
where\n E::G1Affine: Serialize,
"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for RelaxedR1CSSNARK<E, EE>"],["impl<E: Engine> Serialize for R1CSShapeSparkRepr<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file