diff --git a/docs/arecibo/errors/enum.NovaError.html b/docs/arecibo/errors/enum.NovaError.html index fefb3600a..148cac1fb 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/struct.BatchedRelaxedR1CSSNARK.html b/docs/arecibo/spartan/batched/struct.BatchedRelaxedR1CSSNARK.html index 0ea04aafc..f1a911336 100644 --- a/docs/arecibo/spartan/batched/struct.BatchedRelaxedR1CSSNARK.html +++ b/docs/arecibo/spartan/batched/struct.BatchedRelaxedR1CSSNARK.html @@ -2,20 +2,20 @@
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( +) -> Result<(Self::ProverKey, Self::VerifierKey), NovaError>

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

fn prove( ck: &<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey, pk: &Self::ProverKey, 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>] -) -> Result<(), NovaError>

Verifies a SNARK for a batch of relaxed R1CS
source§

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

This associated function (not a method) provides a hint that offers +) -> Result<(), NovaError>

Verifies a SNARK for a batch of relaxed R1CS
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§

impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for BatchedRelaxedR1CSSNARK<E, EE>
where @@ -23,19 +23,19 @@ EE::EvaluationArgument: Clone,

source§

fn clone(&self) -> BatchedRelaxedR1CSSNARK<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 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/polys/multilinear/struct.MultilinearPolynomial.html b/docs/arecibo/spartan/polys/multilinear/struct.MultilinearPolynomial.html index 2112d9dd2..771fb96a4 100644 --- a/docs/arecibo/spartan/polys/multilinear/struct.MultilinearPolynomial.html +++ b/docs/arecibo/spartan/polys/multilinear/struct.MultilinearPolynomial.html @@ -28,9 +28,9 @@

Panics
source

pub fn evaluate_with_chis(Z: &[Scalar], chis: &[Scalar]) -> Scalar

Evaluates the polynomial with the given evaluations and chi coefficients

Trait Implementations§

source§

impl<Scalar: PrimeField> Add for MultilinearPolynomial<Scalar>

Adds another multilinear polynomial to self. Assumes the two polynomials have the same number of variables.

-
§

type Output = Result<MultilinearPolynomial<Scalar>, &'static str>

The resulting type after applying the + operator.
source§

fn add(self, other: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<Scalar: Clone> Clone for MultilinearPolynomial<Scalar>

source§

fn clone(&self) -> MultilinearPolynomial<Scalar>

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<Scalar: Debug> Debug for MultilinearPolynomial<Scalar>

source§

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

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

impl<'de, Scalar> Deserialize<'de> for MultilinearPolynomial<Scalar>
where +
§

type Output = Result<MultilinearPolynomial<Scalar>, &'static str>

The resulting type after applying the + operator.
source§

fn add(self, other: Self) -> Self::Output

Performs the + operation. Read more

source§

impl<Scalar: Clone> Clone for MultilinearPolynomial<Scalar>

source§

fn clone(&self) -> MultilinearPolynomial<Scalar>

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<Scalar: Debug> Debug for MultilinearPolynomial<Scalar>

source§

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

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

impl<'de, Scalar> Deserialize<'de> for MultilinearPolynomial<Scalar>
where Scalar: Deserialize<'de>,

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<Scalar: PrimeField> Index<usize> for MultilinearPolynomial<Scalar>

§

type Output = Scalar

The returned type after indexing.
source§

fn index(&self, _index: usize) -> &Scalar

Performs the indexing (container[index]) operation. Read more
source§

impl<Scalar: PartialEq> PartialEq for MultilinearPolynomial<Scalar>

source§

fn eq(&self, other: &MultilinearPolynomial<Scalar>) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl<Scalar: PrimeField> Index<usize> for MultilinearPolynomial<Scalar>

§

type Output = Scalar

The returned type after indexing.
source§

fn index(&self, _index: usize) -> &Scalar

Performs the indexing (container[index]) operation. Read more
source§

impl<Scalar: PartialEq> PartialEq for MultilinearPolynomial<Scalar>

source§

fn eq(&self, other: &MultilinearPolynomial<Scalar>) -> 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<Scalar> Serialize for MultilinearPolynomial<Scalar>
where Scalar: Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where diff --git a/docs/arecibo/supernova/snark/index.html b/docs/arecibo/supernova/snark/index.html index 8c0412d87..3f653e3d6 100644 --- a/docs/arecibo/supernova/snark/index.html +++ b/docs/arecibo/supernova/snark/index.html @@ -1,3 +1,3 @@ arecibo::supernova::snark - Rust -

Module arecibo::supernova::snark

source ·
Expand description

This module defines a final compressing SNARK for supernova proofs

+

Module arecibo::supernova::snark

source ·
Expand description

This module defines a final compressing SNARK for supernova proofs

Structs

  • 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
\ No newline at end of file diff --git a/docs/arecibo/traits/trait.Group.html b/docs/arecibo/traits/trait.Group.html index 825e4130d..161ba8646 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 = 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 = Fp

§

type Scalar = Fq

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)

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 = Fp

§

type Scalar = Fq

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 = Fq

§

type Scalar = Fp

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 = Fr

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 = 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)

Implementors§

