1#[allow(
12 non_camel_case_types,
13 non_snake_case,
14 clippy::pub_underscore_fields,
15 clippy::style,
16 clippy::empty_structs_with_brackets
17)]
18pub mod BN254 {
19 use super::*;
20 use alloy::sol_types as alloy_sol_types;
21 #[derive(serde::Serialize, serde::Deserialize)]
22 #[derive(Default, Debug, PartialEq, Eq, Hash)]
23 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
24 #[derive(Clone)]
25 pub struct BaseField(alloy::sol_types::private::primitives::aliases::U256);
26 const _: () = {
27 use alloy::sol_types as alloy_sol_types;
28 #[automatically_derived]
29 impl alloy_sol_types::private::SolTypeValue<BaseField>
30 for alloy::sol_types::private::primitives::aliases::U256 {
31 #[inline]
32 fn stv_to_tokens(
33 &self,
34 ) -> <alloy::sol_types::sol_data::Uint<
35 256,
36 > as alloy_sol_types::SolType>::Token<'_> {
37 alloy_sol_types::private::SolTypeValue::<
38 alloy::sol_types::sol_data::Uint<256>,
39 >::stv_to_tokens(self)
40 }
41 #[inline]
42 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
43 <alloy::sol_types::sol_data::Uint<
44 256,
45 > as alloy_sol_types::SolType>::tokenize(self)
46 .0
47 }
48 #[inline]
49 fn stv_abi_encode_packed_to(
50 &self,
51 out: &mut alloy_sol_types::private::Vec<u8>,
52 ) {
53 <alloy::sol_types::sol_data::Uint<
54 256,
55 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
56 }
57 #[inline]
58 fn stv_abi_packed_encoded_size(&self) -> usize {
59 <alloy::sol_types::sol_data::Uint<
60 256,
61 > as alloy_sol_types::SolType>::abi_encoded_size(self)
62 }
63 }
64 impl BaseField {
65 pub const NAME: &'static str = stringify!(BaseField);
67 #[inline]
69 pub const fn from_underlying(
70 value: alloy::sol_types::private::primitives::aliases::U256,
71 ) -> Self {
72 Self(value)
73 }
74 #[inline]
76 pub const fn into_underlying(
77 self,
78 ) -> alloy::sol_types::private::primitives::aliases::U256 {
79 self.0
80 }
81 #[inline]
84 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
85 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
86 }
87 #[inline]
90 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
91 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
92 }
93 }
94 #[automatically_derived]
95 impl From<alloy::sol_types::private::primitives::aliases::U256> for BaseField {
96 fn from(
97 value: alloy::sol_types::private::primitives::aliases::U256,
98 ) -> Self {
99 Self::from_underlying(value)
100 }
101 }
102 #[automatically_derived]
103 impl From<BaseField> for alloy::sol_types::private::primitives::aliases::U256 {
104 fn from(value: BaseField) -> Self {
105 value.into_underlying()
106 }
107 }
108 #[automatically_derived]
109 impl alloy_sol_types::SolType for BaseField {
110 type RustType = alloy::sol_types::private::primitives::aliases::U256;
111 type Token<'a> = <alloy::sol_types::sol_data::Uint<
112 256,
113 > as alloy_sol_types::SolType>::Token<'a>;
114 const SOL_NAME: &'static str = Self::NAME;
115 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
116 256,
117 > as alloy_sol_types::SolType>::ENCODED_SIZE;
118 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
119 256,
120 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
121 #[inline]
122 fn valid_token(token: &Self::Token<'_>) -> bool {
123 Self::type_check(token).is_ok()
124 }
125 #[inline]
126 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
127 <alloy::sol_types::sol_data::Uint<
128 256,
129 > as alloy_sol_types::SolType>::type_check(token)
130 }
131 #[inline]
132 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
133 <alloy::sol_types::sol_data::Uint<
134 256,
135 > as alloy_sol_types::SolType>::detokenize(token)
136 }
137 }
138 #[automatically_derived]
139 impl alloy_sol_types::EventTopic for BaseField {
140 #[inline]
141 fn topic_preimage_length(rust: &Self::RustType) -> usize {
142 <alloy::sol_types::sol_data::Uint<
143 256,
144 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
145 }
146 #[inline]
147 fn encode_topic_preimage(
148 rust: &Self::RustType,
149 out: &mut alloy_sol_types::private::Vec<u8>,
150 ) {
151 <alloy::sol_types::sol_data::Uint<
152 256,
153 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
154 }
155 #[inline]
156 fn encode_topic(
157 rust: &Self::RustType,
158 ) -> alloy_sol_types::abi::token::WordToken {
159 <alloy::sol_types::sol_data::Uint<
160 256,
161 > as alloy_sol_types::EventTopic>::encode_topic(rust)
162 }
163 }
164 };
165 #[derive(serde::Serialize, serde::Deserialize)]
166 #[derive(Default, Debug, PartialEq, Eq, Hash)]
167 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
168 #[derive(Clone)]
169 pub struct ScalarField(alloy::sol_types::private::primitives::aliases::U256);
170 const _: () = {
171 use alloy::sol_types as alloy_sol_types;
172 #[automatically_derived]
173 impl alloy_sol_types::private::SolTypeValue<ScalarField>
174 for alloy::sol_types::private::primitives::aliases::U256 {
175 #[inline]
176 fn stv_to_tokens(
177 &self,
178 ) -> <alloy::sol_types::sol_data::Uint<
179 256,
180 > as alloy_sol_types::SolType>::Token<'_> {
181 alloy_sol_types::private::SolTypeValue::<
182 alloy::sol_types::sol_data::Uint<256>,
183 >::stv_to_tokens(self)
184 }
185 #[inline]
186 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
187 <alloy::sol_types::sol_data::Uint<
188 256,
189 > as alloy_sol_types::SolType>::tokenize(self)
190 .0
191 }
192 #[inline]
193 fn stv_abi_encode_packed_to(
194 &self,
195 out: &mut alloy_sol_types::private::Vec<u8>,
196 ) {
197 <alloy::sol_types::sol_data::Uint<
198 256,
199 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
200 }
201 #[inline]
202 fn stv_abi_packed_encoded_size(&self) -> usize {
203 <alloy::sol_types::sol_data::Uint<
204 256,
205 > as alloy_sol_types::SolType>::abi_encoded_size(self)
206 }
207 }
208 impl ScalarField {
209 pub const NAME: &'static str = stringify!(ScalarField);
211 #[inline]
213 pub const fn from_underlying(
214 value: alloy::sol_types::private::primitives::aliases::U256,
215 ) -> Self {
216 Self(value)
217 }
218 #[inline]
220 pub const fn into_underlying(
221 self,
222 ) -> alloy::sol_types::private::primitives::aliases::U256 {
223 self.0
224 }
225 #[inline]
228 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
229 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
230 }
231 #[inline]
234 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
235 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
236 }
237 }
238 #[automatically_derived]
239 impl From<alloy::sol_types::private::primitives::aliases::U256> for ScalarField {
240 fn from(
241 value: alloy::sol_types::private::primitives::aliases::U256,
242 ) -> Self {
243 Self::from_underlying(value)
244 }
245 }
246 #[automatically_derived]
247 impl From<ScalarField> for alloy::sol_types::private::primitives::aliases::U256 {
248 fn from(value: ScalarField) -> Self {
249 value.into_underlying()
250 }
251 }
252 #[automatically_derived]
253 impl alloy_sol_types::SolType for ScalarField {
254 type RustType = alloy::sol_types::private::primitives::aliases::U256;
255 type Token<'a> = <alloy::sol_types::sol_data::Uint<
256 256,
257 > as alloy_sol_types::SolType>::Token<'a>;
258 const SOL_NAME: &'static str = Self::NAME;
259 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
260 256,
261 > as alloy_sol_types::SolType>::ENCODED_SIZE;
262 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
263 256,
264 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
265 #[inline]
266 fn valid_token(token: &Self::Token<'_>) -> bool {
267 Self::type_check(token).is_ok()
268 }
269 #[inline]
270 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
271 <alloy::sol_types::sol_data::Uint<
272 256,
273 > as alloy_sol_types::SolType>::type_check(token)
274 }
275 #[inline]
276 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
277 <alloy::sol_types::sol_data::Uint<
278 256,
279 > as alloy_sol_types::SolType>::detokenize(token)
280 }
281 }
282 #[automatically_derived]
283 impl alloy_sol_types::EventTopic for ScalarField {
284 #[inline]
285 fn topic_preimage_length(rust: &Self::RustType) -> usize {
286 <alloy::sol_types::sol_data::Uint<
287 256,
288 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
289 }
290 #[inline]
291 fn encode_topic_preimage(
292 rust: &Self::RustType,
293 out: &mut alloy_sol_types::private::Vec<u8>,
294 ) {
295 <alloy::sol_types::sol_data::Uint<
296 256,
297 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
298 }
299 #[inline]
300 fn encode_topic(
301 rust: &Self::RustType,
302 ) -> alloy_sol_types::abi::token::WordToken {
303 <alloy::sol_types::sol_data::Uint<
304 256,
305 > as alloy_sol_types::EventTopic>::encode_topic(rust)
306 }
307 }
308 };
309 #[derive(serde::Serialize, serde::Deserialize)]
310 #[derive(Default, Debug, PartialEq, Eq, Hash)]
311 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
315 #[derive(Clone)]
316 pub struct G1Point {
317 #[allow(missing_docs)]
318 pub x: <BaseField as alloy::sol_types::SolType>::RustType,
319 #[allow(missing_docs)]
320 pub y: <BaseField as alloy::sol_types::SolType>::RustType,
321 }
322 #[allow(
323 non_camel_case_types,
324 non_snake_case,
325 clippy::pub_underscore_fields,
326 clippy::style
327 )]
328 const _: () = {
329 use alloy::sol_types as alloy_sol_types;
330 #[doc(hidden)]
331 #[allow(dead_code)]
332 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
333 #[doc(hidden)]
334 type UnderlyingRustTuple<'a> = (
335 <BaseField as alloy::sol_types::SolType>::RustType,
336 <BaseField as alloy::sol_types::SolType>::RustType,
337 );
338 #[cfg(test)]
339 #[allow(dead_code, unreachable_patterns)]
340 fn _type_assertion(
341 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
342 ) {
343 match _t {
344 alloy_sol_types::private::AssertTypeEq::<
345 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
346 >(_) => {}
347 }
348 }
349 #[automatically_derived]
350 #[doc(hidden)]
351 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
352 fn from(value: G1Point) -> Self {
353 (value.x, value.y)
354 }
355 }
356 #[automatically_derived]
357 #[doc(hidden)]
358 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
359 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
360 Self { x: tuple.0, y: tuple.1 }
361 }
362 }
363 #[automatically_derived]
364 impl alloy_sol_types::SolValue for G1Point {
365 type SolType = Self;
366 }
367 #[automatically_derived]
368 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
369 #[inline]
370 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
371 (
372 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
373 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
374 )
375 }
376 #[inline]
377 fn stv_abi_encoded_size(&self) -> usize {
378 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
379 return size;
380 }
381 let tuple = <UnderlyingRustTuple<
382 '_,
383 > as ::core::convert::From<Self>>::from(self.clone());
384 <UnderlyingSolTuple<
385 '_,
386 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
387 }
388 #[inline]
389 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
390 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
391 }
392 #[inline]
393 fn stv_abi_encode_packed_to(
394 &self,
395 out: &mut alloy_sol_types::private::Vec<u8>,
396 ) {
397 let tuple = <UnderlyingRustTuple<
398 '_,
399 > as ::core::convert::From<Self>>::from(self.clone());
400 <UnderlyingSolTuple<
401 '_,
402 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
403 }
404 #[inline]
405 fn stv_abi_packed_encoded_size(&self) -> usize {
406 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
407 return size;
408 }
409 let tuple = <UnderlyingRustTuple<
410 '_,
411 > as ::core::convert::From<Self>>::from(self.clone());
412 <UnderlyingSolTuple<
413 '_,
414 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
415 }
416 }
417 #[automatically_derived]
418 impl alloy_sol_types::SolType for G1Point {
419 type RustType = Self;
420 type Token<'a> = <UnderlyingSolTuple<
421 'a,
422 > as alloy_sol_types::SolType>::Token<'a>;
423 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
424 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
425 '_,
426 > as alloy_sol_types::SolType>::ENCODED_SIZE;
427 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
428 '_,
429 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
430 #[inline]
431 fn valid_token(token: &Self::Token<'_>) -> bool {
432 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
433 }
434 #[inline]
435 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
436 let tuple = <UnderlyingSolTuple<
437 '_,
438 > as alloy_sol_types::SolType>::detokenize(token);
439 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
440 }
441 }
442 #[automatically_derived]
443 impl alloy_sol_types::SolStruct for G1Point {
444 const NAME: &'static str = "G1Point";
445 #[inline]
446 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
447 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
448 }
449 #[inline]
450 fn eip712_components() -> alloy_sol_types::private::Vec<
451 alloy_sol_types::private::Cow<'static, str>,
452 > {
453 alloy_sol_types::private::Vec::new()
454 }
455 #[inline]
456 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
457 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
458 }
459 #[inline]
460 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
461 [
462 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
463 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
464 ]
465 .concat()
466 }
467 }
468 #[automatically_derived]
469 impl alloy_sol_types::EventTopic for G1Point {
470 #[inline]
471 fn topic_preimage_length(rust: &Self::RustType) -> usize {
472 0usize
473 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
474 &rust.x,
475 )
476 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
477 &rust.y,
478 )
479 }
480 #[inline]
481 fn encode_topic_preimage(
482 rust: &Self::RustType,
483 out: &mut alloy_sol_types::private::Vec<u8>,
484 ) {
485 out.reserve(
486 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
487 );
488 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
489 &rust.x,
490 out,
491 );
492 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
493 &rust.y,
494 out,
495 );
496 }
497 #[inline]
498 fn encode_topic(
499 rust: &Self::RustType,
500 ) -> alloy_sol_types::abi::token::WordToken {
501 let mut out = alloy_sol_types::private::Vec::new();
502 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
503 rust,
504 &mut out,
505 );
506 alloy_sol_types::abi::token::WordToken(
507 alloy_sol_types::private::keccak256(out),
508 )
509 }
510 }
511 };
512 use alloy::contract as alloy_contract;
513 #[inline]
517 pub const fn new<
518 P: alloy_contract::private::Provider<N>,
519 N: alloy_contract::private::Network,
520 >(address: alloy_sol_types::private::Address, __provider: P) -> BN254Instance<P, N> {
521 BN254Instance::<P, N>::new(address, __provider)
522 }
523 #[derive(Clone)]
535 pub struct BN254Instance<P, N = alloy_contract::private::Ethereum> {
536 address: alloy_sol_types::private::Address,
537 provider: P,
538 _network: ::core::marker::PhantomData<N>,
539 }
540 #[automatically_derived]
541 impl<P, N> ::core::fmt::Debug for BN254Instance<P, N> {
542 #[inline]
543 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
544 f.debug_tuple("BN254Instance").field(&self.address).finish()
545 }
546 }
547 impl<
549 P: alloy_contract::private::Provider<N>,
550 N: alloy_contract::private::Network,
551 > BN254Instance<P, N> {
552 #[inline]
556 pub const fn new(
557 address: alloy_sol_types::private::Address,
558 __provider: P,
559 ) -> Self {
560 Self {
561 address,
562 provider: __provider,
563 _network: ::core::marker::PhantomData,
564 }
565 }
566 #[inline]
568 pub const fn address(&self) -> &alloy_sol_types::private::Address {
569 &self.address
570 }
571 #[inline]
573 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
574 self.address = address;
575 }
576 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
578 self.set_address(address);
579 self
580 }
581 #[inline]
583 pub const fn provider(&self) -> &P {
584 &self.provider
585 }
586 }
587 impl<P: ::core::clone::Clone, N> BN254Instance<&P, N> {
588 #[inline]
590 pub fn with_cloned_provider(self) -> BN254Instance<P, N> {
591 BN254Instance {
592 address: self.address,
593 provider: ::core::clone::Clone::clone(&self.provider),
594 _network: ::core::marker::PhantomData,
595 }
596 }
597 }
598 impl<
600 P: alloy_contract::private::Provider<N>,
601 N: alloy_contract::private::Network,
602 > BN254Instance<P, N> {
603 pub fn call_builder<C: alloy_sol_types::SolCall>(
608 &self,
609 call: &C,
610 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
611 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
612 }
613 }
614 impl<
616 P: alloy_contract::private::Provider<N>,
617 N: alloy_contract::private::Network,
618 > BN254Instance<P, N> {
619 pub fn event_filter<E: alloy_sol_types::SolEvent>(
624 &self,
625 ) -> alloy_contract::Event<&P, E, N> {
626 alloy_contract::Event::new_sol(&self.provider, &self.address)
627 }
628 }
629}
630#[allow(
640 non_camel_case_types,
641 non_snake_case,
642 clippy::pub_underscore_fields,
643 clippy::style,
644 clippy::empty_structs_with_brackets
645)]
646pub mod IPlonkVerifier {
647 use super::*;
648 use alloy::sol_types as alloy_sol_types;
649 #[derive(serde::Serialize, serde::Deserialize)]
650 #[derive(Default, Debug, PartialEq, Eq, Hash)]
651 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
655 #[derive(Clone)]
656 pub struct PlonkProof {
657 #[allow(missing_docs)]
658 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
659 #[allow(missing_docs)]
660 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
661 #[allow(missing_docs)]
662 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
663 #[allow(missing_docs)]
664 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
665 #[allow(missing_docs)]
666 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
667 #[allow(missing_docs)]
668 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
669 #[allow(missing_docs)]
670 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
671 #[allow(missing_docs)]
672 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
673 #[allow(missing_docs)]
674 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
675 #[allow(missing_docs)]
676 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
677 #[allow(missing_docs)]
678 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
679 #[allow(missing_docs)]
680 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
681 #[allow(missing_docs)]
682 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
683 #[allow(missing_docs)]
684 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
685 #[allow(missing_docs)]
686 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
687 #[allow(missing_docs)]
688 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
689 #[allow(missing_docs)]
690 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
691 #[allow(missing_docs)]
692 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
693 #[allow(missing_docs)]
694 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
695 #[allow(missing_docs)]
696 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
697 #[allow(missing_docs)]
698 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
699 #[allow(missing_docs)]
700 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
701 #[allow(missing_docs)]
702 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
703 }
704 #[allow(
705 non_camel_case_types,
706 non_snake_case,
707 clippy::pub_underscore_fields,
708 clippy::style
709 )]
710 const _: () = {
711 use alloy::sol_types as alloy_sol_types;
712 #[doc(hidden)]
713 #[allow(dead_code)]
714 type UnderlyingSolTuple<'a> = (
715 BN254::G1Point,
716 BN254::G1Point,
717 BN254::G1Point,
718 BN254::G1Point,
719 BN254::G1Point,
720 BN254::G1Point,
721 BN254::G1Point,
722 BN254::G1Point,
723 BN254::G1Point,
724 BN254::G1Point,
725 BN254::G1Point,
726 BN254::G1Point,
727 BN254::G1Point,
728 BN254::ScalarField,
729 BN254::ScalarField,
730 BN254::ScalarField,
731 BN254::ScalarField,
732 BN254::ScalarField,
733 BN254::ScalarField,
734 BN254::ScalarField,
735 BN254::ScalarField,
736 BN254::ScalarField,
737 BN254::ScalarField,
738 );
739 #[doc(hidden)]
740 type UnderlyingRustTuple<'a> = (
741 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
742 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
743 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
744 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
745 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
746 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
747 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
748 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
749 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
750 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
751 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
752 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
753 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
754 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
755 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
756 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
757 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
758 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
759 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
760 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
761 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
762 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
763 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
764 );
765 #[cfg(test)]
766 #[allow(dead_code, unreachable_patterns)]
767 fn _type_assertion(
768 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
769 ) {
770 match _t {
771 alloy_sol_types::private::AssertTypeEq::<
772 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
773 >(_) => {}
774 }
775 }
776 #[automatically_derived]
777 #[doc(hidden)]
778 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
779 fn from(value: PlonkProof) -> Self {
780 (
781 value.wire0,
782 value.wire1,
783 value.wire2,
784 value.wire3,
785 value.wire4,
786 value.prodPerm,
787 value.split0,
788 value.split1,
789 value.split2,
790 value.split3,
791 value.split4,
792 value.zeta,
793 value.zetaOmega,
794 value.wireEval0,
795 value.wireEval1,
796 value.wireEval2,
797 value.wireEval3,
798 value.wireEval4,
799 value.sigmaEval0,
800 value.sigmaEval1,
801 value.sigmaEval2,
802 value.sigmaEval3,
803 value.prodPermZetaOmegaEval,
804 )
805 }
806 }
807 #[automatically_derived]
808 #[doc(hidden)]
809 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
810 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
811 Self {
812 wire0: tuple.0,
813 wire1: tuple.1,
814 wire2: tuple.2,
815 wire3: tuple.3,
816 wire4: tuple.4,
817 prodPerm: tuple.5,
818 split0: tuple.6,
819 split1: tuple.7,
820 split2: tuple.8,
821 split3: tuple.9,
822 split4: tuple.10,
823 zeta: tuple.11,
824 zetaOmega: tuple.12,
825 wireEval0: tuple.13,
826 wireEval1: tuple.14,
827 wireEval2: tuple.15,
828 wireEval3: tuple.16,
829 wireEval4: tuple.17,
830 sigmaEval0: tuple.18,
831 sigmaEval1: tuple.19,
832 sigmaEval2: tuple.20,
833 sigmaEval3: tuple.21,
834 prodPermZetaOmegaEval: tuple.22,
835 }
836 }
837 }
838 #[automatically_derived]
839 impl alloy_sol_types::SolValue for PlonkProof {
840 type SolType = Self;
841 }
842 #[automatically_derived]
843 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
844 #[inline]
845 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
846 (
847 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
848 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
849 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
850 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
851 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
852 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
853 &self.prodPerm,
854 ),
855 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
856 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
857 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
858 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
859 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
860 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
861 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
862 &self.zetaOmega,
863 ),
864 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
865 &self.wireEval0,
866 ),
867 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
868 &self.wireEval1,
869 ),
870 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
871 &self.wireEval2,
872 ),
873 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
874 &self.wireEval3,
875 ),
876 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
877 &self.wireEval4,
878 ),
879 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
880 &self.sigmaEval0,
881 ),
882 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
883 &self.sigmaEval1,
884 ),
885 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
886 &self.sigmaEval2,
887 ),
888 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
889 &self.sigmaEval3,
890 ),
891 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
892 &self.prodPermZetaOmegaEval,
893 ),
894 )
895 }
896 #[inline]
897 fn stv_abi_encoded_size(&self) -> usize {
898 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
899 return size;
900 }
901 let tuple = <UnderlyingRustTuple<
902 '_,
903 > as ::core::convert::From<Self>>::from(self.clone());
904 <UnderlyingSolTuple<
905 '_,
906 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
907 }
908 #[inline]
909 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
910 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
911 }
912 #[inline]
913 fn stv_abi_encode_packed_to(
914 &self,
915 out: &mut alloy_sol_types::private::Vec<u8>,
916 ) {
917 let tuple = <UnderlyingRustTuple<
918 '_,
919 > as ::core::convert::From<Self>>::from(self.clone());
920 <UnderlyingSolTuple<
921 '_,
922 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
923 }
924 #[inline]
925 fn stv_abi_packed_encoded_size(&self) -> usize {
926 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
927 return size;
928 }
929 let tuple = <UnderlyingRustTuple<
930 '_,
931 > as ::core::convert::From<Self>>::from(self.clone());
932 <UnderlyingSolTuple<
933 '_,
934 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
935 }
936 }
937 #[automatically_derived]
938 impl alloy_sol_types::SolType for PlonkProof {
939 type RustType = Self;
940 type Token<'a> = <UnderlyingSolTuple<
941 'a,
942 > as alloy_sol_types::SolType>::Token<'a>;
943 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
944 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
945 '_,
946 > as alloy_sol_types::SolType>::ENCODED_SIZE;
947 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
948 '_,
949 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
950 #[inline]
951 fn valid_token(token: &Self::Token<'_>) -> bool {
952 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
953 }
954 #[inline]
955 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
956 let tuple = <UnderlyingSolTuple<
957 '_,
958 > as alloy_sol_types::SolType>::detokenize(token);
959 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
960 }
961 }
962 #[automatically_derived]
963 impl alloy_sol_types::SolStruct for PlonkProof {
964 const NAME: &'static str = "PlonkProof";
965 #[inline]
966 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
967 alloy_sol_types::private::Cow::Borrowed(
968 "PlonkProof(G1Point wire0,G1Point wire1,G1Point wire2,G1Point wire3,G1Point wire4,G1Point prodPerm,G1Point split0,G1Point split1,G1Point split2,G1Point split3,G1Point split4,G1Point zeta,G1Point zetaOmega,uint256 wireEval0,uint256 wireEval1,uint256 wireEval2,uint256 wireEval3,uint256 wireEval4,uint256 sigmaEval0,uint256 sigmaEval1,uint256 sigmaEval2,uint256 sigmaEval3,uint256 prodPermZetaOmegaEval)",
969 )
970 }
971 #[inline]
972 fn eip712_components() -> alloy_sol_types::private::Vec<
973 alloy_sol_types::private::Cow<'static, str>,
974 > {
975 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
976 components
977 .push(
978 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
979 );
980 components
981 .extend(
982 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
983 );
984 components
985 .push(
986 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
987 );
988 components
989 .extend(
990 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
991 );
992 components
993 .push(
994 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
995 );
996 components
997 .extend(
998 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
999 );
1000 components
1001 .push(
1002 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1003 );
1004 components
1005 .extend(
1006 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1007 );
1008 components
1009 .push(
1010 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1011 );
1012 components
1013 .extend(
1014 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1015 );
1016 components
1017 .push(
1018 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1019 );
1020 components
1021 .extend(
1022 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1023 );
1024 components
1025 .push(
1026 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1027 );
1028 components
1029 .extend(
1030 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1031 );
1032 components
1033 .push(
1034 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1035 );
1036 components
1037 .extend(
1038 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1039 );
1040 components
1041 .push(
1042 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1043 );
1044 components
1045 .extend(
1046 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1047 );
1048 components
1049 .push(
1050 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1051 );
1052 components
1053 .extend(
1054 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1055 );
1056 components
1057 .push(
1058 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1059 );
1060 components
1061 .extend(
1062 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1063 );
1064 components
1065 .push(
1066 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1067 );
1068 components
1069 .extend(
1070 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1071 );
1072 components
1073 .push(
1074 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1075 );
1076 components
1077 .extend(
1078 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1079 );
1080 components
1081 }
1082 #[inline]
1083 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1084 [
1085 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1086 &self.wire0,
1087 )
1088 .0,
1089 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1090 &self.wire1,
1091 )
1092 .0,
1093 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1094 &self.wire2,
1095 )
1096 .0,
1097 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1098 &self.wire3,
1099 )
1100 .0,
1101 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1102 &self.wire4,
1103 )
1104 .0,
1105 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1106 &self.prodPerm,
1107 )
1108 .0,
1109 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1110 &self.split0,
1111 )
1112 .0,
1113 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1114 &self.split1,
1115 )
1116 .0,
1117 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1118 &self.split2,
1119 )
1120 .0,
1121 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1122 &self.split3,
1123 )
1124 .0,
1125 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1126 &self.split4,
1127 )
1128 .0,
1129 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1130 &self.zeta,
1131 )
1132 .0,
1133 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1134 &self.zetaOmega,
1135 )
1136 .0,
1137 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1138 &self.wireEval0,
1139 )
1140 .0,
1141 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1142 &self.wireEval1,
1143 )
1144 .0,
1145 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1146 &self.wireEval2,
1147 )
1148 .0,
1149 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1150 &self.wireEval3,
1151 )
1152 .0,
1153 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1154 &self.wireEval4,
1155 )
1156 .0,
1157 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1158 &self.sigmaEval0,
1159 )
1160 .0,
1161 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1162 &self.sigmaEval1,
1163 )
1164 .0,
1165 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1166 &self.sigmaEval2,
1167 )
1168 .0,
1169 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1170 &self.sigmaEval3,
1171 )
1172 .0,
1173 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1174 &self.prodPermZetaOmegaEval,
1175 )
1176 .0,
1177 ]
1178 .concat()
1179 }
1180 }
1181 #[automatically_derived]
1182 impl alloy_sol_types::EventTopic for PlonkProof {
1183 #[inline]
1184 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1185 0usize
1186 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1187 &rust.wire0,
1188 )
1189 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1190 &rust.wire1,
1191 )
1192 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1193 &rust.wire2,
1194 )
1195 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1196 &rust.wire3,
1197 )
1198 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1199 &rust.wire4,
1200 )
1201 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1202 &rust.prodPerm,
1203 )
1204 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1205 &rust.split0,
1206 )
1207 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1208 &rust.split1,
1209 )
1210 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1211 &rust.split2,
1212 )
1213 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1214 &rust.split3,
1215 )
1216 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1217 &rust.split4,
1218 )
1219 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1220 &rust.zeta,
1221 )
1222 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1223 &rust.zetaOmega,
1224 )
1225 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1226 &rust.wireEval0,
1227 )
1228 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1229 &rust.wireEval1,
1230 )
1231 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1232 &rust.wireEval2,
1233 )
1234 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1235 &rust.wireEval3,
1236 )
1237 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1238 &rust.wireEval4,
1239 )
1240 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1241 &rust.sigmaEval0,
1242 )
1243 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1244 &rust.sigmaEval1,
1245 )
1246 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1247 &rust.sigmaEval2,
1248 )
1249 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1250 &rust.sigmaEval3,
1251 )
1252 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1253 &rust.prodPermZetaOmegaEval,
1254 )
1255 }
1256 #[inline]
1257 fn encode_topic_preimage(
1258 rust: &Self::RustType,
1259 out: &mut alloy_sol_types::private::Vec<u8>,
1260 ) {
1261 out.reserve(
1262 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1263 );
1264 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1265 &rust.wire0,
1266 out,
1267 );
1268 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1269 &rust.wire1,
1270 out,
1271 );
1272 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1273 &rust.wire2,
1274 out,
1275 );
1276 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1277 &rust.wire3,
1278 out,
1279 );
1280 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1281 &rust.wire4,
1282 out,
1283 );
1284 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1285 &rust.prodPerm,
1286 out,
1287 );
1288 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1289 &rust.split0,
1290 out,
1291 );
1292 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1293 &rust.split1,
1294 out,
1295 );
1296 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1297 &rust.split2,
1298 out,
1299 );
1300 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1301 &rust.split3,
1302 out,
1303 );
1304 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1305 &rust.split4,
1306 out,
1307 );
1308 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1309 &rust.zeta,
1310 out,
1311 );
1312 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1313 &rust.zetaOmega,
1314 out,
1315 );
1316 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1317 &rust.wireEval0,
1318 out,
1319 );
1320 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1321 &rust.wireEval1,
1322 out,
1323 );
1324 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1325 &rust.wireEval2,
1326 out,
1327 );
1328 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1329 &rust.wireEval3,
1330 out,
1331 );
1332 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1333 &rust.wireEval4,
1334 out,
1335 );
1336 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1337 &rust.sigmaEval0,
1338 out,
1339 );
1340 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1341 &rust.sigmaEval1,
1342 out,
1343 );
1344 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1345 &rust.sigmaEval2,
1346 out,
1347 );
1348 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1349 &rust.sigmaEval3,
1350 out,
1351 );
1352 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1353 &rust.prodPermZetaOmegaEval,
1354 out,
1355 );
1356 }
1357 #[inline]
1358 fn encode_topic(
1359 rust: &Self::RustType,
1360 ) -> alloy_sol_types::abi::token::WordToken {
1361 let mut out = alloy_sol_types::private::Vec::new();
1362 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1363 rust,
1364 &mut out,
1365 );
1366 alloy_sol_types::abi::token::WordToken(
1367 alloy_sol_types::private::keccak256(out),
1368 )
1369 }
1370 }
1371 };
1372 #[derive(serde::Serialize, serde::Deserialize)]
1373 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1374 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1378 #[derive(Clone)]
1379 pub struct VerifyingKey {
1380 #[allow(missing_docs)]
1381 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
1382 #[allow(missing_docs)]
1383 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
1384 #[allow(missing_docs)]
1385 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1386 #[allow(missing_docs)]
1387 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1388 #[allow(missing_docs)]
1389 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1390 #[allow(missing_docs)]
1391 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1392 #[allow(missing_docs)]
1393 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1394 #[allow(missing_docs)]
1395 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1396 #[allow(missing_docs)]
1397 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1398 #[allow(missing_docs)]
1399 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1400 #[allow(missing_docs)]
1401 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1402 #[allow(missing_docs)]
1403 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1404 #[allow(missing_docs)]
1405 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1406 #[allow(missing_docs)]
1407 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1408 #[allow(missing_docs)]
1409 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1410 #[allow(missing_docs)]
1411 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1412 #[allow(missing_docs)]
1413 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1414 #[allow(missing_docs)]
1415 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1416 #[allow(missing_docs)]
1417 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1418 #[allow(missing_docs)]
1419 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1420 #[allow(missing_docs)]
1421 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
1422 #[allow(missing_docs)]
1423 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
1424 }
1425 #[allow(
1426 non_camel_case_types,
1427 non_snake_case,
1428 clippy::pub_underscore_fields,
1429 clippy::style
1430 )]
1431 const _: () = {
1432 use alloy::sol_types as alloy_sol_types;
1433 #[doc(hidden)]
1434 #[allow(dead_code)]
1435 type UnderlyingSolTuple<'a> = (
1436 alloy::sol_types::sol_data::Uint<256>,
1437 alloy::sol_types::sol_data::Uint<256>,
1438 BN254::G1Point,
1439 BN254::G1Point,
1440 BN254::G1Point,
1441 BN254::G1Point,
1442 BN254::G1Point,
1443 BN254::G1Point,
1444 BN254::G1Point,
1445 BN254::G1Point,
1446 BN254::G1Point,
1447 BN254::G1Point,
1448 BN254::G1Point,
1449 BN254::G1Point,
1450 BN254::G1Point,
1451 BN254::G1Point,
1452 BN254::G1Point,
1453 BN254::G1Point,
1454 BN254::G1Point,
1455 BN254::G1Point,
1456 alloy::sol_types::sol_data::FixedBytes<32>,
1457 alloy::sol_types::sol_data::FixedBytes<32>,
1458 );
1459 #[doc(hidden)]
1460 type UnderlyingRustTuple<'a> = (
1461 alloy::sol_types::private::primitives::aliases::U256,
1462 alloy::sol_types::private::primitives::aliases::U256,
1463 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1464 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1465 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1466 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1467 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1468 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1469 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1470 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1471 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1472 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1473 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1474 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1475 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1476 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1477 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1478 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1479 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1480 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1481 alloy::sol_types::private::FixedBytes<32>,
1482 alloy::sol_types::private::FixedBytes<32>,
1483 );
1484 #[cfg(test)]
1485 #[allow(dead_code, unreachable_patterns)]
1486 fn _type_assertion(
1487 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1488 ) {
1489 match _t {
1490 alloy_sol_types::private::AssertTypeEq::<
1491 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1492 >(_) => {}
1493 }
1494 }
1495 #[automatically_derived]
1496 #[doc(hidden)]
1497 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
1498 fn from(value: VerifyingKey) -> Self {
1499 (
1500 value.domainSize,
1501 value.numInputs,
1502 value.sigma0,
1503 value.sigma1,
1504 value.sigma2,
1505 value.sigma3,
1506 value.sigma4,
1507 value.q1,
1508 value.q2,
1509 value.q3,
1510 value.q4,
1511 value.qM12,
1512 value.qM34,
1513 value.qO,
1514 value.qC,
1515 value.qH1,
1516 value.qH2,
1517 value.qH3,
1518 value.qH4,
1519 value.qEcc,
1520 value.g2LSB,
1521 value.g2MSB,
1522 )
1523 }
1524 }
1525 #[automatically_derived]
1526 #[doc(hidden)]
1527 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
1528 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1529 Self {
1530 domainSize: tuple.0,
1531 numInputs: tuple.1,
1532 sigma0: tuple.2,
1533 sigma1: tuple.3,
1534 sigma2: tuple.4,
1535 sigma3: tuple.5,
1536 sigma4: tuple.6,
1537 q1: tuple.7,
1538 q2: tuple.8,
1539 q3: tuple.9,
1540 q4: tuple.10,
1541 qM12: tuple.11,
1542 qM34: tuple.12,
1543 qO: tuple.13,
1544 qC: tuple.14,
1545 qH1: tuple.15,
1546 qH2: tuple.16,
1547 qH3: tuple.17,
1548 qH4: tuple.18,
1549 qEcc: tuple.19,
1550 g2LSB: tuple.20,
1551 g2MSB: tuple.21,
1552 }
1553 }
1554 }
1555 #[automatically_derived]
1556 impl alloy_sol_types::SolValue for VerifyingKey {
1557 type SolType = Self;
1558 }
1559 #[automatically_derived]
1560 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
1561 #[inline]
1562 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1563 (
1564 <alloy::sol_types::sol_data::Uint<
1565 256,
1566 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
1567 <alloy::sol_types::sol_data::Uint<
1568 256,
1569 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
1570 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
1571 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
1572 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
1573 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
1574 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
1575 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
1576 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
1577 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
1578 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
1579 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
1580 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
1581 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
1582 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
1583 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
1584 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
1585 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
1586 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
1587 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
1588 <alloy::sol_types::sol_data::FixedBytes<
1589 32,
1590 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
1591 <alloy::sol_types::sol_data::FixedBytes<
1592 32,
1593 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
1594 )
1595 }
1596 #[inline]
1597 fn stv_abi_encoded_size(&self) -> usize {
1598 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1599 return size;
1600 }
1601 let tuple = <UnderlyingRustTuple<
1602 '_,
1603 > as ::core::convert::From<Self>>::from(self.clone());
1604 <UnderlyingSolTuple<
1605 '_,
1606 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1607 }
1608 #[inline]
1609 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1610 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1611 }
1612 #[inline]
1613 fn stv_abi_encode_packed_to(
1614 &self,
1615 out: &mut alloy_sol_types::private::Vec<u8>,
1616 ) {
1617 let tuple = <UnderlyingRustTuple<
1618 '_,
1619 > as ::core::convert::From<Self>>::from(self.clone());
1620 <UnderlyingSolTuple<
1621 '_,
1622 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1623 }
1624 #[inline]
1625 fn stv_abi_packed_encoded_size(&self) -> usize {
1626 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1627 return size;
1628 }
1629 let tuple = <UnderlyingRustTuple<
1630 '_,
1631 > as ::core::convert::From<Self>>::from(self.clone());
1632 <UnderlyingSolTuple<
1633 '_,
1634 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1635 }
1636 }
1637 #[automatically_derived]
1638 impl alloy_sol_types::SolType for VerifyingKey {
1639 type RustType = Self;
1640 type Token<'a> = <UnderlyingSolTuple<
1641 'a,
1642 > as alloy_sol_types::SolType>::Token<'a>;
1643 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1644 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1645 '_,
1646 > as alloy_sol_types::SolType>::ENCODED_SIZE;
1647 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1648 '_,
1649 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1650 #[inline]
1651 fn valid_token(token: &Self::Token<'_>) -> bool {
1652 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1653 }
1654 #[inline]
1655 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1656 let tuple = <UnderlyingSolTuple<
1657 '_,
1658 > as alloy_sol_types::SolType>::detokenize(token);
1659 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1660 }
1661 }
1662 #[automatically_derived]
1663 impl alloy_sol_types::SolStruct for VerifyingKey {
1664 const NAME: &'static str = "VerifyingKey";
1665 #[inline]
1666 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1667 alloy_sol_types::private::Cow::Borrowed(
1668 "VerifyingKey(uint256 domainSize,uint256 numInputs,G1Point sigma0,G1Point sigma1,G1Point sigma2,G1Point sigma3,G1Point sigma4,G1Point q1,G1Point q2,G1Point q3,G1Point q4,G1Point qM12,G1Point qM34,G1Point qO,G1Point qC,G1Point qH1,G1Point qH2,G1Point qH3,G1Point qH4,G1Point qEcc,bytes32 g2LSB,bytes32 g2MSB)",
1669 )
1670 }
1671 #[inline]
1672 fn eip712_components() -> alloy_sol_types::private::Vec<
1673 alloy_sol_types::private::Cow<'static, str>,
1674 > {
1675 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
1676 components
1677 .push(
1678 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1679 );
1680 components
1681 .extend(
1682 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1683 );
1684 components
1685 .push(
1686 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1687 );
1688 components
1689 .extend(
1690 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1691 );
1692 components
1693 .push(
1694 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1695 );
1696 components
1697 .extend(
1698 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1699 );
1700 components
1701 .push(
1702 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1703 );
1704 components
1705 .extend(
1706 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1707 );
1708 components
1709 .push(
1710 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1711 );
1712 components
1713 .extend(
1714 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1715 );
1716 components
1717 .push(
1718 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1719 );
1720 components
1721 .extend(
1722 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1723 );
1724 components
1725 .push(
1726 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1727 );
1728 components
1729 .extend(
1730 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1731 );
1732 components
1733 .push(
1734 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1735 );
1736 components
1737 .extend(
1738 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1739 );
1740 components
1741 .push(
1742 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1743 );
1744 components
1745 .extend(
1746 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1747 );
1748 components
1749 .push(
1750 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1751 );
1752 components
1753 .extend(
1754 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1755 );
1756 components
1757 .push(
1758 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1759 );
1760 components
1761 .extend(
1762 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1763 );
1764 components
1765 .push(
1766 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1767 );
1768 components
1769 .extend(
1770 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1771 );
1772 components
1773 .push(
1774 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1775 );
1776 components
1777 .extend(
1778 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1779 );
1780 components
1781 .push(
1782 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1783 );
1784 components
1785 .extend(
1786 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1787 );
1788 components
1789 .push(
1790 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1791 );
1792 components
1793 .extend(
1794 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1795 );
1796 components
1797 .push(
1798 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1799 );
1800 components
1801 .extend(
1802 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1803 );
1804 components
1805 .push(
1806 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1807 );
1808 components
1809 .extend(
1810 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1811 );
1812 components
1813 .push(
1814 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1815 );
1816 components
1817 .extend(
1818 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1819 );
1820 components
1821 }
1822 #[inline]
1823 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1824 [
1825 <alloy::sol_types::sol_data::Uint<
1826 256,
1827 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
1828 .0,
1829 <alloy::sol_types::sol_data::Uint<
1830 256,
1831 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
1832 .0,
1833 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1834 &self.sigma0,
1835 )
1836 .0,
1837 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1838 &self.sigma1,
1839 )
1840 .0,
1841 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1842 &self.sigma2,
1843 )
1844 .0,
1845 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1846 &self.sigma3,
1847 )
1848 .0,
1849 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1850 &self.sigma4,
1851 )
1852 .0,
1853 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1854 &self.q1,
1855 )
1856 .0,
1857 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1858 &self.q2,
1859 )
1860 .0,
1861 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1862 &self.q3,
1863 )
1864 .0,
1865 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1866 &self.q4,
1867 )
1868 .0,
1869 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1870 &self.qM12,
1871 )
1872 .0,
1873 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1874 &self.qM34,
1875 )
1876 .0,
1877 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1878 &self.qO,
1879 )
1880 .0,
1881 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1882 &self.qC,
1883 )
1884 .0,
1885 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1886 &self.qH1,
1887 )
1888 .0,
1889 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1890 &self.qH2,
1891 )
1892 .0,
1893 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1894 &self.qH3,
1895 )
1896 .0,
1897 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1898 &self.qH4,
1899 )
1900 .0,
1901 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1902 &self.qEcc,
1903 )
1904 .0,
1905 <alloy::sol_types::sol_data::FixedBytes<
1906 32,
1907 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
1908 .0,
1909 <alloy::sol_types::sol_data::FixedBytes<
1910 32,
1911 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
1912 .0,
1913 ]
1914 .concat()
1915 }
1916 }
1917 #[automatically_derived]
1918 impl alloy_sol_types::EventTopic for VerifyingKey {
1919 #[inline]
1920 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1921 0usize
1922 + <alloy::sol_types::sol_data::Uint<
1923 256,
1924 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1925 &rust.domainSize,
1926 )
1927 + <alloy::sol_types::sol_data::Uint<
1928 256,
1929 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1930 &rust.numInputs,
1931 )
1932 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1933 &rust.sigma0,
1934 )
1935 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1936 &rust.sigma1,
1937 )
1938 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1939 &rust.sigma2,
1940 )
1941 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1942 &rust.sigma3,
1943 )
1944 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1945 &rust.sigma4,
1946 )
1947 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1948 &rust.q1,
1949 )
1950 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1951 &rust.q2,
1952 )
1953 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1954 &rust.q3,
1955 )
1956 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1957 &rust.q4,
1958 )
1959 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1960 &rust.qM12,
1961 )
1962 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1963 &rust.qM34,
1964 )
1965 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1966 &rust.qO,
1967 )
1968 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1969 &rust.qC,
1970 )
1971 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1972 &rust.qH1,
1973 )
1974 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1975 &rust.qH2,
1976 )
1977 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1978 &rust.qH3,
1979 )
1980 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1981 &rust.qH4,
1982 )
1983 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1984 &rust.qEcc,
1985 )
1986 + <alloy::sol_types::sol_data::FixedBytes<
1987 32,
1988 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
1989 + <alloy::sol_types::sol_data::FixedBytes<
1990 32,
1991 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
1992 }
1993 #[inline]
1994 fn encode_topic_preimage(
1995 rust: &Self::RustType,
1996 out: &mut alloy_sol_types::private::Vec<u8>,
1997 ) {
1998 out.reserve(
1999 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
2000 );
2001 <alloy::sol_types::sol_data::Uint<
2002 256,
2003 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2004 &rust.domainSize,
2005 out,
2006 );
2007 <alloy::sol_types::sol_data::Uint<
2008 256,
2009 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2010 &rust.numInputs,
2011 out,
2012 );
2013 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2014 &rust.sigma0,
2015 out,
2016 );
2017 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2018 &rust.sigma1,
2019 out,
2020 );
2021 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2022 &rust.sigma2,
2023 out,
2024 );
2025 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2026 &rust.sigma3,
2027 out,
2028 );
2029 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2030 &rust.sigma4,
2031 out,
2032 );
2033 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2034 &rust.q1,
2035 out,
2036 );
2037 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2038 &rust.q2,
2039 out,
2040 );
2041 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2042 &rust.q3,
2043 out,
2044 );
2045 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2046 &rust.q4,
2047 out,
2048 );
2049 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2050 &rust.qM12,
2051 out,
2052 );
2053 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2054 &rust.qM34,
2055 out,
2056 );
2057 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2058 &rust.qO,
2059 out,
2060 );
2061 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2062 &rust.qC,
2063 out,
2064 );
2065 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2066 &rust.qH1,
2067 out,
2068 );
2069 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2070 &rust.qH2,
2071 out,
2072 );
2073 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2074 &rust.qH3,
2075 out,
2076 );
2077 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2078 &rust.qH4,
2079 out,
2080 );
2081 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2082 &rust.qEcc,
2083 out,
2084 );
2085 <alloy::sol_types::sol_data::FixedBytes<
2086 32,
2087 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2088 &rust.g2LSB,
2089 out,
2090 );
2091 <alloy::sol_types::sol_data::FixedBytes<
2092 32,
2093 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2094 &rust.g2MSB,
2095 out,
2096 );
2097 }
2098 #[inline]
2099 fn encode_topic(
2100 rust: &Self::RustType,
2101 ) -> alloy_sol_types::abi::token::WordToken {
2102 let mut out = alloy_sol_types::private::Vec::new();
2103 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
2104 rust,
2105 &mut out,
2106 );
2107 alloy_sol_types::abi::token::WordToken(
2108 alloy_sol_types::private::keccak256(out),
2109 )
2110 }
2111 }
2112 };
2113 use alloy::contract as alloy_contract;
2114 #[inline]
2118 pub const fn new<
2119 P: alloy_contract::private::Provider<N>,
2120 N: alloy_contract::private::Network,
2121 >(
2122 address: alloy_sol_types::private::Address,
2123 __provider: P,
2124 ) -> IPlonkVerifierInstance<P, N> {
2125 IPlonkVerifierInstance::<P, N>::new(address, __provider)
2126 }
2127 #[derive(Clone)]
2139 pub struct IPlonkVerifierInstance<P, N = alloy_contract::private::Ethereum> {
2140 address: alloy_sol_types::private::Address,
2141 provider: P,
2142 _network: ::core::marker::PhantomData<N>,
2143 }
2144 #[automatically_derived]
2145 impl<P, N> ::core::fmt::Debug for IPlonkVerifierInstance<P, N> {
2146 #[inline]
2147 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2148 f.debug_tuple("IPlonkVerifierInstance").field(&self.address).finish()
2149 }
2150 }
2151 impl<
2153 P: alloy_contract::private::Provider<N>,
2154 N: alloy_contract::private::Network,
2155 > IPlonkVerifierInstance<P, N> {
2156 #[inline]
2160 pub const fn new(
2161 address: alloy_sol_types::private::Address,
2162 __provider: P,
2163 ) -> Self {
2164 Self {
2165 address,
2166 provider: __provider,
2167 _network: ::core::marker::PhantomData,
2168 }
2169 }
2170 #[inline]
2172 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2173 &self.address
2174 }
2175 #[inline]
2177 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2178 self.address = address;
2179 }
2180 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2182 self.set_address(address);
2183 self
2184 }
2185 #[inline]
2187 pub const fn provider(&self) -> &P {
2188 &self.provider
2189 }
2190 }
2191 impl<P: ::core::clone::Clone, N> IPlonkVerifierInstance<&P, N> {
2192 #[inline]
2194 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<P, N> {
2195 IPlonkVerifierInstance {
2196 address: self.address,
2197 provider: ::core::clone::Clone::clone(&self.provider),
2198 _network: ::core::marker::PhantomData,
2199 }
2200 }
2201 }
2202 impl<
2204 P: alloy_contract::private::Provider<N>,
2205 N: alloy_contract::private::Network,
2206 > IPlonkVerifierInstance<P, N> {
2207 pub fn call_builder<C: alloy_sol_types::SolCall>(
2212 &self,
2213 call: &C,
2214 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
2215 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2216 }
2217 }
2218 impl<
2220 P: alloy_contract::private::Provider<N>,
2221 N: alloy_contract::private::Network,
2222 > IPlonkVerifierInstance<P, N> {
2223 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2228 &self,
2229 ) -> alloy_contract::Event<&P, E, N> {
2230 alloy_contract::Event::new_sol(&self.provider, &self.address)
2231 }
2232 }
2233}
2234#[allow(
3113 non_camel_case_types,
3114 non_snake_case,
3115 clippy::pub_underscore_fields,
3116 clippy::style,
3117 clippy::empty_structs_with_brackets
3118)]
3119pub mod PlonkVerifierV3 {
3120 use super::*;
3121 use alloy::sol_types as alloy_sol_types;
3122 #[rustfmt::skip]
3128 #[allow(clippy::all)]
3129 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3130 b"a\"\x1Ca\x004`\x0B\x82\x82\x829\x80Q_\x1A`s\x14`(WcNH{q`\xE0\x1B_R_`\x04R`$_\xFD[0_R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x9BW_5`\xE0\x1C\x80c\x83LE*\x11a\0nW\x80c\x83LE*\x14a\x01JW\x80c\xAF\x19k\xA2\x14a\x01qW\x80c\xDE$\xAC\x0F\x14a\x01\x98W\x80c\xE3Q-V\x14a\x01\xBFW\x80c\xF5\x14C&\x14a\x01\xE6W__\xFD[\x80c\x0CU\x1F?\x14a\0\x9FW\x80cKG4\xE3\x14a\0\xD9W\x80cT\xE8\xBDg\x14a\x01\0W\x80cZ\x14\xC0\xFE\x14a\x01#W[__\xFD[a\0\xC6\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC6\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81V[a\x01\x13a\x01\x0E6`\x04a\x1F\xAAV[a\x02\rV[`@Q\x90\x15\x15\x81R` \x01a\0\xD0V[a\0\xC6\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x81V[a\0\xC6\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81V[a\0\xC6\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81V[a\0\xC6\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x81V[a\0\xC6\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x81V[a\0\xC6\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81V[_a\x02\x17\x82a\x02hV[a\x02'\x83_[` \x02\x01Qa\x03\xA3V[a\x022\x83`\x01a\x02\x1DV[a\x02=\x83`\x02a\x02\x1DV[a\x02H\x83`\x03a\x02\x1DV[a\x02S\x83`\x04a\x02\x1DV[a\x02^\x84\x84\x84a\x03\xD5V[\x90P[\x93\x92PPPV[\x80Qa\x02s\x90a\x05\xC9V[a\x02\x80\x81` \x01Qa\x05\xC9V[a\x02\x8D\x81`@\x01Qa\x05\xC9V[a\x02\x9A\x81``\x01Qa\x05\xC9V[a\x02\xA7\x81`\x80\x01Qa\x05\xC9V[a\x02\xB4\x81`\xA0\x01Qa\x05\xC9V[a\x02\xC1\x81`\xC0\x01Qa\x05\xC9V[a\x02\xCE\x81`\xE0\x01Qa\x05\xC9V[a\x02\xDC\x81a\x01\0\x01Qa\x05\xC9V[a\x02\xEA\x81a\x01 \x01Qa\x05\xC9V[a\x02\xF8\x81a\x01@\x01Qa\x05\xC9V[a\x03\x06\x81a\x01`\x01Qa\x05\xC9V[a\x03\x14\x81a\x01\x80\x01Qa\x05\xC9V[a\x03\"\x81a\x01\xA0\x01Qa\x03\xA3V[a\x030\x81a\x01\xC0\x01Qa\x03\xA3V[a\x03>\x81a\x01\xE0\x01Qa\x03\xA3V[a\x03L\x81a\x02\0\x01Qa\x03\xA3V[a\x03Z\x81a\x02 \x01Qa\x03\xA3V[a\x03h\x81a\x02@\x01Qa\x03\xA3V[a\x03v\x81a\x02`\x01Qa\x03\xA3V[a\x03\x84\x81a\x02\x80\x01Qa\x03\xA3V[a\x03\x92\x81a\x02\xA0\x01Qa\x03\xA3V[a\x03\xA0\x81a\x02\xC0\x01Qa\x03\xA3V[PV[_Q` a!\xF0_9_Q\x90_R\x81\x10\x80a\x03\xD1W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x05\x14a\x03\xFBW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04\x07\x85\x85\x85a\x06HV[\x90P_a\x04\x16\x86_\x01Qa\x0B\x92V[\x90P_a\x04(\x82\x84`\xA0\x01Q\x88a\x0E\x8CV[\x90Pa\x04E`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04y\x87a\x01`\x01Qa\x04t\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x0E\xE9V[a\x0FLV[\x91P__a\x04\x89\x8B\x88\x87\x8Ca\x0F\xB3V[\x91P\x91Pa\x04\x9A\x81a\x04t\x84a\x11\xEBV[\x92Pa\x04\xB3\x83a\x04t\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x0E\xE9V[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a!\xF0_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x04\xF6\x85a\x04t\x8Da\x01\x80\x01Q\x84a\x0E\xE9V[\x94P_`@Q\x80`\x80\x01`@R\x80\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81R` \x01\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81R` \x01\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81R` \x01\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81RP\x90Pa\x05\xB7\x87\x82a\x05\xAA\x89a\x11\xEBV[a\x05\xB2a\x12\x88V[a\x13UV[\x9E\x9DPPPPPPPPPPPPPPV[\x80Q` \x82\x01Q_\x91\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x91\x15\x90\x15\x16\x15a\x06\x02WPPPV[\x82Q` \x84\x01Q\x82`\x03\x84\x85\x85\x86\t\x85\t\x08\x83\x82\x83\t\x14\x83\x82\x10\x84\x84\x10\x16\x16\x93PPP\x81a\x06CW`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x06\x88`@Q\x80a\x01\0\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[__Q` a!\xF0_9_Q\x90_R\x90P`@Q` \x81\x01_\x81R`\xFE`\xE0\x1B\x81R\x86Q`\xC0\x1B`\x04\x82\x01R` \x87\x01Q`\xC0\x1B`\x0C\x82\x01Ra\x02\x80\x87\x01Q` \x82\x01Ra\x02\xA0\x87\x01Q`@\x82\x01R`\x01``\x82\x01R\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ`\x80\x82\x01R\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%`\xA0\x82\x01R\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n`\xC0\x82\x01R\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81`\xE0\x82\x01R`\xE0\x87\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01\0\x87\x01Q\x80Qa\x01@\x83\x01R` \x81\x01Qa\x01`\x83\x01RPa\x01 \x87\x01Q\x80Qa\x01\x80\x83\x01R` \x81\x01Qa\x01\xA0\x83\x01RPa\x01@\x87\x01Q\x80Qa\x01\xC0\x83\x01R` \x81\x01Qa\x01\xE0\x83\x01RPa\x01`\x87\x01Q\x80Qa\x02\0\x83\x01R` \x81\x01Qa\x02 \x83\x01RPa\x01\x80\x87\x01Q\x80Qa\x02@\x83\x01R` \x81\x01Qa\x02`\x83\x01RPa\x01\xE0\x87\x01Q\x80Qa\x02\x80\x83\x01R` \x81\x01Qa\x02\xA0\x83\x01RPa\x02\0\x87\x01Q\x80Qa\x02\xC0\x83\x01R` \x81\x01Qa\x02\xE0\x83\x01RPa\x02 \x87\x01Q\x80Qa\x03\0\x83\x01R` \x81\x01Qa\x03 \x83\x01RPa\x02@\x87\x01Q\x80Qa\x03@\x83\x01R` \x81\x01Qa\x03`\x83\x01RPa\x01\xA0\x87\x01Q\x80Qa\x03\x80\x83\x01R` \x81\x01Qa\x03\xA0\x83\x01RPa\x01\xC0\x87\x01Q\x80Qa\x03\xC0\x83\x01R` \x81\x01Qa\x03\xE0\x83\x01RPa\x02`\x87\x01Q\x80Qa\x04\0\x83\x01R` \x81\x01Qa\x04 \x83\x01RP`@\x87\x01Q\x80Qa\x04@\x83\x01R` \x81\x01Qa\x04`\x83\x01RP``\x87\x01Q\x80Qa\x04\x80\x83\x01R` \x81\x01Qa\x04\xA0\x83\x01RP`\x80\x87\x01Q\x80Qa\x04\xC0\x83\x01R` \x81\x01Qa\x04\xE0\x83\x01RP`\xA0\x87\x01Q\x80Qa\x05\0\x83\x01R` \x81\x01Qa\x05 \x83\x01RP`\xC0\x87\x01Q\x80Qa\x05@\x83\x01R` \x81\x01Qa\x05`\x83\x01RP\x85Qa\x05\x80\x82\x01R` \x86\x01Qa\x05\xA0\x82\x01R`@\x86\x01Qa\x05\xC0\x82\x01R``\x86\x01Qa\x05\xE0\x82\x01R`\x80\x86\x01Qa\x06\0\x82\x01R\x84Q\x80Qa\x06 \x83\x01R` \x81\x01Qa\x06@\x83\x01RP` \x85\x01Q\x80Qa\x06`\x83\x01R` \x81\x01Qa\x06\x80\x83\x01RP`@\x85\x01Q\x80Qa\x06\xA0\x83\x01R` \x81\x01Qa\x06\xC0\x83\x01RP``\x85\x01Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP`\x80\x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP_\x82Ra\x07\x80\x82 \x82R\x82\x82Q\x06``\x85\x01R` \x82 \x82R\x82\x82Q\x06`\x80\x85\x01R`\xA0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP``\x82 \x80\x83R\x83\x81\x06\x85R\x83\x81\x82\t\x84\x82\x82\t\x91P\x80` \x87\x01RP\x80`@\x86\x01RP`\xC0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP`\xE0\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPa\x01\0\x85\x01Q\x80Q`\x80\x83\x01R` \x81\x01Q`\xA0\x83\x01RPa\x01 \x85\x01Q\x80Q`\xC0\x83\x01R` \x81\x01Q`\xE0\x83\x01RPa\x01@\x85\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01`\x82 \x82R\x82\x82Q\x06`\xA0\x85\x01Ra\x01\xA0\x85\x01Q\x81Ra\x01\xC0\x85\x01Q` \x82\x01Ra\x01\xE0\x85\x01Q`@\x82\x01Ra\x02\0\x85\x01Q``\x82\x01Ra\x02 \x85\x01Q`\x80\x82\x01Ra\x02@\x85\x01Q`\xA0\x82\x01Ra\x02`\x85\x01Q`\xC0\x82\x01Ra\x02\x80\x85\x01Q`\xE0\x82\x01Ra\x02\xA0\x85\x01Qa\x01\0\x82\x01Ra\x02\xC0\x85\x01Qa\x01 \x82\x01Ra\x01`\x82 \x82R\x82\x82Q\x06`\xC0\x85\x01Ra\x01`\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RPa\x01\x80\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPP`\xA0\x81 \x82\x81\x06`\xE0\x85\x01RPPP\x93\x92PPPV[a\x0B\x9Aa\x1C\x87V[\x81b\x01\0\0\x03a\x0C\x8DW`@Q\x80``\x01`@R\x80`\x10\x81R` \x01\x7F0d\x1E\x0E\x92\xBE\xBE\xF8\x18&\x8Df;\xCA\xD6\xDB\xCF\xD6\xC0\x14\x91p\xF6\xD7\xD3P\xB1\xB1\xFAl\x10\x01\x81R` \x01`@Q\x80`\xA0\x01`@R\x80`\x01\x81R` \x01~\xEE\xB2\xCBY\x81\xEDEd\x9A\xBE\xBD\xE0\x81\xDC\xFF\x16\xC8`\x1D\xE44~}\xD1b\x8B\xA2\xDA\xACC\xB7\x81R` \x01\x7F-\x1B\xA6oYA\xDC\x91\x01qq\xFAi\xEC+\xD0\x02**-A\x15\xA0\t\xA94X\xFDN&\xEC\xFB\x81R` \x01\x7F\x08h\x12\xA0\n\xC4>\xA8\x01f\x9Cd\x01q <A\xA4\x96g\x1B\xFB\xC0e\xAC\x8D\xB2MR\xCF1\xE5\x81R` \x01\x7F-\x96VQ\xCD\xD9\xE4\x81\x1FNQ\xB8\r\xDC\xA8\xA8\xB4\xA9>\xE1t \xAA\xE6\xAD\xAA\x01\xC2a|n\x85\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\r\x81W`@Q\x80``\x01`@R\x80`\x14\x81R` \x01\x7F0dKl\x9CJr\x16\x9EM\xAA1}%\xF0E\x12\xAE\x15\xC5;4\xE8\xF5\xAC\xD8\xE1U\xD0\xA6\xC1\x01\x81R` \x01`@Q\x80`\xA0\x01`@R\x80`\x01\x81R` \x01\x7F&\x12]\xA1\n\x0E\xD0c'P\x8A\xBA\x06\xD1\xE3\x03\xACaf2\xDB\xED4\x9FSB-\xA9S3xW\x81R` \x01\x7F\"`\xE7$\x84K\xCARQ\x82\x93S\x96\x8EI\x150RXA\x83WG:\\\x1DY\x7Fa?l\xBD\x81R` \x01\x7F \x87\xEA,\xD6d'\x86\x08\xFB\x0E\xBD\xB8 \x90\x7FY\x85\x02\xC8\x1Bf\x90\xC1\x85\xE2\xBF\x15\xCB\x93_B\x81R` \x01\x7F\x19\xDD\xBC\xAF:\x8DF\xC1\\\x01v\xFB\xB5\xB9^M\xC5p\x88\xFF\x13\xF4\xD1\xBD\x84\xC6\xBF\xA5}\xCD\xC0\xE0\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\x0EsW`@Q\x80``\x01`@R\x80`\x05\x81R` \x01\x7F.\xE1+\xFFJ(\x13(j\x8D\xC3\x88\xCDuM\x9A>\xF2I\x065\xEB\xA5\x0C\xB9\xC2\xE5\xE7P\x80\0\x01\x81R` \x01`@Q\x80`\xA0\x01`@R\x80`\x01\x81R` \x01\x7F\t\xC52\xC60k\x93\xD2\x96x \rG\xC0\xB2\xA9\x9C\x18\xD5\x1B\x83\x8E\xEB\x1D>\xEDLS;\xB5\x12\xD0\x81R` \x01\x7F!\x08,\xA2\x16\xCB\xBFN\x1CnOE\x94\xDDP\x8C\x99m\xFB\xE1\x17N\xFB\x98\xB1\x15\t\xC6\xE3\x06F\x0B\x81R` \x01\x7F\x12w\xAEd\x15\xF0\xEF\x18\xF2\xBA_\xB1b\xC3\x9E\xB71\x1F8n-&\xD6D\x01\xF4\xA2]\xA7|%;\x81R` \x01\x7F+3}\xE1\xC8\xC1O\"\xEC\x9B\x9E/\x96\xAF\xEF6Rbsf\xF8\x17\n\n\x94\x8D\xADJ\xC1\xBD^\x80\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xAD`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x0E\xB7\x84\x84a\x14\x06V[\x80\x82Ra\x0E\xC7\x90\x85\x90\x85\x90a\x14WV[` \x82\x01R\x80Qa\x0E\xDD\x90\x85\x90\x84\x90\x86\x90a\x14\xC6V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0F\x04a\x1C\xABV[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x0FDW`@Qc\x03;qM`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0Fga\x1C\xC9V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x80\x84\x01\x91\x90\x91R\x90\x84\x01Q``\x83\x01R_\x90\x83`\x80\x84`\x06Z\xFA\x90P\x80a\x0FDW`@Qc0*\xED\xB5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x0F\xE6\x87\x87\x87\x87a\x16\x14V[\x90P_Q` a!\xF0_9_Q\x90_R_a\x10\x02\x88\x87\x89a\x1A\xDEV[\x90Pa\x10\x0E\x81\x83a!\x97V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x10:\x85a\x04t\x8A_\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10b\x86a\x04t\x8A` \x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x8A\x86a\x04t\x8A`@\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xB2\x86a\x04t\x8A``\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xDA\x86a\x04t\x8A`\x80\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x11\x02\x86a\x04t\x8D`@\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x11*\x86a\x04t\x8D``\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x11R\x86a\x04t\x8D`\x80\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x11z\x86a\x04t\x8D`\xA0\x01Q\x84a\x0E\xE9V[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x11\xA4\x87a\x04t\x8B`\xA0\x01Q\x84a\x0E\xE9V[\x96Pa\x11\xDAa\x11\xD4`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x0E\xE9V[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x12\x12WP\x90V[`@Q\x80`@\x01`@R\x80\x83_\x01Q\x81R` \x01\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x84` \x01Qa\x12V\x91\x90a!\xD0V[a\x12\x80\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa!\x97V[\x90R\x92\x91PPV[a\x12\xAF`@Q\x80`\x80\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[`@Q\x80`\x80\x01`@R\x80\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x81R` \x01\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81R` \x01\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81R` \x01\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81RP\x90P\x90V[___`@Q\x87Q\x81R` \x88\x01Q` \x82\x01R` \x87\x01Q`@\x82\x01R\x86Q``\x82\x01R``\x87\x01Q`\x80\x82\x01R`@\x87\x01Q`\xA0\x82\x01R\x85Q`\xC0\x82\x01R` \x86\x01Q`\xE0\x82\x01R` \x85\x01Qa\x01\0\x82\x01R\x84Qa\x01 \x82\x01R``\x85\x01Qa\x01@\x82\x01R`@\x85\x01Qa\x01`\x82\x01R` _a\x01\x80\x83`\x08Z\xFA\x91PP_Q\x91P\x80a\x13\xF8W`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a!\xF0_9_Q\x90_R\x90\x83\x80\x15a\x14GW\x84\x93P_[\x82\x81\x10\x15a\x14;W\x83\x85\x86\t\x94P`\x01\x01a\x14%V[P`\x01\x84\x03\x93Pa\x14NV[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x14hWP`\x01a\x02aV[\x81_\x03a\x14vWP_a\x02aV[` \x84\x01Q_Q` a!\xF0_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x14\xA4W`\x01\x87\x03\x92Pa\x14\xABV[`\x01\x84\x03\x92P[Pa\x14\xB5\x82a\x1B\xC9V[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a!\xF0_9_Q\x90_R\x82\x82\x03a\x15?W`\x01_[`\x05\x81\x10\x15a\x154W\x81\x86\x03a\x15\x11W\x86\x81`\x05\x81\x10a\x15\x02Wa\x15\x02a!\x83V[` \x02\x01Q\x93PPPPa\x13\xFEV[\x82\x80a\x15\x1FWa\x15\x1Fa!\xBCV[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x14\xE0V[P_\x92PPPa\x13\xFEV[a\x15Ga\x1C\xE7V[`@\x87\x01Q`\x01`\x80\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x05\x81\x10\x15a\x15\x88W` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x15[V[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x05\x81\x10\x15a\x15\xDCW\x88\x82Q\x8A\x85Q\x8C\x88Q\x8A\t\t\t\x89\x81\x88\x08\x96PP\x88\x89\x8D\x84Q\x8C\x03\x08\x86\t\x94P` \x93\x84\x01\x93\x92\x83\x01\x92\x91\x90\x91\x01\x90`\x01\x01a\x15\x9CV[PPPP\x80\x92PP_a\x15\xEE\x83a\x1B\xC9V[\x90P` \x8A\x01Q\x85\x81\x89\t\x96PP\x84\x81\x87\t\x95P\x84\x82\x87\t\x9A\x99PPPPPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R______Q` a!\xF0_9_Q\x90_R\x90P`\x80\x89\x01Q\x81` \x8A\x01Q` \x8C\x01Q\t\x95P\x89Q\x94P\x81`\xA0\x8B\x01Q``\x8C\x01Q\t\x93P\x81a\x01\xA0\x89\x01Q\x85\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x85\t\x92P\x81a\x01\xC0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x85\t\x92P\x81a\x01\xE0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x85\t\x92P\x81a\x02\0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x85\t\x92P\x81a\x02 \x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92PP\x80\x84\x83\t\x93P\x80\x84\x86\x08\x94Pa\x17\x81\x87`\xA0\x01Q\x86a\x0E\xE9V[\x95P\x88Q``\x8A\x01Q`\x80\x8B\x01Q\x83\x82\x84\t\x97P\x83a\x02\xC0\x8B\x01Q\x89\t\x97P\x83a\x02@\x8B\x01Q\x83\t\x95P\x83a\x01\xA0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02`\x8B\x01Q\x83\t\x95P\x83a\x01\xC0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\x80\x8B\x01Q\x83\t\x95P\x83a\x01\xE0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\xA0\x8B\x01Q\x83\t\x95P\x83a\x02\0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95PPPP\x80\x83\x86\t\x94Pa\x18H\x86a\x04t\x8C`\xC0\x01Q\x88\x85a\x18C\x91\x90a!\x97V[a\x0E\xE9V[\x95Pa\x18a\x86a\x04t\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x0E\xE9V[\x95Pa\x18{\x86a\x04t\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x0E\xE9V[\x95Pa\x18\x95\x86a\x04t\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x0E\xE9V[\x95Pa\x18\xAF\x86a\x04t\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x0E\xE9V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x18\xD4\x86a\x04t\x8Ca\x01`\x01Q\x86a\x0E\xE9V[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x18\xF9\x86a\x04t\x8Ca\x01\x80\x01Q\x86a\x0E\xE9V[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19(\x86a\x04t\x8Ca\x01\xE0\x01Q\x86a\x0E\xE9V[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19W\x86a\x04t\x8Ca\x02\0\x01Q\x86a\x0E\xE9V[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19\x86\x86a\x04t\x8Ca\x02 \x01Q\x86a\x0E\xE9V[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19\xB5\x86a\x04t\x8Ca\x02@\x01Q\x86a\x0E\xE9V[\x95Pa\x19\xD2\x86a\x04t\x8Ca\x01\xA0\x01Qa\x18C\x8Ba\x02 \x01Qa\x1C[V[\x95Pa\x19\xE3\x86\x8Ba\x01\xC0\x01Qa\x0FLV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92P\x80a\x01\xE0\x88\x01Q\x84\t\x92P\x80a\x02\0\x88\x01Q\x84\t\x92P\x80a\x02 \x88\x01Q\x84\t\x92Pa\x1A)\x86a\x04t\x8Ca\x02`\x01Q\x86a\x0E\xE9V[\x95Pa\x1A7\x88_\x01Qa\x1C[V[\x94Pa\x1AK\x86a\x04t\x89`\xC0\x01Q\x88a\x0E\xE9V[\x95P\x80`\x01\x89Q\x08`\xA0\x8A\x01Q\x90\x93P\x81\x90\x80\t\x91P\x80\x82\x84\t\x92P\x80\x83\x86\t\x94Pa\x1A\x7F\x86a\x04t\x89`\xE0\x01Q\x88a\x0E\xE9V[\x95P\x80\x83\x86\t\x94Pa\x1A\x9A\x86a\x04t\x89a\x01\0\x01Q\x88a\x0E\xE9V[\x95P\x80\x83\x86\t\x94Pa\x1A\xB5\x86a\x04t\x89a\x01 \x01Q\x88a\x0E\xE9V[\x95P\x80\x83\x86\t\x94Pa\x1A\xD0\x86a\x04t\x89a\x01@\x01Q\x88a\x0E\xE9V[\x9A\x99PPPPPPPPPPV[___Q` a!\xF0_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[_\x81_\x03a\x1B\xEAW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a!\xF0_9_Q\x90_R\x90P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01R`\x02\x82\x03`\x80\x82\x01R\x81`\xA0\x82\x01R` _`\xC0\x83`\x05Z\xFA\x92PP_Q\x92P\x81a\x1CTW`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a!\xF0_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1C~W\x83\x82\x03\x92Pa\x1CTV[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1C\xA6a\x1C\xE7V[\x90R\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\xA0\x01`@R\x80`\x05\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Qa\x02\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1D=Wa\x1D=a\x1D\x05V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1D=Wa\x1D=a\x1D\x05V[_`@\x82\x84\x03\x12\x15a\x1DwW__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1D\x9AWa\x1D\x9Aa\x1D\x05V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\x1D\xC3W__\xFD[`@Q`\xA0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1D\xE6Wa\x1D\xE6a\x1D\x05V[`@R\x80`\xA0\x84\x01\x85\x81\x11\x15a\x1D\xFAW__\xFD[\x84[\x81\x81\x10\x15a\x1E\x14W\x805\x83R` \x92\x83\x01\x92\x01a\x1D\xFCV[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\x1E0W__\xFD[a\x1E8a\x1D\x19V[\x90Pa\x1ED\x83\x83a\x1DgV[\x81Ra\x1ES\x83`@\x84\x01a\x1DgV[` \x82\x01Ra\x1Ee\x83`\x80\x84\x01a\x1DgV[`@\x82\x01Ra\x1Ew\x83`\xC0\x84\x01a\x1DgV[``\x82\x01Ra\x1E\x8A\x83a\x01\0\x84\x01a\x1DgV[`\x80\x82\x01Ra\x1E\x9D\x83a\x01@\x84\x01a\x1DgV[`\xA0\x82\x01Ra\x1E\xB0\x83a\x01\x80\x84\x01a\x1DgV[`\xC0\x82\x01Ra\x1E\xC3\x83a\x01\xC0\x84\x01a\x1DgV[`\xE0\x82\x01Ra\x1E\xD6\x83a\x02\0\x84\x01a\x1DgV[a\x01\0\x82\x01Ra\x1E\xEA\x83a\x02@\x84\x01a\x1DgV[a\x01 \x82\x01Ra\x1E\xFE\x83a\x02\x80\x84\x01a\x1DgV[a\x01@\x82\x01Ra\x1F\x12\x83a\x02\xC0\x84\x01a\x1DgV[a\x01`\x82\x01Ra\x1F&\x83a\x03\0\x84\x01a\x1DgV[a\x01\x80\x82\x01Ra\x03@\x82\x015a\x01\xA0\x82\x01Ra\x03`\x82\x015a\x01\xC0\x82\x01Ra\x03\x80\x82\x015a\x01\xE0\x82\x01Ra\x03\xA0\x82\x015a\x02\0\x82\x01Ra\x03\xC0\x82\x015a\x02 \x82\x01Ra\x03\xE0\x82\x015a\x02@\x82\x01Ra\x04\0\x82\x015a\x02`\x82\x01Ra\x04 \x82\x015a\x02\x80\x82\x01Ra\x04@\x82\x015a\x02\xA0\x82\x01Ra\x04`\x90\x91\x015a\x02\xC0\x82\x01R\x91\x90PV[___\x83\x85\x03a\n \x81\x12\x15a\x1F\xBEW__\xFD[a\x05\0\x81\x12\x15a\x1F\xCCW__\xFD[Pa\x1F\xD5a\x1DCV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra\x1F\xF0\x86`@\x87\x01a\x1DgV[`@\x82\x01Ra \x02\x86`\x80\x87\x01a\x1DgV[``\x82\x01Ra \x14\x86`\xC0\x87\x01a\x1DgV[`\x80\x82\x01Ra '\x86a\x01\0\x87\x01a\x1DgV[`\xA0\x82\x01Ra :\x86a\x01@\x87\x01a\x1DgV[`\xC0\x82\x01Ra M\x86a\x01\x80\x87\x01a\x1DgV[`\xE0\x82\x01Ra `\x86a\x01\xC0\x87\x01a\x1DgV[a\x01\0\x82\x01Ra t\x86a\x02\0\x87\x01a\x1DgV[a\x01 \x82\x01Ra \x88\x86a\x02@\x87\x01a\x1DgV[a\x01@\x82\x01Ra \x9C\x86a\x02\x80\x87\x01a\x1DgV[a\x01`\x82\x01Ra \xB0\x86a\x02\xC0\x87\x01a\x1DgV[a\x01\x80\x82\x01Ra \xC4\x86a\x03\0\x87\x01a\x1DgV[a\x01\xA0\x82\x01Ra \xD8\x86a\x03@\x87\x01a\x1DgV[a\x01\xC0\x82\x01Ra \xEC\x86a\x03\x80\x87\x01a\x1DgV[a\x01\xE0\x82\x01Ra!\0\x86a\x03\xC0\x87\x01a\x1DgV[a\x02\0\x82\x01Ra!\x14\x86a\x04\0\x87\x01a\x1DgV[a\x02 \x82\x01Ra!(\x86a\x04@\x87\x01a\x1DgV[a\x02@\x82\x01Ra!<\x86a\x04\x80\x87\x01a\x1DgV[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa!j\x85a\x05\0\x86\x01a\x1D\xB4V[\x91Pa!z\x85a\x05\xA0\x86\x01a\x1E\x1FV[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a!\xB6WcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a!\xEAWcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\xA1dsolcC\0\x08#\0\n",
3131 );
3132 #[rustfmt::skip]
3138 #[allow(clippy::all)]
3139 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3140 b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x9BW_5`\xE0\x1C\x80c\x83LE*\x11a\0nW\x80c\x83LE*\x14a\x01JW\x80c\xAF\x19k\xA2\x14a\x01qW\x80c\xDE$\xAC\x0F\x14a\x01\x98W\x80c\xE3Q-V\x14a\x01\xBFW\x80c\xF5\x14C&\x14a\x01\xE6W__\xFD[\x80c\x0CU\x1F?\x14a\0\x9FW\x80cKG4\xE3\x14a\0\xD9W\x80cT\xE8\xBDg\x14a\x01\0W\x80cZ\x14\xC0\xFE\x14a\x01#W[__\xFD[a\0\xC6\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC6\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81V[a\x01\x13a\x01\x0E6`\x04a\x1F\xAAV[a\x02\rV[`@Q\x90\x15\x15\x81R` \x01a\0\xD0V[a\0\xC6\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x81V[a\0\xC6\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81V[a\0\xC6\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81V[a\0\xC6\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x81V[a\0\xC6\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x81V[a\0\xC6\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81V[_a\x02\x17\x82a\x02hV[a\x02'\x83_[` \x02\x01Qa\x03\xA3V[a\x022\x83`\x01a\x02\x1DV[a\x02=\x83`\x02a\x02\x1DV[a\x02H\x83`\x03a\x02\x1DV[a\x02S\x83`\x04a\x02\x1DV[a\x02^\x84\x84\x84a\x03\xD5V[\x90P[\x93\x92PPPV[\x80Qa\x02s\x90a\x05\xC9V[a\x02\x80\x81` \x01Qa\x05\xC9V[a\x02\x8D\x81`@\x01Qa\x05\xC9V[a\x02\x9A\x81``\x01Qa\x05\xC9V[a\x02\xA7\x81`\x80\x01Qa\x05\xC9V[a\x02\xB4\x81`\xA0\x01Qa\x05\xC9V[a\x02\xC1\x81`\xC0\x01Qa\x05\xC9V[a\x02\xCE\x81`\xE0\x01Qa\x05\xC9V[a\x02\xDC\x81a\x01\0\x01Qa\x05\xC9V[a\x02\xEA\x81a\x01 \x01Qa\x05\xC9V[a\x02\xF8\x81a\x01@\x01Qa\x05\xC9V[a\x03\x06\x81a\x01`\x01Qa\x05\xC9V[a\x03\x14\x81a\x01\x80\x01Qa\x05\xC9V[a\x03\"\x81a\x01\xA0\x01Qa\x03\xA3V[a\x030\x81a\x01\xC0\x01Qa\x03\xA3V[a\x03>\x81a\x01\xE0\x01Qa\x03\xA3V[a\x03L\x81a\x02\0\x01Qa\x03\xA3V[a\x03Z\x81a\x02 \x01Qa\x03\xA3V[a\x03h\x81a\x02@\x01Qa\x03\xA3V[a\x03v\x81a\x02`\x01Qa\x03\xA3V[a\x03\x84\x81a\x02\x80\x01Qa\x03\xA3V[a\x03\x92\x81a\x02\xA0\x01Qa\x03\xA3V[a\x03\xA0\x81a\x02\xC0\x01Qa\x03\xA3V[PV[_Q` a!\xF0_9_Q\x90_R\x81\x10\x80a\x03\xD1W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x05\x14a\x03\xFBW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04\x07\x85\x85\x85a\x06HV[\x90P_a\x04\x16\x86_\x01Qa\x0B\x92V[\x90P_a\x04(\x82\x84`\xA0\x01Q\x88a\x0E\x8CV[\x90Pa\x04E`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04y\x87a\x01`\x01Qa\x04t\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x0E\xE9V[a\x0FLV[\x91P__a\x04\x89\x8B\x88\x87\x8Ca\x0F\xB3V[\x91P\x91Pa\x04\x9A\x81a\x04t\x84a\x11\xEBV[\x92Pa\x04\xB3\x83a\x04t\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x0E\xE9V[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a!\xF0_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x04\xF6\x85a\x04t\x8Da\x01\x80\x01Q\x84a\x0E\xE9V[\x94P_`@Q\x80`\x80\x01`@R\x80\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81R` \x01\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81R` \x01\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81R` \x01\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81RP\x90Pa\x05\xB7\x87\x82a\x05\xAA\x89a\x11\xEBV[a\x05\xB2a\x12\x88V[a\x13UV[\x9E\x9DPPPPPPPPPPPPPPV[\x80Q` \x82\x01Q_\x91\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x91\x15\x90\x15\x16\x15a\x06\x02WPPPV[\x82Q` \x84\x01Q\x82`\x03\x84\x85\x85\x86\t\x85\t\x08\x83\x82\x83\t\x14\x83\x82\x10\x84\x84\x10\x16\x16\x93PPP\x81a\x06CW`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x06\x88`@Q\x80a\x01\0\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[__Q` a!\xF0_9_Q\x90_R\x90P`@Q` \x81\x01_\x81R`\xFE`\xE0\x1B\x81R\x86Q`\xC0\x1B`\x04\x82\x01R` \x87\x01Q`\xC0\x1B`\x0C\x82\x01Ra\x02\x80\x87\x01Q` \x82\x01Ra\x02\xA0\x87\x01Q`@\x82\x01R`\x01``\x82\x01R\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ`\x80\x82\x01R\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%`\xA0\x82\x01R\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n`\xC0\x82\x01R\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81`\xE0\x82\x01R`\xE0\x87\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01\0\x87\x01Q\x80Qa\x01@\x83\x01R` \x81\x01Qa\x01`\x83\x01RPa\x01 \x87\x01Q\x80Qa\x01\x80\x83\x01R` \x81\x01Qa\x01\xA0\x83\x01RPa\x01@\x87\x01Q\x80Qa\x01\xC0\x83\x01R` \x81\x01Qa\x01\xE0\x83\x01RPa\x01`\x87\x01Q\x80Qa\x02\0\x83\x01R` \x81\x01Qa\x02 \x83\x01RPa\x01\x80\x87\x01Q\x80Qa\x02@\x83\x01R` \x81\x01Qa\x02`\x83\x01RPa\x01\xE0\x87\x01Q\x80Qa\x02\x80\x83\x01R` \x81\x01Qa\x02\xA0\x83\x01RPa\x02\0\x87\x01Q\x80Qa\x02\xC0\x83\x01R` \x81\x01Qa\x02\xE0\x83\x01RPa\x02 \x87\x01Q\x80Qa\x03\0\x83\x01R` \x81\x01Qa\x03 \x83\x01RPa\x02@\x87\x01Q\x80Qa\x03@\x83\x01R` \x81\x01Qa\x03`\x83\x01RPa\x01\xA0\x87\x01Q\x80Qa\x03\x80\x83\x01R` \x81\x01Qa\x03\xA0\x83\x01RPa\x01\xC0\x87\x01Q\x80Qa\x03\xC0\x83\x01R` \x81\x01Qa\x03\xE0\x83\x01RPa\x02`\x87\x01Q\x80Qa\x04\0\x83\x01R` \x81\x01Qa\x04 \x83\x01RP`@\x87\x01Q\x80Qa\x04@\x83\x01R` \x81\x01Qa\x04`\x83\x01RP``\x87\x01Q\x80Qa\x04\x80\x83\x01R` \x81\x01Qa\x04\xA0\x83\x01RP`\x80\x87\x01Q\x80Qa\x04\xC0\x83\x01R` \x81\x01Qa\x04\xE0\x83\x01RP`\xA0\x87\x01Q\x80Qa\x05\0\x83\x01R` \x81\x01Qa\x05 \x83\x01RP`\xC0\x87\x01Q\x80Qa\x05@\x83\x01R` \x81\x01Qa\x05`\x83\x01RP\x85Qa\x05\x80\x82\x01R` \x86\x01Qa\x05\xA0\x82\x01R`@\x86\x01Qa\x05\xC0\x82\x01R``\x86\x01Qa\x05\xE0\x82\x01R`\x80\x86\x01Qa\x06\0\x82\x01R\x84Q\x80Qa\x06 \x83\x01R` \x81\x01Qa\x06@\x83\x01RP` \x85\x01Q\x80Qa\x06`\x83\x01R` \x81\x01Qa\x06\x80\x83\x01RP`@\x85\x01Q\x80Qa\x06\xA0\x83\x01R` \x81\x01Qa\x06\xC0\x83\x01RP``\x85\x01Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP`\x80\x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP_\x82Ra\x07\x80\x82 \x82R\x82\x82Q\x06``\x85\x01R` \x82 \x82R\x82\x82Q\x06`\x80\x85\x01R`\xA0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP``\x82 \x80\x83R\x83\x81\x06\x85R\x83\x81\x82\t\x84\x82\x82\t\x91P\x80` \x87\x01RP\x80`@\x86\x01RP`\xC0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP`\xE0\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPa\x01\0\x85\x01Q\x80Q`\x80\x83\x01R` \x81\x01Q`\xA0\x83\x01RPa\x01 \x85\x01Q\x80Q`\xC0\x83\x01R` \x81\x01Q`\xE0\x83\x01RPa\x01@\x85\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01`\x82 \x82R\x82\x82Q\x06`\xA0\x85\x01Ra\x01\xA0\x85\x01Q\x81Ra\x01\xC0\x85\x01Q` \x82\x01Ra\x01\xE0\x85\x01Q`@\x82\x01Ra\x02\0\x85\x01Q``\x82\x01Ra\x02 \x85\x01Q`\x80\x82\x01Ra\x02@\x85\x01Q`\xA0\x82\x01Ra\x02`\x85\x01Q`\xC0\x82\x01Ra\x02\x80\x85\x01Q`\xE0\x82\x01Ra\x02\xA0\x85\x01Qa\x01\0\x82\x01Ra\x02\xC0\x85\x01Qa\x01 \x82\x01Ra\x01`\x82 \x82R\x82\x82Q\x06`\xC0\x85\x01Ra\x01`\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RPa\x01\x80\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPP`\xA0\x81 \x82\x81\x06`\xE0\x85\x01RPPP\x93\x92PPPV[a\x0B\x9Aa\x1C\x87V[\x81b\x01\0\0\x03a\x0C\x8DW`@Q\x80``\x01`@R\x80`\x10\x81R` \x01\x7F0d\x1E\x0E\x92\xBE\xBE\xF8\x18&\x8Df;\xCA\xD6\xDB\xCF\xD6\xC0\x14\x91p\xF6\xD7\xD3P\xB1\xB1\xFAl\x10\x01\x81R` \x01`@Q\x80`\xA0\x01`@R\x80`\x01\x81R` \x01~\xEE\xB2\xCBY\x81\xEDEd\x9A\xBE\xBD\xE0\x81\xDC\xFF\x16\xC8`\x1D\xE44~}\xD1b\x8B\xA2\xDA\xACC\xB7\x81R` \x01\x7F-\x1B\xA6oYA\xDC\x91\x01qq\xFAi\xEC+\xD0\x02**-A\x15\xA0\t\xA94X\xFDN&\xEC\xFB\x81R` \x01\x7F\x08h\x12\xA0\n\xC4>\xA8\x01f\x9Cd\x01q <A\xA4\x96g\x1B\xFB\xC0e\xAC\x8D\xB2MR\xCF1\xE5\x81R` \x01\x7F-\x96VQ\xCD\xD9\xE4\x81\x1FNQ\xB8\r\xDC\xA8\xA8\xB4\xA9>\xE1t \xAA\xE6\xAD\xAA\x01\xC2a|n\x85\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\r\x81W`@Q\x80``\x01`@R\x80`\x14\x81R` \x01\x7F0dKl\x9CJr\x16\x9EM\xAA1}%\xF0E\x12\xAE\x15\xC5;4\xE8\xF5\xAC\xD8\xE1U\xD0\xA6\xC1\x01\x81R` \x01`@Q\x80`\xA0\x01`@R\x80`\x01\x81R` \x01\x7F&\x12]\xA1\n\x0E\xD0c'P\x8A\xBA\x06\xD1\xE3\x03\xACaf2\xDB\xED4\x9FSB-\xA9S3xW\x81R` \x01\x7F\"`\xE7$\x84K\xCARQ\x82\x93S\x96\x8EI\x150RXA\x83WG:\\\x1DY\x7Fa?l\xBD\x81R` \x01\x7F \x87\xEA,\xD6d'\x86\x08\xFB\x0E\xBD\xB8 \x90\x7FY\x85\x02\xC8\x1Bf\x90\xC1\x85\xE2\xBF\x15\xCB\x93_B\x81R` \x01\x7F\x19\xDD\xBC\xAF:\x8DF\xC1\\\x01v\xFB\xB5\xB9^M\xC5p\x88\xFF\x13\xF4\xD1\xBD\x84\xC6\xBF\xA5}\xCD\xC0\xE0\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\x0EsW`@Q\x80``\x01`@R\x80`\x05\x81R` \x01\x7F.\xE1+\xFFJ(\x13(j\x8D\xC3\x88\xCDuM\x9A>\xF2I\x065\xEB\xA5\x0C\xB9\xC2\xE5\xE7P\x80\0\x01\x81R` \x01`@Q\x80`\xA0\x01`@R\x80`\x01\x81R` \x01\x7F\t\xC52\xC60k\x93\xD2\x96x \rG\xC0\xB2\xA9\x9C\x18\xD5\x1B\x83\x8E\xEB\x1D>\xEDLS;\xB5\x12\xD0\x81R` \x01\x7F!\x08,\xA2\x16\xCB\xBFN\x1CnOE\x94\xDDP\x8C\x99m\xFB\xE1\x17N\xFB\x98\xB1\x15\t\xC6\xE3\x06F\x0B\x81R` \x01\x7F\x12w\xAEd\x15\xF0\xEF\x18\xF2\xBA_\xB1b\xC3\x9E\xB71\x1F8n-&\xD6D\x01\xF4\xA2]\xA7|%;\x81R` \x01\x7F+3}\xE1\xC8\xC1O\"\xEC\x9B\x9E/\x96\xAF\xEF6Rbsf\xF8\x17\n\n\x94\x8D\xADJ\xC1\xBD^\x80\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xAD`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x0E\xB7\x84\x84a\x14\x06V[\x80\x82Ra\x0E\xC7\x90\x85\x90\x85\x90a\x14WV[` \x82\x01R\x80Qa\x0E\xDD\x90\x85\x90\x84\x90\x86\x90a\x14\xC6V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0F\x04a\x1C\xABV[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x0FDW`@Qc\x03;qM`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0Fga\x1C\xC9V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x80\x84\x01\x91\x90\x91R\x90\x84\x01Q``\x83\x01R_\x90\x83`\x80\x84`\x06Z\xFA\x90P\x80a\x0FDW`@Qc0*\xED\xB5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x0F\xE6\x87\x87\x87\x87a\x16\x14V[\x90P_Q` a!\xF0_9_Q\x90_R_a\x10\x02\x88\x87\x89a\x1A\xDEV[\x90Pa\x10\x0E\x81\x83a!\x97V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x10:\x85a\x04t\x8A_\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10b\x86a\x04t\x8A` \x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x8A\x86a\x04t\x8A`@\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xB2\x86a\x04t\x8A``\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xDA\x86a\x04t\x8A`\x80\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x11\x02\x86a\x04t\x8D`@\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x11*\x86a\x04t\x8D``\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x11R\x86a\x04t\x8D`\x80\x01Q\x84a\x0E\xE9V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x11z\x86a\x04t\x8D`\xA0\x01Q\x84a\x0E\xE9V[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x11\xA4\x87a\x04t\x8B`\xA0\x01Q\x84a\x0E\xE9V[\x96Pa\x11\xDAa\x11\xD4`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x0E\xE9V[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x12\x12WP\x90V[`@Q\x80`@\x01`@R\x80\x83_\x01Q\x81R` \x01\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x84` \x01Qa\x12V\x91\x90a!\xD0V[a\x12\x80\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa!\x97V[\x90R\x92\x91PPV[a\x12\xAF`@Q\x80`\x80\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[`@Q\x80`\x80\x01`@R\x80\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x81R` \x01\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81R` \x01\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81R` \x01\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81RP\x90P\x90V[___`@Q\x87Q\x81R` \x88\x01Q` \x82\x01R` \x87\x01Q`@\x82\x01R\x86Q``\x82\x01R``\x87\x01Q`\x80\x82\x01R`@\x87\x01Q`\xA0\x82\x01R\x85Q`\xC0\x82\x01R` \x86\x01Q`\xE0\x82\x01R` \x85\x01Qa\x01\0\x82\x01R\x84Qa\x01 \x82\x01R``\x85\x01Qa\x01@\x82\x01R`@\x85\x01Qa\x01`\x82\x01R` _a\x01\x80\x83`\x08Z\xFA\x91PP_Q\x91P\x80a\x13\xF8W`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a!\xF0_9_Q\x90_R\x90\x83\x80\x15a\x14GW\x84\x93P_[\x82\x81\x10\x15a\x14;W\x83\x85\x86\t\x94P`\x01\x01a\x14%V[P`\x01\x84\x03\x93Pa\x14NV[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x14hWP`\x01a\x02aV[\x81_\x03a\x14vWP_a\x02aV[` \x84\x01Q_Q` a!\xF0_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x14\xA4W`\x01\x87\x03\x92Pa\x14\xABV[`\x01\x84\x03\x92P[Pa\x14\xB5\x82a\x1B\xC9V[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a!\xF0_9_Q\x90_R\x82\x82\x03a\x15?W`\x01_[`\x05\x81\x10\x15a\x154W\x81\x86\x03a\x15\x11W\x86\x81`\x05\x81\x10a\x15\x02Wa\x15\x02a!\x83V[` \x02\x01Q\x93PPPPa\x13\xFEV[\x82\x80a\x15\x1FWa\x15\x1Fa!\xBCV[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x14\xE0V[P_\x92PPPa\x13\xFEV[a\x15Ga\x1C\xE7V[`@\x87\x01Q`\x01`\x80\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x05\x81\x10\x15a\x15\x88W` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x15[V[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x05\x81\x10\x15a\x15\xDCW\x88\x82Q\x8A\x85Q\x8C\x88Q\x8A\t\t\t\x89\x81\x88\x08\x96PP\x88\x89\x8D\x84Q\x8C\x03\x08\x86\t\x94P` \x93\x84\x01\x93\x92\x83\x01\x92\x91\x90\x91\x01\x90`\x01\x01a\x15\x9CV[PPPP\x80\x92PP_a\x15\xEE\x83a\x1B\xC9V[\x90P` \x8A\x01Q\x85\x81\x89\t\x96PP\x84\x81\x87\t\x95P\x84\x82\x87\t\x9A\x99PPPPPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R______Q` a!\xF0_9_Q\x90_R\x90P`\x80\x89\x01Q\x81` \x8A\x01Q` \x8C\x01Q\t\x95P\x89Q\x94P\x81`\xA0\x8B\x01Q``\x8C\x01Q\t\x93P\x81a\x01\xA0\x89\x01Q\x85\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x85\t\x92P\x81a\x01\xC0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x85\t\x92P\x81a\x01\xE0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x85\t\x92P\x81a\x02\0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x85\t\x92P\x81a\x02 \x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92PP\x80\x84\x83\t\x93P\x80\x84\x86\x08\x94Pa\x17\x81\x87`\xA0\x01Q\x86a\x0E\xE9V[\x95P\x88Q``\x8A\x01Q`\x80\x8B\x01Q\x83\x82\x84\t\x97P\x83a\x02\xC0\x8B\x01Q\x89\t\x97P\x83a\x02@\x8B\x01Q\x83\t\x95P\x83a\x01\xA0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02`\x8B\x01Q\x83\t\x95P\x83a\x01\xC0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\x80\x8B\x01Q\x83\t\x95P\x83a\x01\xE0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\xA0\x8B\x01Q\x83\t\x95P\x83a\x02\0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95PPPP\x80\x83\x86\t\x94Pa\x18H\x86a\x04t\x8C`\xC0\x01Q\x88\x85a\x18C\x91\x90a!\x97V[a\x0E\xE9V[\x95Pa\x18a\x86a\x04t\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x0E\xE9V[\x95Pa\x18{\x86a\x04t\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x0E\xE9V[\x95Pa\x18\x95\x86a\x04t\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x0E\xE9V[\x95Pa\x18\xAF\x86a\x04t\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x0E\xE9V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x18\xD4\x86a\x04t\x8Ca\x01`\x01Q\x86a\x0E\xE9V[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x18\xF9\x86a\x04t\x8Ca\x01\x80\x01Q\x86a\x0E\xE9V[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19(\x86a\x04t\x8Ca\x01\xE0\x01Q\x86a\x0E\xE9V[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19W\x86a\x04t\x8Ca\x02\0\x01Q\x86a\x0E\xE9V[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19\x86\x86a\x04t\x8Ca\x02 \x01Q\x86a\x0E\xE9V[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19\xB5\x86a\x04t\x8Ca\x02@\x01Q\x86a\x0E\xE9V[\x95Pa\x19\xD2\x86a\x04t\x8Ca\x01\xA0\x01Qa\x18C\x8Ba\x02 \x01Qa\x1C[V[\x95Pa\x19\xE3\x86\x8Ba\x01\xC0\x01Qa\x0FLV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92P\x80a\x01\xE0\x88\x01Q\x84\t\x92P\x80a\x02\0\x88\x01Q\x84\t\x92P\x80a\x02 \x88\x01Q\x84\t\x92Pa\x1A)\x86a\x04t\x8Ca\x02`\x01Q\x86a\x0E\xE9V[\x95Pa\x1A7\x88_\x01Qa\x1C[V[\x94Pa\x1AK\x86a\x04t\x89`\xC0\x01Q\x88a\x0E\xE9V[\x95P\x80`\x01\x89Q\x08`\xA0\x8A\x01Q\x90\x93P\x81\x90\x80\t\x91P\x80\x82\x84\t\x92P\x80\x83\x86\t\x94Pa\x1A\x7F\x86a\x04t\x89`\xE0\x01Q\x88a\x0E\xE9V[\x95P\x80\x83\x86\t\x94Pa\x1A\x9A\x86a\x04t\x89a\x01\0\x01Q\x88a\x0E\xE9V[\x95P\x80\x83\x86\t\x94Pa\x1A\xB5\x86a\x04t\x89a\x01 \x01Q\x88a\x0E\xE9V[\x95P\x80\x83\x86\t\x94Pa\x1A\xD0\x86a\x04t\x89a\x01@\x01Q\x88a\x0E\xE9V[\x9A\x99PPPPPPPPPPV[___Q` a!\xF0_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[_\x81_\x03a\x1B\xEAW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a!\xF0_9_Q\x90_R\x90P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01R`\x02\x82\x03`\x80\x82\x01R\x81`\xA0\x82\x01R` _`\xC0\x83`\x05Z\xFA\x92PP_Q\x92P\x81a\x1CTW`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a!\xF0_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1C~W\x83\x82\x03\x92Pa\x1CTV[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1C\xA6a\x1C\xE7V[\x90R\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\xA0\x01`@R\x80`\x05\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Qa\x02\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1D=Wa\x1D=a\x1D\x05V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1D=Wa\x1D=a\x1D\x05V[_`@\x82\x84\x03\x12\x15a\x1DwW__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1D\x9AWa\x1D\x9Aa\x1D\x05V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\x1D\xC3W__\xFD[`@Q`\xA0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1D\xE6Wa\x1D\xE6a\x1D\x05V[`@R\x80`\xA0\x84\x01\x85\x81\x11\x15a\x1D\xFAW__\xFD[\x84[\x81\x81\x10\x15a\x1E\x14W\x805\x83R` \x92\x83\x01\x92\x01a\x1D\xFCV[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\x1E0W__\xFD[a\x1E8a\x1D\x19V[\x90Pa\x1ED\x83\x83a\x1DgV[\x81Ra\x1ES\x83`@\x84\x01a\x1DgV[` \x82\x01Ra\x1Ee\x83`\x80\x84\x01a\x1DgV[`@\x82\x01Ra\x1Ew\x83`\xC0\x84\x01a\x1DgV[``\x82\x01Ra\x1E\x8A\x83a\x01\0\x84\x01a\x1DgV[`\x80\x82\x01Ra\x1E\x9D\x83a\x01@\x84\x01a\x1DgV[`\xA0\x82\x01Ra\x1E\xB0\x83a\x01\x80\x84\x01a\x1DgV[`\xC0\x82\x01Ra\x1E\xC3\x83a\x01\xC0\x84\x01a\x1DgV[`\xE0\x82\x01Ra\x1E\xD6\x83a\x02\0\x84\x01a\x1DgV[a\x01\0\x82\x01Ra\x1E\xEA\x83a\x02@\x84\x01a\x1DgV[a\x01 \x82\x01Ra\x1E\xFE\x83a\x02\x80\x84\x01a\x1DgV[a\x01@\x82\x01Ra\x1F\x12\x83a\x02\xC0\x84\x01a\x1DgV[a\x01`\x82\x01Ra\x1F&\x83a\x03\0\x84\x01a\x1DgV[a\x01\x80\x82\x01Ra\x03@\x82\x015a\x01\xA0\x82\x01Ra\x03`\x82\x015a\x01\xC0\x82\x01Ra\x03\x80\x82\x015a\x01\xE0\x82\x01Ra\x03\xA0\x82\x015a\x02\0\x82\x01Ra\x03\xC0\x82\x015a\x02 \x82\x01Ra\x03\xE0\x82\x015a\x02@\x82\x01Ra\x04\0\x82\x015a\x02`\x82\x01Ra\x04 \x82\x015a\x02\x80\x82\x01Ra\x04@\x82\x015a\x02\xA0\x82\x01Ra\x04`\x90\x91\x015a\x02\xC0\x82\x01R\x91\x90PV[___\x83\x85\x03a\n \x81\x12\x15a\x1F\xBEW__\xFD[a\x05\0\x81\x12\x15a\x1F\xCCW__\xFD[Pa\x1F\xD5a\x1DCV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra\x1F\xF0\x86`@\x87\x01a\x1DgV[`@\x82\x01Ra \x02\x86`\x80\x87\x01a\x1DgV[``\x82\x01Ra \x14\x86`\xC0\x87\x01a\x1DgV[`\x80\x82\x01Ra '\x86a\x01\0\x87\x01a\x1DgV[`\xA0\x82\x01Ra :\x86a\x01@\x87\x01a\x1DgV[`\xC0\x82\x01Ra M\x86a\x01\x80\x87\x01a\x1DgV[`\xE0\x82\x01Ra `\x86a\x01\xC0\x87\x01a\x1DgV[a\x01\0\x82\x01Ra t\x86a\x02\0\x87\x01a\x1DgV[a\x01 \x82\x01Ra \x88\x86a\x02@\x87\x01a\x1DgV[a\x01@\x82\x01Ra \x9C\x86a\x02\x80\x87\x01a\x1DgV[a\x01`\x82\x01Ra \xB0\x86a\x02\xC0\x87\x01a\x1DgV[a\x01\x80\x82\x01Ra \xC4\x86a\x03\0\x87\x01a\x1DgV[a\x01\xA0\x82\x01Ra \xD8\x86a\x03@\x87\x01a\x1DgV[a\x01\xC0\x82\x01Ra \xEC\x86a\x03\x80\x87\x01a\x1DgV[a\x01\xE0\x82\x01Ra!\0\x86a\x03\xC0\x87\x01a\x1DgV[a\x02\0\x82\x01Ra!\x14\x86a\x04\0\x87\x01a\x1DgV[a\x02 \x82\x01Ra!(\x86a\x04@\x87\x01a\x1DgV[a\x02@\x82\x01Ra!<\x86a\x04\x80\x87\x01a\x1DgV[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa!j\x85a\x05\0\x86\x01a\x1D\xB4V[\x91Pa!z\x85a\x05\xA0\x86\x01a\x1E\x1FV[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a!\xB6WcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a!\xEAWcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\xA1dsolcC\0\x08#\0\n",
3141 );
3142 #[derive(serde::Serialize, serde::Deserialize)]
3143 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3144 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3149 #[derive(Clone)]
3150 pub struct BN254G1AddFailed;
3151 #[allow(
3152 non_camel_case_types,
3153 non_snake_case,
3154 clippy::pub_underscore_fields,
3155 clippy::style
3156 )]
3157 const _: () = {
3158 use alloy::sol_types as alloy_sol_types;
3159 #[doc(hidden)]
3160 #[allow(dead_code)]
3161 type UnderlyingSolTuple<'a> = ();
3162 #[doc(hidden)]
3163 type UnderlyingRustTuple<'a> = ();
3164 #[cfg(test)]
3165 #[allow(dead_code, unreachable_patterns)]
3166 fn _type_assertion(
3167 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3168 ) {
3169 match _t {
3170 alloy_sol_types::private::AssertTypeEq::<
3171 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3172 >(_) => {}
3173 }
3174 }
3175 #[automatically_derived]
3176 #[doc(hidden)]
3177 impl ::core::convert::From<BN254G1AddFailed> for UnderlyingRustTuple<'_> {
3178 fn from(value: BN254G1AddFailed) -> Self {
3179 ()
3180 }
3181 }
3182 #[automatically_derived]
3183 #[doc(hidden)]
3184 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254G1AddFailed {
3185 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3186 Self
3187 }
3188 }
3189 #[automatically_derived]
3190 impl alloy_sol_types::SolError for BN254G1AddFailed {
3191 type Parameters<'a> = UnderlyingSolTuple<'a>;
3192 type Token<'a> = <Self::Parameters<
3193 'a,
3194 > as alloy_sol_types::SolType>::Token<'a>;
3195 const SIGNATURE: &'static str = "BN254G1AddFailed()";
3196 const SELECTOR: [u8; 4] = [96u8, 85u8, 219u8, 106u8];
3197 #[inline]
3198 fn new<'a>(
3199 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3200 ) -> Self {
3201 tuple.into()
3202 }
3203 #[inline]
3204 fn tokenize(&self) -> Self::Token<'_> {
3205 ()
3206 }
3207 #[inline]
3208 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3209 Self::abi_decode_raw_with_config(
3210 data,
3211 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3212 )
3213 }
3214 }
3215 };
3216 #[derive(serde::Serialize, serde::Deserialize)]
3217 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3218 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3223 #[derive(Clone)]
3224 pub struct BN254PairingProdFailed;
3225 #[allow(
3226 non_camel_case_types,
3227 non_snake_case,
3228 clippy::pub_underscore_fields,
3229 clippy::style
3230 )]
3231 const _: () = {
3232 use alloy::sol_types as alloy_sol_types;
3233 #[doc(hidden)]
3234 #[allow(dead_code)]
3235 type UnderlyingSolTuple<'a> = ();
3236 #[doc(hidden)]
3237 type UnderlyingRustTuple<'a> = ();
3238 #[cfg(test)]
3239 #[allow(dead_code, unreachable_patterns)]
3240 fn _type_assertion(
3241 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3242 ) {
3243 match _t {
3244 alloy_sol_types::private::AssertTypeEq::<
3245 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3246 >(_) => {}
3247 }
3248 }
3249 #[automatically_derived]
3250 #[doc(hidden)]
3251 impl ::core::convert::From<BN254PairingProdFailed> for UnderlyingRustTuple<'_> {
3252 fn from(value: BN254PairingProdFailed) -> Self {
3253 ()
3254 }
3255 }
3256 #[automatically_derived]
3257 #[doc(hidden)]
3258 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254PairingProdFailed {
3259 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3260 Self
3261 }
3262 }
3263 #[automatically_derived]
3264 impl alloy_sol_types::SolError for BN254PairingProdFailed {
3265 type Parameters<'a> = UnderlyingSolTuple<'a>;
3266 type Token<'a> = <Self::Parameters<
3267 'a,
3268 > as alloy_sol_types::SolType>::Token<'a>;
3269 const SIGNATURE: &'static str = "BN254PairingProdFailed()";
3270 const SELECTOR: [u8; 4] = [194u8, 6u8, 51u8, 79u8];
3271 #[inline]
3272 fn new<'a>(
3273 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3274 ) -> Self {
3275 tuple.into()
3276 }
3277 #[inline]
3278 fn tokenize(&self) -> Self::Token<'_> {
3279 ()
3280 }
3281 #[inline]
3282 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3283 Self::abi_decode_raw_with_config(
3284 data,
3285 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3286 )
3287 }
3288 }
3289 };
3290 #[derive(serde::Serialize, serde::Deserialize)]
3291 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3292 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3297 #[derive(Clone)]
3298 pub struct BN254ScalarInvZero;
3299 #[allow(
3300 non_camel_case_types,
3301 non_snake_case,
3302 clippy::pub_underscore_fields,
3303 clippy::style
3304 )]
3305 const _: () = {
3306 use alloy::sol_types as alloy_sol_types;
3307 #[doc(hidden)]
3308 #[allow(dead_code)]
3309 type UnderlyingSolTuple<'a> = ();
3310 #[doc(hidden)]
3311 type UnderlyingRustTuple<'a> = ();
3312 #[cfg(test)]
3313 #[allow(dead_code, unreachable_patterns)]
3314 fn _type_assertion(
3315 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3316 ) {
3317 match _t {
3318 alloy_sol_types::private::AssertTypeEq::<
3319 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3320 >(_) => {}
3321 }
3322 }
3323 #[automatically_derived]
3324 #[doc(hidden)]
3325 impl ::core::convert::From<BN254ScalarInvZero> for UnderlyingRustTuple<'_> {
3326 fn from(value: BN254ScalarInvZero) -> Self {
3327 ()
3328 }
3329 }
3330 #[automatically_derived]
3331 #[doc(hidden)]
3332 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarInvZero {
3333 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3334 Self
3335 }
3336 }
3337 #[automatically_derived]
3338 impl alloy_sol_types::SolError for BN254ScalarInvZero {
3339 type Parameters<'a> = UnderlyingSolTuple<'a>;
3340 type Token<'a> = <Self::Parameters<
3341 'a,
3342 > as alloy_sol_types::SolType>::Token<'a>;
3343 const SIGNATURE: &'static str = "BN254ScalarInvZero()";
3344 const SELECTOR: [u8; 4] = [214u8, 219u8, 187u8, 13u8];
3345 #[inline]
3346 fn new<'a>(
3347 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3348 ) -> Self {
3349 tuple.into()
3350 }
3351 #[inline]
3352 fn tokenize(&self) -> Self::Token<'_> {
3353 ()
3354 }
3355 #[inline]
3356 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3357 Self::abi_decode_raw_with_config(
3358 data,
3359 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3360 )
3361 }
3362 }
3363 };
3364 #[derive(serde::Serialize, serde::Deserialize)]
3365 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3366 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3371 #[derive(Clone)]
3372 pub struct BN254ScalarMulFailed;
3373 #[allow(
3374 non_camel_case_types,
3375 non_snake_case,
3376 clippy::pub_underscore_fields,
3377 clippy::style
3378 )]
3379 const _: () = {
3380 use alloy::sol_types as alloy_sol_types;
3381 #[doc(hidden)]
3382 #[allow(dead_code)]
3383 type UnderlyingSolTuple<'a> = ();
3384 #[doc(hidden)]
3385 type UnderlyingRustTuple<'a> = ();
3386 #[cfg(test)]
3387 #[allow(dead_code, unreachable_patterns)]
3388 fn _type_assertion(
3389 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3390 ) {
3391 match _t {
3392 alloy_sol_types::private::AssertTypeEq::<
3393 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3394 >(_) => {}
3395 }
3396 }
3397 #[automatically_derived]
3398 #[doc(hidden)]
3399 impl ::core::convert::From<BN254ScalarMulFailed> for UnderlyingRustTuple<'_> {
3400 fn from(value: BN254ScalarMulFailed) -> Self {
3401 ()
3402 }
3403 }
3404 #[automatically_derived]
3405 #[doc(hidden)]
3406 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarMulFailed {
3407 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3408 Self
3409 }
3410 }
3411 #[automatically_derived]
3412 impl alloy_sol_types::SolError for BN254ScalarMulFailed {
3413 type Parameters<'a> = UnderlyingSolTuple<'a>;
3414 type Token<'a> = <Self::Parameters<
3415 'a,
3416 > as alloy_sol_types::SolType>::Token<'a>;
3417 const SIGNATURE: &'static str = "BN254ScalarMulFailed()";
3418 const SELECTOR: [u8; 4] = [25u8, 219u8, 138u8, 104u8];
3419 #[inline]
3420 fn new<'a>(
3421 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3422 ) -> Self {
3423 tuple.into()
3424 }
3425 #[inline]
3426 fn tokenize(&self) -> Self::Token<'_> {
3427 ()
3428 }
3429 #[inline]
3430 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3431 Self::abi_decode_raw_with_config(
3432 data,
3433 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3434 )
3435 }
3436 }
3437 };
3438 #[derive(serde::Serialize, serde::Deserialize)]
3439 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3440 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3445 #[derive(Clone)]
3446 pub struct InvalidG1;
3447 #[allow(
3448 non_camel_case_types,
3449 non_snake_case,
3450 clippy::pub_underscore_fields,
3451 clippy::style
3452 )]
3453 const _: () = {
3454 use alloy::sol_types as alloy_sol_types;
3455 #[doc(hidden)]
3456 #[allow(dead_code)]
3457 type UnderlyingSolTuple<'a> = ();
3458 #[doc(hidden)]
3459 type UnderlyingRustTuple<'a> = ();
3460 #[cfg(test)]
3461 #[allow(dead_code, unreachable_patterns)]
3462 fn _type_assertion(
3463 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3464 ) {
3465 match _t {
3466 alloy_sol_types::private::AssertTypeEq::<
3467 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3468 >(_) => {}
3469 }
3470 }
3471 #[automatically_derived]
3472 #[doc(hidden)]
3473 impl ::core::convert::From<InvalidG1> for UnderlyingRustTuple<'_> {
3474 fn from(value: InvalidG1) -> Self {
3475 ()
3476 }
3477 }
3478 #[automatically_derived]
3479 #[doc(hidden)]
3480 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidG1 {
3481 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3482 Self
3483 }
3484 }
3485 #[automatically_derived]
3486 impl alloy_sol_types::SolError for InvalidG1 {
3487 type Parameters<'a> = UnderlyingSolTuple<'a>;
3488 type Token<'a> = <Self::Parameters<
3489 'a,
3490 > as alloy_sol_types::SolType>::Token<'a>;
3491 const SIGNATURE: &'static str = "InvalidG1()";
3492 const SELECTOR: [u8; 4] = [158u8, 120u8, 209u8, 76u8];
3493 #[inline]
3494 fn new<'a>(
3495 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3496 ) -> Self {
3497 tuple.into()
3498 }
3499 #[inline]
3500 fn tokenize(&self) -> Self::Token<'_> {
3501 ()
3502 }
3503 #[inline]
3504 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3505 Self::abi_decode_raw_with_config(
3506 data,
3507 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3508 )
3509 }
3510 }
3511 };
3512 #[derive(serde::Serialize, serde::Deserialize)]
3513 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3514 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3519 #[derive(Clone)]
3520 pub struct InvalidPlonkArgs;
3521 #[allow(
3522 non_camel_case_types,
3523 non_snake_case,
3524 clippy::pub_underscore_fields,
3525 clippy::style
3526 )]
3527 const _: () = {
3528 use alloy::sol_types as alloy_sol_types;
3529 #[doc(hidden)]
3530 #[allow(dead_code)]
3531 type UnderlyingSolTuple<'a> = ();
3532 #[doc(hidden)]
3533 type UnderlyingRustTuple<'a> = ();
3534 #[cfg(test)]
3535 #[allow(dead_code, unreachable_patterns)]
3536 fn _type_assertion(
3537 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3538 ) {
3539 match _t {
3540 alloy_sol_types::private::AssertTypeEq::<
3541 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3542 >(_) => {}
3543 }
3544 }
3545 #[automatically_derived]
3546 #[doc(hidden)]
3547 impl ::core::convert::From<InvalidPlonkArgs> for UnderlyingRustTuple<'_> {
3548 fn from(value: InvalidPlonkArgs) -> Self {
3549 ()
3550 }
3551 }
3552 #[automatically_derived]
3553 #[doc(hidden)]
3554 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPlonkArgs {
3555 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3556 Self
3557 }
3558 }
3559 #[automatically_derived]
3560 impl alloy_sol_types::SolError for InvalidPlonkArgs {
3561 type Parameters<'a> = UnderlyingSolTuple<'a>;
3562 type Token<'a> = <Self::Parameters<
3563 'a,
3564 > as alloy_sol_types::SolType>::Token<'a>;
3565 const SIGNATURE: &'static str = "InvalidPlonkArgs()";
3566 const SELECTOR: [u8; 4] = [253u8, 154u8, 45u8, 27u8];
3567 #[inline]
3568 fn new<'a>(
3569 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3570 ) -> Self {
3571 tuple.into()
3572 }
3573 #[inline]
3574 fn tokenize(&self) -> Self::Token<'_> {
3575 ()
3576 }
3577 #[inline]
3578 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3579 Self::abi_decode_raw_with_config(
3580 data,
3581 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3582 )
3583 }
3584 }
3585 };
3586 #[derive(serde::Serialize, serde::Deserialize)]
3587 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3588 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3593 #[derive(Clone)]
3594 pub struct InvalidScalar;
3595 #[allow(
3596 non_camel_case_types,
3597 non_snake_case,
3598 clippy::pub_underscore_fields,
3599 clippy::style
3600 )]
3601 const _: () = {
3602 use alloy::sol_types as alloy_sol_types;
3603 #[doc(hidden)]
3604 #[allow(dead_code)]
3605 type UnderlyingSolTuple<'a> = ();
3606 #[doc(hidden)]
3607 type UnderlyingRustTuple<'a> = ();
3608 #[cfg(test)]
3609 #[allow(dead_code, unreachable_patterns)]
3610 fn _type_assertion(
3611 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3612 ) {
3613 match _t {
3614 alloy_sol_types::private::AssertTypeEq::<
3615 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3616 >(_) => {}
3617 }
3618 }
3619 #[automatically_derived]
3620 #[doc(hidden)]
3621 impl ::core::convert::From<InvalidScalar> for UnderlyingRustTuple<'_> {
3622 fn from(value: InvalidScalar) -> Self {
3623 ()
3624 }
3625 }
3626 #[automatically_derived]
3627 #[doc(hidden)]
3628 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidScalar {
3629 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3630 Self
3631 }
3632 }
3633 #[automatically_derived]
3634 impl alloy_sol_types::SolError for InvalidScalar {
3635 type Parameters<'a> = UnderlyingSolTuple<'a>;
3636 type Token<'a> = <Self::Parameters<
3637 'a,
3638 > as alloy_sol_types::SolType>::Token<'a>;
3639 const SIGNATURE: &'static str = "InvalidScalar()";
3640 const SELECTOR: [u8; 4] = [5u8, 176u8, 92u8, 204u8];
3641 #[inline]
3642 fn new<'a>(
3643 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3644 ) -> Self {
3645 tuple.into()
3646 }
3647 #[inline]
3648 fn tokenize(&self) -> Self::Token<'_> {
3649 ()
3650 }
3651 #[inline]
3652 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3653 Self::abi_decode_raw_with_config(
3654 data,
3655 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3656 )
3657 }
3658 }
3659 };
3660 #[derive(serde::Serialize, serde::Deserialize)]
3661 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3662 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3667 #[derive(Clone)]
3668 pub struct PowPrecompileFailed;
3669 #[allow(
3670 non_camel_case_types,
3671 non_snake_case,
3672 clippy::pub_underscore_fields,
3673 clippy::style
3674 )]
3675 const _: () = {
3676 use alloy::sol_types as alloy_sol_types;
3677 #[doc(hidden)]
3678 #[allow(dead_code)]
3679 type UnderlyingSolTuple<'a> = ();
3680 #[doc(hidden)]
3681 type UnderlyingRustTuple<'a> = ();
3682 #[cfg(test)]
3683 #[allow(dead_code, unreachable_patterns)]
3684 fn _type_assertion(
3685 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3686 ) {
3687 match _t {
3688 alloy_sol_types::private::AssertTypeEq::<
3689 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3690 >(_) => {}
3691 }
3692 }
3693 #[automatically_derived]
3694 #[doc(hidden)]
3695 impl ::core::convert::From<PowPrecompileFailed> for UnderlyingRustTuple<'_> {
3696 fn from(value: PowPrecompileFailed) -> Self {
3697 ()
3698 }
3699 }
3700 #[automatically_derived]
3701 #[doc(hidden)]
3702 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PowPrecompileFailed {
3703 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3704 Self
3705 }
3706 }
3707 #[automatically_derived]
3708 impl alloy_sol_types::SolError for PowPrecompileFailed {
3709 type Parameters<'a> = UnderlyingSolTuple<'a>;
3710 type Token<'a> = <Self::Parameters<
3711 'a,
3712 > as alloy_sol_types::SolType>::Token<'a>;
3713 const SIGNATURE: &'static str = "PowPrecompileFailed()";
3714 const SELECTOR: [u8; 4] = [50u8, 116u8, 250u8, 100u8];
3715 #[inline]
3716 fn new<'a>(
3717 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3718 ) -> Self {
3719 tuple.into()
3720 }
3721 #[inline]
3722 fn tokenize(&self) -> Self::Token<'_> {
3723 ()
3724 }
3725 #[inline]
3726 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3727 Self::abi_decode_raw_with_config(
3728 data,
3729 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3730 )
3731 }
3732 }
3733 };
3734 #[derive(serde::Serialize, serde::Deserialize)]
3735 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3736 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3741 #[derive(Clone)]
3742 pub struct UnsupportedDegree;
3743 #[allow(
3744 non_camel_case_types,
3745 non_snake_case,
3746 clippy::pub_underscore_fields,
3747 clippy::style
3748 )]
3749 const _: () = {
3750 use alloy::sol_types as alloy_sol_types;
3751 #[doc(hidden)]
3752 #[allow(dead_code)]
3753 type UnderlyingSolTuple<'a> = ();
3754 #[doc(hidden)]
3755 type UnderlyingRustTuple<'a> = ();
3756 #[cfg(test)]
3757 #[allow(dead_code, unreachable_patterns)]
3758 fn _type_assertion(
3759 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3760 ) {
3761 match _t {
3762 alloy_sol_types::private::AssertTypeEq::<
3763 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3764 >(_) => {}
3765 }
3766 }
3767 #[automatically_derived]
3768 #[doc(hidden)]
3769 impl ::core::convert::From<UnsupportedDegree> for UnderlyingRustTuple<'_> {
3770 fn from(value: UnsupportedDegree) -> Self {
3771 ()
3772 }
3773 }
3774 #[automatically_derived]
3775 #[doc(hidden)]
3776 impl ::core::convert::From<UnderlyingRustTuple<'_>> for UnsupportedDegree {
3777 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3778 Self
3779 }
3780 }
3781 #[automatically_derived]
3782 impl alloy_sol_types::SolError for UnsupportedDegree {
3783 type Parameters<'a> = UnderlyingSolTuple<'a>;
3784 type Token<'a> = <Self::Parameters<
3785 'a,
3786 > as alloy_sol_types::SolType>::Token<'a>;
3787 const SIGNATURE: &'static str = "UnsupportedDegree()";
3788 const SELECTOR: [u8; 4] = [226u8, 239u8, 9u8, 229u8];
3789 #[inline]
3790 fn new<'a>(
3791 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3792 ) -> Self {
3793 tuple.into()
3794 }
3795 #[inline]
3796 fn tokenize(&self) -> Self::Token<'_> {
3797 ()
3798 }
3799 #[inline]
3800 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3801 Self::abi_decode_raw_with_config(
3802 data,
3803 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3804 )
3805 }
3806 }
3807 };
3808 #[derive(serde::Serialize, serde::Deserialize)]
3809 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3810 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3815 #[derive(Clone)]
3816 pub struct WrongPlonkVK;
3817 #[allow(
3818 non_camel_case_types,
3819 non_snake_case,
3820 clippy::pub_underscore_fields,
3821 clippy::style
3822 )]
3823 const _: () = {
3824 use alloy::sol_types as alloy_sol_types;
3825 #[doc(hidden)]
3826 #[allow(dead_code)]
3827 type UnderlyingSolTuple<'a> = ();
3828 #[doc(hidden)]
3829 type UnderlyingRustTuple<'a> = ();
3830 #[cfg(test)]
3831 #[allow(dead_code, unreachable_patterns)]
3832 fn _type_assertion(
3833 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3834 ) {
3835 match _t {
3836 alloy_sol_types::private::AssertTypeEq::<
3837 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3838 >(_) => {}
3839 }
3840 }
3841 #[automatically_derived]
3842 #[doc(hidden)]
3843 impl ::core::convert::From<WrongPlonkVK> for UnderlyingRustTuple<'_> {
3844 fn from(value: WrongPlonkVK) -> Self {
3845 ()
3846 }
3847 }
3848 #[automatically_derived]
3849 #[doc(hidden)]
3850 impl ::core::convert::From<UnderlyingRustTuple<'_>> for WrongPlonkVK {
3851 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3852 Self
3853 }
3854 }
3855 #[automatically_derived]
3856 impl alloy_sol_types::SolError for WrongPlonkVK {
3857 type Parameters<'a> = UnderlyingSolTuple<'a>;
3858 type Token<'a> = <Self::Parameters<
3859 'a,
3860 > as alloy_sol_types::SolType>::Token<'a>;
3861 const SIGNATURE: &'static str = "WrongPlonkVK()";
3862 const SELECTOR: [u8; 4] = [65u8, 245u8, 59u8, 18u8];
3863 #[inline]
3864 fn new<'a>(
3865 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3866 ) -> Self {
3867 tuple.into()
3868 }
3869 #[inline]
3870 fn tokenize(&self) -> Self::Token<'_> {
3871 ()
3872 }
3873 #[inline]
3874 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3875 Self::abi_decode_raw_with_config(
3876 data,
3877 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
3878 )
3879 }
3880 }
3881 };
3882 #[derive(serde::Serialize, serde::Deserialize)]
3883 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3884 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3889 #[derive(Clone)]
3890 pub struct BETA_H_X0Call;
3891 #[derive(serde::Serialize, serde::Deserialize)]
3892 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3893 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3895 #[derive(Clone)]
3896 pub struct BETA_H_X0Return {
3897 #[allow(missing_docs)]
3898 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3899 }
3900 #[allow(
3901 non_camel_case_types,
3902 non_snake_case,
3903 clippy::pub_underscore_fields,
3904 clippy::style
3905 )]
3906 const _: () = {
3907 use alloy::sol_types as alloy_sol_types;
3908 {
3909 #[doc(hidden)]
3910 #[allow(dead_code)]
3911 type UnderlyingSolTuple<'a> = ();
3912 #[doc(hidden)]
3913 type UnderlyingRustTuple<'a> = ();
3914 #[cfg(test)]
3915 #[allow(dead_code, unreachable_patterns)]
3916 fn _type_assertion(
3917 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3918 ) {
3919 match _t {
3920 alloy_sol_types::private::AssertTypeEq::<
3921 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3922 >(_) => {}
3923 }
3924 }
3925 #[automatically_derived]
3926 #[doc(hidden)]
3927 impl ::core::convert::From<BETA_H_X0Call> for UnderlyingRustTuple<'_> {
3928 fn from(value: BETA_H_X0Call) -> Self {
3929 ()
3930 }
3931 }
3932 #[automatically_derived]
3933 #[doc(hidden)]
3934 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Call {
3935 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3936 Self
3937 }
3938 }
3939 }
3940 {
3941 #[doc(hidden)]
3942 #[allow(dead_code)]
3943 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3944 #[doc(hidden)]
3945 type UnderlyingRustTuple<'a> = (
3946 alloy::sol_types::private::primitives::aliases::U256,
3947 );
3948 #[cfg(test)]
3949 #[allow(dead_code, unreachable_patterns)]
3950 fn _type_assertion(
3951 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3952 ) {
3953 match _t {
3954 alloy_sol_types::private::AssertTypeEq::<
3955 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3956 >(_) => {}
3957 }
3958 }
3959 #[automatically_derived]
3960 #[doc(hidden)]
3961 impl ::core::convert::From<BETA_H_X0Return> for UnderlyingRustTuple<'_> {
3962 fn from(value: BETA_H_X0Return) -> Self {
3963 (value._0,)
3964 }
3965 }
3966 #[automatically_derived]
3967 #[doc(hidden)]
3968 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Return {
3969 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3970 Self { _0: tuple.0 }
3971 }
3972 }
3973 }
3974 #[automatically_derived]
3975 impl alloy_sol_types::SolCall for BETA_H_X0Call {
3976 type Parameters<'a> = ();
3977 type Token<'a> = <Self::Parameters<
3978 'a,
3979 > as alloy_sol_types::SolType>::Token<'a>;
3980 type Return = alloy::sol_types::private::primitives::aliases::U256;
3981 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3982 type ReturnToken<'a> = <Self::ReturnTuple<
3983 'a,
3984 > as alloy_sol_types::SolType>::Token<'a>;
3985 const SIGNATURE: &'static str = "BETA_H_X0()";
3986 const SELECTOR: [u8; 4] = [131u8, 76u8, 69u8, 42u8];
3987 #[inline]
3988 fn new<'a>(
3989 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3990 ) -> Self {
3991 tuple.into()
3992 }
3993 #[inline]
3994 fn tokenize(&self) -> Self::Token<'_> {
3995 ()
3996 }
3997 #[inline]
3998 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
3999 (
4000 <alloy::sol_types::sol_data::Uint<
4001 256,
4002 > as alloy_sol_types::SolType>::tokenize(ret),
4003 )
4004 }
4005 #[inline]
4006 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4007 <Self::ReturnTuple<
4008 '_,
4009 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4010 .map(|r| {
4011 let r: BETA_H_X0Return = r.into();
4012 r._0
4013 })
4014 }
4015 #[inline]
4016 fn abi_decode_returns_with_config(
4017 data: &[u8],
4018 config: alloy_sol_types::abi::AbiDecoderConfig,
4019 ) -> alloy_sol_types::Result<Self::Return> {
4020 <Self::ReturnTuple<
4021 '_,
4022 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4023 data,
4024 config,
4025 )
4026 .map(|r| {
4027 let r: BETA_H_X0Return = r.into();
4028 r._0
4029 })
4030 }
4031 #[inline]
4032 fn abi_decode_returns_validate(
4033 data: &[u8],
4034 ) -> alloy_sol_types::Result<Self::Return> {
4035 Self::abi_decode_returns_with_config(
4036 data,
4037 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4038 )
4039 }
4040 }
4041 };
4042 #[derive(serde::Serialize, serde::Deserialize)]
4043 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4044 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4049 #[derive(Clone)]
4050 pub struct BETA_H_X1Call;
4051 #[derive(serde::Serialize, serde::Deserialize)]
4052 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4053 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4055 #[derive(Clone)]
4056 pub struct BETA_H_X1Return {
4057 #[allow(missing_docs)]
4058 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4059 }
4060 #[allow(
4061 non_camel_case_types,
4062 non_snake_case,
4063 clippy::pub_underscore_fields,
4064 clippy::style
4065 )]
4066 const _: () = {
4067 use alloy::sol_types as alloy_sol_types;
4068 {
4069 #[doc(hidden)]
4070 #[allow(dead_code)]
4071 type UnderlyingSolTuple<'a> = ();
4072 #[doc(hidden)]
4073 type UnderlyingRustTuple<'a> = ();
4074 #[cfg(test)]
4075 #[allow(dead_code, unreachable_patterns)]
4076 fn _type_assertion(
4077 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4078 ) {
4079 match _t {
4080 alloy_sol_types::private::AssertTypeEq::<
4081 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4082 >(_) => {}
4083 }
4084 }
4085 #[automatically_derived]
4086 #[doc(hidden)]
4087 impl ::core::convert::From<BETA_H_X1Call> for UnderlyingRustTuple<'_> {
4088 fn from(value: BETA_H_X1Call) -> Self {
4089 ()
4090 }
4091 }
4092 #[automatically_derived]
4093 #[doc(hidden)]
4094 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Call {
4095 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4096 Self
4097 }
4098 }
4099 }
4100 {
4101 #[doc(hidden)]
4102 #[allow(dead_code)]
4103 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4104 #[doc(hidden)]
4105 type UnderlyingRustTuple<'a> = (
4106 alloy::sol_types::private::primitives::aliases::U256,
4107 );
4108 #[cfg(test)]
4109 #[allow(dead_code, unreachable_patterns)]
4110 fn _type_assertion(
4111 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4112 ) {
4113 match _t {
4114 alloy_sol_types::private::AssertTypeEq::<
4115 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4116 >(_) => {}
4117 }
4118 }
4119 #[automatically_derived]
4120 #[doc(hidden)]
4121 impl ::core::convert::From<BETA_H_X1Return> for UnderlyingRustTuple<'_> {
4122 fn from(value: BETA_H_X1Return) -> Self {
4123 (value._0,)
4124 }
4125 }
4126 #[automatically_derived]
4127 #[doc(hidden)]
4128 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Return {
4129 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4130 Self { _0: tuple.0 }
4131 }
4132 }
4133 }
4134 #[automatically_derived]
4135 impl alloy_sol_types::SolCall for BETA_H_X1Call {
4136 type Parameters<'a> = ();
4137 type Token<'a> = <Self::Parameters<
4138 'a,
4139 > as alloy_sol_types::SolType>::Token<'a>;
4140 type Return = alloy::sol_types::private::primitives::aliases::U256;
4141 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4142 type ReturnToken<'a> = <Self::ReturnTuple<
4143 'a,
4144 > as alloy_sol_types::SolType>::Token<'a>;
4145 const SIGNATURE: &'static str = "BETA_H_X1()";
4146 const SELECTOR: [u8; 4] = [175u8, 25u8, 107u8, 162u8];
4147 #[inline]
4148 fn new<'a>(
4149 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4150 ) -> Self {
4151 tuple.into()
4152 }
4153 #[inline]
4154 fn tokenize(&self) -> Self::Token<'_> {
4155 ()
4156 }
4157 #[inline]
4158 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4159 (
4160 <alloy::sol_types::sol_data::Uint<
4161 256,
4162 > as alloy_sol_types::SolType>::tokenize(ret),
4163 )
4164 }
4165 #[inline]
4166 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4167 <Self::ReturnTuple<
4168 '_,
4169 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4170 .map(|r| {
4171 let r: BETA_H_X1Return = r.into();
4172 r._0
4173 })
4174 }
4175 #[inline]
4176 fn abi_decode_returns_with_config(
4177 data: &[u8],
4178 config: alloy_sol_types::abi::AbiDecoderConfig,
4179 ) -> alloy_sol_types::Result<Self::Return> {
4180 <Self::ReturnTuple<
4181 '_,
4182 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4183 data,
4184 config,
4185 )
4186 .map(|r| {
4187 let r: BETA_H_X1Return = r.into();
4188 r._0
4189 })
4190 }
4191 #[inline]
4192 fn abi_decode_returns_validate(
4193 data: &[u8],
4194 ) -> alloy_sol_types::Result<Self::Return> {
4195 Self::abi_decode_returns_with_config(
4196 data,
4197 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4198 )
4199 }
4200 }
4201 };
4202 #[derive(serde::Serialize, serde::Deserialize)]
4203 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4204 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4209 #[derive(Clone)]
4210 pub struct BETA_H_Y0Call;
4211 #[derive(serde::Serialize, serde::Deserialize)]
4212 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4213 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4215 #[derive(Clone)]
4216 pub struct BETA_H_Y0Return {
4217 #[allow(missing_docs)]
4218 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4219 }
4220 #[allow(
4221 non_camel_case_types,
4222 non_snake_case,
4223 clippy::pub_underscore_fields,
4224 clippy::style
4225 )]
4226 const _: () = {
4227 use alloy::sol_types as alloy_sol_types;
4228 {
4229 #[doc(hidden)]
4230 #[allow(dead_code)]
4231 type UnderlyingSolTuple<'a> = ();
4232 #[doc(hidden)]
4233 type UnderlyingRustTuple<'a> = ();
4234 #[cfg(test)]
4235 #[allow(dead_code, unreachable_patterns)]
4236 fn _type_assertion(
4237 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4238 ) {
4239 match _t {
4240 alloy_sol_types::private::AssertTypeEq::<
4241 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4242 >(_) => {}
4243 }
4244 }
4245 #[automatically_derived]
4246 #[doc(hidden)]
4247 impl ::core::convert::From<BETA_H_Y0Call> for UnderlyingRustTuple<'_> {
4248 fn from(value: BETA_H_Y0Call) -> Self {
4249 ()
4250 }
4251 }
4252 #[automatically_derived]
4253 #[doc(hidden)]
4254 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Call {
4255 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4256 Self
4257 }
4258 }
4259 }
4260 {
4261 #[doc(hidden)]
4262 #[allow(dead_code)]
4263 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4264 #[doc(hidden)]
4265 type UnderlyingRustTuple<'a> = (
4266 alloy::sol_types::private::primitives::aliases::U256,
4267 );
4268 #[cfg(test)]
4269 #[allow(dead_code, unreachable_patterns)]
4270 fn _type_assertion(
4271 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4272 ) {
4273 match _t {
4274 alloy_sol_types::private::AssertTypeEq::<
4275 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4276 >(_) => {}
4277 }
4278 }
4279 #[automatically_derived]
4280 #[doc(hidden)]
4281 impl ::core::convert::From<BETA_H_Y0Return> for UnderlyingRustTuple<'_> {
4282 fn from(value: BETA_H_Y0Return) -> Self {
4283 (value._0,)
4284 }
4285 }
4286 #[automatically_derived]
4287 #[doc(hidden)]
4288 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Return {
4289 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4290 Self { _0: tuple.0 }
4291 }
4292 }
4293 }
4294 #[automatically_derived]
4295 impl alloy_sol_types::SolCall for BETA_H_Y0Call {
4296 type Parameters<'a> = ();
4297 type Token<'a> = <Self::Parameters<
4298 'a,
4299 > as alloy_sol_types::SolType>::Token<'a>;
4300 type Return = alloy::sol_types::private::primitives::aliases::U256;
4301 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4302 type ReturnToken<'a> = <Self::ReturnTuple<
4303 'a,
4304 > as alloy_sol_types::SolType>::Token<'a>;
4305 const SIGNATURE: &'static str = "BETA_H_Y0()";
4306 const SELECTOR: [u8; 4] = [245u8, 20u8, 67u8, 38u8];
4307 #[inline]
4308 fn new<'a>(
4309 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4310 ) -> Self {
4311 tuple.into()
4312 }
4313 #[inline]
4314 fn tokenize(&self) -> Self::Token<'_> {
4315 ()
4316 }
4317 #[inline]
4318 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4319 (
4320 <alloy::sol_types::sol_data::Uint<
4321 256,
4322 > as alloy_sol_types::SolType>::tokenize(ret),
4323 )
4324 }
4325 #[inline]
4326 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4327 <Self::ReturnTuple<
4328 '_,
4329 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4330 .map(|r| {
4331 let r: BETA_H_Y0Return = r.into();
4332 r._0
4333 })
4334 }
4335 #[inline]
4336 fn abi_decode_returns_with_config(
4337 data: &[u8],
4338 config: alloy_sol_types::abi::AbiDecoderConfig,
4339 ) -> alloy_sol_types::Result<Self::Return> {
4340 <Self::ReturnTuple<
4341 '_,
4342 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4343 data,
4344 config,
4345 )
4346 .map(|r| {
4347 let r: BETA_H_Y0Return = r.into();
4348 r._0
4349 })
4350 }
4351 #[inline]
4352 fn abi_decode_returns_validate(
4353 data: &[u8],
4354 ) -> alloy_sol_types::Result<Self::Return> {
4355 Self::abi_decode_returns_with_config(
4356 data,
4357 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4358 )
4359 }
4360 }
4361 };
4362 #[derive(serde::Serialize, serde::Deserialize)]
4363 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4364 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4369 #[derive(Clone)]
4370 pub struct BETA_H_Y1Call;
4371 #[derive(serde::Serialize, serde::Deserialize)]
4372 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4373 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4375 #[derive(Clone)]
4376 pub struct BETA_H_Y1Return {
4377 #[allow(missing_docs)]
4378 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4379 }
4380 #[allow(
4381 non_camel_case_types,
4382 non_snake_case,
4383 clippy::pub_underscore_fields,
4384 clippy::style
4385 )]
4386 const _: () = {
4387 use alloy::sol_types as alloy_sol_types;
4388 {
4389 #[doc(hidden)]
4390 #[allow(dead_code)]
4391 type UnderlyingSolTuple<'a> = ();
4392 #[doc(hidden)]
4393 type UnderlyingRustTuple<'a> = ();
4394 #[cfg(test)]
4395 #[allow(dead_code, unreachable_patterns)]
4396 fn _type_assertion(
4397 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4398 ) {
4399 match _t {
4400 alloy_sol_types::private::AssertTypeEq::<
4401 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4402 >(_) => {}
4403 }
4404 }
4405 #[automatically_derived]
4406 #[doc(hidden)]
4407 impl ::core::convert::From<BETA_H_Y1Call> for UnderlyingRustTuple<'_> {
4408 fn from(value: BETA_H_Y1Call) -> Self {
4409 ()
4410 }
4411 }
4412 #[automatically_derived]
4413 #[doc(hidden)]
4414 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Call {
4415 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4416 Self
4417 }
4418 }
4419 }
4420 {
4421 #[doc(hidden)]
4422 #[allow(dead_code)]
4423 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4424 #[doc(hidden)]
4425 type UnderlyingRustTuple<'a> = (
4426 alloy::sol_types::private::primitives::aliases::U256,
4427 );
4428 #[cfg(test)]
4429 #[allow(dead_code, unreachable_patterns)]
4430 fn _type_assertion(
4431 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4432 ) {
4433 match _t {
4434 alloy_sol_types::private::AssertTypeEq::<
4435 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4436 >(_) => {}
4437 }
4438 }
4439 #[automatically_derived]
4440 #[doc(hidden)]
4441 impl ::core::convert::From<BETA_H_Y1Return> for UnderlyingRustTuple<'_> {
4442 fn from(value: BETA_H_Y1Return) -> Self {
4443 (value._0,)
4444 }
4445 }
4446 #[automatically_derived]
4447 #[doc(hidden)]
4448 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Return {
4449 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4450 Self { _0: tuple.0 }
4451 }
4452 }
4453 }
4454 #[automatically_derived]
4455 impl alloy_sol_types::SolCall for BETA_H_Y1Call {
4456 type Parameters<'a> = ();
4457 type Token<'a> = <Self::Parameters<
4458 'a,
4459 > as alloy_sol_types::SolType>::Token<'a>;
4460 type Return = alloy::sol_types::private::primitives::aliases::U256;
4461 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4462 type ReturnToken<'a> = <Self::ReturnTuple<
4463 'a,
4464 > as alloy_sol_types::SolType>::Token<'a>;
4465 const SIGNATURE: &'static str = "BETA_H_Y1()";
4466 const SELECTOR: [u8; 4] = [75u8, 71u8, 52u8, 227u8];
4467 #[inline]
4468 fn new<'a>(
4469 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4470 ) -> Self {
4471 tuple.into()
4472 }
4473 #[inline]
4474 fn tokenize(&self) -> Self::Token<'_> {
4475 ()
4476 }
4477 #[inline]
4478 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4479 (
4480 <alloy::sol_types::sol_data::Uint<
4481 256,
4482 > as alloy_sol_types::SolType>::tokenize(ret),
4483 )
4484 }
4485 #[inline]
4486 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4487 <Self::ReturnTuple<
4488 '_,
4489 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4490 .map(|r| {
4491 let r: BETA_H_Y1Return = r.into();
4492 r._0
4493 })
4494 }
4495 #[inline]
4496 fn abi_decode_returns_with_config(
4497 data: &[u8],
4498 config: alloy_sol_types::abi::AbiDecoderConfig,
4499 ) -> alloy_sol_types::Result<Self::Return> {
4500 <Self::ReturnTuple<
4501 '_,
4502 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4503 data,
4504 config,
4505 )
4506 .map(|r| {
4507 let r: BETA_H_Y1Return = r.into();
4508 r._0
4509 })
4510 }
4511 #[inline]
4512 fn abi_decode_returns_validate(
4513 data: &[u8],
4514 ) -> alloy_sol_types::Result<Self::Return> {
4515 Self::abi_decode_returns_with_config(
4516 data,
4517 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4518 )
4519 }
4520 }
4521 };
4522 #[derive(serde::Serialize, serde::Deserialize)]
4523 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4524 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4529 #[derive(Clone)]
4530 pub struct COSET_K1Call;
4531 #[derive(serde::Serialize, serde::Deserialize)]
4532 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4533 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4535 #[derive(Clone)]
4536 pub struct COSET_K1Return {
4537 #[allow(missing_docs)]
4538 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4539 }
4540 #[allow(
4541 non_camel_case_types,
4542 non_snake_case,
4543 clippy::pub_underscore_fields,
4544 clippy::style
4545 )]
4546 const _: () = {
4547 use alloy::sol_types as alloy_sol_types;
4548 {
4549 #[doc(hidden)]
4550 #[allow(dead_code)]
4551 type UnderlyingSolTuple<'a> = ();
4552 #[doc(hidden)]
4553 type UnderlyingRustTuple<'a> = ();
4554 #[cfg(test)]
4555 #[allow(dead_code, unreachable_patterns)]
4556 fn _type_assertion(
4557 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4558 ) {
4559 match _t {
4560 alloy_sol_types::private::AssertTypeEq::<
4561 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4562 >(_) => {}
4563 }
4564 }
4565 #[automatically_derived]
4566 #[doc(hidden)]
4567 impl ::core::convert::From<COSET_K1Call> for UnderlyingRustTuple<'_> {
4568 fn from(value: COSET_K1Call) -> Self {
4569 ()
4570 }
4571 }
4572 #[automatically_derived]
4573 #[doc(hidden)]
4574 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Call {
4575 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4576 Self
4577 }
4578 }
4579 }
4580 {
4581 #[doc(hidden)]
4582 #[allow(dead_code)]
4583 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4584 #[doc(hidden)]
4585 type UnderlyingRustTuple<'a> = (
4586 alloy::sol_types::private::primitives::aliases::U256,
4587 );
4588 #[cfg(test)]
4589 #[allow(dead_code, unreachable_patterns)]
4590 fn _type_assertion(
4591 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4592 ) {
4593 match _t {
4594 alloy_sol_types::private::AssertTypeEq::<
4595 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4596 >(_) => {}
4597 }
4598 }
4599 #[automatically_derived]
4600 #[doc(hidden)]
4601 impl ::core::convert::From<COSET_K1Return> for UnderlyingRustTuple<'_> {
4602 fn from(value: COSET_K1Return) -> Self {
4603 (value._0,)
4604 }
4605 }
4606 #[automatically_derived]
4607 #[doc(hidden)]
4608 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Return {
4609 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4610 Self { _0: tuple.0 }
4611 }
4612 }
4613 }
4614 #[automatically_derived]
4615 impl alloy_sol_types::SolCall for COSET_K1Call {
4616 type Parameters<'a> = ();
4617 type Token<'a> = <Self::Parameters<
4618 'a,
4619 > as alloy_sol_types::SolType>::Token<'a>;
4620 type Return = alloy::sol_types::private::primitives::aliases::U256;
4621 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4622 type ReturnToken<'a> = <Self::ReturnTuple<
4623 'a,
4624 > as alloy_sol_types::SolType>::Token<'a>;
4625 const SIGNATURE: &'static str = "COSET_K1()";
4626 const SELECTOR: [u8; 4] = [227u8, 81u8, 45u8, 86u8];
4627 #[inline]
4628 fn new<'a>(
4629 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4630 ) -> Self {
4631 tuple.into()
4632 }
4633 #[inline]
4634 fn tokenize(&self) -> Self::Token<'_> {
4635 ()
4636 }
4637 #[inline]
4638 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4639 (
4640 <alloy::sol_types::sol_data::Uint<
4641 256,
4642 > as alloy_sol_types::SolType>::tokenize(ret),
4643 )
4644 }
4645 #[inline]
4646 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4647 <Self::ReturnTuple<
4648 '_,
4649 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4650 .map(|r| {
4651 let r: COSET_K1Return = r.into();
4652 r._0
4653 })
4654 }
4655 #[inline]
4656 fn abi_decode_returns_with_config(
4657 data: &[u8],
4658 config: alloy_sol_types::abi::AbiDecoderConfig,
4659 ) -> alloy_sol_types::Result<Self::Return> {
4660 <Self::ReturnTuple<
4661 '_,
4662 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4663 data,
4664 config,
4665 )
4666 .map(|r| {
4667 let r: COSET_K1Return = r.into();
4668 r._0
4669 })
4670 }
4671 #[inline]
4672 fn abi_decode_returns_validate(
4673 data: &[u8],
4674 ) -> alloy_sol_types::Result<Self::Return> {
4675 Self::abi_decode_returns_with_config(
4676 data,
4677 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4678 )
4679 }
4680 }
4681 };
4682 #[derive(serde::Serialize, serde::Deserialize)]
4683 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4684 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4689 #[derive(Clone)]
4690 pub struct COSET_K2Call;
4691 #[derive(serde::Serialize, serde::Deserialize)]
4692 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4693 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4695 #[derive(Clone)]
4696 pub struct COSET_K2Return {
4697 #[allow(missing_docs)]
4698 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4699 }
4700 #[allow(
4701 non_camel_case_types,
4702 non_snake_case,
4703 clippy::pub_underscore_fields,
4704 clippy::style
4705 )]
4706 const _: () = {
4707 use alloy::sol_types as alloy_sol_types;
4708 {
4709 #[doc(hidden)]
4710 #[allow(dead_code)]
4711 type UnderlyingSolTuple<'a> = ();
4712 #[doc(hidden)]
4713 type UnderlyingRustTuple<'a> = ();
4714 #[cfg(test)]
4715 #[allow(dead_code, unreachable_patterns)]
4716 fn _type_assertion(
4717 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4718 ) {
4719 match _t {
4720 alloy_sol_types::private::AssertTypeEq::<
4721 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4722 >(_) => {}
4723 }
4724 }
4725 #[automatically_derived]
4726 #[doc(hidden)]
4727 impl ::core::convert::From<COSET_K2Call> for UnderlyingRustTuple<'_> {
4728 fn from(value: COSET_K2Call) -> Self {
4729 ()
4730 }
4731 }
4732 #[automatically_derived]
4733 #[doc(hidden)]
4734 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Call {
4735 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4736 Self
4737 }
4738 }
4739 }
4740 {
4741 #[doc(hidden)]
4742 #[allow(dead_code)]
4743 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4744 #[doc(hidden)]
4745 type UnderlyingRustTuple<'a> = (
4746 alloy::sol_types::private::primitives::aliases::U256,
4747 );
4748 #[cfg(test)]
4749 #[allow(dead_code, unreachable_patterns)]
4750 fn _type_assertion(
4751 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4752 ) {
4753 match _t {
4754 alloy_sol_types::private::AssertTypeEq::<
4755 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4756 >(_) => {}
4757 }
4758 }
4759 #[automatically_derived]
4760 #[doc(hidden)]
4761 impl ::core::convert::From<COSET_K2Return> for UnderlyingRustTuple<'_> {
4762 fn from(value: COSET_K2Return) -> Self {
4763 (value._0,)
4764 }
4765 }
4766 #[automatically_derived]
4767 #[doc(hidden)]
4768 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Return {
4769 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4770 Self { _0: tuple.0 }
4771 }
4772 }
4773 }
4774 #[automatically_derived]
4775 impl alloy_sol_types::SolCall for COSET_K2Call {
4776 type Parameters<'a> = ();
4777 type Token<'a> = <Self::Parameters<
4778 'a,
4779 > as alloy_sol_types::SolType>::Token<'a>;
4780 type Return = alloy::sol_types::private::primitives::aliases::U256;
4781 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4782 type ReturnToken<'a> = <Self::ReturnTuple<
4783 'a,
4784 > as alloy_sol_types::SolType>::Token<'a>;
4785 const SIGNATURE: &'static str = "COSET_K2()";
4786 const SELECTOR: [u8; 4] = [12u8, 85u8, 31u8, 63u8];
4787 #[inline]
4788 fn new<'a>(
4789 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4790 ) -> Self {
4791 tuple.into()
4792 }
4793 #[inline]
4794 fn tokenize(&self) -> Self::Token<'_> {
4795 ()
4796 }
4797 #[inline]
4798 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4799 (
4800 <alloy::sol_types::sol_data::Uint<
4801 256,
4802 > as alloy_sol_types::SolType>::tokenize(ret),
4803 )
4804 }
4805 #[inline]
4806 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4807 <Self::ReturnTuple<
4808 '_,
4809 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4810 .map(|r| {
4811 let r: COSET_K2Return = r.into();
4812 r._0
4813 })
4814 }
4815 #[inline]
4816 fn abi_decode_returns_with_config(
4817 data: &[u8],
4818 config: alloy_sol_types::abi::AbiDecoderConfig,
4819 ) -> alloy_sol_types::Result<Self::Return> {
4820 <Self::ReturnTuple<
4821 '_,
4822 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4823 data,
4824 config,
4825 )
4826 .map(|r| {
4827 let r: COSET_K2Return = r.into();
4828 r._0
4829 })
4830 }
4831 #[inline]
4832 fn abi_decode_returns_validate(
4833 data: &[u8],
4834 ) -> alloy_sol_types::Result<Self::Return> {
4835 Self::abi_decode_returns_with_config(
4836 data,
4837 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4838 )
4839 }
4840 }
4841 };
4842 #[derive(serde::Serialize, serde::Deserialize)]
4843 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4844 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4849 #[derive(Clone)]
4850 pub struct COSET_K3Call;
4851 #[derive(serde::Serialize, serde::Deserialize)]
4852 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4853 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4855 #[derive(Clone)]
4856 pub struct COSET_K3Return {
4857 #[allow(missing_docs)]
4858 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4859 }
4860 #[allow(
4861 non_camel_case_types,
4862 non_snake_case,
4863 clippy::pub_underscore_fields,
4864 clippy::style
4865 )]
4866 const _: () = {
4867 use alloy::sol_types as alloy_sol_types;
4868 {
4869 #[doc(hidden)]
4870 #[allow(dead_code)]
4871 type UnderlyingSolTuple<'a> = ();
4872 #[doc(hidden)]
4873 type UnderlyingRustTuple<'a> = ();
4874 #[cfg(test)]
4875 #[allow(dead_code, unreachable_patterns)]
4876 fn _type_assertion(
4877 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4878 ) {
4879 match _t {
4880 alloy_sol_types::private::AssertTypeEq::<
4881 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4882 >(_) => {}
4883 }
4884 }
4885 #[automatically_derived]
4886 #[doc(hidden)]
4887 impl ::core::convert::From<COSET_K3Call> for UnderlyingRustTuple<'_> {
4888 fn from(value: COSET_K3Call) -> Self {
4889 ()
4890 }
4891 }
4892 #[automatically_derived]
4893 #[doc(hidden)]
4894 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Call {
4895 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4896 Self
4897 }
4898 }
4899 }
4900 {
4901 #[doc(hidden)]
4902 #[allow(dead_code)]
4903 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4904 #[doc(hidden)]
4905 type UnderlyingRustTuple<'a> = (
4906 alloy::sol_types::private::primitives::aliases::U256,
4907 );
4908 #[cfg(test)]
4909 #[allow(dead_code, unreachable_patterns)]
4910 fn _type_assertion(
4911 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4912 ) {
4913 match _t {
4914 alloy_sol_types::private::AssertTypeEq::<
4915 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4916 >(_) => {}
4917 }
4918 }
4919 #[automatically_derived]
4920 #[doc(hidden)]
4921 impl ::core::convert::From<COSET_K3Return> for UnderlyingRustTuple<'_> {
4922 fn from(value: COSET_K3Return) -> Self {
4923 (value._0,)
4924 }
4925 }
4926 #[automatically_derived]
4927 #[doc(hidden)]
4928 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Return {
4929 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4930 Self { _0: tuple.0 }
4931 }
4932 }
4933 }
4934 #[automatically_derived]
4935 impl alloy_sol_types::SolCall for COSET_K3Call {
4936 type Parameters<'a> = ();
4937 type Token<'a> = <Self::Parameters<
4938 'a,
4939 > as alloy_sol_types::SolType>::Token<'a>;
4940 type Return = alloy::sol_types::private::primitives::aliases::U256;
4941 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4942 type ReturnToken<'a> = <Self::ReturnTuple<
4943 'a,
4944 > as alloy_sol_types::SolType>::Token<'a>;
4945 const SIGNATURE: &'static str = "COSET_K3()";
4946 const SELECTOR: [u8; 4] = [90u8, 20u8, 192u8, 254u8];
4947 #[inline]
4948 fn new<'a>(
4949 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4950 ) -> Self {
4951 tuple.into()
4952 }
4953 #[inline]
4954 fn tokenize(&self) -> Self::Token<'_> {
4955 ()
4956 }
4957 #[inline]
4958 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4959 (
4960 <alloy::sol_types::sol_data::Uint<
4961 256,
4962 > as alloy_sol_types::SolType>::tokenize(ret),
4963 )
4964 }
4965 #[inline]
4966 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4967 <Self::ReturnTuple<
4968 '_,
4969 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4970 .map(|r| {
4971 let r: COSET_K3Return = r.into();
4972 r._0
4973 })
4974 }
4975 #[inline]
4976 fn abi_decode_returns_with_config(
4977 data: &[u8],
4978 config: alloy_sol_types::abi::AbiDecoderConfig,
4979 ) -> alloy_sol_types::Result<Self::Return> {
4980 <Self::ReturnTuple<
4981 '_,
4982 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
4983 data,
4984 config,
4985 )
4986 .map(|r| {
4987 let r: COSET_K3Return = r.into();
4988 r._0
4989 })
4990 }
4991 #[inline]
4992 fn abi_decode_returns_validate(
4993 data: &[u8],
4994 ) -> alloy_sol_types::Result<Self::Return> {
4995 Self::abi_decode_returns_with_config(
4996 data,
4997 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
4998 )
4999 }
5000 }
5001 };
5002 #[derive(serde::Serialize, serde::Deserialize)]
5003 #[derive(Default, Debug, PartialEq, Eq, Hash)]
5004 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5009 #[derive(Clone)]
5010 pub struct COSET_K4Call;
5011 #[derive(serde::Serialize, serde::Deserialize)]
5012 #[derive(Default, Debug, PartialEq, Eq, Hash)]
5013 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5015 #[derive(Clone)]
5016 pub struct COSET_K4Return {
5017 #[allow(missing_docs)]
5018 pub _0: alloy::sol_types::private::primitives::aliases::U256,
5019 }
5020 #[allow(
5021 non_camel_case_types,
5022 non_snake_case,
5023 clippy::pub_underscore_fields,
5024 clippy::style
5025 )]
5026 const _: () = {
5027 use alloy::sol_types as alloy_sol_types;
5028 {
5029 #[doc(hidden)]
5030 #[allow(dead_code)]
5031 type UnderlyingSolTuple<'a> = ();
5032 #[doc(hidden)]
5033 type UnderlyingRustTuple<'a> = ();
5034 #[cfg(test)]
5035 #[allow(dead_code, unreachable_patterns)]
5036 fn _type_assertion(
5037 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5038 ) {
5039 match _t {
5040 alloy_sol_types::private::AssertTypeEq::<
5041 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5042 >(_) => {}
5043 }
5044 }
5045 #[automatically_derived]
5046 #[doc(hidden)]
5047 impl ::core::convert::From<COSET_K4Call> for UnderlyingRustTuple<'_> {
5048 fn from(value: COSET_K4Call) -> Self {
5049 ()
5050 }
5051 }
5052 #[automatically_derived]
5053 #[doc(hidden)]
5054 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Call {
5055 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5056 Self
5057 }
5058 }
5059 }
5060 {
5061 #[doc(hidden)]
5062 #[allow(dead_code)]
5063 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5064 #[doc(hidden)]
5065 type UnderlyingRustTuple<'a> = (
5066 alloy::sol_types::private::primitives::aliases::U256,
5067 );
5068 #[cfg(test)]
5069 #[allow(dead_code, unreachable_patterns)]
5070 fn _type_assertion(
5071 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5072 ) {
5073 match _t {
5074 alloy_sol_types::private::AssertTypeEq::<
5075 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5076 >(_) => {}
5077 }
5078 }
5079 #[automatically_derived]
5080 #[doc(hidden)]
5081 impl ::core::convert::From<COSET_K4Return> for UnderlyingRustTuple<'_> {
5082 fn from(value: COSET_K4Return) -> Self {
5083 (value._0,)
5084 }
5085 }
5086 #[automatically_derived]
5087 #[doc(hidden)]
5088 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Return {
5089 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5090 Self { _0: tuple.0 }
5091 }
5092 }
5093 }
5094 #[automatically_derived]
5095 impl alloy_sol_types::SolCall for COSET_K4Call {
5096 type Parameters<'a> = ();
5097 type Token<'a> = <Self::Parameters<
5098 'a,
5099 > as alloy_sol_types::SolType>::Token<'a>;
5100 type Return = alloy::sol_types::private::primitives::aliases::U256;
5101 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5102 type ReturnToken<'a> = <Self::ReturnTuple<
5103 'a,
5104 > as alloy_sol_types::SolType>::Token<'a>;
5105 const SIGNATURE: &'static str = "COSET_K4()";
5106 const SELECTOR: [u8; 4] = [222u8, 36u8, 172u8, 15u8];
5107 #[inline]
5108 fn new<'a>(
5109 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5110 ) -> Self {
5111 tuple.into()
5112 }
5113 #[inline]
5114 fn tokenize(&self) -> Self::Token<'_> {
5115 ()
5116 }
5117 #[inline]
5118 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5119 (
5120 <alloy::sol_types::sol_data::Uint<
5121 256,
5122 > as alloy_sol_types::SolType>::tokenize(ret),
5123 )
5124 }
5125 #[inline]
5126 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5127 <Self::ReturnTuple<
5128 '_,
5129 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5130 .map(|r| {
5131 let r: COSET_K4Return = r.into();
5132 r._0
5133 })
5134 }
5135 #[inline]
5136 fn abi_decode_returns_with_config(
5137 data: &[u8],
5138 config: alloy_sol_types::abi::AbiDecoderConfig,
5139 ) -> alloy_sol_types::Result<Self::Return> {
5140 <Self::ReturnTuple<
5141 '_,
5142 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
5143 data,
5144 config,
5145 )
5146 .map(|r| {
5147 let r: COSET_K4Return = r.into();
5148 r._0
5149 })
5150 }
5151 #[inline]
5152 fn abi_decode_returns_validate(
5153 data: &[u8],
5154 ) -> alloy_sol_types::Result<Self::Return> {
5155 Self::abi_decode_returns_with_config(
5156 data,
5157 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5158 )
5159 }
5160 }
5161 };
5162 #[derive(serde::Serialize, serde::Deserialize)]
5163 #[derive(Default, Debug, PartialEq, Eq, Hash)]
5164 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5169 #[derive(Clone)]
5170 pub struct verifyCall {
5171 #[allow(missing_docs)]
5172 pub verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
5173 #[allow(missing_docs)]
5174 pub publicInput: [alloy::sol_types::private::primitives::aliases::U256; 5usize],
5175 #[allow(missing_docs)]
5176 pub proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
5177 }
5178 #[derive(serde::Serialize, serde::Deserialize)]
5179 #[derive(Default, Debug, PartialEq, Eq, Hash)]
5180 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5182 #[derive(Clone)]
5183 pub struct verifyReturn {
5184 #[allow(missing_docs)]
5185 pub _0: bool,
5186 }
5187 #[allow(
5188 non_camel_case_types,
5189 non_snake_case,
5190 clippy::pub_underscore_fields,
5191 clippy::style
5192 )]
5193 const _: () = {
5194 use alloy::sol_types as alloy_sol_types;
5195 {
5196 #[doc(hidden)]
5197 #[allow(dead_code)]
5198 type UnderlyingSolTuple<'a> = (
5199 IPlonkVerifier::VerifyingKey,
5200 alloy::sol_types::sol_data::FixedArray<
5201 alloy::sol_types::sol_data::Uint<256>,
5202 5usize,
5203 >,
5204 IPlonkVerifier::PlonkProof,
5205 );
5206 #[doc(hidden)]
5207 type UnderlyingRustTuple<'a> = (
5208 <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
5209 [alloy::sol_types::private::primitives::aliases::U256; 5usize],
5210 <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
5211 );
5212 #[cfg(test)]
5213 #[allow(dead_code, unreachable_patterns)]
5214 fn _type_assertion(
5215 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5216 ) {
5217 match _t {
5218 alloy_sol_types::private::AssertTypeEq::<
5219 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5220 >(_) => {}
5221 }
5222 }
5223 #[automatically_derived]
5224 #[doc(hidden)]
5225 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
5226 fn from(value: verifyCall) -> Self {
5227 (value.verifyingKey, value.publicInput, value.proof)
5228 }
5229 }
5230 #[automatically_derived]
5231 #[doc(hidden)]
5232 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
5233 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5234 Self {
5235 verifyingKey: tuple.0,
5236 publicInput: tuple.1,
5237 proof: tuple.2,
5238 }
5239 }
5240 }
5241 }
5242 {
5243 #[doc(hidden)]
5244 #[allow(dead_code)]
5245 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
5246 #[doc(hidden)]
5247 type UnderlyingRustTuple<'a> = (bool,);
5248 #[cfg(test)]
5249 #[allow(dead_code, unreachable_patterns)]
5250 fn _type_assertion(
5251 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5252 ) {
5253 match _t {
5254 alloy_sol_types::private::AssertTypeEq::<
5255 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5256 >(_) => {}
5257 }
5258 }
5259 #[automatically_derived]
5260 #[doc(hidden)]
5261 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
5262 fn from(value: verifyReturn) -> Self {
5263 (value._0,)
5264 }
5265 }
5266 #[automatically_derived]
5267 #[doc(hidden)]
5268 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
5269 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5270 Self { _0: tuple.0 }
5271 }
5272 }
5273 }
5274 #[automatically_derived]
5275 impl alloy_sol_types::SolCall for verifyCall {
5276 type Parameters<'a> = (
5277 IPlonkVerifier::VerifyingKey,
5278 alloy::sol_types::sol_data::FixedArray<
5279 alloy::sol_types::sol_data::Uint<256>,
5280 5usize,
5281 >,
5282 IPlonkVerifier::PlonkProof,
5283 );
5284 type Token<'a> = <Self::Parameters<
5285 'a,
5286 > as alloy_sol_types::SolType>::Token<'a>;
5287 type Return = bool;
5288 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
5289 type ReturnToken<'a> = <Self::ReturnTuple<
5290 'a,
5291 > as alloy_sol_types::SolType>::Token<'a>;
5292 const SIGNATURE: &'static str = "verify((uint256,uint256,(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),bytes32,bytes32),uint256[5],((uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))";
5293 const SELECTOR: [u8; 4] = [91u8, 208u8, 38u8, 72u8];
5294 #[inline]
5295 fn new<'a>(
5296 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5297 ) -> Self {
5298 tuple.into()
5299 }
5300 #[inline]
5301 fn tokenize(&self) -> Self::Token<'_> {
5302 (
5303 <IPlonkVerifier::VerifyingKey as alloy_sol_types::SolType>::tokenize(
5304 &self.verifyingKey,
5305 ),
5306 <alloy::sol_types::sol_data::FixedArray<
5307 alloy::sol_types::sol_data::Uint<256>,
5308 5usize,
5309 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
5310 <IPlonkVerifier::PlonkProof as alloy_sol_types::SolType>::tokenize(
5311 &self.proof,
5312 ),
5313 )
5314 }
5315 #[inline]
5316 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5317 (
5318 <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
5319 ret,
5320 ),
5321 )
5322 }
5323 #[inline]
5324 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5325 <Self::ReturnTuple<
5326 '_,
5327 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5328 .map(|r| {
5329 let r: verifyReturn = r.into();
5330 r._0
5331 })
5332 }
5333 #[inline]
5334 fn abi_decode_returns_with_config(
5335 data: &[u8],
5336 config: alloy_sol_types::abi::AbiDecoderConfig,
5337 ) -> alloy_sol_types::Result<Self::Return> {
5338 <Self::ReturnTuple<
5339 '_,
5340 > as alloy_sol_types::SolType>::abi_decode_sequence_with_config(
5341 data,
5342 config,
5343 )
5344 .map(|r| {
5345 let r: verifyReturn = r.into();
5346 r._0
5347 })
5348 }
5349 #[inline]
5350 fn abi_decode_returns_validate(
5351 data: &[u8],
5352 ) -> alloy_sol_types::Result<Self::Return> {
5353 Self::abi_decode_returns_with_config(
5354 data,
5355 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5356 )
5357 }
5358 }
5359 };
5360 #[derive(Clone)]
5362 #[derive(serde::Serialize, serde::Deserialize)]
5363 #[derive(Debug, PartialEq, Eq, Hash)]
5364 pub enum PlonkVerifierV3Calls {
5365 #[allow(missing_docs)]
5366 BETA_H_X0(BETA_H_X0Call),
5367 #[allow(missing_docs)]
5368 BETA_H_X1(BETA_H_X1Call),
5369 #[allow(missing_docs)]
5370 BETA_H_Y0(BETA_H_Y0Call),
5371 #[allow(missing_docs)]
5372 BETA_H_Y1(BETA_H_Y1Call),
5373 #[allow(missing_docs)]
5374 COSET_K1(COSET_K1Call),
5375 #[allow(missing_docs)]
5376 COSET_K2(COSET_K2Call),
5377 #[allow(missing_docs)]
5378 COSET_K3(COSET_K3Call),
5379 #[allow(missing_docs)]
5380 COSET_K4(COSET_K4Call),
5381 #[allow(missing_docs)]
5382 verify(verifyCall),
5383 }
5384 impl PlonkVerifierV3Calls {
5385 pub const SELECTORS: &'static [[u8; 4usize]] = &[
5392 [12u8, 85u8, 31u8, 63u8],
5393 [75u8, 71u8, 52u8, 227u8],
5394 [90u8, 20u8, 192u8, 254u8],
5395 [91u8, 208u8, 38u8, 72u8],
5396 [131u8, 76u8, 69u8, 42u8],
5397 [175u8, 25u8, 107u8, 162u8],
5398 [222u8, 36u8, 172u8, 15u8],
5399 [227u8, 81u8, 45u8, 86u8],
5400 [245u8, 20u8, 67u8, 38u8],
5401 ];
5402 pub const VARIANT_NAMES: &'static [&'static str] = &[
5404 ::core::stringify!(COSET_K2),
5405 ::core::stringify!(BETA_H_Y1),
5406 ::core::stringify!(COSET_K3),
5407 ::core::stringify!(verify),
5408 ::core::stringify!(BETA_H_X0),
5409 ::core::stringify!(BETA_H_X1),
5410 ::core::stringify!(COSET_K4),
5411 ::core::stringify!(COSET_K1),
5412 ::core::stringify!(BETA_H_Y0),
5413 ];
5414 pub const SIGNATURES: &'static [&'static str] = &[
5416 <COSET_K2Call as alloy_sol_types::SolCall>::SIGNATURE,
5417 <BETA_H_Y1Call as alloy_sol_types::SolCall>::SIGNATURE,
5418 <COSET_K3Call as alloy_sol_types::SolCall>::SIGNATURE,
5419 <verifyCall as alloy_sol_types::SolCall>::SIGNATURE,
5420 <BETA_H_X0Call as alloy_sol_types::SolCall>::SIGNATURE,
5421 <BETA_H_X1Call as alloy_sol_types::SolCall>::SIGNATURE,
5422 <COSET_K4Call as alloy_sol_types::SolCall>::SIGNATURE,
5423 <COSET_K1Call as alloy_sol_types::SolCall>::SIGNATURE,
5424 <BETA_H_Y0Call as alloy_sol_types::SolCall>::SIGNATURE,
5425 ];
5426 #[inline]
5428 pub fn signature_by_selector(
5429 selector: [u8; 4usize],
5430 ) -> ::core::option::Option<&'static str> {
5431 match Self::SELECTORS.binary_search(&selector) {
5432 ::core::result::Result::Ok(idx) => {
5433 ::core::option::Option::Some(Self::SIGNATURES[idx])
5434 }
5435 ::core::result::Result::Err(_) => ::core::option::Option::None,
5436 }
5437 }
5438 #[inline]
5440 pub fn name_by_selector(
5441 selector: [u8; 4usize],
5442 ) -> ::core::option::Option<&'static str> {
5443 let sig = Self::signature_by_selector(selector)?;
5444 sig.split_once('(').map(|(name, _)| name)
5445 }
5446 }
5447 #[automatically_derived]
5448 impl alloy_sol_types::SolInterface for PlonkVerifierV3Calls {
5449 const NAME: &'static str = "PlonkVerifierV3Calls";
5450 const MIN_DATA_LENGTH: usize = 0usize;
5451 const COUNT: usize = 9usize;
5452 #[inline]
5453 fn selector(&self) -> [u8; 4] {
5454 match self {
5455 Self::BETA_H_X0(_) => {
5456 <BETA_H_X0Call as alloy_sol_types::SolCall>::SELECTOR
5457 }
5458 Self::BETA_H_X1(_) => {
5459 <BETA_H_X1Call as alloy_sol_types::SolCall>::SELECTOR
5460 }
5461 Self::BETA_H_Y0(_) => {
5462 <BETA_H_Y0Call as alloy_sol_types::SolCall>::SELECTOR
5463 }
5464 Self::BETA_H_Y1(_) => {
5465 <BETA_H_Y1Call as alloy_sol_types::SolCall>::SELECTOR
5466 }
5467 Self::COSET_K1(_) => <COSET_K1Call as alloy_sol_types::SolCall>::SELECTOR,
5468 Self::COSET_K2(_) => <COSET_K2Call as alloy_sol_types::SolCall>::SELECTOR,
5469 Self::COSET_K3(_) => <COSET_K3Call as alloy_sol_types::SolCall>::SELECTOR,
5470 Self::COSET_K4(_) => <COSET_K4Call as alloy_sol_types::SolCall>::SELECTOR,
5471 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
5472 }
5473 }
5474 #[inline]
5475 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
5476 Self::SELECTORS.get(i).copied()
5477 }
5478 #[inline]
5479 fn valid_selector(selector: [u8; 4]) -> bool {
5480 Self::SELECTORS.binary_search(&selector).is_ok()
5481 }
5482 #[inline]
5483 #[allow(non_snake_case)]
5484 fn abi_decode_raw(
5485 selector: [u8; 4],
5486 data: &[u8],
5487 ) -> alloy_sol_types::Result<Self> {
5488 Self::abi_decode_raw_with_config(
5489 selector,
5490 data,
5491 alloy_sol_types::abi::AbiDecoderConfig::default(),
5492 )
5493 }
5494 #[inline]
5495 #[allow(non_snake_case)]
5496 fn abi_decode_raw_with_config(
5497 selector: [u8; 4],
5498 data: &[u8],
5499 config: alloy_sol_types::abi::AbiDecoderConfig,
5500 ) -> alloy_sol_types::Result<Self> {
5501 static DECODE_SHIMS: &[fn(
5502 &[u8],
5503 alloy_sol_types::abi::AbiDecoderConfig,
5504 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls>] = &[
5505 {
5506 fn COSET_K2(
5507 data: &[u8],
5508 config: alloy_sol_types::abi::AbiDecoderConfig,
5509 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5510 <COSET_K2Call as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5511 data,
5512 config,
5513 )
5514 .map(PlonkVerifierV3Calls::COSET_K2)
5515 }
5516 COSET_K2
5517 },
5518 {
5519 fn BETA_H_Y1(
5520 data: &[u8],
5521 config: alloy_sol_types::abi::AbiDecoderConfig,
5522 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5523 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5524 data,
5525 config,
5526 )
5527 .map(PlonkVerifierV3Calls::BETA_H_Y1)
5528 }
5529 BETA_H_Y1
5530 },
5531 {
5532 fn COSET_K3(
5533 data: &[u8],
5534 config: alloy_sol_types::abi::AbiDecoderConfig,
5535 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5536 <COSET_K3Call as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5537 data,
5538 config,
5539 )
5540 .map(PlonkVerifierV3Calls::COSET_K3)
5541 }
5542 COSET_K3
5543 },
5544 {
5545 fn verify(
5546 data: &[u8],
5547 config: alloy_sol_types::abi::AbiDecoderConfig,
5548 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5549 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5550 data,
5551 config,
5552 )
5553 .map(PlonkVerifierV3Calls::verify)
5554 }
5555 verify
5556 },
5557 {
5558 fn BETA_H_X0(
5559 data: &[u8],
5560 config: alloy_sol_types::abi::AbiDecoderConfig,
5561 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5562 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5563 data,
5564 config,
5565 )
5566 .map(PlonkVerifierV3Calls::BETA_H_X0)
5567 }
5568 BETA_H_X0
5569 },
5570 {
5571 fn BETA_H_X1(
5572 data: &[u8],
5573 config: alloy_sol_types::abi::AbiDecoderConfig,
5574 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5575 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5576 data,
5577 config,
5578 )
5579 .map(PlonkVerifierV3Calls::BETA_H_X1)
5580 }
5581 BETA_H_X1
5582 },
5583 {
5584 fn COSET_K4(
5585 data: &[u8],
5586 config: alloy_sol_types::abi::AbiDecoderConfig,
5587 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5588 <COSET_K4Call as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5589 data,
5590 config,
5591 )
5592 .map(PlonkVerifierV3Calls::COSET_K4)
5593 }
5594 COSET_K4
5595 },
5596 {
5597 fn COSET_K1(
5598 data: &[u8],
5599 config: alloy_sol_types::abi::AbiDecoderConfig,
5600 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5601 <COSET_K1Call as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5602 data,
5603 config,
5604 )
5605 .map(PlonkVerifierV3Calls::COSET_K1)
5606 }
5607 COSET_K1
5608 },
5609 {
5610 fn BETA_H_Y0(
5611 data: &[u8],
5612 config: alloy_sol_types::abi::AbiDecoderConfig,
5613 ) -> alloy_sol_types::Result<PlonkVerifierV3Calls> {
5614 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_decode_raw_with_config(
5615 data,
5616 config,
5617 )
5618 .map(PlonkVerifierV3Calls::BETA_H_Y0)
5619 }
5620 BETA_H_Y0
5621 },
5622 ];
5623 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
5624 return Err(
5625 alloy_sol_types::Error::unknown_selector(
5626 <Self as alloy_sol_types::SolInterface>::NAME,
5627 selector,
5628 ),
5629 );
5630 };
5631 DECODE_SHIMS[idx](data, config)
5632 }
5633 #[inline]
5634 #[allow(non_snake_case)]
5635 fn abi_decode_raw_validate(
5636 selector: [u8; 4],
5637 data: &[u8],
5638 ) -> alloy_sol_types::Result<Self> {
5639 Self::abi_decode_raw_with_config(
5640 selector,
5641 data,
5642 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
5643 )
5644 }
5645 #[inline]
5646 fn abi_encoded_size(&self) -> usize {
5647 match self {
5648 Self::BETA_H_X0(inner) => {
5649 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5650 }
5651 Self::BETA_H_X1(inner) => {
5652 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5653 }
5654 Self::BETA_H_Y0(inner) => {
5655 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5656 }
5657 Self::BETA_H_Y1(inner) => {
5658 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5659 }
5660 Self::COSET_K1(inner) => {
5661 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5662 }
5663 Self::COSET_K2(inner) => {
5664 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5665 }
5666 Self::COSET_K3(inner) => {
5667 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5668 }
5669 Self::COSET_K4(inner) => {
5670 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5671 }
5672 Self::verify(inner) => {
5673 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5674 }
5675 }
5676 }
5677 #[inline]
5678 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
5679 match self {
5680 Self::BETA_H_X0(inner) => {
5681 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encode_raw(
5682 inner,
5683 out,
5684 )
5685 }
5686 Self::BETA_H_X1(inner) => {
5687 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5688 inner,
5689 out,
5690 )
5691 }
5692 Self::BETA_H_Y0(inner) => {
5693 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encode_raw(
5694 inner,
5695 out,
5696 )
5697 }
5698 Self::BETA_H_Y1(inner) => {
5699 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5700 inner,
5701 out,
5702 )
5703 }
5704 Self::COSET_K1(inner) => {
5705 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5706 inner,
5707 out,
5708 )
5709 }
5710 Self::COSET_K2(inner) => {
5711 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encode_raw(
5712 inner,
5713 out,
5714 )
5715 }
5716 Self::COSET_K3(inner) => {
5717 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encode_raw(
5718 inner,
5719 out,
5720 )
5721 }
5722 Self::COSET_K4(inner) => {
5723 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encode_raw(
5724 inner,
5725 out,
5726 )
5727 }
5728 Self::verify(inner) => {
5729 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
5730 }
5731 }
5732 }
5733 }
5734 #[derive(Clone)]
5736 #[derive(serde::Serialize, serde::Deserialize)]
5737 #[derive(Debug, PartialEq, Eq, Hash)]
5738 pub enum PlonkVerifierV3Errors {
5739 #[allow(missing_docs)]
5740 BN254G1AddFailed(BN254G1AddFailed),
5741 #[allow(missing_docs)]
5742 BN254PairingProdFailed(BN254PairingProdFailed),
5743 #[allow(missing_docs)]
5744 BN254ScalarInvZero(BN254ScalarInvZero),
5745 #[allow(missing_docs)]
5746 BN254ScalarMulFailed(BN254ScalarMulFailed),
5747 #[allow(missing_docs)]
5748 InvalidG1(InvalidG1),
5749 #[allow(missing_docs)]
5750 InvalidPlonkArgs(InvalidPlonkArgs),
5751 #[allow(missing_docs)]
5752 InvalidScalar(InvalidScalar),
5753 #[allow(missing_docs)]
5754 PowPrecompileFailed(PowPrecompileFailed),
5755 #[allow(missing_docs)]
5756 UnsupportedDegree(UnsupportedDegree),
5757 #[allow(missing_docs)]
5758 WrongPlonkVK(WrongPlonkVK),
5759 }
5760 impl PlonkVerifierV3Errors {
5761 pub const SELECTORS: &'static [[u8; 4usize]] = &[
5768 [5u8, 176u8, 92u8, 204u8],
5769 [25u8, 219u8, 138u8, 104u8],
5770 [50u8, 116u8, 250u8, 100u8],
5771 [65u8, 245u8, 59u8, 18u8],
5772 [96u8, 85u8, 219u8, 106u8],
5773 [158u8, 120u8, 209u8, 76u8],
5774 [194u8, 6u8, 51u8, 79u8],
5775 [214u8, 219u8, 187u8, 13u8],
5776 [226u8, 239u8, 9u8, 229u8],
5777 [253u8, 154u8, 45u8, 27u8],
5778 ];
5779 pub const VARIANT_NAMES: &'static [&'static str] = &[
5781 ::core::stringify!(InvalidScalar),
5782 ::core::stringify!(BN254ScalarMulFailed),
5783 ::core::stringify!(PowPrecompileFailed),
5784 ::core::stringify!(WrongPlonkVK),
5785 ::core::stringify!(BN254G1AddFailed),
5786 ::core::stringify!(InvalidG1),
5787 ::core::stringify!(BN254PairingProdFailed),
5788 ::core::stringify!(BN254ScalarInvZero),
5789 ::core::stringify!(UnsupportedDegree),
5790 ::core::stringify!(InvalidPlonkArgs),
5791 ];
5792 pub const SIGNATURES: &'static [&'static str] = &[
5794 <InvalidScalar as alloy_sol_types::SolError>::SIGNATURE,
5795 <BN254ScalarMulFailed as alloy_sol_types::SolError>::SIGNATURE,
5796 <PowPrecompileFailed as alloy_sol_types::SolError>::SIGNATURE,
5797 <WrongPlonkVK as alloy_sol_types::SolError>::SIGNATURE,
5798 <BN254G1AddFailed as alloy_sol_types::SolError>::SIGNATURE,
5799 <InvalidG1 as alloy_sol_types::SolError>::SIGNATURE,
5800 <BN254PairingProdFailed as alloy_sol_types::SolError>::SIGNATURE,
5801 <BN254ScalarInvZero as alloy_sol_types::SolError>::SIGNATURE,
5802 <UnsupportedDegree as alloy_sol_types::SolError>::SIGNATURE,
5803 <InvalidPlonkArgs as alloy_sol_types::SolError>::SIGNATURE,
5804 ];
5805 #[inline]
5807 pub fn signature_by_selector(
5808 selector: [u8; 4usize],
5809 ) -> ::core::option::Option<&'static str> {
5810 match Self::SELECTORS.binary_search(&selector) {
5811 ::core::result::Result::Ok(idx) => {
5812 ::core::option::Option::Some(Self::SIGNATURES[idx])
5813 }
5814 ::core::result::Result::Err(_) => ::core::option::Option::None,
5815 }
5816 }
5817 #[inline]
5819 pub fn name_by_selector(
5820 selector: [u8; 4usize],
5821 ) -> ::core::option::Option<&'static str> {
5822 let sig = Self::signature_by_selector(selector)?;
5823 sig.split_once('(').map(|(name, _)| name)
5824 }
5825 }
5826 #[automatically_derived]
5827 impl alloy_sol_types::SolInterface for PlonkVerifierV3Errors {
5828 const NAME: &'static str = "PlonkVerifierV3Errors";
5829 const MIN_DATA_LENGTH: usize = 0usize;
5830 const COUNT: usize = 10usize;
5831 #[inline]
5832 fn selector(&self) -> [u8; 4] {
5833 match self {
5834 Self::BN254G1AddFailed(_) => {
5835 <BN254G1AddFailed as alloy_sol_types::SolError>::SELECTOR
5836 }
5837 Self::BN254PairingProdFailed(_) => {
5838 <BN254PairingProdFailed as alloy_sol_types::SolError>::SELECTOR
5839 }
5840 Self::BN254ScalarInvZero(_) => {
5841 <BN254ScalarInvZero as alloy_sol_types::SolError>::SELECTOR
5842 }
5843 Self::BN254ScalarMulFailed(_) => {
5844 <BN254ScalarMulFailed as alloy_sol_types::SolError>::SELECTOR
5845 }
5846 Self::InvalidG1(_) => <InvalidG1 as alloy_sol_types::SolError>::SELECTOR,
5847 Self::InvalidPlonkArgs(_) => {
5848 <InvalidPlonkArgs as alloy_sol_types::SolError>::SELECTOR
5849 }
5850 Self::InvalidScalar(_) => {
5851 <InvalidScalar as alloy_sol_types::SolError>::SELECTOR
5852 }
5853 Self::PowPrecompileFailed(_) => {
5854 <PowPrecompileFailed as alloy_sol_types::SolError>::SELECTOR
5855 }
5856 Self::UnsupportedDegree(_) => {
5857 <UnsupportedDegree as alloy_sol_types::SolError>::SELECTOR
5858 }
5859 Self::WrongPlonkVK(_) => {
5860 <WrongPlonkVK as alloy_sol_types::SolError>::SELECTOR
5861 }
5862 }
5863 }
5864 #[inline]
5865 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
5866 Self::SELECTORS.get(i).copied()
5867 }
5868 #[inline]
5869 fn valid_selector(selector: [u8; 4]) -> bool {
5870 Self::SELECTORS.binary_search(&selector).is_ok()
5871 }
5872 #[inline]
5873 #[allow(non_snake_case)]
5874 fn abi_decode_raw(
5875 selector: [u8; 4],
5876 data: &[u8],
5877 ) -> alloy_sol_types::Result<Self> {
5878 Self::abi_decode_raw_with_config(
5879 selector,
5880 data,
5881 alloy_sol_types::abi::AbiDecoderConfig::default(),
5882 )
5883 }
5884 #[inline]
5885 #[allow(non_snake_case)]
5886 fn abi_decode_raw_with_config(
5887 selector: [u8; 4],
5888 data: &[u8],
5889 config: alloy_sol_types::abi::AbiDecoderConfig,
5890 ) -> alloy_sol_types::Result<Self> {
5891 static DECODE_SHIMS: &[fn(
5892 &[u8],
5893 alloy_sol_types::abi::AbiDecoderConfig,
5894 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors>] = &[
5895 {
5896 fn InvalidScalar(
5897 data: &[u8],
5898 config: alloy_sol_types::abi::AbiDecoderConfig,
5899 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
5900 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw_with_config(
5901 data,
5902 config,
5903 )
5904 .map(PlonkVerifierV3Errors::InvalidScalar)
5905 }
5906 InvalidScalar
5907 },
5908 {
5909 fn BN254ScalarMulFailed(
5910 data: &[u8],
5911 config: alloy_sol_types::abi::AbiDecoderConfig,
5912 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
5913 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw_with_config(
5914 data,
5915 config,
5916 )
5917 .map(PlonkVerifierV3Errors::BN254ScalarMulFailed)
5918 }
5919 BN254ScalarMulFailed
5920 },
5921 {
5922 fn PowPrecompileFailed(
5923 data: &[u8],
5924 config: alloy_sol_types::abi::AbiDecoderConfig,
5925 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
5926 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw_with_config(
5927 data,
5928 config,
5929 )
5930 .map(PlonkVerifierV3Errors::PowPrecompileFailed)
5931 }
5932 PowPrecompileFailed
5933 },
5934 {
5935 fn WrongPlonkVK(
5936 data: &[u8],
5937 config: alloy_sol_types::abi::AbiDecoderConfig,
5938 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
5939 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw_with_config(
5940 data,
5941 config,
5942 )
5943 .map(PlonkVerifierV3Errors::WrongPlonkVK)
5944 }
5945 WrongPlonkVK
5946 },
5947 {
5948 fn BN254G1AddFailed(
5949 data: &[u8],
5950 config: alloy_sol_types::abi::AbiDecoderConfig,
5951 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
5952 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw_with_config(
5953 data,
5954 config,
5955 )
5956 .map(PlonkVerifierV3Errors::BN254G1AddFailed)
5957 }
5958 BN254G1AddFailed
5959 },
5960 {
5961 fn InvalidG1(
5962 data: &[u8],
5963 config: alloy_sol_types::abi::AbiDecoderConfig,
5964 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
5965 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw_with_config(
5966 data,
5967 config,
5968 )
5969 .map(PlonkVerifierV3Errors::InvalidG1)
5970 }
5971 InvalidG1
5972 },
5973 {
5974 fn BN254PairingProdFailed(
5975 data: &[u8],
5976 config: alloy_sol_types::abi::AbiDecoderConfig,
5977 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
5978 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw_with_config(
5979 data,
5980 config,
5981 )
5982 .map(PlonkVerifierV3Errors::BN254PairingProdFailed)
5983 }
5984 BN254PairingProdFailed
5985 },
5986 {
5987 fn BN254ScalarInvZero(
5988 data: &[u8],
5989 config: alloy_sol_types::abi::AbiDecoderConfig,
5990 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
5991 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw_with_config(
5992 data,
5993 config,
5994 )
5995 .map(PlonkVerifierV3Errors::BN254ScalarInvZero)
5996 }
5997 BN254ScalarInvZero
5998 },
5999 {
6000 fn UnsupportedDegree(
6001 data: &[u8],
6002 config: alloy_sol_types::abi::AbiDecoderConfig,
6003 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
6004 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw_with_config(
6005 data,
6006 config,
6007 )
6008 .map(PlonkVerifierV3Errors::UnsupportedDegree)
6009 }
6010 UnsupportedDegree
6011 },
6012 {
6013 fn InvalidPlonkArgs(
6014 data: &[u8],
6015 config: alloy_sol_types::abi::AbiDecoderConfig,
6016 ) -> alloy_sol_types::Result<PlonkVerifierV3Errors> {
6017 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw_with_config(
6018 data,
6019 config,
6020 )
6021 .map(PlonkVerifierV3Errors::InvalidPlonkArgs)
6022 }
6023 InvalidPlonkArgs
6024 },
6025 ];
6026 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
6027 return Err(
6028 alloy_sol_types::Error::unknown_selector(
6029 <Self as alloy_sol_types::SolInterface>::NAME,
6030 selector,
6031 ),
6032 );
6033 };
6034 DECODE_SHIMS[idx](data, config)
6035 }
6036 #[inline]
6037 #[allow(non_snake_case)]
6038 fn abi_decode_raw_validate(
6039 selector: [u8; 4],
6040 data: &[u8],
6041 ) -> alloy_sol_types::Result<Self> {
6042 Self::abi_decode_raw_with_config(
6043 selector,
6044 data,
6045 alloy_sol_types::abi::AbiDecoderConfig::new().validate(true),
6046 )
6047 }
6048 #[inline]
6049 fn abi_encoded_size(&self) -> usize {
6050 match self {
6051 Self::BN254G1AddFailed(inner) => {
6052 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encoded_size(
6053 inner,
6054 )
6055 }
6056 Self::BN254PairingProdFailed(inner) => {
6057 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encoded_size(
6058 inner,
6059 )
6060 }
6061 Self::BN254ScalarInvZero(inner) => {
6062 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encoded_size(
6063 inner,
6064 )
6065 }
6066 Self::BN254ScalarMulFailed(inner) => {
6067 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encoded_size(
6068 inner,
6069 )
6070 }
6071 Self::InvalidG1(inner) => {
6072 <InvalidG1 as alloy_sol_types::SolError>::abi_encoded_size(inner)
6073 }
6074 Self::InvalidPlonkArgs(inner) => {
6075 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encoded_size(
6076 inner,
6077 )
6078 }
6079 Self::InvalidScalar(inner) => {
6080 <InvalidScalar as alloy_sol_types::SolError>::abi_encoded_size(inner)
6081 }
6082 Self::PowPrecompileFailed(inner) => {
6083 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encoded_size(
6084 inner,
6085 )
6086 }
6087 Self::UnsupportedDegree(inner) => {
6088 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encoded_size(
6089 inner,
6090 )
6091 }
6092 Self::WrongPlonkVK(inner) => {
6093 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encoded_size(inner)
6094 }
6095 }
6096 }
6097 #[inline]
6098 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
6099 match self {
6100 Self::BN254G1AddFailed(inner) => {
6101 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encode_raw(
6102 inner,
6103 out,
6104 )
6105 }
6106 Self::BN254PairingProdFailed(inner) => {
6107 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encode_raw(
6108 inner,
6109 out,
6110 )
6111 }
6112 Self::BN254ScalarInvZero(inner) => {
6113 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encode_raw(
6114 inner,
6115 out,
6116 )
6117 }
6118 Self::BN254ScalarMulFailed(inner) => {
6119 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encode_raw(
6120 inner,
6121 out,
6122 )
6123 }
6124 Self::InvalidG1(inner) => {
6125 <InvalidG1 as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
6126 }
6127 Self::InvalidPlonkArgs(inner) => {
6128 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encode_raw(
6129 inner,
6130 out,
6131 )
6132 }
6133 Self::InvalidScalar(inner) => {
6134 <InvalidScalar as alloy_sol_types::SolError>::abi_encode_raw(
6135 inner,
6136 out,
6137 )
6138 }
6139 Self::PowPrecompileFailed(inner) => {
6140 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encode_raw(
6141 inner,
6142 out,
6143 )
6144 }
6145 Self::UnsupportedDegree(inner) => {
6146 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encode_raw(
6147 inner,
6148 out,
6149 )
6150 }
6151 Self::WrongPlonkVK(inner) => {
6152 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encode_raw(
6153 inner,
6154 out,
6155 )
6156 }
6157 }
6158 }
6159 }
6160 #[automatically_derived]
6161 impl PlonkVerifierV3Errors {
6162 #[inline]
6168 pub fn bn_254g_1_add_failed() -> Self {
6169 Self::BN254G1AddFailed(BN254G1AddFailed)
6170 }
6171 #[inline]
6177 pub fn bn_254_pairing_prod_failed() -> Self {
6178 Self::BN254PairingProdFailed(BN254PairingProdFailed)
6179 }
6180 #[inline]
6186 pub fn bn_254_scalar_inv_zero() -> Self {
6187 Self::BN254ScalarInvZero(BN254ScalarInvZero)
6188 }
6189 #[inline]
6195 pub fn bn_254_scalar_mul_failed() -> Self {
6196 Self::BN254ScalarMulFailed(BN254ScalarMulFailed)
6197 }
6198 #[inline]
6204 pub fn invalid_g_1() -> Self {
6205 Self::InvalidG1(InvalidG1)
6206 }
6207 #[inline]
6213 pub fn invalid_plonk_args() -> Self {
6214 Self::InvalidPlonkArgs(InvalidPlonkArgs)
6215 }
6216 #[inline]
6222 pub fn invalid_scalar() -> Self {
6223 Self::InvalidScalar(InvalidScalar)
6224 }
6225 #[inline]
6231 pub fn pow_precompile_failed() -> Self {
6232 Self::PowPrecompileFailed(PowPrecompileFailed)
6233 }
6234 #[inline]
6240 pub fn unsupported_degree() -> Self {
6241 Self::UnsupportedDegree(UnsupportedDegree)
6242 }
6243 #[inline]
6249 pub fn wrong_plonk_vk() -> Self {
6250 Self::WrongPlonkVK(WrongPlonkVK)
6251 }
6252 }
6253 use alloy::contract as alloy_contract;
6254 #[inline]
6258 pub const fn new<
6259 P: alloy_contract::private::Provider<N>,
6260 N: alloy_contract::private::Network,
6261 >(
6262 address: alloy_sol_types::private::Address,
6263 __provider: P,
6264 ) -> PlonkVerifierV3Instance<P, N> {
6265 PlonkVerifierV3Instance::<P, N>::new(address, __provider)
6266 }
6267 #[inline]
6273 pub fn deploy<
6274 P: alloy_contract::private::Provider<N>,
6275 N: alloy_contract::private::Network,
6276 >(
6277 __provider: P,
6278 ) -> impl ::core::future::Future<
6279 Output = alloy_contract::Result<PlonkVerifierV3Instance<P, N>>,
6280 > {
6281 PlonkVerifierV3Instance::<P, N>::deploy(__provider)
6282 }
6283 #[inline]
6289 pub fn deploy_builder<
6290 P: alloy_contract::private::Provider<N>,
6291 N: alloy_contract::private::Network,
6292 >(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
6293 PlonkVerifierV3Instance::<P, N>::deploy_builder(__provider)
6294 }
6295 #[derive(Clone)]
6307 pub struct PlonkVerifierV3Instance<P, N = alloy_contract::private::Ethereum> {
6308 address: alloy_sol_types::private::Address,
6309 provider: P,
6310 _network: ::core::marker::PhantomData<N>,
6311 }
6312 #[automatically_derived]
6313 impl<P, N> ::core::fmt::Debug for PlonkVerifierV3Instance<P, N> {
6314 #[inline]
6315 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6316 f.debug_tuple("PlonkVerifierV3Instance").field(&self.address).finish()
6317 }
6318 }
6319 impl<
6321 P: alloy_contract::private::Provider<N>,
6322 N: alloy_contract::private::Network,
6323 > PlonkVerifierV3Instance<P, N> {
6324 #[inline]
6328 pub const fn new(
6329 address: alloy_sol_types::private::Address,
6330 __provider: P,
6331 ) -> Self {
6332 Self {
6333 address,
6334 provider: __provider,
6335 _network: ::core::marker::PhantomData,
6336 }
6337 }
6338 #[inline]
6344 pub async fn deploy(
6345 __provider: P,
6346 ) -> alloy_contract::Result<PlonkVerifierV3Instance<P, N>> {
6347 let call_builder = Self::deploy_builder(__provider);
6348 let contract_address = call_builder.deploy().await?;
6349 Ok(Self::new(contract_address, call_builder.provider))
6350 }
6351 #[inline]
6357 pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
6358 alloy_contract::RawCallBuilder::new_raw_deploy(
6359 __provider,
6360 ::core::clone::Clone::clone(&BYTECODE),
6361 )
6362 }
6363 #[inline]
6365 pub const fn address(&self) -> &alloy_sol_types::private::Address {
6366 &self.address
6367 }
6368 #[inline]
6370 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
6371 self.address = address;
6372 }
6373 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
6375 self.set_address(address);
6376 self
6377 }
6378 #[inline]
6380 pub const fn provider(&self) -> &P {
6381 &self.provider
6382 }
6383 }
6384 impl<P: ::core::clone::Clone, N> PlonkVerifierV3Instance<&P, N> {
6385 #[inline]
6387 pub fn with_cloned_provider(self) -> PlonkVerifierV3Instance<P, N> {
6388 PlonkVerifierV3Instance {
6389 address: self.address,
6390 provider: ::core::clone::Clone::clone(&self.provider),
6391 _network: ::core::marker::PhantomData,
6392 }
6393 }
6394 }
6395 impl<
6397 P: alloy_contract::private::Provider<N>,
6398 N: alloy_contract::private::Network,
6399 > PlonkVerifierV3Instance<P, N> {
6400 pub fn call_builder<C: alloy_sol_types::SolCall>(
6405 &self,
6406 call: &C,
6407 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
6408 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
6409 }
6410 pub fn BETA_H_X0(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_X0Call, N> {
6412 self.call_builder(&BETA_H_X0Call)
6413 }
6414 pub fn BETA_H_X1(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_X1Call, N> {
6416 self.call_builder(&BETA_H_X1Call)
6417 }
6418 pub fn BETA_H_Y0(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_Y0Call, N> {
6420 self.call_builder(&BETA_H_Y0Call)
6421 }
6422 pub fn BETA_H_Y1(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_Y1Call, N> {
6424 self.call_builder(&BETA_H_Y1Call)
6425 }
6426 pub fn COSET_K1(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K1Call, N> {
6428 self.call_builder(&COSET_K1Call)
6429 }
6430 pub fn COSET_K2(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K2Call, N> {
6432 self.call_builder(&COSET_K2Call)
6433 }
6434 pub fn COSET_K3(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K3Call, N> {
6436 self.call_builder(&COSET_K3Call)
6437 }
6438 pub fn COSET_K4(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K4Call, N> {
6440 self.call_builder(&COSET_K4Call)
6441 }
6442 pub fn verify(
6444 &self,
6445 verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
6446 publicInput: [alloy::sol_types::private::primitives::aliases::U256; 5usize],
6447 proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
6448 ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> {
6449 self.call_builder(
6450 &verifyCall {
6451 verifyingKey,
6452 publicInput,
6453 proof,
6454 },
6455 )
6456 }
6457 }
6458 impl<
6460 P: alloy_contract::private::Provider<N>,
6461 N: alloy_contract::private::Network,
6462 > PlonkVerifierV3Instance<P, N> {
6463 pub fn event_filter<E: alloy_sol_types::SolEvent>(
6468 &self,
6469 ) -> alloy_contract::Event<&P, E, N> {
6470 alloy_contract::Event::new_sol(&self.provider, &self.address)
6471 }
6472 }
6473}