\ No newline at end of file diff --git a/docs/arecibo/traits/trait.PrimeFieldExt.html b/docs/arecibo/traits/trait.PrimeFieldExt.html index 0769ff5c8..92faf4eb3 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 1453d4d8c..002d2bdb8 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 35798ddb1..250be2e0c 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":"FFFFFFFNNNNNNNNNNNNNNHNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCQNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNCCNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQSPPPPPPPPPPPPPPPPPPGGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFIFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCHCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFRRFKFFKFFMNNNNNNNNNNNNNNHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNMNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGPNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKRRRRRRKIKRKRKRRKIIKRRRRKKMMMMCCMCMMMMMCMMMMKFMNNNNNNNNNNNNNNMNNNNNNRKRKRKKMMMMMMRKRRMMMKKRRKRRNNHMMMMMMM","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","clone_into","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","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","clone","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","prove","serialize","serialize","setup","setup","to_owned","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","clone","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","prove","serialize","serialize","setup","setup","to_owned","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","num_constraints_and_variables","num_constraints_and_variables_secondary","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","clone","clone_into","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","to_owned","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"],[163,"arecibo::constants"],[164,"arecibo::errors"],[225,"arecibo::provider"],[372,"arecibo::provider::hyperkzg"],[413,"arecibo::provider::ipa_pc"],[481,"arecibo::provider::non_hiding_zeromorph"],[662,"arecibo::r1cs"],[816,"arecibo::spartan"],[822,"arecibo::spartan::batched"],[878,"arecibo::spartan::batched_ppsnark"],[935,"arecibo::spartan::polys"],[936,"arecibo::spartan::polys::multilinear"],[968,"arecibo::spartan::ppsnark"],[1067,"arecibo::spartan::snark"],[1125,"arecibo::supernova"],[1267,"arecibo::supernova::error"],[1289,"arecibo::supernova::snark"],[1339,"arecibo::traits"],[1383,"arecibo::traits::circuit"],[1407,"arecibo::traits::commitment"],[1420,"arecibo::traits::evaluation"],[1427,"arecibo::traits::snark"],[1444,"core::clone"],[1445,"core::result"],[1446,"serde::de"],[1447,"std::io::error"],[1448,"std::io"],[1449,"core::cmp"],[1450,"core::option"],[1451,"core::fmt"],[1452,"core::fmt"],[1453,"core::any"],[1454,"alloc::vec"],[1455,"bellpepper_core::constraint_system"],[1456,"core::error"],[1457,"alloc::string"],[1458,"pairing"],[1459,"pairing"],[1460,"core::borrow"],[1461,"core::default"],[1462,"rand_core"],[1463,"rand_core"],[1464,"core::ops::function"],[1465,"alloc::boxed"],[1466,"ff"],[1467,"bellpepper_core::constraint_system"],[1468,"core::marker"],[1469,"num_bigint::bigint"],[1470,"bellpepper_core::gadgets::boolean"],[1471,"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?","Returns the number of constraints and variables of inner …","Returns the number of constraints and variables of the …","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,13,2,5,7,8,9,12,13,0,2,5,7,8,9,12,13,2,5,7,8,9,12,13,0,2,5,7,8,9,12,13,2,5,7,8,9,12,13,2,5,7,8,13,2,5,2,5,7,8,9,12,13,2,2,5,0,2,2,2,5,7,8,9,12,13,2,5,7,8,9,12,13,0,0,2,5,7,8,9,12,13,2,5,7,8,9,12,13,2,8,5,8,5,8,13,8,0,0,2,5,7,8,12,13,5,13,0,0,2,5,7,8,9,12,13,0,2,5,7,8,9,12,13,2,5,7,8,9,12,13,2,5,7,8,9,12,13,8,13,2,5,7,8,9,12,13,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,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,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,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,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,102,102,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,112,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,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]],[[[13,[-1,-2,-3]]],[[13,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],0,[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[2,[-2]]]]],17,4],[-1,[[16,[[5,[-2]]]]],17,6],[-1,[[16,[[7,[-2]]]]],17,4],[-1,[[16,[[8,[-2]]]]],17,6],[-1,[[16,[[13,[-2,-3,-4]]]]],17,6,[[10,[-2]]],[[10,[[11,[-2]]]]]],[[[2,[-1]]],[],4],[[[5,[-1]]],[],6],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[[2,[-1]],-2],[[18,[14]]],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]]],15,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]],[[[13,[-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,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],15],[[2,[-1]]],4],[[[5,[-1]],-2,-3,23,23],[[16,[[8,[-1]],29]]],6,1,1],[[[5,[-1]]],[[14,[15,15]]],6],[[[8,[-1]]],15,6],[[[5,[-1]]],[[14,[15,15]]],6],[[[8,[-1]]],[[14,[23,23]]],6],[[[5,[-1]],[9,[-1,-2,-3]],[8,[-1]]],[[16,[[13,[-1,-2,-3]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[[[8,[-1]],[5,[-1]],-2,-3],[[16,[14,29]]],6,1,1],0,0,[[[2,[-1]],-2],16,4,30],[[[5,[-1]],-2],16,6,30],[[[7,[-1]],-2],16,4,30],[[[8,[-1]],-2],16,6,30],[[[12,[-1,-2,-3]],-4],16,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[[13,[-1,-2,-3]],-4],16,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[-1,-2,[31,[-3]],[31,[[11,[-3]]]]],[[16,[[5,[-3]],29]]],1,1,6],[[[5,[-1]]],[[16,[[14,[[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,[],[]],[-1,-2,[],[]],0,[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[8,[-1]],[5,[-1]],15,23,23],[[16,[[14,[33,33]],29]]],6],[[[13,[-1,-2,-3]],[12,[-1,-2,-3]],15,23,23],[[16,[[14,[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,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,14],[15,14],[[29,29],20],[[34,34],20],[[29,25],26],[[29,25],26],[[34,25],26],[[34,25],26],[34,29],[-1,-1,[]],[35,29],[-1,-1,[]],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[29,[[24,[36]]]],[-1,37,[]],[-1,37,[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[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,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[-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,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[46,[-2]]]]],17,47],[-1,[[16,[[48,[-2,-3]]]]],17,[],[]],[15,14],[15,14],[[[46,[-1]],25],26,[27,47]],[[[48,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[[[0,[-1]],-2,[0,[-3]],23,23],[[16,[-4,29]]],49,[],[[4,[],[[50,[]],[51,[]],[52,[[0,[-1]]]]]]],[]],[[[46,[-1]],-2],16,47,30],[[[48,[-1,-2]],-3],16,[],[],30],[[[53,[[0,[-1]]]]],[[14,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[[-1,[0,[-3]],23,-4],[[16,[14,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],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[55,[-2]]]]],17,4],[15,14],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,23,23],[[16,[-2,29]]],[],[]],[[[57,[-1]],-2],16,4,30],[[[55,[-1]],-2],16,4,30],[53,[[14,[-1,-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[16,[14,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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],0,[[-2,67],[[16,[[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],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[65,[-2]]]]],17,47],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[[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,[]],[-1,-1,[]],[[[58,[-1]]],[[64,[-1]]],47],[-1,-1,[]],[-1,-1,[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,67],[[16,[[14,[[59,[-1]],[58,[-1]]]],29]]],49,[[68,[[0,[-1]]]]]],0,[[[0,[-1]],-2,23,23],[[16,[-3,29]]],49,[],[]],[[[62,[-1]],-2],16,47,30],[[[65,[-1]],-2],16,47,30],[[[53,[[0,[-1]]]]],[[14,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[16,[14,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]]],14,4],[[[71,[-1]]],14,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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[[73,[-1]]],[],4],[[[74,[-1]]],14,4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]]],[[16,[[14,[33]],29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]],33,[72,[-1]],[72,[-1]]],[[16,[29]]],4],[[[28,[-1]],[31,[-1]]],[],4],[[[28,[-1]],[31,[-1]]],15,4],[15,[[72,[-1]]],4],[[[28,[-1]]],[[74,[-1]]],4],[[[28,[-1]]],[[71,[-1]]],4],[15,33],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[28,[-2]]]]],17,4],[-1,[[16,[[72,[-2]]]]],17,4],[-1,[[16,[[73,[-2]]]]],17,4],[-1,[[16,[[70,[-2]]]]],17,4],[-1,[[16,[[74,[-2]]]]],17,4],[-1,[[16,[[71,[-2]]]]],17,4],[[[28,[-1]]],[],4],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[[28,[-1]],-2],[[18,[14]]],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]]],15,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],[[16,[[74,[-1]],29]]],4],[[[71,[-1]],[70,[-1]]],[[71,[-1]]],4],[[[74,[-1]],[73,[-1]],23],[[16,[14,29]]],4],[[[71,[-1]],[70,[-1]]],14,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],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],[70,[-1]],[73,[-1]]],[[16,[14,29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]]],[[16,[14,29]]],4],0,[[[28,[-1]],33],[[16,[[73,[-1]],29]]],4],[[[28,[-1]],33],[[16,[[70,[-1]],29]]],4],[[[28,[-1]]],[[28,[-1]]],4],[[[74,[-1]],[28,[-1]]],[[74,[-1]]],4],[[15,15,15,15,-1],[[28,[-2]]],[75,76],4],[[[28,[-1]],-2],[[14,[[74,[-1]],[71,[-1]]]]],4,[75,76]],[[[28,[-1]],-2],16,4,30],[[[72,[-1]],-2],16,4,30],[[[73,[-1]],-2],16,4,30],[[[70,[-1]],-2],16,4,30],[[[74,[-1]],-2],16,4,30],[[[71,[-1]],-2],16,4,30],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[71,[-1]]],[[33,[22]]],4],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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,15],[[33,[-1]]],77],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[[80,[-1,-2]]],[[80,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[80,[-2,-3]]]]],17,4,[[81,[-2]]]],[[[82,[-1,-2]]],[],4,[[81,[-1]]]],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[16,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[80,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[[82,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[53,[33,[[28,[-1]]]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[80,[-1,-2]],-3,[71,[-1]]],[[16,[14,29]]],4,[[81,[-1]]],[]],[[[80,[-1,-2]],-3,[23,[[71,[-1]]]]],[[16,[14,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]]]],[[[84,[-1,-2]]],[[84,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[84,[-2,-3]]]]],17,4,[[81,[-2]]]],[[[85,[-1,-2]]],[],4,[[81,[-1]]]],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[16,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[85,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[[84,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[53,[33,[[28,[-1]]]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[84,[-1,-2]],-3,[71,[-1]]],[[16,[14,29]]],4,[[81,[-1]]],[]],[[[84,[-1,-2]],-3,[23,[[71,[-1]]]]],[[16,[14,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[87,[-1]],[87,[-1]]],-2,88,[]],[[[87,[-1]],-1],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[87,[-1]]],[[87,[-1]]],3],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[87,[-2]]]]],17,89],[15,14],[[[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]]],15,88],[[[87,[-1]],15],-1,88],[[],15],[-1,-2,[],[]],[[[87,[-1]]],20,88],[[[87,[-1]]],15,88],[[[33,[-1]]],[[87,[-1]]],88],[[15,-1],[[87,[-2]]],[75,76],88],[[[87,[-1]],-2],16,90,30],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[91,[-2]]]]],17,4],[-1,[[16,[[92,[-2]]]]],17,4],[-1,[[16,[[95,[-2,-3]]]]],17,4,[[81,[-2]]]],[[[94,[-1,-2]]],[],4,[[81,[-1]]]],[15,14],[15,14],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[91,[-1]]],4],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[95,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[91,[-1]],-2],16,4,30],[[[92,[-1]],-2],16,4,30],[[[94,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[[95,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[92,[-1]]],[[33,[22]]],4],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[95,[-1,-2]],-3,[71,[-1]]],[[16,[14,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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[98,[-2,-3]]]]],17,4,[[81,[-2]]]],[[[97,[-1,-2]]],[],4,[[81,[-1]]]],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[98,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[97,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[[98,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[98,[-1,-2]],-3,[71,[-1]]],[[16,[14,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[99,15],[[[100,[-1]]],15,88],[[[101,[-1]]],15,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,15],[],99],[99,15],[[[100,[-1]]],15,88],[[[101,[-1]]],15,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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[],[[100,[-1]]],69],[[],[[101,[-1]]],69],[15,-1,[]],[15,-1,[]],[[[103,[-1]]],-2,4,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[105,[-2]]]]],17,6],[[[103,[-1]]],[],4],[[[102,[-1]]],[],6],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[[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]],15],-2,6,[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[108,[],[[106,[-1]],[107,[-2]]]]],15,99,99],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]]],[[14,[[33,[[2,[-1]]]],[104,[-1]]]]],6],[33,[[103,[-1]]],4],[[[102,[-1]],-2,23,23],[[16,[[105,[-1]],109]]],6,[[108,[-1]]]],[[[108,[],[[106,[-1]],[107,[-2]]]]],15,99,99],[[[102,[-1]],15],[[14,[15,15]]],6],[[[102,[-1]]],[[14,[15,15]]],6],[[[108,[],[[106,[-1]],[107,[-2]]]],15],-1,99,99],[[[105,[-1]],[102,[-1]],-2,-3],[[16,[14,109]]],6,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]]],-2,99,99],[[[103,[-1]],-2],16,4,30],[[[102,[-1]],-2],16,6,30],[[[104,[-1]],-2],16,6,30],[[[105,[-1]],-2],16,6,30],[[-2,[31,[-1]],[31,[[11,[-1]]]]],[[102,[-1]]],6,[[108,[-1]]]],0,[[99,-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[16,[[14,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[100,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[16,[[14,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[101,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[16,[[14,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[105,[-1]],[102,[-1]],23,23],[[16,[[14,[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,[],[]],[15,-1,[]],[15,-1,[]],[15,14],[[109,109],20],[[109,25],26],[[109,25],26],[29,109],[-1,-1,[]],[[],15],[-1,-2,[],[]],[109,[[24,[36]]]],[-1,37,[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[112,[-1,-2,-3]]],[[112,[-1,-2,-3]]],[6,3],[[113,[-1]],3],[[10,[[11,[-1]]]],3]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[112,[-2,-3,-4]]]]],17,6,[[113,[-2]]],[[10,[[11,[-2]]]]]],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]],[114,[-1,-2,-3]],[105,[-1]]],[[16,[[112,[-1,-2,-3]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[[[112,[-1,-2,-3]],-4],16,6,[[113,[-1]]],[[10,[[11,[-1]]]]],30],[[[102,[-1]]],[[16,[[14,[[114,[-1,-2,-3]],[115,[-1,-2,-3]]]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[112,[-1,-2,-3]],[102,[-1]],[115,[-1,-2,-3]],23,23],[[16,[[14,[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],14,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122]],[[[119,[],[[123,[-1]],[117,[-4]]]],[110,[-2]]],14,[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122]],[[124,[23,[22]],-1],14,125],[126,14],0,0,[[124,[23,[22]]],14],0,[[[23,[22]]],127],[[],[[14,[-1,-1,128,128]]],[]],[[-1,15],[[118,[],[[116,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[119,[-3],[[117,[-1]]]]],88],[[-1,15],[[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]]]],15],-4,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122],[]],[[[119,[],[[123,[-1]],[117,[-4]]]],-5,15],[[16,[[33,[129]],35]]],[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122],[[111,[-2]]]],[[124,[23,[22]]],[[16,[29]]]],[125,[[33,[22]]]],0,0,[1,15],[[[130,[-1]]],15,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[130,[-1]]],[[130,[-1]]],3],[[-1,-2],14,[],[]],[[],[[130,[-1]]],69],[15,-1,[]],[15,-1,[]],[15,14],[[[130,[-1]],[130,[-1]]],20,21],[[[130,[-1]],25],26,27],[-1,-1,[]],[[],15],[-1,-2,[],[]],[[1,-2,[23,[[110,[-1]]]]],[[16,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[[[130,[-1]],-2,[23,[[110,[-1]]]]],[[16,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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,[[16,[[132,[],[[131,[-1]]]],29]]],[3,27,21,133,120,121,125,90,89]],[134,15],[[[23,[22]],15],-1,[]],[[[132,[],[[131,[-1]]]]],[[14,[20]]],[3,27,21,133,120,121,125,90,89]],0,0,0,0,[[-1,23,23],[[16,[-2,29]]],[],[]],[53,[[14,[-1,-2]]],[],[]],[[-1,23,-2],[[16,[14,29]]],[],[]],0,0,0,0,0,0,0,[[],[[79,[78]]]],[[],[[79,[78]]]],[[],[[79,[78]]]],[135],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[10,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,90]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[16,[[113,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,[135,[-2]]]],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[[[10,[],[[136,[-1]],[137,[-2]]]],-2,[71,[-3]]],[[16,[14,29]]],[120,121],[120,121,90],4],[[[113,[],[[136,[-1]],[137,[-2]]]],-2,[23,[[71,[-3]]]]],[[16,[14,29]]],[120,121],[120,121,[135,[-3]]],4]],"c":[],"p":[[10,"StepCircuit",1383],[5,"R1CSWithArity",0],[10,"Clone",1444],[10,"Engine",1339],[5,"PublicParams",0],[10,"CurveCycleEquipped",1339],[5,"ResourceBuffer",0],[5,"RecursiveSNARK",0],[5,"ProverKey",0],[10,"RelaxedR1CSSNARKTrait",1427],[8,"Dual",1339],[5,"VerifierKey",0],[5,"CompressedSNARK",0],[1,"tuple"],[1,"usize"],[6,"Result",1445],[10,"Deserializer",1446],[8,"Result",1447],[10,"Write",1448],[1,"bool"],[10,"PartialEq",1449],[1,"u8"],[1,"slice"],[6,"Option",1450],[5,"Formatter",1451],[8,"Result",1451],[10,"Debug",1451],[5,"R1CSShape",662],[6,"NovaError",164],[10,"Serializer",1452],[8,"CommitmentKeyHint",662],[5,"TypeId",1453],[5,"Vec",1454],[6,"PCSError",164],[6,"SynthesisError",1455],[10,"Error",1456],[5,"String",1457],[5,"GrumpkinEngine",225],[5,"Bn256EngineIPA",225],[5,"Bn256EngineZM",225],[5,"Bn256EngineKZG",225],[5,"Secp256k1Engine",225],[5,"Secq256k1Engine",225],[5,"PallasEngine",225],[5,"VestaEngine",225],[5,"EvaluationArgument",372],[10,"Engine",1458],[5,"EvaluationEngine",372],[10,"MultiMillerLoop",1458],[17,"GE"],[17,"Scalar"],[17,"CE"],[5,"Arc",1459],[5,"EvaluationEngine",413],[5,"InnerProductArgument",413],[5,"ProverKey",413],[5,"VerifierKey",413],[5,"UVKZGEvaluation",481],[5,"UVKZGProof",481],[5,"UVKZGPCS",481],[5,"ZMProverKey",481],[5,"ZMVerifierKey",481],[5,"ZMCommitment",481],[5,"ZMEvaluation",481],[5,"ZMProof",481],[5,"ZMPCS",481],[8,"UVKZGPoly",481],[10,"Borrow",1460],[10,"Default",1461],[5,"R1CSInstance",662],[5,"RelaxedR1CSInstance",662],[5,"R1CSResult",662],[5,"R1CSWitness",662],[5,"RelaxedR1CSWitness",662],[10,"RngCore",1462],[10,"CryptoRng",1462],[10,"Field",1463],[10,"Fn",1464],[5,"Box",1465],[5,"BatchedRelaxedR1CSSNARK",822],[10,"EvaluationEngineTrait",1420],[5,"VerifierKey",822],[5,"ProverKey",822],[5,"BatchedRelaxedR1CSSNARK",878],[5,"VerifierKey",878],[5,"ProverKey",878],[5,"MultilinearPolynomial",936],[10,"PrimeField",1463],[10,"Deserialize",1446],[10,"Serialize",1452],[5,"R1CSShapeSparkRepr",968],[5,"R1CSShapeSparkCommitment",968],[5,"ProverKey",968],[5,"VerifierKey",968],[5,"RelaxedR1CSSNARK",968],[5,"ProverKey",1067],[5,"VerifierKey",1067],[5,"RelaxedR1CSSNARK",1067],[10,"StepCircuit",1125],[5,"TrivialTestCircuit",1125],[5,"TrivialSecondaryCircuit",1125],[5,"PublicParams",1125],[5,"CircuitDigests",1125],[5,"AuxParams",1125],[5,"RecursiveSNARK",1125],[17,"C1"],[17,"C2"],[10,"NonUniformCircuit",1125],[6,"SuperNovaError",1267],[5,"AllocatedNum",1466],[10,"ConstraintSystem",1455],[5,"CompressedSNARK",1289],[10,"BatchedRelaxedR1CSSNARKTrait",1427],[5,"ProverKey",1289],[5,"VerifierKey",1289],[17,"CircuitRO"],[17,"Constants"],[10,"ROTrait",1339],[10,"ROCircuitTrait",1339],[10,"Send",1467],[10,"Sync",1467],[10,"Abomonation",1468],[17,"NativeRO"],[10,"TranscriptEngineTrait",1339],[10,"TranscriptReprTrait",1339],[10,"AbsorbInROTrait",1339],[10,"PrimeFieldExt",1339],[5,"BigInt",1469],[5,"AllocatedBit",1470],[5,"TrivialCircuit",1383],[17,"CompressedCommitment"],[10,"CommitmentTrait",1407],[10,"Eq",1449],[10,"Len",1407],[10,"DigestHelperTrait",1427],[17,"ProverKey"],[17,"VerifierKey"],[10,"Group",1339],[10,"CommitmentEngineTrait",1407]],"b":[[202,"impl-Display-for-NovaError"],[203,"impl-Debug-for-NovaError"],[204,"impl-Debug-for-PCSError"],[205,"impl-Display-for-PCSError"],[206,"impl-From%3CPCSError%3E-for-NovaError"],[208,"impl-From%3CSynthesisError%3E-for-NovaError"],[857,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[858,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[861,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[862,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[873,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[874,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[887,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[888,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[914,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[915,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[918,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[919,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[930,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[931,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[1277,"impl-Display-for-SuperNovaError"],[1278,"impl-Debug-for-SuperNovaError"]]}]\ +["arecibo",{"doc":"This library implements Nova, a high-speed recursive SNARK.","t":"FFFFFFFNNNNNNNNNNNNNNHNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCQNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNCCNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQSPPPPPPPPPPPPPPPPPPGGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFIFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCHCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFRRFKFFKFFMNNNNNNNNNNNNNNHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNMNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGPNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKRRRRRRKIKRKRKRRKIIKRRRRKKMMMMCCMCMMMMMCMMMMKFMNNNNNNNNNNNNNNMNNNNNNRKRKRKKMMMMMMRKRRMMMKKRRKRRNNHMMMMMMM","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","clone_into","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","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","clone","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","prove","serialize","serialize","setup","setup","to_owned","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","clone","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","prove","serialize","serialize","setup","setup","to_owned","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","num_constraints_and_variables","num_constraints_and_variables_secondary","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","clone","clone_into","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","to_owned","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"],[163,"arecibo::constants"],[164,"arecibo::errors"],[225,"arecibo::provider"],[372,"arecibo::provider::hyperkzg"],[413,"arecibo::provider::ipa_pc"],[481,"arecibo::provider::non_hiding_zeromorph"],[662,"arecibo::r1cs"],[816,"arecibo::spartan"],[822,"arecibo::spartan::batched"],[878,"arecibo::spartan::batched_ppsnark"],[935,"arecibo::spartan::polys"],[936,"arecibo::spartan::polys::multilinear"],[968,"arecibo::spartan::ppsnark"],[1067,"arecibo::spartan::snark"],[1125,"arecibo::supernova"],[1267,"arecibo::supernova::error"],[1289,"arecibo::supernova::snark"],[1339,"arecibo::traits"],[1383,"arecibo::traits::circuit"],[1407,"arecibo::traits::commitment"],[1420,"arecibo::traits::evaluation"],[1427,"arecibo::traits::snark"],[1444,"core::clone"],[1445,"core::result"],[1446,"serde::de"],[1447,"std::io::error"],[1448,"std::io"],[1449,"core::cmp"],[1450,"core::option"],[1451,"core::fmt"],[1452,"core::fmt"],[1453,"core::any"],[1454,"alloc::vec"],[1455,"bellpepper_core::constraint_system"],[1456,"core::error"],[1457,"alloc::string"],[1458,"pairing"],[1459,"pairing"],[1460,"core::borrow"],[1461,"core::default"],[1462,"rand_core"],[1463,"rand_core"],[1464,"core::ops::function"],[1465,"alloc::boxed"],[1466,"ff"],[1467,"bellpepper_core::constraint_system"],[1468,"core::marker"],[1469,"num_bigint::bigint"],[1470,"bellpepper_core::gadgets::boolean"],[1471,"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?","Returns the number of constraints and variables of inner …","Returns the number of constraints and variables of the …","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,13,2,5,7,8,9,12,13,0,2,5,7,8,9,12,13,2,5,7,8,9,12,13,0,2,5,7,8,9,12,13,2,5,7,8,9,12,13,2,5,7,8,13,2,5,2,5,7,8,9,12,13,2,2,5,0,2,2,2,5,7,8,9,12,13,2,5,7,8,9,12,13,0,0,2,5,7,8,9,12,13,2,5,7,8,9,12,13,2,8,5,8,5,8,13,8,0,0,2,5,7,8,12,13,5,13,0,0,2,5,7,8,9,12,13,0,2,5,7,8,9,12,13,2,5,7,8,9,12,13,2,5,7,8,9,12,13,8,13,2,5,7,8,9,12,13,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,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,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,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,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,102,102,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,112,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,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]],[[[13,[-1,-2,-3]]],[[13,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],0,[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[2,[-2]]]]],17,4],[-1,[[16,[[5,[-2]]]]],17,6],[-1,[[16,[[7,[-2]]]]],17,4],[-1,[[16,[[8,[-2]]]]],17,6],[-1,[[16,[[13,[-2,-3,-4]]]]],17,6,[[10,[-2]]],[[10,[[11,[-2]]]]]],[[[2,[-1]]],[],4],[[[5,[-1]]],[],6],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[[2,[-1]],-2],[[18,[14]]],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]]],15,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]],[[[13,[-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,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],15],[[2,[-1]]],4],[[[5,[-1]],-2,-3,23,23],[[16,[[8,[-1]],29]]],6,1,1],[[[5,[-1]]],[[14,[15,15]]],6],[[[8,[-1]]],15,6],[[[5,[-1]]],[[14,[15,15]]],6],[[[8,[-1]]],[[14,[23,23]]],6],[[[5,[-1]],[9,[-1,-2,-3]],[8,[-1]]],[[16,[[13,[-1,-2,-3]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[[[8,[-1]],[5,[-1]],-2,-3],[[16,[14,29]]],6,1,1],0,0,[[[2,[-1]],-2],16,4,30],[[[5,[-1]],-2],16,6,30],[[[7,[-1]],-2],16,4,30],[[[8,[-1]],-2],16,6,30],[[[12,[-1,-2,-3]],-4],16,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[[13,[-1,-2,-3]],-4],16,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[-1,-2,[31,[-3]],[31,[[11,[-3]]]]],[[16,[[5,[-3]],29]]],1,1,6],[[[5,[-1]]],[[16,[[14,[[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,[],[]],[-1,-2,[],[]],0,[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[8,[-1]],[5,[-1]],15,23,23],[[16,[[14,[33,33]],29]]],6],[[[13,[-1,-2,-3]],[12,[-1,-2,-3]],15,23,23],[[16,[[14,[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,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,14],[15,14],[[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,[]],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[29,[[24,[36]]]],[-1,37,[]],[-1,37,[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[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,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[-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,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[46,[-2]]]]],17,47],[-1,[[16,[[48,[-2,-3]]]]],17,[],[]],[15,14],[15,14],[[[46,[-1]],25],26,[27,47]],[[[48,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[[[0,[-1]],-2,[0,[-3]],23,23],[[16,[-4,29]]],49,[],[[4,[],[[50,[]],[51,[]],[52,[[0,[-1]]]]]]],[]],[[[46,[-1]],-2],16,47,30],[[[48,[-1,-2]],-3],16,[],[],30],[[[53,[[0,[-1]]]]],[[14,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[[-1,[0,[-3]],23,-4],[[16,[14,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],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[55,[-2]]]]],17,4],[15,14],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,23,23],[[16,[-2,29]]],[],[]],[[[57,[-1]],-2],16,4,30],[[[55,[-1]],-2],16,4,30],[53,[[14,[-1,-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[16,[14,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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],0,[[-2,67],[[16,[[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],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[65,[-2]]]]],17,47],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[[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,[]],[-1,-1,[]],[[[58,[-1]]],[[64,[-1]]],47],[-1,-1,[]],[-1,-1,[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,67],[[16,[[14,[[59,[-1]],[58,[-1]]]],29]]],49,[[68,[[0,[-1]]]]]],0,[[[0,[-1]],-2,23,23],[[16,[-3,29]]],49,[],[]],[[[62,[-1]],-2],16,47,30],[[[65,[-1]],-2],16,47,30],[[[53,[[0,[-1]]]]],[[14,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[16,[14,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]]],14,4],[[[71,[-1]]],14,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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[[73,[-1]]],[],4],[[[74,[-1]]],14,4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]]],[[16,[[14,[33]],29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]],33,[72,[-1]],[72,[-1]]],[[16,[29]]],4],[[[28,[-1]],[31,[-1]]],[],4],[[[28,[-1]],[31,[-1]]],15,4],[15,[[72,[-1]]],4],[[[28,[-1]]],[[74,[-1]]],4],[[[28,[-1]]],[[71,[-1]]],4],[15,33],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[28,[-2]]]]],17,4],[-1,[[16,[[72,[-2]]]]],17,4],[-1,[[16,[[73,[-2]]]]],17,4],[-1,[[16,[[70,[-2]]]]],17,4],[-1,[[16,[[74,[-2]]]]],17,4],[-1,[[16,[[71,[-2]]]]],17,4],[[[28,[-1]]],[],4],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[[28,[-1]],-2],[[18,[14]]],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]]],15,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],[[16,[[74,[-1]],29]]],4],[[[71,[-1]],[70,[-1]]],[[71,[-1]]],4],[[[74,[-1]],[73,[-1]],23],[[16,[14,29]]],4],[[[71,[-1]],[70,[-1]]],14,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],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],[70,[-1]],[73,[-1]]],[[16,[14,29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]]],[[16,[14,29]]],4],0,[[[28,[-1]],33],[[16,[[73,[-1]],29]]],4],[[[28,[-1]],33],[[16,[[70,[-1]],29]]],4],[[[28,[-1]]],[[28,[-1]]],4],[[[74,[-1]],[28,[-1]]],[[74,[-1]]],4],[[15,15,15,15,-1],[[28,[-2]]],[75,76],4],[[[28,[-1]],-2],[[14,[[74,[-1]],[71,[-1]]]]],4,[75,76]],[[[28,[-1]],-2],16,4,30],[[[72,[-1]],-2],16,4,30],[[[73,[-1]],-2],16,4,30],[[[70,[-1]],-2],16,4,30],[[[74,[-1]],-2],16,4,30],[[[71,[-1]],-2],16,4,30],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[71,[-1]]],[[33,[22]]],4],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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,15],[[33,[-1]]],77],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[[80,[-1,-2]]],[[80,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[80,[-2,-3]]]]],17,4,[[81,[-2]]]],[[[82,[-1,-2]]],[],4,[[81,[-1]]]],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[16,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[80,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[[82,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[53,[33,[[28,[-1]]]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[80,[-1,-2]],-3,[23,[[71,[-1]]]]],[[16,[14,29]]],4,[[81,[-1]]],[]],[[[80,[-1,-2]],-3,[71,[-1]]],[[16,[14,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]]]],[[[84,[-1,-2]]],[[84,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[84,[-2,-3]]]]],17,4,[[81,[-2]]]],[[[85,[-1,-2]]],[],4,[[81,[-1]]]],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[16,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[85,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[[84,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[53,[33,[[28,[-1]]]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[84,[-1,-2]],-3,[23,[[71,[-1]]]]],[[16,[14,29]]],4,[[81,[-1]]],[]],[[[84,[-1,-2]],-3,[71,[-1]]],[[16,[14,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[87,[-1]],[87,[-1]]],-2,88,[]],[[[87,[-1]],-1],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[87,[-1]]],[[87,[-1]]],3],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[87,[-2]]]]],17,89],[15,14],[[[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]]],15,88],[[[87,[-1]],15],-1,88],[[],15],[-1,-2,[],[]],[[[87,[-1]]],20,88],[[[87,[-1]]],15,88],[[[33,[-1]]],[[87,[-1]]],88],[[15,-1],[[87,[-2]]],[75,76],88],[[[87,[-1]],-2],16,90,30],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[91,[-2]]]]],17,4],[-1,[[16,[[92,[-2]]]]],17,4],[-1,[[16,[[95,[-2,-3]]]]],17,4,[[81,[-2]]]],[[[94,[-1,-2]]],[],4,[[81,[-1]]]],[15,14],[15,14],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[91,[-1]]],4],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[95,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[91,[-1]],-2],16,4,30],[[[92,[-1]],-2],16,4,30],[[[94,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[[95,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[92,[-1]]],[[33,[22]]],4],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[95,[-1,-2]],-3,[71,[-1]]],[[16,[14,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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[98,[-2,-3]]]]],17,4,[[81,[-2]]]],[[[97,[-1,-2]]],[],4,[[81,[-1]]]],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[98,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[97,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[[98,[-1,-2]],-3],16,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[98,[-1,-2]],-3,[71,[-1]]],[[16,[14,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[99,15],[[[100,[-1]]],15,88],[[[101,[-1]]],15,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,15],[],99],[99,15],[[[100,[-1]]],15,88],[[[101,[-1]]],15,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],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[],[[100,[-1]]],69],[[],[[101,[-1]]],69],[15,-1,[]],[15,-1,[]],[[[103,[-1]]],-2,4,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[105,[-2]]]]],17,6],[[[103,[-1]]],[],4],[[[102,[-1]]],[],6],[15,14],[15,14],[15,14],[15,14],[15,14],[15,14],[[[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]],15],-2,6,[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[108,[],[[106,[-1]],[107,[-2]]]]],15,99,99],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]]],[[14,[[33,[[2,[-1]]]],[104,[-1]]]]],6],[33,[[103,[-1]]],4],[[[102,[-1]],-2,23,23],[[16,[[105,[-1]],109]]],6,[[108,[-1]]]],[[[108,[],[[106,[-1]],[107,[-2]]]]],15,99,99],[[[102,[-1]],15],[[14,[15,15]]],6],[[[102,[-1]]],[[14,[15,15]]],6],[[[108,[],[[106,[-1]],[107,[-2]]]],15],-1,99,99],[[[105,[-1]],[102,[-1]],-2,-3],[[16,[14,109]]],6,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]]],-2,99,99],[[[103,[-1]],-2],16,4,30],[[[102,[-1]],-2],16,6,30],[[[104,[-1]],-2],16,6,30],[[[105,[-1]],-2],16,6,30],[[-2,[31,[-1]],[31,[[11,[-1]]]]],[[102,[-1]]],6,[[108,[-1]]]],0,[[99,-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[16,[[14,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[100,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[16,[[14,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[101,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[16,[[14,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[105,[-1]],[102,[-1]],23,23],[[16,[[14,[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,[],[]],[15,-1,[]],[15,-1,[]],[15,14],[[109,109],20],[[109,25],26],[[109,25],26],[29,109],[-1,-1,[]],[[],15],[-1,-2,[],[]],[109,[[24,[36]]]],[-1,37,[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[112,[-1,-2,-3]]],[[112,[-1,-2,-3]]],[6,3],[[113,[-1]],3],[[10,[[11,[-1]]]],3]],[[-1,-2],14,[],[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[15,-1,[]],[-1,[[16,[[112,[-2,-3,-4]]]]],17,6,[[113,[-2]]],[[10,[[11,[-2]]]]]],[15,14],[15,14],[15,14],[[[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,[]],[[],15],[[],15],[[],15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]],[114,[-1,-2,-3]],[105,[-1]]],[[16,[[112,[-1,-2,-3]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[[[112,[-1,-2,-3]],-4],16,6,[[113,[-1]]],[[10,[[11,[-1]]]]],30],[[[102,[-1]]],[[16,[[14,[[114,[-1,-2,-3]],[115,[-1,-2,-3]]]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[112,[-1,-2,-3]],[102,[-1]],[115,[-1,-2,-3]],23,23],[[16,[[14,[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],14,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122]],[[[119,[],[[123,[-1]],[117,[-4]]]],[110,[-2]]],14,[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122]],[[124,[23,[22]],-1],14,125],[126,14],0,0,[[124,[23,[22]]],14],0,[[[23,[22]]],127],[[],[[14,[-1,-1,128,128]]],[]],[[-1,15],[[118,[],[[116,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[119,[-3],[[117,[-1]]]]],88],[[-1,15],[[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]]]],15],-4,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122],[]],[[[119,[],[[123,[-1]],[117,[-4]]]],-5,15],[[16,[[33,[129]],35]]],[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122],[[111,[-2]]]],[[124,[23,[22]]],[[16,[29]]]],[125,[[33,[22]]]],0,0,[1,15],[[[130,[-1]]],15,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[130,[-1]]],[[130,[-1]]],3],[[-1,-2],14,[],[]],[[],[[130,[-1]]],69],[15,-1,[]],[15,-1,[]],[15,14],[[[130,[-1]],[130,[-1]]],20,21],[[[130,[-1]],25],26,27],[-1,-1,[]],[[],15],[-1,-2,[],[]],[[1,-2,[23,[[110,[-1]]]]],[[16,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[[[130,[-1]],-2,[23,[[110,[-1]]]]],[[16,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-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,[[16,[[132,[],[[131,[-1]]]],29]]],[3,27,21,133,120,121,125,90,89]],[134,15],[[[23,[22]],15],-1,[]],[[[132,[],[[131,[-1]]]]],[[14,[20]]],[3,27,21,133,120,121,125,90,89]],0,0,0,0,[[-1,23,23],[[16,[-2,29]]],[],[]],[53,[[14,[-1,-2]]],[],[]],[[-1,23,-2],[[16,[14,29]]],[],[]],0,0,0,0,0,0,0,[[],[[79,[78]]]],[[],[[79,[78]]]],[[],[[79,[78]]]],[135],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[16,[[10,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,90]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[16,[[113,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,[135,[-2]]]],[[53,[28,[-1]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[16,[[14,[-2,-3]],29]]],4,[],[]],[[[10,[],[[136,[-1]],[137,[-2]]]],-2,[71,[-3]]],[[16,[14,29]]],[120,121],[120,121,90],4],[[[113,[],[[136,[-1]],[137,[-2]]]],-2,[23,[[71,[-3]]]]],[[16,[14,29]]],[120,121],[120,121,[135,[-3]]],4]],"c":[],"p":[[10,"StepCircuit",1383],[5,"R1CSWithArity",0],[10,"Clone",1444],[10,"Engine",1339],[5,"PublicParams",0],[10,"CurveCycleEquipped",1339],[5,"ResourceBuffer",0],[5,"RecursiveSNARK",0],[5,"ProverKey",0],[10,"RelaxedR1CSSNARKTrait",1427],[8,"Dual",1339],[5,"VerifierKey",0],[5,"CompressedSNARK",0],[1,"tuple"],[1,"usize"],[6,"Result",1445],[10,"Deserializer",1446],[8,"Result",1447],[10,"Write",1448],[1,"bool"],[10,"PartialEq",1449],[1,"u8"],[1,"slice"],[6,"Option",1450],[5,"Formatter",1451],[8,"Result",1451],[10,"Debug",1451],[5,"R1CSShape",662],[6,"NovaError",164],[10,"Serializer",1452],[8,"CommitmentKeyHint",662],[5,"TypeId",1453],[5,"Vec",1454],[6,"PCSError",164],[6,"SynthesisError",1455],[10,"Error",1456],[5,"String",1457],[5,"GrumpkinEngine",225],[5,"Bn256EngineIPA",225],[5,"Bn256EngineZM",225],[5,"Bn256EngineKZG",225],[5,"Secp256k1Engine",225],[5,"Secq256k1Engine",225],[5,"PallasEngine",225],[5,"VestaEngine",225],[5,"EvaluationArgument",372],[10,"Engine",1458],[5,"EvaluationEngine",372],[10,"MultiMillerLoop",1458],[17,"GE"],[17,"Scalar"],[17,"CE"],[5,"Arc",1459],[5,"EvaluationEngine",413],[5,"InnerProductArgument",413],[5,"ProverKey",413],[5,"VerifierKey",413],[5,"UVKZGEvaluation",481],[5,"UVKZGProof",481],[5,"UVKZGPCS",481],[5,"ZMProverKey",481],[5,"ZMVerifierKey",481],[5,"ZMCommitment",481],[5,"ZMEvaluation",481],[5,"ZMProof",481],[5,"ZMPCS",481],[8,"UVKZGPoly",481],[10,"Borrow",1460],[10,"Default",1461],[5,"R1CSInstance",662],[5,"RelaxedR1CSInstance",662],[5,"R1CSResult",662],[5,"R1CSWitness",662],[5,"RelaxedR1CSWitness",662],[10,"RngCore",1462],[10,"CryptoRng",1462],[10,"Field",1463],[10,"Fn",1464],[5,"Box",1465],[5,"BatchedRelaxedR1CSSNARK",822],[10,"EvaluationEngineTrait",1420],[5,"VerifierKey",822],[5,"ProverKey",822],[5,"BatchedRelaxedR1CSSNARK",878],[5,"VerifierKey",878],[5,"ProverKey",878],[5,"MultilinearPolynomial",936],[10,"PrimeField",1463],[10,"Deserialize",1446],[10,"Serialize",1452],[5,"R1CSShapeSparkRepr",968],[5,"R1CSShapeSparkCommitment",968],[5,"ProverKey",968],[5,"VerifierKey",968],[5,"RelaxedR1CSSNARK",968],[5,"ProverKey",1067],[5,"VerifierKey",1067],[5,"RelaxedR1CSSNARK",1067],[10,"StepCircuit",1125],[5,"TrivialTestCircuit",1125],[5,"TrivialSecondaryCircuit",1125],[5,"PublicParams",1125],[5,"CircuitDigests",1125],[5,"AuxParams",1125],[5,"RecursiveSNARK",1125],[17,"C1"],[17,"C2"],[10,"NonUniformCircuit",1125],[6,"SuperNovaError",1267],[5,"AllocatedNum",1466],[10,"ConstraintSystem",1455],[5,"CompressedSNARK",1289],[10,"BatchedRelaxedR1CSSNARKTrait",1427],[5,"ProverKey",1289],[5,"VerifierKey",1289],[17,"CircuitRO"],[17,"Constants"],[10,"ROTrait",1339],[10,"ROCircuitTrait",1339],[10,"Send",1467],[10,"Sync",1467],[10,"Abomonation",1468],[17,"NativeRO"],[10,"TranscriptEngineTrait",1339],[10,"TranscriptReprTrait",1339],[10,"AbsorbInROTrait",1339],[10,"PrimeFieldExt",1339],[5,"BigInt",1469],[5,"AllocatedBit",1470],[5,"TrivialCircuit",1383],[17,"CompressedCommitment"],[10,"CommitmentTrait",1407],[10,"Eq",1449],[10,"Len",1407],[10,"DigestHelperTrait",1427],[17,"ProverKey"],[17,"VerifierKey"],[10,"Group",1339],[10,"CommitmentEngineTrait",1407]],"b":[[202,"impl-Display-for-NovaError"],[203,"impl-Debug-for-NovaError"],[204,"impl-Display-for-PCSError"],[205,"impl-Debug-for-PCSError"],[206,"impl-From%3CSynthesisError%3E-for-NovaError"],[208,"impl-From%3CPCSError%3E-for-NovaError"],[857,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[858,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[861,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[862,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[873,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[874,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[887,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[888,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[914,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[915,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[918,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[919,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[930,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[931,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[1277,"impl-Debug-for-SuperNovaError"],[1278,"impl-Display-for-SuperNovaError"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/docs/src/arecibo/supernova/snark.rs.html b/docs/src/arecibo/supernova/snark.rs.html index e76f069ee..1320edc7c 100644 --- a/docs/src/arecibo/supernova/snark.rs.html +++ b/docs/src/arecibo/supernova/snark.rs.html @@ -658,45 +658,6 @@ 657 658 659 -660 -661 -662 -663 -664 -665 -666 -667 -668 -669 -670 -671 -672 -673 -674 -675 -676 -677 -678 -679 -680 -681 -682 -683 -684 -685 -686 -687 -688 -689 -690 -691 -692 -693 -694 -695 -696 -697 -698
//! This module defines a final compressing SNARK for supernova proofs
 
 use super::{error::SuperNovaError, PublicParams, RecursiveSNARK};
@@ -1157,65 +1118,6 @@
     }
   }
 
-  fn test_nivc_trivial_with_compression_with<E1, S1, S2>()
-  where
-    E1: CurveCycleEquipped,
-    S1: BatchedRelaxedR1CSSNARKTrait<E1>,
-    S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
-    <E1::Scalar as PrimeField>::Repr: Abomonation,
-    <<Dual<E1> as Engine>::Scalar as PrimeField>::Repr: Abomonation,
-  {
-    const NUM_STEPS: usize = 6;
-
-    let secondary_circuit = TrivialSecondaryCircuit::default();
-    let test_circuits = TestCircuit::new(NUM_STEPS);
-
-    let pp = PublicParams::setup(&test_circuits[0], &*S1::ck_floor(), &*S2::ck_floor());
-
-    let z0_primary = vec![E1::Scalar::from(17u64)];
-    let z0_secondary = vec![<Dual<E1> as Engine>::Scalar::ZERO];
-
-    let mut recursive_snark = RecursiveSNARK::new(
-      &pp,
-      &test_circuits[0],
-      &test_circuits[0],
-      &secondary_circuit,
-      &z0_primary,
-      &z0_secondary,
-    )
-    .unwrap();
-
-    for circuit in test_circuits.iter().take(NUM_STEPS) {
-      recursive_snark
-        .prove_step(&pp, circuit, &secondary_circuit)
-        .unwrap();
-
-      recursive_snark
-        .verify(&pp, &z0_primary, &z0_secondary)
-        .unwrap();
-    }
-
-    let (prover_key, verifier_key) = CompressedSNARK::<_, S1, S2>::setup(&pp).unwrap();
-
-    let compressed_snark = CompressedSNARK::prove(&pp, &prover_key, &recursive_snark).unwrap();
-
-    compressed_snark
-      .verify(&pp, &verifier_key, &z0_primary, &z0_secondary)
-      .unwrap();
-  }
-
-  #[test]
-  fn test_nivc_trivial_with_compression() {
-    // ppSNARK
-    test_nivc_trivial_with_compression_with::<PallasEngine, S1PP<_>, S2<_>>();
-    test_nivc_trivial_with_compression_with::<Bn256EngineIPA, S1PP<_>, S2<_>>();
-    test_nivc_trivial_with_compression_with::<Secp256k1Engine, S1PP<_>, S2<_>>();
-    // classic SNARK
-    test_nivc_trivial_with_compression_with::<PallasEngine, S1<_>, S2<_>>();
-    test_nivc_trivial_with_compression_with::<Bn256EngineIPA, S1<_>, S2<_>>();
-    test_nivc_trivial_with_compression_with::<Secp256k1Engine, S1<_>, S2<_>>();
-  }
-
   #[derive(Clone)]
   struct BigPowerCircuit<E> {
     _p: PhantomData<E>,
@@ -1336,18 +1238,19 @@
     }
   }
 
-  fn test_compression_with_circuit_size_difference_with<E1, S1, S2>()
+  fn test_compression_with<E1, S1, S2, F, C>(num_steps: usize, circuits_factory: F)
   where
     E1: CurveCycleEquipped,
     S1: BatchedRelaxedR1CSSNARKTrait<E1>,
     S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
     <E1::Scalar as PrimeField>::Repr: Abomonation,
     <<Dual<E1> as Engine>::Scalar as PrimeField>::Repr: Abomonation,
+    C: NonUniformCircuit<E1, C1 = C, C2 = TrivialSecondaryCircuit<<Dual<E1> as Engine>::Scalar>>
+      + StepCircuit<E1::Scalar>,
+    F: Fn(usize) -> Vec<C>,
   {
-    const NUM_STEPS: usize = 4;
-
     let secondary_circuit = TrivialSecondaryCircuit::default();
-    let test_circuits = BigTestCircuit::new(NUM_STEPS);
+    let test_circuits = circuits_factory(num_steps);
 
     let pp = PublicParams::setup(&test_circuits[0], &*S1::ck_floor(), &*S2::ck_floor());
 
@@ -1364,7 +1267,7 @@
     )
     .unwrap();
 
-    for circuit in test_circuits.iter().take(NUM_STEPS) {
+    for circuit in test_circuits.iter().take(num_steps) {
       recursive_snark
         .prove_step(&pp, circuit, &secondary_circuit)
         .unwrap();
@@ -1383,16 +1286,35 @@
       .unwrap();
   }
 
+  #[test]
+  fn test_nivc_trivial_with_compression() {
+    const NUM_STEPS: usize = 6;
+
+    // ppSNARK
+    test_compression_with::<PallasEngine, S1PP<_>, S2<_>, _, _>(NUM_STEPS, TestCircuit::new);
+
+    test_compression_with::<Bn256EngineIPA, S1PP<_>, S2<_>, _, _>(NUM_STEPS, TestCircuit::new);
+    test_compression_with::<Secp256k1Engine, S1PP<_>, S2<_>, _, _>(NUM_STEPS, TestCircuit::new);
+
+    // classic SNARK
+    test_compression_with::<PallasEngine, S1<_>, S2<_>, _, _>(NUM_STEPS, TestCircuit::new);
+    test_compression_with::<Bn256EngineIPA, S1<_>, S2<_>, _, _>(NUM_STEPS, TestCircuit::new);
+    test_compression_with::<Secp256k1Engine, S1<_>, S2<_>, _, _>(NUM_STEPS, TestCircuit::new);
+  }
+
   #[test]
   fn test_compression_with_circuit_size_difference() {
+    const NUM_STEPS: usize = 4;
+
     // ppSNARK
-    test_compression_with_circuit_size_difference_with::<PallasEngine, S1PP<_>, S2<_>>();
-    test_compression_with_circuit_size_difference_with::<Bn256EngineIPA, S1PP<_>, S2<_>>();
-    test_compression_with_circuit_size_difference_with::<Secp256k1Engine, S1PP<_>, S2<_>>();
+    test_compression_with::<PallasEngine, S1PP<_>, S2<_>, _, _>(NUM_STEPS, BigTestCircuit::new);
+    test_compression_with::<Bn256EngineIPA, S1PP<_>, S2<_>, _, _>(NUM_STEPS, BigTestCircuit::new);
+    test_compression_with::<Secp256k1Engine, S1PP<_>, S2<_>, _, _>(NUM_STEPS, BigTestCircuit::new);
+
     // classic SNARK
-    test_compression_with_circuit_size_difference_with::<PallasEngine, S1<_>, S2<_>>();
-    test_compression_with_circuit_size_difference_with::<Bn256EngineIPA, S1<_>, S2<_>>();
-    test_compression_with_circuit_size_difference_with::<Secp256k1Engine, S1<_>, S2<_>>();
+    test_compression_with::<PallasEngine, S1<_>, S2<_>, _, _>(NUM_STEPS, BigTestCircuit::new);
+    test_compression_with::<Bn256EngineIPA, S1<_>, S2<_>, _, _>(NUM_STEPS, BigTestCircuit::new);
+    test_compression_with::<Secp256k1Engine, S1<_>, S2<_>, _, _>(NUM_STEPS, BigTestCircuit::new);
   }
 }
 
\ No newline at end of file diff --git a/docs/trait.impl/core/clone/trait.Clone.js b/docs/trait.impl/core/clone/trait.Clone.js index a2e7f0205..3d864586a 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 + Engine> Clone for ZMEvaluation<E>
where\n E::Fr: Clone,
"],["impl<E: Clone> Clone for EvaluationEngine<E>"],["impl<E: Clone, NE: Clone> Clone for ZMPCS<E, NE>"],["impl<E: Clone + Engine> Clone for ResourceBuffer<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone> Clone for UVKZGPCS<E>"],["impl<E1, S1, S2> Clone for ProverKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Clone,\n S1: RelaxedR1CSSNARKTrait<E1> + Clone,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Clone,\n S1::ProverKey: Clone,\n S2::ProverKey: Clone,
"],["impl<F: Clone> Clone for TrivialSecondaryCircuit<F>"],["impl Clone for Bn256EngineZM"],["impl<E: Clone + Engine> Clone for R1CSWitness<E>
where\n E::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 + Engine> Clone for UVKZGEvaluation<E>
where\n E::Fr: Clone,
"],["impl<E1, S1, S2> Clone for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped + Clone,\n S1: RelaxedR1CSSNARKTrait<E1> + Clone,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for ZMProverKey<E>"],["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> 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, EE: Clone + EvaluationEngineTrait<E>> Clone for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl<E: Clone + Engine> Clone for ZMProof<E>
where\n E::G1Affine: Clone,
"],["impl<E: Clone, NE: Clone> Clone for EvaluationEngine<E, NE>"],["impl<E: Clone + Engine> Clone for ZMVerifierKey<E>
where\n E::G2Affine: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSResult<E>
where\n E::Scalar: Clone,
"],["impl<E1, S1, S2> Clone for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped + Clone,\n S1: BatchedRelaxedR1CSSNARKTrait<E1> + Clone,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSShapeSparkRepr<E>
where\n E::Scalar: Clone,
"],["impl<F: Clone> Clone for TrivialTestCircuit<F>"],["impl Clone for GrumpkinEngine"],["impl<E: Clone + Engine> Clone for EvaluationArgument<E>
where\n E::G1Affine: Clone,\n E::Fr: Clone,
"],["impl<F: Clone> Clone for TrivialCircuit<F>"],["impl Clone for VestaEngine"],["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 BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl Clone for Secp256k1Engine"],["impl Clone for Bn256EngineKZG"],["impl<E: Clone + Engine> Clone for RelaxedR1CSWitness<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for InnerProductArgument<E>
where\n E::Scalar: Clone,
"],["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<E1, S1, S2> Clone for VerifierKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Clone,\n S1: RelaxedR1CSSNARKTrait<E1> + Clone,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Clone,\n E1::Scalar: Clone,\n S1::VerifierKey: Clone,\n S2::VerifierKey: Clone,
"],["impl Clone for Secq256k1Engine"],["impl<E: Clone + Engine> Clone for R1CSWithArity<E>"],["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 for PublicParams<E>
where\n E: CurveCycleEquipped + Clone,\n E::Scalar: Clone,
"],["impl Clone for Bn256EngineIPA"],["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 PallasEngine"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSShapeSparkCommitment<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 RelaxedR1CSInstance<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for UVKZGProof<E>
where\n E::G1Affine: Clone,
"]] +"arecibo":[["impl<E: Clone + Engine> Clone for RelaxedR1CSWitness<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<E1, S1, S2> Clone for VerifierKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Clone,\n S1: RelaxedR1CSSNARKTrait<E1> + Clone,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Clone,\n E1::Scalar: Clone,\n S1::VerifierKey: Clone,\n S2::VerifierKey: 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>
where\n E1: CurveCycleEquipped + Clone,\n S1: RelaxedR1CSSNARKTrait<E1> + Clone,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Clone,\n S1::ProverKey: Clone,\n S2::ProverKey: Clone,
"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl<F: Clone> Clone for TrivialSecondaryCircuit<F>"],["impl<F: Clone> Clone for TrivialCircuit<F>"],["impl<E: Clone + Engine> Clone for R1CSShapeSparkCommitment<E>"],["impl Clone for Secq256k1Engine"],["impl<E: Clone + Engine> Clone for UVKZGEvaluation<E>
where\n E::Fr: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSWithArity<E>"],["impl<E: Clone + Engine> Clone for UVKZGProof<E>
where\n E::G1Affine: Clone,
"],["impl Clone for VestaEngine"],["impl<E: Clone + Engine> Clone for ResourceBuffer<E>
where\n E::Scalar: Clone,
"],["impl<E1> Clone for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone> Clone for UVKZGPCS<E>"],["impl Clone for PallasEngine"],["impl<E: Clone + Engine, EE: Clone + EvaluationEngineTrait<E>> Clone for RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["impl Clone for Bn256EngineZM"],["impl<E: Clone + Engine> Clone for RelaxedR1CSInstance<E>
where\n E::Scalar: 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, EE: Clone + EvaluationEngineTrait<E>> Clone for BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Clone,\n EE::EvaluationArgument: Clone,
"],["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<E1, S1, S2> Clone for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped + Clone,\n S1: RelaxedR1CSSNARKTrait<E1> + Clone,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone> Clone for EvaluationEngine<E>"],["impl Clone for Secp256k1Engine"],["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 + Engine> Clone for ZMEvaluation<E>
where\n E::Fr: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSShapeSparkRepr<E>
where\n E::Scalar: Clone,
"],["impl Clone for GrumpkinEngine"],["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 InnerProductArgument<E>
where\n E::Scalar: Clone,
"],["impl<E1, S1, S2> Clone for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped + Clone,\n S1: BatchedRelaxedR1CSSNARKTrait<E1> + Clone,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Clone,\n E1::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSShape<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for ZMProverKey<E>"],["impl<E: Clone + Engine> Clone for R1CSInstance<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, NE: Clone> Clone for EvaluationEngine<E, NE>"],["impl<E: Clone + Engine> Clone for R1CSResult<E>
where\n E::Scalar: Clone,
"],["impl<E: Clone + Engine> Clone for ZMCommitment<E>
where\n E::G1Affine: Clone,
"],["impl<E: Clone + Engine> Clone for ZMVerifierKey<E>
where\n E::G2Affine: Clone,
"],["impl<E: Clone + Engine> Clone for ZMProof<E>
where\n E::G1Affine: Clone,
"],["impl<E: Clone + Engine> Clone for R1CSWitness<E>
where\n E::Scalar: Clone,
"],["impl<Scalar: Clone> Clone for MultilinearPolynomial<Scalar>"],["impl<E: Clone, NE: Clone> Clone for ZMPCS<E, NE>"],["impl<E: Clone + Engine> Clone for EvaluationArgument<E>
where\n E::G1Affine: Clone,\n E::Fr: Clone,
"],["impl Clone for Bn256EngineKZG"],["impl Clone for Bn256EngineIPA"]] };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 bfc4536e0..4e54922e5 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, NE: Eq> Eq for ZMPCS<E, NE>"],["impl<E: Eq + Engine> Eq for CircuitDigests<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for R1CSWitness<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for ZMCommitment<E>
where\n E::G1Affine: Eq,
"],["impl Eq for Bn256EngineKZG"],["impl<E: Eq + Engine> Eq for R1CSResult<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for R1CSWithArity<E>"],["impl<E: Eq + Engine> Eq for ZMProverKey<E>"],["impl Eq for PallasEngine"],["impl Eq for PCSError"],["impl Eq for SuperNovaError"],["impl<E: Eq + Engine> Eq for UVKZGEvaluation<E>
where\n E::Fr: Eq,
"],["impl Eq for Bn256EngineIPA"],["impl<F: Eq> Eq for TrivialCircuit<F>"],["impl<E: Eq + Engine> Eq for ZMEvaluation<E>
where\n E::Fr: Eq,
"],["impl<E: Eq + Engine> Eq for ZMVerifierKey<E>
where\n E::G2Affine: Eq,
"],["impl Eq for NovaError"],["impl<E: Eq + Engine> Eq for UVKZGProof<E>
where\n E::G1Affine: Eq,
"],["impl Eq for GrumpkinEngine"],["impl Eq for Bn256EngineZM"],["impl<E: Eq + Engine> Eq for RelaxedR1CSWitness<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for RelaxedR1CSInstance<E>
where\n E::Scalar: Eq,
"],["impl Eq for Secq256k1Engine"],["impl<E: Eq> Eq for UVKZGPCS<E>"],["impl Eq for VestaEngine"],["impl<E: Eq + Engine> Eq for ZMProof<E>
where\n E::G1Affine: Eq,
"],["impl<E: Eq + Engine> Eq for R1CSShape<E>
where\n E::Scalar: Eq,
"],["impl<Scalar: Eq> Eq for MultilinearPolynomial<Scalar>"],["impl<E: Eq + Engine> Eq for R1CSInstance<E>
where\n E::Scalar: Eq,
"],["impl Eq for Secp256k1Engine"]] +"arecibo":[["impl<E: Eq + Engine> Eq for R1CSWithArity<E>"],["impl Eq for PallasEngine"],["impl Eq for Secq256k1Engine"],["impl Eq for NovaError"],["impl Eq for GrumpkinEngine"],["impl<E: Eq + Engine> Eq for CircuitDigests<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for UVKZGProof<E>
where\n E::G1Affine: Eq,
"],["impl<E: Eq + Engine> Eq for ZMProverKey<E>"],["impl<Scalar: Eq> Eq for MultilinearPolynomial<Scalar>"],["impl<E: Eq + Engine> Eq for R1CSInstance<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq> Eq for UVKZGPCS<E>"],["impl Eq for Bn256EngineZM"],["impl Eq for SuperNovaError"],["impl<E: Eq + Engine> Eq for R1CSShape<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for ZMEvaluation<E>
where\n E::Fr: Eq,
"],["impl<E: Eq, NE: Eq> Eq for ZMPCS<E, NE>"],["impl Eq for VestaEngine"],["impl Eq for Bn256EngineIPA"],["impl<E: Eq + Engine> Eq for RelaxedR1CSWitness<E>
where\n E::Scalar: Eq,
"],["impl<E: Eq + Engine> Eq for R1CSWitness<E>
where\n E::Scalar: Eq,
"],["impl<F: Eq> Eq for TrivialCircuit<F>"],["impl<E: Eq + Engine> Eq for UVKZGEvaluation<E>
where\n E::Fr: Eq,
"],["impl Eq for Secp256k1Engine"],["impl<E: Eq + Engine> Eq for ZMProof<E>
where\n E::G1Affine: Eq,
"],["impl<E: Eq + Engine> Eq for ZMCommitment<E>
where\n E::G1Affine: Eq,
"],["impl<E: Eq + Engine> Eq for ZMVerifierKey<E>
where\n E::G2Affine: Eq,
"],["impl Eq for PCSError"],["impl<E: Eq + Engine> Eq for R1CSResult<E>
where\n E::Scalar: Eq,
"],["impl Eq for Bn256EngineKZG"],["impl<E: Eq + Engine> Eq for RelaxedR1CSInstance<E>
where\n E::Scalar: Eq,
"]] };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 cd9b995d5..44e7032ce 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 PartialEq for SuperNovaError"],["impl<E: PartialEq + Engine> PartialEq for UVKZGEvaluation<E>
where\n E::Fr: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for CircuitDigests<E>
where\n E::Scalar: PartialEq,
"],["impl<Scalar: PartialEq> PartialEq for MultilinearPolynomial<Scalar>"],["impl PartialEq for GrumpkinEngine"],["impl<E: PartialEq + Engine> PartialEq for RelaxedR1CSWitness<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for RelaxedR1CSInstance<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq, NE: PartialEq> PartialEq for ZMPCS<E, NE>"],["impl<E: PartialEq + Engine> PartialEq for R1CSResult<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for ZMProverKey<E>"],["impl PartialEq for PallasEngine"],["impl<E: PartialEq + Engine> PartialEq for R1CSInstance<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for ZMProof<E>
where\n E::G1Affine: PartialEq,
"],["impl<E1> PartialEq for AuxParams<E1>
where\n E1: CurveCycleEquipped + PartialEq,\n E1::Scalar: PartialEq,
"],["impl PartialEq for VestaEngine"],["impl<E: PartialEq + Engine> PartialEq for ZMVerifierKey<E>
where\n E::G2Affine: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for R1CSWithArity<E>"],["impl<E: PartialEq + Engine> PartialEq for R1CSShape<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for ZMCommitment<E>
where\n E::G1Affine: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for R1CSWitness<E>
where\n E::Scalar: PartialEq,
"],["impl PartialEq for Secp256k1Engine"],["impl<E: PartialEq + Engine> PartialEq for ZMEvaluation<E>
where\n E::Fr: PartialEq,
"],["impl PartialEq for Secq256k1Engine"],["impl PartialEq for Bn256EngineZM"],["impl<E: PartialEq + Engine> PartialEq for UVKZGProof<E>
where\n E::G1Affine: PartialEq,
"],["impl PartialEq for Bn256EngineIPA"],["impl<E> PartialEq for PublicParams<E>
where\n E: CurveCycleEquipped + PartialEq,\n E::Scalar: PartialEq,
"],["impl<F: PartialEq> PartialEq for TrivialCircuit<F>"],["impl PartialEq for PCSError"],["impl PartialEq for Bn256EngineKZG"],["impl PartialEq for NovaError"],["impl<E: PartialEq> PartialEq for UVKZGPCS<E>"]] +"arecibo":[["impl PartialEq for Bn256EngineZM"],["impl<E: PartialEq + Engine> PartialEq for R1CSInstance<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for R1CSShape<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for RelaxedR1CSWitness<E>
where\n E::Scalar: PartialEq,
"],["impl PartialEq for Bn256EngineKZG"],["impl<E: PartialEq + Engine> PartialEq for ZMVerifierKey<E>
where\n E::G2Affine: PartialEq,
"],["impl<E: PartialEq> PartialEq for UVKZGPCS<E>"],["impl PartialEq for PCSError"],["impl<E: PartialEq + Engine> PartialEq for CircuitDigests<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for ZMCommitment<E>
where\n E::G1Affine: PartialEq,
"],["impl PartialEq for SuperNovaError"],["impl<E1> PartialEq for AuxParams<E1>
where\n E1: CurveCycleEquipped + PartialEq,\n E1::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for R1CSWitness<E>
where\n E::Scalar: PartialEq,
"],["impl PartialEq for Bn256EngineIPA"],["impl PartialEq for NovaError"],["impl<E: PartialEq + Engine> PartialEq for UVKZGEvaluation<E>
where\n E::Fr: PartialEq,
"],["impl PartialEq for Secp256k1Engine"],["impl<E: PartialEq + Engine> PartialEq for R1CSWithArity<E>"],["impl<F: PartialEq> PartialEq for TrivialCircuit<F>"],["impl PartialEq for GrumpkinEngine"],["impl<E: PartialEq + Engine> PartialEq for ZMEvaluation<E>
where\n E::Fr: PartialEq,
"],["impl<E: PartialEq, NE: PartialEq> PartialEq for ZMPCS<E, NE>"],["impl<E: PartialEq + Engine> PartialEq for UVKZGProof<E>
where\n E::G1Affine: PartialEq,
"],["impl<E> PartialEq for PublicParams<E>
where\n E: CurveCycleEquipped + PartialEq,\n E::Scalar: PartialEq,
"],["impl<Scalar: PartialEq> PartialEq for MultilinearPolynomial<Scalar>"],["impl<E: PartialEq + Engine> PartialEq for ZMProverKey<E>"],["impl<E: PartialEq + Engine> PartialEq for R1CSResult<E>
where\n E::Scalar: PartialEq,
"],["impl<E: PartialEq + Engine> PartialEq for ZMProof<E>
where\n E::G1Affine: PartialEq,
"],["impl PartialEq for Secq256k1Engine"],["impl PartialEq for VestaEngine"],["impl PartialEq for PallasEngine"],["impl<E: PartialEq + Engine> PartialEq for RelaxedR1CSInstance<E>
where\n E::Scalar: 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/convert/trait.From.js b/docs/trait.impl/core/convert/trait.From.js index 823c2c3a1..5618f78ca 100644 --- a/docs/trait.impl/core/convert/trait.From.js +++ b/docs/trait.impl/core/convert/trait.From.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"arecibo":[["impl From<SynthesisError> for NovaError"],["impl From<PCSError> for NovaError"],["impl From<NovaError> for SuperNovaError"],["impl<E: Engine> From<UVKZGEvaluation<E>> for ZMEvaluation<E>"]] +"arecibo":[["impl From<PCSError> for NovaError"],["impl From<NovaError> for SuperNovaError"],["impl From<SynthesisError> for NovaError"],["impl<E: Engine> From<UVKZGEvaluation<E>> for ZMEvaluation<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/default/trait.Default.js b/docs/trait.impl/core/default/trait.Default.js index 0cab5c031..0739d4bc5 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 ZMEvaluation<E>
where\n E::Fr: Default,
"],["impl<F: Default> Default for TrivialTestCircuit<F>"],["impl<E: Default, NE: Default> Default for ZMPCS<E, NE>"],["impl<E: Default> Default for UVKZGPCS<E>"],["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<F: Default> Default for TrivialCircuit<F>"],["impl<E: Default + Engine> Default for ZMProof<E>
where\n E::G1Affine: Default,
"],["impl<F: Default> Default for TrivialSecondaryCircuit<F>"],["impl<E: Default + Engine> Default for UVKZGEvaluation<E>
where\n E::Fr: Default,
"]] +"arecibo":[["impl<E: Default + Engine> Default for UVKZGEvaluation<E>
where\n E::Fr: Default,
"],["impl<E: Default> Default for UVKZGPCS<E>"],["impl<E: Default, NE: Default> Default for ZMPCS<E, NE>"],["impl<E: Default + Engine> Default for ZMEvaluation<E>
where\n E::Fr: Default,
"],["impl<E: Default + Engine> Default for ZMProof<E>
where\n E::G1Affine: Default,
"],["impl<F: Default> Default for TrivialTestCircuit<F>"],["impl<F: Default> Default for TrivialCircuit<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<F: Default> Default for TrivialSecondaryCircuit<F>"]] };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 bfb2fe127..4cae6b68f 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 SuperNovaError"],["impl Error for PCSError"],["impl Error for NovaError"]] +"arecibo":[["impl Error for NovaError"],["impl Error for PCSError"],["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 d440ce0e5..97674c2e5 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<E: Debug + Engine> Debug for ZMVerifierKey<E>
where\n E::G2Affine: Debug,
"],["impl<E: Debug + Engine> Debug for RelaxedR1CSWitness<E>
where\n E::Scalar: Debug,
"],["impl<F: Debug> Debug for TrivialCircuit<F>"],["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> Debug for UVKZGPCS<E>"],["impl<E1> Debug for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl Debug for PallasEngine"],["impl<E1, S1, S2> Debug for ProverKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: RelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n S1::ProverKey: Debug,\n S2::ProverKey: 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 UVKZGProof<E>
where\n E::G1Affine: 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 RelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl<E: Debug, NE: Debug> Debug for EvaluationEngine<E, NE>"],["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 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<E1, S1, S2> Debug for VerifierKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: RelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n E1::Scalar: Debug,\n S1::VerifierKey: Debug,\n S2::VerifierKey: Debug,
"],["impl<E1, S1, S2> Debug for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: BatchedRelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for CircuitDigests<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for UVKZGEvaluation<E>
where\n E::Fr: Debug,
"],["impl<E1> Debug for PublicParams<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSShapeSparkRepr<E>
where\n E::Scalar: Debug,
"],["impl<F: Debug> Debug for TrivialSecondaryCircuit<F>"],["impl<E1, S1, S2> Debug for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: RelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSShapeSparkCommitment<E>"],["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 PCSError"],["impl<E1, S1, S2> Debug for VerifierKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: BatchedRelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n S1::VerifierKey: Debug,\n S2::VerifierKey: Debug,
"],["impl<E: Debug + Engine> Debug for ZMEvaluation<E>
where\n E::Fr: Debug,
"],["impl<Scalar: Debug> Debug for MultilinearPolynomial<Scalar>"],["impl<E: Debug + Engine> Debug for EvaluationArgument<E>
where\n E::G1Affine: Debug,\n E::Fr: Debug,
"],["impl Debug for NovaError"],["impl Debug for Bn256EngineIPA"],["impl<E: Debug + Engine> Debug for ProverKey<E>"],["impl<E1, S1, S2> Debug for ProverKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: BatchedRelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n S1::ProverKey: Debug,\n S2::ProverKey: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSWithArity<E>"],["impl<E: Debug + Engine> Debug for InnerProductArgument<E>
where\n E::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> Debug for RelaxedR1CSInstance<E>
where\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, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ResourceBuffer<E>
where\n E::Scalar: Debug,
"],["impl Debug for GrumpkinEngine"],["impl Debug for VestaEngine"],["impl<E: Debug + Engine> Debug for R1CSInstance<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ZMProverKey<E>"],["impl<E: Debug + Engine> Debug for ZMProof<E>
where\n E::G1Affine: Debug,
"],["impl Debug for Bn256EngineKZG"],["impl<E: Debug + Engine> Debug for ZMCommitment<E>
where\n E::G1Affine: Debug,
"],["impl<E: Debug, NE: Debug> Debug for ZMPCS<E, NE>"],["impl<E1> Debug for AuxParams<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E> Debug for PublicParams<E>
where\n E: CurveCycleEquipped + 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 R1CSResult<E>
where\n E::Scalar: Debug,
"],["impl Debug for Secq256k1Engine"],["impl Debug for SuperNovaError"],["impl Debug for Bn256EngineZM"],["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 EvaluationEngine<E>"],["impl Debug for Secp256k1Engine"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl<F: Debug> Debug for TrivialTestCircuit<F>"],["impl<E: Debug + Engine> Debug for VerifierKey<E>"],["impl<E: Debug + Engine> Debug for R1CSShape<E>
where\n E::Scalar: Debug,
"]] +"arecibo":[["impl<E: Debug + Engine> Debug for ZMEvaluation<E>
where\n E::Fr: Debug,
"],["impl<E: Debug + Engine> Debug for ZMVerifierKey<E>
where\n E::G2Affine: Debug,
"],["impl Debug for PCSError"],["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 ProverKey<E, EE>
where\n EE::ProverKey: Debug,\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSWitness<E>
where\n E::Scalar: Debug,
"],["impl Debug for Bn256EngineZM"],["impl<E: Debug + Engine> Debug for UVKZGProof<E>
where\n E::G1Affine: Debug,
"],["impl<E: Debug, NE: Debug> Debug for ZMPCS<E, NE>"],["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 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 + Engine> Debug for RelaxedR1CSWitness<E>
where\n E::Scalar: Debug,
"],["impl<E1, S1, S2> Debug for VerifierKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: RelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n E1::Scalar: Debug,\n S1::VerifierKey: Debug,\n S2::VerifierKey: Debug,
"],["impl<E1> Debug for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug> Debug for EvaluationEngine<E>"],["impl Debug for Bn256EngineKZG"],["impl Debug for VestaEngine"],["impl<E: Debug + Engine> Debug for ZMProverKey<E>"],["impl<E1> Debug for AuxParams<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::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<F: Debug> Debug for TrivialCircuit<F>"],["impl<E: Debug + Engine> Debug for ResourceBuffer<E>
where\n E::Scalar: Debug,
"],["impl<E1, S1, S2> Debug for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: BatchedRelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n E1::Scalar: Debug,
"],["impl Debug for Bn256EngineIPA"],["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 ZMProof<E>
where\n E::G1Affine: Debug,
"],["impl Debug for GrumpkinEngine"],["impl<E: Debug + Engine> Debug for InnerProductArgument<E>
where\n E::Scalar: Debug,
"],["impl<E1, S1, S2> Debug for ProverKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: RelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n S1::ProverKey: Debug,\n S2::ProverKey: 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 R1CSShapeSparkRepr<E>
where\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 EvaluationArgument<E>
where\n E::G1Affine: Debug,\n E::Fr: Debug,
"],["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 for PublicParams<E>
where\n E: CurveCycleEquipped + Debug,\n E::Scalar: Debug,
"],["impl<Scalar: Debug> Debug for MultilinearPolynomial<Scalar>"],["impl<E: Debug> Debug for UVKZGPCS<E>"],["impl<F: Debug> Debug for TrivialTestCircuit<F>"],["impl<E: Debug, NE: Debug> Debug for EvaluationEngine<E, NE>"],["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<E1, S1, S2> Debug for ProverKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: BatchedRelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n S1::ProverKey: Debug,\n S2::ProverKey: Debug,
"],["impl<E: Debug + Engine> Debug for UVKZGEvaluation<E>
where\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 Secq256k1Engine"],["impl<E1, S1, S2> Debug for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: RelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSWithArity<E>"],["impl<E: Debug + Engine> Debug for VerifierKey<E>"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for BatchedRelaxedR1CSSNARK<E, EE>
where\n E::Scalar: Debug,\n EE::EvaluationArgument: Debug,
"],["impl<F: Debug> Debug for TrivialSecondaryCircuit<F>"],["impl<E1, S1, S2> Debug for VerifierKey<E1, S1, S2>
where\n E1: CurveCycleEquipped + Debug,\n S1: BatchedRelaxedR1CSSNARKTrait<E1> + Debug,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>> + Debug,\n S1::VerifierKey: Debug,\n S2::VerifierKey: Debug,
"],["impl Debug for NovaError"],["impl Debug for Secp256k1Engine"],["impl<E1> Debug for PublicParams<E1>
where\n E1: CurveCycleEquipped + Debug,\n E1::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for ProverKey<E>"],["impl<E: Debug + Engine> Debug for CircuitDigests<E>
where\n E::Scalar: Debug,
"],["impl Debug for SuperNovaError"],["impl<E: Debug + Engine> Debug for ZMCommitment<E>
where\n E::G1Affine: Debug,
"],["impl<E: Debug + Engine> Debug for R1CSShape<E>
where\n E::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for RelaxedR1CSInstance<E>
where\n E::Scalar: Debug,
"],["impl Debug for PallasEngine"],["impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for VerifierKey<E, EE>
where\n EE::VerifierKey: Debug,\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 7f11b396d..797b7c312 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 Secp256k1Engine"],["impl Copy for GrumpkinEngine"],["impl Copy for Bn256EngineKZG"],["impl Copy for Bn256EngineIPA"],["impl Copy for VestaEngine"],["impl Copy for PallasEngine"],["impl Copy for Bn256EngineZM"],["impl Copy for Secq256k1Engine"]] +"arecibo":[["impl Copy for Bn256EngineKZG"],["impl Copy for Secq256k1Engine"],["impl Copy for PallasEngine"],["impl Copy for Secp256k1Engine"],["impl Copy for Bn256EngineZM"],["impl Copy for GrumpkinEngine"],["impl Copy for Bn256EngineIPA"],["impl Copy for VestaEngine"]] };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 4ed315a87..e10d2b43b 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 StructuralEq for Secp256k1Engine"],["impl StructuralEq for NovaError"],["impl<E: Engine> StructuralEq for UVKZGEvaluation<E>"],["impl<Scalar> StructuralEq for MultilinearPolynomial<Scalar>"],["impl<E: Engine> StructuralEq for ZMVerifierKey<E>"],["impl<E: Engine> StructuralEq for ZMProof<E>"],["impl StructuralEq for Secq256k1Engine"],["impl<E, NE> StructuralEq for ZMPCS<E, NE>"],["impl<E: Engine> StructuralEq for UVKZGProof<E>"],["impl<E: Engine> StructuralEq for R1CSWithArity<E>"],["impl StructuralEq for PallasEngine"],["impl StructuralEq for GrumpkinEngine"],["impl<E> StructuralEq for UVKZGPCS<E>"],["impl<E: Engine> StructuralEq for R1CSShape<E>"],["impl<F> StructuralEq for TrivialCircuit<F>"],["impl StructuralEq for SuperNovaError"],["impl StructuralEq for PCSError"],["impl<E: Engine> StructuralEq for R1CSWitness<E>"],["impl StructuralEq for Bn256EngineKZG"],["impl StructuralEq for Bn256EngineZM"],["impl<E: Engine> StructuralEq for R1CSResult<E>"],["impl<E: Engine> StructuralEq for ZMEvaluation<E>"],["impl StructuralEq for Bn256EngineIPA"],["impl StructuralEq for VestaEngine"],["impl<E: Engine> StructuralEq for R1CSInstance<E>"],["impl<E: Engine> StructuralEq for RelaxedR1CSInstance<E>"],["impl<E: Engine> StructuralEq for ZMCommitment<E>"],["impl<E: Engine> StructuralEq for CircuitDigests<E>"],["impl<E: Engine> StructuralEq for RelaxedR1CSWitness<E>"],["impl<E: Engine> StructuralEq for ZMProverKey<E>"]] +"arecibo":[["impl StructuralEq for SuperNovaError"],["impl<E: Engine> StructuralEq for ZMEvaluation<E>"],["impl<F> StructuralEq for TrivialCircuit<F>"],["impl StructuralEq for Bn256EngineKZG"],["impl<E: Engine> StructuralEq for ZMProof<E>"],["impl<E: Engine> StructuralEq for ZMProverKey<E>"],["impl<E: Engine> StructuralEq for UVKZGProof<E>"],["impl StructuralEq for GrumpkinEngine"],["impl<E: Engine> StructuralEq for ZMVerifierKey<E>"],["impl<E: Engine> StructuralEq for R1CSInstance<E>"],["impl<E, NE> StructuralEq for ZMPCS<E, NE>"],["impl<E: Engine> StructuralEq for RelaxedR1CSWitness<E>"],["impl<E: Engine> StructuralEq for CircuitDigests<E>"],["impl<E: Engine> StructuralEq for R1CSResult<E>"],["impl StructuralEq for Bn256EngineZM"],["impl<E: Engine> StructuralEq for RelaxedR1CSInstance<E>"],["impl StructuralEq for Bn256EngineIPA"],["impl StructuralEq for Secp256k1Engine"],["impl StructuralEq for Secq256k1Engine"],["impl<Scalar> StructuralEq for MultilinearPolynomial<Scalar>"],["impl<E: Engine> StructuralEq for R1CSWithArity<E>"],["impl<E: Engine> StructuralEq for R1CSShape<E>"],["impl<E: Engine> StructuralEq for R1CSWitness<E>"],["impl<E: Engine> StructuralEq for ZMCommitment<E>"],["impl<E: Engine> StructuralEq for UVKZGEvaluation<E>"],["impl<E> StructuralEq for UVKZGPCS<E>"],["impl StructuralEq for PallasEngine"],["impl StructuralEq for VestaEngine"],["impl StructuralEq for PCSError"],["impl StructuralEq 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/marker/trait.StructuralPartialEq.js b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js index edea69a4a..c49f35d9a 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<E: Engine> StructuralPartialEq for R1CSWitness<E>"],["impl<E: Engine> StructuralPartialEq for R1CSResult<E>"],["impl StructuralPartialEq for PCSError"],["impl<F> StructuralPartialEq for TrivialCircuit<F>"],["impl StructuralPartialEq for Bn256EngineZM"],["impl StructuralPartialEq for SuperNovaError"],["impl<E: Engine> StructuralPartialEq for R1CSWithArity<E>"],["impl<E1> StructuralPartialEq for AuxParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> StructuralPartialEq for RelaxedR1CSWitness<E>"],["impl<E> StructuralPartialEq for UVKZGPCS<E>"],["impl<E: Engine> StructuralPartialEq for CircuitDigests<E>"],["impl StructuralPartialEq for VestaEngine"],["impl StructuralPartialEq for Bn256EngineKZG"],["impl<E: Engine> StructuralPartialEq for RelaxedR1CSInstance<E>"],["impl StructuralPartialEq for GrumpkinEngine"],["impl StructuralPartialEq for Bn256EngineIPA"],["impl<E, NE> StructuralPartialEq for ZMPCS<E, NE>"],["impl StructuralPartialEq for Secp256k1Engine"],["impl StructuralPartialEq for PallasEngine"],["impl<E: Engine> StructuralPartialEq for UVKZGProof<E>"],["impl<E: Engine> StructuralPartialEq for UVKZGEvaluation<E>"],["impl<E: Engine> StructuralPartialEq for ZMEvaluation<E>"],["impl StructuralPartialEq for Secq256k1Engine"],["impl<E: Engine> StructuralPartialEq for ZMProverKey<E>"],["impl<Scalar> StructuralPartialEq for MultilinearPolynomial<Scalar>"],["impl<E: Engine> StructuralPartialEq for ZMProof<E>"],["impl<E: Engine> StructuralPartialEq for ZMCommitment<E>"],["impl<E> StructuralPartialEq for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<E: Engine> StructuralPartialEq for R1CSShape<E>"],["impl<E: Engine> StructuralPartialEq for ZMVerifierKey<E>"],["impl StructuralPartialEq for NovaError"],["impl<E: Engine> StructuralPartialEq for R1CSInstance<E>"]] +"arecibo":[["impl StructuralPartialEq for Secp256k1Engine"],["impl StructuralPartialEq for Bn256EngineKZG"],["impl<Scalar> StructuralPartialEq for MultilinearPolynomial<Scalar>"],["impl<E> StructuralPartialEq for UVKZGPCS<E>"],["impl<E: Engine> StructuralPartialEq for ZMCommitment<E>"],["impl<E: Engine> StructuralPartialEq for R1CSWithArity<E>"],["impl StructuralPartialEq for PCSError"],["impl StructuralPartialEq for Secq256k1Engine"],["impl StructuralPartialEq for Bn256EngineZM"],["impl<E: Engine> StructuralPartialEq for CircuitDigests<E>"],["impl StructuralPartialEq for GrumpkinEngine"],["impl<E> StructuralPartialEq for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<E: Engine> StructuralPartialEq for RelaxedR1CSWitness<E>"],["impl<E: Engine> StructuralPartialEq for ZMProverKey<E>"],["impl<F> StructuralPartialEq for TrivialCircuit<F>"],["impl<E1> StructuralPartialEq for AuxParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> StructuralPartialEq for UVKZGProof<E>"],["impl<E: Engine> StructuralPartialEq for ZMProof<E>"],["impl<E: Engine> StructuralPartialEq for UVKZGEvaluation<E>"],["impl StructuralPartialEq for PallasEngine"],["impl<E: Engine> StructuralPartialEq for ZMEvaluation<E>"],["impl<E: Engine> StructuralPartialEq for RelaxedR1CSInstance<E>"],["impl StructuralPartialEq for SuperNovaError"],["impl StructuralPartialEq for NovaError"],["impl<E: Engine> StructuralPartialEq for R1CSWitness<E>"],["impl<E, NE> StructuralPartialEq for ZMPCS<E, NE>"],["impl StructuralPartialEq for Bn256EngineIPA"],["impl<E: Engine> StructuralPartialEq for R1CSShape<E>"],["impl<E: Engine> StructuralPartialEq for ZMVerifierKey<E>"],["impl<E: Engine> StructuralPartialEq for R1CSInstance<E>"],["impl<E: Engine> StructuralPartialEq for R1CSResult<E>"],["impl StructuralPartialEq for VestaEngine"]] };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 201bbc081..a12389ef4 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, E1> Deserialize<'de> for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<'de, E1> Deserialize<'de> for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<'de, E: Engine> Deserialize<'de> for RelaxedR1CSWitness<E>"],["impl<'de, E1, S1, S2> Deserialize<'de> for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: BatchedRelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<'de, E: Engine> Deserialize<'de> for R1CSResult<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSWitness<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShapeSparkCommitment<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShape<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<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, NE> Deserialize<'de> for EvaluationEngine<E, NE>"],["impl<'de, E: Engine> Deserialize<'de> for RelaxedR1CSInstance<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSWithArity<E>"],["impl<'de, Scalar> Deserialize<'de> for MultilinearPolynomial<Scalar>
where\n Scalar: Deserialize<'de>,
"],["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> Deserialize<'de> for ResourceBuffer<E>"],["impl<'de, E1, S1, S2> Deserialize<'de> for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: RelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for ZMProof<E>
where\n E::G1Affine: Deserialize<'de>,
"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShapeSparkRepr<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>"]] +"arecibo":[["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 R1CSResult<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShapeSparkRepr<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSWithArity<E>"],["impl<'de, E: Engine> Deserialize<'de> for ZMProof<E>
where\n E::G1Affine: Deserialize<'de>,
"],["impl<'de, Scalar> Deserialize<'de> for MultilinearPolynomial<Scalar>
where\n Scalar: Deserialize<'de>,
"],["impl<'de, E1, S1, S2> Deserialize<'de> for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: RelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShapeSparkCommitment<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for InnerProductArgument<E>"],["impl<'de, E: Engine> Deserialize<'de> for R1CSShape<E>"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for RelaxedR1CSInstance<E>"],["impl<'de, E> Deserialize<'de> for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>"],["impl<'de, E: Engine> Deserialize<'de> for ResourceBuffer<E>"],["impl<'de, E: Engine> Deserialize<'de> for RelaxedR1CSWitness<E>"],["impl<'de, E1> Deserialize<'de> for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<'de, E: Engine> Deserialize<'de> for R1CSInstance<E>"],["impl<'de, E1, S1, S2> Deserialize<'de> for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: BatchedRelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<'de, E, NE> Deserialize<'de> for EvaluationEngine<E, NE>"],["impl<'de, E: Engine> Deserialize<'de> for EvaluationArgument<E>
where\n E::G1Affine: Deserialize<'de>,\n E::Fr: 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 49913031c..12cb9d51b 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, S1, S2> Serialize for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: BatchedRelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for RelaxedR1CSSNARK<E, EE>"],["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 ZMProof<E>
where\n E::G1Affine: Serialize,
"],["impl<E: Engine> Serialize for ZMVerifierKey<E>
where\n E::G1Affine: Serialize,\n E::G2Affine: Serialize,
"],["impl<E: Engine> Serialize for R1CSShape<E>"],["impl<E1, S1, S2> Serialize for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: RelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<E: Engine> Serialize for VerifierKey<E>"],["impl<E1> Serialize for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E> Serialize for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for RelaxedR1CSWitness<E>"],["impl<E: Engine> Serialize for R1CSResult<E>"],["impl<E1> Serialize for AuxParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for InnerProductArgument<E>"],["impl<E1> Serialize for PublicParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for EvaluationArgument<E>
where\n E::G1Affine: Serialize,\n E::Fr: Serialize,
"],["impl<E: Engine> Serialize for R1CSShapeSparkCommitment<E>"],["impl<Scalar> Serialize for MultilinearPolynomial<Scalar>
where\n Scalar: Serialize,
"],["impl<E, NE> Serialize for EvaluationEngine<E, NE>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<E: Engine> Serialize for RelaxedR1CSInstance<E>"],["impl<E: Engine> Serialize for R1CSWithArity<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E: Engine> Serialize for R1CSWitness<E>"],["impl<E: Engine> Serialize for CircuitDigests<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E: Engine> Serialize for R1CSInstance<E>"],["impl<E: Engine> Serialize for ResourceBuffer<E>"],["impl<E: Engine> Serialize for R1CSShapeSparkRepr<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>
where\n EE::VerifierKey: Serialize,
"],["impl<E1> Serialize for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E1, S1, S2> Serialize for VerifierKey<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: RelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"]] +"arecibo":[["impl<E1> Serialize for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for R1CSResult<E>"],["impl<E1> Serialize for AuxParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E1> Serialize for PublicParams<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for R1CSShapeSparkRepr<E>"],["impl<E1, S1, S2> Serialize for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: BatchedRelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<E: Engine> Serialize for R1CSShapeSparkCommitment<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<E1, S1, S2> Serialize for VerifierKey<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: RelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<E: Engine> Serialize for CircuitDigests<E>"],["impl<Scalar> Serialize for MultilinearPolynomial<Scalar>
where\n Scalar: Serialize,
"],["impl<E: Engine> Serialize for R1CSWithArity<E>"],["impl<E: Engine> Serialize for RelaxedR1CSInstance<E>"],["impl<E: Engine> Serialize for R1CSInstance<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E: Engine> Serialize for InnerProductArgument<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for RelaxedR1CSSNARK<E, EE>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E: Engine> Serialize for VerifierKey<E>"],["impl<E1> Serialize for RecursiveSNARK<E1>
where\n E1: CurveCycleEquipped,
"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for RelaxedR1CSSNARK<E, EE>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>"],["impl<E: Engine> Serialize for R1CSShape<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for BatchedRelaxedR1CSSNARK<E, EE>"],["impl<E: Engine> Serialize for R1CSWitness<E>"],["impl<E, NE> Serialize for EvaluationEngine<E, NE>"],["impl<E: Engine> Serialize for ZMVerifierKey<E>
where\n E::G1Affine: Serialize,\n E::G2Affine: Serialize,
"],["impl<E1, S1, S2> Serialize for CompressedSNARK<E1, S1, S2>
where\n E1: CurveCycleEquipped,\n S1: RelaxedR1CSSNARKTrait<E1>,\n S2: RelaxedR1CSSNARKTrait<Dual<E1>>,
"],["impl<E> Serialize for PublicParams<E>
where\n E: CurveCycleEquipped,
"],["impl<E: Engine> Serialize for RelaxedR1CSWitness<E>"],["impl<E: Engine, EE: EvaluationEngineTrait<E>> Serialize for VerifierKey<E, EE>
where\n EE::VerifierKey: Serialize,
"],["impl<E: Engine> Serialize for ZMProof<E>
where\n E::G1Affine: Serialize,
"],["impl<E: Engine> Serialize for EvaluationArgument<E>
where\n E::G1Affine: Serialize,\n E::Fr: Serialize,
"],["impl<E: Engine> Serialize for ResourceBuffer<E>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file