Skip to main content

simplicity/jet/init/
elements.rs

1/* This file has been automatically generated. */
2
3use crate::jet::type_name::TypeName;
4use crate::jet::Jet;
5use crate::merkle::cmr::Cmr;
6use crate::decode_bits;
7use crate::{decode, BitIter, BitWriter};
8use crate::analysis::Cost;
9use simplicity_sys::CFrameItem;
10use std::io::Write;
11use std::{fmt, str};
12use simplicity_sys::CElementsTxEnv;
13
14/// The Elements jet family.
15#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
16pub enum Elements {
17    Add16,
18    Add32,
19    Add64,
20    Add8,
21    All16,
22    All32,
23    All64,
24    All8,
25    And1,
26    And16,
27    And32,
28    And64,
29    And8,
30    AnnexHash,
31    AssetAmountHash,
32    Bip0340Verify,
33    BrokenDoNotUseCheckLockDistance,
34    BrokenDoNotUseCheckLockDuration,
35    BrokenDoNotUseTxLockDistance,
36    BrokenDoNotUseTxLockDuration,
37    BuildTapbranch,
38    BuildTapleafSimplicity,
39    BuildTaptweak,
40    CalculateAsset,
41    CalculateConfidentialToken,
42    CalculateExplicitToken,
43    CalculateIssuanceEntropy,
44    Ch1,
45    Ch16,
46    Ch32,
47    Ch64,
48    Ch8,
49    CheckLockHeight,
50    CheckLockTime,
51    CheckSigVerify,
52    Complement1,
53    Complement16,
54    Complement32,
55    Complement64,
56    Complement8,
57    CurrentAmount,
58    CurrentAnnexHash,
59    CurrentAsset,
60    CurrentIndex,
61    CurrentIssuanceAssetAmount,
62    CurrentIssuanceAssetProof,
63    CurrentIssuanceTokenAmount,
64    CurrentIssuanceTokenProof,
65    CurrentNewIssuanceContract,
66    CurrentPegin,
67    CurrentPrevOutpoint,
68    CurrentReissuanceBlinding,
69    CurrentReissuanceEntropy,
70    CurrentScriptHash,
71    CurrentScriptSigHash,
72    CurrentSequence,
73    Decompress,
74    Decrement16,
75    Decrement32,
76    Decrement64,
77    Decrement8,
78    DivMod128_64,
79    DivMod16,
80    DivMod32,
81    DivMod64,
82    DivMod8,
83    Divide16,
84    Divide32,
85    Divide64,
86    Divide8,
87    Divides16,
88    Divides32,
89    Divides64,
90    Divides8,
91    Eq1,
92    Eq16,
93    Eq256,
94    Eq32,
95    Eq64,
96    Eq8,
97    FeAdd,
98    FeInvert,
99    FeIsOdd,
100    FeIsZero,
101    FeMultiply,
102    FeMultiplyBeta,
103    FeNegate,
104    FeNormalize,
105    FeSquare,
106    FeSquareRoot,
107    FullAdd16,
108    FullAdd32,
109    FullAdd64,
110    FullAdd8,
111    FullDecrement16,
112    FullDecrement32,
113    FullDecrement64,
114    FullDecrement8,
115    FullIncrement16,
116    FullIncrement32,
117    FullIncrement64,
118    FullIncrement8,
119    FullLeftShift16_1,
120    FullLeftShift16_2,
121    FullLeftShift16_4,
122    FullLeftShift16_8,
123    FullLeftShift32_1,
124    FullLeftShift32_16,
125    FullLeftShift32_2,
126    FullLeftShift32_4,
127    FullLeftShift32_8,
128    FullLeftShift64_1,
129    FullLeftShift64_16,
130    FullLeftShift64_2,
131    FullLeftShift64_32,
132    FullLeftShift64_4,
133    FullLeftShift64_8,
134    FullLeftShift8_1,
135    FullLeftShift8_2,
136    FullLeftShift8_4,
137    FullMultiply16,
138    FullMultiply32,
139    FullMultiply64,
140    FullMultiply8,
141    FullRightShift16_1,
142    FullRightShift16_2,
143    FullRightShift16_4,
144    FullRightShift16_8,
145    FullRightShift32_1,
146    FullRightShift32_16,
147    FullRightShift32_2,
148    FullRightShift32_4,
149    FullRightShift32_8,
150    FullRightShift64_1,
151    FullRightShift64_16,
152    FullRightShift64_2,
153    FullRightShift64_32,
154    FullRightShift64_4,
155    FullRightShift64_8,
156    FullRightShift8_1,
157    FullRightShift8_2,
158    FullRightShift8_4,
159    FullSubtract16,
160    FullSubtract32,
161    FullSubtract64,
162    FullSubtract8,
163    GeIsOnCurve,
164    GeNegate,
165    GejAdd,
166    GejDouble,
167    GejEquiv,
168    GejGeAdd,
169    GejGeAddEx,
170    GejGeEquiv,
171    GejInfinity,
172    GejIsInfinity,
173    GejIsOnCurve,
174    GejNegate,
175    GejNormalize,
176    GejRescale,
177    GejXEquiv,
178    GejYIsOdd,
179    Generate,
180    GenesisBlockHash,
181    HashToCurve,
182    High1,
183    High16,
184    High32,
185    High64,
186    High8,
187    Increment16,
188    Increment32,
189    Increment64,
190    Increment8,
191    InputAmount,
192    InputAmountsHash,
193    InputAnnexHash,
194    InputAnnexesHash,
195    InputAsset,
196    InputHash,
197    InputOutpointsHash,
198    InputPegin,
199    InputPrevOutpoint,
200    InputScriptHash,
201    InputScriptSigHash,
202    InputScriptSigsHash,
203    InputScriptsHash,
204    InputSequence,
205    InputSequencesHash,
206    InputUtxoHash,
207    InputUtxosHash,
208    InputsHash,
209    InternalKey,
210    IsOne16,
211    IsOne32,
212    IsOne64,
213    IsOne8,
214    IsZero16,
215    IsZero32,
216    IsZero64,
217    IsZero8,
218    Issuance,
219    IssuanceAsset,
220    IssuanceAssetAmount,
221    IssuanceAssetAmountsHash,
222    IssuanceAssetProof,
223    IssuanceBlindingEntropyHash,
224    IssuanceEntropy,
225    IssuanceHash,
226    IssuanceRangeProofsHash,
227    IssuanceToken,
228    IssuanceTokenAmount,
229    IssuanceTokenAmountsHash,
230    IssuanceTokenProof,
231    IssuancesHash,
232    LbtcAsset,
233    Le16,
234    Le32,
235    Le64,
236    Le8,
237    LeftExtend16_32,
238    LeftExtend16_64,
239    LeftExtend1_16,
240    LeftExtend1_32,
241    LeftExtend1_64,
242    LeftExtend1_8,
243    LeftExtend32_64,
244    LeftExtend8_16,
245    LeftExtend8_32,
246    LeftExtend8_64,
247    LeftPadHigh16_32,
248    LeftPadHigh16_64,
249    LeftPadHigh1_16,
250    LeftPadHigh1_32,
251    LeftPadHigh1_64,
252    LeftPadHigh1_8,
253    LeftPadHigh32_64,
254    LeftPadHigh8_16,
255    LeftPadHigh8_32,
256    LeftPadHigh8_64,
257    LeftPadLow16_32,
258    LeftPadLow16_64,
259    LeftPadLow1_16,
260    LeftPadLow1_32,
261    LeftPadLow1_64,
262    LeftPadLow1_8,
263    LeftPadLow32_64,
264    LeftPadLow8_16,
265    LeftPadLow8_32,
266    LeftPadLow8_64,
267    LeftRotate16,
268    LeftRotate32,
269    LeftRotate64,
270    LeftRotate8,
271    LeftShift16,
272    LeftShift32,
273    LeftShift64,
274    LeftShift8,
275    LeftShiftWith16,
276    LeftShiftWith32,
277    LeftShiftWith64,
278    LeftShiftWith8,
279    Leftmost16_1,
280    Leftmost16_2,
281    Leftmost16_4,
282    Leftmost16_8,
283    Leftmost32_1,
284    Leftmost32_16,
285    Leftmost32_2,
286    Leftmost32_4,
287    Leftmost32_8,
288    Leftmost64_1,
289    Leftmost64_16,
290    Leftmost64_2,
291    Leftmost64_32,
292    Leftmost64_4,
293    Leftmost64_8,
294    Leftmost8_1,
295    Leftmost8_2,
296    Leftmost8_4,
297    LinearCombination1,
298    LinearVerify1,
299    LockTime,
300    Low1,
301    Low16,
302    Low32,
303    Low64,
304    Low8,
305    Lt16,
306    Lt32,
307    Lt64,
308    Lt8,
309    Maj1,
310    Maj16,
311    Maj32,
312    Maj64,
313    Maj8,
314    Max16,
315    Max32,
316    Max64,
317    Max8,
318    Median16,
319    Median32,
320    Median64,
321    Median8,
322    Min16,
323    Min32,
324    Min64,
325    Min8,
326    Modulo16,
327    Modulo32,
328    Modulo64,
329    Modulo8,
330    Multiply16,
331    Multiply32,
332    Multiply64,
333    Multiply8,
334    Negate16,
335    Negate32,
336    Negate64,
337    Negate8,
338    NewIssuanceContract,
339    NonceHash,
340    NumInputs,
341    NumOutputs,
342    One16,
343    One32,
344    One64,
345    One8,
346    Or1,
347    Or16,
348    Or32,
349    Or64,
350    Or8,
351    OutpointHash,
352    OutputAmount,
353    OutputAmountsHash,
354    OutputAsset,
355    OutputHash,
356    OutputIsFee,
357    OutputNonce,
358    OutputNoncesHash,
359    OutputNullDatum,
360    OutputRangeProof,
361    OutputRangeProofsHash,
362    OutputScriptHash,
363    OutputScriptsHash,
364    OutputSurjectionProof,
365    OutputSurjectionProofsHash,
366    OutputsHash,
367    ParseLock,
368    ParseSequence,
369    PointVerify1,
370    ReissuanceBlinding,
371    ReissuanceEntropy,
372    RightExtend16_32,
373    RightExtend16_64,
374    RightExtend32_64,
375    RightExtend8_16,
376    RightExtend8_32,
377    RightExtend8_64,
378    RightPadHigh16_32,
379    RightPadHigh16_64,
380    RightPadHigh1_16,
381    RightPadHigh1_32,
382    RightPadHigh1_64,
383    RightPadHigh1_8,
384    RightPadHigh32_64,
385    RightPadHigh8_16,
386    RightPadHigh8_32,
387    RightPadHigh8_64,
388    RightPadLow16_32,
389    RightPadLow16_64,
390    RightPadLow1_16,
391    RightPadLow1_32,
392    RightPadLow1_64,
393    RightPadLow1_8,
394    RightPadLow32_64,
395    RightPadLow8_16,
396    RightPadLow8_32,
397    RightPadLow8_64,
398    RightRotate16,
399    RightRotate32,
400    RightRotate64,
401    RightRotate8,
402    RightShift16,
403    RightShift32,
404    RightShift64,
405    RightShift8,
406    RightShiftWith16,
407    RightShiftWith32,
408    RightShiftWith64,
409    RightShiftWith8,
410    Rightmost16_1,
411    Rightmost16_2,
412    Rightmost16_4,
413    Rightmost16_8,
414    Rightmost32_1,
415    Rightmost32_16,
416    Rightmost32_2,
417    Rightmost32_4,
418    Rightmost32_8,
419    Rightmost64_1,
420    Rightmost64_16,
421    Rightmost64_2,
422    Rightmost64_32,
423    Rightmost64_4,
424    Rightmost64_8,
425    Rightmost8_1,
426    Rightmost8_2,
427    Rightmost8_4,
428    ScalarAdd,
429    ScalarInvert,
430    ScalarIsZero,
431    ScalarMultiply,
432    ScalarMultiplyLambda,
433    ScalarNegate,
434    ScalarNormalize,
435    ScalarSquare,
436    Scale,
437    ScriptCMR,
438    Sha256Block,
439    Sha256Ctx8Add1,
440    Sha256Ctx8Add128,
441    Sha256Ctx8Add16,
442    Sha256Ctx8Add2,
443    Sha256Ctx8Add256,
444    Sha256Ctx8Add32,
445    Sha256Ctx8Add4,
446    Sha256Ctx8Add512,
447    Sha256Ctx8Add64,
448    Sha256Ctx8Add8,
449    Sha256Ctx8AddBuffer511,
450    Sha256Ctx8Finalize,
451    Sha256Ctx8Init,
452    Sha256Iv,
453    SigAllHash,
454    Some1,
455    Some16,
456    Some32,
457    Some64,
458    Some8,
459    Subtract16,
460    Subtract32,
461    Subtract64,
462    Subtract8,
463    Swu,
464    TapEnvHash,
465    TapdataInit,
466    TapleafHash,
467    TapleafVersion,
468    Tappath,
469    TappathHash,
470    TotalFee,
471    TransactionId,
472    TxHash,
473    TxIsFinal,
474    TxLockHeight,
475    TxLockTime,
476    Verify,
477    Version,
478    Xor1,
479    Xor16,
480    Xor32,
481    Xor64,
482    Xor8,
483    XorXor1,
484    XorXor16,
485    XorXor32,
486    XorXor64,
487    XorXor8,
488}
489
490impl Elements {
491    /// Array of all Elements jets.
492    pub const ALL: [Self; 471] = [
493        Self::Add16,
494        Self::Add32,
495        Self::Add64,
496        Self::Add8,
497        Self::All16,
498        Self::All32,
499        Self::All64,
500        Self::All8,
501        Self::And1,
502        Self::And16,
503        Self::And32,
504        Self::And64,
505        Self::And8,
506        Self::AnnexHash,
507        Self::AssetAmountHash,
508        Self::Bip0340Verify,
509        Self::BrokenDoNotUseCheckLockDistance,
510        Self::BrokenDoNotUseCheckLockDuration,
511        Self::BrokenDoNotUseTxLockDistance,
512        Self::BrokenDoNotUseTxLockDuration,
513        Self::BuildTapbranch,
514        Self::BuildTapleafSimplicity,
515        Self::BuildTaptweak,
516        Self::CalculateAsset,
517        Self::CalculateConfidentialToken,
518        Self::CalculateExplicitToken,
519        Self::CalculateIssuanceEntropy,
520        Self::Ch1,
521        Self::Ch16,
522        Self::Ch32,
523        Self::Ch64,
524        Self::Ch8,
525        Self::CheckLockHeight,
526        Self::CheckLockTime,
527        Self::CheckSigVerify,
528        Self::Complement1,
529        Self::Complement16,
530        Self::Complement32,
531        Self::Complement64,
532        Self::Complement8,
533        Self::CurrentAmount,
534        Self::CurrentAnnexHash,
535        Self::CurrentAsset,
536        Self::CurrentIndex,
537        Self::CurrentIssuanceAssetAmount,
538        Self::CurrentIssuanceAssetProof,
539        Self::CurrentIssuanceTokenAmount,
540        Self::CurrentIssuanceTokenProof,
541        Self::CurrentNewIssuanceContract,
542        Self::CurrentPegin,
543        Self::CurrentPrevOutpoint,
544        Self::CurrentReissuanceBlinding,
545        Self::CurrentReissuanceEntropy,
546        Self::CurrentScriptHash,
547        Self::CurrentScriptSigHash,
548        Self::CurrentSequence,
549        Self::Decompress,
550        Self::Decrement16,
551        Self::Decrement32,
552        Self::Decrement64,
553        Self::Decrement8,
554        Self::DivMod128_64,
555        Self::DivMod16,
556        Self::DivMod32,
557        Self::DivMod64,
558        Self::DivMod8,
559        Self::Divide16,
560        Self::Divide32,
561        Self::Divide64,
562        Self::Divide8,
563        Self::Divides16,
564        Self::Divides32,
565        Self::Divides64,
566        Self::Divides8,
567        Self::Eq1,
568        Self::Eq16,
569        Self::Eq256,
570        Self::Eq32,
571        Self::Eq64,
572        Self::Eq8,
573        Self::FeAdd,
574        Self::FeInvert,
575        Self::FeIsOdd,
576        Self::FeIsZero,
577        Self::FeMultiply,
578        Self::FeMultiplyBeta,
579        Self::FeNegate,
580        Self::FeNormalize,
581        Self::FeSquare,
582        Self::FeSquareRoot,
583        Self::FullAdd16,
584        Self::FullAdd32,
585        Self::FullAdd64,
586        Self::FullAdd8,
587        Self::FullDecrement16,
588        Self::FullDecrement32,
589        Self::FullDecrement64,
590        Self::FullDecrement8,
591        Self::FullIncrement16,
592        Self::FullIncrement32,
593        Self::FullIncrement64,
594        Self::FullIncrement8,
595        Self::FullLeftShift16_1,
596        Self::FullLeftShift16_2,
597        Self::FullLeftShift16_4,
598        Self::FullLeftShift16_8,
599        Self::FullLeftShift32_1,
600        Self::FullLeftShift32_16,
601        Self::FullLeftShift32_2,
602        Self::FullLeftShift32_4,
603        Self::FullLeftShift32_8,
604        Self::FullLeftShift64_1,
605        Self::FullLeftShift64_16,
606        Self::FullLeftShift64_2,
607        Self::FullLeftShift64_32,
608        Self::FullLeftShift64_4,
609        Self::FullLeftShift64_8,
610        Self::FullLeftShift8_1,
611        Self::FullLeftShift8_2,
612        Self::FullLeftShift8_4,
613        Self::FullMultiply16,
614        Self::FullMultiply32,
615        Self::FullMultiply64,
616        Self::FullMultiply8,
617        Self::FullRightShift16_1,
618        Self::FullRightShift16_2,
619        Self::FullRightShift16_4,
620        Self::FullRightShift16_8,
621        Self::FullRightShift32_1,
622        Self::FullRightShift32_16,
623        Self::FullRightShift32_2,
624        Self::FullRightShift32_4,
625        Self::FullRightShift32_8,
626        Self::FullRightShift64_1,
627        Self::FullRightShift64_16,
628        Self::FullRightShift64_2,
629        Self::FullRightShift64_32,
630        Self::FullRightShift64_4,
631        Self::FullRightShift64_8,
632        Self::FullRightShift8_1,
633        Self::FullRightShift8_2,
634        Self::FullRightShift8_4,
635        Self::FullSubtract16,
636        Self::FullSubtract32,
637        Self::FullSubtract64,
638        Self::FullSubtract8,
639        Self::GeIsOnCurve,
640        Self::GeNegate,
641        Self::GejAdd,
642        Self::GejDouble,
643        Self::GejEquiv,
644        Self::GejGeAdd,
645        Self::GejGeAddEx,
646        Self::GejGeEquiv,
647        Self::GejInfinity,
648        Self::GejIsInfinity,
649        Self::GejIsOnCurve,
650        Self::GejNegate,
651        Self::GejNormalize,
652        Self::GejRescale,
653        Self::GejXEquiv,
654        Self::GejYIsOdd,
655        Self::Generate,
656        Self::GenesisBlockHash,
657        Self::HashToCurve,
658        Self::High1,
659        Self::High16,
660        Self::High32,
661        Self::High64,
662        Self::High8,
663        Self::Increment16,
664        Self::Increment32,
665        Self::Increment64,
666        Self::Increment8,
667        Self::InputAmount,
668        Self::InputAmountsHash,
669        Self::InputAnnexHash,
670        Self::InputAnnexesHash,
671        Self::InputAsset,
672        Self::InputHash,
673        Self::InputOutpointsHash,
674        Self::InputPegin,
675        Self::InputPrevOutpoint,
676        Self::InputScriptHash,
677        Self::InputScriptSigHash,
678        Self::InputScriptSigsHash,
679        Self::InputScriptsHash,
680        Self::InputSequence,
681        Self::InputSequencesHash,
682        Self::InputUtxoHash,
683        Self::InputUtxosHash,
684        Self::InputsHash,
685        Self::InternalKey,
686        Self::IsOne16,
687        Self::IsOne32,
688        Self::IsOne64,
689        Self::IsOne8,
690        Self::IsZero16,
691        Self::IsZero32,
692        Self::IsZero64,
693        Self::IsZero8,
694        Self::Issuance,
695        Self::IssuanceAsset,
696        Self::IssuanceAssetAmount,
697        Self::IssuanceAssetAmountsHash,
698        Self::IssuanceAssetProof,
699        Self::IssuanceBlindingEntropyHash,
700        Self::IssuanceEntropy,
701        Self::IssuanceHash,
702        Self::IssuanceRangeProofsHash,
703        Self::IssuanceToken,
704        Self::IssuanceTokenAmount,
705        Self::IssuanceTokenAmountsHash,
706        Self::IssuanceTokenProof,
707        Self::IssuancesHash,
708        Self::LbtcAsset,
709        Self::Le16,
710        Self::Le32,
711        Self::Le64,
712        Self::Le8,
713        Self::LeftExtend16_32,
714        Self::LeftExtend16_64,
715        Self::LeftExtend1_16,
716        Self::LeftExtend1_32,
717        Self::LeftExtend1_64,
718        Self::LeftExtend1_8,
719        Self::LeftExtend32_64,
720        Self::LeftExtend8_16,
721        Self::LeftExtend8_32,
722        Self::LeftExtend8_64,
723        Self::LeftPadHigh16_32,
724        Self::LeftPadHigh16_64,
725        Self::LeftPadHigh1_16,
726        Self::LeftPadHigh1_32,
727        Self::LeftPadHigh1_64,
728        Self::LeftPadHigh1_8,
729        Self::LeftPadHigh32_64,
730        Self::LeftPadHigh8_16,
731        Self::LeftPadHigh8_32,
732        Self::LeftPadHigh8_64,
733        Self::LeftPadLow16_32,
734        Self::LeftPadLow16_64,
735        Self::LeftPadLow1_16,
736        Self::LeftPadLow1_32,
737        Self::LeftPadLow1_64,
738        Self::LeftPadLow1_8,
739        Self::LeftPadLow32_64,
740        Self::LeftPadLow8_16,
741        Self::LeftPadLow8_32,
742        Self::LeftPadLow8_64,
743        Self::LeftRotate16,
744        Self::LeftRotate32,
745        Self::LeftRotate64,
746        Self::LeftRotate8,
747        Self::LeftShift16,
748        Self::LeftShift32,
749        Self::LeftShift64,
750        Self::LeftShift8,
751        Self::LeftShiftWith16,
752        Self::LeftShiftWith32,
753        Self::LeftShiftWith64,
754        Self::LeftShiftWith8,
755        Self::Leftmost16_1,
756        Self::Leftmost16_2,
757        Self::Leftmost16_4,
758        Self::Leftmost16_8,
759        Self::Leftmost32_1,
760        Self::Leftmost32_16,
761        Self::Leftmost32_2,
762        Self::Leftmost32_4,
763        Self::Leftmost32_8,
764        Self::Leftmost64_1,
765        Self::Leftmost64_16,
766        Self::Leftmost64_2,
767        Self::Leftmost64_32,
768        Self::Leftmost64_4,
769        Self::Leftmost64_8,
770        Self::Leftmost8_1,
771        Self::Leftmost8_2,
772        Self::Leftmost8_4,
773        Self::LinearCombination1,
774        Self::LinearVerify1,
775        Self::LockTime,
776        Self::Low1,
777        Self::Low16,
778        Self::Low32,
779        Self::Low64,
780        Self::Low8,
781        Self::Lt16,
782        Self::Lt32,
783        Self::Lt64,
784        Self::Lt8,
785        Self::Maj1,
786        Self::Maj16,
787        Self::Maj32,
788        Self::Maj64,
789        Self::Maj8,
790        Self::Max16,
791        Self::Max32,
792        Self::Max64,
793        Self::Max8,
794        Self::Median16,
795        Self::Median32,
796        Self::Median64,
797        Self::Median8,
798        Self::Min16,
799        Self::Min32,
800        Self::Min64,
801        Self::Min8,
802        Self::Modulo16,
803        Self::Modulo32,
804        Self::Modulo64,
805        Self::Modulo8,
806        Self::Multiply16,
807        Self::Multiply32,
808        Self::Multiply64,
809        Self::Multiply8,
810        Self::Negate16,
811        Self::Negate32,
812        Self::Negate64,
813        Self::Negate8,
814        Self::NewIssuanceContract,
815        Self::NonceHash,
816        Self::NumInputs,
817        Self::NumOutputs,
818        Self::One16,
819        Self::One32,
820        Self::One64,
821        Self::One8,
822        Self::Or1,
823        Self::Or16,
824        Self::Or32,
825        Self::Or64,
826        Self::Or8,
827        Self::OutpointHash,
828        Self::OutputAmount,
829        Self::OutputAmountsHash,
830        Self::OutputAsset,
831        Self::OutputHash,
832        Self::OutputIsFee,
833        Self::OutputNonce,
834        Self::OutputNoncesHash,
835        Self::OutputNullDatum,
836        Self::OutputRangeProof,
837        Self::OutputRangeProofsHash,
838        Self::OutputScriptHash,
839        Self::OutputScriptsHash,
840        Self::OutputSurjectionProof,
841        Self::OutputSurjectionProofsHash,
842        Self::OutputsHash,
843        Self::ParseLock,
844        Self::ParseSequence,
845        Self::PointVerify1,
846        Self::ReissuanceBlinding,
847        Self::ReissuanceEntropy,
848        Self::RightExtend16_32,
849        Self::RightExtend16_64,
850        Self::RightExtend32_64,
851        Self::RightExtend8_16,
852        Self::RightExtend8_32,
853        Self::RightExtend8_64,
854        Self::RightPadHigh16_32,
855        Self::RightPadHigh16_64,
856        Self::RightPadHigh1_16,
857        Self::RightPadHigh1_32,
858        Self::RightPadHigh1_64,
859        Self::RightPadHigh1_8,
860        Self::RightPadHigh32_64,
861        Self::RightPadHigh8_16,
862        Self::RightPadHigh8_32,
863        Self::RightPadHigh8_64,
864        Self::RightPadLow16_32,
865        Self::RightPadLow16_64,
866        Self::RightPadLow1_16,
867        Self::RightPadLow1_32,
868        Self::RightPadLow1_64,
869        Self::RightPadLow1_8,
870        Self::RightPadLow32_64,
871        Self::RightPadLow8_16,
872        Self::RightPadLow8_32,
873        Self::RightPadLow8_64,
874        Self::RightRotate16,
875        Self::RightRotate32,
876        Self::RightRotate64,
877        Self::RightRotate8,
878        Self::RightShift16,
879        Self::RightShift32,
880        Self::RightShift64,
881        Self::RightShift8,
882        Self::RightShiftWith16,
883        Self::RightShiftWith32,
884        Self::RightShiftWith64,
885        Self::RightShiftWith8,
886        Self::Rightmost16_1,
887        Self::Rightmost16_2,
888        Self::Rightmost16_4,
889        Self::Rightmost16_8,
890        Self::Rightmost32_1,
891        Self::Rightmost32_16,
892        Self::Rightmost32_2,
893        Self::Rightmost32_4,
894        Self::Rightmost32_8,
895        Self::Rightmost64_1,
896        Self::Rightmost64_16,
897        Self::Rightmost64_2,
898        Self::Rightmost64_32,
899        Self::Rightmost64_4,
900        Self::Rightmost64_8,
901        Self::Rightmost8_1,
902        Self::Rightmost8_2,
903        Self::Rightmost8_4,
904        Self::ScalarAdd,
905        Self::ScalarInvert,
906        Self::ScalarIsZero,
907        Self::ScalarMultiply,
908        Self::ScalarMultiplyLambda,
909        Self::ScalarNegate,
910        Self::ScalarNormalize,
911        Self::ScalarSquare,
912        Self::Scale,
913        Self::ScriptCMR,
914        Self::Sha256Block,
915        Self::Sha256Ctx8Add1,
916        Self::Sha256Ctx8Add128,
917        Self::Sha256Ctx8Add16,
918        Self::Sha256Ctx8Add2,
919        Self::Sha256Ctx8Add256,
920        Self::Sha256Ctx8Add32,
921        Self::Sha256Ctx8Add4,
922        Self::Sha256Ctx8Add512,
923        Self::Sha256Ctx8Add64,
924        Self::Sha256Ctx8Add8,
925        Self::Sha256Ctx8AddBuffer511,
926        Self::Sha256Ctx8Finalize,
927        Self::Sha256Ctx8Init,
928        Self::Sha256Iv,
929        Self::SigAllHash,
930        Self::Some1,
931        Self::Some16,
932        Self::Some32,
933        Self::Some64,
934        Self::Some8,
935        Self::Subtract16,
936        Self::Subtract32,
937        Self::Subtract64,
938        Self::Subtract8,
939        Self::Swu,
940        Self::TapEnvHash,
941        Self::TapdataInit,
942        Self::TapleafHash,
943        Self::TapleafVersion,
944        Self::Tappath,
945        Self::TappathHash,
946        Self::TotalFee,
947        Self::TransactionId,
948        Self::TxHash,
949        Self::TxIsFinal,
950        Self::TxLockHeight,
951        Self::TxLockTime,
952        Self::Verify,
953        Self::Version,
954        Self::Xor1,
955        Self::Xor16,
956        Self::Xor32,
957        Self::Xor64,
958        Self::Xor8,
959        Self::XorXor1,
960        Self::XorXor16,
961        Self::XorXor32,
962        Self::XorXor64,
963        Self::XorXor8,
964    ];
965}
966
967impl Jet for Elements {
968
969    fn cmr(&self) -> Cmr {
970        let bytes = match self {
971            Elements::Add16 => [
972                0x26, 0xae, 0x09, 0x94, 0xce, 0x8b, 0x77, 0x1a, 0xf7, 0xad, 0x28, 0x51, 0xb8, 0x3b,
973                0x49, 0xa5, 0x95, 0x05, 0x36, 0x58, 0x9f, 0x67, 0xbd, 0x85, 0x59, 0x47, 0x04, 0x60,
974                0x29, 0x75, 0x1c, 0x0d,
975            ],
976            Elements::Add32 => [
977                0x3d, 0x76, 0x74, 0x46, 0x6e, 0xd6, 0x9e, 0x1d, 0xbe, 0xdc, 0xd4, 0x80, 0x57, 0xa9,
978                0xe6, 0x28, 0x8c, 0x22, 0x25, 0x32, 0xfb, 0xc5, 0x04, 0x80, 0x49, 0x92, 0x8c, 0xfb,
979                0x77, 0xf8, 0x29, 0xd9,
980            ],
981            Elements::Add64 => [
982                0x9b, 0x56, 0xe6, 0x1e, 0xef, 0xe2, 0x80, 0x5c, 0xa8, 0x73, 0x96, 0xbd, 0xfb, 0x03,
983                0xf5, 0xe1, 0xb1, 0x38, 0x5f, 0x7a, 0xc4, 0xbf, 0xf7, 0x68, 0x40, 0x26, 0xa0, 0x7c,
984                0xf9, 0x7f, 0xb6, 0xf6,
985            ],
986            Elements::Add8 => [
987                0xd7, 0x32, 0x8c, 0x09, 0x14, 0xee, 0x99, 0x9e, 0xfa, 0x0a, 0x6c, 0xb2, 0x6e, 0xb4,
988                0x09, 0x12, 0xc2, 0x15, 0xc0, 0x62, 0xe5, 0x8a, 0x98, 0x1a, 0xe6, 0xb2, 0xe4, 0xa8,
989                0x04, 0x74, 0xa1, 0xda,
990            ],
991            Elements::All16 => [
992                0x16, 0xf0, 0xc9, 0x30, 0x7e, 0xb8, 0xf4, 0xc1, 0xfd, 0xd1, 0xba, 0xfa, 0xef, 0x28,
993                0x79, 0x24, 0x29, 0x58, 0x49, 0x8e, 0x8f, 0x5b, 0x2e, 0x0d, 0x29, 0xf0, 0x65, 0x53,
994                0xdc, 0x06, 0xa0, 0xbd,
995            ],
996            Elements::All32 => [
997                0x0e, 0xb8, 0xb4, 0x0d, 0x29, 0x02, 0x17, 0x47, 0xee, 0xc4, 0x51, 0xd4, 0xe6, 0x63,
998                0x58, 0x6a, 0x43, 0x6c, 0x2d, 0xb0, 0x93, 0x26, 0x75, 0xda, 0xf2, 0x16, 0x61, 0x23,
999                0xbf, 0xe4, 0x52, 0xa6,
1000            ],
1001            Elements::All64 => [
1002                0xa6, 0x5c, 0x82, 0xd5, 0x3d, 0x38, 0x2e, 0xe2, 0x9a, 0xa8, 0x8b, 0x77, 0x18, 0xa9,
1003                0x7f, 0xbb, 0xce, 0x64, 0x75, 0xec, 0x32, 0xc4, 0xb4, 0xcd, 0x69, 0x08, 0xfd, 0xe4,
1004                0x5d, 0x81, 0xb6, 0x24,
1005            ],
1006            Elements::All8 => [
1007                0x1d, 0x3e, 0xc7, 0xfb, 0x6a, 0x07, 0x84, 0x7c, 0x92, 0xb8, 0xa9, 0x98, 0xe1, 0xf6,
1008                0xb4, 0x78, 0x31, 0x9d, 0x05, 0x0a, 0x38, 0x76, 0x42, 0xf4, 0x03, 0x2d, 0x2f, 0x7d,
1009                0x2e, 0x02, 0x7f, 0xcd,
1010            ],
1011            Elements::And1 => [
1012                0xb7, 0x73, 0xce, 0xfa, 0x41, 0x89, 0x57, 0xfe, 0xa7, 0xdf, 0xb4, 0x9c, 0x6c, 0x43,
1013                0xb3, 0xdb, 0xfa, 0x35, 0xfa, 0x3d, 0x80, 0xde, 0x8c, 0xfd, 0x4d, 0x70, 0xc0, 0x8d,
1014                0x94, 0x5f, 0x5f, 0xba,
1015            ],
1016            Elements::And16 => [
1017                0x57, 0xdd, 0x73, 0x0b, 0x1c, 0x8d, 0xdf, 0xf1, 0x3c, 0xae, 0x27, 0x69, 0x56, 0x2b,
1018                0xe0, 0xab, 0xc6, 0xca, 0x3b, 0xc8, 0x02, 0xda, 0x0a, 0xbb, 0xb7, 0xfc, 0x13, 0x8c,
1019                0xa4, 0x63, 0xda, 0x59,
1020            ],
1021            Elements::And32 => [
1022                0x75, 0x3e, 0x33, 0x2d, 0xdf, 0xa0, 0x96, 0xf0, 0x83, 0x99, 0xff, 0xaa, 0x7e, 0xc4,
1023                0xda, 0x40, 0x35, 0xbc, 0xba, 0xa1, 0x42, 0xe6, 0xe3, 0x8d, 0x4c, 0xb6, 0x07, 0xce,
1024                0x1f, 0x0b, 0x05, 0x1d,
1025            ],
1026            Elements::And64 => [
1027                0xf1, 0xad, 0x5e, 0x6c, 0x63, 0xee, 0x5c, 0x89, 0x0b, 0x0f, 0x2e, 0x71, 0x15, 0x61,
1028                0xb9, 0x05, 0x31, 0x64, 0x87, 0xac, 0x40, 0x44, 0xdd, 0x23, 0x0c, 0xf6, 0xa7, 0x36,
1029                0xf8, 0x1b, 0xd4, 0xf3,
1030            ],
1031            Elements::And8 => [
1032                0xac, 0x82, 0x8b, 0x72, 0x4c, 0x5f, 0x53, 0x40, 0xb5, 0x1e, 0x76, 0xe7, 0xb6, 0xe8,
1033                0xb2, 0x3a, 0xea, 0xb7, 0x53, 0x3f, 0xd8, 0xc0, 0x91, 0xae, 0x2a, 0x51, 0x55, 0x30,
1034                0xae, 0x7a, 0xb2, 0x00,
1035            ],
1036            Elements::AnnexHash => [
1037                0xeb, 0xa1, 0xb7, 0xfb, 0x2e, 0xa8, 0xd5, 0x7a, 0xf3, 0xb6, 0x27, 0x3e, 0x51, 0x82,
1038                0xfb, 0x99, 0xdb, 0x17, 0x08, 0xb2, 0xd0, 0xaf, 0xb9, 0xc6, 0xad, 0x03, 0x58, 0xcc,
1039                0x3f, 0x64, 0x7d, 0xc8,
1040            ],
1041            Elements::AssetAmountHash => [
1042                0xa8, 0x64, 0xd1, 0xf1, 0xf8, 0x39, 0x50, 0xb6, 0x31, 0x96, 0xfe, 0x88, 0xba, 0xec,
1043                0x2e, 0x42, 0x28, 0x95, 0x32, 0x30, 0xbe, 0x45, 0xc8, 0x8c, 0x4e, 0x0b, 0x99, 0x17,
1044                0x8b, 0x33, 0x8f, 0x07,
1045            ],
1046            Elements::Bip0340Verify => [
1047                0xc9, 0xc4, 0x5a, 0x8a, 0xec, 0x86, 0x59, 0x14, 0x3b, 0xfe, 0x2a, 0xf6, 0xea, 0xd4,
1048                0x8d, 0x4e, 0x05, 0x42, 0x45, 0x3a, 0xca, 0xe8, 0x4b, 0x9b, 0xbb, 0x97, 0x65, 0x6b,
1049                0x67, 0x0b, 0xdf, 0xdd,
1050            ],
1051            Elements::BrokenDoNotUseCheckLockDistance => [
1052                0x7f, 0x78, 0xc7, 0xa7, 0x7a, 0x25, 0xad, 0xa2, 0x23, 0x26, 0x7d, 0x23, 0x9a, 0x59,
1053                0x22, 0xf7, 0x64, 0xb8, 0xac, 0x0c, 0x2f, 0xce, 0xf6, 0x8e, 0xb9, 0x3c, 0x0d, 0x92,
1054                0xda, 0x4a, 0xf5, 0x15,
1055            ],
1056            Elements::BrokenDoNotUseCheckLockDuration => [
1057                0x73, 0xda, 0xc8, 0xe2, 0x5d, 0x87, 0xea, 0xf3, 0x82, 0xc2, 0xa7, 0x72, 0x06, 0xad,
1058                0x38, 0xb9, 0x38, 0x43, 0x61, 0xe7, 0xd0, 0xdc, 0x87, 0xc0, 0xfa, 0x7a, 0xf7, 0xea,
1059                0x52, 0x45, 0x97, 0xb7,
1060            ],
1061            Elements::BrokenDoNotUseTxLockDistance => [
1062                0x4c, 0x77, 0x73, 0xb8, 0x18, 0xcb, 0x7e, 0xe5, 0xf5, 0x4f, 0x92, 0x5a, 0xad, 0x01,
1063                0x56, 0x77, 0xa0, 0x43, 0xa7, 0x2f, 0x31, 0x6a, 0x18, 0x7c, 0xc2, 0x8c, 0x69, 0x6c,
1064                0xfc, 0xb9, 0x08, 0x07,
1065            ],
1066            Elements::BrokenDoNotUseTxLockDuration => [
1067                0xcc, 0x9c, 0x64, 0xc8, 0xb6, 0xeb, 0x4b, 0xf0, 0x96, 0x94, 0xaf, 0x5a, 0x35, 0xd9,
1068                0x57, 0xa4, 0x05, 0xe6, 0x6c, 0x1b, 0x35, 0x22, 0x4e, 0xd6, 0x75, 0x87, 0x89, 0x18,
1069                0x45, 0x24, 0x40, 0xb2,
1070            ],
1071            Elements::BuildTapbranch => [
1072                0xcb, 0xec, 0xf9, 0xbc, 0xe1, 0x72, 0xc5, 0x0f, 0x58, 0x59, 0x51, 0xdf, 0xf0, 0xe0,
1073                0x52, 0x3d, 0xb1, 0x09, 0xe5, 0x70, 0x25, 0xec, 0x37, 0xde, 0x2c, 0x3a, 0x74, 0xd4,
1074                0xa6, 0x73, 0xf2, 0x25,
1075            ],
1076            Elements::BuildTapleafSimplicity => [
1077                0x73, 0x6e, 0x9f, 0xce, 0xfb, 0x5b, 0x87, 0x3e, 0x09, 0xf2, 0x68, 0x1e, 0x74, 0xe4,
1078                0x9f, 0x5a, 0x10, 0x56, 0xf9, 0x0a, 0xf5, 0x2a, 0xb3, 0xec, 0x5b, 0x19, 0x77, 0x27,
1079                0xd3, 0x98, 0x34, 0xbe,
1080            ],
1081            Elements::BuildTaptweak => [
1082                0x38, 0x74, 0x1f, 0x80, 0xa2, 0xbf, 0x10, 0xf8, 0xf8, 0x72, 0x30, 0x77, 0xc6, 0x74,
1083                0x1c, 0xbe, 0xae, 0x2d, 0xca, 0xc8, 0x57, 0x90, 0x1b, 0x81, 0x37, 0x25, 0x80, 0x6f,
1084                0x21, 0x89, 0x8e, 0xe3,
1085            ],
1086            Elements::CalculateAsset => [
1087                0x67, 0x6f, 0x98, 0x8e, 0x54, 0x72, 0x51, 0xe7, 0xa0, 0x9e, 0xed, 0xe1, 0x92, 0x0a,
1088                0x9c, 0x5d, 0x35, 0xe7, 0x57, 0x59, 0xe6, 0xd8, 0xd4, 0x9b, 0x58, 0x0c, 0xeb, 0x3e,
1089                0x14, 0x6b, 0xcf, 0x7e,
1090            ],
1091            Elements::CalculateConfidentialToken => [
1092                0x8e, 0x40, 0x29, 0x05, 0x60, 0x74, 0x33, 0x98, 0x40, 0xc0, 0xe7, 0x00, 0x9b, 0x66,
1093                0xf3, 0x82, 0xbb, 0x98, 0xd7, 0xdd, 0xe7, 0x19, 0xdd, 0x2c, 0x9f, 0x2f, 0xd3, 0xac,
1094                0xd9, 0x32, 0x5a, 0xc6,
1095            ],
1096            Elements::CalculateExplicitToken => [
1097                0x87, 0x52, 0x28, 0x02, 0x0b, 0x45, 0x6c, 0x99, 0x8a, 0xad, 0x3a, 0xc5, 0xc4, 0x83,
1098                0x6f, 0x71, 0x94, 0x45, 0xdc, 0xbe, 0x6b, 0xd2, 0x74, 0xe8, 0xca, 0x14, 0x5d, 0x82,
1099                0x79, 0x7e, 0x1b, 0x92,
1100            ],
1101            Elements::CalculateIssuanceEntropy => [
1102                0xa6, 0xe7, 0xc4, 0x34, 0xae, 0xe5, 0xa7, 0x33, 0x0c, 0x1f, 0xc2, 0x46, 0xf7, 0x1d,
1103                0xcf, 0x05, 0x1c, 0xe5, 0x4b, 0xde, 0xe7, 0xb8, 0xe6, 0x39, 0x57, 0xbe, 0x18, 0xc2,
1104                0xd7, 0x51, 0xc6, 0x53,
1105            ],
1106            Elements::Ch1 => [
1107                0xb8, 0x41, 0xb8, 0x57, 0xa4, 0xaa, 0x50, 0xea, 0xca, 0x27, 0xa2, 0x6f, 0x74, 0x42,
1108                0xfc, 0xbf, 0xe9, 0x54, 0x67, 0x7a, 0xe6, 0xd4, 0x55, 0xf6, 0x05, 0x65, 0x49, 0x89,
1109                0xe3, 0x5a, 0xeb, 0x13,
1110            ],
1111            Elements::Ch16 => [
1112                0x9c, 0xff, 0x11, 0xa0, 0x9b, 0x60, 0x41, 0xe5, 0xf2, 0x63, 0x9a, 0xe4, 0xc0, 0x65,
1113                0xa1, 0x8f, 0xc6, 0x75, 0xdb, 0x2f, 0xbd, 0x98, 0x54, 0x08, 0xe2, 0x8f, 0x02, 0x7a,
1114                0x99, 0x11, 0x0e, 0x11,
1115            ],
1116            Elements::Ch32 => [
1117                0x07, 0x1c, 0xef, 0x80, 0x39, 0xc7, 0x9f, 0x71, 0x31, 0xcd, 0x6a, 0x5f, 0xe4, 0x93,
1118                0xdc, 0x26, 0x8f, 0x9d, 0xb5, 0x8f, 0x7b, 0x20, 0xa8, 0x55, 0x55, 0xe2, 0x97, 0xbd,
1119                0xd2, 0x16, 0xcf, 0x40,
1120            ],
1121            Elements::Ch64 => [
1122                0xd5, 0x55, 0xd2, 0x19, 0x63, 0xb0, 0x19, 0x2f, 0xc9, 0x72, 0x14, 0xb6, 0x3d, 0xc1,
1123                0xc3, 0xaf, 0x75, 0x8b, 0x29, 0x11, 0x58, 0xf0, 0xe1, 0xa3, 0xbc, 0xfd, 0xea, 0x67,
1124                0x9c, 0x66, 0x6d, 0xa6,
1125            ],
1126            Elements::Ch8 => [
1127                0x35, 0x3f, 0x63, 0xb0, 0xf8, 0xcb, 0x54, 0xf5, 0xae, 0x65, 0x75, 0xaf, 0x8c, 0xa2,
1128                0x24, 0x2c, 0xee, 0xe9, 0xf2, 0x7a, 0x84, 0x18, 0x6e, 0xb8, 0x0e, 0x62, 0x0d, 0x5e,
1129                0x2e, 0x85, 0x48, 0xec,
1130            ],
1131            Elements::CheckLockHeight => [
1132                0x9e, 0x78, 0x98, 0xd0, 0x37, 0x62, 0x71, 0x34, 0xd2, 0xbd, 0x70, 0xc7, 0xfc, 0xa9,
1133                0xcb, 0xa4, 0x5e, 0xaf, 0x26, 0x7d, 0x4d, 0x09, 0xad, 0x50, 0xa9, 0xef, 0x71, 0x7a,
1134                0x8f, 0x27, 0x49, 0xdb,
1135            ],
1136            Elements::CheckLockTime => [
1137                0x68, 0x67, 0x3d, 0x12, 0xe2, 0x73, 0x2f, 0xaa, 0x1d, 0x39, 0xe2, 0x13, 0x6b, 0x14,
1138                0x06, 0xaf, 0xa0, 0x98, 0xa8, 0x4c, 0x96, 0xe8, 0xd6, 0x05, 0x02, 0xa2, 0xdd, 0x61,
1139                0xc5, 0x95, 0x70, 0xbb,
1140            ],
1141            Elements::CheckSigVerify => [
1142                0xb5, 0x80, 0x15, 0x54, 0x6d, 0x28, 0x52, 0x66, 0x5d, 0xd2, 0x1b, 0xf1, 0x12, 0x66,
1143                0x26, 0x70, 0x20, 0xfa, 0x5e, 0x27, 0x50, 0x01, 0xdd, 0x46, 0x18, 0xfa, 0x41, 0x56,
1144                0x25, 0x95, 0x2e, 0x68,
1145            ],
1146            Elements::Complement1 => [
1147                0xed, 0x74, 0xee, 0xb8, 0x3a, 0x00, 0xc7, 0x13, 0xcc, 0x14, 0xf3, 0x3e, 0xfe, 0x55,
1148                0x33, 0x83, 0xcd, 0x04, 0x11, 0xcc, 0x30, 0x20, 0xfd, 0x89, 0x27, 0x93, 0x16, 0x67,
1149                0x5d, 0x91, 0x0e, 0x66,
1150            ],
1151            Elements::Complement16 => [
1152                0x61, 0xfd, 0xd9, 0x04, 0xa4, 0xae, 0xb7, 0xeb, 0x76, 0x84, 0xaf, 0x61, 0x8e, 0x25,
1153                0xaa, 0xe9, 0x07, 0xcd, 0x1d, 0xb0, 0xf6, 0x2d, 0x97, 0x03, 0xc5, 0xb8, 0x54, 0xe1,
1154                0x66, 0x3c, 0xac, 0x9f,
1155            ],
1156            Elements::Complement32 => [
1157                0xfe, 0xb0, 0x2c, 0xc3, 0x6e, 0x19, 0x5b, 0x46, 0x2a, 0xe5, 0x04, 0xa9, 0x12, 0xda,
1158                0xdf, 0xe6, 0x6a, 0xd4, 0x7f, 0x23, 0xa0, 0xcb, 0x3b, 0xae, 0xa2, 0x1d, 0x31, 0xaa,
1159                0xa0, 0xce, 0x10, 0x1d,
1160            ],
1161            Elements::Complement64 => [
1162                0x45, 0x07, 0x2d, 0x5a, 0xa0, 0xe5, 0xc3, 0x7c, 0x9e, 0x52, 0x1d, 0xcc, 0x92, 0xe8,
1163                0xf3, 0x9a, 0x5f, 0x75, 0xe7, 0xd9, 0x28, 0x67, 0x0a, 0xca, 0xb7, 0x9c, 0xd8, 0xc8,
1164                0xb5, 0xb5, 0x9e, 0x1a,
1165            ],
1166            Elements::Complement8 => [
1167                0x69, 0x16, 0xb2, 0x8f, 0xb5, 0x74, 0xd9, 0xc9, 0x08, 0xa3, 0xf3, 0x3f, 0x74, 0xbf,
1168                0x06, 0xf7, 0xed, 0x93, 0x72, 0x54, 0x24, 0x7f, 0x9e, 0xfc, 0x26, 0x03, 0xd7, 0x17,
1169                0x1d, 0xd4, 0x97, 0xbe,
1170            ],
1171            Elements::CurrentAmount => [
1172                0x9e, 0x7b, 0xc9, 0x6d, 0x06, 0xc1, 0xf4, 0xa4, 0xd2, 0xbd, 0x43, 0x33, 0xd5, 0x56,
1173                0x43, 0xcb, 0xa6, 0x86, 0x3d, 0x3a, 0x33, 0x8e, 0x31, 0xdc, 0x0d, 0x17, 0x95, 0x58,
1174                0x41, 0x56, 0xea, 0x69,
1175            ],
1176            Elements::CurrentAnnexHash => [
1177                0x5f, 0x68, 0xbd, 0xaf, 0xd4, 0x17, 0xfe, 0xbb, 0x10, 0xde, 0xe1, 0x6b, 0x1d, 0x47,
1178                0xc2, 0x1f, 0xa9, 0x7e, 0xfc, 0x91, 0x91, 0x57, 0xc7, 0xf7, 0xbc, 0x54, 0xa6, 0x1d,
1179                0xc4, 0xf9, 0xf7, 0xd6,
1180            ],
1181            Elements::CurrentAsset => [
1182                0x03, 0xc8, 0x44, 0x59, 0xa5, 0xec, 0xdf, 0xdb, 0x46, 0xe3, 0xd3, 0x8e, 0xcb, 0x79,
1183                0xff, 0x22, 0x24, 0x3f, 0xdc, 0xf7, 0x0d, 0x80, 0xda, 0x1b, 0xa4, 0x56, 0x99, 0xe7,
1184                0x00, 0x8e, 0xec, 0xfe,
1185            ],
1186            Elements::CurrentIndex => [
1187                0x15, 0xe1, 0x05, 0x1f, 0xf2, 0x3f, 0x85, 0x1c, 0x19, 0x13, 0x1f, 0x0d, 0xe6, 0xed,
1188                0xc4, 0x88, 0x23, 0x76, 0xa2, 0x57, 0x90, 0xdb, 0xd9, 0x10, 0x28, 0x24, 0xaa, 0x22,
1189                0xa8, 0x89, 0xae, 0x84,
1190            ],
1191            Elements::CurrentIssuanceAssetAmount => [
1192                0xdc, 0x41, 0x0e, 0xc6, 0x99, 0x46, 0xf0, 0x8b, 0x9c, 0x4a, 0x40, 0xcf, 0x38, 0x81,
1193                0x9c, 0xbb, 0x01, 0x4e, 0x98, 0xfc, 0xe0, 0xa9, 0xb1, 0x96, 0x51, 0x45, 0x57, 0x47,
1194                0x7f, 0xe1, 0xc2, 0xa7,
1195            ],
1196            Elements::CurrentIssuanceAssetProof => [
1197                0xe5, 0xc1, 0xc6, 0xf7, 0xea, 0x02, 0x96, 0x14, 0x8e, 0x76, 0xf8, 0xb1, 0x79, 0xd4,
1198                0x15, 0x19, 0x82, 0x73, 0xdc, 0xc8, 0xe1, 0xfd, 0x89, 0x1f, 0x83, 0xef, 0x2b, 0xdf,
1199                0xb0, 0x69, 0x29, 0x36,
1200            ],
1201            Elements::CurrentIssuanceTokenAmount => [
1202                0xe3, 0xea, 0x9c, 0x61, 0x70, 0x95, 0x5f, 0x27, 0xb0, 0x1b, 0x12, 0x0c, 0xd6, 0x3a,
1203                0x36, 0x08, 0x50, 0xcc, 0x70, 0x0f, 0x47, 0x25, 0x19, 0x3b, 0xdf, 0xf8, 0x8e, 0x01,
1204                0xdf, 0xb0, 0x4e, 0xad,
1205            ],
1206            Elements::CurrentIssuanceTokenProof => [
1207                0x92, 0xe7, 0xd9, 0xdd, 0xbf, 0x75, 0x6e, 0x3e, 0x62, 0x2a, 0x44, 0xd4, 0xd0, 0x0e,
1208                0x84, 0x23, 0x6b, 0xcc, 0xe4, 0x2f, 0x16, 0xf3, 0x20, 0x0e, 0x8b, 0x89, 0xc0, 0x3c,
1209                0x44, 0x1e, 0x45, 0x8a,
1210            ],
1211            Elements::CurrentNewIssuanceContract => [
1212                0x23, 0x78, 0x15, 0x67, 0x5e, 0x9e, 0x9c, 0xf4, 0xd8, 0x54, 0x85, 0x60, 0xc7, 0x61,
1213                0xe3, 0xba, 0x7f, 0x64, 0xdc, 0xf2, 0x5c, 0x99, 0x52, 0x1b, 0xe9, 0xd8, 0x57, 0xe4,
1214                0xea, 0x41, 0xd8, 0x68,
1215            ],
1216            Elements::CurrentPegin => [
1217                0x36, 0x9a, 0xd5, 0xf6, 0xd7, 0x60, 0x48, 0x1c, 0xb3, 0x53, 0xa9, 0xba, 0xcf, 0x90,
1218                0x0f, 0xf1, 0x62, 0xb7, 0x60, 0x40, 0xc0, 0x7a, 0xd0, 0xa8, 0x3e, 0x52, 0xfc, 0xce,
1219                0xf1, 0x29, 0x57, 0x90,
1220            ],
1221            Elements::CurrentPrevOutpoint => [
1222                0xa1, 0xec, 0x90, 0x9c, 0x81, 0xe5, 0x08, 0xe8, 0x6e, 0x13, 0x61, 0xba, 0x82, 0xe5,
1223                0xfb, 0x47, 0xa2, 0xc7, 0x6b, 0xff, 0xba, 0x73, 0x21, 0xa6, 0xfc, 0x13, 0xcb, 0x12,
1224                0xaf, 0x7f, 0x69, 0x7c,
1225            ],
1226            Elements::CurrentReissuanceBlinding => [
1227                0xb7, 0x15, 0x50, 0xc8, 0xf6, 0x2e, 0x7a, 0xac, 0xff, 0x13, 0xe8, 0xd3, 0xc0, 0xae,
1228                0x05, 0x4e, 0xf0, 0x36, 0x40, 0x9d, 0x76, 0xc0, 0x65, 0x79, 0xc0, 0x26, 0xad, 0x68,
1229                0xa1, 0xb5, 0x61, 0xf8,
1230            ],
1231            Elements::CurrentReissuanceEntropy => [
1232                0x8b, 0x27, 0x15, 0x32, 0x7a, 0x0a, 0xc6, 0xb0, 0xd1, 0x8a, 0x2e, 0x51, 0xfb, 0xda,
1233                0x46, 0xc4, 0xb1, 0x18, 0xee, 0x06, 0x37, 0xd1, 0x14, 0xae, 0x3e, 0x58, 0xa2, 0x3b,
1234                0x45, 0xd6, 0x7f, 0xf8,
1235            ],
1236            Elements::CurrentScriptHash => [
1237                0xbf, 0xaf, 0x85, 0x84, 0x43, 0xce, 0xc8, 0x33, 0x7e, 0x37, 0x83, 0x9d, 0xc4, 0x11,
1238                0x35, 0x02, 0x71, 0x84, 0x58, 0x0c, 0x89, 0x21, 0x57, 0xce, 0x73, 0x04, 0x18, 0xc0,
1239                0x8d, 0x5e, 0xd8, 0x38,
1240            ],
1241            Elements::CurrentScriptSigHash => [
1242                0x8b, 0xaa, 0x9d, 0xf8, 0x54, 0xfe, 0x33, 0xee, 0xea, 0x66, 0x19, 0x5c, 0x97, 0xce,
1243                0x18, 0xed, 0x70, 0x1e, 0x10, 0x7e, 0xea, 0x7e, 0x02, 0xfb, 0x26, 0x03, 0xb2, 0xc1,
1244                0x21, 0x57, 0x50, 0x66,
1245            ],
1246            Elements::CurrentSequence => [
1247                0x0f, 0x42, 0x24, 0xf9, 0xaa, 0x86, 0x44, 0xf5, 0xc0, 0xf7, 0x91, 0x0f, 0x17, 0x39,
1248                0x04, 0x1a, 0xec, 0x8e, 0x7a, 0xf7, 0x7b, 0x5f, 0x38, 0xcf, 0xdc, 0xa0, 0xfd, 0xf4,
1249                0x82, 0x67, 0xa6, 0xc3,
1250            ],
1251            Elements::Decompress => [
1252                0x13, 0x97, 0x33, 0x17, 0xd5, 0x87, 0x41, 0x8e, 0xf3, 0x06, 0x36, 0x31, 0xa6, 0xed,
1253                0xb0, 0xac, 0xfa, 0x1c, 0xbe, 0x49, 0x83, 0xd7, 0x57, 0x4b, 0x1b, 0x30, 0x5f, 0x96,
1254                0x61, 0xc0, 0x48, 0xcb,
1255            ],
1256            Elements::Decrement16 => [
1257                0xe3, 0x4d, 0xb1, 0x18, 0x79, 0x27, 0x2b, 0x32, 0x7a, 0x3b, 0xd0, 0x34, 0xc0, 0xf6,
1258                0x1e, 0xf6, 0x0a, 0x2b, 0xe9, 0x6f, 0xdf, 0xe0, 0xb2, 0xd5, 0x7f, 0xfe, 0x39, 0xce,
1259                0x71, 0x4c, 0x78, 0xfb,
1260            ],
1261            Elements::Decrement32 => [
1262                0x01, 0x9e, 0xad, 0x5a, 0x73, 0x05, 0x60, 0x6d, 0xc9, 0x50, 0xfb, 0x55, 0x47, 0x6d,
1263                0x09, 0xc1, 0x7d, 0x66, 0xf5, 0x70, 0xda, 0xb5, 0x10, 0xb9, 0x0d, 0x2a, 0x27, 0xe2,
1264                0x26, 0x65, 0x99, 0xcf,
1265            ],
1266            Elements::Decrement64 => [
1267                0x34, 0x75, 0x2c, 0xf4, 0xe1, 0xd0, 0xa4, 0x31, 0xf0, 0x17, 0xa6, 0x8b, 0xeb, 0xfa,
1268                0xb7, 0x41, 0xbb, 0xc8, 0x8a, 0xff, 0xb5, 0x7c, 0xc0, 0xb3, 0x02, 0x5c, 0xcf, 0xdd,
1269                0x67, 0x62, 0x2f, 0x35,
1270            ],
1271            Elements::Decrement8 => [
1272                0x28, 0x92, 0xce, 0xb3, 0xb6, 0xec, 0x53, 0x25, 0xd0, 0xc1, 0xb9, 0xf5, 0x20, 0x42,
1273                0x5e, 0x4b, 0x05, 0xc2, 0xe1, 0xf4, 0x37, 0xe0, 0xb3, 0xf5, 0x81, 0xf4, 0x1b, 0x9d,
1274                0x0f, 0x7d, 0xff, 0x4d,
1275            ],
1276            Elements::DivMod128_64 => [
1277                0x22, 0x96, 0xb7, 0x0f, 0x60, 0x0e, 0x8a, 0x21, 0x4a, 0xd0, 0x70, 0xb2, 0x19, 0x4a,
1278                0x67, 0x7d, 0x30, 0x51, 0xbc, 0x1c, 0x49, 0x01, 0x83, 0x97, 0x5f, 0x2a, 0x1d, 0x3e,
1279                0x0c, 0xad, 0xe3, 0x78,
1280            ],
1281            Elements::DivMod16 => [
1282                0x64, 0x8f, 0xab, 0x86, 0x43, 0x74, 0x84, 0x6a, 0xbf, 0x4f, 0x9d, 0x9d, 0xef, 0xe2,
1283                0x75, 0x61, 0x4d, 0x33, 0xf4, 0x82, 0x9c, 0x36, 0xa4, 0x7e, 0xcb, 0x53, 0xd7, 0xbf,
1284                0xb6, 0x05, 0x48, 0x5f,
1285            ],
1286            Elements::DivMod32 => [
1287                0xbd, 0x3d, 0x4d, 0x55, 0x2d, 0x7b, 0x34, 0x7b, 0xd8, 0xa4, 0x4e, 0x3e, 0xe2, 0x24,
1288                0xc8, 0x46, 0xbe, 0x23, 0x0f, 0xf6, 0xe2, 0x04, 0x4d, 0xdb, 0x97, 0xf4, 0x8e, 0x27,
1289                0xd2, 0x0c, 0x42, 0x25,
1290            ],
1291            Elements::DivMod64 => [
1292                0xfa, 0x6b, 0xad, 0x6a, 0x95, 0xe2, 0xab, 0xa4, 0x30, 0x5b, 0xfe, 0x91, 0xcc, 0x47,
1293                0xac, 0xc3, 0xd9, 0x9b, 0x92, 0xe6, 0x75, 0xe6, 0x9d, 0x3b, 0x37, 0xbb, 0x09, 0x13,
1294                0x3d, 0x39, 0x0d, 0x0f,
1295            ],
1296            Elements::DivMod8 => [
1297                0x48, 0xcd, 0x50, 0x1b, 0xb2, 0xaa, 0x2a, 0xca, 0xe0, 0x14, 0xfe, 0x20, 0x8b, 0xb9,
1298                0x94, 0x1d, 0x07, 0xa9, 0xbf, 0xfe, 0x1a, 0xd6, 0xcd, 0x3d, 0x36, 0xfc, 0x6b, 0x08,
1299                0x60, 0xf6, 0xeb, 0xa7,
1300            ],
1301            Elements::Divide16 => [
1302                0x47, 0x0b, 0x01, 0xa5, 0x7c, 0x4f, 0x9d, 0x8f, 0x99, 0x7f, 0xcd, 0xe0, 0x06, 0x19,
1303                0x16, 0x11, 0xdd, 0xa4, 0xc9, 0x8b, 0xa2, 0xa5, 0xf1, 0xda, 0x13, 0x4a, 0xe4, 0xc2,
1304                0x2d, 0x52, 0xe9, 0x20,
1305            ],
1306            Elements::Divide32 => [
1307                0xab, 0x03, 0xac, 0xd8, 0x93, 0x61, 0x0c, 0x3c, 0x65, 0x82, 0xe7, 0xf7, 0xfb, 0xe5,
1308                0xe7, 0x56, 0x25, 0x74, 0xa7, 0xb2, 0x66, 0x46, 0xf1, 0xc2, 0xfd, 0xc6, 0xe7, 0x6e,
1309                0x44, 0x5a, 0x77, 0xa1,
1310            ],
1311            Elements::Divide64 => [
1312                0xeb, 0xfc, 0x56, 0xfb, 0xb8, 0xa4, 0x7e, 0x73, 0xff, 0xab, 0xb7, 0xea, 0x22, 0x8a,
1313                0xc7, 0x84, 0x37, 0xbe, 0x82, 0x0e, 0xdd, 0xfa, 0x47, 0x81, 0x4c, 0xce, 0xbd, 0x26,
1314                0x1b, 0xd8, 0xcf, 0xff,
1315            ],
1316            Elements::Divide8 => [
1317                0x2c, 0xcf, 0xbc, 0x7c, 0x02, 0xbf, 0x4d, 0x53, 0x04, 0x93, 0xbb, 0x22, 0x86, 0x7a,
1318                0x95, 0x1d, 0x8a, 0xe9, 0x13, 0x12, 0x66, 0x87, 0x59, 0x72, 0x84, 0xe9, 0xbb, 0xb3,
1319                0xe1, 0xe7, 0xe3, 0x49,
1320            ],
1321            Elements::Divides16 => [
1322                0x5f, 0xc3, 0xac, 0x38, 0x4d, 0x5f, 0x45, 0x40, 0x41, 0x56, 0x97, 0x1a, 0x76, 0x8d,
1323                0x93, 0xbc, 0x06, 0x4b, 0xc1, 0x7c, 0x15, 0xa3, 0x7c, 0x27, 0x01, 0x9d, 0xde, 0xef,
1324                0x17, 0x04, 0x6d, 0xd4,
1325            ],
1326            Elements::Divides32 => [
1327                0xcc, 0x45, 0xb4, 0x05, 0x24, 0x64, 0x38, 0xf7, 0x65, 0x74, 0x0b, 0x4f, 0xb0, 0xa3,
1328                0x4d, 0xc8, 0x1b, 0x34, 0x78, 0x01, 0x98, 0x86, 0x3b, 0x0f, 0xb1, 0x86, 0x44, 0x6a,
1329                0xdf, 0xbb, 0x09, 0xde,
1330            ],
1331            Elements::Divides64 => [
1332                0xdc, 0x47, 0x3b, 0xfd, 0xec, 0x30, 0xab, 0x98, 0xd4, 0x8c, 0xd0, 0x88, 0x84, 0xef,
1333                0x4f, 0xff, 0xef, 0x3d, 0x4b, 0x16, 0xad, 0x5c, 0x37, 0x11, 0x2a, 0x20, 0x35, 0xb9,
1334                0x9b, 0xb7, 0x74, 0x58,
1335            ],
1336            Elements::Divides8 => [
1337                0x0b, 0x55, 0x02, 0xac, 0x4f, 0x21, 0xf2, 0x30, 0xa0, 0x9c, 0xcf, 0xaf, 0xfa, 0xac,
1338                0x77, 0xa7, 0xc4, 0x1b, 0x2b, 0xf3, 0x0b, 0x14, 0x68, 0x48, 0x1e, 0x4d, 0xfb, 0x98,
1339                0xb6, 0x18, 0x7a, 0x0d,
1340            ],
1341            Elements::Eq1 => [
1342                0x60, 0x7f, 0x6b, 0x8f, 0x5d, 0x25, 0xb8, 0x0e, 0x05, 0xa2, 0xbf, 0x79, 0xd6, 0x2e,
1343                0x87, 0x07, 0x99, 0x52, 0x2c, 0xc3, 0xe3, 0x9c, 0xe9, 0x62, 0x57, 0x45, 0x52, 0x93,
1344                0xf9, 0xb2, 0xb2, 0xed,
1345            ],
1346            Elements::Eq16 => [
1347                0xc9, 0x96, 0xe4, 0x2b, 0x97, 0x9a, 0xbc, 0x53, 0x0c, 0xc2, 0x71, 0x63, 0x66, 0x71,
1348                0xe9, 0x20, 0x54, 0x87, 0x6a, 0x1e, 0xca, 0xed, 0x14, 0x33, 0xfd, 0x61, 0x9a, 0x25,
1349                0xfe, 0x6d, 0x03, 0xad,
1350            ],
1351            Elements::Eq256 => [
1352                0x77, 0x8d, 0x15, 0x06, 0xc7, 0x35, 0xd2, 0x77, 0x6b, 0x95, 0x0f, 0xac, 0xef, 0xc1,
1353                0x59, 0xb6, 0x78, 0xde, 0xc0, 0x38, 0x28, 0xcf, 0x02, 0x73, 0xee, 0xea, 0x64, 0xa9,
1354                0xda, 0x98, 0xc1, 0x2c,
1355            ],
1356            Elements::Eq32 => [
1357                0x66, 0xd3, 0x89, 0x03, 0xe7, 0x3b, 0x1a, 0x13, 0x20, 0xc6, 0x8a, 0x4a, 0x39, 0x70,
1358                0xd7, 0x1f, 0x94, 0xba, 0x9e, 0x2b, 0x15, 0x16, 0x83, 0x99, 0x43, 0xfb, 0x15, 0xe4,
1359                0x4e, 0xbf, 0x57, 0xfb,
1360            ],
1361            Elements::Eq64 => [
1362                0xd6, 0xa6, 0x66, 0xb4, 0xe0, 0xf9, 0xf5, 0x75, 0x50, 0x8d, 0xbf, 0x3b, 0x31, 0xce,
1363                0xea, 0x68, 0x39, 0x3c, 0x7d, 0xb2, 0xe9, 0x8b, 0xc5, 0x92, 0xfd, 0xd2, 0x6f, 0xae,
1364                0x83, 0x7a, 0x0b, 0x87,
1365            ],
1366            Elements::Eq8 => [
1367                0x99, 0x78, 0x7b, 0xa2, 0x67, 0x2d, 0xd0, 0xeb, 0x4d, 0x7d, 0x2e, 0xa9, 0x94, 0x49,
1368                0xde, 0x8f, 0x79, 0x8e, 0x7c, 0xb1, 0x81, 0xa5, 0xe1, 0x66, 0xe1, 0xa5, 0x3f, 0x98,
1369                0x02, 0xb6, 0x20, 0x64,
1370            ],
1371            Elements::FeAdd => [
1372                0xb0, 0x59, 0x3e, 0x18, 0x7e, 0xe7, 0x33, 0x3c, 0x47, 0xa0, 0x54, 0x67, 0xdf, 0x66,
1373                0xd5, 0x82, 0x0a, 0x6f, 0x5b, 0xef, 0x91, 0x4a, 0x4b, 0x76, 0xe5, 0xd1, 0x63, 0x31,
1374                0x4b, 0x5e, 0xf2, 0x0e,
1375            ],
1376            Elements::FeInvert => [
1377                0x34, 0x3e, 0x9c, 0x90, 0xf1, 0x28, 0x50, 0x60, 0x56, 0xb5, 0x48, 0xd2, 0xed, 0x5e,
1378                0x22, 0x3c, 0x81, 0xf5, 0xb0, 0x6a, 0x1e, 0xd8, 0x6b, 0x7c, 0xd9, 0x35, 0x40, 0x57,
1379                0xaa, 0x59, 0x51, 0x02,
1380            ],
1381            Elements::FeIsOdd => [
1382                0xdc, 0xf0, 0x37, 0x5d, 0x20, 0x81, 0x8a, 0x99, 0xf7, 0x23, 0xf8, 0x12, 0x3c, 0xbd,
1383                0x05, 0x1a, 0x38, 0x78, 0xa4, 0x28, 0x24, 0xb3, 0x74, 0x0f, 0x68, 0x21, 0xa5, 0xfa,
1384                0x12, 0x3f, 0x14, 0xc7,
1385            ],
1386            Elements::FeIsZero => [
1387                0x28, 0xff, 0x41, 0x69, 0x9a, 0x88, 0x1a, 0xaf, 0xb7, 0xa9, 0x76, 0xc0, 0xc5, 0x76,
1388                0x35, 0x3f, 0x7f, 0xe5, 0x44, 0x63, 0xb6, 0xaa, 0x75, 0x4c, 0xf2, 0xc6, 0x32, 0x9a,
1389                0xf2, 0x65, 0x0e, 0x3b,
1390            ],
1391            Elements::FeMultiply => [
1392                0x56, 0x69, 0x92, 0x9b, 0x5f, 0x31, 0xfa, 0x3d, 0x02, 0xc5, 0x83, 0x9d, 0xd0, 0x63,
1393                0x54, 0xcd, 0x17, 0x16, 0x35, 0xf3, 0xa0, 0x72, 0x7f, 0x32, 0x2a, 0xbf, 0xc9, 0x94,
1394                0xba, 0x62, 0x90, 0xde,
1395            ],
1396            Elements::FeMultiplyBeta => [
1397                0x7a, 0x78, 0x13, 0x45, 0x0d, 0x82, 0xe9, 0x35, 0x69, 0x0f, 0x43, 0x3e, 0x65, 0xdf,
1398                0x70, 0x7a, 0x4d, 0xd1, 0x75, 0x34, 0xa0, 0x0d, 0xdd, 0x40, 0xdd, 0x85, 0xe3, 0xe3,
1399                0xf7, 0x84, 0x02, 0xc3,
1400            ],
1401            Elements::FeNegate => [
1402                0x3b, 0x0d, 0x7b, 0x5c, 0x2e, 0x6c, 0x3a, 0xeb, 0x5e, 0x00, 0x08, 0x5b, 0x9d, 0x30,
1403                0x58, 0x5a, 0xff, 0x05, 0x4e, 0x32, 0x5a, 0x99, 0x83, 0x61, 0x11, 0x3b, 0xfd, 0x23,
1404                0x28, 0xc0, 0x08, 0xf6,
1405            ],
1406            Elements::FeNormalize => [
1407                0xc5, 0x1b, 0xef, 0xfa, 0x21, 0x5e, 0x9c, 0xde, 0x8e, 0x93, 0x3b, 0xb9, 0x46, 0x80,
1408                0xba, 0xe0, 0x12, 0xc4, 0xda, 0xab, 0x3d, 0x04, 0xb6, 0xcb, 0xf0, 0x73, 0x3f, 0xd7,
1409                0x35, 0x73, 0x35, 0x38,
1410            ],
1411            Elements::FeSquare => [
1412                0x5a, 0x6e, 0x7b, 0x2e, 0xac, 0x73, 0xf4, 0xe4, 0x4d, 0xfa, 0x28, 0xfb, 0x86, 0xbb,
1413                0x11, 0x7b, 0x65, 0x60, 0x6f, 0x28, 0x74, 0xd5, 0x65, 0xc9, 0x79, 0x9c, 0x63, 0xe0,
1414                0xfe, 0x69, 0x2b, 0x1a,
1415            ],
1416            Elements::FeSquareRoot => [
1417                0xe0, 0x01, 0x42, 0xea, 0x03, 0x09, 0x4a, 0x30, 0x4a, 0xc8, 0x2b, 0xc1, 0xe2, 0xd2,
1418                0xdc, 0x71, 0xfb, 0x06, 0x4e, 0xd0, 0x82, 0x85, 0x67, 0x35, 0xb1, 0x4f, 0xf2, 0xc7,
1419                0xfa, 0xf0, 0x36, 0xf0,
1420            ],
1421            Elements::FullAdd16 => [
1422                0xfc, 0x9e, 0x5d, 0xf8, 0x3b, 0xfd, 0xb9, 0x02, 0x8c, 0x87, 0xd1, 0x39, 0xf8, 0x58,
1423                0x39, 0x03, 0xcb, 0x2a, 0x07, 0x04, 0x2a, 0x73, 0xe5, 0x34, 0x81, 0xde, 0xb5, 0x2f,
1424                0xf1, 0xf1, 0xf8, 0x84,
1425            ],
1426            Elements::FullAdd32 => [
1427                0xa7, 0xd9, 0x8d, 0x50, 0xd0, 0x45, 0xcb, 0x90, 0x6b, 0x19, 0x5e, 0x65, 0x11, 0x87,
1428                0x94, 0x95, 0xc8, 0x51, 0x09, 0x59, 0x49, 0xa9, 0xc0, 0x1e, 0x60, 0x39, 0xa8, 0x4b,
1429                0x2a, 0x5e, 0xc9, 0x09,
1430            ],
1431            Elements::FullAdd64 => [
1432                0x7a, 0xec, 0xc8, 0xc9, 0x05, 0x3b, 0xb2, 0xfb, 0x17, 0x0c, 0x1c, 0x97, 0x2f, 0xd4,
1433                0x00, 0x25, 0x64, 0xe1, 0x52, 0xa0, 0x6d, 0x9f, 0x45, 0x80, 0x75, 0xe3, 0x8c, 0x7a,
1434                0x06, 0x98, 0xa7, 0xf4,
1435            ],
1436            Elements::FullAdd8 => [
1437                0xed, 0x3b, 0xa5, 0xb7, 0x9e, 0xa4, 0x5b, 0x18, 0x7a, 0x2d, 0x43, 0xe8, 0xed, 0x80,
1438                0x2d, 0xe1, 0xed, 0x44, 0x26, 0x59, 0x6c, 0xbe, 0x32, 0xe7, 0x57, 0xc8, 0x51, 0x19,
1439                0x15, 0xff, 0xa5, 0xcf,
1440            ],
1441            Elements::FullDecrement16 => [
1442                0xd4, 0xc2, 0xed, 0xda, 0x87, 0x2c, 0x05, 0x50, 0x6f, 0x79, 0x2c, 0xf5, 0x46, 0xa8,
1443                0x9d, 0x4d, 0x7c, 0xff, 0xcb, 0x1e, 0x17, 0xf5, 0xda, 0x61, 0x03, 0x10, 0x0e, 0x7e,
1444                0x73, 0xa7, 0x73, 0x7d,
1445            ],
1446            Elements::FullDecrement32 => [
1447                0x7c, 0xc2, 0x30, 0x4d, 0x17, 0x43, 0x12, 0x10, 0x2e, 0x9b, 0x73, 0x63, 0x45, 0xc7,
1448                0x7f, 0x77, 0x1d, 0x1f, 0x6a, 0x9c, 0x9e, 0x1d, 0x1c, 0xd8, 0xdb, 0x8c, 0xb4, 0x61,
1449                0x39, 0x80, 0xc8, 0xc2,
1450            ],
1451            Elements::FullDecrement64 => [
1452                0x15, 0xc1, 0x63, 0x45, 0x4b, 0xcd, 0x75, 0x44, 0x30, 0xda, 0x55, 0x79, 0xbb, 0xca,
1453                0xad, 0x26, 0xe5, 0x7e, 0x95, 0xc7, 0x72, 0x22, 0x4b, 0x7b, 0x83, 0xc7, 0x05, 0xf7,
1454                0xde, 0xb6, 0x4a, 0xa6,
1455            ],
1456            Elements::FullDecrement8 => [
1457                0x7c, 0x5e, 0x94, 0xa9, 0x98, 0x02, 0x81, 0x82, 0x17, 0x37, 0xb1, 0xce, 0x73, 0xbf,
1458                0xda, 0x4c, 0x79, 0xef, 0x64, 0x9b, 0x3d, 0x05, 0xcc, 0x1c, 0x00, 0xc4, 0xa8, 0xb6,
1459                0x4b, 0x94, 0x9b, 0xbe,
1460            ],
1461            Elements::FullIncrement16 => [
1462                0x81, 0x38, 0x0a, 0xda, 0xa3, 0xa5, 0x47, 0xf1, 0xbc, 0x4b, 0xbb, 0x64, 0x6b, 0xda,
1463                0x9d, 0x9f, 0xb7, 0xbd, 0x4d, 0xc1, 0xb3, 0xa9, 0xf3, 0xdd, 0x22, 0x0b, 0x56, 0xa4,
1464                0x7c, 0x27, 0x98, 0xfb,
1465            ],
1466            Elements::FullIncrement32 => [
1467                0xa7, 0x60, 0xa8, 0x44, 0x9a, 0x2a, 0xb5, 0xde, 0xdb, 0x4e, 0xe5, 0x1b, 0xf5, 0xc2,
1468                0x5a, 0x8f, 0x06, 0xaf, 0x06, 0x66, 0xdf, 0x7f, 0xc4, 0x19, 0xb4, 0x98, 0xb9, 0x09,
1469                0x76, 0xd6, 0x98, 0xcb,
1470            ],
1471            Elements::FullIncrement64 => [
1472                0xc6, 0xaf, 0x30, 0xdd, 0x28, 0x6d, 0x6e, 0x21, 0xc3, 0x88, 0x60, 0xed, 0x1e, 0x2f,
1473                0x21, 0x2a, 0x21, 0xb2, 0xfd, 0x1e, 0xde, 0xad, 0xb5, 0xe0, 0xfc, 0xe2, 0xe3, 0xfd,
1474                0x75, 0xb7, 0xf3, 0xc2,
1475            ],
1476            Elements::FullIncrement8 => [
1477                0xd3, 0x04, 0xea, 0x28, 0xa9, 0x5d, 0x49, 0x6d, 0x14, 0xb4, 0xf2, 0xfb, 0x5c, 0x86,
1478                0x03, 0x72, 0xec, 0xf2, 0x47, 0xbe, 0xfd, 0xe3, 0xea, 0x3b, 0x2a, 0xd6, 0x7b, 0xce,
1479                0x99, 0x03, 0x9d, 0xbc,
1480            ],
1481            Elements::FullLeftShift16_1 => [
1482                0x14, 0xdc, 0xc3, 0x46, 0x6f, 0xa8, 0x28, 0xa3, 0xf0, 0x74, 0x04, 0x51, 0xb8, 0x03,
1483                0x7d, 0x7a, 0xd6, 0x03, 0xea, 0xdc, 0x80, 0xaa, 0xea, 0xdc, 0x66, 0x44, 0x34, 0xac,
1484                0x2a, 0xd7, 0xfd, 0x9c,
1485            ],
1486            Elements::FullLeftShift16_2 => [
1487                0xaf, 0xb7, 0xe9, 0x28, 0xb0, 0x52, 0xc2, 0x28, 0x79, 0x21, 0x66, 0x2c, 0xd8, 0xab,
1488                0x12, 0x2f, 0xe0, 0x74, 0xef, 0xd2, 0x51, 0xa5, 0xc9, 0xcf, 0xbc, 0xaa, 0x36, 0x9d,
1489                0x06, 0x33, 0x73, 0x92,
1490            ],
1491            Elements::FullLeftShift16_4 => [
1492                0x16, 0x6f, 0x34, 0x8c, 0x59, 0xe2, 0x6f, 0x89, 0xa8, 0x3a, 0x99, 0x1f, 0x67, 0xe5,
1493                0xdb, 0xf7, 0x10, 0xcf, 0xae, 0x3d, 0x6d, 0x96, 0x93, 0x82, 0x82, 0xbb, 0x44, 0xc1,
1494                0xaf, 0xa7, 0x10, 0x9b,
1495            ],
1496            Elements::FullLeftShift16_8 => [
1497                0xc0, 0xcd, 0x01, 0x5d, 0xe8, 0xac, 0x4f, 0xcc, 0xd8, 0xdb, 0x89, 0xf4, 0xe5, 0x14,
1498                0x2f, 0xde, 0x27, 0x97, 0x55, 0xb5, 0x42, 0xa2, 0x4f, 0x57, 0xa2, 0xa3, 0xc7, 0xc1,
1499                0xf5, 0x0d, 0x1d, 0xb5,
1500            ],
1501            Elements::FullLeftShift32_1 => [
1502                0xce, 0x33, 0xb5, 0xd0, 0xc5, 0x8d, 0x2d, 0x0b, 0x9b, 0x5a, 0x99, 0x44, 0xd3, 0xda,
1503                0xbd, 0xa0, 0x23, 0xcd, 0x44, 0x64, 0x7b, 0xe6, 0x7c, 0xf4, 0x08, 0x28, 0x30, 0xbb,
1504                0x20, 0x5f, 0x8f, 0xbb,
1505            ],
1506            Elements::FullLeftShift32_16 => [
1507                0x1c, 0xb3, 0x6e, 0x6f, 0x99, 0x30, 0x85, 0x15, 0xd4, 0xb7, 0x11, 0x90, 0x9c, 0x57,
1508                0x4b, 0x21, 0x24, 0xc1, 0xff, 0x42, 0x2d, 0x8d, 0x7d, 0x94, 0x82, 0xe2, 0x5d, 0x87,
1509                0x88, 0xb3, 0xb9, 0x57,
1510            ],
1511            Elements::FullLeftShift32_2 => [
1512                0x3f, 0xae, 0xa9, 0xb5, 0x73, 0xfc, 0x06, 0x9d, 0x8f, 0x43, 0x0f, 0xac, 0xa8, 0x97,
1513                0xb6, 0x87, 0x1e, 0xa0, 0x95, 0x73, 0xc7, 0x15, 0x09, 0x4b, 0x1f, 0x1b, 0xe0, 0x81,
1514                0x84, 0x88, 0xa7, 0x16,
1515            ],
1516            Elements::FullLeftShift32_4 => [
1517                0xcd, 0xbb, 0x0d, 0x23, 0x31, 0x05, 0x90, 0x11, 0x3c, 0x93, 0x4f, 0xe6, 0x60, 0x04,
1518                0xd2, 0xa1, 0x1d, 0xa9, 0xcb, 0xf8, 0x87, 0x3d, 0x00, 0xde, 0xe7, 0xf0, 0x22, 0x96,
1519                0xff, 0x0a, 0x2f, 0x12,
1520            ],
1521            Elements::FullLeftShift32_8 => [
1522                0xcc, 0xd9, 0x24, 0xe1, 0xa6, 0x18, 0x49, 0x42, 0x0f, 0xf6, 0x2e, 0xd8, 0xb2, 0x45,
1523                0xa3, 0xaa, 0x18, 0xc9, 0x8c, 0x41, 0xf9, 0xc5, 0xa3, 0xc0, 0xb8, 0x85, 0x86, 0x3c,
1524                0x44, 0x9b, 0x7d, 0x14,
1525            ],
1526            Elements::FullLeftShift64_1 => [
1527                0xd4, 0x63, 0xcc, 0xdc, 0x7f, 0xd1, 0x4e, 0x5e, 0x89, 0x41, 0x62, 0xb2, 0xae, 0x71,
1528                0x41, 0x28, 0xa1, 0x0d, 0xc9, 0x20, 0x00, 0xb5, 0x4c, 0x84, 0x3b, 0x64, 0x9c, 0xcb,
1529                0x77, 0x56, 0x26, 0xe5,
1530            ],
1531            Elements::FullLeftShift64_16 => [
1532                0x88, 0x2d, 0xce, 0x21, 0x2a, 0x0e, 0x61, 0xf8, 0xf9, 0x4c, 0xb5, 0xe3, 0x2e, 0x00,
1533                0xa5, 0x28, 0x7c, 0xf6, 0x4f, 0x20, 0xc2, 0x1f, 0xca, 0x84, 0xf1, 0xe3, 0xdf, 0x7f,
1534                0x4a, 0x62, 0x91, 0xcd,
1535            ],
1536            Elements::FullLeftShift64_2 => [
1537                0x48, 0xc8, 0x9b, 0x19, 0x1a, 0x51, 0xb6, 0xab, 0x03, 0x4c, 0x80, 0xea, 0xff, 0x34,
1538                0x82, 0x38, 0xd9, 0x3f, 0xb3, 0x1c, 0x1e, 0x92, 0xe7, 0xf2, 0xae, 0x49, 0x31, 0x7e,
1539                0x0e, 0x33, 0xf8, 0x2d,
1540            ],
1541            Elements::FullLeftShift64_32 => [
1542                0x39, 0x75, 0x90, 0x73, 0x33, 0xe1, 0x27, 0x30, 0x62, 0x55, 0xb7, 0xf8, 0x89, 0x39,
1543                0xe2, 0x85, 0x7f, 0x42, 0xae, 0x1b, 0xf0, 0xc6, 0x62, 0x40, 0xa8, 0x22, 0x4c, 0x8d,
1544                0xa3, 0x8b, 0xb1, 0xbe,
1545            ],
1546            Elements::FullLeftShift64_4 => [
1547                0x29, 0x31, 0x32, 0xeb, 0x15, 0xdd, 0xf4, 0x17, 0x74, 0xb0, 0x00, 0x5a, 0x3b, 0x5c,
1548                0x50, 0x95, 0x9f, 0xa8, 0x98, 0x2b, 0x75, 0x9e, 0x83, 0x28, 0x27, 0xc7, 0x4f, 0xa8,
1549                0x28, 0x50, 0x66, 0x6c,
1550            ],
1551            Elements::FullLeftShift64_8 => [
1552                0xe6, 0xab, 0xde, 0xd8, 0xbe, 0x58, 0x5e, 0xb0, 0xb6, 0xd4, 0x6e, 0x0c, 0x5e, 0xb2,
1553                0x8a, 0x74, 0x5f, 0x4e, 0x5c, 0x56, 0xfd, 0x65, 0x21, 0xf8, 0xf3, 0x96, 0xcb, 0x21,
1554                0xa7, 0x58, 0xf7, 0x4c,
1555            ],
1556            Elements::FullLeftShift8_1 => [
1557                0x73, 0x3f, 0xed, 0x08, 0x47, 0xa2, 0xff, 0xac, 0x9a, 0xab, 0xf5, 0x0a, 0x2f, 0xeb,
1558                0x50, 0x59, 0x89, 0x84, 0xf1, 0x6d, 0x8b, 0x73, 0x24, 0x68, 0xb3, 0xd3, 0x15, 0xc0,
1559                0x1e, 0xa4, 0x29, 0x9b,
1560            ],
1561            Elements::FullLeftShift8_2 => [
1562                0xb4, 0x47, 0x4d, 0x0b, 0xa1, 0xcf, 0x4f, 0xa2, 0xd6, 0x4c, 0xd4, 0xfe, 0x67, 0xbd,
1563                0xc9, 0x2c, 0xb8, 0x9e, 0xfa, 0x70, 0xcb, 0x99, 0xaf, 0x77, 0x91, 0xbf, 0x7e, 0xf6,
1564                0xe9, 0x09, 0xd2, 0xc7,
1565            ],
1566            Elements::FullLeftShift8_4 => [
1567                0x8e, 0xb5, 0x22, 0xb9, 0x97, 0x04, 0x74, 0xad, 0xbb, 0x7a, 0xb0, 0xde, 0x37, 0xc4,
1568                0xe7, 0xa0, 0x56, 0xa1, 0xcb, 0x21, 0x2e, 0x41, 0x03, 0xe4, 0xa8, 0xcb, 0xbb, 0xb6,
1569                0x3d, 0x97, 0x56, 0x06,
1570            ],
1571            Elements::FullMultiply16 => [
1572                0x88, 0x47, 0x0c, 0xbf, 0x9b, 0x4d, 0xec, 0x37, 0xea, 0x05, 0xd7, 0xb6, 0x30, 0xf2,
1573                0xf1, 0x12, 0x54, 0x75, 0x67, 0xd3, 0x4f, 0x33, 0xd9, 0x6e, 0x5f, 0x61, 0x1b, 0xd9,
1574                0xda, 0x97, 0xab, 0xb5,
1575            ],
1576            Elements::FullMultiply32 => [
1577                0x28, 0x04, 0x06, 0x00, 0xa6, 0x6e, 0x1a, 0x0c, 0x52, 0x25, 0x85, 0x20, 0x48, 0x8b,
1578                0x94, 0xc8, 0x20, 0xc6, 0xcf, 0x86, 0xca, 0x27, 0xae, 0x39, 0x03, 0x4d, 0xdd, 0xca,
1579                0xb9, 0x04, 0xd1, 0xd5,
1580            ],
1581            Elements::FullMultiply64 => [
1582                0x53, 0x01, 0x4f, 0x35, 0xa8, 0xdf, 0x20, 0x91, 0xaf, 0x3e, 0xf9, 0xb8, 0xd1, 0x6b,
1583                0x38, 0xb9, 0xbc, 0x96, 0x61, 0xbf, 0xdb, 0xc9, 0x57, 0x33, 0x3f, 0xba, 0x2a, 0x94,
1584                0x8c, 0x1e, 0x8c, 0x25,
1585            ],
1586            Elements::FullMultiply8 => [
1587                0xd3, 0xd2, 0x45, 0x54, 0xc4, 0x66, 0xdd, 0x60, 0x37, 0x54, 0x52, 0x47, 0x36, 0xa7,
1588                0x1e, 0xb2, 0x35, 0xde, 0xf9, 0xb5, 0x06, 0x96, 0x5e, 0x32, 0xd5, 0x68, 0x26, 0xe1,
1589                0x9f, 0xba, 0xd6, 0xc1,
1590            ],
1591            Elements::FullRightShift16_1 => [
1592                0xb3, 0x79, 0xe2, 0x96, 0xe9, 0xa9, 0x8f, 0xb3, 0xb5, 0x66, 0x2b, 0x8b, 0xa0, 0x4e,
1593                0x3c, 0xc1, 0xa4, 0x3c, 0x74, 0x42, 0x9e, 0x93, 0x12, 0x33, 0xfd, 0xd7, 0xfc, 0x8f,
1594                0xe6, 0xb7, 0xa2, 0xe0,
1595            ],
1596            Elements::FullRightShift16_2 => [
1597                0xae, 0xb8, 0xc6, 0x08, 0x06, 0xa4, 0x79, 0x20, 0x77, 0x58, 0xe3, 0x90, 0x83, 0xb4,
1598                0xa9, 0xa7, 0xa1, 0x4d, 0xa4, 0xee, 0x9b, 0xc1, 0x09, 0x7f, 0xc5, 0xcb, 0x4b, 0x75,
1599                0x54, 0x0d, 0x75, 0x78,
1600            ],
1601            Elements::FullRightShift16_4 => [
1602                0x60, 0xb7, 0xf0, 0x84, 0x75, 0xcc, 0x0c, 0xce, 0x64, 0xdc, 0xa1, 0x2d, 0x9f, 0x6a,
1603                0x91, 0x9c, 0x30, 0x61, 0x81, 0x10, 0xed, 0xa1, 0x40, 0x65, 0x92, 0x9c, 0x00, 0x4e,
1604                0x7f, 0xc1, 0xb0, 0xfb,
1605            ],
1606            Elements::FullRightShift16_8 => [
1607                0xf7, 0x9d, 0xba, 0x3e, 0x0a, 0xf3, 0xd6, 0xa5, 0x59, 0xa9, 0xe9, 0xdf, 0xfe, 0xa7,
1608                0x10, 0xaf, 0x62, 0x3f, 0xe6, 0xe6, 0x64, 0x4b, 0x89, 0x79, 0x95, 0xd7, 0x1b, 0x8a,
1609                0x41, 0x67, 0xdd, 0xb0,
1610            ],
1611            Elements::FullRightShift32_1 => [
1612                0xad, 0x0d, 0x5c, 0x75, 0xea, 0x68, 0x43, 0x71, 0x91, 0x77, 0x0d, 0x7f, 0xdf, 0x80,
1613                0x4b, 0xbc, 0x9d, 0x57, 0x3d, 0x5f, 0x10, 0x19, 0x98, 0x23, 0xd8, 0x09, 0xc9, 0xc4,
1614                0x6c, 0xd2, 0x75, 0xad,
1615            ],
1616            Elements::FullRightShift32_16 => [
1617                0x45, 0x52, 0x99, 0xfd, 0x6f, 0x42, 0xab, 0x49, 0xdb, 0xb7, 0x09, 0xe6, 0x5a, 0x3b,
1618                0x53, 0x66, 0x25, 0x0b, 0xdc, 0x54, 0x5d, 0x62, 0x29, 0xe8, 0xe2, 0x36, 0x05, 0x6d,
1619                0xdd, 0x19, 0x77, 0xfd,
1620            ],
1621            Elements::FullRightShift32_2 => [
1622                0x44, 0x38, 0x4b, 0x15, 0x06, 0xd4, 0x43, 0xd2, 0xf8, 0xa2, 0x88, 0x2b, 0x45, 0x63,
1623                0xd7, 0x93, 0x1a, 0x7e, 0xbc, 0xe6, 0x4a, 0xcf, 0x0d, 0x02, 0xee, 0x59, 0xec, 0x69,
1624                0xd3, 0x06, 0x52, 0x39,
1625            ],
1626            Elements::FullRightShift32_4 => [
1627                0x2e, 0x9a, 0x8a, 0xb5, 0xa1, 0x81, 0x7b, 0xd0, 0xb8, 0xa4, 0x66, 0x26, 0x99, 0x49,
1628                0x17, 0xa0, 0xde, 0x1a, 0x74, 0x5e, 0x99, 0x52, 0x0c, 0xe6, 0xeb, 0xcc, 0x67, 0xd4,
1629                0x63, 0x65, 0x51, 0xb7,
1630            ],
1631            Elements::FullRightShift32_8 => [
1632                0xaf, 0x47, 0xd4, 0xf9, 0x6e, 0x7d, 0x80, 0x26, 0xd4, 0x4e, 0x6e, 0xca, 0x1b, 0x80,
1633                0x7f, 0x73, 0x34, 0x4c, 0xe2, 0xea, 0xf7, 0x00, 0xb2, 0xc8, 0x2b, 0x4b, 0xb0, 0x02,
1634                0x61, 0xa8, 0x6f, 0x94,
1635            ],
1636            Elements::FullRightShift64_1 => [
1637                0x03, 0xaf, 0xb5, 0x47, 0xc3, 0x09, 0x13, 0xf1, 0x6f, 0x3e, 0x37, 0x0d, 0x7f, 0x9c,
1638                0xa0, 0x29, 0x0b, 0x61, 0x5b, 0x42, 0x85, 0x05, 0x1b, 0xb9, 0x3c, 0x3c, 0x1a, 0x9b,
1639                0x72, 0xee, 0x8d, 0xe4,
1640            ],
1641            Elements::FullRightShift64_16 => [
1642                0x1f, 0xb0, 0x56, 0xfc, 0xb6, 0x90, 0xce, 0xe3, 0xcf, 0xf7, 0x2c, 0x7d, 0xec, 0xda,
1643                0x80, 0x6d, 0x21, 0x46, 0xc4, 0x92, 0xae, 0x73, 0x1a, 0x6b, 0x94, 0xb8, 0xbb, 0x4f,
1644                0x15, 0x99, 0xb0, 0xcc,
1645            ],
1646            Elements::FullRightShift64_2 => [
1647                0x06, 0x73, 0xbf, 0xf2, 0x1e, 0x37, 0x5e, 0x5d, 0xbc, 0xaf, 0x38, 0x04, 0x66, 0x48,
1648                0x25, 0xdd, 0x67, 0x48, 0x44, 0xd2, 0xfd, 0xb7, 0x84, 0xa4, 0xfe, 0xfb, 0xc9, 0x25,
1649                0xcf, 0x6b, 0x27, 0xad,
1650            ],
1651            Elements::FullRightShift64_32 => [
1652                0x35, 0x6f, 0x7d, 0xd4, 0x6b, 0xa3, 0x3f, 0x84, 0xb0, 0x66, 0x72, 0xfd, 0xe9, 0xa2,
1653                0x97, 0x2e, 0x80, 0xf3, 0xea, 0x96, 0x5a, 0xe8, 0xbc, 0x0b, 0xff, 0x67, 0xaa, 0x2f,
1654                0x69, 0xf1, 0x0b, 0x56,
1655            ],
1656            Elements::FullRightShift64_4 => [
1657                0x4c, 0x25, 0xf6, 0x01, 0x1f, 0xd3, 0xd1, 0xac, 0x18, 0xe1, 0x1e, 0xb4, 0x30, 0x61,
1658                0xfa, 0xd6, 0x9f, 0x3c, 0xe3, 0x9f, 0x7a, 0x99, 0xce, 0xde, 0x50, 0xcc, 0x85, 0xbf,
1659                0x88, 0xbf, 0xba, 0x82,
1660            ],
1661            Elements::FullRightShift64_8 => [
1662                0xa5, 0x1d, 0xf9, 0x44, 0x86, 0x02, 0xfa, 0x81, 0x00, 0x1a, 0xa1, 0xb5, 0xb1, 0x3b,
1663                0xe8, 0x8d, 0x4b, 0x2f, 0x4d, 0x0f, 0x60, 0x74, 0x08, 0x01, 0xce, 0xf9, 0x91, 0x00,
1664                0x2f, 0xe3, 0x7d, 0x6d,
1665            ],
1666            Elements::FullRightShift8_1 => [
1667                0xd9, 0xd4, 0xb1, 0x6d, 0x37, 0xe4, 0xeb, 0x5c, 0xc5, 0x15, 0x04, 0x26, 0xe3, 0xe8,
1668                0x6c, 0xf6, 0x0a, 0xbb, 0xdf, 0xa1, 0xd0, 0xec, 0xb4, 0x15, 0x82, 0x96, 0x5e, 0x80,
1669                0x00, 0xcb, 0xd2, 0x91,
1670            ],
1671            Elements::FullRightShift8_2 => [
1672                0x07, 0x9a, 0xa1, 0x66, 0x17, 0x19, 0x8a, 0xd5, 0xdf, 0x2c, 0x98, 0xa6, 0x3a, 0xf7,
1673                0x6c, 0x1b, 0x3e, 0x12, 0x0f, 0xd2, 0x10, 0x6b, 0x22, 0x5f, 0x63, 0xfd, 0x06, 0xac,
1674                0x57, 0x1d, 0x04, 0xa4,
1675            ],
1676            Elements::FullRightShift8_4 => [
1677                0x9d, 0x9d, 0x3f, 0x63, 0x8a, 0x84, 0x63, 0x86, 0xa2, 0x1e, 0x71, 0x5f, 0x39, 0x46,
1678                0x16, 0x86, 0x4a, 0x2e, 0xf7, 0x98, 0x4a, 0x88, 0xcd, 0x95, 0x50, 0x55, 0x66, 0x29,
1679                0x7b, 0xe7, 0xe0, 0x6c,
1680            ],
1681            Elements::FullSubtract16 => [
1682                0x1f, 0xc8, 0x8e, 0x23, 0x29, 0xf4, 0xaa, 0xf1, 0x2b, 0x30, 0x51, 0x3f, 0x7a, 0x21,
1683                0xcf, 0x5d, 0x8d, 0xe2, 0x4b, 0x60, 0x0a, 0x19, 0xa2, 0x17, 0x41, 0x28, 0x1b, 0x4d,
1684                0x61, 0xaa, 0xc6, 0x33,
1685            ],
1686            Elements::FullSubtract32 => [
1687                0x78, 0x27, 0x05, 0xfb, 0x42, 0xe3, 0x6a, 0x7e, 0xf8, 0x31, 0x20, 0x0c, 0x61, 0x77,
1688                0x38, 0xd3, 0x1e, 0x13, 0xb1, 0xd0, 0xe7, 0xce, 0xed, 0x69, 0x3f, 0x13, 0x33, 0x88,
1689                0x35, 0xb3, 0x0a, 0xcb,
1690            ],
1691            Elements::FullSubtract64 => [
1692                0xb2, 0x85, 0x6a, 0x91, 0x80, 0x23, 0x1b, 0xee, 0x3c, 0xb8, 0x92, 0x30, 0xf7, 0x5c,
1693                0x29, 0x2a, 0xf3, 0xe7, 0x52, 0x39, 0xdb, 0xeb, 0x39, 0x65, 0x48, 0x44, 0x1e, 0x6b,
1694                0x5a, 0x27, 0xe8, 0x13,
1695            ],
1696            Elements::FullSubtract8 => [
1697                0x68, 0x85, 0xe1, 0x41, 0xae, 0x23, 0x4c, 0x1e, 0x2a, 0x7e, 0x4f, 0x23, 0x52, 0x98,
1698                0x93, 0x90, 0x36, 0x96, 0x9c, 0x95, 0x0f, 0x2c, 0xef, 0xd4, 0x59, 0xb4, 0x98, 0xac,
1699                0x3d, 0xd8, 0x92, 0x20,
1700            ],
1701            Elements::GeIsOnCurve => [
1702                0x69, 0xf0, 0xe7, 0xa0, 0xc5, 0xff, 0xf8, 0x70, 0x84, 0xed, 0x69, 0x25, 0xf8, 0xdb,
1703                0x76, 0x2e, 0x41, 0x9e, 0x05, 0x7b, 0x96, 0x83, 0x4d, 0xce, 0x96, 0x99, 0xb0, 0xb0,
1704                0x09, 0x42, 0x30, 0x59,
1705            ],
1706            Elements::GeNegate => [
1707                0x1e, 0xd0, 0xce, 0xd8, 0xdd, 0x25, 0x58, 0xe3, 0x48, 0x5f, 0x6f, 0xc3, 0x2d, 0x69,
1708                0xa2, 0x40, 0x5e, 0xca, 0xee, 0x31, 0x2d, 0xc4, 0xdc, 0x65, 0xe0, 0xfd, 0x34, 0x77,
1709                0x73, 0xf5, 0x98, 0x3d,
1710            ],
1711            Elements::GejAdd => [
1712                0x5a, 0x1c, 0x31, 0x03, 0x49, 0xe8, 0xff, 0x5c, 0x5a, 0x61, 0xac, 0x3e, 0x10, 0x12,
1713                0x3f, 0x74, 0xe8, 0x7f, 0xab, 0xa1, 0x4c, 0x78, 0xbc, 0x83, 0xf9, 0xe3, 0x41, 0x36,
1714                0x87, 0xec, 0xf2, 0x8b,
1715            ],
1716            Elements::GejDouble => [
1717                0x1e, 0xdd, 0x05, 0x82, 0xe2, 0xfc, 0xad, 0x99, 0xb1, 0x2d, 0x50, 0x6d, 0x29, 0xb5,
1718                0x0a, 0x63, 0x01, 0x7f, 0x67, 0x69, 0x28, 0xbe, 0x51, 0x13, 0x69, 0x00, 0x6e, 0x07,
1719                0xcb, 0x80, 0xd9, 0x82,
1720            ],
1721            Elements::GejEquiv => [
1722                0x02, 0x74, 0x71, 0x05, 0x94, 0x87, 0xa1, 0x2c, 0xa2, 0x07, 0xf0, 0x94, 0x05, 0x94,
1723                0xd6, 0xcd, 0x87, 0xfc, 0x93, 0x0a, 0x8b, 0x5b, 0x31, 0x43, 0x4a, 0x16, 0xa2, 0xd6,
1724                0x7f, 0x1d, 0x8d, 0xd4,
1725            ],
1726            Elements::GejGeAdd => [
1727                0x1e, 0xa7, 0x10, 0xd5, 0x6e, 0xaf, 0xee, 0x32, 0x5d, 0x26, 0x07, 0xdd, 0xb4, 0x5f,
1728                0xf0, 0x17, 0x0a, 0xde, 0xc2, 0xe0, 0xee, 0x9b, 0xcc, 0x68, 0xe4, 0xb9, 0x3e, 0x1d,
1729                0xe6, 0xad, 0x35, 0x68,
1730            ],
1731            Elements::GejGeAddEx => [
1732                0x78, 0xf0, 0x87, 0x1b, 0x81, 0x73, 0xab, 0xde, 0x71, 0x87, 0x11, 0x26, 0x3b, 0x3a,
1733                0xc1, 0xd9, 0x22, 0x33, 0x7e, 0xd5, 0xed, 0x13, 0x8d, 0x29, 0x49, 0x62, 0xd6, 0x5c,
1734                0xe5, 0x59, 0xbd, 0x92,
1735            ],
1736            Elements::GejGeEquiv => [
1737                0xba, 0x89, 0x9a, 0x00, 0x62, 0x16, 0xd1, 0xc9, 0x3b, 0xd5, 0xec, 0xbe, 0x00, 0x80,
1738                0xd9, 0x07, 0x8a, 0x50, 0x0a, 0x72, 0x9b, 0xbd, 0x39, 0x6a, 0x00, 0x4a, 0xf5, 0x1d,
1739                0x4f, 0xf7, 0xd9, 0x3a,
1740            ],
1741            Elements::GejInfinity => [
1742                0x88, 0xa9, 0x52, 0xdb, 0x38, 0x16, 0xe9, 0x42, 0x59, 0xa6, 0x75, 0x37, 0xfa, 0x8f,
1743                0xca, 0x1a, 0x35, 0xa9, 0x07, 0xa8, 0x6f, 0x51, 0xed, 0xe4, 0x51, 0xfd, 0x32, 0xec,
1744                0x25, 0x3d, 0x9c, 0x62,
1745            ],
1746            Elements::GejIsInfinity => [
1747                0x29, 0x80, 0xa7, 0x35, 0x41, 0x4e, 0x43, 0x21, 0xaf, 0xef, 0xfe, 0xfa, 0x88, 0x37,
1748                0xed, 0xb0, 0xa3, 0x30, 0x9a, 0x33, 0x7d, 0x59, 0xb7, 0xbd, 0xea, 0x92, 0x1c, 0x13,
1749                0x05, 0x6b, 0x04, 0x28,
1750            ],
1751            Elements::GejIsOnCurve => [
1752                0x01, 0x87, 0xe1, 0xe5, 0xef, 0x76, 0x34, 0xa5, 0xf0, 0x16, 0x12, 0x4d, 0x4f, 0xeb,
1753                0x5a, 0x93, 0xdd, 0xe6, 0xaa, 0x78, 0x17, 0x6c, 0xda, 0x48, 0xb1, 0x65, 0xa9, 0xaa,
1754                0x8e, 0x04, 0x49, 0xf2,
1755            ],
1756            Elements::GejNegate => [
1757                0xb3, 0x2c, 0x74, 0xca, 0xb2, 0xc7, 0x50, 0x0b, 0x73, 0xf8, 0xec, 0x05, 0x60, 0xfe,
1758                0x23, 0xfc, 0x4c, 0x21, 0xaa, 0x66, 0x59, 0x6d, 0x7f, 0x2a, 0xcf, 0x49, 0x67, 0x88,
1759                0x6b, 0x76, 0xd8, 0x56,
1760            ],
1761            Elements::GejNormalize => [
1762                0x5d, 0xe0, 0x97, 0x6a, 0xe7, 0xf3, 0x8b, 0x36, 0xf0, 0x02, 0x28, 0x14, 0x96, 0x6d,
1763                0xb2, 0xba, 0xed, 0x5c, 0x47, 0x67, 0x14, 0x94, 0x4d, 0x74, 0x1a, 0x89, 0x79, 0xc4,
1764                0xbc, 0xf8, 0xbe, 0x25,
1765            ],
1766            Elements::GejRescale => [
1767                0xdc, 0xfc, 0x72, 0xa7, 0x68, 0xd5, 0xbe, 0x77, 0x0f, 0x8d, 0xb2, 0x78, 0xae, 0xaf,
1768                0xd1, 0x8e, 0x27, 0x70, 0x4c, 0x64, 0xf8, 0xb4, 0x0f, 0xa6, 0xfe, 0x54, 0xca, 0x94,
1769                0x72, 0x7a, 0x07, 0x6e,
1770            ],
1771            Elements::GejXEquiv => [
1772                0x52, 0xcc, 0x21, 0x47, 0x09, 0xc0, 0xd9, 0xfc, 0xa9, 0xdb, 0x1d, 0x09, 0xcc, 0x80,
1773                0x7c, 0x75, 0xcf, 0x5a, 0x63, 0x13, 0xca, 0x54, 0x0a, 0x77, 0x2d, 0x4e, 0xa9, 0x92,
1774                0x1f, 0x37, 0xe6, 0x24,
1775            ],
1776            Elements::GejYIsOdd => [
1777                0xfe, 0x01, 0x06, 0xaf, 0xb9, 0xd9, 0xe2, 0x4f, 0xd4, 0xdb, 0xe5, 0x45, 0x11, 0xfe,
1778                0x27, 0x2f, 0x4d, 0xcb, 0x30, 0x7a, 0x0e, 0xa5, 0x6d, 0x59, 0x1c, 0xeb, 0x93, 0xab,
1779                0x4b, 0xf8, 0x87, 0x45,
1780            ],
1781            Elements::Generate => [
1782                0xdf, 0x44, 0xe1, 0x7d, 0x2a, 0x55, 0x9d, 0xd0, 0xa7, 0x03, 0x49, 0x54, 0xab, 0x33,
1783                0x37, 0x77, 0x78, 0xb1, 0x51, 0xf1, 0xcd, 0x1e, 0x4f, 0x9f, 0xd3, 0x1b, 0x36, 0x1d,
1784                0x34, 0xa8, 0xd9, 0x73,
1785            ],
1786            Elements::GenesisBlockHash => [
1787                0x00, 0x60, 0xb6, 0x0d, 0x02, 0xb1, 0x33, 0x60, 0x72, 0x84, 0x6a, 0xcf, 0xf4, 0x4d,
1788                0xd0, 0xf4, 0x34, 0x6c, 0x74, 0xa3, 0x5e, 0x7b, 0x56, 0x42, 0x3f, 0x95, 0x19, 0xc4,
1789                0x42, 0xd1, 0x5d, 0xaf,
1790            ],
1791            Elements::HashToCurve => [
1792                0x76, 0xf7, 0xca, 0x1d, 0xb9, 0x44, 0xee, 0x31, 0x5e, 0xd3, 0x62, 0xfe, 0xe0, 0x67,
1793                0x3c, 0x58, 0x94, 0xf8, 0x85, 0x3b, 0x44, 0x60, 0x70, 0x90, 0x1b, 0x85, 0x79, 0x01,
1794                0xf9, 0x49, 0x9d, 0x9b,
1795            ],
1796            Elements::High1 => [
1797                0xc3, 0x2d, 0x87, 0x7e, 0x67, 0x0d, 0x6c, 0x03, 0x7c, 0xb3, 0x35, 0x33, 0x28, 0x9e,
1798                0x19, 0xa7, 0x24, 0xc3, 0x68, 0xaa, 0x75, 0x51, 0xda, 0xa6, 0xd2, 0xda, 0xcc, 0xcd,
1799                0x8c, 0x95, 0xf4, 0xd0,
1800            ],
1801            Elements::High16 => [
1802                0x41, 0x64, 0xab, 0x6e, 0x2f, 0xf8, 0xee, 0xf6, 0x3c, 0x06, 0xc0, 0x80, 0xf1, 0xde,
1803                0xc6, 0x97, 0x0b, 0x4c, 0x5c, 0x31, 0xc0, 0x23, 0x05, 0xab, 0xcc, 0xd8, 0xed, 0x2c,
1804                0x5e, 0x1c, 0x45, 0xce,
1805            ],
1806            Elements::High32 => [
1807                0xd3, 0xa7, 0xce, 0x9c, 0xd5, 0xd5, 0xfb, 0x67, 0x9a, 0x98, 0xef, 0x57, 0xb8, 0x63,
1808                0x22, 0x77, 0x0c, 0xb6, 0x6f, 0xb6, 0xf0, 0x61, 0x6e, 0x16, 0x34, 0xcf, 0xa8, 0x4c,
1809                0x8f, 0x68, 0x09, 0xc6,
1810            ],
1811            Elements::High64 => [
1812                0x4a, 0xf9, 0x1f, 0xaf, 0x8e, 0x39, 0xf4, 0xda, 0x7c, 0x28, 0xa8, 0x79, 0x65, 0x94,
1813                0xa9, 0x22, 0x82, 0x13, 0xd7, 0x32, 0x3e, 0xea, 0x2c, 0xa6, 0x30, 0x75, 0x2c, 0xe4,
1814                0xc5, 0x7f, 0x16, 0xe1,
1815            ],
1816            Elements::High8 => [
1817                0xcb, 0xd7, 0x8d, 0x50, 0xaf, 0x77, 0x99, 0x85, 0x5a, 0xdc, 0x49, 0x03, 0xdb, 0xbe,
1818                0xfc, 0x13, 0x45, 0xd5, 0x14, 0x84, 0xf0, 0x3d, 0x3c, 0x75, 0x5c, 0xaa, 0xa5, 0xca,
1819                0xa9, 0x7d, 0x4a, 0x14,
1820            ],
1821            Elements::Increment16 => [
1822                0xdf, 0x27, 0x48, 0x88, 0xce, 0x4c, 0xeb, 0xdd, 0x57, 0x08, 0xb3, 0x8d, 0xc3, 0xdb,
1823                0xb1, 0x9c, 0xc2, 0xf0, 0x36, 0x4b, 0x24, 0x63, 0xe9, 0x9c, 0xf5, 0xaa, 0xb4, 0xf8,
1824                0xa2, 0x3e, 0xa5, 0x8a,
1825            ],
1826            Elements::Increment32 => [
1827                0x54, 0xf7, 0x57, 0xae, 0xa7, 0x6b, 0xc7, 0xa3, 0x9f, 0xc4, 0x3d, 0x19, 0xb8, 0xdd,
1828                0x56, 0x3a, 0x68, 0x07, 0xdf, 0x02, 0x77, 0xa5, 0x6f, 0xcb, 0x50, 0x10, 0x89, 0xce,
1829                0x7d, 0x06, 0x77, 0x4c,
1830            ],
1831            Elements::Increment64 => [
1832                0x79, 0xed, 0x5f, 0x77, 0x99, 0xfb, 0x09, 0xda, 0x51, 0x04, 0x29, 0xa2, 0x01, 0x28,
1833                0xbe, 0xd0, 0x91, 0xd8, 0x58, 0x76, 0x47, 0x07, 0x12, 0x85, 0xcd, 0xec, 0x3a, 0x0c,
1834                0x95, 0x70, 0x9e, 0x5b,
1835            ],
1836            Elements::Increment8 => [
1837                0x0c, 0x71, 0x7e, 0x84, 0xdf, 0x67, 0x82, 0x3f, 0x57, 0x41, 0xb3, 0xd5, 0x5d, 0xbe,
1838                0xb4, 0x72, 0x9c, 0x2b, 0xd6, 0x2f, 0x5d, 0x1d, 0xef, 0x3c, 0xab, 0xcc, 0xdd, 0x6c,
1839                0xb8, 0xdc, 0xb5, 0x6c,
1840            ],
1841            Elements::InputAmount => [
1842                0xdd, 0x65, 0xac, 0x32, 0xc8, 0x7d, 0x99, 0x6b, 0x40, 0x72, 0x00, 0xfe, 0xef, 0xc4,
1843                0x79, 0xa9, 0x11, 0x9c, 0x1f, 0x28, 0xca, 0xa4, 0x88, 0xb0, 0xaa, 0xc3, 0xac, 0xf5,
1844                0x93, 0x78, 0xd6, 0xba,
1845            ],
1846            Elements::InputAmountsHash => [
1847                0x2b, 0x4d, 0xf4, 0x7e, 0x75, 0x8f, 0xfe, 0x88, 0xe9, 0xcd, 0x5d, 0x39, 0x6d, 0xf3,
1848                0xd7, 0xf9, 0xec, 0x2f, 0xbd, 0x5a, 0x53, 0x95, 0xa6, 0xd8, 0xc1, 0xab, 0x70, 0x44,
1849                0x00, 0xc6, 0x4f, 0x70,
1850            ],
1851            Elements::InputAnnexHash => [
1852                0x0f, 0xd9, 0xe4, 0xc6, 0x31, 0x6b, 0x37, 0x28, 0x6e, 0x88, 0x54, 0x43, 0x0e, 0x7d,
1853                0x74, 0x18, 0x21, 0xdc, 0x89, 0x54, 0x4a, 0x3a, 0x59, 0xf0, 0x3d, 0xfa, 0x40, 0xe5,
1854                0x32, 0xb8, 0x10, 0x7f,
1855            ],
1856            Elements::InputAnnexesHash => [
1857                0xde, 0xd1, 0x52, 0x2e, 0xfa, 0x5a, 0x2b, 0x37, 0x61, 0x73, 0xe4, 0x40, 0xde, 0x22,
1858                0x7a, 0xd0, 0xc9, 0x2b, 0xe2, 0xed, 0xce, 0x7c, 0x23, 0xb5, 0x14, 0x80, 0xe5, 0x0a,
1859                0x77, 0xfc, 0x56, 0x4b,
1860            ],
1861            Elements::InputAsset => [
1862                0x87, 0x2b, 0x36, 0x53, 0xd6, 0x5a, 0xe7, 0xf9, 0x16, 0x6c, 0xbf, 0x70, 0xd4, 0xfd,
1863                0x31, 0x40, 0x47, 0x98, 0x88, 0x4d, 0x61, 0x1b, 0x64, 0x7f, 0xb9, 0xf4, 0xa3, 0x07,
1864                0xc4, 0x80, 0x11, 0xb8,
1865            ],
1866            Elements::InputHash => [
1867                0x33, 0x09, 0xbb, 0x46, 0xb3, 0x15, 0x8d, 0x23, 0x12, 0x4f, 0x8c, 0xed, 0xaa, 0xa1,
1868                0xed, 0x3b, 0x09, 0xa8, 0xae, 0xfe, 0x81, 0x21, 0x2e, 0x11, 0x33, 0x55, 0x23, 0xb6,
1869                0xb2, 0x07, 0xc5, 0x44,
1870            ],
1871            Elements::InputOutpointsHash => [
1872                0x14, 0x0a, 0x2b, 0xae, 0xad, 0x08, 0x3b, 0xaa, 0xc8, 0x06, 0x12, 0x8a, 0xb6, 0x49,
1873                0xe5, 0x2b, 0xbd, 0x3c, 0x64, 0x56, 0x70, 0x0c, 0xbc, 0xfc, 0x6d, 0xbb, 0x29, 0x59,
1874                0x17, 0x3a, 0x4d, 0xf2,
1875            ],
1876            Elements::InputPegin => [
1877                0xdb, 0x37, 0x6f, 0x4a, 0xe8, 0x4e, 0xc0, 0x51, 0xa4, 0x94, 0xd7, 0x66, 0x80, 0x39,
1878                0x72, 0x7b, 0x53, 0x35, 0x3b, 0xe5, 0xae, 0x04, 0x5b, 0xe7, 0x6c, 0x4b, 0x04, 0xda,
1879                0xbd, 0x5b, 0xbf, 0xbb,
1880            ],
1881            Elements::InputPrevOutpoint => [
1882                0x91, 0xf4, 0xd6, 0xec, 0x48, 0x4f, 0x60, 0xca, 0xe9, 0x29, 0x78, 0x58, 0xca, 0xc4,
1883                0x7d, 0xad, 0x50, 0xdb, 0x07, 0xdc, 0x1f, 0x93, 0x7a, 0xc6, 0x14, 0x4c, 0x9c, 0xb4,
1884                0xa9, 0xef, 0x79, 0xd2,
1885            ],
1886            Elements::InputScriptHash => [
1887                0xc3, 0x16, 0xdf, 0x21, 0x77, 0x8e, 0x62, 0x41, 0x05, 0xca, 0x59, 0x90, 0x4b, 0x92,
1888                0x08, 0xe2, 0xd4, 0x23, 0x22, 0x8b, 0x3e, 0xb1, 0xcf, 0x68, 0xb8, 0xec, 0xa4, 0x7b,
1889                0xbc, 0x7b, 0x2f, 0xf3,
1890            ],
1891            Elements::InputScriptSigHash => [
1892                0x94, 0x1f, 0x2b, 0x4f, 0x3b, 0x7f, 0x20, 0x97, 0xd6, 0xea, 0x00, 0xe9, 0x7c, 0x1e,
1893                0x2b, 0xa0, 0x1c, 0xb2, 0x64, 0x87, 0xc5, 0xd2, 0xf4, 0x72, 0x37, 0x38, 0xb3, 0x7c,
1894                0x73, 0x2c, 0x05, 0xc4,
1895            ],
1896            Elements::InputScriptSigsHash => [
1897                0x6c, 0x74, 0x81, 0x42, 0x01, 0x24, 0xb6, 0x64, 0x5d, 0x32, 0xff, 0x9b, 0x45, 0x4a,
1898                0x1c, 0x92, 0xc6, 0x71, 0x86, 0x41, 0x0e, 0x23, 0xcf, 0x60, 0x99, 0x15, 0xdf, 0x90,
1899                0x72, 0x12, 0x0f, 0xc6,
1900            ],
1901            Elements::InputScriptsHash => [
1902                0xdc, 0x13, 0x51, 0x9e, 0x75, 0x3e, 0x58, 0x75, 0x3c, 0x70, 0x98, 0x85, 0x41, 0xad,
1903                0x8a, 0x0b, 0xb5, 0x88, 0x8d, 0x08, 0x46, 0xe3, 0x5e, 0x4d, 0x42, 0x73, 0xf6, 0x56,
1904                0x85, 0x32, 0x2a, 0xe9,
1905            ],
1906            Elements::InputSequence => [
1907                0x3c, 0x6e, 0x4a, 0x3c, 0x21, 0xce, 0xd5, 0x24, 0x73, 0x6c, 0x54, 0x5c, 0x20, 0xe4,
1908                0xe2, 0xde, 0xf7, 0x67, 0x8f, 0x08, 0x4c, 0xd1, 0x2b, 0xcd, 0x65, 0x06, 0xa5, 0x20,
1909                0x0b, 0x5c, 0x17, 0x38,
1910            ],
1911            Elements::InputSequencesHash => [
1912                0xc8, 0x88, 0xc8, 0x73, 0x30, 0x2b, 0x92, 0xb0, 0x0f, 0x20, 0x68, 0x52, 0xc9, 0xea,
1913                0xef, 0x00, 0x0b, 0x40, 0x10, 0x9a, 0x53, 0xdd, 0x68, 0x6a, 0x53, 0xf1, 0x1d, 0xb5,
1914                0x07, 0x4d, 0x99, 0x37,
1915            ],
1916            Elements::InputUtxoHash => [
1917                0x85, 0x03, 0xd0, 0x52, 0x6b, 0xa9, 0x5a, 0x8f, 0xba, 0x8c, 0xa1, 0x35, 0x1c, 0x79,
1918                0x91, 0xc2, 0xa3, 0x86, 0xb7, 0x2f, 0xa8, 0x14, 0x31, 0xea, 0xdb, 0xab, 0x62, 0xcc,
1919                0x1f, 0x5d, 0xc5, 0x18,
1920            ],
1921            Elements::InputUtxosHash => [
1922                0x9c, 0x48, 0xab, 0x31, 0xc0, 0x50, 0xed, 0x06, 0x5a, 0xed, 0x51, 0x68, 0x66, 0xc1,
1923                0x6c, 0x1b, 0x96, 0xc1, 0x95, 0xea, 0x8e, 0x18, 0xb0, 0x24, 0xbf, 0xc0, 0xb8, 0x17,
1924                0x58, 0x49, 0xf0, 0x4e,
1925            ],
1926            Elements::InputsHash => [
1927                0x52, 0x3c, 0xd7, 0x1c, 0x57, 0x89, 0x88, 0x2f, 0x83, 0x75, 0xa5, 0xa5, 0x45, 0x60,
1928                0xde, 0xf8, 0x46, 0x3d, 0x1c, 0x51, 0xe5, 0x6b, 0x7e, 0x11, 0x26, 0x93, 0xe7, 0x7b,
1929                0x84, 0x4f, 0x47, 0x40,
1930            ],
1931            Elements::InternalKey => [
1932                0x9b, 0x74, 0x2e, 0x47, 0x1b, 0x0e, 0x59, 0x1a, 0x97, 0x2b, 0x0d, 0x44, 0x21, 0xf9,
1933                0xc9, 0x65, 0x93, 0x97, 0xf5, 0xda, 0xba, 0x2c, 0x14, 0xda, 0xc6, 0x2c, 0x4a, 0x33,
1934                0x9c, 0xc3, 0xe7, 0xec,
1935            ],
1936            Elements::IsOne16 => [
1937                0x84, 0x35, 0x87, 0x9c, 0xcb, 0x86, 0x44, 0x19, 0x8d, 0xcb, 0x9a, 0x0c, 0xd7, 0x35,
1938                0x46, 0xd7, 0x01, 0xfd, 0xd5, 0xa4, 0xc4, 0x43, 0x23, 0xf5, 0x63, 0x97, 0x15, 0x99,
1939                0xc3, 0x7d, 0x16, 0xfb,
1940            ],
1941            Elements::IsOne32 => [
1942                0xdd, 0xfb, 0xd9, 0xf0, 0xa2, 0xe6, 0x7c, 0x07, 0xde, 0xdb, 0x89, 0xe8, 0x96, 0xb6,
1943                0xc4, 0xf7, 0xd4, 0x5c, 0x51, 0x47, 0xee, 0xd0, 0x61, 0x4e, 0x4c, 0xe7, 0xd0, 0x87,
1944                0x69, 0xaf, 0xf8, 0x2d,
1945            ],
1946            Elements::IsOne64 => [
1947                0x35, 0xc5, 0x25, 0x54, 0x8e, 0x48, 0xee, 0xa0, 0xf7, 0x7b, 0x3b, 0xf9, 0x7a, 0xb6,
1948                0x7a, 0x1f, 0xfe, 0x8f, 0xb0, 0x94, 0xed, 0xe3, 0x32, 0x5e, 0x40, 0x64, 0xb1, 0x65,
1949                0x9c, 0x6d, 0x07, 0x65,
1950            ],
1951            Elements::IsOne8 => [
1952                0x0a, 0xba, 0x9e, 0x57, 0x6e, 0x64, 0xd2, 0x80, 0x4c, 0x8a, 0xc4, 0x68, 0x2b, 0xbb,
1953                0xa5, 0x39, 0x0e, 0xbc, 0x31, 0xa6, 0xe3, 0xe2, 0x65, 0x0f, 0x92, 0x19, 0x23, 0x5d,
1954                0xf4, 0xa6, 0xec, 0xbb,
1955            ],
1956            Elements::IsZero16 => [
1957                0xa2, 0x5a, 0xbd, 0x9c, 0xd2, 0xa4, 0x07, 0x0c, 0x74, 0x2e, 0xf8, 0xde, 0xb0, 0x68,
1958                0x29, 0x22, 0x46, 0x03, 0x2b, 0x96, 0xa5, 0x17, 0x22, 0x3b, 0x12, 0x8c, 0xfc, 0x12,
1959                0xd2, 0x15, 0xc5, 0xba,
1960            ],
1961            Elements::IsZero32 => [
1962                0x61, 0x2a, 0x48, 0x0c, 0xed, 0x6a, 0x79, 0xda, 0x61, 0x19, 0x54, 0x6e, 0x05, 0x6b,
1963                0x8d, 0xf9, 0xfa, 0x95, 0xd1, 0x12, 0x4b, 0x96, 0xd6, 0x01, 0xe1, 0xd3, 0xea, 0x91,
1964                0x8c, 0xc5, 0x60, 0x69,
1965            ],
1966            Elements::IsZero64 => [
1967                0x18, 0xe8, 0xe1, 0x77, 0x6b, 0xa0, 0x80, 0xcc, 0xd3, 0xe1, 0xd6, 0x0c, 0xb7, 0x53,
1968                0x41, 0x45, 0x36, 0xbf, 0x70, 0xdf, 0x18, 0x5f, 0x72, 0xc9, 0xe0, 0x70, 0x79, 0x6f,
1969                0x4c, 0x63, 0xcc, 0x71,
1970            ],
1971            Elements::IsZero8 => [
1972                0xb4, 0xba, 0xa5, 0x09, 0x38, 0x10, 0x84, 0x26, 0x74, 0x0d, 0x82, 0xcf, 0x12, 0x11,
1973                0xe0, 0xed, 0x12, 0x6d, 0xe3, 0xb7, 0x6b, 0x8d, 0x25, 0x9c, 0x50, 0xad, 0x4b, 0x8f,
1974                0xca, 0xb1, 0x0a, 0xb6,
1975            ],
1976            Elements::Issuance => [
1977                0x5c, 0x64, 0x63, 0x12, 0xc1, 0x69, 0xc6, 0x80, 0x27, 0x97, 0x9e, 0x1b, 0xc3, 0x26,
1978                0xc5, 0xdc, 0x95, 0xe5, 0xc5, 0x16, 0x8d, 0x00, 0xd9, 0x8e, 0x9d, 0x50, 0x4a, 0x7c,
1979                0xde, 0x21, 0xd7, 0x68,
1980            ],
1981            Elements::IssuanceAsset => [
1982                0x69, 0x0b, 0xf9, 0x18, 0xe1, 0x52, 0x77, 0x56, 0xcf, 0xbb, 0xf5, 0x1c, 0x83, 0x13,
1983                0x62, 0x14, 0x37, 0x56, 0xd5, 0x2d, 0x04, 0xe1, 0x29, 0x4f, 0x12, 0x64, 0x95, 0x0c,
1984                0x62, 0x67, 0xe5, 0xc9,
1985            ],
1986            Elements::IssuanceAssetAmount => [
1987                0x83, 0x60, 0x51, 0x46, 0xff, 0x26, 0xa4, 0x9c, 0xa1, 0x6f, 0x1c, 0x4a, 0x6e, 0x0c,
1988                0xe0, 0xb7, 0xc2, 0x14, 0xdf, 0x12, 0xc3, 0x77, 0xf5, 0x22, 0x52, 0x3d, 0xeb, 0x6d,
1989                0x5d, 0x0e, 0xe4, 0x4d,
1990            ],
1991            Elements::IssuanceAssetAmountsHash => [
1992                0x70, 0xf1, 0x1c, 0x3b, 0x3b, 0x5d, 0x16, 0x57, 0xd3, 0xb7, 0xc7, 0xee, 0xec, 0x85,
1993                0x0c, 0x30, 0xa3, 0x2e, 0xa9, 0x6a, 0xa3, 0x64, 0x26, 0xfa, 0x30, 0xeb, 0xf5, 0x49,
1994                0x98, 0x51, 0xa8, 0x80,
1995            ],
1996            Elements::IssuanceAssetProof => [
1997                0x0b, 0x06, 0x1f, 0x9f, 0x67, 0x0c, 0x05, 0xdc, 0x39, 0xf4, 0x38, 0x31, 0x3c, 0x13,
1998                0x79, 0xd9, 0xbf, 0x63, 0xf4, 0x4f, 0x98, 0x76, 0xb9, 0x56, 0x69, 0x3b, 0x41, 0xb7,
1999                0xf9, 0x4c, 0x6c, 0x9d,
2000            ],
2001            Elements::IssuanceBlindingEntropyHash => [
2002                0xbf, 0xb6, 0xa9, 0x34, 0x44, 0xe2, 0xa0, 0xb3, 0xfb, 0x7c, 0x13, 0xd1, 0x58, 0x9a,
2003                0x78, 0x7b, 0x66, 0xe8, 0x4b, 0x69, 0xb6, 0x27, 0x4c, 0xea, 0x20, 0xad, 0x99, 0x99,
2004                0xeb, 0x8c, 0xa6, 0x7c,
2005            ],
2006            Elements::IssuanceEntropy => [
2007                0x6d, 0xdf, 0x99, 0xf2, 0x8c, 0x70, 0x19, 0x8d, 0x65, 0x41, 0x7a, 0x83, 0x60, 0x74,
2008                0xf1, 0xb9, 0xb6, 0x10, 0xf2, 0x1f, 0x51, 0x19, 0xfd, 0x55, 0x0f, 0x60, 0xb6, 0xf8,
2009                0xe9, 0x95, 0xbb, 0xf3,
2010            ],
2011            Elements::IssuanceHash => [
2012                0x6e, 0x9f, 0x8a, 0xe8, 0xc4, 0x5b, 0xfb, 0x7e, 0x4e, 0x0c, 0xf2, 0xd0, 0x0f, 0x66,
2013                0x83, 0x2b, 0x47, 0x9d, 0xe7, 0x58, 0x2c, 0xdb, 0xc8, 0x51, 0xd0, 0xb3, 0x23, 0x0f,
2014                0xdf, 0xbb, 0xb7, 0x8d,
2015            ],
2016            Elements::IssuanceRangeProofsHash => [
2017                0x7e, 0x97, 0xf5, 0x19, 0x53, 0x48, 0x31, 0xc7, 0x7a, 0xcf, 0x73, 0xa2, 0x0f, 0xd5,
2018                0x3c, 0xb3, 0x1d, 0x1d, 0x15, 0x6c, 0x9a, 0xcb, 0xbf, 0x87, 0x3d, 0x14, 0x92, 0xd6,
2019                0x0d, 0x13, 0x67, 0xd8,
2020            ],
2021            Elements::IssuanceToken => [
2022                0xbc, 0x2c, 0xb7, 0xe9, 0x64, 0xb2, 0xa2, 0xae, 0xd7, 0x9b, 0x75, 0xc5, 0xf4, 0x40,
2023                0x8f, 0xe8, 0x4a, 0x6d, 0xc9, 0xb9, 0xe8, 0xcd, 0x2c, 0x69, 0x4d, 0x57, 0xc5, 0xf9,
2024                0xb6, 0x12, 0x05, 0xb9,
2025            ],
2026            Elements::IssuanceTokenAmount => [
2027                0x7e, 0x10, 0x64, 0x64, 0xa1, 0x3b, 0x67, 0x64, 0xce, 0x74, 0xd3, 0xfe, 0x6b, 0xa1,
2028                0xcb, 0xd5, 0xf4, 0xae, 0xb8, 0x6b, 0xbb, 0xdf, 0x58, 0x88, 0xdd, 0xf9, 0x90, 0x1d,
2029                0xd8, 0xb6, 0x19, 0xaa,
2030            ],
2031            Elements::IssuanceTokenAmountsHash => [
2032                0x94, 0xb5, 0xa4, 0x59, 0x5b, 0x67, 0x4d, 0xbf, 0xc4, 0x9c, 0x4e, 0x8e, 0xa1, 0xa9,
2033                0xab, 0xc9, 0x3e, 0xd2, 0xf7, 0x70, 0x7c, 0x42, 0x12, 0xa3, 0x2b, 0x5b, 0x86, 0xac,
2034                0x13, 0x18, 0xc9, 0xde,
2035            ],
2036            Elements::IssuanceTokenProof => [
2037                0x46, 0xed, 0x52, 0x75, 0xf5, 0x5a, 0xb3, 0x41, 0xf5, 0x7c, 0x35, 0x19, 0xff, 0xed,
2038                0xf4, 0xe3, 0x7f, 0x3f, 0x59, 0xc9, 0x7c, 0xe9, 0xb8, 0xe1, 0x7f, 0xff, 0xae, 0x16,
2039                0xc6, 0xcc, 0x1c, 0x0e,
2040            ],
2041            Elements::IssuancesHash => [
2042                0x58, 0x65, 0x9f, 0x3f, 0x7e, 0x01, 0x30, 0xc4, 0xfc, 0x91, 0x6f, 0x49, 0xbc, 0x32,
2043                0xea, 0xa0, 0x88, 0x3a, 0xcb, 0x90, 0x22, 0xfc, 0xad, 0x5e, 0x78, 0x05, 0x83, 0x9a,
2044                0x99, 0xe5, 0x0c, 0xf9,
2045            ],
2046            Elements::LbtcAsset => [
2047                0x2a, 0xf7, 0xf7, 0x3a, 0xe3, 0xfb, 0xbf, 0xa2, 0xd2, 0x3a, 0x87, 0x74, 0xe6, 0xe3,
2048                0xca, 0x09, 0x32, 0x54, 0xda, 0x2f, 0xd2, 0xa9, 0xf3, 0x97, 0xa6, 0xae, 0x0a, 0x30,
2049                0xbb, 0x48, 0xf0, 0xd7,
2050            ],
2051            Elements::Le16 => [
2052                0x63, 0xda, 0x72, 0x7c, 0xcb, 0x4c, 0x6a, 0x9d, 0x4e, 0x00, 0x09, 0x64, 0xe7, 0x63,
2053                0xbf, 0xf9, 0x34, 0xea, 0xaf, 0xd0, 0x44, 0x28, 0x7e, 0x12, 0x68, 0xd0, 0x7e, 0xcd,
2054                0xfd, 0xe2, 0x07, 0xe1,
2055            ],
2056            Elements::Le32 => [
2057                0xde, 0xe2, 0x9a, 0x91, 0x65, 0x6d, 0x7a, 0xe7, 0x3d, 0xf4, 0x95, 0x6f, 0xd8, 0xa2,
2058                0xc6, 0xb6, 0x27, 0xaa, 0xb5, 0x1c, 0x11, 0x29, 0xf9, 0xfe, 0x7f, 0x6e, 0xd3, 0xe3,
2059                0x47, 0x92, 0xc7, 0x62,
2060            ],
2061            Elements::Le64 => [
2062                0x01, 0xc5, 0x5d, 0xf7, 0xd4, 0x46, 0x59, 0x66, 0x65, 0x9d, 0xdf, 0xc9, 0x4b, 0x36,
2063                0xd0, 0x33, 0x24, 0x2c, 0x2e, 0xc5, 0x93, 0xce, 0xe1, 0x21, 0x22, 0x44, 0x07, 0x75,
2064                0x66, 0xed, 0x01, 0x5f,
2065            ],
2066            Elements::Le8 => [
2067                0x0f, 0xb7, 0x2d, 0x9f, 0x8e, 0xe2, 0x37, 0x0a, 0xba, 0x55, 0x66, 0x3a, 0x48, 0x99,
2068                0x16, 0x2e, 0x40, 0xca, 0x55, 0x14, 0x71, 0x3e, 0xfb, 0x25, 0xe4, 0xa8, 0x9e, 0x2a,
2069                0x10, 0x4b, 0x34, 0xdb,
2070            ],
2071            Elements::LeftExtend16_32 => [
2072                0xdc, 0xf4, 0x2b, 0x65, 0x42, 0xf6, 0xd4, 0x1c, 0xb7, 0xb5, 0x0e, 0x7c, 0x77, 0x2f,
2073                0x3c, 0x7f, 0x6e, 0x43, 0x22, 0x32, 0xf2, 0xba, 0x20, 0x79, 0xb3, 0x86, 0xa0, 0x5d,
2074                0x7b, 0x46, 0x6a, 0xdd,
2075            ],
2076            Elements::LeftExtend16_64 => [
2077                0x2e, 0xee, 0x48, 0xa9, 0x22, 0x37, 0x94, 0x7c, 0x1a, 0x51, 0x7d, 0xf9, 0x95, 0xf4,
2078                0x4f, 0x1d, 0xfe, 0xf2, 0x0d, 0xdb, 0x4e, 0x9b, 0x53, 0x0b, 0x22, 0xd1, 0x8a, 0x0a,
2079                0x7f, 0xd6, 0x28, 0xaa,
2080            ],
2081            Elements::LeftExtend1_16 => [
2082                0x9a, 0x48, 0xa4, 0x77, 0x8e, 0x7c, 0x3c, 0x28, 0x5a, 0xb6, 0x53, 0x29, 0xd1, 0xcc,
2083                0xc4, 0x99, 0x9d, 0x2d, 0x19, 0x4e, 0x00, 0x5b, 0xd7, 0x94, 0x69, 0x49, 0x53, 0x3d,
2084                0x8c, 0xba, 0x80, 0x6c,
2085            ],
2086            Elements::LeftExtend1_32 => [
2087                0xda, 0xb6, 0xa5, 0x33, 0xcb, 0xcb, 0xe8, 0x36, 0x2c, 0xf1, 0xd5, 0xa1, 0x6e, 0xa3,
2088                0x7c, 0xbc, 0x7e, 0xdc, 0x7f, 0xc8, 0xa9, 0x42, 0x85, 0x71, 0xe1, 0x71, 0xec, 0x6e,
2089                0xe4, 0x4d, 0x08, 0x00,
2090            ],
2091            Elements::LeftExtend1_64 => [
2092                0x11, 0x0e, 0x5c, 0x1e, 0xf0, 0xb4, 0x69, 0xa7, 0x63, 0x85, 0x70, 0xda, 0x94, 0x4d,
2093                0x23, 0x2e, 0x0f, 0x28, 0xc4, 0x61, 0x51, 0xa2, 0x25, 0x35, 0x7d, 0xe3, 0xe9, 0x04,
2094                0x57, 0xa8, 0x8e, 0xa2,
2095            ],
2096            Elements::LeftExtend1_8 => [
2097                0x5a, 0x83, 0x1c, 0xa9, 0x96, 0x21, 0x51, 0x7a, 0x2b, 0x35, 0x4e, 0x5c, 0xac, 0x38,
2098                0xbc, 0x3a, 0x30, 0xc4, 0x00, 0x1f, 0x20, 0xd2, 0x5d, 0x77, 0x97, 0xad, 0xdc, 0xac,
2099                0x5d, 0xa8, 0x61, 0x06,
2100            ],
2101            Elements::LeftExtend32_64 => [
2102                0x84, 0xfc, 0xc6, 0x9b, 0xa1, 0xdb, 0x50, 0xdb, 0xd5, 0x36, 0x3c, 0xf2, 0x77, 0x79,
2103                0x57, 0x60, 0x1d, 0xe2, 0x56, 0x8a, 0xdf, 0x07, 0xaf, 0x41, 0x61, 0xde, 0xbb, 0x1e,
2104                0x5e, 0x37, 0x31, 0x0a,
2105            ],
2106            Elements::LeftExtend8_16 => [
2107                0xfe, 0xa1, 0xf2, 0x5a, 0x82, 0xfd, 0xf6, 0xf8, 0x66, 0x9c, 0xc4, 0x0f, 0xbb, 0x8e,
2108                0x54, 0xa9, 0x26, 0x58, 0xbf, 0xab, 0x94, 0xeb, 0x08, 0x2f, 0x71, 0x7b, 0xa2, 0x65,
2109                0xb5, 0xd8, 0x44, 0xb4,
2110            ],
2111            Elements::LeftExtend8_32 => [
2112                0x09, 0xd7, 0x03, 0xca, 0x46, 0xf7, 0x5d, 0x05, 0x1a, 0x93, 0xd0, 0xe8, 0xa2, 0xaf,
2113                0x05, 0x01, 0xa3, 0x8e, 0x84, 0x86, 0x83, 0xef, 0x10, 0x9c, 0x1f, 0xb4, 0xb5, 0xbe,
2114                0x20, 0xe6, 0x31, 0x5d,
2115            ],
2116            Elements::LeftExtend8_64 => [
2117                0xd3, 0xda, 0xfc, 0xbd, 0xab, 0x69, 0xa2, 0xbb, 0x32, 0x0f, 0x8d, 0x23, 0x0c, 0xef,
2118                0xd0, 0x9c, 0x27, 0xa1, 0x54, 0xc5, 0x1e, 0x7e, 0x5c, 0xd5, 0x33, 0x4e, 0xaf, 0xed,
2119                0x19, 0xe2, 0x0d, 0xf4,
2120            ],
2121            Elements::LeftPadHigh16_32 => [
2122                0x88, 0x8c, 0x7e, 0x0a, 0xb0, 0x03, 0x14, 0x75, 0xc5, 0x14, 0xf9, 0xb3, 0x7c, 0x81,
2123                0xf4, 0x5a, 0x47, 0x31, 0x49, 0x84, 0xe5, 0x02, 0x75, 0x08, 0xdd, 0xc5, 0xeb, 0x8d,
2124                0x8d, 0x10, 0xbe, 0xb9,
2125            ],
2126            Elements::LeftPadHigh16_64 => [
2127                0x52, 0x6b, 0x35, 0x05, 0x45, 0x01, 0x36, 0xd6, 0x81, 0xa5, 0x0b, 0x4b, 0xde, 0x4f,
2128                0xa6, 0x12, 0xda, 0x9d, 0x69, 0xbd, 0x08, 0x17, 0x0e, 0xa3, 0x2d, 0x0a, 0x26, 0x51,
2129                0x11, 0x50, 0x72, 0xeb,
2130            ],
2131            Elements::LeftPadHigh1_16 => [
2132                0x93, 0xae, 0xd6, 0xf6, 0x87, 0x50, 0x77, 0x4b, 0x2d, 0xbf, 0x83, 0x14, 0xca, 0xde,
2133                0xbe, 0x5a, 0x41, 0x52, 0x43, 0xfb, 0xdf, 0x7c, 0x2e, 0xea, 0x8b, 0x22, 0x3d, 0xf3,
2134                0x26, 0x1e, 0x3b, 0xdb,
2135            ],
2136            Elements::LeftPadHigh1_32 => [
2137                0x00, 0x82, 0x98, 0xf8, 0x2f, 0xb6, 0xcf, 0x37, 0xe9, 0xdc, 0x70, 0x3e, 0xa4, 0xf9,
2138                0x49, 0x56, 0x5c, 0x29, 0x65, 0xa7, 0xc7, 0xf4, 0xfa, 0x22, 0xf5, 0x54, 0x56, 0x42,
2139                0x34, 0x08, 0xa3, 0xab,
2140            ],
2141            Elements::LeftPadHigh1_64 => [
2142                0x2b, 0x45, 0x4e, 0xbd, 0x79, 0x1e, 0xc7, 0xda, 0xce, 0xdc, 0xb8, 0x6c, 0x69, 0xd0,
2143                0x26, 0x79, 0x4a, 0x5d, 0xc3, 0x72, 0x52, 0x61, 0xe7, 0xdc, 0x16, 0x50, 0xcc, 0x88,
2144                0x81, 0x17, 0xfc, 0x4f,
2145            ],
2146            Elements::LeftPadHigh1_8 => [
2147                0x6c, 0x27, 0x7c, 0x4c, 0xd0, 0x53, 0xdd, 0x35, 0x02, 0xdb, 0xe0, 0xbb, 0xc1, 0x4e,
2148                0xb0, 0xb3, 0x6a, 0x20, 0x1a, 0xbe, 0xf3, 0xb1, 0x74, 0xb0, 0xeb, 0xfe, 0x05, 0x20,
2149                0x18, 0xb6, 0x7e, 0x67,
2150            ],
2151            Elements::LeftPadHigh32_64 => [
2152                0x5d, 0x41, 0x22, 0x1c, 0xf6, 0x15, 0x82, 0x97, 0xb0, 0x6c, 0x19, 0x57, 0x11, 0x2c,
2153                0x0d, 0x12, 0xf3, 0xeb, 0x91, 0x7a, 0x2f, 0x50, 0x9a, 0x53, 0x9d, 0x5c, 0x9b, 0x79,
2154                0x10, 0x21, 0x9b, 0x65,
2155            ],
2156            Elements::LeftPadHigh8_16 => [
2157                0x21, 0x78, 0xdc, 0x76, 0xc0, 0x4c, 0x79, 0xd9, 0x18, 0x15, 0xd3, 0x8c, 0x96, 0x7f,
2158                0x34, 0x21, 0x3f, 0xfc, 0xc6, 0xc5, 0xf2, 0x43, 0xc9, 0x56, 0x29, 0x73, 0xf0, 0x90,
2159                0xca, 0x5c, 0xae, 0xfa,
2160            ],
2161            Elements::LeftPadHigh8_32 => [
2162                0xa4, 0xe8, 0x6b, 0x53, 0xe5, 0xd0, 0x0f, 0xaf, 0x0b, 0x3e, 0x9d, 0x53, 0x20, 0x2a,
2163                0xf7, 0x73, 0x8d, 0xcb, 0x88, 0x87, 0xa1, 0x8d, 0xfe, 0xe5, 0xbe, 0x34, 0xc4, 0x97,
2164                0x69, 0x8c, 0xa6, 0xb7,
2165            ],
2166            Elements::LeftPadHigh8_64 => [
2167                0xc8, 0x43, 0xa7, 0x2c, 0x41, 0x17, 0x0f, 0x40, 0x34, 0x33, 0xc4, 0x36, 0xa3, 0x9b,
2168                0x05, 0xcf, 0x19, 0x3c, 0x27, 0xd8, 0xbe, 0x35, 0x30, 0xf9, 0xb9, 0x4e, 0x42, 0xd7,
2169                0x63, 0x00, 0x3d, 0x54,
2170            ],
2171            Elements::LeftPadLow16_32 => [
2172                0x21, 0x53, 0x7f, 0x7d, 0x8f, 0x97, 0xf2, 0x20, 0x3c, 0xcc, 0xb0, 0x35, 0xef, 0x1d,
2173                0x46, 0x28, 0x9e, 0xe8, 0xaa, 0x50, 0xf0, 0x23, 0x60, 0x77, 0xd0, 0xd0, 0xb2, 0x10,
2174                0x70, 0x04, 0x40, 0xa1,
2175            ],
2176            Elements::LeftPadLow16_64 => [
2177                0x6b, 0x2e, 0xa9, 0x63, 0x0c, 0x5d, 0xde, 0x03, 0x7a, 0xab, 0x2b, 0xf7, 0x33, 0x21,
2178                0x9b, 0x99, 0xc7, 0xed, 0xc2, 0xec, 0xed, 0xb9, 0xa0, 0x3a, 0xdf, 0xd1, 0x69, 0x43,
2179                0x0b, 0x08, 0xbb, 0x9c,
2180            ],
2181            Elements::LeftPadLow1_16 => [
2182                0x4a, 0xa4, 0x05, 0x20, 0xfa, 0xed, 0x72, 0xe6, 0xe9, 0xbe, 0x3b, 0xe6, 0x93, 0x0f,
2183                0x1e, 0x32, 0xb0, 0xb1, 0x82, 0xc4, 0x32, 0x7a, 0xda, 0x94, 0xa7, 0x1f, 0x00, 0x6d,
2184                0x14, 0x90, 0x15, 0xf9,
2185            ],
2186            Elements::LeftPadLow1_32 => [
2187                0xcf, 0xb4, 0x75, 0x3b, 0xb9, 0xba, 0x36, 0x21, 0xba, 0x09, 0x37, 0x82, 0x5f, 0xad,
2188                0xe6, 0x43, 0x09, 0x8e, 0x38, 0x5e, 0xd6, 0x8e, 0xfb, 0x16, 0xff, 0x58, 0xec, 0xf3,
2189                0x65, 0xd7, 0xe5, 0xe2,
2190            ],
2191            Elements::LeftPadLow1_64 => [
2192                0xe6, 0xf1, 0xc0, 0x9b, 0x5f, 0xe1, 0x26, 0xd0, 0xea, 0x86, 0xe7, 0xbf, 0xc0, 0xb2,
2193                0x8e, 0x84, 0x9f, 0x8f, 0x7e, 0xfd, 0x31, 0x06, 0x4e, 0xa4, 0xfd, 0x1c, 0xca, 0x07,
2194                0x1b, 0x45, 0xdb, 0x93,
2195            ],
2196            Elements::LeftPadLow1_8 => [
2197                0xdc, 0x5a, 0x47, 0xf8, 0xd7, 0x77, 0x65, 0xc9, 0x94, 0xcb, 0xe8, 0x6a, 0xae, 0x44,
2198                0xa9, 0xc5, 0xff, 0x2e, 0xbc, 0x38, 0x10, 0xd7, 0x9c, 0xd8, 0x3b, 0xd2, 0xc4, 0x09,
2199                0x8c, 0x76, 0x2b, 0xf5,
2200            ],
2201            Elements::LeftPadLow32_64 => [
2202                0x2d, 0x88, 0xe4, 0xd0, 0x1e, 0x01, 0x08, 0xc0, 0xd6, 0x88, 0x0f, 0x3c, 0xe8, 0x48,
2203                0x2b, 0xb0, 0x95, 0x1f, 0x2b, 0x3f, 0xc5, 0xdf, 0x4b, 0x1a, 0xdb, 0x18, 0x4a, 0x1b,
2204                0xfd, 0x1f, 0x64, 0x65,
2205            ],
2206            Elements::LeftPadLow8_16 => [
2207                0xac, 0x1a, 0x4c, 0x97, 0x83, 0xe4, 0xdb, 0xed, 0x27, 0x00, 0xeb, 0x29, 0x52, 0xe3,
2208                0x06, 0x2a, 0x5a, 0x72, 0x71, 0x2f, 0x82, 0x15, 0x98, 0x61, 0xb0, 0x8e, 0x67, 0xef,
2209                0x4a, 0x71, 0xf5, 0xf2,
2210            ],
2211            Elements::LeftPadLow8_32 => [
2212                0x3d, 0xa5, 0xf1, 0xa8, 0xc9, 0x78, 0x19, 0xae, 0x7e, 0x10, 0xb9, 0x36, 0x4f, 0xf8,
2213                0x49, 0x96, 0xd0, 0xd7, 0x3e, 0x69, 0x8a, 0x49, 0xda, 0x69, 0x1f, 0x69, 0xa2, 0x73,
2214                0x25, 0x42, 0x01, 0xcd,
2215            ],
2216            Elements::LeftPadLow8_64 => [
2217                0x25, 0xbc, 0x18, 0xd4, 0x9f, 0x93, 0x40, 0x72, 0x27, 0x7d, 0x3f, 0x61, 0x3b, 0xf1,
2218                0x6c, 0x11, 0x8d, 0xf1, 0x97, 0xbc, 0x92, 0x87, 0x2d, 0x2a, 0xff, 0xe4, 0x17, 0xad,
2219                0xea, 0xaf, 0x1a, 0x85,
2220            ],
2221            Elements::LeftRotate16 => [
2222                0x88, 0xc1, 0x23, 0x37, 0xcd, 0x75, 0x4f, 0x83, 0x80, 0x98, 0x6d, 0x86, 0xfe, 0x3a,
2223                0x89, 0xe2, 0x62, 0x74, 0x66, 0x53, 0xe1, 0xba, 0xdd, 0x9c, 0xc9, 0xb4, 0x76, 0x45,
2224                0xfe, 0x57, 0x19, 0x5a,
2225            ],
2226            Elements::LeftRotate32 => [
2227                0x39, 0x81, 0x6c, 0xcd, 0x9e, 0x9c, 0xf1, 0x19, 0x1f, 0x06, 0x5d, 0x2e, 0xb7, 0xa7,
2228                0xfb, 0x83, 0x82, 0x8d, 0x91, 0xec, 0x7d, 0x99, 0x77, 0xa1, 0xfc, 0x70, 0xbe, 0x9b,
2229                0x31, 0xa4, 0x68, 0xb9,
2230            ],
2231            Elements::LeftRotate64 => [
2232                0x8b, 0x23, 0x55, 0xc3, 0x1e, 0x3b, 0x61, 0x4b, 0xd4, 0xb4, 0x1c, 0x3e, 0xcf, 0x27,
2233                0x74, 0x24, 0xd0, 0x26, 0x76, 0x6b, 0x37, 0xbc, 0x6c, 0x10, 0x56, 0x21, 0xf4, 0xf6,
2234                0xa1, 0x6f, 0x9b, 0xdf,
2235            ],
2236            Elements::LeftRotate8 => [
2237                0x9e, 0x96, 0x6e, 0x88, 0x0c, 0x6b, 0x0c, 0x48, 0x3c, 0x90, 0xbe, 0xee, 0xd7, 0xc5,
2238                0x73, 0x7c, 0xa5, 0xf3, 0xfa, 0xcf, 0x85, 0xaa, 0xb3, 0xd5, 0x31, 0xad, 0x34, 0xbd,
2239                0x7b, 0x1a, 0x9b, 0x68,
2240            ],
2241            Elements::LeftShift16 => [
2242                0xb0, 0x53, 0x60, 0x18, 0x4d, 0x06, 0x02, 0xb5, 0x81, 0x40, 0x5e, 0x32, 0x96, 0x0b,
2243                0x31, 0xc0, 0x52, 0x19, 0x35, 0x8d, 0xe8, 0x9e, 0xfd, 0xf4, 0x94, 0x64, 0x72, 0x3d,
2244                0xd6, 0x25, 0x61, 0x7a,
2245            ],
2246            Elements::LeftShift32 => [
2247                0x34, 0xbf, 0x54, 0xf5, 0x94, 0xc2, 0x62, 0x10, 0x07, 0xf8, 0xc7, 0x8b, 0x30, 0xfa,
2248                0xd3, 0x96, 0x72, 0x00, 0x9b, 0xb3, 0x66, 0xaa, 0xce, 0x1e, 0x5e, 0x41, 0xee, 0x4d,
2249                0x9c, 0xc5, 0x41, 0xa8,
2250            ],
2251            Elements::LeftShift64 => [
2252                0x5d, 0xe9, 0x53, 0xf0, 0x4d, 0xea, 0xed, 0x90, 0x47, 0x56, 0x76, 0x47, 0xa1, 0xeb,
2253                0x7a, 0xbe, 0x66, 0x5f, 0xec, 0xcb, 0xe7, 0xed, 0x10, 0xcb, 0x7d, 0xbe, 0x69, 0x12,
2254                0x73, 0xc0, 0x94, 0xb0,
2255            ],
2256            Elements::LeftShift8 => [
2257                0xab, 0x9d, 0x3e, 0x9a, 0xc3, 0x90, 0x38, 0xad, 0x88, 0xb1, 0x03, 0xf0, 0x72, 0x25,
2258                0x4c, 0x0e, 0xc6, 0xe2, 0x74, 0x75, 0xe2, 0x75, 0xc2, 0x45, 0xe8, 0x8c, 0xce, 0x0d,
2259                0x07, 0x2e, 0x64, 0x46,
2260            ],
2261            Elements::LeftShiftWith16 => [
2262                0xe2, 0x91, 0x07, 0x88, 0x55, 0x50, 0x45, 0x0e, 0xb7, 0x27, 0xd0, 0xcf, 0x14, 0xe1,
2263                0x04, 0xae, 0x12, 0xf8, 0x3a, 0x24, 0xe2, 0xe2, 0xac, 0xa3, 0xcc, 0xe4, 0x33, 0xde,
2264                0x2f, 0x35, 0xd7, 0xb3,
2265            ],
2266            Elements::LeftShiftWith32 => [
2267                0xf3, 0x92, 0x50, 0xc4, 0x5a, 0x13, 0x10, 0xcc, 0x63, 0x8c, 0x78, 0x8d, 0xee, 0xc5,
2268                0xc3, 0x65, 0xb4, 0xd1, 0x76, 0xd1, 0x0e, 0xfb, 0xf4, 0xc6, 0x01, 0xcf, 0x5e, 0xeb,
2269                0xe0, 0xa5, 0x73, 0xe9,
2270            ],
2271            Elements::LeftShiftWith64 => [
2272                0xad, 0x87, 0x94, 0xcf, 0xae, 0xf2, 0xb7, 0xf7, 0x74, 0xfa, 0x68, 0xd3, 0x09, 0xbb,
2273                0xc9, 0x8d, 0xfe, 0xe5, 0x8c, 0x40, 0x40, 0x0b, 0x2e, 0xb5, 0x78, 0xa2, 0x12, 0xf4,
2274                0x38, 0xbd, 0x07, 0xab,
2275            ],
2276            Elements::LeftShiftWith8 => [
2277                0xdd, 0x9c, 0xc1, 0xce, 0xa7, 0x49, 0x09, 0x48, 0x1f, 0xf5, 0x8f, 0x87, 0x6f, 0xf6,
2278                0x6e, 0x0f, 0x5d, 0x52, 0xbf, 0x89, 0xb0, 0x25, 0x8f, 0xa9, 0x5b, 0x32, 0x00, 0x02,
2279                0xc3, 0x2a, 0x79, 0x15,
2280            ],
2281            Elements::Leftmost16_1 => [
2282                0xde, 0x6a, 0x4c, 0x98, 0x33, 0x7e, 0x68, 0x0d, 0x6e, 0x6e, 0xe2, 0xbf, 0x36, 0xd3,
2283                0xa0, 0x81, 0x7d, 0x2a, 0x9a, 0x98, 0x32, 0x5f, 0x87, 0xe5, 0xec, 0xeb, 0x8a, 0x6f,
2284                0x11, 0x68, 0xf5, 0xca,
2285            ],
2286            Elements::Leftmost16_2 => [
2287                0x00, 0x58, 0x09, 0xb8, 0x05, 0x1a, 0x2a, 0x50, 0x28, 0x33, 0xb2, 0x2c, 0x2c, 0x17,
2288                0x98, 0x1e, 0xaf, 0x9d, 0xd1, 0xd3, 0xdb, 0xc8, 0xf8, 0xc8, 0x94, 0x51, 0x6c, 0x1d,
2289                0x5f, 0x31, 0x14, 0x6c,
2290            ],
2291            Elements::Leftmost16_4 => [
2292                0x9c, 0x50, 0xee, 0x22, 0x84, 0xd8, 0x57, 0xc4, 0x7c, 0x05, 0x44, 0x47, 0x13, 0x54,
2293                0x10, 0x5e, 0x98, 0xdf, 0xe0, 0x27, 0x54, 0xd2, 0xe4, 0x2d, 0xe1, 0x1d, 0x32, 0x34,
2294                0xed, 0x10, 0xb6, 0x42,
2295            ],
2296            Elements::Leftmost16_8 => [
2297                0x5a, 0x1a, 0x72, 0x91, 0x4e, 0x14, 0x9c, 0x22, 0xb4, 0x64, 0xc8, 0xf6, 0xa3, 0xd9,
2298                0xcf, 0x41, 0xb0, 0x71, 0x92, 0xbe, 0xf0, 0xd8, 0xa1, 0xcc, 0x7c, 0xbe, 0x57, 0x04,
2299                0xa9, 0xe8, 0xea, 0x70,
2300            ],
2301            Elements::Leftmost32_1 => [
2302                0x5f, 0xb8, 0xe6, 0x34, 0x2a, 0xb7, 0x4e, 0xe2, 0xc9, 0x22, 0x5b, 0x87, 0x2f, 0xa0,
2303                0xc9, 0x12, 0x04, 0x6a, 0x69, 0xdb, 0xb7, 0x19, 0xbc, 0xd6, 0xc8, 0xd7, 0x9b, 0x76,
2304                0x60, 0xc4, 0xeb, 0xca,
2305            ],
2306            Elements::Leftmost32_16 => [
2307                0x54, 0xae, 0x50, 0xb4, 0x6b, 0x5b, 0x2e, 0x68, 0xf5, 0x36, 0xc0, 0x1c, 0x39, 0x61,
2308                0x7b, 0x0c, 0xee, 0x42, 0xe1, 0xc4, 0x9a, 0x2c, 0xd1, 0xd2, 0x6a, 0xf8, 0xea, 0x87,
2309                0x15, 0xac, 0x4d, 0x11,
2310            ],
2311            Elements::Leftmost32_2 => [
2312                0x12, 0x30, 0x68, 0x55, 0x45, 0x95, 0x42, 0x7e, 0x3c, 0x1d, 0xe2, 0x43, 0xba, 0xb6,
2313                0x6f, 0x33, 0x48, 0x36, 0x8a, 0xaa, 0x44, 0x61, 0x7d, 0x6a, 0x02, 0x47, 0x9f, 0xb7,
2314                0x04, 0xbc, 0xfd, 0x1e,
2315            ],
2316            Elements::Leftmost32_4 => [
2317                0x55, 0xa8, 0x7b, 0x66, 0xc3, 0x39, 0xe3, 0x63, 0xe0, 0x3d, 0x4d, 0xaa, 0xc6, 0x22,
2318                0x90, 0xeb, 0xa9, 0x3c, 0x1a, 0x3a, 0x73, 0x82, 0xcb, 0xf6, 0x1f, 0x20, 0xb3, 0x4a,
2319                0x50, 0x51, 0x24, 0xad,
2320            ],
2321            Elements::Leftmost32_8 => [
2322                0x9f, 0x34, 0x5b, 0xee, 0x0b, 0x16, 0x2d, 0x42, 0xa0, 0x35, 0x71, 0x8f, 0x8c, 0xa1,
2323                0xad, 0xc8, 0xac, 0x2f, 0x71, 0x0d, 0xc4, 0x00, 0x52, 0xa8, 0x25, 0x66, 0xe6, 0xd8,
2324                0x07, 0xbe, 0xf8, 0xb8,
2325            ],
2326            Elements::Leftmost64_1 => [
2327                0xb9, 0x24, 0xd3, 0x3b, 0x5e, 0xfe, 0xfc, 0x8e, 0x20, 0x42, 0x08, 0x19, 0x25, 0x91,
2328                0x7c, 0xff, 0x23, 0x9b, 0x31, 0xc8, 0xbd, 0xbd, 0xf4, 0xac, 0xae, 0x6b, 0xb8, 0xd9,
2329                0xcd, 0x21, 0x7b, 0x4f,
2330            ],
2331            Elements::Leftmost64_16 => [
2332                0x12, 0xaa, 0x85, 0xe0, 0x5c, 0x1e, 0x96, 0x22, 0x27, 0x9c, 0x4c, 0x2d, 0xdc, 0xf8,
2333                0x97, 0xc9, 0x5d, 0xdc, 0xc0, 0x11, 0x39, 0x97, 0x28, 0x3b, 0x6b, 0x3e, 0x09, 0x49,
2334                0xbc, 0x81, 0x13, 0xcb,
2335            ],
2336            Elements::Leftmost64_2 => [
2337                0xbc, 0xec, 0x97, 0xf4, 0x3b, 0xa5, 0x5c, 0xd4, 0x0d, 0x85, 0xa1, 0xe7, 0x6c, 0xba,
2338                0xde, 0x7b, 0x0b, 0x1e, 0x9f, 0x13, 0x97, 0x47, 0x79, 0x3d, 0xcb, 0x34, 0x80, 0xbe,
2339                0xe1, 0xf7, 0x51, 0xca,
2340            ],
2341            Elements::Leftmost64_32 => [
2342                0x9c, 0x89, 0x69, 0x39, 0x86, 0xe5, 0x57, 0x33, 0xab, 0x96, 0x2a, 0x30, 0x0b, 0x05,
2343                0x79, 0x50, 0x3d, 0x83, 0xde, 0x8a, 0xc1, 0x9b, 0x17, 0x9b, 0x41, 0x7e, 0x1c, 0xa2,
2344                0x53, 0x85, 0xb3, 0x8f,
2345            ],
2346            Elements::Leftmost64_4 => [
2347                0xd2, 0xd6, 0x45, 0x20, 0x92, 0xd6, 0x56, 0x6f, 0x89, 0xa1, 0xf6, 0x4e, 0x73, 0x65,
2348                0x96, 0xf9, 0x00, 0x0e, 0x5e, 0x6f, 0x63, 0xe4, 0x00, 0x17, 0xd0, 0xcb, 0x80, 0xf3,
2349                0xf7, 0xad, 0xfd, 0x18,
2350            ],
2351            Elements::Leftmost64_8 => [
2352                0xf7, 0x7b, 0x62, 0xbb, 0x01, 0xb9, 0x05, 0x11, 0xb6, 0xd0, 0x6e, 0xbf, 0x2e, 0x36,
2353                0xc0, 0x65, 0x65, 0xac, 0xb5, 0xaa, 0xd1, 0xef, 0xc7, 0x7c, 0x36, 0xa1, 0x0a, 0x26,
2354                0x1d, 0xe9, 0x21, 0xda,
2355            ],
2356            Elements::Leftmost8_1 => [
2357                0x5a, 0x73, 0x0b, 0x58, 0xe3, 0xab, 0xcb, 0x2f, 0x4d, 0xe2, 0x21, 0x59, 0x80, 0x30,
2358                0x23, 0x10, 0x2c, 0xd6, 0x64, 0x21, 0x91, 0x19, 0x20, 0xca, 0x21, 0xa2, 0xa0, 0x5c,
2359                0x9b, 0x21, 0x1c, 0xe8,
2360            ],
2361            Elements::Leftmost8_2 => [
2362                0x25, 0x79, 0x08, 0x56, 0x10, 0x3d, 0xce, 0x6c, 0x7b, 0xbb, 0x3d, 0xd7, 0x18, 0xb1,
2363                0x69, 0x10, 0x9c, 0xae, 0x85, 0x37, 0x99, 0xd1, 0x24, 0x56, 0xc8, 0x5d, 0x83, 0x49,
2364                0xec, 0x18, 0xdc, 0x53,
2365            ],
2366            Elements::Leftmost8_4 => [
2367                0x73, 0xd9, 0xf0, 0x18, 0x15, 0x7a, 0x14, 0x78, 0x4e, 0xe7, 0x0b, 0x21, 0x9c, 0xeb,
2368                0x40, 0x42, 0xfa, 0x62, 0x1d, 0x0e, 0xe6, 0xd5, 0x45, 0xa0, 0xfd, 0xba, 0xb9, 0x44,
2369                0x43, 0x46, 0xe3, 0x31,
2370            ],
2371            Elements::LinearCombination1 => [
2372                0x6d, 0x9f, 0x4a, 0x87, 0x0f, 0xbf, 0x74, 0x0c, 0x22, 0x0e, 0xff, 0xf3, 0x07, 0xb5,
2373                0xed, 0x91, 0xa5, 0x8c, 0x5e, 0x51, 0xa8, 0xad, 0xfc, 0x3b, 0x15, 0x90, 0x30, 0xf5,
2374                0x12, 0xd3, 0x99, 0x41,
2375            ],
2376            Elements::LinearVerify1 => [
2377                0x27, 0x83, 0x13, 0xd7, 0xce, 0x4a, 0xd5, 0x89, 0x11, 0xde, 0x24, 0xee, 0x54, 0x0d,
2378                0x19, 0xec, 0xeb, 0xb6, 0x2f, 0x4a, 0xb4, 0xa7, 0x1e, 0x2a, 0xad, 0xd4, 0x51, 0x2b,
2379                0x2e, 0x4b, 0xc2, 0xe2,
2380            ],
2381            Elements::LockTime => [
2382                0xa1, 0x68, 0x97, 0xc5, 0xdb, 0x49, 0x27, 0xc6, 0xcb, 0x07, 0xb1, 0x65, 0xbd, 0x2c,
2383                0xc3, 0x8b, 0x36, 0xa6, 0x02, 0x68, 0x6c, 0x74, 0xa1, 0x90, 0x34, 0xaa, 0x37, 0x87,
2384                0xac, 0x58, 0x2a, 0x0b,
2385            ],
2386            Elements::Low1 => [
2387                0xf2, 0x7b, 0x69, 0xbb, 0x09, 0x16, 0x09, 0xf5, 0x9e, 0x00, 0x33, 0x05, 0x0d, 0x01,
2388                0xa5, 0xbc, 0x77, 0xff, 0x07, 0xd9, 0x42, 0x70, 0x7a, 0x79, 0xcf, 0x5e, 0xe4, 0x10,
2389                0xa9, 0x98, 0xa0, 0x43,
2390            ],
2391            Elements::Low16 => [
2392                0x97, 0x7c, 0xbd, 0x1e, 0x7f, 0xfc, 0x05, 0xe7, 0x16, 0xd9, 0xc1, 0xb4, 0x9f, 0x7d,
2393                0x51, 0x7f, 0x85, 0x3d, 0xbf, 0x3e, 0x98, 0xa4, 0xc7, 0x48, 0x04, 0x6e, 0xac, 0xf4,
2394                0x17, 0xf8, 0x9c, 0x2f,
2395            ],
2396            Elements::Low32 => [
2397                0xbe, 0x41, 0x69, 0x82, 0x8f, 0x07, 0x67, 0x78, 0xb6, 0x0d, 0x54, 0x56, 0xf7, 0x88,
2398                0x6e, 0xd7, 0xf3, 0x0b, 0x10, 0x1d, 0x6c, 0xcb, 0xd9, 0xea, 0x0c, 0x4d, 0xb1, 0x42,
2399                0xea, 0xc6, 0x6b, 0x12,
2400            ],
2401            Elements::Low64 => [
2402                0x01, 0x9a, 0x66, 0xbf, 0xba, 0x17, 0x51, 0x68, 0x8b, 0xe7, 0x13, 0x89, 0xed, 0x7b,
2403                0xf3, 0x71, 0xb3, 0x01, 0x4d, 0xfb, 0x32, 0x95, 0x62, 0xac, 0x3b, 0x3e, 0x9d, 0xfe,
2404                0x92, 0x06, 0xa5, 0xbc,
2405            ],
2406            Elements::Low8 => [
2407                0x21, 0x7b, 0x56, 0x43, 0x95, 0x6b, 0x48, 0x33, 0xaa, 0x56, 0x22, 0xf0, 0x0f, 0x06,
2408                0x88, 0xba, 0x86, 0x0d, 0x4a, 0xdb, 0xf9, 0x40, 0xcb, 0xdc, 0xd2, 0xb5, 0x9f, 0x26,
2409                0xd6, 0x15, 0x93, 0xb1,
2410            ],
2411            Elements::Lt16 => [
2412                0x56, 0xa2, 0x0d, 0x55, 0xed, 0xb4, 0x43, 0x88, 0x18, 0x05, 0x44, 0xc3, 0xed, 0x40,
2413                0x41, 0x45, 0xa3, 0xb6, 0x6f, 0xd2, 0xc4, 0x11, 0x38, 0x42, 0xf6, 0x4e, 0xae, 0xaf,
2414                0xba, 0xd4, 0xbb, 0x06,
2415            ],
2416            Elements::Lt32 => [
2417                0xca, 0xb0, 0xdc, 0x5b, 0x0e, 0xcb, 0xf6, 0xd2, 0x48, 0x16, 0xfc, 0x20, 0x10, 0xfc,
2418                0x31, 0x19, 0x36, 0x63, 0xc3, 0x06, 0x96, 0x8d, 0x9c, 0xee, 0x3b, 0x00, 0x4c, 0x0b,
2419                0xc1, 0x84, 0xb4, 0x78,
2420            ],
2421            Elements::Lt64 => [
2422                0x47, 0xd6, 0x7e, 0x52, 0xb2, 0x7b, 0xa7, 0x8e, 0xdd, 0x07, 0x5a, 0xa2, 0x70, 0xde,
2423                0xd0, 0x07, 0xa7, 0xa9, 0xa6, 0x84, 0x99, 0x34, 0x4f, 0x28, 0x62, 0xf5, 0x06, 0x90,
2424                0x49, 0xa0, 0xce, 0xfe,
2425            ],
2426            Elements::Lt8 => [
2427                0x73, 0xd0, 0x04, 0x46, 0x55, 0xc0, 0xdf, 0x45, 0xc2, 0x71, 0xa1, 0x71, 0x3f, 0xf9,
2428                0xb9, 0xa4, 0x3d, 0xde, 0x56, 0xe6, 0x74, 0xd1, 0x75, 0x4e, 0x76, 0xed, 0xb1, 0x6f,
2429                0x94, 0x9c, 0x4f, 0xab,
2430            ],
2431            Elements::Maj1 => [
2432                0xcb, 0x2d, 0x98, 0x6d, 0x7f, 0x00, 0x10, 0x7a, 0x3c, 0x25, 0xf6, 0xb2, 0xf1, 0x48,
2433                0x91, 0xd0, 0x2e, 0x20, 0xae, 0x16, 0xf0, 0xa1, 0x25, 0x2c, 0x92, 0xd9, 0xb5, 0x8a,
2434                0xe7, 0x33, 0x88, 0xaa,
2435            ],
2436            Elements::Maj16 => [
2437                0x0a, 0xf6, 0xd0, 0xc1, 0x71, 0xfe, 0x33, 0xa2, 0x15, 0x9b, 0xf9, 0x88, 0x00, 0xf0,
2438                0x41, 0x2c, 0x25, 0x97, 0xe9, 0x97, 0x84, 0xd0, 0x74, 0xfd, 0xfa, 0x33, 0xd7, 0xfd,
2439                0xe5, 0x97, 0xdd, 0xfd,
2440            ],
2441            Elements::Maj32 => [
2442                0x30, 0x60, 0x83, 0x8d, 0x48, 0x45, 0x6f, 0x33, 0x92, 0xd5, 0xd6, 0x9b, 0x5e, 0xec,
2443                0x08, 0x92, 0x76, 0xcd, 0x58, 0xbb, 0x67, 0xa1, 0x2c, 0x64, 0x2e, 0xc7, 0x3a, 0xeb,
2444                0x9a, 0xda, 0xcb, 0xdd,
2445            ],
2446            Elements::Maj64 => [
2447                0x8e, 0xbc, 0xc1, 0x74, 0x57, 0xea, 0x2b, 0x14, 0x23, 0x1b, 0x0e, 0x90, 0x1e, 0xa7,
2448                0xb1, 0xd4, 0x7b, 0x9b, 0x78, 0x98, 0x63, 0x72, 0xa4, 0x41, 0x6f, 0xe7, 0x3f, 0x67,
2449                0x63, 0xfe, 0xb2, 0x4b,
2450            ],
2451            Elements::Maj8 => [
2452                0x89, 0x30, 0xd1, 0xd0, 0x99, 0x1b, 0x0a, 0x58, 0x1d, 0x0b, 0x1d, 0x85, 0xad, 0x72,
2453                0x14, 0x7d, 0x66, 0x49, 0xa3, 0x59, 0x93, 0x28, 0x3f, 0xc9, 0x72, 0x14, 0x43, 0x1f,
2454                0x0b, 0x6a, 0x7a, 0xa8,
2455            ],
2456            Elements::Max16 => [
2457                0xe0, 0x11, 0x47, 0x17, 0x69, 0x1a, 0xc1, 0xa7, 0x39, 0x28, 0x8f, 0xc6, 0xff, 0xa1,
2458                0xc6, 0x50, 0x7c, 0x43, 0xe6, 0xf1, 0xd4, 0xc1, 0x87, 0x70, 0xff, 0xa1, 0x66, 0xae,
2459                0x83, 0x9d, 0xd5, 0x33,
2460            ],
2461            Elements::Max32 => [
2462                0x1d, 0x72, 0x3c, 0xb3, 0x89, 0x94, 0x22, 0x19, 0xec, 0x10, 0x34, 0x85, 0x31, 0x7f,
2463                0xa5, 0xd8, 0x7e, 0xe1, 0x5c, 0x24, 0xb2, 0x08, 0x0f, 0x50, 0x46, 0x65, 0x0d, 0x80,
2464                0x30, 0x8b, 0x18, 0x9d,
2465            ],
2466            Elements::Max64 => [
2467                0x00, 0x73, 0xac, 0x3c, 0x6e, 0xa9, 0x39, 0xdc, 0xc7, 0xee, 0xe4, 0xea, 0x63, 0xdc,
2468                0xfd, 0x75, 0x20, 0x37, 0x35, 0x5b, 0x48, 0x4f, 0x6e, 0x70, 0x16, 0xb3, 0x00, 0xe2,
2469                0xd2, 0x8c, 0x07, 0xc3,
2470            ],
2471            Elements::Max8 => [
2472                0x6b, 0xc1, 0x03, 0x70, 0xf3, 0xe7, 0xa7, 0xb9, 0x2a, 0xcb, 0x14, 0x23, 0xbb, 0xdf,
2473                0x0b, 0x3d, 0x7e, 0x3c, 0xd0, 0xd2, 0xdb, 0xc7, 0x05, 0xa3, 0x4d, 0x8d, 0xc9, 0x9c,
2474                0x91, 0x04, 0x22, 0xfb,
2475            ],
2476            Elements::Median16 => [
2477                0x24, 0x14, 0xe3, 0xc4, 0x39, 0x65, 0x9d, 0x8a, 0xa9, 0xd0, 0x87, 0xe1, 0xad, 0xe7,
2478                0x72, 0x66, 0x67, 0x3d, 0x1c, 0x8b, 0xd4, 0xe7, 0x50, 0x1b, 0x22, 0xac, 0x46, 0xa3,
2479                0xff, 0x39, 0x97, 0x5d,
2480            ],
2481            Elements::Median32 => [
2482                0x07, 0x92, 0x35, 0x6b, 0x61, 0x0b, 0x57, 0xd0, 0xec, 0x19, 0x9e, 0x98, 0x53, 0x5e,
2483                0xa9, 0xbc, 0xcc, 0xe8, 0x43, 0xa5, 0xdf, 0x5d, 0xd2, 0x40, 0x8c, 0x41, 0x48, 0x86,
2484                0xdf, 0xd6, 0xbd, 0x1e,
2485            ],
2486            Elements::Median64 => [
2487                0x07, 0x66, 0xd8, 0x9b, 0x43, 0x0f, 0xfd, 0xf0, 0x38, 0x69, 0x1b, 0x18, 0x43, 0x9c,
2488                0xd6, 0xfc, 0x49, 0x29, 0x17, 0x2e, 0xa8, 0x84, 0xfd, 0xaf, 0x16, 0x69, 0x36, 0xb3,
2489                0x8b, 0x15, 0xfd, 0x0c,
2490            ],
2491            Elements::Median8 => [
2492                0xa4, 0xa0, 0xb6, 0x31, 0x0f, 0xf0, 0xed, 0x4a, 0x4c, 0x3e, 0x03, 0xeb, 0xc7, 0xa9,
2493                0x13, 0x06, 0xef, 0x66, 0x04, 0x24, 0xbc, 0x95, 0xa0, 0xd3, 0xf2, 0xfd, 0xb7, 0x1f,
2494                0xb6, 0xaf, 0xd8, 0xb7,
2495            ],
2496            Elements::Min16 => [
2497                0xf1, 0x58, 0xf4, 0x0a, 0x86, 0x09, 0x93, 0xb4, 0x10, 0x7f, 0xb2, 0x71, 0xfb, 0x4c,
2498                0x8f, 0x95, 0x5b, 0xa4, 0x54, 0x2a, 0xd1, 0x82, 0x1c, 0xd2, 0xf1, 0x3c, 0x88, 0x0c,
2499                0xa4, 0xbe, 0xe2, 0xe2,
2500            ],
2501            Elements::Min32 => [
2502                0xe5, 0xe4, 0x13, 0xdc, 0x5d, 0xe5, 0xe2, 0x2d, 0x66, 0xf3, 0x2d, 0x8d, 0xbf, 0x50,
2503                0x05, 0x3e, 0xd2, 0x78, 0xe1, 0x75, 0xc0, 0xd4, 0xb3, 0x44, 0xeb, 0xd4, 0x61, 0xbe,
2504                0xb1, 0x08, 0xe5, 0x5e,
2505            ],
2506            Elements::Min64 => [
2507                0x43, 0xd8, 0x2f, 0x6c, 0x61, 0x28, 0xaa, 0x01, 0xa9, 0x97, 0xbb, 0x17, 0xe5, 0xe7,
2508                0xf5, 0x01, 0xe7, 0xbe, 0x7d, 0xb9, 0x58, 0x9e, 0x56, 0x6d, 0xe9, 0x7a, 0x32, 0xea,
2509                0xe7, 0xe7, 0xb3, 0x39,
2510            ],
2511            Elements::Min8 => [
2512                0x6b, 0x01, 0x2c, 0xa3, 0x18, 0x5d, 0xc0, 0x05, 0xe8, 0x94, 0x2c, 0xfb, 0xc9, 0xf2,
2513                0x38, 0xdc, 0xed, 0xaf, 0x0c, 0x00, 0x43, 0x52, 0x64, 0x47, 0xe3, 0xec, 0x31, 0xce,
2514                0xfa, 0x6e, 0x40, 0x64,
2515            ],
2516            Elements::Modulo16 => [
2517                0x62, 0xc1, 0x79, 0xac, 0x84, 0xc5, 0x75, 0x0b, 0x42, 0x5f, 0x9a, 0x1b, 0x8f, 0x81,
2518                0xed, 0xaa, 0x7f, 0x5c, 0xf2, 0x2c, 0x19, 0xd8, 0x6b, 0x0d, 0xcf, 0x96, 0xde, 0xa6,
2519                0xba, 0xd9, 0x9b, 0x3b,
2520            ],
2521            Elements::Modulo32 => [
2522                0xa1, 0xf0, 0x1c, 0x10, 0x6f, 0xc3, 0x6a, 0x76, 0x4e, 0x99, 0xb2, 0x33, 0x98, 0xe2,
2523                0x1e, 0x7c, 0x26, 0x7f, 0x88, 0x9f, 0xcc, 0xeb, 0xd1, 0x48, 0x7d, 0x3d, 0xe1, 0xcc,
2524                0x67, 0xc3, 0x2b, 0xd9,
2525            ],
2526            Elements::Modulo64 => [
2527                0x50, 0xc8, 0x2f, 0xd0, 0x31, 0x09, 0xc9, 0x8b, 0x72, 0x37, 0xe9, 0x16, 0x74, 0x04,
2528                0x19, 0x64, 0x38, 0x1e, 0x6c, 0x2e, 0xbb, 0xe2, 0x5b, 0xf3, 0xe0, 0xd3, 0x7a, 0x9f,
2529                0x06, 0x0f, 0x15, 0x02,
2530            ],
2531            Elements::Modulo8 => [
2532                0x5c, 0x63, 0xc7, 0x7a, 0x16, 0x08, 0xe2, 0xf6, 0xa3, 0x74, 0x8c, 0x11, 0x0f, 0xbb,
2533                0x9a, 0x1c, 0x56, 0x9f, 0xb4, 0xd5, 0x40, 0xf3, 0xdd, 0x2e, 0x4f, 0x80, 0xe9, 0x0d,
2534                0xd5, 0xea, 0x99, 0x82,
2535            ],
2536            Elements::Multiply16 => [
2537                0x46, 0xe6, 0x2a, 0xbf, 0x8e, 0x30, 0xa7, 0x74, 0x6d, 0xe0, 0xe9, 0x29, 0xf7, 0xbe,
2538                0xed, 0xdb, 0xde, 0x8b, 0x26, 0x9b, 0xab, 0x08, 0xf7, 0x6e, 0x95, 0x47, 0x10, 0x8b,
2539                0x1c, 0x36, 0x01, 0x74,
2540            ],
2541            Elements::Multiply32 => [
2542                0x2d, 0xec, 0xdc, 0x5b, 0x0c, 0x6f, 0xf6, 0x3d, 0x11, 0xf5, 0x38, 0x52, 0xe0, 0xde,
2543                0xed, 0x11, 0x44, 0x81, 0x35, 0x5b, 0xb6, 0xc6, 0xce, 0x15, 0x46, 0xae, 0x9f, 0x81,
2544                0x5b, 0xee, 0x77, 0x50,
2545            ],
2546            Elements::Multiply64 => [
2547                0xbf, 0xa8, 0x62, 0x6d, 0xbf, 0x10, 0x00, 0x1d, 0xe3, 0x90, 0xd9, 0x97, 0xf2, 0xee,
2548                0x7b, 0x19, 0x0c, 0x24, 0xa7, 0x8c, 0xfe, 0xcb, 0x91, 0xf5, 0xd7, 0xc1, 0x0c, 0x3f,
2549                0x9d, 0xdb, 0xb1, 0xe6,
2550            ],
2551            Elements::Multiply8 => [
2552                0x29, 0xda, 0x13, 0x37, 0x4f, 0x7c, 0xb3, 0x08, 0x40, 0x5f, 0xe2, 0x30, 0xf8, 0x99,
2553                0x48, 0x5c, 0x50, 0x0e, 0x6e, 0x95, 0x20, 0xc1, 0x5e, 0x8a, 0x76, 0xe5, 0x3a, 0x92,
2554                0xe7, 0xac, 0x64, 0xd6,
2555            ],
2556            Elements::Negate16 => [
2557                0xf6, 0x42, 0x17, 0x3b, 0x85, 0xef, 0x21, 0x96, 0x9d, 0x8d, 0x90, 0x48, 0x80, 0x7e,
2558                0x3d, 0x4f, 0xac, 0xf3, 0xf5, 0xf9, 0xe5, 0x9a, 0xa5, 0xcf, 0x0c, 0x60, 0xf8, 0x74,
2559                0x22, 0xed, 0x7c, 0x8f,
2560            ],
2561            Elements::Negate32 => [
2562                0x54, 0x9b, 0x65, 0xce, 0x97, 0xc6, 0xb3, 0x34, 0xb8, 0xae, 0x94, 0x56, 0x96, 0x0e,
2563                0x36, 0x5b, 0xb2, 0x84, 0xd7, 0x6d, 0x40, 0x05, 0xe9, 0x21, 0xf4, 0x89, 0xbc, 0x36,
2564                0x26, 0x17, 0x1b, 0x06,
2565            ],
2566            Elements::Negate64 => [
2567                0x35, 0xac, 0xca, 0x27, 0xce, 0x65, 0x85, 0x79, 0xef, 0x1c, 0x55, 0xad, 0x1a, 0xbe,
2568                0xa0, 0x05, 0x0d, 0x93, 0x66, 0xd1, 0x22, 0x09, 0xad, 0x13, 0x05, 0x25, 0x49, 0xc3,
2569                0x43, 0x64, 0x91, 0xd0,
2570            ],
2571            Elements::Negate8 => [
2572                0xd8, 0x71, 0xc5, 0x42, 0x47, 0x3f, 0x4d, 0xd9, 0x02, 0xd3, 0x1f, 0xe3, 0xfc, 0x9a,
2573                0xc0, 0xf3, 0x31, 0x9e, 0x42, 0xe8, 0x0c, 0xae, 0x21, 0x81, 0xff, 0xc8, 0x5e, 0x6c,
2574                0x60, 0xfb, 0x09, 0x88,
2575            ],
2576            Elements::NewIssuanceContract => [
2577                0xdb, 0x64, 0x80, 0x8c, 0x3f, 0xf4, 0x48, 0x80, 0xd7, 0x2b, 0xc2, 0x95, 0xd9, 0xac,
2578                0x06, 0x43, 0xe5, 0x14, 0x04, 0xde, 0x53, 0x98, 0xad, 0x9e, 0x93, 0x1b, 0xd3, 0xd2,
2579                0xad, 0xbc, 0xa6, 0xc4,
2580            ],
2581            Elements::NonceHash => [
2582                0xfb, 0x1e, 0x03, 0x44, 0xdc, 0xda, 0xf9, 0xdb, 0x91, 0xb9, 0x87, 0xe8, 0xf9, 0x66,
2583                0x10, 0x67, 0x9f, 0x05, 0xde, 0xb2, 0x06, 0xb4, 0x01, 0x05, 0x75, 0x02, 0xa4, 0x84,
2584                0xaa, 0x87, 0xf8, 0xbf,
2585            ],
2586            Elements::NumInputs => [
2587                0xb2, 0x28, 0x8e, 0xba, 0xad, 0xcb, 0xcf, 0xce, 0x1c, 0x63, 0x19, 0x64, 0xc8, 0x6b,
2588                0x12, 0x7d, 0x6f, 0x91, 0xdc, 0x65, 0x7c, 0x59, 0xa7, 0xfb, 0x45, 0x3e, 0x91, 0x11,
2589                0xd8, 0x74, 0x81, 0xf5,
2590            ],
2591            Elements::NumOutputs => [
2592                0x26, 0x7d, 0x41, 0x65, 0x44, 0x93, 0x90, 0x3e, 0x02, 0x57, 0x75, 0x1a, 0xe6, 0xd4,
2593                0x2d, 0x9c, 0xe1, 0xbb, 0x92, 0x24, 0x6d, 0x0e, 0xf7, 0x67, 0xc3, 0x37, 0xb0, 0xc3,
2594                0x2b, 0x19, 0x72, 0xfd,
2595            ],
2596            Elements::One16 => [
2597                0x3f, 0x9f, 0x8d, 0xd1, 0x4c, 0x46, 0xee, 0x02, 0x47, 0x15, 0x57, 0x92, 0x9a, 0xc2,
2598                0xbb, 0x6c, 0x1a, 0xca, 0x00, 0x52, 0x1d, 0x8a, 0xfa, 0xf0, 0xdc, 0xd9, 0xf2, 0xca,
2599                0x7f, 0x31, 0xe6, 0x04,
2600            ],
2601            Elements::One32 => [
2602                0x47, 0x8d, 0xc3, 0x9d, 0xc3, 0x99, 0x5e, 0x2e, 0xdb, 0x7e, 0xc6, 0x74, 0x65, 0x6c,
2603                0xae, 0x79, 0x8f, 0x52, 0xe5, 0x72, 0x92, 0x61, 0x74, 0xa6, 0x68, 0xcc, 0x97, 0xbc,
2604                0xa4, 0x48, 0xd1, 0xcc,
2605            ],
2606            Elements::One64 => [
2607                0xa3, 0x92, 0xce, 0xfc, 0x0d, 0xa5, 0x3c, 0x65, 0xae, 0xe6, 0x12, 0xf5, 0xc6, 0x81,
2608                0x6c, 0xa8, 0x92, 0xfc, 0x15, 0x6d, 0x43, 0x71, 0x48, 0x76, 0xb3, 0xa0, 0x05, 0x68,
2609                0xe1, 0xba, 0x3e, 0xba,
2610            ],
2611            Elements::One8 => [
2612                0xff, 0x59, 0x4e, 0x22, 0xbf, 0xd7, 0x58, 0x13, 0xc0, 0x56, 0xe0, 0xa2, 0x34, 0xed,
2613                0x12, 0xfa, 0x82, 0x87, 0xd1, 0xd5, 0x31, 0x6f, 0x23, 0x90, 0x2b, 0xf0, 0x79, 0xdb,
2614                0xcc, 0x4f, 0x4e, 0xa8,
2615            ],
2616            Elements::Or1 => [
2617                0x9b, 0xf5, 0x91, 0x74, 0x41, 0x0a, 0x80, 0x9d, 0x3d, 0xa2, 0xb5, 0x8c, 0x7e, 0x0d,
2618                0x05, 0xc5, 0x5c, 0xec, 0x38, 0xbd, 0xaa, 0x5f, 0xca, 0xc3, 0x82, 0xa3, 0x11, 0x77,
2619                0x0e, 0xe0, 0xeb, 0x38,
2620            ],
2621            Elements::Or16 => [
2622                0xdd, 0x9a, 0x31, 0x93, 0xd6, 0x19, 0xd9, 0x59, 0xfa, 0x0b, 0x6d, 0x8b, 0x47, 0xaf,
2623                0x78, 0x54, 0xf7, 0xe0, 0x46, 0x7b, 0xa3, 0x59, 0x01, 0xce, 0x43, 0xd8, 0x00, 0xfc,
2624                0xaf, 0x73, 0x0f, 0xf9,
2625            ],
2626            Elements::Or32 => [
2627                0x9a, 0x01, 0x9f, 0x07, 0xdf, 0x49, 0x96, 0xb3, 0x3e, 0x64, 0x7f, 0x4d, 0xe7, 0xe5,
2628                0x6c, 0x1d, 0x8f, 0x03, 0x26, 0x9c, 0xbf, 0xa3, 0xc7, 0x58, 0x2c, 0xfe, 0x80, 0x8e,
2629                0x90, 0x98, 0x70, 0xb7,
2630            ],
2631            Elements::Or64 => [
2632                0xc2, 0x4f, 0x35, 0x80, 0x05, 0xf8, 0x03, 0x77, 0x2b, 0x1c, 0x3e, 0x43, 0x9c, 0xf1,
2633                0xb7, 0x09, 0xbd, 0x9f, 0x4d, 0x42, 0x52, 0x75, 0x91, 0x30, 0x3a, 0x36, 0xf6, 0xb1,
2634                0xc3, 0xcf, 0x29, 0xcc,
2635            ],
2636            Elements::Or8 => [
2637                0x84, 0xb5, 0x36, 0x89, 0xf2, 0x1d, 0x4e, 0x69, 0x7d, 0x0f, 0xe8, 0x98, 0x8c, 0xe7,
2638                0x36, 0xab, 0x72, 0xc9, 0xc8, 0x6f, 0x84, 0x75, 0x89, 0xda, 0xa9, 0xae, 0x6a, 0x78,
2639                0x46, 0x30, 0xe6, 0x20,
2640            ],
2641            Elements::OutpointHash => [
2642                0x8d, 0x2a, 0x5a, 0xa0, 0x6e, 0x98, 0xc4, 0x1b, 0x30, 0xfd, 0x07, 0x03, 0xe5, 0xe5,
2643                0x4c, 0x86, 0xb4, 0x2b, 0xee, 0x33, 0xbc, 0x89, 0xcb, 0x60, 0x93, 0xcd, 0xb0, 0x94,
2644                0x05, 0xa7, 0x2d, 0x9d,
2645            ],
2646            Elements::OutputAmount => [
2647                0x55, 0xe4, 0x13, 0x99, 0x21, 0x69, 0x40, 0x8e, 0x33, 0x8e, 0x11, 0xa8, 0xd7, 0xbe,
2648                0x60, 0x2b, 0x3e, 0xc9, 0x51, 0x1e, 0x7e, 0xb6, 0x91, 0xdf, 0x32, 0xd9, 0x79, 0x7a,
2649                0x63, 0x95, 0xa1, 0xa1,
2650            ],
2651            Elements::OutputAmountsHash => [
2652                0x40, 0x23, 0x69, 0x63, 0xe1, 0x0e, 0xf8, 0xad, 0x9c, 0xb6, 0xe0, 0xa7, 0xc7, 0x9a,
2653                0xc8, 0x66, 0x0d, 0x2f, 0xc1, 0xa5, 0x7f, 0xef, 0xf8, 0x85, 0x15, 0xa7, 0x85, 0x27,
2654                0x91, 0xb1, 0x86, 0xcb,
2655            ],
2656            Elements::OutputAsset => [
2657                0x57, 0x5a, 0x49, 0xba, 0xb2, 0x1f, 0xfe, 0xe8, 0xe5, 0xbd, 0x00, 0xed, 0xce, 0x32,
2658                0x40, 0x61, 0x04, 0xa0, 0x5d, 0xde, 0xf5, 0xfc, 0x31, 0xa1, 0xa6, 0x45, 0xb1, 0x29,
2659                0x54, 0x8c, 0x8f, 0x3e,
2660            ],
2661            Elements::OutputHash => [
2662                0x7c, 0xb1, 0x7f, 0x8f, 0xc7, 0xa1, 0xae, 0x4e, 0xfc, 0xe3, 0x0a, 0x14, 0x54, 0xe5,
2663                0x2f, 0x85, 0x85, 0x21, 0x3c, 0xd0, 0xf3, 0x67, 0xa1, 0x27, 0xac, 0x27, 0xbb, 0x97,
2664                0x66, 0xea, 0x9e, 0xee,
2665            ],
2666            Elements::OutputIsFee => [
2667                0x9f, 0xbb, 0xe8, 0xae, 0xbd, 0xed, 0xd5, 0x77, 0xae, 0x46, 0x62, 0x80, 0xa9, 0x9b,
2668                0x67, 0xb7, 0x34, 0x32, 0x87, 0xef, 0x34, 0x06, 0x92, 0x53, 0x4a, 0x00, 0x98, 0x03,
2669                0x15, 0xe5, 0x17, 0x72,
2670            ],
2671            Elements::OutputNonce => [
2672                0x71, 0x75, 0xfd, 0x99, 0xa2, 0xba, 0xa1, 0xc3, 0xaf, 0xaa, 0xf7, 0xfa, 0xbd, 0xaa,
2673                0x67, 0xc2, 0xc8, 0x27, 0x48, 0x3b, 0xc8, 0xa0, 0xb9, 0x76, 0x50, 0xcb, 0x79, 0x42,
2674                0xea, 0x29, 0x5a, 0x18,
2675            ],
2676            Elements::OutputNoncesHash => [
2677                0x50, 0xf1, 0x87, 0x66, 0xde, 0x98, 0x28, 0xdb, 0x0a, 0x8c, 0x41, 0xd7, 0xbe, 0xb8,
2678                0x40, 0xf7, 0x7b, 0xc6, 0xe1, 0x21, 0xff, 0x12, 0x3d, 0x54, 0x96, 0xf1, 0xea, 0x0d,
2679                0x6a, 0x78, 0xb8, 0x3a,
2680            ],
2681            Elements::OutputNullDatum => [
2682                0x38, 0xa5, 0xa7, 0xe8, 0x61, 0xb3, 0xb3, 0x6c, 0xce, 0x68, 0x3a, 0x77, 0x2d, 0xb0,
2683                0xc8, 0x62, 0x8b, 0x7f, 0xd3, 0xb4, 0xcf, 0x8e, 0x7b, 0xce, 0x70, 0x75, 0x8f, 0xa6,
2684                0xf6, 0xf1, 0x47, 0xbf,
2685            ],
2686            Elements::OutputRangeProof => [
2687                0x6f, 0xf9, 0xef, 0x3d, 0xac, 0x50, 0x43, 0x10, 0xdf, 0xbc, 0x60, 0x56, 0x1d, 0x2a,
2688                0xdd, 0xeb, 0x44, 0x93, 0x2f, 0x77, 0x7e, 0x7f, 0x13, 0xad, 0xf0, 0x77, 0x4e, 0xb6,
2689                0xb1, 0x4d, 0xf9, 0x66,
2690            ],
2691            Elements::OutputRangeProofsHash => [
2692                0x0d, 0x7d, 0x8a, 0xc9, 0x7a, 0xf9, 0x53, 0x9a, 0xbb, 0xa6, 0x4d, 0x81, 0x04, 0xd1,
2693                0x7e, 0x97, 0x08, 0x54, 0x67, 0x7c, 0x27, 0x46, 0x1d, 0x25, 0xdf, 0x21, 0xa7, 0xf6,
2694                0xb6, 0x62, 0x08, 0x1e,
2695            ],
2696            Elements::OutputScriptHash => [
2697                0x2f, 0x51, 0x39, 0x26, 0x6f, 0x14, 0x3a, 0x33, 0xe1, 0x66, 0x8e, 0x59, 0x4f, 0x43,
2698                0xe8, 0xd1, 0x39, 0x44, 0x07, 0xe3, 0xa9, 0xb8, 0xb8, 0x02, 0xb3, 0x9a, 0x5e, 0x1e,
2699                0xdc, 0x54, 0xe8, 0x51,
2700            ],
2701            Elements::OutputScriptsHash => [
2702                0x21, 0x33, 0x3a, 0xc9, 0x58, 0xa4, 0xeb, 0xfd, 0x5e, 0xab, 0x79, 0x56, 0xdb, 0x73,
2703                0xed, 0x03, 0x26, 0x94, 0x26, 0xaf, 0x8d, 0x7d, 0x24, 0x98, 0xde, 0x57, 0xee, 0xf6,
2704                0x87, 0x04, 0xfb, 0x0a,
2705            ],
2706            Elements::OutputSurjectionProof => [
2707                0x09, 0x16, 0x60, 0x08, 0x1d, 0x52, 0xc3, 0x3f, 0x17, 0xa9, 0x56, 0xbd, 0xda, 0xc6,
2708                0x2a, 0xa2, 0xd2, 0xed, 0x92, 0x8f, 0x8c, 0xff, 0xef, 0x4c, 0xf8, 0xdb, 0xb6, 0x97,
2709                0xb1, 0x53, 0xaa, 0x65,
2710            ],
2711            Elements::OutputSurjectionProofsHash => [
2712                0x36, 0x30, 0xb5, 0x20, 0x83, 0x02, 0x64, 0x1b, 0xf1, 0x9c, 0x4b, 0xf5, 0xca, 0x04,
2713                0x7a, 0xc3, 0xeb, 0x7a, 0xf5, 0x4d, 0x5d, 0x3f, 0x5b, 0xf8, 0xf1, 0xd4, 0x13, 0x12,
2714                0x49, 0x9d, 0x63, 0x84,
2715            ],
2716            Elements::OutputsHash => [
2717                0x95, 0xb3, 0x51, 0x1a, 0xea, 0x00, 0xd0, 0x43, 0xa4, 0xe0, 0x28, 0xb2, 0x5a, 0x17,
2718                0x1c, 0x74, 0x2e, 0xc2, 0xff, 0x7a, 0xd3, 0xa7, 0xdf, 0x2f, 0x1f, 0x6e, 0xda, 0xd0,
2719                0x8b, 0xad, 0x2b, 0x69,
2720            ],
2721            Elements::ParseLock => [
2722                0x3d, 0x38, 0x36, 0xfd, 0x30, 0x85, 0xc1, 0xfb, 0xac, 0x6c, 0xd5, 0xfa, 0x0d, 0xbf,
2723                0x4a, 0x3f, 0xb2, 0x55, 0x45, 0x93, 0x17, 0xa2, 0x66, 0xd6, 0xd6, 0xf7, 0x38, 0x2b,
2724                0xb0, 0x5f, 0x07, 0xad,
2725            ],
2726            Elements::ParseSequence => [
2727                0x74, 0xf3, 0x5c, 0x01, 0x9e, 0xf5, 0x14, 0xb7, 0x0a, 0xb0, 0x08, 0xbf, 0x2a, 0x12,
2728                0x6d, 0xe7, 0xe0, 0x0f, 0x6e, 0x3c, 0xcd, 0x28, 0x5d, 0x51, 0xdb, 0xd3, 0xac, 0x71,
2729                0xbe, 0xa9, 0xc8, 0x8d,
2730            ],
2731            Elements::PointVerify1 => [
2732                0x90, 0xa3, 0xd6, 0x69, 0xb0, 0x0d, 0xa7, 0x95, 0xef, 0xb2, 0xbe, 0xd8, 0xc3, 0x70,
2733                0xc9, 0xe3, 0xea, 0x0f, 0x19, 0xc4, 0x1c, 0x7c, 0xf2, 0x3e, 0x49, 0x2e, 0x33, 0x17,
2734                0x1a, 0x47, 0xf5, 0xff,
2735            ],
2736            Elements::ReissuanceBlinding => [
2737                0xeb, 0x6e, 0x58, 0x1e, 0x20, 0xba, 0x0b, 0xab, 0xe9, 0x04, 0xc8, 0xda, 0x71, 0xa8,
2738                0x1f, 0x7c, 0x88, 0xb9, 0xcf, 0x4f, 0x42, 0xd7, 0x8b, 0x54, 0x0c, 0x1b, 0x39, 0x8c,
2739                0x3f, 0x10, 0x5c, 0xcc,
2740            ],
2741            Elements::ReissuanceEntropy => [
2742                0xd1, 0xd2, 0x2c, 0x49, 0x7f, 0x12, 0x9c, 0x6d, 0x6f, 0xdb, 0xe4, 0x91, 0x36, 0x4a,
2743                0x35, 0x13, 0xbc, 0xd6, 0x6e, 0x15, 0x61, 0x8c, 0xbb, 0xe2, 0xe5, 0x07, 0x39, 0xbd,
2744                0x83, 0x4d, 0xb7, 0xf8,
2745            ],
2746            Elements::RightExtend16_32 => [
2747                0x78, 0x07, 0x16, 0xd3, 0xe8, 0x29, 0x1a, 0x51, 0xe4, 0x5a, 0xda, 0x50, 0x55, 0x8e,
2748                0xfe, 0x41, 0x1c, 0x47, 0x5c, 0x08, 0x5e, 0xec, 0x5a, 0x28, 0xad, 0x97, 0x91, 0xc3,
2749                0x12, 0xfe, 0xe2, 0xbc,
2750            ],
2751            Elements::RightExtend16_64 => [
2752                0xc7, 0x70, 0x49, 0x7e, 0x45, 0x23, 0x08, 0xeb, 0xf5, 0x2e, 0x51, 0xb0, 0x58, 0x5e,
2753                0x91, 0x51, 0xe0, 0xff, 0xc3, 0x50, 0x86, 0xab, 0x77, 0x2d, 0x72, 0x41, 0x53, 0x2a,
2754                0x1b, 0xe1, 0x5e, 0x07,
2755            ],
2756            Elements::RightExtend32_64 => [
2757                0x42, 0xb4, 0x3a, 0xdc, 0x74, 0xb5, 0x26, 0x6c, 0x91, 0xd7, 0x3d, 0xf4, 0x91, 0xdc,
2758                0xae, 0x59, 0x73, 0x88, 0x04, 0xeb, 0x44, 0x0b, 0x23, 0xda, 0x32, 0x75, 0x30, 0x48,
2759                0x74, 0x86, 0xb7, 0xe8,
2760            ],
2761            Elements::RightExtend8_16 => [
2762                0xbc, 0xb2, 0x68, 0x3a, 0x8c, 0xb8, 0xb8, 0xc2, 0x35, 0xfa, 0xa8, 0x96, 0xa9, 0xc0,
2763                0x69, 0xe1, 0xb5, 0x5b, 0xb0, 0x55, 0x8e, 0x73, 0x9e, 0x70, 0xe2, 0x89, 0x14, 0x21,
2764                0x1e, 0x32, 0x75, 0xc8,
2765            ],
2766            Elements::RightExtend8_32 => [
2767                0x6d, 0xdb, 0x55, 0x48, 0xfd, 0x58, 0x3c, 0xd2, 0xd3, 0x58, 0x6e, 0x6b, 0x8b, 0xf9,
2768                0x95, 0x24, 0x6b, 0x61, 0x93, 0x4f, 0x49, 0x76, 0x44, 0x67, 0x77, 0xdd, 0x57, 0x40,
2769                0xb3, 0x19, 0xe4, 0x62,
2770            ],
2771            Elements::RightExtend8_64 => [
2772                0xda, 0x4f, 0x9c, 0x21, 0x45, 0x51, 0x26, 0x82, 0x07, 0x58, 0xa2, 0xe4, 0xb5, 0x3f,
2773                0xce, 0xb4, 0x52, 0x3e, 0x6e, 0x7a, 0x29, 0x23, 0xa1, 0xa1, 0x61, 0xfc, 0x37, 0x89,
2774                0x2a, 0xc8, 0xda, 0x2a,
2775            ],
2776            Elements::RightPadHigh16_32 => [
2777                0x3e, 0x4e, 0x5e, 0x9e, 0x71, 0xe1, 0x37, 0xa2, 0x68, 0x63, 0x43, 0xe0, 0x5a, 0xc5,
2778                0x63, 0x16, 0xac, 0xfc, 0x58, 0x99, 0x1c, 0xb3, 0x8d, 0xb1, 0xb3, 0x23, 0x44, 0x13,
2779                0xf7, 0x30, 0xa1, 0x42,
2780            ],
2781            Elements::RightPadHigh16_64 => [
2782                0xde, 0x09, 0xdf, 0x9d, 0x43, 0xdd, 0xad, 0x2d, 0x69, 0x12, 0x04, 0x98, 0x6c, 0xf0,
2783                0x81, 0x9d, 0x6b, 0x80, 0x45, 0xbc, 0xa4, 0x14, 0xd8, 0x0a, 0xf2, 0x16, 0x28, 0x92,
2784                0xa9, 0x25, 0x7e, 0xad,
2785            ],
2786            Elements::RightPadHigh1_16 => [
2787                0xff, 0x12, 0x97, 0xd8, 0x78, 0xe2, 0x6e, 0x19, 0x59, 0xbc, 0xc7, 0xe8, 0xae, 0xf9,
2788                0x7a, 0xc0, 0xb6, 0x5a, 0xdc, 0x39, 0x92, 0x3e, 0xc6, 0x50, 0x5e, 0x50, 0xf9, 0x83,
2789                0x05, 0x73, 0x3b, 0x6c,
2790            ],
2791            Elements::RightPadHigh1_32 => [
2792                0x28, 0x3f, 0x8a, 0xfb, 0x41, 0x38, 0x2d, 0x2b, 0xe1, 0x8f, 0x8a, 0x77, 0xc3, 0x14,
2793                0xba, 0x17, 0x76, 0xcb, 0x80, 0xc8, 0xec, 0x36, 0xca, 0x12, 0xaa, 0x67, 0xb3, 0x2b,
2794                0xb6, 0x4e, 0xd8, 0x43,
2795            ],
2796            Elements::RightPadHigh1_64 => [
2797                0xa3, 0x42, 0x35, 0x28, 0x60, 0xa3, 0x35, 0x0d, 0x79, 0xc3, 0xe9, 0xfc, 0x7a, 0x4a,
2798                0xb3, 0x78, 0x9b, 0x8b, 0x02, 0x97, 0x85, 0x6f, 0xd1, 0x69, 0xca, 0x4d, 0x7d, 0xe2,
2799                0x5f, 0x7d, 0x7c, 0xc4,
2800            ],
2801            Elements::RightPadHigh1_8 => [
2802                0x71, 0x03, 0xc0, 0xfe, 0x00, 0xf5, 0x22, 0xa2, 0x21, 0x6c, 0x4a, 0x6b, 0xe5, 0xf7,
2803                0xe0, 0xeb, 0x4d, 0x70, 0x3c, 0xa7, 0x8f, 0x9c, 0x59, 0x8f, 0x6b, 0x3d, 0xfd, 0xe4,
2804                0x37, 0xd8, 0x0c, 0x84,
2805            ],
2806            Elements::RightPadHigh32_64 => [
2807                0x5d, 0xc9, 0x10, 0x7d, 0x45, 0x34, 0x95, 0x8c, 0xe4, 0x42, 0x27, 0x67, 0x56, 0x3a,
2808                0x03, 0x1a, 0x38, 0x0f, 0x60, 0xd3, 0x83, 0x71, 0x48, 0xab, 0x3c, 0x8c, 0xc9, 0xc4,
2809                0xc7, 0xd9, 0x96, 0xa2,
2810            ],
2811            Elements::RightPadHigh8_16 => [
2812                0xc0, 0xe2, 0xfd, 0x46, 0xf7, 0x88, 0x3b, 0x12, 0x85, 0xa6, 0xf1, 0xa1, 0xdb, 0x96,
2813                0xd9, 0x3c, 0x25, 0x48, 0x04, 0x0f, 0xcd, 0x3f, 0x5c, 0x23, 0xfb, 0xb2, 0x0b, 0x5e,
2814                0x83, 0x03, 0x7c, 0x96,
2815            ],
2816            Elements::RightPadHigh8_32 => [
2817                0x29, 0x1e, 0x62, 0x77, 0x08, 0x52, 0x0c, 0x2c, 0xa6, 0xae, 0xce, 0x32, 0xa8, 0x77,
2818                0xb7, 0x78, 0x49, 0xc4, 0xa7, 0xa2, 0x13, 0xcb, 0x89, 0xe1, 0xbd, 0xa7, 0xc5, 0xc5,
2819                0xfe, 0x75, 0x5f, 0x73,
2820            ],
2821            Elements::RightPadHigh8_64 => [
2822                0x6b, 0x6f, 0xa2, 0x37, 0x2e, 0xd2, 0x5e, 0x4a, 0x34, 0xd4, 0xae, 0x17, 0x23, 0x42,
2823                0xad, 0xbb, 0x25, 0x9b, 0xe8, 0x98, 0x76, 0x00, 0xdb, 0x19, 0x2e, 0xcb, 0x8d, 0xa4,
2824                0x34, 0xb9, 0xd8, 0x8f,
2825            ],
2826            Elements::RightPadLow16_32 => [
2827                0x77, 0x31, 0xd5, 0x60, 0xd3, 0x75, 0x92, 0xd1, 0xa3, 0x1f, 0x73, 0x62, 0x96, 0x7a,
2828                0xb2, 0xe4, 0x75, 0x92, 0xac, 0xa6, 0xe9, 0x2a, 0xb8, 0x58, 0x82, 0x37, 0x92, 0xda,
2829                0xe5, 0xd2, 0xdb, 0x52,
2830            ],
2831            Elements::RightPadLow16_64 => [
2832                0x0f, 0xe1, 0xc0, 0xdb, 0x9d, 0x4a, 0x2d, 0x63, 0xe2, 0xba, 0x4a, 0x33, 0x11, 0x7a,
2833                0xad, 0xba, 0x64, 0x51, 0x4a, 0x2b, 0x87, 0xa7, 0xa4, 0xe7, 0x93, 0xfa, 0xac, 0xfe,
2834                0x6b, 0x36, 0x34, 0x47,
2835            ],
2836            Elements::RightPadLow1_16 => [
2837                0x79, 0x14, 0xc8, 0xf2, 0x22, 0x47, 0xc2, 0xc3, 0x4b, 0x9c, 0x84, 0xe9, 0x2d, 0x14,
2838                0x44, 0xae, 0xc2, 0xe1, 0x7a, 0x0e, 0xf5, 0x86, 0xba, 0xb2, 0x78, 0x8e, 0xe6, 0xef,
2839                0x68, 0x84, 0x0d, 0x98,
2840            ],
2841            Elements::RightPadLow1_32 => [
2842                0x31, 0xb6, 0xce, 0x26, 0xe5, 0x59, 0xf7, 0x6c, 0xf3, 0x66, 0xf4, 0x80, 0x69, 0x85,
2843                0xec, 0xc2, 0x99, 0x55, 0x0f, 0x15, 0xd4, 0xc3, 0xa6, 0x72, 0x9e, 0x29, 0xd7, 0x0e,
2844                0x39, 0x89, 0x56, 0x52,
2845            ],
2846            Elements::RightPadLow1_64 => [
2847                0xc5, 0x52, 0x4a, 0xe6, 0x54, 0x8a, 0xcd, 0x63, 0x08, 0x2d, 0x94, 0x89, 0x3e, 0x18,
2848                0xf9, 0xed, 0xbb, 0x92, 0x31, 0xe7, 0x6b, 0xb4, 0xe1, 0x1b, 0xbf, 0xf6, 0xa7, 0xbd,
2849                0x16, 0xf4, 0xb0, 0x29,
2850            ],
2851            Elements::RightPadLow1_8 => [
2852                0x59, 0xd7, 0x22, 0x70, 0xef, 0x0e, 0x8f, 0x77, 0x0c, 0x8d, 0x11, 0xf3, 0x17, 0x73,
2853                0xf9, 0xb6, 0xe9, 0x0a, 0x4a, 0xec, 0xeb, 0x5b, 0xfb, 0x3d, 0xfe, 0x96, 0x8c, 0x4e,
2854                0x9d, 0xac, 0x5f, 0xe8,
2855            ],
2856            Elements::RightPadLow32_64 => [
2857                0xd4, 0x22, 0x7d, 0x06, 0x6f, 0x18, 0xb9, 0x11, 0xd6, 0xf5, 0xd9, 0xbf, 0xb9, 0xd9,
2858                0xf4, 0x6e, 0x9a, 0xea, 0xdb, 0xbe, 0xfa, 0x34, 0xd4, 0x74, 0x43, 0x2a, 0x1e, 0x78,
2859                0x9e, 0x48, 0x86, 0xff,
2860            ],
2861            Elements::RightPadLow8_16 => [
2862                0xab, 0xa4, 0x7a, 0x53, 0x6e, 0x12, 0x27, 0xe1, 0x22, 0xba, 0xac, 0xf1, 0x9c, 0xfd,
2863                0x28, 0x23, 0xb9, 0xb7, 0x8d, 0x79, 0xcc, 0x06, 0xd3, 0x4c, 0x34, 0x8b, 0x14, 0xa1,
2864                0xa1, 0x5a, 0xbd, 0x64,
2865            ],
2866            Elements::RightPadLow8_32 => [
2867                0x8f, 0x80, 0xa6, 0xc2, 0x74, 0x71, 0x6b, 0x67, 0x22, 0x04, 0x11, 0x34, 0xea, 0x1c,
2868                0x68, 0xaa, 0xbf, 0x02, 0x13, 0x29, 0x8f, 0x4e, 0x18, 0xf8, 0xf4, 0x92, 0xdc, 0x53,
2869                0x80, 0x8a, 0x31, 0x74,
2870            ],
2871            Elements::RightPadLow8_64 => [
2872                0xd6, 0x9c, 0x85, 0xe7, 0xb2, 0xd7, 0xe9, 0x49, 0x43, 0x6c, 0xb1, 0x29, 0x5e, 0x4a,
2873                0xa7, 0x05, 0x57, 0xd7, 0x5e, 0x7c, 0xbd, 0xec, 0x02, 0xcc, 0xa8, 0x5f, 0xbf, 0xb1,
2874                0x33, 0x08, 0xb2, 0x10,
2875            ],
2876            Elements::RightRotate16 => [
2877                0xe5, 0x10, 0x70, 0x82, 0x47, 0xf9, 0x1b, 0x4f, 0x0a, 0x8a, 0x22, 0xa4, 0x46, 0xb8,
2878                0x13, 0x7d, 0x0d, 0x42, 0xbe, 0xe7, 0x4c, 0x8c, 0x1e, 0xdd, 0x6d, 0x44, 0x6e, 0xdb,
2879                0x20, 0x13, 0xb5, 0x98,
2880            ],
2881            Elements::RightRotate32 => [
2882                0x98, 0x91, 0x57, 0x31, 0x41, 0x29, 0x22, 0xdb, 0xc5, 0x16, 0xa7, 0x37, 0x3a, 0xfc,
2883                0x4d, 0xe6, 0x48, 0x09, 0xf8, 0x3b, 0x26, 0x4b, 0xcf, 0xca, 0x6a, 0xe7, 0x48, 0x83,
2884                0xdb, 0xe1, 0x04, 0xd6,
2885            ],
2886            Elements::RightRotate64 => [
2887                0x9e, 0x2f, 0xb9, 0x8a, 0xdf, 0x10, 0x29, 0x33, 0x9d, 0xbe, 0x45, 0xa2, 0x2a, 0x54,
2888                0xa3, 0x90, 0xca, 0x09, 0x86, 0xed, 0xce, 0xa3, 0x2e, 0xac, 0xb8, 0x2e, 0xbc, 0xc8,
2889                0x94, 0xa2, 0x71, 0x1a,
2890            ],
2891            Elements::RightRotate8 => [
2892                0x00, 0xc7, 0xc2, 0x6d, 0x95, 0xa5, 0x0b, 0x5a, 0xf9, 0x34, 0x9f, 0xfe, 0x47, 0xe1,
2893                0xd4, 0x3f, 0x3d, 0x76, 0x1f, 0x17, 0xa7, 0x45, 0x3c, 0x98, 0x47, 0x91, 0xe8, 0x7d,
2894                0xc6, 0xa3, 0x11, 0xc8,
2895            ],
2896            Elements::RightShift16 => [
2897                0x8b, 0x5e, 0x0f, 0xeb, 0x95, 0x81, 0x30, 0xf0, 0x50, 0x83, 0x32, 0x15, 0x9e, 0x54,
2898                0xc2, 0xdf, 0x98, 0xaf, 0x83, 0x52, 0x1a, 0xca, 0xb3, 0x08, 0x4f, 0xd4, 0xf7, 0xc3,
2899                0xa2, 0xcc, 0xea, 0x77,
2900            ],
2901            Elements::RightShift32 => [
2902                0x4b, 0x1f, 0x25, 0x80, 0xe0, 0x85, 0x0d, 0x38, 0xe2, 0xa1, 0x15, 0x73, 0x38, 0x05,
2903                0x2f, 0x1c, 0x37, 0x9f, 0x9d, 0x81, 0x57, 0xf6, 0x2d, 0x33, 0x89, 0x0a, 0xf2, 0x4f,
2904                0xd9, 0xa7, 0xf7, 0x3e,
2905            ],
2906            Elements::RightShift64 => [
2907                0x91, 0xa2, 0x97, 0xd7, 0xb5, 0x8a, 0x39, 0x3b, 0xf5, 0x90, 0x25, 0x94, 0x77, 0x47,
2908                0xc8, 0x6d, 0xd4, 0x87, 0x65, 0x9c, 0xc5, 0x6f, 0xb5, 0xa6, 0xf6, 0x43, 0x99, 0x55,
2909                0x12, 0x9a, 0x95, 0x63,
2910            ],
2911            Elements::RightShift8 => [
2912                0xa4, 0xc3, 0x54, 0x6f, 0xf2, 0x7e, 0x56, 0xd6, 0x4e, 0x91, 0x8a, 0xb2, 0xfa, 0x6d,
2913                0x00, 0xfc, 0x27, 0x04, 0x58, 0x5b, 0x25, 0xbd, 0xe0, 0x04, 0x9d, 0x6d, 0x8f, 0x48,
2914                0xd8, 0xcf, 0x1c, 0xd0,
2915            ],
2916            Elements::RightShiftWith16 => [
2917                0xfd, 0x97, 0x70, 0x30, 0xe3, 0xa2, 0x5a, 0x32, 0xe7, 0x75, 0xb8, 0xd5, 0xe8, 0x71,
2918                0x74, 0xa7, 0xa9, 0xe8, 0x73, 0x1e, 0xc3, 0x6c, 0xf1, 0x32, 0x64, 0x20, 0xad, 0x91,
2919                0x50, 0x2e, 0x6e, 0x98,
2920            ],
2921            Elements::RightShiftWith32 => [
2922                0x28, 0x29, 0xba, 0x02, 0x1f, 0x54, 0x07, 0x7a, 0xff, 0xb6, 0x6a, 0xc6, 0xb6, 0xdf,
2923                0xd3, 0xfe, 0xf3, 0x8b, 0xc4, 0x14, 0x91, 0x84, 0x5a, 0x41, 0xce, 0x9d, 0xd3, 0x70,
2924                0x58, 0x6c, 0x2d, 0x04,
2925            ],
2926            Elements::RightShiftWith64 => [
2927                0x00, 0x6f, 0xa3, 0xc5, 0x45, 0x79, 0x75, 0x47, 0x86, 0xfc, 0x64, 0xdc, 0x32, 0xe1,
2928                0x9a, 0x22, 0x5c, 0xc1, 0x52, 0xc9, 0x4d, 0xee, 0xb3, 0xc6, 0xab, 0x29, 0x67, 0xdd,
2929                0xbf, 0xc6, 0x46, 0x53,
2930            ],
2931            Elements::RightShiftWith8 => [
2932                0xfc, 0xb5, 0xbe, 0x65, 0x07, 0xf0, 0xca, 0x44, 0xbe, 0x2b, 0xe1, 0xcc, 0x3c, 0x3c,
2933                0xfe, 0x39, 0x94, 0x40, 0x4b, 0x80, 0x83, 0xbd, 0x76, 0x02, 0xb2, 0x10, 0x2c, 0xb1,
2934                0xfc, 0xfa, 0x2c, 0x61,
2935            ],
2936            Elements::Rightmost16_1 => [
2937                0x3f, 0x3c, 0x43, 0x46, 0x87, 0x17, 0x42, 0x26, 0x5e, 0x87, 0xf0, 0x01, 0xb4, 0x6d,
2938                0xe7, 0xd1, 0x98, 0x75, 0x1b, 0x34, 0xfa, 0xa1, 0x80, 0x18, 0xde, 0x60, 0xc8, 0x46,
2939                0x8d, 0x9b, 0x98, 0xa4,
2940            ],
2941            Elements::Rightmost16_2 => [
2942                0x78, 0xf1, 0x71, 0x47, 0x6a, 0x3b, 0x0e, 0xd1, 0xe3, 0xa5, 0x45, 0x5a, 0x5f, 0xbb,
2943                0xcc, 0x90, 0x19, 0x81, 0xb3, 0x23, 0x0f, 0xea, 0x12, 0x64, 0x20, 0x4d, 0xac, 0xd0,
2944                0x81, 0xf9, 0x40, 0x80,
2945            ],
2946            Elements::Rightmost16_4 => [
2947                0x75, 0xa1, 0xdf, 0xb6, 0xae, 0x2c, 0x06, 0x6b, 0x2d, 0x0e, 0x20, 0x93, 0x04, 0x8a,
2948                0xdb, 0xc5, 0x0d, 0x46, 0x50, 0x65, 0x6f, 0xb2, 0xd3, 0x57, 0x8b, 0x57, 0xd9, 0xde,
2949                0x4c, 0x61, 0xc8, 0xb5,
2950            ],
2951            Elements::Rightmost16_8 => [
2952                0xee, 0x76, 0x9c, 0x1c, 0xc8, 0xa3, 0xfd, 0xd1, 0x83, 0x8f, 0xc9, 0xf0, 0x49, 0x0c,
2953                0xe7, 0x03, 0x93, 0xfd, 0x91, 0xba, 0x3c, 0xbd, 0x4a, 0xbd, 0x08, 0x64, 0x9f, 0xb9,
2954                0xc4, 0x43, 0x11, 0xbd,
2955            ],
2956            Elements::Rightmost32_1 => [
2957                0xcb, 0x0d, 0xb5, 0x69, 0xa3, 0x61, 0x86, 0xa2, 0x56, 0x05, 0xa9, 0xd2, 0xe4, 0xe1,
2958                0x0a, 0x20, 0xc1, 0x11, 0xd5, 0x0c, 0x34, 0xf1, 0x72, 0x46, 0x52, 0x0b, 0xc4, 0x54,
2959                0xd8, 0x68, 0x28, 0x36,
2960            ],
2961            Elements::Rightmost32_16 => [
2962                0x06, 0xfa, 0xa3, 0xbe, 0x67, 0x8c, 0xd6, 0xfd, 0xd7, 0xf3, 0x11, 0x2e, 0xbf, 0x2c,
2963                0x48, 0x62, 0x7a, 0xfa, 0x78, 0x75, 0xf7, 0x06, 0x8d, 0x26, 0xa9, 0xcc, 0x04, 0x5b,
2964                0x2c, 0x8f, 0x11, 0xbc,
2965            ],
2966            Elements::Rightmost32_2 => [
2967                0x00, 0xb8, 0x81, 0x5a, 0xd7, 0x42, 0x3d, 0xd5, 0x8c, 0xb9, 0x8b, 0xe8, 0x2c, 0xad,
2968                0x26, 0x67, 0x5c, 0x3b, 0xf5, 0x4a, 0x0b, 0xed, 0xba, 0xde, 0x34, 0x64, 0xb4, 0xfe,
2969                0x5a, 0x4e, 0x8c, 0xe6,
2970            ],
2971            Elements::Rightmost32_4 => [
2972                0x3d, 0xfa, 0x7a, 0x20, 0x19, 0x8e, 0x42, 0xd6, 0xa7, 0x94, 0x8c, 0x8e, 0xd8, 0xe0,
2973                0xd4, 0x7e, 0xc7, 0xc0, 0x00, 0x7b, 0x3d, 0x68, 0x66, 0xca, 0x15, 0xe3, 0xda, 0x04,
2974                0x5b, 0x85, 0x63, 0xc7,
2975            ],
2976            Elements::Rightmost32_8 => [
2977                0x17, 0xb5, 0x8d, 0x6e, 0x30, 0x4b, 0x1c, 0x7e, 0x5d, 0xbf, 0x0c, 0x4d, 0xf6, 0xfc,
2978                0xc8, 0x03, 0xc0, 0x08, 0x94, 0x4c, 0x79, 0x95, 0x55, 0x5b, 0x94, 0xe1, 0x28, 0x9b,
2979                0x25, 0x49, 0xbe, 0x99,
2980            ],
2981            Elements::Rightmost64_1 => [
2982                0x5e, 0x8f, 0xb4, 0x9f, 0xac, 0xe0, 0x34, 0x48, 0x1d, 0xc6, 0x53, 0x61, 0x8e, 0x2a,
2983                0x8b, 0x65, 0xea, 0xf0, 0x99, 0x3f, 0x28, 0x84, 0x4c, 0xc9, 0xb1, 0x30, 0xca, 0xcc,
2984                0xe4, 0x5e, 0x82, 0xde,
2985            ],
2986            Elements::Rightmost64_16 => [
2987                0xc6, 0x4c, 0xa9, 0x96, 0x55, 0x36, 0xf2, 0x37, 0xbc, 0x4d, 0x16, 0x6e, 0x4a, 0xec,
2988                0xa5, 0x6e, 0xac, 0x26, 0x62, 0xe6, 0x3a, 0xcc, 0xb9, 0x8b, 0x6e, 0x54, 0x25, 0x60,
2989                0xf9, 0xe5, 0x38, 0xda,
2990            ],
2991            Elements::Rightmost64_2 => [
2992                0x83, 0xd2, 0xda, 0x6f, 0x34, 0x20, 0xd7, 0x79, 0xbc, 0xb8, 0xf6, 0x0d, 0x0b, 0x69,
2993                0x6e, 0xed, 0x74, 0xc3, 0x1d, 0xb0, 0x8a, 0xdd, 0xbe, 0xbd, 0x12, 0x35, 0xa5, 0xdf,
2994                0x8f, 0x59, 0xc4, 0x2f,
2995            ],
2996            Elements::Rightmost64_32 => [
2997                0x7d, 0x2d, 0xff, 0x6e, 0x3d, 0xd5, 0x04, 0xbb, 0x0e, 0x57, 0x03, 0xa0, 0x33, 0x58,
2998                0x6d, 0x27, 0xd9, 0x66, 0x44, 0xc0, 0x48, 0xab, 0x34, 0xa4, 0x5b, 0xf5, 0x35, 0x12,
2999                0x9d, 0x50, 0x11, 0x67,
3000            ],
3001            Elements::Rightmost64_4 => [
3002                0x84, 0x1b, 0xbd, 0x65, 0x27, 0x42, 0xdd, 0xd3, 0xad, 0xea, 0xe4, 0x3c, 0xfe, 0xd6,
3003                0x32, 0x9f, 0x2f, 0xd6, 0x2e, 0x6f, 0xec, 0xd0, 0xfd, 0x58, 0xe3, 0xc3, 0xfb, 0x8b,
3004                0x5a, 0x0e, 0x4d, 0xd5,
3005            ],
3006            Elements::Rightmost64_8 => [
3007                0xa0, 0xa6, 0x1c, 0x76, 0x58, 0xa1, 0x86, 0x23, 0xbf, 0x1d, 0x01, 0x1a, 0x97, 0x92,
3008                0xd5, 0x18, 0xfb, 0xd0, 0x24, 0x14, 0x2a, 0x90, 0x44, 0x00, 0xec, 0xde, 0xea, 0x92,
3009                0x45, 0x7a, 0x0a, 0x81,
3010            ],
3011            Elements::Rightmost8_1 => [
3012                0x99, 0x9b, 0x68, 0x6e, 0x60, 0xb3, 0xd1, 0xec, 0xd6, 0xc6, 0xd7, 0x7f, 0xbc, 0xa8,
3013                0x2c, 0xb2, 0xab, 0xbd, 0x41, 0x82, 0xc8, 0x21, 0x12, 0x67, 0x47, 0x5f, 0xa0, 0xc1,
3014                0x90, 0x1d, 0x89, 0xf9,
3015            ],
3016            Elements::Rightmost8_2 => [
3017                0x53, 0x07, 0xff, 0xbf, 0x51, 0x6c, 0xd0, 0xee, 0xf3, 0xff, 0x43, 0x87, 0xb9, 0x05,
3018                0x2c, 0x14, 0x4a, 0x4d, 0xfa, 0x23, 0x29, 0x23, 0x7c, 0x6b, 0x27, 0x49, 0x92, 0xb2,
3019                0xc8, 0x04, 0x7b, 0x60,
3020            ],
3021            Elements::Rightmost8_4 => [
3022                0x7f, 0x52, 0xe6, 0x45, 0xbb, 0xbb, 0xd7, 0x92, 0x69, 0xc4, 0x3e, 0xf0, 0x2d, 0xb9,
3023                0x82, 0xf8, 0xc6, 0x36, 0x33, 0xc1, 0x79, 0xe4, 0x06, 0x91, 0x73, 0x93, 0x36, 0x04,
3024                0xcc, 0x63, 0x5b, 0xca,
3025            ],
3026            Elements::ScalarAdd => [
3027                0x34, 0xba, 0xa4, 0x0b, 0x2e, 0x0a, 0xa8, 0xcb, 0x7e, 0x97, 0xc7, 0x3e, 0x3e, 0xd3,
3028                0xb3, 0x65, 0xa1, 0x5b, 0x7c, 0x3f, 0x76, 0x61, 0xfb, 0x19, 0x71, 0x5e, 0xc6, 0x05,
3029                0xc1, 0x14, 0x9d, 0x11,
3030            ],
3031            Elements::ScalarInvert => [
3032                0x62, 0x31, 0xbd, 0xab, 0x73, 0xca, 0x34, 0xea, 0x7e, 0x83, 0x7d, 0xaa, 0xd6, 0x92,
3033                0xed, 0xe5, 0xba, 0xbf, 0xae, 0x09, 0xb5, 0x75, 0x6d, 0x2a, 0xb3, 0x6c, 0x5a, 0x36,
3034                0x47, 0x5a, 0x65, 0x89,
3035            ],
3036            Elements::ScalarIsZero => [
3037                0xf7, 0x5e, 0xda, 0x06, 0xce, 0x6a, 0xf0, 0x9f, 0xae, 0x37, 0xdb, 0x4e, 0x62, 0x25,
3038                0xe6, 0xa8, 0xac, 0x86, 0xa2, 0x36, 0x37, 0x62, 0x7d, 0x62, 0x64, 0x09, 0x19, 0x0f,
3039                0xf3, 0xb3, 0x9d, 0x90,
3040            ],
3041            Elements::ScalarMultiply => [
3042                0xb2, 0xbc, 0xc3, 0x90, 0xd6, 0x37, 0xb9, 0xe0, 0x3f, 0xbf, 0xc4, 0x2f, 0xff, 0x71,
3043                0xd2, 0x2e, 0x72, 0x00, 0xf6, 0x93, 0x29, 0xce, 0xf7, 0x16, 0x9e, 0x68, 0xa8, 0xc7,
3044                0x1a, 0x7f, 0x0a, 0x4b,
3045            ],
3046            Elements::ScalarMultiplyLambda => [
3047                0x89, 0xd5, 0x85, 0x5c, 0x5f, 0x85, 0xc0, 0x03, 0x5d, 0x27, 0xb0, 0xc0, 0x9e, 0x20,
3048                0x33, 0x0b, 0x00, 0x1c, 0x68, 0x4b, 0x59, 0x86, 0xab, 0xce, 0xd8, 0x36, 0x0c, 0xd3,
3049                0x9b, 0x08, 0xc4, 0xe1,
3050            ],
3051            Elements::ScalarNegate => [
3052                0x07, 0x05, 0xac, 0xdf, 0xb8, 0x66, 0x40, 0x00, 0x0e, 0x3d, 0x3b, 0xad, 0x50, 0x9a,
3053                0x14, 0xa7, 0x8c, 0x17, 0x1f, 0x61, 0xed, 0xc0, 0x84, 0x23, 0xb0, 0x42, 0xb9, 0x47,
3054                0x48, 0x43, 0x9c, 0xf8,
3055            ],
3056            Elements::ScalarNormalize => [
3057                0xa0, 0x61, 0xe1, 0x9d, 0x75, 0xc3, 0x25, 0xa2, 0x6d, 0x56, 0x5a, 0xad, 0x7e, 0x3f,
3058                0x9a, 0xe2, 0x6b, 0x22, 0x2f, 0x25, 0xe8, 0x02, 0x17, 0x4f, 0x6b, 0xac, 0xd5, 0x11,
3059                0x27, 0x7a, 0xea, 0xa5,
3060            ],
3061            Elements::ScalarSquare => [
3062                0x49, 0xf7, 0x34, 0xa2, 0x65, 0x9c, 0xa0, 0xab, 0x7c, 0x9e, 0x67, 0xfc, 0xfc, 0x3c,
3063                0x0d, 0x72, 0xaf, 0x0f, 0x91, 0x7c, 0x9e, 0xdc, 0xb9, 0x92, 0x9d, 0x17, 0x7a, 0x0f,
3064                0x0d, 0xe8, 0x9d, 0x59,
3065            ],
3066            Elements::Scale => [
3067                0xc0, 0x45, 0x43, 0xdc, 0x85, 0xef, 0x11, 0x37, 0x4a, 0x93, 0x0f, 0x4a, 0x94, 0x8e,
3068                0xb7, 0x35, 0xa6, 0x50, 0x0a, 0x1a, 0x71, 0x58, 0xd5, 0x73, 0x12, 0x3f, 0x07, 0x21,
3069                0x71, 0x75, 0xf3, 0x18,
3070            ],
3071            Elements::ScriptCMR => [
3072                0xec, 0x15, 0xf5, 0x9c, 0x52, 0x4d, 0x94, 0x14, 0x69, 0x81, 0x19, 0x54, 0x65, 0x4f,
3073                0x63, 0x58, 0x30, 0xec, 0xd7, 0xde, 0x51, 0x76, 0x62, 0xb2, 0x5c, 0xa4, 0xe8, 0xd0,
3074                0x5c, 0x2c, 0xce, 0x89,
3075            ],
3076            Elements::Sha256Block => [
3077                0x0c, 0x97, 0xa0, 0x08, 0xad, 0xe8, 0x7b, 0xb1, 0xe0, 0xac, 0x06, 0xb7, 0xd0, 0x31,
3078                0x30, 0x23, 0x36, 0x28, 0x58, 0xef, 0x90, 0xec, 0x14, 0xec, 0x9c, 0xb9, 0x5f, 0x0d,
3079                0xa9, 0x64, 0xe0, 0x08,
3080            ],
3081            Elements::Sha256Ctx8Add1 => [
3082                0x37, 0x06, 0x6c, 0x67, 0xad, 0x95, 0x24, 0x9d, 0x4b, 0xa6, 0xe1, 0x81, 0x44, 0xca,
3083                0x0a, 0x41, 0x5d, 0x9c, 0x83, 0x2a, 0xa6, 0xb6, 0x06, 0x28, 0xe9, 0x7c, 0x96, 0x7e,
3084                0xb1, 0x79, 0x33, 0x83,
3085            ],
3086            Elements::Sha256Ctx8Add128 => [
3087                0x2d, 0xcf, 0x48, 0x4c, 0x25, 0x7f, 0x67, 0x94, 0x0c, 0xa3, 0x75, 0xba, 0x98, 0xe8,
3088                0x3c, 0xe0, 0xe2, 0xa7, 0x1e, 0x16, 0xda, 0x50, 0x51, 0xd1, 0xbb, 0x19, 0xfb, 0x5f,
3089                0x34, 0x6f, 0x15, 0x4f,
3090            ],
3091            Elements::Sha256Ctx8Add16 => [
3092                0x82, 0x99, 0x25, 0x20, 0x40, 0xcb, 0x39, 0xe3, 0x26, 0xa2, 0x48, 0xd5, 0xc7, 0x88,
3093                0xf9, 0x51, 0x6d, 0x15, 0xa2, 0xff, 0x41, 0x45, 0xbb, 0x64, 0xad, 0x65, 0x77, 0xae,
3094                0x1a, 0x3e, 0xf7, 0x27,
3095            ],
3096            Elements::Sha256Ctx8Add2 => [
3097                0x8b, 0xae, 0x3e, 0x7e, 0x1e, 0xd4, 0xdc, 0xba, 0x6e, 0x64, 0x5a, 0xa1, 0x43, 0x41,
3098                0xbb, 0xae, 0x0d, 0xbb, 0x3a, 0xe2, 0x1b, 0xb6, 0x3d, 0xc0, 0x30, 0xca, 0x0e, 0x44,
3099                0x7a, 0x85, 0x7e, 0xc2,
3100            ],
3101            Elements::Sha256Ctx8Add256 => [
3102                0x44, 0xb7, 0x17, 0xe1, 0x97, 0x09, 0x99, 0xb6, 0x6b, 0x69, 0x3d, 0x8c, 0x9d, 0x1d,
3103                0x3b, 0x06, 0x05, 0xc2, 0xb7, 0xa6, 0x21, 0x3e, 0x6b, 0xa5, 0x6c, 0x69, 0xaf, 0x8d,
3104                0x7f, 0xae, 0x16, 0x86,
3105            ],
3106            Elements::Sha256Ctx8Add32 => [
3107                0x39, 0x23, 0x9a, 0x43, 0xa8, 0x4b, 0xac, 0x6f, 0x29, 0x69, 0xbf, 0xa9, 0x5b, 0xfe,
3108                0x6a, 0x04, 0xfc, 0xba, 0x80, 0x92, 0x89, 0x59, 0x39, 0xf1, 0x2a, 0x1c, 0xe0, 0xe2,
3109                0x63, 0x21, 0xec, 0x10,
3110            ],
3111            Elements::Sha256Ctx8Add4 => [
3112                0xd7, 0xd7, 0x45, 0x61, 0x4b, 0x37, 0xa7, 0xe0, 0x7d, 0xce, 0x22, 0xf6, 0x4e, 0x7b,
3113                0x1e, 0xdf, 0xe2, 0x3b, 0xed, 0xa8, 0x51, 0xf1, 0xe7, 0x6f, 0x1a, 0x6b, 0x02, 0x8f,
3114                0xcc, 0x5e, 0x9f, 0xc0,
3115            ],
3116            Elements::Sha256Ctx8Add512 => [
3117                0xbe, 0x36, 0x80, 0x32, 0xd8, 0x6e, 0xbc, 0xf2, 0x13, 0xca, 0x45, 0xba, 0x6e, 0xca,
3118                0xb5, 0x4c, 0xb1, 0xf2, 0x66, 0x1d, 0x40, 0x3d, 0xa0, 0x59, 0x06, 0x30, 0x0b, 0xc5,
3119                0x11, 0x37, 0xaa, 0xb5,
3120            ],
3121            Elements::Sha256Ctx8Add64 => [
3122                0xfd, 0xc4, 0x34, 0xce, 0x83, 0xdb, 0xdc, 0xe0, 0x78, 0x2a, 0xa3, 0x6d, 0x41, 0x8d,
3123                0xef, 0x7f, 0x99, 0xaf, 0x82, 0x93, 0xaf, 0xb2, 0x9e, 0x83, 0x9f, 0xe4, 0x94, 0x8f,
3124                0x62, 0x34, 0xf7, 0x7f,
3125            ],
3126            Elements::Sha256Ctx8Add8 => [
3127                0x9c, 0x98, 0x83, 0x30, 0x79, 0x9a, 0x68, 0x0b, 0xfe, 0x73, 0xd7, 0xca, 0xa3, 0x68,
3128                0x9f, 0xe4, 0xe4, 0x83, 0xda, 0x4e, 0xe6, 0xd8, 0x18, 0x58, 0x79, 0x27, 0xc7, 0xf4,
3129                0x33, 0x92, 0xde, 0xf7,
3130            ],
3131            Elements::Sha256Ctx8AddBuffer511 => [
3132                0xc0, 0x27, 0xe1, 0x06, 0x29, 0x96, 0xae, 0x94, 0xac, 0x39, 0x71, 0xa2, 0xc4, 0xfa,
3133                0xe5, 0x49, 0x97, 0xeb, 0xf0, 0x9b, 0x9f, 0x7d, 0xa5, 0x75, 0x63, 0x9b, 0xe6, 0x17,
3134                0x16, 0x7f, 0x02, 0xe3,
3135            ],
3136            Elements::Sha256Ctx8Finalize => [
3137                0xcb, 0xba, 0x1f, 0x1d, 0x8a, 0x97, 0xab, 0x4d, 0x1f, 0xa9, 0x68, 0x6e, 0x7a, 0xee,
3138                0xf0, 0x66, 0xfb, 0x5b, 0xf2, 0x90, 0x71, 0x6e, 0xae, 0x10, 0xe7, 0x0b, 0x61, 0x99,
3139                0x96, 0xc5, 0x95, 0x94,
3140            ],
3141            Elements::Sha256Ctx8Init => [
3142                0xa5, 0x3c, 0x76, 0x79, 0xe3, 0xae, 0x03, 0x47, 0xd4, 0xd7, 0x91, 0x26, 0xa7, 0xc7,
3143                0xe4, 0x9a, 0xc0, 0xde, 0xc9, 0x0c, 0xdf, 0x93, 0x57, 0x99, 0xcd, 0xdb, 0x58, 0xda,
3144                0x8f, 0x44, 0x96, 0xe4,
3145            ],
3146            Elements::Sha256Iv => [
3147                0x73, 0x89, 0xf0, 0x02, 0x53, 0x05, 0xdc, 0xe8, 0x28, 0xd4, 0xa1, 0xfe, 0x83, 0x74,
3148                0x30, 0x46, 0xa3, 0x67, 0xc9, 0x23, 0xf1, 0x8a, 0xbf, 0x36, 0x5e, 0x39, 0x1e, 0x5b,
3149                0x04, 0xaf, 0x1a, 0x47,
3150            ],
3151            Elements::SigAllHash => [
3152                0x6a, 0xc5, 0x3d, 0x3f, 0x93, 0xb8, 0xca, 0xf3, 0xea, 0x85, 0x34, 0xae, 0x61, 0x2a,
3153                0xbd, 0x32, 0x32, 0x5d, 0x2b, 0x0f, 0xec, 0x17, 0xde, 0x36, 0xaf, 0x0f, 0x71, 0xaa,
3154                0x97, 0x8f, 0x7c, 0xde,
3155            ],
3156            Elements::Some1 => [
3157                0xfb, 0xda, 0xd6, 0xb0, 0x22, 0xa0, 0xc7, 0x8f, 0xf3, 0x56, 0x04, 0xaa, 0xfa, 0xcd,
3158                0x27, 0xcc, 0x10, 0xf5, 0x1e, 0xe0, 0x69, 0x8c, 0x41, 0xf1, 0xad, 0xa9, 0x03, 0x97,
3159                0x61, 0x8d, 0x52, 0x6f,
3160            ],
3161            Elements::Some16 => [
3162                0x7e, 0x2c, 0xcd, 0xbf, 0xc2, 0x4d, 0xd8, 0xd8, 0xa9, 0x04, 0xb0, 0x17, 0xdd, 0x4f,
3163                0x57, 0xe7, 0xc8, 0x74, 0x96, 0x34, 0x8a, 0xca, 0x7d, 0x04, 0x58, 0xc9, 0xd1, 0x6b,
3164                0x68, 0xbc, 0xda, 0x1c,
3165            ],
3166            Elements::Some32 => [
3167                0x45, 0x36, 0xae, 0xb1, 0x21, 0xc4, 0x27, 0x3f, 0xfc, 0x2a, 0x48, 0xfe, 0xd9, 0xee,
3168                0xd0, 0x31, 0x2e, 0xbd, 0x97, 0x2d, 0xec, 0x56, 0x81, 0xf4, 0x7e, 0xad, 0x0f, 0x62,
3169                0xd9, 0x54, 0x45, 0x2a,
3170            ],
3171            Elements::Some64 => [
3172                0x7f, 0x0b, 0xbd, 0x9d, 0x66, 0x31, 0xc1, 0x30, 0x9f, 0x90, 0x1c, 0x2f, 0x0d, 0x7a,
3173                0x0d, 0x28, 0x4a, 0x34, 0x41, 0x6c, 0xf7, 0x50, 0xdb, 0x1f, 0xe2, 0xb9, 0xf3, 0xd6,
3174                0xed, 0x70, 0x94, 0x09,
3175            ],
3176            Elements::Some8 => [
3177                0x2d, 0x8c, 0x8f, 0x71, 0xee, 0x5e, 0x75, 0x82, 0xf0, 0xed, 0x65, 0xf5, 0x26, 0xc0,
3178                0x26, 0x05, 0xdc, 0xb9, 0x3c, 0x0b, 0xdd, 0xb9, 0x43, 0x3a, 0xff, 0x3f, 0x25, 0xc2,
3179                0x28, 0xac, 0xda, 0x8a,
3180            ],
3181            Elements::Subtract16 => [
3182                0x56, 0x9e, 0x6c, 0x6b, 0x39, 0xe7, 0xd8, 0x12, 0x65, 0x9b, 0x67, 0xaa, 0xc0, 0x8a,
3183                0xd1, 0x50, 0x99, 0xee, 0xad, 0x79, 0x8f, 0xd1, 0xd4, 0x2d, 0xa1, 0x7e, 0xe3, 0xf0,
3184                0xd4, 0xd4, 0x49, 0x2a,
3185            ],
3186            Elements::Subtract32 => [
3187                0x19, 0xd3, 0x5e, 0x0a, 0xf1, 0xe1, 0x65, 0x14, 0xa6, 0xdf, 0xc2, 0x9a, 0x91, 0x41,
3188                0x87, 0x13, 0x39, 0x64, 0xc4, 0x80, 0xf6, 0x60, 0xe7, 0xeb, 0x92, 0x4e, 0xe1, 0x6d,
3189                0xba, 0xa2, 0x49, 0xcb,
3190            ],
3191            Elements::Subtract64 => [
3192                0x52, 0x3e, 0x11, 0x86, 0x28, 0xbf, 0x3a, 0xc1, 0xa6, 0xbe, 0x5a, 0x72, 0xbd, 0xb1,
3193                0x14, 0x1b, 0x89, 0xe0, 0xe0, 0x01, 0xe4, 0x02, 0xad, 0xda, 0x82, 0x58, 0x79, 0x00,
3194                0x03, 0xf8, 0x8a, 0xd8,
3195            ],
3196            Elements::Subtract8 => [
3197                0x40, 0x95, 0x0b, 0x86, 0xf6, 0xf1, 0xf9, 0x93, 0x55, 0xde, 0xe1, 0x1f, 0x77, 0xda,
3198                0xf2, 0x79, 0xa0, 0xcb, 0x6c, 0x6d, 0x15, 0x6a, 0xe4, 0x4b, 0x7d, 0x5d, 0x25, 0x71,
3199                0x64, 0xb2, 0x67, 0xc5,
3200            ],
3201            Elements::Swu => [
3202                0xab, 0xf7, 0x0b, 0xe0, 0x0b, 0x30, 0xf5, 0x77, 0xf9, 0x87, 0xcb, 0x50, 0x48, 0x89,
3203                0x96, 0xba, 0x35, 0x96, 0xdb, 0xf9, 0xc1, 0xe8, 0x44, 0xa8, 0xb1, 0xb8, 0xb7, 0x10,
3204                0x85, 0x3b, 0x65, 0xeb,
3205            ],
3206            Elements::TapEnvHash => [
3207                0x72, 0x27, 0x07, 0x71, 0x93, 0xec, 0x17, 0x41, 0x8e, 0xbf, 0x78, 0x77, 0xaf, 0xdc,
3208                0x70, 0x97, 0xbd, 0x5e, 0xed, 0x57, 0xe8, 0x26, 0xdf, 0x66, 0x05, 0xc6, 0x48, 0x69,
3209                0x1d, 0x00, 0x34, 0x03,
3210            ],
3211            Elements::TapdataInit => [
3212                0x6c, 0x67, 0xe5, 0xc1, 0x07, 0x35, 0x30, 0x5e, 0xe7, 0xde, 0xb5, 0x9a, 0x6c, 0x6a,
3213                0xc2, 0xef, 0xfc, 0xab, 0x4f, 0xf7, 0xbb, 0x47, 0x9e, 0xa7, 0x00, 0x81, 0x60, 0x6e,
3214                0x60, 0x48, 0x4c, 0xa7,
3215            ],
3216            Elements::TapleafHash => [
3217                0xd4, 0x5a, 0x66, 0x1f, 0xc9, 0x10, 0x0e, 0x2e, 0xa9, 0xdf, 0x78, 0x9c, 0xa2, 0x34,
3218                0x6d, 0xa8, 0x42, 0x71, 0x7e, 0xf6, 0xa8, 0xc8, 0x24, 0x18, 0x4f, 0x2d, 0xa8, 0xc7,
3219                0xfb, 0x01, 0x62, 0x03,
3220            ],
3221            Elements::TapleafVersion => [
3222                0xdd, 0xb0, 0xed, 0xd6, 0xce, 0x1e, 0x07, 0x98, 0x3d, 0x1a, 0x62, 0x26, 0xf0, 0x0b,
3223                0x12, 0x51, 0x89, 0xaf, 0x13, 0xbd, 0x5c, 0xd0, 0x68, 0x12, 0x3a, 0xd4, 0x3f, 0x48,
3224                0x20, 0x1b, 0x00, 0x6f,
3225            ],
3226            Elements::Tappath => [
3227                0x42, 0xc0, 0xc1, 0xf2, 0xef, 0x0e, 0x28, 0xae, 0x7d, 0xef, 0xa1, 0x5e, 0x84, 0xa0,
3228                0x6f, 0x35, 0xfb, 0xf6, 0xfc, 0x89, 0x7b, 0x29, 0xf6, 0x83, 0xfe, 0x1a, 0x24, 0xe3,
3229                0x0d, 0xc5, 0x8b, 0xaf,
3230            ],
3231            Elements::TappathHash => [
3232                0x9d, 0xa9, 0x06, 0xe3, 0xec, 0x08, 0x60, 0x65, 0xbe, 0x14, 0x41, 0x36, 0xb5, 0x16,
3233                0x20, 0xb6, 0x6d, 0xdf, 0x4d, 0x71, 0x38, 0x57, 0x35, 0x4e, 0xba, 0x3b, 0x97, 0xc7,
3234                0x75, 0x85, 0xf4, 0x43,
3235            ],
3236            Elements::TotalFee => [
3237                0x4e, 0xba, 0x3f, 0x22, 0xba, 0xc0, 0xa4, 0x65, 0xe4, 0xd0, 0x8a, 0x9a, 0xc4, 0x05,
3238                0x18, 0xef, 0x97, 0x2c, 0x2e, 0x86, 0x12, 0x09, 0x0a, 0x51, 0xe3, 0x20, 0x3f, 0xcb,
3239                0xd2, 0xf4, 0xed, 0xbe,
3240            ],
3241            Elements::TransactionId => [
3242                0x08, 0xb8, 0xeb, 0x3c, 0x2d, 0x2d, 0x95, 0x84, 0x58, 0xe1, 0x63, 0xe9, 0x43, 0x34,
3243                0x95, 0x0c, 0x0b, 0xb9, 0x14, 0xa0, 0xb9, 0xd2, 0x14, 0xfc, 0x5e, 0x9d, 0xe8, 0xf7,
3244                0x0a, 0x17, 0xa0, 0xd4,
3245            ],
3246            Elements::TxHash => [
3247                0xc3, 0x61, 0x02, 0xae, 0xda, 0x8b, 0xcf, 0x62, 0xa8, 0x5e, 0x71, 0x4b, 0x18, 0xe4,
3248                0xc5, 0x0c, 0xd4, 0x17, 0xff, 0xbf, 0x86, 0xd7, 0x37, 0x34, 0xe0, 0x2c, 0xbf, 0xcb,
3249                0x53, 0x13, 0xfc, 0xcf,
3250            ],
3251            Elements::TxIsFinal => [
3252                0x8b, 0x31, 0x45, 0x72, 0x24, 0x70, 0xa0, 0x7d, 0xe9, 0x0a, 0x28, 0xba, 0x89, 0xf3,
3253                0xf8, 0x86, 0x42, 0x61, 0x00, 0x96, 0x54, 0xce, 0x86, 0x6c, 0xd8, 0xea, 0xf7, 0x6c,
3254                0x5d, 0x86, 0x26, 0xeb,
3255            ],
3256            Elements::TxLockHeight => [
3257                0xc2, 0x02, 0x57, 0xf8, 0xe7, 0x6e, 0xcd, 0x0a, 0xe7, 0xad, 0x63, 0x4f, 0x5d, 0xfa,
3258                0x68, 0xae, 0x9a, 0x5e, 0xde, 0xd0, 0xe2, 0xee, 0xbe, 0x4e, 0xe5, 0x2c, 0xb4, 0x7a,
3259                0xcf, 0xb0, 0x26, 0x4c,
3260            ],
3261            Elements::TxLockTime => [
3262                0x3e, 0xe1, 0x90, 0x05, 0x42, 0xd0, 0x1e, 0xfd, 0x4e, 0x9a, 0x01, 0xd4, 0xef, 0xb1,
3263                0xf9, 0xdd, 0x99, 0x2c, 0xed, 0x35, 0xb7, 0xa7, 0x52, 0xf8, 0x3d, 0xa5, 0x93, 0x38,
3264                0x15, 0x38, 0xde, 0xa4,
3265            ],
3266            Elements::Verify => [
3267                0x34, 0x3e, 0x6d, 0xc1, 0x6b, 0x3f, 0x52, 0xe8, 0x3e, 0x3b, 0x4c, 0xcc, 0x99, 0xb8,
3268                0xc6, 0xf9, 0x6a, 0x07, 0x4f, 0xe3, 0x99, 0x32, 0x7a, 0xf3, 0x64, 0xbc, 0x28, 0x5e,
3269                0x29, 0x97, 0x45, 0xa2,
3270            ],
3271            Elements::Version => [
3272                0x08, 0x7f, 0xc9, 0x5c, 0x41, 0x00, 0x33, 0x48, 0x75, 0x9f, 0xd8, 0x40, 0x37, 0x2c,
3273                0x6f, 0x91, 0x2d, 0x9b, 0xe4, 0xe6, 0x1e, 0xee, 0x3c, 0x6a, 0x7a, 0x40, 0xdc, 0x13,
3274                0xc9, 0xc1, 0xbc, 0x70,
3275            ],
3276            Elements::Xor1 => [
3277                0x9d, 0xc9, 0xfe, 0x42, 0xf7, 0xeb, 0x34, 0x64, 0x9f, 0x1c, 0x72, 0xd2, 0xe5, 0xdd,
3278                0x16, 0x7d, 0xb2, 0x1b, 0xe5, 0x32, 0x13, 0x72, 0xd5, 0xca, 0x7f, 0x6a, 0x18, 0x4f,
3279                0x93, 0xe0, 0x5e, 0xe3,
3280            ],
3281            Elements::Xor16 => [
3282                0x1f, 0xca, 0xf4, 0x0b, 0xde, 0xdd, 0x72, 0xe7, 0x97, 0xb0, 0x9f, 0xe7, 0x87, 0x53,
3283                0xb0, 0xab, 0x27, 0x87, 0x2c, 0x0b, 0xd1, 0x2b, 0x03, 0x49, 0x55, 0xfb, 0xfa, 0xc2,
3284                0x38, 0x12, 0xef, 0x26,
3285            ],
3286            Elements::Xor32 => [
3287                0x1d, 0x49, 0xfc, 0x94, 0xf2, 0x2b, 0x5d, 0x31, 0xb7, 0xf9, 0xef, 0xb5, 0x37, 0x8e,
3288                0x5f, 0x8a, 0x42, 0x62, 0x6a, 0xed, 0x4e, 0x92, 0x79, 0x93, 0x48, 0xd6, 0xb7, 0x88,
3289                0xdf, 0xe8, 0x6b, 0x1c,
3290            ],
3291            Elements::Xor64 => [
3292                0x7a, 0x3f, 0x3f, 0x55, 0x20, 0x47, 0x83, 0x65, 0x33, 0x44, 0x31, 0x1d, 0x1d, 0xc5,
3293                0x09, 0xd3, 0x5b, 0x66, 0x39, 0xc0, 0xd8, 0xb9, 0x67, 0xa2, 0x07, 0x80, 0x6c, 0xd8,
3294                0x7d, 0x31, 0xd6, 0xe6,
3295            ],
3296            Elements::Xor8 => [
3297                0xd8, 0x33, 0x5f, 0x48, 0x90, 0xc1, 0xd8, 0xed, 0x76, 0x6c, 0x71, 0x35, 0x90, 0x2e,
3298                0x01, 0xa0, 0x09, 0x4e, 0x3a, 0x98, 0x16, 0xf7, 0x0c, 0x84, 0x7c, 0xc3, 0xd7, 0xc0,
3299                0x00, 0x40, 0x6e, 0xfe,
3300            ],
3301            Elements::XorXor1 => [
3302                0x1e, 0x10, 0x7b, 0x05, 0xff, 0x94, 0x1d, 0x31, 0xd7, 0x57, 0x8b, 0x43, 0x73, 0x28,
3303                0xba, 0x52, 0xf3, 0xff, 0x20, 0xa0, 0x68, 0xc0, 0xd2, 0xbd, 0xef, 0x08, 0x76, 0x80,
3304                0x93, 0xcc, 0x7c, 0x63,
3305            ],
3306            Elements::XorXor16 => [
3307                0xb7, 0x76, 0x98, 0x9d, 0xa5, 0x09, 0x5c, 0x4b, 0xe9, 0x4b, 0x1a, 0xef, 0x75, 0x94,
3308                0x66, 0xe1, 0x1f, 0x63, 0x9c, 0x19, 0x39, 0x47, 0x1f, 0xa1, 0x8e, 0x36, 0xe7, 0xe4,
3309                0x90, 0xc3, 0x89, 0x61,
3310            ],
3311            Elements::XorXor32 => [
3312                0xd1, 0x68, 0xfa, 0xc1, 0xac, 0x7f, 0xc4, 0x83, 0x57, 0xbe, 0x1b, 0x65, 0x33, 0x75,
3313                0xec, 0x5e, 0x3f, 0x05, 0x82, 0x3a, 0xae, 0x6a, 0xc9, 0x85, 0xe9, 0x40, 0x3e, 0xea,
3314                0xb1, 0x2b, 0xb9, 0xf8,
3315            ],
3316            Elements::XorXor64 => [
3317                0x36, 0x1c, 0x57, 0x93, 0x0e, 0xf9, 0x7d, 0x49, 0xcb, 0xc6, 0x79, 0xfa, 0xef, 0x1e,
3318                0x3b, 0xcf, 0xfb, 0x78, 0x79, 0x95, 0xb9, 0x61, 0xe5, 0x53, 0x7d, 0x2b, 0x1e, 0xeb,
3319                0xc9, 0xc9, 0xa6, 0xe8,
3320            ],
3321            Elements::XorXor8 => [
3322                0xc2, 0xda, 0x6e, 0x9c, 0xa6, 0x4d, 0x8a, 0x73, 0xc1, 0x77, 0x26, 0x67, 0xb3, 0xd7,
3323                0xa0, 0x93, 0x8b, 0xcb, 0x8a, 0x6c, 0x43, 0xfd, 0x04, 0x73, 0xee, 0xc7, 0x1b, 0x77,
3324                0x49, 0x4a, 0xad, 0x94,
3325            ],
3326        };
3327
3328        Cmr::from_byte_array(bytes)
3329    }
3330
3331    fn source_ty(&self) -> TypeName {
3332        let name: &'static [u8] = match self {
3333            Elements::Add16 => b"i",
3334            Elements::Add32 => b"l",
3335            Elements::Add64 => b"*ll",
3336            Elements::Add8 => b"****22*22**22*22***22*22**22*22",
3337            Elements::All16 => b"****22*22**22*22***22*22**22*22",
3338            Elements::All32 => b"i",
3339            Elements::All64 => b"l",
3340            Elements::All8 => b"***22*22**22*22",
3341            Elements::And1 => b"*22",
3342            Elements::And16 => b"i",
3343            Elements::And32 => b"l",
3344            Elements::And64 => b"*ll",
3345            Elements::And8 => b"****22*22**22*22***22*22**22*22",
3346            Elements::AnnexHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh+1h",
3347            Elements::AssetAmountHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+*2hh+*2hl",
3348            Elements::Bip0340Verify => b"**hh*hh",
3349            Elements::BrokenDoNotUseCheckLockDistance => b"****22*22**22*22***22*22**22*22",
3350            Elements::BrokenDoNotUseCheckLockDuration => b"****22*22**22*22***22*22**22*22",
3351            Elements::BrokenDoNotUseTxLockDistance => b"1",
3352            Elements::BrokenDoNotUseTxLockDuration => b"1",
3353            Elements::BuildTapbranch => b"*hh",
3354            Elements::BuildTapleafSimplicity => b"h",
3355            Elements::BuildTaptweak => b"*hh",
3356            Elements::CalculateAsset => b"h",
3357            Elements::CalculateConfidentialToken => b"h",
3358            Elements::CalculateExplicitToken => b"h",
3359            Elements::CalculateIssuanceEntropy => b"**hih",
3360            Elements::Ch1 => b"*2*22",
3361            Elements::Ch16 => b"*****22*22**22*22***22*22**22*22i",
3362            Elements::Ch32 => b"*il",
3363            Elements::Ch64 => b"*l*ll",
3364            Elements::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3365            Elements::CheckLockHeight => b"i",
3366            Elements::CheckLockTime => b"i",
3367            Elements::CheckSigVerify => b"**h*hh*hh",
3368            Elements::Complement1 => b"2",
3369            Elements::Complement16 => b"****22*22**22*22***22*22**22*22",
3370            Elements::Complement32 => b"i",
3371            Elements::Complement64 => b"l",
3372            Elements::Complement8 => b"***22*22**22*22",
3373            Elements::CurrentAmount => b"1",
3374            Elements::CurrentAnnexHash => b"1",
3375            Elements::CurrentAsset => b"1",
3376            Elements::CurrentIndex => b"1",
3377            Elements::CurrentIssuanceAssetAmount => b"1",
3378            Elements::CurrentIssuanceAssetProof => b"1",
3379            Elements::CurrentIssuanceTokenAmount => b"1",
3380            Elements::CurrentIssuanceTokenProof => b"1",
3381            Elements::CurrentNewIssuanceContract => b"1",
3382            Elements::CurrentPegin => b"1",
3383            Elements::CurrentPrevOutpoint => b"1",
3384            Elements::CurrentReissuanceBlinding => b"1",
3385            Elements::CurrentReissuanceEntropy => b"1",
3386            Elements::CurrentScriptHash => b"1",
3387            Elements::CurrentScriptSigHash => b"1",
3388            Elements::CurrentSequence => b"1",
3389            Elements::Decompress => b"*2h",
3390            Elements::Decrement16 => b"****22*22**22*22***22*22**22*22",
3391            Elements::Decrement32 => b"i",
3392            Elements::Decrement64 => b"l",
3393            Elements::Decrement8 => b"***22*22**22*22",
3394            Elements::DivMod128_64 => b"**lll",
3395            Elements::DivMod16 => b"i",
3396            Elements::DivMod32 => b"l",
3397            Elements::DivMod64 => b"*ll",
3398            Elements::DivMod8 => b"****22*22**22*22***22*22**22*22",
3399            Elements::Divide16 => b"i",
3400            Elements::Divide32 => b"l",
3401            Elements::Divide64 => b"*ll",
3402            Elements::Divide8 => b"****22*22**22*22***22*22**22*22",
3403            Elements::Divides16 => b"i",
3404            Elements::Divides32 => b"l",
3405            Elements::Divides64 => b"*ll",
3406            Elements::Divides8 => b"****22*22**22*22***22*22**22*22",
3407            Elements::Eq1 => b"*22",
3408            Elements::Eq16 => b"i",
3409            Elements::Eq256 => b"*hh",
3410            Elements::Eq32 => b"l",
3411            Elements::Eq64 => b"*ll",
3412            Elements::Eq8 => b"****22*22**22*22***22*22**22*22",
3413            Elements::FeAdd => b"*hh",
3414            Elements::FeInvert => b"h",
3415            Elements::FeIsOdd => b"h",
3416            Elements::FeIsZero => b"h",
3417            Elements::FeMultiply => b"*hh",
3418            Elements::FeMultiplyBeta => b"h",
3419            Elements::FeNegate => b"h",
3420            Elements::FeNormalize => b"h",
3421            Elements::FeSquare => b"h",
3422            Elements::FeSquareRoot => b"h",
3423            Elements::FullAdd16 => b"*2i",
3424            Elements::FullAdd32 => b"*2l",
3425            Elements::FullAdd64 => b"*2*ll",
3426            Elements::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
3427            Elements::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3428            Elements::FullDecrement32 => b"*2i",
3429            Elements::FullDecrement64 => b"*2l",
3430            Elements::FullDecrement8 => b"*2***22*22**22*22",
3431            Elements::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3432            Elements::FullIncrement32 => b"*2i",
3433            Elements::FullIncrement64 => b"*2l",
3434            Elements::FullIncrement8 => b"*2***22*22**22*22",
3435            Elements::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
3436            Elements::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3437            Elements::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3438            Elements::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3439            Elements::FullLeftShift32_1 => b"*i2",
3440            Elements::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3441            Elements::FullLeftShift32_2 => b"*i*22",
3442            Elements::FullLeftShift32_4 => b"*i**22*22",
3443            Elements::FullLeftShift32_8 => b"*i***22*22**22*22",
3444            Elements::FullLeftShift64_1 => b"*l2",
3445            Elements::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3446            Elements::FullLeftShift64_2 => b"*l*22",
3447            Elements::FullLeftShift64_32 => b"*li",
3448            Elements::FullLeftShift64_4 => b"*l**22*22",
3449            Elements::FullLeftShift64_8 => b"*l***22*22**22*22",
3450            Elements::FullLeftShift8_1 => b"****22*22**22*222",
3451            Elements::FullLeftShift8_2 => b"****22*22**22*22*22",
3452            Elements::FullLeftShift8_4 => b"****22*22**22*22**22*22",
3453            Elements::FullMultiply16 => b"l",
3454            Elements::FullMultiply32 => b"*ll",
3455            Elements::FullMultiply64 => b"h",
3456            Elements::FullMultiply8 => b"i",
3457            Elements::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3458            Elements::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3459            Elements::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3460            Elements::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3461            Elements::FullRightShift32_1 => b"*2i",
3462            Elements::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3463            Elements::FullRightShift32_2 => b"**22i",
3464            Elements::FullRightShift32_4 => b"***22*22i",
3465            Elements::FullRightShift32_8 => b"****22*22**22*22i",
3466            Elements::FullRightShift64_1 => b"*2l",
3467            Elements::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3468            Elements::FullRightShift64_2 => b"**22l",
3469            Elements::FullRightShift64_32 => b"*il",
3470            Elements::FullRightShift64_4 => b"***22*22l",
3471            Elements::FullRightShift64_8 => b"****22*22**22*22l",
3472            Elements::FullRightShift8_1 => b"*2***22*22**22*22",
3473            Elements::FullRightShift8_2 => b"**22***22*22**22*22",
3474            Elements::FullRightShift8_4 => b"***22*22***22*22**22*22",
3475            Elements::FullSubtract16 => b"*2i",
3476            Elements::FullSubtract32 => b"*2l",
3477            Elements::FullSubtract64 => b"*2*ll",
3478            Elements::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
3479            Elements::GeIsOnCurve => b"*hh",
3480            Elements::GeNegate => b"*hh",
3481            Elements::GejAdd => b"***hhh**hhh",
3482            Elements::GejDouble => b"**hhh",
3483            Elements::GejEquiv => b"***hhh**hhh",
3484            Elements::GejGeAdd => b"***hhh*hh",
3485            Elements::GejGeAddEx => b"***hhh*hh",
3486            Elements::GejGeEquiv => b"***hhh*hh",
3487            Elements::GejInfinity => b"1",
3488            Elements::GejIsInfinity => b"**hhh",
3489            Elements::GejIsOnCurve => b"**hhh",
3490            Elements::GejNegate => b"**hhh",
3491            Elements::GejNormalize => b"**hhh",
3492            Elements::GejRescale => b"***hhhh",
3493            Elements::GejXEquiv => b"*h**hhh",
3494            Elements::GejYIsOdd => b"**hhh",
3495            Elements::Generate => b"h",
3496            Elements::GenesisBlockHash => b"1",
3497            Elements::HashToCurve => b"h",
3498            Elements::High1 => b"1",
3499            Elements::High16 => b"1",
3500            Elements::High32 => b"1",
3501            Elements::High64 => b"1",
3502            Elements::High8 => b"1",
3503            Elements::Increment16 => b"****22*22**22*22***22*22**22*22",
3504            Elements::Increment32 => b"i",
3505            Elements::Increment64 => b"l",
3506            Elements::Increment8 => b"***22*22**22*22",
3507            Elements::InputAmount => b"i",
3508            Elements::InputAmountsHash => b"1",
3509            Elements::InputAnnexHash => b"i",
3510            Elements::InputAnnexesHash => b"1",
3511            Elements::InputAsset => b"i",
3512            Elements::InputHash => b"i",
3513            Elements::InputOutpointsHash => b"1",
3514            Elements::InputPegin => b"i",
3515            Elements::InputPrevOutpoint => b"i",
3516            Elements::InputScriptHash => b"i",
3517            Elements::InputScriptSigHash => b"i",
3518            Elements::InputScriptSigsHash => b"1",
3519            Elements::InputScriptsHash => b"1",
3520            Elements::InputSequence => b"i",
3521            Elements::InputSequencesHash => b"1",
3522            Elements::InputUtxoHash => b"i",
3523            Elements::InputUtxosHash => b"1",
3524            Elements::InputsHash => b"1",
3525            Elements::InternalKey => b"1",
3526            Elements::IsOne16 => b"****22*22**22*22***22*22**22*22",
3527            Elements::IsOne32 => b"i",
3528            Elements::IsOne64 => b"l",
3529            Elements::IsOne8 => b"***22*22**22*22",
3530            Elements::IsZero16 => b"****22*22**22*22***22*22**22*22",
3531            Elements::IsZero32 => b"i",
3532            Elements::IsZero64 => b"l",
3533            Elements::IsZero8 => b"***22*22**22*22",
3534            Elements::Issuance => b"i",
3535            Elements::IssuanceAsset => b"i",
3536            Elements::IssuanceAssetAmount => b"i",
3537            Elements::IssuanceAssetAmountsHash => b"1",
3538            Elements::IssuanceAssetProof => b"i",
3539            Elements::IssuanceBlindingEntropyHash => b"1",
3540            Elements::IssuanceEntropy => b"i",
3541            Elements::IssuanceHash => b"i",
3542            Elements::IssuanceRangeProofsHash => b"1",
3543            Elements::IssuanceToken => b"i",
3544            Elements::IssuanceTokenAmount => b"i",
3545            Elements::IssuanceTokenAmountsHash => b"1",
3546            Elements::IssuanceTokenProof => b"i",
3547            Elements::IssuancesHash => b"1",
3548            Elements::LbtcAsset => b"1",
3549            Elements::Le16 => b"i",
3550            Elements::Le32 => b"l",
3551            Elements::Le64 => b"*ll",
3552            Elements::Le8 => b"****22*22**22*22***22*22**22*22",
3553            Elements::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
3554            Elements::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
3555            Elements::LeftExtend1_16 => b"2",
3556            Elements::LeftExtend1_32 => b"2",
3557            Elements::LeftExtend1_64 => b"2",
3558            Elements::LeftExtend1_8 => b"2",
3559            Elements::LeftExtend32_64 => b"i",
3560            Elements::LeftExtend8_16 => b"***22*22**22*22",
3561            Elements::LeftExtend8_32 => b"***22*22**22*22",
3562            Elements::LeftExtend8_64 => b"***22*22**22*22",
3563            Elements::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
3564            Elements::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
3565            Elements::LeftPadHigh1_16 => b"2",
3566            Elements::LeftPadHigh1_32 => b"2",
3567            Elements::LeftPadHigh1_64 => b"2",
3568            Elements::LeftPadHigh1_8 => b"2",
3569            Elements::LeftPadHigh32_64 => b"i",
3570            Elements::LeftPadHigh8_16 => b"***22*22**22*22",
3571            Elements::LeftPadHigh8_32 => b"***22*22**22*22",
3572            Elements::LeftPadHigh8_64 => b"***22*22**22*22",
3573            Elements::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
3574            Elements::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
3575            Elements::LeftPadLow1_16 => b"2",
3576            Elements::LeftPadLow1_32 => b"2",
3577            Elements::LeftPadLow1_64 => b"2",
3578            Elements::LeftPadLow1_8 => b"2",
3579            Elements::LeftPadLow32_64 => b"i",
3580            Elements::LeftPadLow8_16 => b"***22*22**22*22",
3581            Elements::LeftPadLow8_32 => b"***22*22**22*22",
3582            Elements::LeftPadLow8_64 => b"***22*22**22*22",
3583            Elements::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
3584            Elements::LeftRotate32 => b"****22*22**22*22i",
3585            Elements::LeftRotate64 => b"****22*22**22*22l",
3586            Elements::LeftRotate8 => b"***22*22***22*22**22*22",
3587            Elements::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
3588            Elements::LeftShift32 => b"****22*22**22*22i",
3589            Elements::LeftShift64 => b"****22*22**22*22l",
3590            Elements::LeftShift8 => b"***22*22***22*22**22*22",
3591            Elements::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
3592            Elements::LeftShiftWith32 => b"*2****22*22**22*22i",
3593            Elements::LeftShiftWith64 => b"*2****22*22**22*22l",
3594            Elements::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
3595            Elements::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
3596            Elements::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
3597            Elements::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
3598            Elements::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
3599            Elements::Leftmost32_1 => b"i",
3600            Elements::Leftmost32_16 => b"i",
3601            Elements::Leftmost32_2 => b"i",
3602            Elements::Leftmost32_4 => b"i",
3603            Elements::Leftmost32_8 => b"i",
3604            Elements::Leftmost64_1 => b"l",
3605            Elements::Leftmost64_16 => b"l",
3606            Elements::Leftmost64_2 => b"l",
3607            Elements::Leftmost64_32 => b"l",
3608            Elements::Leftmost64_4 => b"l",
3609            Elements::Leftmost64_8 => b"l",
3610            Elements::Leftmost8_1 => b"***22*22**22*22",
3611            Elements::Leftmost8_2 => b"***22*22**22*22",
3612            Elements::Leftmost8_4 => b"***22*22**22*22",
3613            Elements::LinearCombination1 => b"**h**hhhh",
3614            Elements::LinearVerify1 => b"***h*hhh*hh",
3615            Elements::LockTime => b"1",
3616            Elements::Low1 => b"1",
3617            Elements::Low16 => b"1",
3618            Elements::Low32 => b"1",
3619            Elements::Low64 => b"1",
3620            Elements::Low8 => b"1",
3621            Elements::Lt16 => b"i",
3622            Elements::Lt32 => b"l",
3623            Elements::Lt64 => b"*ll",
3624            Elements::Lt8 => b"****22*22**22*22***22*22**22*22",
3625            Elements::Maj1 => b"*2*22",
3626            Elements::Maj16 => b"*****22*22**22*22***22*22**22*22i",
3627            Elements::Maj32 => b"*il",
3628            Elements::Maj64 => b"*l*ll",
3629            Elements::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3630            Elements::Max16 => b"i",
3631            Elements::Max32 => b"l",
3632            Elements::Max64 => b"*ll",
3633            Elements::Max8 => b"****22*22**22*22***22*22**22*22",
3634            Elements::Median16 => b"*****22*22**22*22***22*22**22*22i",
3635            Elements::Median32 => b"*il",
3636            Elements::Median64 => b"*l*ll",
3637            Elements::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3638            Elements::Min16 => b"i",
3639            Elements::Min32 => b"l",
3640            Elements::Min64 => b"*ll",
3641            Elements::Min8 => b"****22*22**22*22***22*22**22*22",
3642            Elements::Modulo16 => b"i",
3643            Elements::Modulo32 => b"l",
3644            Elements::Modulo64 => b"*ll",
3645            Elements::Modulo8 => b"****22*22**22*22***22*22**22*22",
3646            Elements::Multiply16 => b"i",
3647            Elements::Multiply32 => b"l",
3648            Elements::Multiply64 => b"*ll",
3649            Elements::Multiply8 => b"****22*22**22*22***22*22**22*22",
3650            Elements::Negate16 => b"****22*22**22*22***22*22**22*22",
3651            Elements::Negate32 => b"i",
3652            Elements::Negate64 => b"l",
3653            Elements::Negate8 => b"***22*22**22*22",
3654            Elements::NewIssuanceContract => b"i",
3655            Elements::NonceHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh+1+*2hh",
3656            Elements::NumInputs => b"1",
3657            Elements::NumOutputs => b"1",
3658            Elements::One16 => b"1",
3659            Elements::One32 => b"1",
3660            Elements::One64 => b"1",
3661            Elements::One8 => b"1",
3662            Elements::Or1 => b"*22",
3663            Elements::Or16 => b"i",
3664            Elements::Or32 => b"l",
3665            Elements::Or64 => b"*ll",
3666            Elements::Or8 => b"****22*22**22*22***22*22**22*22",
3667            Elements::OutpointHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+1h*hi",
3668            Elements::OutputAmount => b"i",
3669            Elements::OutputAmountsHash => b"1",
3670            Elements::OutputAsset => b"i",
3671            Elements::OutputHash => b"i",
3672            Elements::OutputIsFee => b"i",
3673            Elements::OutputNonce => b"i",
3674            Elements::OutputNoncesHash => b"1",
3675            Elements::OutputNullDatum => b"l",
3676            Elements::OutputRangeProof => b"i",
3677            Elements::OutputRangeProofsHash => b"1",
3678            Elements::OutputScriptHash => b"i",
3679            Elements::OutputScriptsHash => b"1",
3680            Elements::OutputSurjectionProof => b"i",
3681            Elements::OutputSurjectionProofsHash => b"1",
3682            Elements::OutputsHash => b"1",
3683            Elements::ParseLock => b"i",
3684            Elements::ParseSequence => b"i",
3685            Elements::PointVerify1 => b"***h*2hh*2h",
3686            Elements::ReissuanceBlinding => b"i",
3687            Elements::ReissuanceEntropy => b"i",
3688            Elements::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
3689            Elements::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
3690            Elements::RightExtend32_64 => b"i",
3691            Elements::RightExtend8_16 => b"***22*22**22*22",
3692            Elements::RightExtend8_32 => b"***22*22**22*22",
3693            Elements::RightExtend8_64 => b"***22*22**22*22",
3694            Elements::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
3695            Elements::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
3696            Elements::RightPadHigh1_16 => b"2",
3697            Elements::RightPadHigh1_32 => b"2",
3698            Elements::RightPadHigh1_64 => b"2",
3699            Elements::RightPadHigh1_8 => b"2",
3700            Elements::RightPadHigh32_64 => b"i",
3701            Elements::RightPadHigh8_16 => b"***22*22**22*22",
3702            Elements::RightPadHigh8_32 => b"***22*22**22*22",
3703            Elements::RightPadHigh8_64 => b"***22*22**22*22",
3704            Elements::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
3705            Elements::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
3706            Elements::RightPadLow1_16 => b"2",
3707            Elements::RightPadLow1_32 => b"2",
3708            Elements::RightPadLow1_64 => b"2",
3709            Elements::RightPadLow1_8 => b"2",
3710            Elements::RightPadLow32_64 => b"i",
3711            Elements::RightPadLow8_16 => b"***22*22**22*22",
3712            Elements::RightPadLow8_32 => b"***22*22**22*22",
3713            Elements::RightPadLow8_64 => b"***22*22**22*22",
3714            Elements::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
3715            Elements::RightRotate32 => b"****22*22**22*22i",
3716            Elements::RightRotate64 => b"****22*22**22*22l",
3717            Elements::RightRotate8 => b"***22*22***22*22**22*22",
3718            Elements::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
3719            Elements::RightShift32 => b"****22*22**22*22i",
3720            Elements::RightShift64 => b"****22*22**22*22l",
3721            Elements::RightShift8 => b"***22*22***22*22**22*22",
3722            Elements::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
3723            Elements::RightShiftWith32 => b"*2****22*22**22*22i",
3724            Elements::RightShiftWith64 => b"*2****22*22**22*22l",
3725            Elements::RightShiftWith8 => b"*2***22*22***22*22**22*22",
3726            Elements::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
3727            Elements::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
3728            Elements::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
3729            Elements::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
3730            Elements::Rightmost32_1 => b"i",
3731            Elements::Rightmost32_16 => b"i",
3732            Elements::Rightmost32_2 => b"i",
3733            Elements::Rightmost32_4 => b"i",
3734            Elements::Rightmost32_8 => b"i",
3735            Elements::Rightmost64_1 => b"l",
3736            Elements::Rightmost64_16 => b"l",
3737            Elements::Rightmost64_2 => b"l",
3738            Elements::Rightmost64_32 => b"l",
3739            Elements::Rightmost64_4 => b"l",
3740            Elements::Rightmost64_8 => b"l",
3741            Elements::Rightmost8_1 => b"***22*22**22*22",
3742            Elements::Rightmost8_2 => b"***22*22**22*22",
3743            Elements::Rightmost8_4 => b"***22*22**22*22",
3744            Elements::ScalarAdd => b"*hh",
3745            Elements::ScalarInvert => b"h",
3746            Elements::ScalarIsZero => b"h",
3747            Elements::ScalarMultiply => b"*hh",
3748            Elements::ScalarMultiplyLambda => b"h",
3749            Elements::ScalarNegate => b"h",
3750            Elements::ScalarNormalize => b"h",
3751            Elements::ScalarSquare => b"h",
3752            Elements::Scale => b"*h**hhh",
3753            Elements::ScriptCMR => b"1",
3754            Elements::Sha256Block => b"*h*hh",
3755            Elements::Sha256Ctx8Add1 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh***22*22**22*22",
3756            Elements::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
3757            Elements::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
3758            Elements::Sha256Ctx8Add2 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh****22*22**22*22***22*22**22*22",
3759            Elements::Sha256Ctx8Add256 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh***hh*hh**hh*hh",
3760            Elements::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
3761            Elements::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
3762            Elements::Sha256Ctx8Add512 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh****hh*hh**hh*hh***hh*hh**hh*hh",
3763            Elements::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
3764            Elements::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
3765            Elements::Sha256Ctx8AddBuffer511 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+1***hh*hh**hh*hh*+1**hh*hh*+1*hh*+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22",
3766            Elements::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3767            Elements::Sha256Ctx8Init => b"1",
3768            Elements::Sha256Iv => b"1",
3769            Elements::SigAllHash => b"1",
3770            Elements::Some1 => b"2",
3771            Elements::Some16 => b"****22*22**22*22***22*22**22*22",
3772            Elements::Some32 => b"i",
3773            Elements::Some64 => b"l",
3774            Elements::Some8 => b"***22*22**22*22",
3775            Elements::Subtract16 => b"i",
3776            Elements::Subtract32 => b"l",
3777            Elements::Subtract64 => b"*ll",
3778            Elements::Subtract8 => b"****22*22**22*22***22*22**22*22",
3779            Elements::Swu => b"h",
3780            Elements::TapEnvHash => b"1",
3781            Elements::TapdataInit => b"1",
3782            Elements::TapleafHash => b"1",
3783            Elements::TapleafVersion => b"1",
3784            Elements::Tappath => b"***22*22**22*22",
3785            Elements::TappathHash => b"1",
3786            Elements::TotalFee => b"h",
3787            Elements::TransactionId => b"1",
3788            Elements::TxHash => b"1",
3789            Elements::TxIsFinal => b"1",
3790            Elements::TxLockHeight => b"1",
3791            Elements::TxLockTime => b"1",
3792            Elements::Verify => b"2",
3793            Elements::Version => b"1",
3794            Elements::Xor1 => b"*22",
3795            Elements::Xor16 => b"i",
3796            Elements::Xor32 => b"l",
3797            Elements::Xor64 => b"*ll",
3798            Elements::Xor8 => b"****22*22**22*22***22*22**22*22",
3799            Elements::XorXor1 => b"*2*22",
3800            Elements::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
3801            Elements::XorXor32 => b"*il",
3802            Elements::XorXor64 => b"*l*ll",
3803            Elements::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3804        };
3805
3806        TypeName(name)
3807    }
3808
3809    fn target_ty(&self) -> TypeName {
3810        let name: &'static [u8] = match self {
3811            Elements::Add16 => b"*2****22*22**22*22***22*22**22*22",
3812            Elements::Add32 => b"*2i",
3813            Elements::Add64 => b"*2l",
3814            Elements::Add8 => b"*2***22*22**22*22",
3815            Elements::All16 => b"2",
3816            Elements::All32 => b"2",
3817            Elements::All64 => b"2",
3818            Elements::All8 => b"2",
3819            Elements::And1 => b"2",
3820            Elements::And16 => b"****22*22**22*22***22*22**22*22",
3821            Elements::And32 => b"i",
3822            Elements::And64 => b"l",
3823            Elements::And8 => b"***22*22**22*22",
3824            Elements::AnnexHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3825            Elements::AssetAmountHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3826            Elements::Bip0340Verify => b"1",
3827            Elements::BrokenDoNotUseCheckLockDistance => b"1",
3828            Elements::BrokenDoNotUseCheckLockDuration => b"1",
3829            Elements::BrokenDoNotUseTxLockDistance => b"****22*22**22*22***22*22**22*22",
3830            Elements::BrokenDoNotUseTxLockDuration => b"****22*22**22*22***22*22**22*22",
3831            Elements::BuildTapbranch => b"h",
3832            Elements::BuildTapleafSimplicity => b"h",
3833            Elements::BuildTaptweak => b"h",
3834            Elements::CalculateAsset => b"h",
3835            Elements::CalculateConfidentialToken => b"h",
3836            Elements::CalculateExplicitToken => b"h",
3837            Elements::CalculateIssuanceEntropy => b"h",
3838            Elements::Ch1 => b"2",
3839            Elements::Ch16 => b"****22*22**22*22***22*22**22*22",
3840            Elements::Ch32 => b"i",
3841            Elements::Ch64 => b"l",
3842            Elements::Ch8 => b"***22*22**22*22",
3843            Elements::CheckLockHeight => b"1",
3844            Elements::CheckLockTime => b"1",
3845            Elements::CheckSigVerify => b"1",
3846            Elements::Complement1 => b"2",
3847            Elements::Complement16 => b"****22*22**22*22***22*22**22*22",
3848            Elements::Complement32 => b"i",
3849            Elements::Complement64 => b"l",
3850            Elements::Complement8 => b"***22*22**22*22",
3851            Elements::CurrentAmount => b"*+*2hh+*2hl",
3852            Elements::CurrentAnnexHash => b"+1h",
3853            Elements::CurrentAsset => b"+*2hh",
3854            Elements::CurrentIndex => b"i",
3855            Elements::CurrentIssuanceAssetAmount => b"+1+*2hl",
3856            Elements::CurrentIssuanceAssetProof => b"h",
3857            Elements::CurrentIssuanceTokenAmount => b"+1+*2hl",
3858            Elements::CurrentIssuanceTokenProof => b"h",
3859            Elements::CurrentNewIssuanceContract => b"+1h",
3860            Elements::CurrentPegin => b"+1h",
3861            Elements::CurrentPrevOutpoint => b"*hi",
3862            Elements::CurrentReissuanceBlinding => b"+1h",
3863            Elements::CurrentReissuanceEntropy => b"+1h",
3864            Elements::CurrentScriptHash => b"h",
3865            Elements::CurrentScriptSigHash => b"h",
3866            Elements::CurrentSequence => b"i",
3867            Elements::Decompress => b"+1*hh",
3868            Elements::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
3869            Elements::Decrement32 => b"*2i",
3870            Elements::Decrement64 => b"*2l",
3871            Elements::Decrement8 => b"*2***22*22**22*22",
3872            Elements::DivMod128_64 => b"*ll",
3873            Elements::DivMod16 => b"i",
3874            Elements::DivMod32 => b"l",
3875            Elements::DivMod64 => b"*ll",
3876            Elements::DivMod8 => b"****22*22**22*22***22*22**22*22",
3877            Elements::Divide16 => b"****22*22**22*22***22*22**22*22",
3878            Elements::Divide32 => b"i",
3879            Elements::Divide64 => b"l",
3880            Elements::Divide8 => b"***22*22**22*22",
3881            Elements::Divides16 => b"2",
3882            Elements::Divides32 => b"2",
3883            Elements::Divides64 => b"2",
3884            Elements::Divides8 => b"2",
3885            Elements::Eq1 => b"2",
3886            Elements::Eq16 => b"2",
3887            Elements::Eq256 => b"2",
3888            Elements::Eq32 => b"2",
3889            Elements::Eq64 => b"2",
3890            Elements::Eq8 => b"2",
3891            Elements::FeAdd => b"h",
3892            Elements::FeInvert => b"h",
3893            Elements::FeIsOdd => b"2",
3894            Elements::FeIsZero => b"2",
3895            Elements::FeMultiply => b"h",
3896            Elements::FeMultiplyBeta => b"h",
3897            Elements::FeNegate => b"h",
3898            Elements::FeNormalize => b"h",
3899            Elements::FeSquare => b"h",
3900            Elements::FeSquareRoot => b"+1h",
3901            Elements::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
3902            Elements::FullAdd32 => b"*2i",
3903            Elements::FullAdd64 => b"*2l",
3904            Elements::FullAdd8 => b"*2***22*22**22*22",
3905            Elements::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3906            Elements::FullDecrement32 => b"*2i",
3907            Elements::FullDecrement64 => b"*2l",
3908            Elements::FullDecrement8 => b"*2***22*22**22*22",
3909            Elements::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3910            Elements::FullIncrement32 => b"*2i",
3911            Elements::FullIncrement64 => b"*2l",
3912            Elements::FullIncrement8 => b"*2***22*22**22*22",
3913            Elements::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3914            Elements::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3915            Elements::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3916            Elements::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3917            Elements::FullLeftShift32_1 => b"*2i",
3918            Elements::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3919            Elements::FullLeftShift32_2 => b"**22i",
3920            Elements::FullLeftShift32_4 => b"***22*22i",
3921            Elements::FullLeftShift32_8 => b"****22*22**22*22i",
3922            Elements::FullLeftShift64_1 => b"*2l",
3923            Elements::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3924            Elements::FullLeftShift64_2 => b"**22l",
3925            Elements::FullLeftShift64_32 => b"*il",
3926            Elements::FullLeftShift64_4 => b"***22*22l",
3927            Elements::FullLeftShift64_8 => b"****22*22**22*22l",
3928            Elements::FullLeftShift8_1 => b"*2***22*22**22*22",
3929            Elements::FullLeftShift8_2 => b"**22***22*22**22*22",
3930            Elements::FullLeftShift8_4 => b"***22*22***22*22**22*22",
3931            Elements::FullMultiply16 => b"i",
3932            Elements::FullMultiply32 => b"l",
3933            Elements::FullMultiply64 => b"*ll",
3934            Elements::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
3935            Elements::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
3936            Elements::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3937            Elements::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3938            Elements::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3939            Elements::FullRightShift32_1 => b"*i2",
3940            Elements::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3941            Elements::FullRightShift32_2 => b"*i*22",
3942            Elements::FullRightShift32_4 => b"*i**22*22",
3943            Elements::FullRightShift32_8 => b"*i***22*22**22*22",
3944            Elements::FullRightShift64_1 => b"*l2",
3945            Elements::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3946            Elements::FullRightShift64_2 => b"*l*22",
3947            Elements::FullRightShift64_32 => b"*li",
3948            Elements::FullRightShift64_4 => b"*l**22*22",
3949            Elements::FullRightShift64_8 => b"*l***22*22**22*22",
3950            Elements::FullRightShift8_1 => b"****22*22**22*222",
3951            Elements::FullRightShift8_2 => b"****22*22**22*22*22",
3952            Elements::FullRightShift8_4 => b"****22*22**22*22**22*22",
3953            Elements::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
3954            Elements::FullSubtract32 => b"*2i",
3955            Elements::FullSubtract64 => b"*2l",
3956            Elements::FullSubtract8 => b"*2***22*22**22*22",
3957            Elements::GeIsOnCurve => b"2",
3958            Elements::GeNegate => b"*hh",
3959            Elements::GejAdd => b"**hhh",
3960            Elements::GejDouble => b"**hhh",
3961            Elements::GejEquiv => b"2",
3962            Elements::GejGeAdd => b"**hhh",
3963            Elements::GejGeAddEx => b"*h**hhh",
3964            Elements::GejGeEquiv => b"2",
3965            Elements::GejInfinity => b"**hhh",
3966            Elements::GejIsInfinity => b"2",
3967            Elements::GejIsOnCurve => b"2",
3968            Elements::GejNegate => b"**hhh",
3969            Elements::GejNormalize => b"+1*hh",
3970            Elements::GejRescale => b"**hhh",
3971            Elements::GejXEquiv => b"2",
3972            Elements::GejYIsOdd => b"2",
3973            Elements::Generate => b"**hhh",
3974            Elements::GenesisBlockHash => b"h",
3975            Elements::HashToCurve => b"*hh",
3976            Elements::High1 => b"2",
3977            Elements::High16 => b"****22*22**22*22***22*22**22*22",
3978            Elements::High32 => b"i",
3979            Elements::High64 => b"l",
3980            Elements::High8 => b"***22*22**22*22",
3981            Elements::Increment16 => b"*2****22*22**22*22***22*22**22*22",
3982            Elements::Increment32 => b"*2i",
3983            Elements::Increment64 => b"*2l",
3984            Elements::Increment8 => b"*2***22*22**22*22",
3985            Elements::InputAmount => b"+1*+*2hh+*2hl",
3986            Elements::InputAmountsHash => b"h",
3987            Elements::InputAnnexHash => b"+1+1h",
3988            Elements::InputAnnexesHash => b"h",
3989            Elements::InputAsset => b"+1+*2hh",
3990            Elements::InputHash => b"+1h",
3991            Elements::InputOutpointsHash => b"h",
3992            Elements::InputPegin => b"+1+1h",
3993            Elements::InputPrevOutpoint => b"+1*hi",
3994            Elements::InputScriptHash => b"+1h",
3995            Elements::InputScriptSigHash => b"+1h",
3996            Elements::InputScriptSigsHash => b"h",
3997            Elements::InputScriptsHash => b"h",
3998            Elements::InputSequence => b"+1i",
3999            Elements::InputSequencesHash => b"h",
4000            Elements::InputUtxoHash => b"+1h",
4001            Elements::InputUtxosHash => b"h",
4002            Elements::InputsHash => b"h",
4003            Elements::InternalKey => b"h",
4004            Elements::IsOne16 => b"2",
4005            Elements::IsOne32 => b"2",
4006            Elements::IsOne64 => b"2",
4007            Elements::IsOne8 => b"2",
4008            Elements::IsZero16 => b"2",
4009            Elements::IsZero32 => b"2",
4010            Elements::IsZero64 => b"2",
4011            Elements::IsZero8 => b"2",
4012            Elements::Issuance => b"+1+12",
4013            Elements::IssuanceAsset => b"+1+1h",
4014            Elements::IssuanceAssetAmount => b"+1+1+*2hl",
4015            Elements::IssuanceAssetAmountsHash => b"h",
4016            Elements::IssuanceAssetProof => b"+1h",
4017            Elements::IssuanceBlindingEntropyHash => b"h",
4018            Elements::IssuanceEntropy => b"+1+1h",
4019            Elements::IssuanceHash => b"+1h",
4020            Elements::IssuanceRangeProofsHash => b"h",
4021            Elements::IssuanceToken => b"+1+1h",
4022            Elements::IssuanceTokenAmount => b"+1+1+*2hl",
4023            Elements::IssuanceTokenAmountsHash => b"h",
4024            Elements::IssuanceTokenProof => b"+1h",
4025            Elements::IssuancesHash => b"h",
4026            Elements::LbtcAsset => b"h",
4027            Elements::Le16 => b"2",
4028            Elements::Le32 => b"2",
4029            Elements::Le64 => b"2",
4030            Elements::Le8 => b"2",
4031            Elements::LeftExtend16_32 => b"i",
4032            Elements::LeftExtend16_64 => b"l",
4033            Elements::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
4034            Elements::LeftExtend1_32 => b"i",
4035            Elements::LeftExtend1_64 => b"l",
4036            Elements::LeftExtend1_8 => b"***22*22**22*22",
4037            Elements::LeftExtend32_64 => b"l",
4038            Elements::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
4039            Elements::LeftExtend8_32 => b"i",
4040            Elements::LeftExtend8_64 => b"l",
4041            Elements::LeftPadHigh16_32 => b"i",
4042            Elements::LeftPadHigh16_64 => b"l",
4043            Elements::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
4044            Elements::LeftPadHigh1_32 => b"i",
4045            Elements::LeftPadHigh1_64 => b"l",
4046            Elements::LeftPadHigh1_8 => b"***22*22**22*22",
4047            Elements::LeftPadHigh32_64 => b"l",
4048            Elements::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
4049            Elements::LeftPadHigh8_32 => b"i",
4050            Elements::LeftPadHigh8_64 => b"l",
4051            Elements::LeftPadLow16_32 => b"i",
4052            Elements::LeftPadLow16_64 => b"l",
4053            Elements::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
4054            Elements::LeftPadLow1_32 => b"i",
4055            Elements::LeftPadLow1_64 => b"l",
4056            Elements::LeftPadLow1_8 => b"***22*22**22*22",
4057            Elements::LeftPadLow32_64 => b"l",
4058            Elements::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
4059            Elements::LeftPadLow8_32 => b"i",
4060            Elements::LeftPadLow8_64 => b"l",
4061            Elements::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
4062            Elements::LeftRotate32 => b"i",
4063            Elements::LeftRotate64 => b"l",
4064            Elements::LeftRotate8 => b"***22*22**22*22",
4065            Elements::LeftShift16 => b"****22*22**22*22***22*22**22*22",
4066            Elements::LeftShift32 => b"i",
4067            Elements::LeftShift64 => b"l",
4068            Elements::LeftShift8 => b"***22*22**22*22",
4069            Elements::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
4070            Elements::LeftShiftWith32 => b"i",
4071            Elements::LeftShiftWith64 => b"l",
4072            Elements::LeftShiftWith8 => b"***22*22**22*22",
4073            Elements::Leftmost16_1 => b"2",
4074            Elements::Leftmost16_2 => b"*22",
4075            Elements::Leftmost16_4 => b"**22*22",
4076            Elements::Leftmost16_8 => b"***22*22**22*22",
4077            Elements::Leftmost32_1 => b"2",
4078            Elements::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
4079            Elements::Leftmost32_2 => b"*22",
4080            Elements::Leftmost32_4 => b"**22*22",
4081            Elements::Leftmost32_8 => b"***22*22**22*22",
4082            Elements::Leftmost64_1 => b"2",
4083            Elements::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
4084            Elements::Leftmost64_2 => b"*22",
4085            Elements::Leftmost64_32 => b"i",
4086            Elements::Leftmost64_4 => b"**22*22",
4087            Elements::Leftmost64_8 => b"***22*22**22*22",
4088            Elements::Leftmost8_1 => b"2",
4089            Elements::Leftmost8_2 => b"*22",
4090            Elements::Leftmost8_4 => b"**22*22",
4091            Elements::LinearCombination1 => b"**hhh",
4092            Elements::LinearVerify1 => b"1",
4093            Elements::LockTime => b"i",
4094            Elements::Low1 => b"2",
4095            Elements::Low16 => b"****22*22**22*22***22*22**22*22",
4096            Elements::Low32 => b"i",
4097            Elements::Low64 => b"l",
4098            Elements::Low8 => b"***22*22**22*22",
4099            Elements::Lt16 => b"2",
4100            Elements::Lt32 => b"2",
4101            Elements::Lt64 => b"2",
4102            Elements::Lt8 => b"2",
4103            Elements::Maj1 => b"2",
4104            Elements::Maj16 => b"****22*22**22*22***22*22**22*22",
4105            Elements::Maj32 => b"i",
4106            Elements::Maj64 => b"l",
4107            Elements::Maj8 => b"***22*22**22*22",
4108            Elements::Max16 => b"****22*22**22*22***22*22**22*22",
4109            Elements::Max32 => b"i",
4110            Elements::Max64 => b"l",
4111            Elements::Max8 => b"***22*22**22*22",
4112            Elements::Median16 => b"****22*22**22*22***22*22**22*22",
4113            Elements::Median32 => b"i",
4114            Elements::Median64 => b"l",
4115            Elements::Median8 => b"***22*22**22*22",
4116            Elements::Min16 => b"****22*22**22*22***22*22**22*22",
4117            Elements::Min32 => b"i",
4118            Elements::Min64 => b"l",
4119            Elements::Min8 => b"***22*22**22*22",
4120            Elements::Modulo16 => b"****22*22**22*22***22*22**22*22",
4121            Elements::Modulo32 => b"i",
4122            Elements::Modulo64 => b"l",
4123            Elements::Modulo8 => b"***22*22**22*22",
4124            Elements::Multiply16 => b"i",
4125            Elements::Multiply32 => b"l",
4126            Elements::Multiply64 => b"*ll",
4127            Elements::Multiply8 => b"****22*22**22*22***22*22**22*22",
4128            Elements::Negate16 => b"*2****22*22**22*22***22*22**22*22",
4129            Elements::Negate32 => b"*2i",
4130            Elements::Negate64 => b"*2l",
4131            Elements::Negate8 => b"*2***22*22**22*22",
4132            Elements::NewIssuanceContract => b"+1+1h",
4133            Elements::NonceHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4134            Elements::NumInputs => b"i",
4135            Elements::NumOutputs => b"i",
4136            Elements::One16 => b"****22*22**22*22***22*22**22*22",
4137            Elements::One32 => b"i",
4138            Elements::One64 => b"l",
4139            Elements::One8 => b"***22*22**22*22",
4140            Elements::Or1 => b"2",
4141            Elements::Or16 => b"****22*22**22*22***22*22**22*22",
4142            Elements::Or32 => b"i",
4143            Elements::Or64 => b"l",
4144            Elements::Or8 => b"***22*22**22*22",
4145            Elements::OutpointHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4146            Elements::OutputAmount => b"+1*+*2hh+*2hl",
4147            Elements::OutputAmountsHash => b"h",
4148            Elements::OutputAsset => b"+1+*2hh",
4149            Elements::OutputHash => b"+1h",
4150            Elements::OutputIsFee => b"+12",
4151            Elements::OutputNonce => b"+1+1+*2hh",
4152            Elements::OutputNoncesHash => b"h",
4153            Elements::OutputNullDatum => b"+1+1+**22h+2**22*22",
4154            Elements::OutputRangeProof => b"+1h",
4155            Elements::OutputRangeProofsHash => b"h",
4156            Elements::OutputScriptHash => b"+1h",
4157            Elements::OutputScriptsHash => b"h",
4158            Elements::OutputSurjectionProof => b"+1h",
4159            Elements::OutputSurjectionProofsHash => b"h",
4160            Elements::OutputsHash => b"h",
4161            Elements::ParseLock => b"+ii",
4162            Elements::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
4163            Elements::PointVerify1 => b"1",
4164            Elements::ReissuanceBlinding => b"+1+1h",
4165            Elements::ReissuanceEntropy => b"+1+1h",
4166            Elements::RightExtend16_32 => b"i",
4167            Elements::RightExtend16_64 => b"l",
4168            Elements::RightExtend32_64 => b"l",
4169            Elements::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
4170            Elements::RightExtend8_32 => b"i",
4171            Elements::RightExtend8_64 => b"l",
4172            Elements::RightPadHigh16_32 => b"i",
4173            Elements::RightPadHigh16_64 => b"l",
4174            Elements::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
4175            Elements::RightPadHigh1_32 => b"i",
4176            Elements::RightPadHigh1_64 => b"l",
4177            Elements::RightPadHigh1_8 => b"***22*22**22*22",
4178            Elements::RightPadHigh32_64 => b"l",
4179            Elements::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
4180            Elements::RightPadHigh8_32 => b"i",
4181            Elements::RightPadHigh8_64 => b"l",
4182            Elements::RightPadLow16_32 => b"i",
4183            Elements::RightPadLow16_64 => b"l",
4184            Elements::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
4185            Elements::RightPadLow1_32 => b"i",
4186            Elements::RightPadLow1_64 => b"l",
4187            Elements::RightPadLow1_8 => b"***22*22**22*22",
4188            Elements::RightPadLow32_64 => b"l",
4189            Elements::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
4190            Elements::RightPadLow8_32 => b"i",
4191            Elements::RightPadLow8_64 => b"l",
4192            Elements::RightRotate16 => b"****22*22**22*22***22*22**22*22",
4193            Elements::RightRotate32 => b"i",
4194            Elements::RightRotate64 => b"l",
4195            Elements::RightRotate8 => b"***22*22**22*22",
4196            Elements::RightShift16 => b"****22*22**22*22***22*22**22*22",
4197            Elements::RightShift32 => b"i",
4198            Elements::RightShift64 => b"l",
4199            Elements::RightShift8 => b"***22*22**22*22",
4200            Elements::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
4201            Elements::RightShiftWith32 => b"i",
4202            Elements::RightShiftWith64 => b"l",
4203            Elements::RightShiftWith8 => b"***22*22**22*22",
4204            Elements::Rightmost16_1 => b"2",
4205            Elements::Rightmost16_2 => b"*22",
4206            Elements::Rightmost16_4 => b"**22*22",
4207            Elements::Rightmost16_8 => b"***22*22**22*22",
4208            Elements::Rightmost32_1 => b"2",
4209            Elements::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
4210            Elements::Rightmost32_2 => b"*22",
4211            Elements::Rightmost32_4 => b"**22*22",
4212            Elements::Rightmost32_8 => b"***22*22**22*22",
4213            Elements::Rightmost64_1 => b"2",
4214            Elements::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
4215            Elements::Rightmost64_2 => b"*22",
4216            Elements::Rightmost64_32 => b"i",
4217            Elements::Rightmost64_4 => b"**22*22",
4218            Elements::Rightmost64_8 => b"***22*22**22*22",
4219            Elements::Rightmost8_1 => b"2",
4220            Elements::Rightmost8_2 => b"*22",
4221            Elements::Rightmost8_4 => b"**22*22",
4222            Elements::ScalarAdd => b"h",
4223            Elements::ScalarInvert => b"h",
4224            Elements::ScalarIsZero => b"2",
4225            Elements::ScalarMultiply => b"h",
4226            Elements::ScalarMultiplyLambda => b"h",
4227            Elements::ScalarNegate => b"h",
4228            Elements::ScalarNormalize => b"h",
4229            Elements::ScalarSquare => b"h",
4230            Elements::Scale => b"**hhh",
4231            Elements::ScriptCMR => b"h",
4232            Elements::Sha256Block => b"h",
4233            Elements::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4234            Elements::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4235            Elements::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4236            Elements::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4237            Elements::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4238            Elements::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4239            Elements::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4240            Elements::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4241            Elements::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4242            Elements::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4243            Elements::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4244            Elements::Sha256Ctx8Finalize => b"h",
4245            Elements::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4246            Elements::Sha256Iv => b"h",
4247            Elements::SigAllHash => b"h",
4248            Elements::Some1 => b"2",
4249            Elements::Some16 => b"2",
4250            Elements::Some32 => b"2",
4251            Elements::Some64 => b"2",
4252            Elements::Some8 => b"2",
4253            Elements::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
4254            Elements::Subtract32 => b"*2i",
4255            Elements::Subtract64 => b"*2l",
4256            Elements::Subtract8 => b"*2***22*22**22*22",
4257            Elements::Swu => b"*hh",
4258            Elements::TapEnvHash => b"h",
4259            Elements::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4260            Elements::TapleafHash => b"h",
4261            Elements::TapleafVersion => b"***22*22**22*22",
4262            Elements::Tappath => b"+1h",
4263            Elements::TappathHash => b"h",
4264            Elements::TotalFee => b"l",
4265            Elements::TransactionId => b"h",
4266            Elements::TxHash => b"h",
4267            Elements::TxIsFinal => b"2",
4268            Elements::TxLockHeight => b"i",
4269            Elements::TxLockTime => b"i",
4270            Elements::Verify => b"1",
4271            Elements::Version => b"i",
4272            Elements::Xor1 => b"2",
4273            Elements::Xor16 => b"****22*22**22*22***22*22**22*22",
4274            Elements::Xor32 => b"i",
4275            Elements::Xor64 => b"l",
4276            Elements::Xor8 => b"***22*22**22*22",
4277            Elements::XorXor1 => b"2",
4278            Elements::XorXor16 => b"****22*22**22*22***22*22**22*22",
4279            Elements::XorXor32 => b"i",
4280            Elements::XorXor64 => b"l",
4281            Elements::XorXor8 => b"***22*22**22*22",
4282        };
4283
4284        TypeName(name)
4285    }
4286
4287    fn encode(&self, w: &mut BitWriter<&mut dyn Write>) -> std::io::Result<usize> {
4288        let (n, len) = match self {
4289            Elements::Verify => (0, 3),
4290            Elements::Low1 => (8, 6),
4291            Elements::Low8 => (37, 8),
4292            Elements::Low16 => (304, 11),
4293            Elements::Low32 => (305, 11),
4294            Elements::Low64 => (306, 11),
4295            Elements::High1 => (10, 6),
4296            Elements::High8 => (45, 8),
4297            Elements::High16 => (368, 11),
4298            Elements::High32 => (369, 11),
4299            Elements::High64 => (370, 11),
4300            Elements::Complement1 => (96, 9),
4301            Elements::Complement8 => (389, 11),
4302            Elements::Complement16 => (3120, 14),
4303            Elements::Complement32 => (3121, 14),
4304            Elements::Complement64 => (3122, 14),
4305            Elements::And1 => (98, 9),
4306            Elements::And8 => (397, 11),
4307            Elements::And16 => (3184, 14),
4308            Elements::And32 => (3185, 14),
4309            Elements::And64 => (3186, 14),
4310            Elements::Or1 => (100, 9),
4311            Elements::Or8 => (405, 11),
4312            Elements::Or16 => (3248, 14),
4313            Elements::Or32 => (3249, 14),
4314            Elements::Or64 => (3250, 14),
4315            Elements::Xor1 => (102, 9),
4316            Elements::Xor8 => (413, 11),
4317            Elements::Xor16 => (3312, 14),
4318            Elements::Xor32 => (3313, 14),
4319            Elements::Xor64 => (3314, 14),
4320            Elements::Maj1 => (208, 10),
4321            Elements::Maj8 => (837, 12),
4322            Elements::Maj16 => (6704, 15),
4323            Elements::Maj32 => (6705, 15),
4324            Elements::Maj64 => (6706, 15),
4325            Elements::XorXor1 => (210, 10),
4326            Elements::XorXor8 => (845, 12),
4327            Elements::XorXor16 => (6768, 15),
4328            Elements::XorXor32 => (6769, 15),
4329            Elements::XorXor64 => (6770, 15),
4330            Elements::Ch1 => (212, 10),
4331            Elements::Ch8 => (853, 12),
4332            Elements::Ch16 => (6832, 15),
4333            Elements::Ch32 => (6833, 15),
4334            Elements::Ch64 => (6834, 15),
4335            Elements::Some1 => (214, 10),
4336            Elements::Some8 => (861, 12),
4337            Elements::Some16 => (6896, 15),
4338            Elements::Some32 => (6897, 15),
4339            Elements::Some64 => (6898, 15),
4340            Elements::All8 => (869, 12),
4341            Elements::All16 => (6960, 15),
4342            Elements::All32 => (6961, 15),
4343            Elements::All64 => (6962, 15),
4344            Elements::Eq1 => (218, 10),
4345            Elements::Eq8 => (877, 12),
4346            Elements::Eq16 => (7024, 15),
4347            Elements::Eq32 => (7025, 15),
4348            Elements::Eq64 => (7026, 15),
4349            Elements::Eq256 => (14056, 16),
4350            Elements::FullLeftShift8_1 => (1765, 13),
4351            Elements::FullLeftShift16_1 => (14128, 16),
4352            Elements::FullLeftShift32_1 => (14129, 16),
4353            Elements::FullLeftShift64_1 => (14130, 16),
4354            Elements::FullLeftShift8_2 => (7076, 15),
4355            Elements::FullLeftShift16_2 => (7077, 15),
4356            Elements::FullLeftShift32_2 => (56624, 18),
4357            Elements::FullLeftShift64_2 => (56625, 18),
4358            Elements::FullLeftShift8_4 => (1770, 13),
4359            Elements::FullLeftShift16_4 => (7084, 15),
4360            Elements::FullLeftShift32_4 => (7085, 15),
4361            Elements::FullLeftShift64_4 => (56688, 18),
4362            Elements::FullLeftShift16_8 => (14176, 16),
4363            Elements::FullLeftShift32_8 => (56708, 18),
4364            Elements::FullLeftShift64_8 => (56709, 18),
4365            Elements::FullLeftShift32_16 => (14178, 16),
4366            Elements::FullLeftShift64_16 => (56716, 18),
4367            Elements::FullLeftShift64_32 => (14180, 16),
4368            Elements::FullRightShift8_1 => (1781, 13),
4369            Elements::FullRightShift16_1 => (14256, 16),
4370            Elements::FullRightShift32_1 => (14257, 16),
4371            Elements::FullRightShift64_1 => (14258, 16),
4372            Elements::FullRightShift8_2 => (7140, 15),
4373            Elements::FullRightShift16_2 => (7141, 15),
4374            Elements::FullRightShift32_2 => (57136, 18),
4375            Elements::FullRightShift64_2 => (57137, 18),
4376            Elements::FullRightShift8_4 => (1786, 13),
4377            Elements::FullRightShift16_4 => (7148, 15),
4378            Elements::FullRightShift32_4 => (7149, 15),
4379            Elements::FullRightShift64_4 => (57200, 18),
4380            Elements::FullRightShift16_8 => (14304, 16),
4381            Elements::FullRightShift32_8 => (57220, 18),
4382            Elements::FullRightShift64_8 => (57221, 18),
4383            Elements::FullRightShift32_16 => (14306, 16),
4384            Elements::FullRightShift64_16 => (57228, 18),
4385            Elements::FullRightShift64_32 => (14308, 16),
4386            Elements::Leftmost8_1 => (28677, 17),
4387            Elements::Leftmost16_1 => (229424, 20),
4388            Elements::Leftmost32_1 => (229425, 20),
4389            Elements::Leftmost64_1 => (229426, 20),
4390            Elements::Leftmost8_2 => (114724, 19),
4391            Elements::Leftmost16_2 => (114725, 19),
4392            Elements::Leftmost32_2 => (917808, 22),
4393            Elements::Leftmost64_2 => (917809, 22),
4394            Elements::Leftmost8_4 => (28682, 17),
4395            Elements::Leftmost16_4 => (114732, 19),
4396            Elements::Leftmost32_4 => (114733, 19),
4397            Elements::Leftmost64_4 => (917872, 22),
4398            Elements::Leftmost16_8 => (229472, 20),
4399            Elements::Leftmost32_8 => (917892, 22),
4400            Elements::Leftmost64_8 => (917893, 22),
4401            Elements::Leftmost32_16 => (229474, 20),
4402            Elements::Leftmost64_16 => (917900, 22),
4403            Elements::Leftmost64_32 => (229476, 20),
4404            Elements::Rightmost8_1 => (28693, 17),
4405            Elements::Rightmost16_1 => (229552, 20),
4406            Elements::Rightmost32_1 => (229553, 20),
4407            Elements::Rightmost64_1 => (229554, 20),
4408            Elements::Rightmost8_2 => (114788, 19),
4409            Elements::Rightmost16_2 => (114789, 19),
4410            Elements::Rightmost32_2 => (918320, 22),
4411            Elements::Rightmost64_2 => (918321, 22),
4412            Elements::Rightmost8_4 => (28698, 17),
4413            Elements::Rightmost16_4 => (114796, 19),
4414            Elements::Rightmost32_4 => (114797, 19),
4415            Elements::Rightmost64_4 => (918384, 22),
4416            Elements::Rightmost16_8 => (229600, 20),
4417            Elements::Rightmost32_8 => (918404, 22),
4418            Elements::Rightmost64_8 => (918405, 22),
4419            Elements::Rightmost32_16 => (229602, 20),
4420            Elements::Rightmost64_16 => (918412, 22),
4421            Elements::Rightmost64_32 => (229604, 20),
4422            Elements::LeftPadLow1_8 => (28709, 17),
4423            Elements::LeftPadLow1_16 => (229680, 20),
4424            Elements::LeftPadLow1_32 => (229681, 20),
4425            Elements::LeftPadLow1_64 => (229682, 20),
4426            Elements::LeftPadLow8_16 => (229728, 20),
4427            Elements::LeftPadLow8_32 => (918916, 22),
4428            Elements::LeftPadLow8_64 => (918917, 22),
4429            Elements::LeftPadLow16_32 => (229730, 20),
4430            Elements::LeftPadLow16_64 => (918924, 22),
4431            Elements::LeftPadLow32_64 => (229732, 20),
4432            Elements::LeftPadHigh1_8 => (28725, 17),
4433            Elements::LeftPadHigh1_16 => (229808, 20),
4434            Elements::LeftPadHigh1_32 => (229809, 20),
4435            Elements::LeftPadHigh1_64 => (229810, 20),
4436            Elements::LeftPadHigh8_16 => (229856, 20),
4437            Elements::LeftPadHigh8_32 => (919428, 22),
4438            Elements::LeftPadHigh8_64 => (919429, 22),
4439            Elements::LeftPadHigh16_32 => (229858, 20),
4440            Elements::LeftPadHigh16_64 => (919436, 22),
4441            Elements::LeftPadHigh32_64 => (229860, 20),
4442            Elements::LeftExtend1_8 => (28741, 17),
4443            Elements::LeftExtend1_16 => (229936, 20),
4444            Elements::LeftExtend1_32 => (229937, 20),
4445            Elements::LeftExtend1_64 => (229938, 20),
4446            Elements::LeftExtend8_16 => (229984, 20),
4447            Elements::LeftExtend8_32 => (919940, 22),
4448            Elements::LeftExtend8_64 => (919941, 22),
4449            Elements::LeftExtend16_32 => (229986, 20),
4450            Elements::LeftExtend16_64 => (919948, 22),
4451            Elements::LeftExtend32_64 => (229988, 20),
4452            Elements::RightPadLow1_8 => (28757, 17),
4453            Elements::RightPadLow1_16 => (230064, 20),
4454            Elements::RightPadLow1_32 => (230065, 20),
4455            Elements::RightPadLow1_64 => (230066, 20),
4456            Elements::RightPadLow8_16 => (230112, 20),
4457            Elements::RightPadLow8_32 => (920452, 22),
4458            Elements::RightPadLow8_64 => (920453, 22),
4459            Elements::RightPadLow16_32 => (230114, 20),
4460            Elements::RightPadLow16_64 => (920460, 22),
4461            Elements::RightPadLow32_64 => (230116, 20),
4462            Elements::RightPadHigh1_8 => (28773, 17),
4463            Elements::RightPadHigh1_16 => (230192, 20),
4464            Elements::RightPadHigh1_32 => (230193, 20),
4465            Elements::RightPadHigh1_64 => (230194, 20),
4466            Elements::RightPadHigh8_16 => (230240, 20),
4467            Elements::RightPadHigh8_32 => (920964, 22),
4468            Elements::RightPadHigh8_64 => (920965, 22),
4469            Elements::RightPadHigh16_32 => (230242, 20),
4470            Elements::RightPadHigh16_64 => (920972, 22),
4471            Elements::RightPadHigh32_64 => (230244, 20),
4472            Elements::RightExtend8_16 => (230368, 20),
4473            Elements::RightExtend8_32 => (921476, 22),
4474            Elements::RightExtend8_64 => (921477, 22),
4475            Elements::RightExtend16_32 => (230370, 20),
4476            Elements::RightExtend16_64 => (921484, 22),
4477            Elements::RightExtend32_64 => (230372, 20),
4478            Elements::LeftShiftWith8 => (14405, 16),
4479            Elements::LeftShiftWith16 => (115248, 19),
4480            Elements::LeftShiftWith32 => (115249, 19),
4481            Elements::LeftShiftWith64 => (115250, 19),
4482            Elements::RightShiftWith8 => (14413, 16),
4483            Elements::RightShiftWith16 => (115312, 19),
4484            Elements::RightShiftWith32 => (115313, 19),
4485            Elements::RightShiftWith64 => (115314, 19),
4486            Elements::LeftShift8 => (14421, 16),
4487            Elements::LeftShift16 => (115376, 19),
4488            Elements::LeftShift32 => (115377, 19),
4489            Elements::LeftShift64 => (115378, 19),
4490            Elements::RightShift8 => (14429, 16),
4491            Elements::RightShift16 => (115440, 19),
4492            Elements::RightShift32 => (115441, 19),
4493            Elements::RightShift64 => (115442, 19),
4494            Elements::LeftRotate8 => (14437, 16),
4495            Elements::LeftRotate16 => (115504, 19),
4496            Elements::LeftRotate32 => (115505, 19),
4497            Elements::LeftRotate64 => (115506, 19),
4498            Elements::RightRotate8 => (14445, 16),
4499            Elements::RightRotate16 => (115568, 19),
4500            Elements::RightRotate32 => (115569, 19),
4501            Elements::RightRotate64 => (115570, 19),
4502            Elements::One8 => (69, 8),
4503            Elements::One16 => (560, 11),
4504            Elements::One32 => (561, 11),
4505            Elements::One64 => (562, 11),
4506            Elements::FullAdd8 => (293, 10),
4507            Elements::FullAdd16 => (2352, 13),
4508            Elements::FullAdd32 => (2353, 13),
4509            Elements::FullAdd64 => (2354, 13),
4510            Elements::Add8 => (301, 10),
4511            Elements::Add16 => (2416, 13),
4512            Elements::Add32 => (2417, 13),
4513            Elements::Add64 => (2418, 13),
4514            Elements::FullIncrement8 => (2437, 13),
4515            Elements::FullIncrement16 => (19504, 16),
4516            Elements::FullIncrement32 => (19505, 16),
4517            Elements::FullIncrement64 => (19506, 16),
4518            Elements::Increment8 => (2445, 13),
4519            Elements::Increment16 => (19568, 16),
4520            Elements::Increment32 => (19569, 16),
4521            Elements::Increment64 => (19570, 16),
4522            Elements::FullSubtract8 => (2461, 13),
4523            Elements::FullSubtract16 => (19696, 16),
4524            Elements::FullSubtract32 => (19697, 16),
4525            Elements::FullSubtract64 => (19698, 16),
4526            Elements::Subtract8 => (4933, 14),
4527            Elements::Subtract16 => (39472, 17),
4528            Elements::Subtract32 => (39473, 17),
4529            Elements::Subtract64 => (39474, 17),
4530            Elements::Negate8 => (4941, 14),
4531            Elements::Negate16 => (39536, 17),
4532            Elements::Negate32 => (39537, 17),
4533            Elements::Negate64 => (39538, 17),
4534            Elements::FullDecrement8 => (4949, 14),
4535            Elements::FullDecrement16 => (39600, 17),
4536            Elements::FullDecrement32 => (39601, 17),
4537            Elements::FullDecrement64 => (39602, 17),
4538            Elements::Decrement8 => (4957, 14),
4539            Elements::Decrement16 => (39664, 17),
4540            Elements::Decrement32 => (39665, 17),
4541            Elements::Decrement64 => (39666, 17),
4542            Elements::FullMultiply8 => (4965, 14),
4543            Elements::FullMultiply16 => (39728, 17),
4544            Elements::FullMultiply32 => (39729, 17),
4545            Elements::FullMultiply64 => (39730, 17),
4546            Elements::Multiply8 => (4973, 14),
4547            Elements::Multiply16 => (39792, 17),
4548            Elements::Multiply32 => (39793, 17),
4549            Elements::Multiply64 => (39794, 17),
4550            Elements::IsZero8 => (4981, 14),
4551            Elements::IsZero16 => (39856, 17),
4552            Elements::IsZero32 => (39857, 17),
4553            Elements::IsZero64 => (39858, 17),
4554            Elements::IsOne8 => (4989, 14),
4555            Elements::IsOne16 => (39920, 17),
4556            Elements::IsOne32 => (39921, 17),
4557            Elements::IsOne64 => (39922, 17),
4558            Elements::Le8 => (79877, 18),
4559            Elements::Le16 => (639024, 21),
4560            Elements::Le32 => (639025, 21),
4561            Elements::Le64 => (639026, 21),
4562            Elements::Lt8 => (79885, 18),
4563            Elements::Lt16 => (639088, 21),
4564            Elements::Lt32 => (639089, 21),
4565            Elements::Lt64 => (639090, 21),
4566            Elements::Min8 => (79893, 18),
4567            Elements::Min16 => (639152, 21),
4568            Elements::Min32 => (639153, 21),
4569            Elements::Min64 => (639154, 21),
4570            Elements::Max8 => (79901, 18),
4571            Elements::Max16 => (639216, 21),
4572            Elements::Max32 => (639217, 21),
4573            Elements::Max64 => (639218, 21),
4574            Elements::Median8 => (79909, 18),
4575            Elements::Median16 => (639280, 21),
4576            Elements::Median32 => (639281, 21),
4577            Elements::Median64 => (639282, 21),
4578            Elements::DivMod128_64 => (639346, 21),
4579            Elements::DivMod8 => (79925, 18),
4580            Elements::DivMod16 => (639408, 21),
4581            Elements::DivMod32 => (639409, 21),
4582            Elements::DivMod64 => (639410, 21),
4583            Elements::Divide8 => (79933, 18),
4584            Elements::Divide16 => (639472, 21),
4585            Elements::Divide32 => (639473, 21),
4586            Elements::Divide64 => (639474, 21),
4587            Elements::Modulo8 => (79941, 18),
4588            Elements::Modulo16 => (639536, 21),
4589            Elements::Modulo32 => (639537, 21),
4590            Elements::Modulo64 => (639538, 21),
4591            Elements::Divides8 => (79949, 18),
4592            Elements::Divides16 => (639600, 21),
4593            Elements::Divides32 => (639601, 21),
4594            Elements::Divides64 => (639602, 21),
4595            Elements::Sha256Block => (20, 6),
4596            Elements::Sha256Iv => (84, 8),
4597            Elements::Sha256Ctx8Add1 => (170, 9),
4598            Elements::Sha256Ctx8Add2 => (684, 11),
4599            Elements::Sha256Ctx8Add4 => (685, 11),
4600            Elements::Sha256Ctx8Add8 => (5488, 14),
4601            Elements::Sha256Ctx8Add16 => (5489, 14),
4602            Elements::Sha256Ctx8Add32 => (5490, 14),
4603            Elements::Sha256Ctx8Add64 => (5491, 14),
4604            Elements::Sha256Ctx8Add128 => (10984, 15),
4605            Elements::Sha256Ctx8Add256 => (10985, 15),
4606            Elements::Sha256Ctx8Add512 => (10986, 15),
4607            Elements::Sha256Ctx8AddBuffer511 => (688, 11),
4608            Elements::Sha256Ctx8Finalize => (689, 11),
4609            Elements::Sha256Ctx8Init => (690, 11),
4610            Elements::PointVerify1 => (192, 9),
4611            Elements::Decompress => (388, 10),
4612            Elements::LinearVerify1 => (778, 11),
4613            Elements::LinearCombination1 => (6240, 14),
4614            Elements::Scale => (3121, 13),
4615            Elements::Generate => (3122, 13),
4616            Elements::GejInfinity => (3123, 13),
4617            Elements::GejNormalize => (6248, 14),
4618            Elements::GejNegate => (6249, 14),
4619            Elements::GeNegate => (6250, 14),
4620            Elements::GejDouble => (6251, 14),
4621            Elements::GejAdd => (6252, 14),
4622            Elements::GejGeAddEx => (6253, 14),
4623            Elements::GejGeAdd => (6254, 14),
4624            Elements::GejRescale => (6255, 14),
4625            Elements::GejIsInfinity => (100096, 18),
4626            Elements::GejEquiv => (100097, 18),
4627            Elements::GejGeEquiv => (100098, 18),
4628            Elements::GejXEquiv => (100099, 18),
4629            Elements::GejYIsOdd => (100100, 18),
4630            Elements::GejIsOnCurve => (100101, 18),
4631            Elements::GeIsOnCurve => (100102, 18),
4632            Elements::ScalarNormalize => (100103, 18),
4633            Elements::ScalarNegate => (100104, 18),
4634            Elements::ScalarAdd => (100105, 18),
4635            Elements::ScalarSquare => (100106, 18),
4636            Elements::ScalarMultiply => (100107, 18),
4637            Elements::ScalarMultiplyLambda => (100108, 18),
4638            Elements::ScalarInvert => (100109, 18),
4639            Elements::ScalarIsZero => (100110, 18),
4640            Elements::FeNormalize => (200227, 19),
4641            Elements::FeNegate => (200228, 19),
4642            Elements::FeAdd => (200229, 19),
4643            Elements::FeSquare => (200230, 19),
4644            Elements::FeMultiply => (200231, 19),
4645            Elements::FeMultiplyBeta => (200232, 19),
4646            Elements::FeInvert => (200233, 19),
4647            Elements::FeSquareRoot => (200234, 19),
4648            Elements::FeIsZero => (200235, 19),
4649            Elements::FeIsOdd => (200236, 19),
4650            Elements::HashToCurve => (200238, 19),
4651            Elements::Swu => (200239, 19),
4652            Elements::CheckSigVerify => (98, 8),
4653            Elements::Bip0340Verify => (396, 10),
4654            Elements::ParseLock => (102, 8),
4655            Elements::ParseSequence => (412, 10),
4656            Elements::TapdataInit => (413, 10),
4657            Elements::SigAllHash => (4, 3),
4658            Elements::TxHash => (20, 5),
4659            Elements::TapEnvHash => (21, 5),
4660            Elements::OutputsHash => (176, 8),
4661            Elements::InputsHash => (177, 8),
4662            Elements::IssuancesHash => (178, 8),
4663            Elements::InputUtxosHash => (179, 8),
4664            Elements::OutputHash => (360, 9),
4665            Elements::OutputAmountsHash => (361, 9),
4666            Elements::OutputScriptsHash => (362, 9),
4667            Elements::OutputNoncesHash => (363, 9),
4668            Elements::OutputRangeProofsHash => (364, 9),
4669            Elements::OutputSurjectionProofsHash => (365, 9),
4670            Elements::InputHash => (366, 9),
4671            Elements::InputOutpointsHash => (367, 9),
4672            Elements::InputSequencesHash => (5888, 13),
4673            Elements::InputAnnexesHash => (5889, 13),
4674            Elements::InputScriptSigsHash => (5890, 13),
4675            Elements::IssuanceHash => (5891, 13),
4676            Elements::IssuanceAssetAmountsHash => (5892, 13),
4677            Elements::IssuanceTokenAmountsHash => (5893, 13),
4678            Elements::IssuanceRangeProofsHash => (5894, 13),
4679            Elements::IssuanceBlindingEntropyHash => (5895, 13),
4680            Elements::InputUtxoHash => (5896, 13),
4681            Elements::InputAmountsHash => (5897, 13),
4682            Elements::InputScriptsHash => (5898, 13),
4683            Elements::TapleafHash => (5899, 13),
4684            Elements::TappathHash => (5900, 13),
4685            Elements::OutpointHash => (5901, 13),
4686            Elements::AssetAmountHash => (5902, 13),
4687            Elements::NonceHash => (5903, 13),
4688            Elements::AnnexHash => (11808, 14),
4689            Elements::BuildTapleafSimplicity => (11809, 14),
4690            Elements::BuildTapbranch => (11810, 14),
4691            Elements::BuildTaptweak => (11811, 14),
4692            Elements::CheckLockHeight => (24, 5),
4693            Elements::CheckLockTime => (100, 7),
4694            Elements::BrokenDoNotUseCheckLockDistance => (101, 7),
4695            Elements::BrokenDoNotUseCheckLockDuration => (816, 10),
4696            Elements::TxLockHeight => (817, 10),
4697            Elements::TxLockTime => (818, 10),
4698            Elements::BrokenDoNotUseTxLockDistance => (819, 10),
4699            Elements::BrokenDoNotUseTxLockDuration => (1640, 11),
4700            Elements::TxIsFinal => (1641, 11),
4701            Elements::Issuance => (26, 5),
4702            Elements::IssuanceAsset => (108, 7),
4703            Elements::IssuanceToken => (109, 7),
4704            Elements::IssuanceEntropy => (880, 10),
4705            Elements::CalculateIssuanceEntropy => (881, 10),
4706            Elements::CalculateAsset => (882, 10),
4707            Elements::CalculateExplicitToken => (883, 10),
4708            Elements::CalculateConfidentialToken => (1768, 11),
4709            Elements::LbtcAsset => (1769, 11),
4710            Elements::ScriptCMR => (224, 8),
4711            Elements::InternalKey => (900, 10),
4712            Elements::CurrentIndex => (901, 10),
4713            Elements::NumInputs => (7216, 13),
4714            Elements::NumOutputs => (7217, 13),
4715            Elements::LockTime => (7218, 13),
4716            Elements::OutputAsset => (7219, 13),
4717            Elements::OutputAmount => (14440, 14),
4718            Elements::OutputNonce => (14441, 14),
4719            Elements::OutputScriptHash => (14442, 14),
4720            Elements::OutputNullDatum => (14443, 14),
4721            Elements::OutputIsFee => (14444, 14),
4722            Elements::OutputSurjectionProof => (14445, 14),
4723            Elements::OutputRangeProof => (14446, 14),
4724            Elements::TotalFee => (14447, 14),
4725            Elements::CurrentPegin => (231168, 18),
4726            Elements::CurrentPrevOutpoint => (231169, 18),
4727            Elements::CurrentAsset => (231170, 18),
4728            Elements::CurrentAmount => (231171, 18),
4729            Elements::CurrentScriptHash => (231172, 18),
4730            Elements::CurrentSequence => (231173, 18),
4731            Elements::CurrentAnnexHash => (231174, 18),
4732            Elements::CurrentScriptSigHash => (231175, 18),
4733            Elements::CurrentReissuanceBlinding => (231176, 18),
4734            Elements::CurrentNewIssuanceContract => (231177, 18),
4735            Elements::CurrentReissuanceEntropy => (231178, 18),
4736            Elements::CurrentIssuanceAssetAmount => (231179, 18),
4737            Elements::CurrentIssuanceTokenAmount => (231180, 18),
4738            Elements::CurrentIssuanceAssetProof => (231181, 18),
4739            Elements::CurrentIssuanceTokenProof => (231182, 18),
4740            Elements::InputPegin => (231183, 18),
4741            Elements::InputPrevOutpoint => (462368, 19),
4742            Elements::InputAsset => (462369, 19),
4743            Elements::InputAmount => (462370, 19),
4744            Elements::InputScriptHash => (462371, 19),
4745            Elements::InputSequence => (462372, 19),
4746            Elements::InputAnnexHash => (462373, 19),
4747            Elements::InputScriptSigHash => (462374, 19),
4748            Elements::ReissuanceBlinding => (462375, 19),
4749            Elements::NewIssuanceContract => (462376, 19),
4750            Elements::ReissuanceEntropy => (462377, 19),
4751            Elements::IssuanceAssetAmount => (462378, 19),
4752            Elements::IssuanceTokenAmount => (462379, 19),
4753            Elements::IssuanceAssetProof => (462380, 19),
4754            Elements::IssuanceTokenProof => (462381, 19),
4755            Elements::TapleafVersion => (462382, 19),
4756            Elements::Tappath => (462383, 19),
4757            Elements::Version => (462384, 19),
4758            Elements::GenesisBlockHash => (462385, 19),
4759            Elements::TransactionId => (462386, 19),
4760        };
4761
4762        w.write_bits_be(n, len)
4763    }
4764
4765    fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> where Self: Sized {
4766        decode_bits!(bits, {
4767            0 => {
4768                0 => {
4769                    0 => {Elements::Verify},
4770                    1 => {
4771                        0 => {
4772                            0 => {
4773                                0 => {Elements::Low1},
4774                                1 => {
4775                                    0 => {
4776                                        0 => {},
4777                                        1 => {Elements::Low8}
4778                                    },
4779                                    1 => {
4780                                        0 => {
4781                                            0 => {
4782                                                0 => {
4783                                                    0 => {Elements::Low16},
4784                                                    1 => {Elements::Low32}
4785                                                },
4786                                                1 => {
4787                                                    0 => {Elements::Low64},
4788                                                    1 => {}
4789                                                }
4790                                            },
4791                                            1 => {}
4792                                        },
4793                                        1 => {}
4794                                    }
4795                                }
4796                            },
4797                            1 => {
4798                                0 => {Elements::High1},
4799                                1 => {
4800                                    0 => {
4801                                        0 => {},
4802                                        1 => {Elements::High8}
4803                                    },
4804                                    1 => {
4805                                        0 => {
4806                                            0 => {
4807                                                0 => {
4808                                                    0 => {Elements::High16},
4809                                                    1 => {Elements::High32}
4810                                                },
4811                                                1 => {
4812                                                    0 => {Elements::High64},
4813                                                    1 => {}
4814                                                }
4815                                            },
4816                                            1 => {}
4817                                        },
4818                                        1 => {}
4819                                    }
4820                                }
4821                            }
4822                        },
4823                        1 => {
4824                            0 => {
4825                                0 => {
4826                                    0 => {
4827                                        0 => {
4828                                            0 => {Elements::Complement1},
4829                                            1 => {
4830                                                0 => {
4831                                                    0 => {},
4832                                                    1 => {Elements::Complement8}
4833                                                },
4834                                                1 => {
4835                                                    0 => {
4836                                                        0 => {
4837                                                            0 => {
4838                                                                0 => {Elements::Complement16},
4839                                                                1 => {Elements::Complement32}
4840                                                            },
4841                                                            1 => {
4842                                                                0 => {Elements::Complement64},
4843                                                                1 => {}
4844                                                            }
4845                                                        },
4846                                                        1 => {}
4847                                                    },
4848                                                    1 => {}
4849                                                }
4850                                            }
4851                                        },
4852                                        1 => {
4853                                            0 => {Elements::And1},
4854                                            1 => {
4855                                                0 => {
4856                                                    0 => {},
4857                                                    1 => {Elements::And8}
4858                                                },
4859                                                1 => {
4860                                                    0 => {
4861                                                        0 => {
4862                                                            0 => {
4863                                                                0 => {Elements::And16},
4864                                                                1 => {Elements::And32}
4865                                                            },
4866                                                            1 => {
4867                                                                0 => {Elements::And64},
4868                                                                1 => {}
4869                                                            }
4870                                                        },
4871                                                        1 => {}
4872                                                    },
4873                                                    1 => {}
4874                                                }
4875                                            }
4876                                        }
4877                                    },
4878                                    1 => {
4879                                        0 => {
4880                                            0 => {Elements::Or1},
4881                                            1 => {
4882                                                0 => {
4883                                                    0 => {},
4884                                                    1 => {Elements::Or8}
4885                                                },
4886                                                1 => {
4887                                                    0 => {
4888                                                        0 => {
4889                                                            0 => {
4890                                                                0 => {Elements::Or16},
4891                                                                1 => {Elements::Or32}
4892                                                            },
4893                                                            1 => {
4894                                                                0 => {Elements::Or64},
4895                                                                1 => {}
4896                                                            }
4897                                                        },
4898                                                        1 => {}
4899                                                    },
4900                                                    1 => {}
4901                                                }
4902                                            }
4903                                        },
4904                                        1 => {
4905                                            0 => {Elements::Xor1},
4906                                            1 => {
4907                                                0 => {
4908                                                    0 => {},
4909                                                    1 => {Elements::Xor8}
4910                                                },
4911                                                1 => {
4912                                                    0 => {
4913                                                        0 => {
4914                                                            0 => {
4915                                                                0 => {Elements::Xor16},
4916                                                                1 => {Elements::Xor32}
4917                                                            },
4918                                                            1 => {
4919                                                                0 => {Elements::Xor64},
4920                                                                1 => {}
4921                                                            }
4922                                                        },
4923                                                        1 => {}
4924                                                    },
4925                                                    1 => {}
4926                                                }
4927                                            }
4928                                        }
4929                                    }
4930                                },
4931                                1 => {
4932                                    0 => {
4933                                        0 => {
4934                                            0 => {
4935                                                0 => {Elements::Maj1},
4936                                                1 => {
4937                                                    0 => {
4938                                                        0 => {},
4939                                                        1 => {Elements::Maj8}
4940                                                    },
4941                                                    1 => {
4942                                                        0 => {
4943                                                            0 => {
4944                                                                0 => {
4945                                                                    0 => {Elements::Maj16},
4946                                                                    1 => {Elements::Maj32}
4947                                                                },
4948                                                                1 => {
4949                                                                    0 => {Elements::Maj64},
4950                                                                    1 => {}
4951                                                                }
4952                                                            },
4953                                                            1 => {}
4954                                                        },
4955                                                        1 => {}
4956                                                    }
4957                                                }
4958                                            },
4959                                            1 => {
4960                                                0 => {Elements::XorXor1},
4961                                                1 => {
4962                                                    0 => {
4963                                                        0 => {},
4964                                                        1 => {Elements::XorXor8}
4965                                                    },
4966                                                    1 => {
4967                                                        0 => {
4968                                                            0 => {
4969                                                                0 => {
4970                                                                    0 => {Elements::XorXor16},
4971                                                                    1 => {Elements::XorXor32}
4972                                                                },
4973                                                                1 => {
4974                                                                    0 => {Elements::XorXor64},
4975                                                                    1 => {}
4976                                                                }
4977                                                            },
4978                                                            1 => {}
4979                                                        },
4980                                                        1 => {}
4981                                                    }
4982                                                }
4983                                            }
4984                                        },
4985                                        1 => {
4986                                            0 => {
4987                                                0 => {Elements::Ch1},
4988                                                1 => {
4989                                                    0 => {
4990                                                        0 => {},
4991                                                        1 => {Elements::Ch8}
4992                                                    },
4993                                                    1 => {
4994                                                        0 => {
4995                                                            0 => {
4996                                                                0 => {
4997                                                                    0 => {Elements::Ch16},
4998                                                                    1 => {Elements::Ch32}
4999                                                                },
5000                                                                1 => {
5001                                                                    0 => {Elements::Ch64},
5002                                                                    1 => {}
5003                                                                }
5004                                                            },
5005                                                            1 => {}
5006                                                        },
5007                                                        1 => {}
5008                                                    }
5009                                                }
5010                                            },
5011                                            1 => {
5012                                                0 => {Elements::Some1},
5013                                                1 => {
5014                                                    0 => {
5015                                                        0 => {},
5016                                                        1 => {Elements::Some8}
5017                                                    },
5018                                                    1 => {
5019                                                        0 => {
5020                                                            0 => {
5021                                                                0 => {
5022                                                                    0 => {Elements::Some16},
5023                                                                    1 => {Elements::Some32}
5024                                                                },
5025                                                                1 => {
5026                                                                    0 => {Elements::Some64},
5027                                                                    1 => {}
5028                                                                }
5029                                                            },
5030                                                            1 => {}
5031                                                        },
5032                                                        1 => {}
5033                                                    }
5034                                                }
5035                                            }
5036                                        }
5037                                    },
5038                                    1 => {
5039                                        0 => {
5040                                            0 => {
5041                                                0 => {},
5042                                                1 => {
5043                                                    0 => {
5044                                                        0 => {},
5045                                                        1 => {Elements::All8}
5046                                                    },
5047                                                    1 => {
5048                                                        0 => {
5049                                                            0 => {
5050                                                                0 => {
5051                                                                    0 => {Elements::All16},
5052                                                                    1 => {Elements::All32}
5053                                                                },
5054                                                                1 => {
5055                                                                    0 => {Elements::All64},
5056                                                                    1 => {}
5057                                                                }
5058                                                            },
5059                                                            1 => {}
5060                                                        },
5061                                                        1 => {}
5062                                                    }
5063                                                }
5064                                            },
5065                                            1 => {
5066                                                0 => {Elements::Eq1},
5067                                                1 => {
5068                                                    0 => {
5069                                                        0 => {},
5070                                                        1 => {Elements::Eq8}
5071                                                    },
5072                                                    1 => {
5073                                                        0 => {
5074                                                            0 => {
5075                                                                0 => {
5076                                                                    0 => {Elements::Eq16},
5077                                                                    1 => {Elements::Eq32}
5078                                                                },
5079                                                                1 => {
5080                                                                    0 => {Elements::Eq64},
5081                                                                    1 => {}
5082                                                                }
5083                                                            },
5084                                                            1 => {
5085                                                                0 => {
5086                                                                    0 => {
5087                                                                        0 => {Elements::Eq256},
5088                                                                        1 => {}
5089                                                                    },
5090                                                                    1 => {}
5091                                                                },
5092                                                                1 => {}
5093                                                            }
5094                                                        },
5095                                                        1 => {}
5096                                                    }
5097                                                }
5098                                            }
5099                                        },
5100                                        1 => {
5101                                            0 => {
5102                                                0 => {
5103                                                    0 => {},
5104                                                    1 => {
5105                                                        0 => {
5106                                                            0 => {},
5107                                                            1 => {Elements::FullLeftShift8_1}
5108                                                        },
5109                                                        1 => {
5110                                                            0 => {
5111                                                                0 => {
5112                                                                    0 => {
5113                                                                        0 => {Elements::FullLeftShift16_1},
5114                                                                        1 => {Elements::FullLeftShift32_1}
5115                                                                    },
5116                                                                    1 => {
5117                                                                        0 => {Elements::FullLeftShift64_1},
5118                                                                        1 => {}
5119                                                                    }
5120                                                                },
5121                                                                1 => {}
5122                                                            },
5123                                                            1 => {}
5124                                                        }
5125                                                    }
5126                                                },
5127                                                1 => {
5128                                                    0 => {
5129                                                        0 => {
5130                                                            0 => {},
5131                                                            1 => {
5132                                                                0 => {
5133                                                                    0 => {Elements::FullLeftShift8_2},
5134                                                                    1 => {Elements::FullLeftShift16_2}
5135                                                                },
5136                                                                1 => {
5137                                                                    0 => {
5138                                                                        0 => {
5139                                                                            0 => {
5140                                                                                0 => {Elements::FullLeftShift32_2},
5141                                                                                1 => {Elements::FullLeftShift64_2}
5142                                                                            },
5143                                                                            1 => {}
5144                                                                        },
5145                                                                        1 => {}
5146                                                                    },
5147                                                                    1 => {}
5148                                                                }
5149                                                            }
5150                                                        },
5151                                                        1 => {
5152                                                            0 => {Elements::FullLeftShift8_4},
5153                                                            1 => {
5154                                                                0 => {
5155                                                                    0 => {Elements::FullLeftShift16_4},
5156                                                                    1 => {Elements::FullLeftShift32_4}
5157                                                                },
5158                                                                1 => {
5159                                                                    0 => {
5160                                                                        0 => {
5161                                                                            0 => {
5162                                                                                0 => {Elements::FullLeftShift64_4},
5163                                                                                1 => {}
5164                                                                            },
5165                                                                            1 => {}
5166                                                                        },
5167                                                                        1 => {}
5168                                                                    },
5169                                                                    1 => {}
5170                                                                }
5171                                                            }
5172                                                        }
5173                                                    },
5174                                                    1 => {
5175                                                        0 => {
5176                                                            0 => {
5177                                                                0 => {
5178                                                                    0 => {
5179                                                                        0 => {Elements::FullLeftShift16_8},
5180                                                                        1 => {
5181                                                                            0 => {
5182                                                                                0 => {Elements::FullLeftShift32_8},
5183                                                                                1 => {Elements::FullLeftShift64_8}
5184                                                                            },
5185                                                                            1 => {}
5186                                                                        }
5187                                                                    },
5188                                                                    1 => {
5189                                                                        0 => {Elements::FullLeftShift32_16},
5190                                                                        1 => {
5191                                                                            0 => {
5192                                                                                0 => {Elements::FullLeftShift64_16},
5193                                                                                1 => {}
5194                                                                            },
5195                                                                            1 => {}
5196                                                                        }
5197                                                                    }
5198                                                                },
5199                                                                1 => {
5200                                                                    0 => {
5201                                                                        0 => {Elements::FullLeftShift64_32},
5202                                                                        1 => {}
5203                                                                    },
5204                                                                    1 => {}
5205                                                                }
5206                                                            },
5207                                                            1 => {}
5208                                                        },
5209                                                        1 => {}
5210                                                    }
5211                                                }
5212                                            },
5213                                            1 => {
5214                                                0 => {
5215                                                    0 => {},
5216                                                    1 => {
5217                                                        0 => {
5218                                                            0 => {},
5219                                                            1 => {Elements::FullRightShift8_1}
5220                                                        },
5221                                                        1 => {
5222                                                            0 => {
5223                                                                0 => {
5224                                                                    0 => {
5225                                                                        0 => {Elements::FullRightShift16_1},
5226                                                                        1 => {Elements::FullRightShift32_1}
5227                                                                    },
5228                                                                    1 => {
5229                                                                        0 => {Elements::FullRightShift64_1},
5230                                                                        1 => {}
5231                                                                    }
5232                                                                },
5233                                                                1 => {}
5234                                                            },
5235                                                            1 => {}
5236                                                        }
5237                                                    }
5238                                                },
5239                                                1 => {
5240                                                    0 => {
5241                                                        0 => {
5242                                                            0 => {},
5243                                                            1 => {
5244                                                                0 => {
5245                                                                    0 => {Elements::FullRightShift8_2},
5246                                                                    1 => {Elements::FullRightShift16_2}
5247                                                                },
5248                                                                1 => {
5249                                                                    0 => {
5250                                                                        0 => {
5251                                                                            0 => {
5252                                                                                0 => {Elements::FullRightShift32_2},
5253                                                                                1 => {Elements::FullRightShift64_2}
5254                                                                            },
5255                                                                            1 => {}
5256                                                                        },
5257                                                                        1 => {}
5258                                                                    },
5259                                                                    1 => {}
5260                                                                }
5261                                                            }
5262                                                        },
5263                                                        1 => {
5264                                                            0 => {Elements::FullRightShift8_4},
5265                                                            1 => {
5266                                                                0 => {
5267                                                                    0 => {Elements::FullRightShift16_4},
5268                                                                    1 => {Elements::FullRightShift32_4}
5269                                                                },
5270                                                                1 => {
5271                                                                    0 => {
5272                                                                        0 => {
5273                                                                            0 => {
5274                                                                                0 => {Elements::FullRightShift64_4},
5275                                                                                1 => {}
5276                                                                            },
5277                                                                            1 => {}
5278                                                                        },
5279                                                                        1 => {}
5280                                                                    },
5281                                                                    1 => {}
5282                                                                }
5283                                                            }
5284                                                        }
5285                                                    },
5286                                                    1 => {
5287                                                        0 => {
5288                                                            0 => {
5289                                                                0 => {
5290                                                                    0 => {
5291                                                                        0 => {Elements::FullRightShift16_8},
5292                                                                        1 => {
5293                                                                            0 => {
5294                                                                                0 => {Elements::FullRightShift32_8},
5295                                                                                1 => {Elements::FullRightShift64_8}
5296                                                                            },
5297                                                                            1 => {}
5298                                                                        }
5299                                                                    },
5300                                                                    1 => {
5301                                                                        0 => {Elements::FullRightShift32_16},
5302                                                                        1 => {
5303                                                                            0 => {
5304                                                                                0 => {Elements::FullRightShift64_16},
5305                                                                                1 => {}
5306                                                                            },
5307                                                                            1 => {}
5308                                                                        }
5309                                                                    }
5310                                                                },
5311                                                                1 => {
5312                                                                    0 => {
5313                                                                        0 => {Elements::FullRightShift64_32},
5314                                                                        1 => {}
5315                                                                    },
5316                                                                    1 => {}
5317                                                                }
5318                                                            },
5319                                                            1 => {}
5320                                                        },
5321                                                        1 => {}
5322                                                    }
5323                                                }
5324                                            }
5325                                        }
5326                                    }
5327                                }
5328                            },
5329                            1 => {
5330                                0 => {
5331                                    0 => {
5332                                        0 => {
5333                                            0 => {
5334                                                0 => {
5335                                                    0 => {
5336                                                        0 => {
5337                                                            0 => {
5338                                                                0 => {
5339                                                                    0 => {},
5340                                                                    1 => {
5341                                                                        0 => {
5342                                                                            0 => {},
5343                                                                            1 => {Elements::Leftmost8_1}
5344                                                                        },
5345                                                                        1 => {
5346                                                                            0 => {
5347                                                                                0 => {
5348                                                                                    0 => {
5349                                                                                        0 => {Elements::Leftmost16_1},
5350                                                                                        1 => {Elements::Leftmost32_1}
5351                                                                                    },
5352                                                                                    1 => {
5353                                                                                        0 => {Elements::Leftmost64_1},
5354                                                                                        1 => {}
5355                                                                                    }
5356                                                                                },
5357                                                                                1 => {}
5358                                                                            },
5359                                                                            1 => {}
5360                                                                        }
5361                                                                    }
5362                                                                },
5363                                                                1 => {
5364                                                                    0 => {
5365                                                                        0 => {
5366                                                                            0 => {},
5367                                                                            1 => {
5368                                                                                0 => {
5369                                                                                    0 => {Elements::Leftmost8_2},
5370                                                                                    1 => {Elements::Leftmost16_2}
5371                                                                                },
5372                                                                                1 => {
5373                                                                                    0 => {
5374                                                                                        0 => {
5375                                                                                            0 => {
5376                                                                                                0 => {Elements::Leftmost32_2},
5377                                                                                                1 => {Elements::Leftmost64_2}
5378                                                                                            },
5379                                                                                            1 => {}
5380                                                                                        },
5381                                                                                        1 => {}
5382                                                                                    },
5383                                                                                    1 => {}
5384                                                                                }
5385                                                                            }
5386                                                                        },
5387                                                                        1 => {
5388                                                                            0 => {Elements::Leftmost8_4},
5389                                                                            1 => {
5390                                                                                0 => {
5391                                                                                    0 => {Elements::Leftmost16_4},
5392                                                                                    1 => {Elements::Leftmost32_4}
5393                                                                                },
5394                                                                                1 => {
5395                                                                                    0 => {
5396                                                                                        0 => {
5397                                                                                            0 => {
5398                                                                                                0 => {Elements::Leftmost64_4},
5399                                                                                                1 => {}
5400                                                                                            },
5401                                                                                            1 => {}
5402                                                                                        },
5403                                                                                        1 => {}
5404                                                                                    },
5405                                                                                    1 => {}
5406                                                                                }
5407                                                                            }
5408                                                                        }
5409                                                                    },
5410                                                                    1 => {
5411                                                                        0 => {
5412                                                                            0 => {
5413                                                                                0 => {
5414                                                                                    0 => {
5415                                                                                        0 => {Elements::Leftmost16_8},
5416                                                                                        1 => {
5417                                                                                            0 => {
5418                                                                                                0 => {Elements::Leftmost32_8},
5419                                                                                                1 => {Elements::Leftmost64_8}
5420                                                                                            },
5421                                                                                            1 => {}
5422                                                                                        }
5423                                                                                    },
5424                                                                                    1 => {
5425                                                                                        0 => {Elements::Leftmost32_16},
5426                                                                                        1 => {
5427                                                                                            0 => {
5428                                                                                                0 => {Elements::Leftmost64_16},
5429                                                                                                1 => {}
5430                                                                                            },
5431                                                                                            1 => {}
5432                                                                                        }
5433                                                                                    }
5434                                                                                },
5435                                                                                1 => {
5436                                                                                    0 => {
5437                                                                                        0 => {Elements::Leftmost64_32},
5438                                                                                        1 => {}
5439                                                                                    },
5440                                                                                    1 => {}
5441                                                                                }
5442                                                                            },
5443                                                                            1 => {}
5444                                                                        },
5445                                                                        1 => {}
5446                                                                    }
5447                                                                }
5448                                                            },
5449                                                            1 => {
5450                                                                0 => {
5451                                                                    0 => {},
5452                                                                    1 => {
5453                                                                        0 => {
5454                                                                            0 => {},
5455                                                                            1 => {Elements::Rightmost8_1}
5456                                                                        },
5457                                                                        1 => {
5458                                                                            0 => {
5459                                                                                0 => {
5460                                                                                    0 => {
5461                                                                                        0 => {Elements::Rightmost16_1},
5462                                                                                        1 => {Elements::Rightmost32_1}
5463                                                                                    },
5464                                                                                    1 => {
5465                                                                                        0 => {Elements::Rightmost64_1},
5466                                                                                        1 => {}
5467                                                                                    }
5468                                                                                },
5469                                                                                1 => {}
5470                                                                            },
5471                                                                            1 => {}
5472                                                                        }
5473                                                                    }
5474                                                                },
5475                                                                1 => {
5476                                                                    0 => {
5477                                                                        0 => {
5478                                                                            0 => {},
5479                                                                            1 => {
5480                                                                                0 => {
5481                                                                                    0 => {Elements::Rightmost8_2},
5482                                                                                    1 => {Elements::Rightmost16_2}
5483                                                                                },
5484                                                                                1 => {
5485                                                                                    0 => {
5486                                                                                        0 => {
5487                                                                                            0 => {
5488                                                                                                0 => {Elements::Rightmost32_2},
5489                                                                                                1 => {Elements::Rightmost64_2}
5490                                                                                            },
5491                                                                                            1 => {}
5492                                                                                        },
5493                                                                                        1 => {}
5494                                                                                    },
5495                                                                                    1 => {}
5496                                                                                }
5497                                                                            }
5498                                                                        },
5499                                                                        1 => {
5500                                                                            0 => {Elements::Rightmost8_4},
5501                                                                            1 => {
5502                                                                                0 => {
5503                                                                                    0 => {Elements::Rightmost16_4},
5504                                                                                    1 => {Elements::Rightmost32_4}
5505                                                                                },
5506                                                                                1 => {
5507                                                                                    0 => {
5508                                                                                        0 => {
5509                                                                                            0 => {
5510                                                                                                0 => {Elements::Rightmost64_4},
5511                                                                                                1 => {}
5512                                                                                            },
5513                                                                                            1 => {}
5514                                                                                        },
5515                                                                                        1 => {}
5516                                                                                    },
5517                                                                                    1 => {}
5518                                                                                }
5519                                                                            }
5520                                                                        }
5521                                                                    },
5522                                                                    1 => {
5523                                                                        0 => {
5524                                                                            0 => {
5525                                                                                0 => {
5526                                                                                    0 => {
5527                                                                                        0 => {Elements::Rightmost16_8},
5528                                                                                        1 => {
5529                                                                                            0 => {
5530                                                                                                0 => {Elements::Rightmost32_8},
5531                                                                                                1 => {Elements::Rightmost64_8}
5532                                                                                            },
5533                                                                                            1 => {}
5534                                                                                        }
5535                                                                                    },
5536                                                                                    1 => {
5537                                                                                        0 => {Elements::Rightmost32_16},
5538                                                                                        1 => {
5539                                                                                            0 => {
5540                                                                                                0 => {Elements::Rightmost64_16},
5541                                                                                                1 => {}
5542                                                                                            },
5543                                                                                            1 => {}
5544                                                                                        }
5545                                                                                    }
5546                                                                                },
5547                                                                                1 => {
5548                                                                                    0 => {
5549                                                                                        0 => {Elements::Rightmost64_32},
5550                                                                                        1 => {}
5551                                                                                    },
5552                                                                                    1 => {}
5553                                                                                }
5554                                                                            },
5555                                                                            1 => {}
5556                                                                        },
5557                                                                        1 => {}
5558                                                                    }
5559                                                                }
5560                                                            }
5561                                                        },
5562                                                        1 => {
5563                                                            0 => {
5564                                                                0 => {
5565                                                                    0 => {},
5566                                                                    1 => {
5567                                                                        0 => {
5568                                                                            0 => {},
5569                                                                            1 => {Elements::LeftPadLow1_8}
5570                                                                        },
5571                                                                        1 => {
5572                                                                            0 => {
5573                                                                                0 => {
5574                                                                                    0 => {
5575                                                                                        0 => {Elements::LeftPadLow1_16},
5576                                                                                        1 => {Elements::LeftPadLow1_32}
5577                                                                                    },
5578                                                                                    1 => {
5579                                                                                        0 => {Elements::LeftPadLow1_64},
5580                                                                                        1 => {}
5581                                                                                    }
5582                                                                                },
5583                                                                                1 => {}
5584                                                                            },
5585                                                                            1 => {}
5586                                                                        }
5587                                                                    }
5588                                                                },
5589                                                                1 => {
5590                                                                    0 => {},
5591                                                                    1 => {
5592                                                                        0 => {
5593                                                                            0 => {
5594                                                                                0 => {
5595                                                                                    0 => {
5596                                                                                        0 => {Elements::LeftPadLow8_16},
5597                                                                                        1 => {
5598                                                                                            0 => {
5599                                                                                                0 => {Elements::LeftPadLow8_32},
5600                                                                                                1 => {Elements::LeftPadLow8_64}
5601                                                                                            },
5602                                                                                            1 => {}
5603                                                                                        }
5604                                                                                    },
5605                                                                                    1 => {
5606                                                                                        0 => {Elements::LeftPadLow16_32},
5607                                                                                        1 => {
5608                                                                                            0 => {
5609                                                                                                0 => {Elements::LeftPadLow16_64},
5610                                                                                                1 => {}
5611                                                                                            },
5612                                                                                            1 => {}
5613                                                                                        }
5614                                                                                    }
5615                                                                                },
5616                                                                                1 => {
5617                                                                                    0 => {
5618                                                                                        0 => {Elements::LeftPadLow32_64},
5619                                                                                        1 => {}
5620                                                                                    },
5621                                                                                    1 => {}
5622                                                                                }
5623                                                                            },
5624                                                                            1 => {}
5625                                                                        },
5626                                                                        1 => {}
5627                                                                    }
5628                                                                }
5629                                                            },
5630                                                            1 => {
5631                                                                0 => {
5632                                                                    0 => {},
5633                                                                    1 => {
5634                                                                        0 => {
5635                                                                            0 => {},
5636                                                                            1 => {Elements::LeftPadHigh1_8}
5637                                                                        },
5638                                                                        1 => {
5639                                                                            0 => {
5640                                                                                0 => {
5641                                                                                    0 => {
5642                                                                                        0 => {Elements::LeftPadHigh1_16},
5643                                                                                        1 => {Elements::LeftPadHigh1_32}
5644                                                                                    },
5645                                                                                    1 => {
5646                                                                                        0 => {Elements::LeftPadHigh1_64},
5647                                                                                        1 => {}
5648                                                                                    }
5649                                                                                },
5650                                                                                1 => {}
5651                                                                            },
5652                                                                            1 => {}
5653                                                                        }
5654                                                                    }
5655                                                                },
5656                                                                1 => {
5657                                                                    0 => {},
5658                                                                    1 => {
5659                                                                        0 => {
5660                                                                            0 => {
5661                                                                                0 => {
5662                                                                                    0 => {
5663                                                                                        0 => {Elements::LeftPadHigh8_16},
5664                                                                                        1 => {
5665                                                                                            0 => {
5666                                                                                                0 => {Elements::LeftPadHigh8_32},
5667                                                                                                1 => {Elements::LeftPadHigh8_64}
5668                                                                                            },
5669                                                                                            1 => {}
5670                                                                                        }
5671                                                                                    },
5672                                                                                    1 => {
5673                                                                                        0 => {Elements::LeftPadHigh16_32},
5674                                                                                        1 => {
5675                                                                                            0 => {
5676                                                                                                0 => {Elements::LeftPadHigh16_64},
5677                                                                                                1 => {}
5678                                                                                            },
5679                                                                                            1 => {}
5680                                                                                        }
5681                                                                                    }
5682                                                                                },
5683                                                                                1 => {
5684                                                                                    0 => {
5685                                                                                        0 => {Elements::LeftPadHigh32_64},
5686                                                                                        1 => {}
5687                                                                                    },
5688                                                                                    1 => {}
5689                                                                                }
5690                                                                            },
5691                                                                            1 => {}
5692                                                                        },
5693                                                                        1 => {}
5694                                                                    }
5695                                                                }
5696                                                            }
5697                                                        }
5698                                                    },
5699                                                    1 => {
5700                                                        0 => {
5701                                                            0 => {
5702                                                                0 => {
5703                                                                    0 => {},
5704                                                                    1 => {
5705                                                                        0 => {
5706                                                                            0 => {},
5707                                                                            1 => {Elements::LeftExtend1_8}
5708                                                                        },
5709                                                                        1 => {
5710                                                                            0 => {
5711                                                                                0 => {
5712                                                                                    0 => {
5713                                                                                        0 => {Elements::LeftExtend1_16},
5714                                                                                        1 => {Elements::LeftExtend1_32}
5715                                                                                    },
5716                                                                                    1 => {
5717                                                                                        0 => {Elements::LeftExtend1_64},
5718                                                                                        1 => {}
5719                                                                                    }
5720                                                                                },
5721                                                                                1 => {}
5722                                                                            },
5723                                                                            1 => {}
5724                                                                        }
5725                                                                    }
5726                                                                },
5727                                                                1 => {
5728                                                                    0 => {},
5729                                                                    1 => {
5730                                                                        0 => {
5731                                                                            0 => {
5732                                                                                0 => {
5733                                                                                    0 => {
5734                                                                                        0 => {Elements::LeftExtend8_16},
5735                                                                                        1 => {
5736                                                                                            0 => {
5737                                                                                                0 => {Elements::LeftExtend8_32},
5738                                                                                                1 => {Elements::LeftExtend8_64}
5739                                                                                            },
5740                                                                                            1 => {}
5741                                                                                        }
5742                                                                                    },
5743                                                                                    1 => {
5744                                                                                        0 => {Elements::LeftExtend16_32},
5745                                                                                        1 => {
5746                                                                                            0 => {
5747                                                                                                0 => {Elements::LeftExtend16_64},
5748                                                                                                1 => {}
5749                                                                                            },
5750                                                                                            1 => {}
5751                                                                                        }
5752                                                                                    }
5753                                                                                },
5754                                                                                1 => {
5755                                                                                    0 => {
5756                                                                                        0 => {Elements::LeftExtend32_64},
5757                                                                                        1 => {}
5758                                                                                    },
5759                                                                                    1 => {}
5760                                                                                }
5761                                                                            },
5762                                                                            1 => {}
5763                                                                        },
5764                                                                        1 => {}
5765                                                                    }
5766                                                                }
5767                                                            },
5768                                                            1 => {
5769                                                                0 => {
5770                                                                    0 => {},
5771                                                                    1 => {
5772                                                                        0 => {
5773                                                                            0 => {},
5774                                                                            1 => {Elements::RightPadLow1_8}
5775                                                                        },
5776                                                                        1 => {
5777                                                                            0 => {
5778                                                                                0 => {
5779                                                                                    0 => {
5780                                                                                        0 => {Elements::RightPadLow1_16},
5781                                                                                        1 => {Elements::RightPadLow1_32}
5782                                                                                    },
5783                                                                                    1 => {
5784                                                                                        0 => {Elements::RightPadLow1_64},
5785                                                                                        1 => {}
5786                                                                                    }
5787                                                                                },
5788                                                                                1 => {}
5789                                                                            },
5790                                                                            1 => {}
5791                                                                        }
5792                                                                    }
5793                                                                },
5794                                                                1 => {
5795                                                                    0 => {},
5796                                                                    1 => {
5797                                                                        0 => {
5798                                                                            0 => {
5799                                                                                0 => {
5800                                                                                    0 => {
5801                                                                                        0 => {Elements::RightPadLow8_16},
5802                                                                                        1 => {
5803                                                                                            0 => {
5804                                                                                                0 => {Elements::RightPadLow8_32},
5805                                                                                                1 => {Elements::RightPadLow8_64}
5806                                                                                            },
5807                                                                                            1 => {}
5808                                                                                        }
5809                                                                                    },
5810                                                                                    1 => {
5811                                                                                        0 => {Elements::RightPadLow16_32},
5812                                                                                        1 => {
5813                                                                                            0 => {
5814                                                                                                0 => {Elements::RightPadLow16_64},
5815                                                                                                1 => {}
5816                                                                                            },
5817                                                                                            1 => {}
5818                                                                                        }
5819                                                                                    }
5820                                                                                },
5821                                                                                1 => {
5822                                                                                    0 => {
5823                                                                                        0 => {Elements::RightPadLow32_64},
5824                                                                                        1 => {}
5825                                                                                    },
5826                                                                                    1 => {}
5827                                                                                }
5828                                                                            },
5829                                                                            1 => {}
5830                                                                        },
5831                                                                        1 => {}
5832                                                                    }
5833                                                                }
5834                                                            }
5835                                                        },
5836                                                        1 => {
5837                                                            0 => {
5838                                                                0 => {
5839                                                                    0 => {},
5840                                                                    1 => {
5841                                                                        0 => {
5842                                                                            0 => {},
5843                                                                            1 => {Elements::RightPadHigh1_8}
5844                                                                        },
5845                                                                        1 => {
5846                                                                            0 => {
5847                                                                                0 => {
5848                                                                                    0 => {
5849                                                                                        0 => {Elements::RightPadHigh1_16},
5850                                                                                        1 => {Elements::RightPadHigh1_32}
5851                                                                                    },
5852                                                                                    1 => {
5853                                                                                        0 => {Elements::RightPadHigh1_64},
5854                                                                                        1 => {}
5855                                                                                    }
5856                                                                                },
5857                                                                                1 => {}
5858                                                                            },
5859                                                                            1 => {}
5860                                                                        }
5861                                                                    }
5862                                                                },
5863                                                                1 => {
5864                                                                    0 => {},
5865                                                                    1 => {
5866                                                                        0 => {
5867                                                                            0 => {
5868                                                                                0 => {
5869                                                                                    0 => {
5870                                                                                        0 => {Elements::RightPadHigh8_16},
5871                                                                                        1 => {
5872                                                                                            0 => {
5873                                                                                                0 => {Elements::RightPadHigh8_32},
5874                                                                                                1 => {Elements::RightPadHigh8_64}
5875                                                                                            },
5876                                                                                            1 => {}
5877                                                                                        }
5878                                                                                    },
5879                                                                                    1 => {
5880                                                                                        0 => {Elements::RightPadHigh16_32},
5881                                                                                        1 => {
5882                                                                                            0 => {
5883                                                                                                0 => {Elements::RightPadHigh16_64},
5884                                                                                                1 => {}
5885                                                                                            },
5886                                                                                            1 => {}
5887                                                                                        }
5888                                                                                    }
5889                                                                                },
5890                                                                                1 => {
5891                                                                                    0 => {
5892                                                                                        0 => {Elements::RightPadHigh32_64},
5893                                                                                        1 => {}
5894                                                                                    },
5895                                                                                    1 => {}
5896                                                                                }
5897                                                                            },
5898                                                                            1 => {}
5899                                                                        },
5900                                                                        1 => {}
5901                                                                    }
5902                                                                }
5903                                                            },
5904                                                            1 => {
5905                                                                0 => {},
5906                                                                1 => {
5907                                                                    0 => {},
5908                                                                    1 => {
5909                                                                        0 => {
5910                                                                            0 => {
5911                                                                                0 => {
5912                                                                                    0 => {
5913                                                                                        0 => {Elements::RightExtend8_16},
5914                                                                                        1 => {
5915                                                                                            0 => {
5916                                                                                                0 => {Elements::RightExtend8_32},
5917                                                                                                1 => {Elements::RightExtend8_64}
5918                                                                                            },
5919                                                                                            1 => {}
5920                                                                                        }
5921                                                                                    },
5922                                                                                    1 => {
5923                                                                                        0 => {Elements::RightExtend16_32},
5924                                                                                        1 => {
5925                                                                                            0 => {
5926                                                                                                0 => {Elements::RightExtend16_64},
5927                                                                                                1 => {}
5928                                                                                            },
5929                                                                                            1 => {}
5930                                                                                        }
5931                                                                                    }
5932                                                                                },
5933                                                                                1 => {
5934                                                                                    0 => {
5935                                                                                        0 => {Elements::RightExtend32_64},
5936                                                                                        1 => {}
5937                                                                                    },
5938                                                                                    1 => {}
5939                                                                                }
5940                                                                            },
5941                                                                            1 => {}
5942                                                                        },
5943                                                                        1 => {}
5944                                                                    }
5945                                                                }
5946                                                            }
5947                                                        }
5948                                                    }
5949                                                },
5950                                                1 => {
5951                                                    0 => {
5952                                                        0 => {
5953                                                            0 => {
5954                                                                0 => {},
5955                                                                1 => {
5956                                                                    0 => {
5957                                                                        0 => {},
5958                                                                        1 => {Elements::LeftShiftWith8}
5959                                                                    },
5960                                                                    1 => {
5961                                                                        0 => {
5962                                                                            0 => {
5963                                                                                0 => {
5964                                                                                    0 => {Elements::LeftShiftWith16},
5965                                                                                    1 => {Elements::LeftShiftWith32}
5966                                                                                },
5967                                                                                1 => {
5968                                                                                    0 => {Elements::LeftShiftWith64},
5969                                                                                    1 => {}
5970                                                                                }
5971                                                                            },
5972                                                                            1 => {}
5973                                                                        },
5974                                                                        1 => {}
5975                                                                    }
5976                                                                }
5977                                                            },
5978                                                            1 => {
5979                                                                0 => {},
5980                                                                1 => {
5981                                                                    0 => {
5982                                                                        0 => {},
5983                                                                        1 => {Elements::RightShiftWith8}
5984                                                                    },
5985                                                                    1 => {
5986                                                                        0 => {
5987                                                                            0 => {
5988                                                                                0 => {
5989                                                                                    0 => {Elements::RightShiftWith16},
5990                                                                                    1 => {Elements::RightShiftWith32}
5991                                                                                },
5992                                                                                1 => {
5993                                                                                    0 => {Elements::RightShiftWith64},
5994                                                                                    1 => {}
5995                                                                                }
5996                                                                            },
5997                                                                            1 => {}
5998                                                                        },
5999                                                                        1 => {}
6000                                                                    }
6001                                                                }
6002                                                            }
6003                                                        },
6004                                                        1 => {
6005                                                            0 => {
6006                                                                0 => {},
6007                                                                1 => {
6008                                                                    0 => {
6009                                                                        0 => {},
6010                                                                        1 => {Elements::LeftShift8}
6011                                                                    },
6012                                                                    1 => {
6013                                                                        0 => {
6014                                                                            0 => {
6015                                                                                0 => {
6016                                                                                    0 => {Elements::LeftShift16},
6017                                                                                    1 => {Elements::LeftShift32}
6018                                                                                },
6019                                                                                1 => {
6020                                                                                    0 => {Elements::LeftShift64},
6021                                                                                    1 => {}
6022                                                                                }
6023                                                                            },
6024                                                                            1 => {}
6025                                                                        },
6026                                                                        1 => {}
6027                                                                    }
6028                                                                }
6029                                                            },
6030                                                            1 => {
6031                                                                0 => {},
6032                                                                1 => {
6033                                                                    0 => {
6034                                                                        0 => {},
6035                                                                        1 => {Elements::RightShift8}
6036                                                                    },
6037                                                                    1 => {
6038                                                                        0 => {
6039                                                                            0 => {
6040                                                                                0 => {
6041                                                                                    0 => {Elements::RightShift16},
6042                                                                                    1 => {Elements::RightShift32}
6043                                                                                },
6044                                                                                1 => {
6045                                                                                    0 => {Elements::RightShift64},
6046                                                                                    1 => {}
6047                                                                                }
6048                                                                            },
6049                                                                            1 => {}
6050                                                                        },
6051                                                                        1 => {}
6052                                                                    }
6053                                                                }
6054                                                            }
6055                                                        }
6056                                                    },
6057                                                    1 => {
6058                                                        0 => {
6059                                                            0 => {
6060                                                                0 => {},
6061                                                                1 => {
6062                                                                    0 => {
6063                                                                        0 => {},
6064                                                                        1 => {Elements::LeftRotate8}
6065                                                                    },
6066                                                                    1 => {
6067                                                                        0 => {
6068                                                                            0 => {
6069                                                                                0 => {
6070                                                                                    0 => {Elements::LeftRotate16},
6071                                                                                    1 => {Elements::LeftRotate32}
6072                                                                                },
6073                                                                                1 => {
6074                                                                                    0 => {Elements::LeftRotate64},
6075                                                                                    1 => {}
6076                                                                                }
6077                                                                            },
6078                                                                            1 => {}
6079                                                                        },
6080                                                                        1 => {}
6081                                                                    }
6082                                                                }
6083                                                            },
6084                                                            1 => {
6085                                                                0 => {},
6086                                                                1 => {
6087                                                                    0 => {
6088                                                                        0 => {},
6089                                                                        1 => {Elements::RightRotate8}
6090                                                                    },
6091                                                                    1 => {
6092                                                                        0 => {
6093                                                                            0 => {
6094                                                                                0 => {
6095                                                                                    0 => {Elements::RightRotate16},
6096                                                                                    1 => {Elements::RightRotate32}
6097                                                                                },
6098                                                                                1 => {
6099                                                                                    0 => {Elements::RightRotate64},
6100                                                                                    1 => {}
6101                                                                                }
6102                                                                            },
6103                                                                            1 => {}
6104                                                                        },
6105                                                                        1 => {}
6106                                                                    }
6107                                                                }
6108                                                            }
6109                                                        },
6110                                                        1 => {}
6111                                                    }
6112                                                }
6113                                            },
6114                                            1 => {}
6115                                        },
6116                                        1 => {}
6117                                    },
6118                                    1 => {}
6119                                },
6120                                1 => {}
6121                            }
6122                        }
6123                    }
6124                },
6125                1 => {
6126                    0 => {
6127                        0 => {
6128                            0 => {
6129                                0 => {},
6130                                1 => {
6131                                    0 => {
6132                                        0 => {},
6133                                        1 => {Elements::One8}
6134                                    },
6135                                    1 => {
6136                                        0 => {
6137                                            0 => {
6138                                                0 => {
6139                                                    0 => {Elements::One16},
6140                                                    1 => {Elements::One32}
6141                                                },
6142                                                1 => {
6143                                                    0 => {Elements::One64},
6144                                                    1 => {}
6145                                                }
6146                                            },
6147                                            1 => {}
6148                                        },
6149                                        1 => {}
6150                                    }
6151                                }
6152                            },
6153                            1 => {
6154                                0 => {
6155                                    0 => {
6156                                        0 => {},
6157                                        1 => {
6158                                            0 => {
6159                                                0 => {},
6160                                                1 => {Elements::FullAdd8}
6161                                            },
6162                                            1 => {
6163                                                0 => {
6164                                                    0 => {
6165                                                        0 => {
6166                                                            0 => {Elements::FullAdd16},
6167                                                            1 => {Elements::FullAdd32}
6168                                                        },
6169                                                        1 => {
6170                                                            0 => {Elements::FullAdd64},
6171                                                            1 => {}
6172                                                        }
6173                                                    },
6174                                                    1 => {}
6175                                                },
6176                                                1 => {}
6177                                            }
6178                                        }
6179                                    },
6180                                    1 => {
6181                                        0 => {},
6182                                        1 => {
6183                                            0 => {
6184                                                0 => {},
6185                                                1 => {Elements::Add8}
6186                                            },
6187                                            1 => {
6188                                                0 => {
6189                                                    0 => {
6190                                                        0 => {
6191                                                            0 => {Elements::Add16},
6192                                                            1 => {Elements::Add32}
6193                                                        },
6194                                                        1 => {
6195                                                            0 => {Elements::Add64},
6196                                                            1 => {}
6197                                                        }
6198                                                    },
6199                                                    1 => {}
6200                                                },
6201                                                1 => {}
6202                                            }
6203                                        }
6204                                    }
6205                                },
6206                                1 => {
6207                                    0 => {
6208                                        0 => {
6209                                            0 => {
6210                                                0 => {
6211                                                    0 => {},
6212                                                    1 => {
6213                                                        0 => {
6214                                                            0 => {},
6215                                                            1 => {Elements::FullIncrement8}
6216                                                        },
6217                                                        1 => {
6218                                                            0 => {
6219                                                                0 => {
6220                                                                    0 => {
6221                                                                        0 => {Elements::FullIncrement16},
6222                                                                        1 => {Elements::FullIncrement32}
6223                                                                    },
6224                                                                    1 => {
6225                                                                        0 => {Elements::FullIncrement64},
6226                                                                        1 => {}
6227                                                                    }
6228                                                                },
6229                                                                1 => {}
6230                                                            },
6231                                                            1 => {}
6232                                                        }
6233                                                    }
6234                                                },
6235                                                1 => {
6236                                                    0 => {},
6237                                                    1 => {
6238                                                        0 => {
6239                                                            0 => {},
6240                                                            1 => {Elements::Increment8}
6241                                                        },
6242                                                        1 => {
6243                                                            0 => {
6244                                                                0 => {
6245                                                                    0 => {
6246                                                                        0 => {Elements::Increment16},
6247                                                                        1 => {Elements::Increment32}
6248                                                                    },
6249                                                                    1 => {
6250                                                                        0 => {Elements::Increment64},
6251                                                                        1 => {}
6252                                                                    }
6253                                                                },
6254                                                                1 => {}
6255                                                            },
6256                                                            1 => {}
6257                                                        }
6258                                                    }
6259                                                }
6260                                            },
6261                                            1 => {
6262                                                0 => {},
6263                                                1 => {
6264                                                    0 => {},
6265                                                    1 => {
6266                                                        0 => {
6267                                                            0 => {},
6268                                                            1 => {Elements::FullSubtract8}
6269                                                        },
6270                                                        1 => {
6271                                                            0 => {
6272                                                                0 => {
6273                                                                    0 => {
6274                                                                        0 => {Elements::FullSubtract16},
6275                                                                        1 => {Elements::FullSubtract32}
6276                                                                    },
6277                                                                    1 => {
6278                                                                        0 => {Elements::FullSubtract64},
6279                                                                        1 => {}
6280                                                                    }
6281                                                                },
6282                                                                1 => {}
6283                                                            },
6284                                                            1 => {}
6285                                                        }
6286                                                    }
6287                                                }
6288                                            }
6289                                        },
6290                                        1 => {
6291                                            0 => {
6292                                                0 => {
6293                                                    0 => {
6294                                                        0 => {},
6295                                                        1 => {
6296                                                            0 => {
6297                                                                0 => {},
6298                                                                1 => {Elements::Subtract8}
6299                                                            },
6300                                                            1 => {
6301                                                                0 => {
6302                                                                    0 => {
6303                                                                        0 => {
6304                                                                            0 => {Elements::Subtract16},
6305                                                                            1 => {Elements::Subtract32}
6306                                                                        },
6307                                                                        1 => {
6308                                                                            0 => {Elements::Subtract64},
6309                                                                            1 => {}
6310                                                                        }
6311                                                                    },
6312                                                                    1 => {}
6313                                                                },
6314                                                                1 => {}
6315                                                            }
6316                                                        }
6317                                                    },
6318                                                    1 => {
6319                                                        0 => {},
6320                                                        1 => {
6321                                                            0 => {
6322                                                                0 => {},
6323                                                                1 => {Elements::Negate8}
6324                                                            },
6325                                                            1 => {
6326                                                                0 => {
6327                                                                    0 => {
6328                                                                        0 => {
6329                                                                            0 => {Elements::Negate16},
6330                                                                            1 => {Elements::Negate32}
6331                                                                        },
6332                                                                        1 => {
6333                                                                            0 => {Elements::Negate64},
6334                                                                            1 => {}
6335                                                                        }
6336                                                                    },
6337                                                                    1 => {}
6338                                                                },
6339                                                                1 => {}
6340                                                            }
6341                                                        }
6342                                                    }
6343                                                },
6344                                                1 => {
6345                                                    0 => {
6346                                                        0 => {},
6347                                                        1 => {
6348                                                            0 => {
6349                                                                0 => {},
6350                                                                1 => {Elements::FullDecrement8}
6351                                                            },
6352                                                            1 => {
6353                                                                0 => {
6354                                                                    0 => {
6355                                                                        0 => {
6356                                                                            0 => {Elements::FullDecrement16},
6357                                                                            1 => {Elements::FullDecrement32}
6358                                                                        },
6359                                                                        1 => {
6360                                                                            0 => {Elements::FullDecrement64},
6361                                                                            1 => {}
6362                                                                        }
6363                                                                    },
6364                                                                    1 => {}
6365                                                                },
6366                                                                1 => {}
6367                                                            }
6368                                                        }
6369                                                    },
6370                                                    1 => {
6371                                                        0 => {},
6372                                                        1 => {
6373                                                            0 => {
6374                                                                0 => {},
6375                                                                1 => {Elements::Decrement8}
6376                                                            },
6377                                                            1 => {
6378                                                                0 => {
6379                                                                    0 => {
6380                                                                        0 => {
6381                                                                            0 => {Elements::Decrement16},
6382                                                                            1 => {Elements::Decrement32}
6383                                                                        },
6384                                                                        1 => {
6385                                                                            0 => {Elements::Decrement64},
6386                                                                            1 => {}
6387                                                                        }
6388                                                                    },
6389                                                                    1 => {}
6390                                                                },
6391                                                                1 => {}
6392                                                            }
6393                                                        }
6394                                                    }
6395                                                }
6396                                            },
6397                                            1 => {
6398                                                0 => {
6399                                                    0 => {
6400                                                        0 => {},
6401                                                        1 => {
6402                                                            0 => {
6403                                                                0 => {},
6404                                                                1 => {Elements::FullMultiply8}
6405                                                            },
6406                                                            1 => {
6407                                                                0 => {
6408                                                                    0 => {
6409                                                                        0 => {
6410                                                                            0 => {Elements::FullMultiply16},
6411                                                                            1 => {Elements::FullMultiply32}
6412                                                                        },
6413                                                                        1 => {
6414                                                                            0 => {Elements::FullMultiply64},
6415                                                                            1 => {}
6416                                                                        }
6417                                                                    },
6418                                                                    1 => {}
6419                                                                },
6420                                                                1 => {}
6421                                                            }
6422                                                        }
6423                                                    },
6424                                                    1 => {
6425                                                        0 => {},
6426                                                        1 => {
6427                                                            0 => {
6428                                                                0 => {},
6429                                                                1 => {Elements::Multiply8}
6430                                                            },
6431                                                            1 => {
6432                                                                0 => {
6433                                                                    0 => {
6434                                                                        0 => {
6435                                                                            0 => {Elements::Multiply16},
6436                                                                            1 => {Elements::Multiply32}
6437                                                                        },
6438                                                                        1 => {
6439                                                                            0 => {Elements::Multiply64},
6440                                                                            1 => {}
6441                                                                        }
6442                                                                    },
6443                                                                    1 => {}
6444                                                                },
6445                                                                1 => {}
6446                                                            }
6447                                                        }
6448                                                    }
6449                                                },
6450                                                1 => {
6451                                                    0 => {
6452                                                        0 => {},
6453                                                        1 => {
6454                                                            0 => {
6455                                                                0 => {},
6456                                                                1 => {Elements::IsZero8}
6457                                                            },
6458                                                            1 => {
6459                                                                0 => {
6460                                                                    0 => {
6461                                                                        0 => {
6462                                                                            0 => {Elements::IsZero16},
6463                                                                            1 => {Elements::IsZero32}
6464                                                                        },
6465                                                                        1 => {
6466                                                                            0 => {Elements::IsZero64},
6467                                                                            1 => {}
6468                                                                        }
6469                                                                    },
6470                                                                    1 => {}
6471                                                                },
6472                                                                1 => {}
6473                                                            }
6474                                                        }
6475                                                    },
6476                                                    1 => {
6477                                                        0 => {},
6478                                                        1 => {
6479                                                            0 => {
6480                                                                0 => {},
6481                                                                1 => {Elements::IsOne8}
6482                                                            },
6483                                                            1 => {
6484                                                                0 => {
6485                                                                    0 => {
6486                                                                        0 => {
6487                                                                            0 => {Elements::IsOne16},
6488                                                                            1 => {Elements::IsOne32}
6489                                                                        },
6490                                                                        1 => {
6491                                                                            0 => {Elements::IsOne64},
6492                                                                            1 => {}
6493                                                                        }
6494                                                                    },
6495                                                                    1 => {}
6496                                                                },
6497                                                                1 => {}
6498                                                            }
6499                                                        }
6500                                                    }
6501                                                }
6502                                            }
6503                                        }
6504                                    },
6505                                    1 => {
6506                                        0 => {
6507                                            0 => {
6508                                                0 => {
6509                                                    0 => {
6510                                                        0 => {
6511                                                            0 => {
6512                                                                0 => {
6513                                                                    0 => {
6514                                                                        0 => {},
6515                                                                        1 => {
6516                                                                            0 => {
6517                                                                                0 => {},
6518                                                                                1 => {Elements::Le8}
6519                                                                            },
6520                                                                            1 => {
6521                                                                                0 => {
6522                                                                                    0 => {
6523                                                                                        0 => {
6524                                                                                            0 => {Elements::Le16},
6525                                                                                            1 => {Elements::Le32}
6526                                                                                        },
6527                                                                                        1 => {
6528                                                                                            0 => {Elements::Le64},
6529                                                                                            1 => {}
6530                                                                                        }
6531                                                                                    },
6532                                                                                    1 => {}
6533                                                                                },
6534                                                                                1 => {}
6535                                                                            }
6536                                                                        }
6537                                                                    },
6538                                                                    1 => {
6539                                                                        0 => {},
6540                                                                        1 => {
6541                                                                            0 => {
6542                                                                                0 => {},
6543                                                                                1 => {Elements::Lt8}
6544                                                                            },
6545                                                                            1 => {
6546                                                                                0 => {
6547                                                                                    0 => {
6548                                                                                        0 => {
6549                                                                                            0 => {Elements::Lt16},
6550                                                                                            1 => {Elements::Lt32}
6551                                                                                        },
6552                                                                                        1 => {
6553                                                                                            0 => {Elements::Lt64},
6554                                                                                            1 => {}
6555                                                                                        }
6556                                                                                    },
6557                                                                                    1 => {}
6558                                                                                },
6559                                                                                1 => {}
6560                                                                            }
6561                                                                        }
6562                                                                    }
6563                                                                },
6564                                                                1 => {
6565                                                                    0 => {
6566                                                                        0 => {},
6567                                                                        1 => {
6568                                                                            0 => {
6569                                                                                0 => {},
6570                                                                                1 => {Elements::Min8}
6571                                                                            },
6572                                                                            1 => {
6573                                                                                0 => {
6574                                                                                    0 => {
6575                                                                                        0 => {
6576                                                                                            0 => {Elements::Min16},
6577                                                                                            1 => {Elements::Min32}
6578                                                                                        },
6579                                                                                        1 => {
6580                                                                                            0 => {Elements::Min64},
6581                                                                                            1 => {}
6582                                                                                        }
6583                                                                                    },
6584                                                                                    1 => {}
6585                                                                                },
6586                                                                                1 => {}
6587                                                                            }
6588                                                                        }
6589                                                                    },
6590                                                                    1 => {
6591                                                                        0 => {},
6592                                                                        1 => {
6593                                                                            0 => {
6594                                                                                0 => {},
6595                                                                                1 => {Elements::Max8}
6596                                                                            },
6597                                                                            1 => {
6598                                                                                0 => {
6599                                                                                    0 => {
6600                                                                                        0 => {
6601                                                                                            0 => {Elements::Max16},
6602                                                                                            1 => {Elements::Max32}
6603                                                                                        },
6604                                                                                        1 => {
6605                                                                                            0 => {Elements::Max64},
6606                                                                                            1 => {}
6607                                                                                        }
6608                                                                                    },
6609                                                                                    1 => {}
6610                                                                                },
6611                                                                                1 => {}
6612                                                                            }
6613                                                                        }
6614                                                                    }
6615                                                                }
6616                                                            },
6617                                                            1 => {
6618                                                                0 => {
6619                                                                    0 => {
6620                                                                        0 => {},
6621                                                                        1 => {
6622                                                                            0 => {
6623                                                                                0 => {},
6624                                                                                1 => {Elements::Median8}
6625                                                                            },
6626                                                                            1 => {
6627                                                                                0 => {
6628                                                                                    0 => {
6629                                                                                        0 => {
6630                                                                                            0 => {Elements::Median16},
6631                                                                                            1 => {Elements::Median32}
6632                                                                                        },
6633                                                                                        1 => {
6634                                                                                            0 => {Elements::Median64},
6635                                                                                            1 => {}
6636                                                                                        }
6637                                                                                    },
6638                                                                                    1 => {}
6639                                                                                },
6640                                                                                1 => {}
6641                                                                            }
6642                                                                        }
6643                                                                    },
6644                                                                    1 => {
6645                                                                        0 => {},
6646                                                                        1 => {
6647                                                                            0 => {},
6648                                                                            1 => {
6649                                                                                0 => {
6650                                                                                    0 => {
6651                                                                                        0 => {},
6652                                                                                        1 => {
6653                                                                                            0 => {Elements::DivMod128_64},
6654                                                                                            1 => {}
6655                                                                                        }
6656                                                                                    },
6657                                                                                    1 => {}
6658                                                                                },
6659                                                                                1 => {}
6660                                                                            }
6661                                                                        }
6662                                                                    }
6663                                                                },
6664                                                                1 => {
6665                                                                    0 => {
6666                                                                        0 => {},
6667                                                                        1 => {
6668                                                                            0 => {
6669                                                                                0 => {},
6670                                                                                1 => {Elements::DivMod8}
6671                                                                            },
6672                                                                            1 => {
6673                                                                                0 => {
6674                                                                                    0 => {
6675                                                                                        0 => {
6676                                                                                            0 => {Elements::DivMod16},
6677                                                                                            1 => {Elements::DivMod32}
6678                                                                                        },
6679                                                                                        1 => {
6680                                                                                            0 => {Elements::DivMod64},
6681                                                                                            1 => {}
6682                                                                                        }
6683                                                                                    },
6684                                                                                    1 => {}
6685                                                                                },
6686                                                                                1 => {}
6687                                                                            }
6688                                                                        }
6689                                                                    },
6690                                                                    1 => {
6691                                                                        0 => {},
6692                                                                        1 => {
6693                                                                            0 => {
6694                                                                                0 => {},
6695                                                                                1 => {Elements::Divide8}
6696                                                                            },
6697                                                                            1 => {
6698                                                                                0 => {
6699                                                                                    0 => {
6700                                                                                        0 => {
6701                                                                                            0 => {Elements::Divide16},
6702                                                                                            1 => {Elements::Divide32}
6703                                                                                        },
6704                                                                                        1 => {
6705                                                                                            0 => {Elements::Divide64},
6706                                                                                            1 => {}
6707                                                                                        }
6708                                                                                    },
6709                                                                                    1 => {}
6710                                                                                },
6711                                                                                1 => {}
6712                                                                            }
6713                                                                        }
6714                                                                    }
6715                                                                }
6716                                                            }
6717                                                        },
6718                                                        1 => {
6719                                                            0 => {
6720                                                                0 => {
6721                                                                    0 => {
6722                                                                        0 => {},
6723                                                                        1 => {
6724                                                                            0 => {
6725                                                                                0 => {},
6726                                                                                1 => {Elements::Modulo8}
6727                                                                            },
6728                                                                            1 => {
6729                                                                                0 => {
6730                                                                                    0 => {
6731                                                                                        0 => {
6732                                                                                            0 => {Elements::Modulo16},
6733                                                                                            1 => {Elements::Modulo32}
6734                                                                                        },
6735                                                                                        1 => {
6736                                                                                            0 => {Elements::Modulo64},
6737                                                                                            1 => {}
6738                                                                                        }
6739                                                                                    },
6740                                                                                    1 => {}
6741                                                                                },
6742                                                                                1 => {}
6743                                                                            }
6744                                                                        }
6745                                                                    },
6746                                                                    1 => {
6747                                                                        0 => {},
6748                                                                        1 => {
6749                                                                            0 => {
6750                                                                                0 => {},
6751                                                                                1 => {Elements::Divides8}
6752                                                                            },
6753                                                                            1 => {
6754                                                                                0 => {
6755                                                                                    0 => {
6756                                                                                        0 => {
6757                                                                                            0 => {Elements::Divides16},
6758                                                                                            1 => {Elements::Divides32}
6759                                                                                        },
6760                                                                                        1 => {
6761                                                                                            0 => {Elements::Divides64},
6762                                                                                            1 => {}
6763                                                                                        }
6764                                                                                    },
6765                                                                                    1 => {}
6766                                                                                },
6767                                                                                1 => {}
6768                                                                            }
6769                                                                        }
6770                                                                    }
6771                                                                },
6772                                                                1 => {}
6773                                                            },
6774                                                            1 => {}
6775                                                        }
6776                                                    },
6777                                                    1 => {}
6778                                                },
6779                                                1 => {}
6780                                            },
6781                                            1 => {}
6782                                        },
6783                                        1 => {}
6784                                    }
6785                                }
6786                            }
6787                        },
6788                        1 => {
6789                            0 => {
6790                                0 => {Elements::Sha256Block},
6791                                1 => {
6792                                    0 => {
6793                                        0 => {Elements::Sha256Iv},
6794                                        1 => {
6795                                            0 => {Elements::Sha256Ctx8Add1},
6796                                            1 => {
6797                                                0 => {
6798                                                    0 => {Elements::Sha256Ctx8Add2},
6799                                                    1 => {Elements::Sha256Ctx8Add4}
6800                                                },
6801                                                1 => {
6802                                                    0 => {
6803                                                        0 => {
6804                                                            0 => {
6805                                                                0 => {Elements::Sha256Ctx8Add8},
6806                                                                1 => {Elements::Sha256Ctx8Add16}
6807                                                            },
6808                                                            1 => {
6809                                                                0 => {Elements::Sha256Ctx8Add32},
6810                                                                1 => {Elements::Sha256Ctx8Add64}
6811                                                            }
6812                                                        },
6813                                                        1 => {
6814                                                            0 => {
6815                                                                0 => {
6816                                                                    0 => {Elements::Sha256Ctx8Add128},
6817                                                                    1 => {Elements::Sha256Ctx8Add256}
6818                                                                },
6819                                                                1 => {
6820                                                                    0 => {Elements::Sha256Ctx8Add512},
6821                                                                    1 => {}
6822                                                                }
6823                                                            },
6824                                                            1 => {}
6825                                                        }
6826                                                    },
6827                                                    1 => {}
6828                                                }
6829                                            }
6830                                        }
6831                                    },
6832                                    1 => {
6833                                        0 => {
6834                                            0 => {
6835                                                0 => {
6836                                                    0 => {Elements::Sha256Ctx8AddBuffer511},
6837                                                    1 => {Elements::Sha256Ctx8Finalize}
6838                                                },
6839                                                1 => {
6840                                                    0 => {Elements::Sha256Ctx8Init},
6841                                                    1 => {}
6842                                                }
6843                                            },
6844                                            1 => {}
6845                                        },
6846                                        1 => {}
6847                                    }
6848                                }
6849                            },
6850                            1 => {}
6851                        }
6852                    },
6853                    1 => {
6854                        0 => {
6855                            0 => {
6856                                0 => {
6857                                    0 => {
6858                                        0 => {
6859                                            0 => {Elements::PointVerify1},
6860                                            1 => {}
6861                                        },
6862                                        1 => {
6863                                            0 => {
6864                                                0 => {Elements::Decompress},
6865                                                1 => {
6866                                                    0 => {Elements::LinearVerify1},
6867                                                    1 => {}
6868                                                }
6869                                            },
6870                                            1 => {
6871                                                0 => {
6872                                                    0 => {
6873                                                        0 => {
6874                                                            0 => {
6875                                                                0 => {Elements::LinearCombination1},
6876                                                                1 => {}
6877                                                            },
6878                                                            1 => {Elements::Scale}
6879                                                        },
6880                                                        1 => {
6881                                                            0 => {Elements::Generate},
6882                                                            1 => {Elements::GejInfinity}
6883                                                        }
6884                                                    },
6885                                                    1 => {
6886                                                        0 => {
6887                                                            0 => {
6888                                                                0 => {Elements::GejNormalize},
6889                                                                1 => {Elements::GejNegate}
6890                                                            },
6891                                                            1 => {
6892                                                                0 => {Elements::GeNegate},
6893                                                                1 => {Elements::GejDouble}
6894                                                            }
6895                                                        },
6896                                                        1 => {
6897                                                            0 => {
6898                                                                0 => {Elements::GejAdd},
6899                                                                1 => {Elements::GejGeAddEx}
6900                                                            },
6901                                                            1 => {
6902                                                                0 => {Elements::GejGeAdd},
6903                                                                1 => {Elements::GejRescale}
6904                                                            }
6905                                                        }
6906                                                    }
6907                                                },
6908                                                1 => {
6909                                                    0 => {
6910                                                        0 => {
6911                                                            0 => {
6912                                                                0 => {
6913                                                                    0 => {
6914                                                                        0 => {
6915                                                                            0 => {
6916                                                                                0 => {Elements::GejIsInfinity},
6917                                                                                1 => {Elements::GejEquiv}
6918                                                                            },
6919                                                                            1 => {
6920                                                                                0 => {Elements::GejGeEquiv},
6921                                                                                1 => {Elements::GejXEquiv}
6922                                                                            }
6923                                                                        },
6924                                                                        1 => {
6925                                                                            0 => {
6926                                                                                0 => {Elements::GejYIsOdd},
6927                                                                                1 => {Elements::GejIsOnCurve}
6928                                                                            },
6929                                                                            1 => {
6930                                                                                0 => {Elements::GeIsOnCurve},
6931                                                                                1 => {Elements::ScalarNormalize}
6932                                                                            }
6933                                                                        }
6934                                                                    },
6935                                                                    1 => {
6936                                                                        0 => {
6937                                                                            0 => {
6938                                                                                0 => {Elements::ScalarNegate},
6939                                                                                1 => {Elements::ScalarAdd}
6940                                                                            },
6941                                                                            1 => {
6942                                                                                0 => {Elements::ScalarSquare},
6943                                                                                1 => {Elements::ScalarMultiply}
6944                                                                            }
6945                                                                        },
6946                                                                        1 => {
6947                                                                            0 => {
6948                                                                                0 => {Elements::ScalarMultiplyLambda},
6949                                                                                1 => {Elements::ScalarInvert}
6950                                                                            },
6951                                                                            1 => {
6952                                                                                0 => {Elements::ScalarIsZero},
6953                                                                                1 => {}
6954                                                                            }
6955                                                                        }
6956                                                                    }
6957                                                                },
6958                                                                1 => {
6959                                                                    0 => {
6960                                                                        0 => {
6961                                                                            0 => {
6962                                                                                0 => {},
6963                                                                                1 => {
6964                                                                                    0 => {},
6965                                                                                    1 => {Elements::FeNormalize}
6966                                                                                }
6967                                                                            },
6968                                                                            1 => {
6969                                                                                0 => {
6970                                                                                    0 => {Elements::FeNegate},
6971                                                                                    1 => {Elements::FeAdd}
6972                                                                                },
6973                                                                                1 => {
6974                                                                                    0 => {Elements::FeSquare},
6975                                                                                    1 => {Elements::FeMultiply}
6976                                                                                }
6977                                                                            }
6978                                                                        },
6979                                                                        1 => {
6980                                                                            0 => {
6981                                                                                0 => {
6982                                                                                    0 => {Elements::FeMultiplyBeta},
6983                                                                                    1 => {Elements::FeInvert}
6984                                                                                },
6985                                                                                1 => {
6986                                                                                    0 => {Elements::FeSquareRoot},
6987                                                                                    1 => {Elements::FeIsZero}
6988                                                                                }
6989                                                                            },
6990                                                                            1 => {
6991                                                                                0 => {
6992                                                                                    0 => {Elements::FeIsOdd},
6993                                                                                    1 => {}
6994                                                                                },
6995                                                                                1 => {
6996                                                                                    0 => {Elements::HashToCurve},
6997                                                                                    1 => {Elements::Swu}
6998                                                                                }
6999                                                                            }
7000                                                                        }
7001                                                                    },
7002                                                                    1 => {}
7003                                                                }
7004                                                            },
7005                                                            1 => {}
7006                                                        },
7007                                                        1 => {}
7008                                                    },
7009                                                    1 => {}
7010                                                }
7011                                            }
7012                                        }
7013                                    },
7014                                    1 => {
7015                                        0 => {Elements::CheckSigVerify},
7016                                        1 => {
7017                                            0 => {
7018                                                0 => {Elements::Bip0340Verify},
7019                                                1 => {}
7020                                            },
7021                                            1 => {}
7022                                        }
7023                                    }
7024                                },
7025                                1 => {
7026                                    0 => {},
7027                                    1 => {
7028                                        0 => {Elements::ParseLock},
7029                                        1 => {
7030                                            0 => {
7031                                                0 => {Elements::ParseSequence},
7032                                                1 => {Elements::TapdataInit}
7033                                            },
7034                                            1 => {}
7035                                        }
7036                                    }
7037                                }
7038                            },
7039                            1 => {}
7040                        },
7041                        1 => {}
7042                    }
7043                }
7044            },
7045            1 => {
7046                0 => {
7047                    0 => {Elements::SigAllHash},
7048                    1 => {
7049                        0 => {
7050                            0 => {Elements::TxHash},
7051                            1 => {Elements::TapEnvHash}
7052                        },
7053                        1 => {
7054                            0 => {
7055                                0 => {
7056                                    0 => {
7057                                        0 => {Elements::OutputsHash},
7058                                        1 => {Elements::InputsHash}
7059                                    },
7060                                    1 => {
7061                                        0 => {Elements::IssuancesHash},
7062                                        1 => {Elements::InputUtxosHash}
7063                                    }
7064                                },
7065                                1 => {
7066                                    0 => {
7067                                        0 => {
7068                                            0 => {Elements::OutputHash},
7069                                            1 => {Elements::OutputAmountsHash}
7070                                        },
7071                                        1 => {
7072                                            0 => {Elements::OutputScriptsHash},
7073                                            1 => {Elements::OutputNoncesHash}
7074                                        }
7075                                    },
7076                                    1 => {
7077                                        0 => {
7078                                            0 => {Elements::OutputRangeProofsHash},
7079                                            1 => {Elements::OutputSurjectionProofsHash}
7080                                        },
7081                                        1 => {
7082                                            0 => {Elements::InputHash},
7083                                            1 => {Elements::InputOutpointsHash}
7084                                        }
7085                                    }
7086                                }
7087                            },
7088                            1 => {
7089                                0 => {
7090                                    0 => {
7091                                        0 => {
7092                                            0 => {
7093                                                0 => {
7094                                                    0 => {
7095                                                        0 => {
7096                                                            0 => {Elements::InputSequencesHash},
7097                                                            1 => {Elements::InputAnnexesHash}
7098                                                        },
7099                                                        1 => {
7100                                                            0 => {Elements::InputScriptSigsHash},
7101                                                            1 => {Elements::IssuanceHash}
7102                                                        }
7103                                                    },
7104                                                    1 => {
7105                                                        0 => {
7106                                                            0 => {Elements::IssuanceAssetAmountsHash},
7107                                                            1 => {Elements::IssuanceTokenAmountsHash}
7108                                                        },
7109                                                        1 => {
7110                                                            0 => {Elements::IssuanceRangeProofsHash},
7111                                                            1 => {Elements::IssuanceBlindingEntropyHash}
7112                                                        }
7113                                                    }
7114                                                },
7115                                                1 => {
7116                                                    0 => {
7117                                                        0 => {
7118                                                            0 => {Elements::InputUtxoHash},
7119                                                            1 => {Elements::InputAmountsHash}
7120                                                        },
7121                                                        1 => {
7122                                                            0 => {Elements::InputScriptsHash},
7123                                                            1 => {Elements::TapleafHash}
7124                                                        }
7125                                                    },
7126                                                    1 => {
7127                                                        0 => {
7128                                                            0 => {Elements::TappathHash},
7129                                                            1 => {Elements::OutpointHash}
7130                                                        },
7131                                                        1 => {
7132                                                            0 => {Elements::AssetAmountHash},
7133                                                            1 => {Elements::NonceHash}
7134                                                        }
7135                                                    }
7136                                                }
7137                                            },
7138                                            1 => {
7139                                                0 => {
7140                                                    0 => {
7141                                                        0 => {
7142                                                            0 => {
7143                                                                0 => {Elements::AnnexHash},
7144                                                                1 => {Elements::BuildTapleafSimplicity}
7145                                                            },
7146                                                            1 => {
7147                                                                0 => {Elements::BuildTapbranch},
7148                                                                1 => {Elements::BuildTaptweak}
7149                                                            }
7150                                                        },
7151                                                        1 => {}
7152                                                    },
7153                                                    1 => {}
7154                                                },
7155                                                1 => {}
7156                                            }
7157                                        },
7158                                        1 => {}
7159                                    },
7160                                    1 => {}
7161                                },
7162                                1 => {}
7163                            }
7164                        }
7165                    }
7166                },
7167                1 => {
7168                    0 => {
7169                        0 => {
7170                            0 => {Elements::CheckLockHeight},
7171                            1 => {
7172                                0 => {
7173                                    0 => {Elements::CheckLockTime},
7174                                    1 => {Elements::BrokenDoNotUseCheckLockDistance}
7175                                },
7176                                1 => {
7177                                    0 => {
7178                                        0 => {
7179                                            0 => {
7180                                                0 => {Elements::BrokenDoNotUseCheckLockDuration},
7181                                                1 => {Elements::TxLockHeight}
7182                                            },
7183                                            1 => {
7184                                                0 => {Elements::TxLockTime},
7185                                                1 => {Elements::BrokenDoNotUseTxLockDistance}
7186                                            }
7187                                        },
7188                                        1 => {
7189                                            0 => {
7190                                                0 => {
7191                                                    0 => {Elements::BrokenDoNotUseTxLockDuration},
7192                                                    1 => {Elements::TxIsFinal}
7193                                                },
7194                                                1 => {}
7195                                            },
7196                                            1 => {}
7197                                        }
7198                                    },
7199                                    1 => {}
7200                                }
7201                            }
7202                        },
7203                        1 => {
7204                            0 => {Elements::Issuance},
7205                            1 => {
7206                                0 => {
7207                                    0 => {Elements::IssuanceAsset},
7208                                    1 => {Elements::IssuanceToken}
7209                                },
7210                                1 => {
7211                                    0 => {
7212                                        0 => {
7213                                            0 => {
7214                                                0 => {Elements::IssuanceEntropy},
7215                                                1 => {Elements::CalculateIssuanceEntropy}
7216                                            },
7217                                            1 => {
7218                                                0 => {Elements::CalculateAsset},
7219                                                1 => {Elements::CalculateExplicitToken}
7220                                            }
7221                                        },
7222                                        1 => {
7223                                            0 => {
7224                                                0 => {
7225                                                    0 => {Elements::CalculateConfidentialToken},
7226                                                    1 => {Elements::LbtcAsset}
7227                                                },
7228                                                1 => {}
7229                                            },
7230                                            1 => {}
7231                                        }
7232                                    },
7233                                    1 => {}
7234                                }
7235                            }
7236                        }
7237                    },
7238                    1 => {
7239                        0 => {
7240                            0 => {
7241                                0 => {
7242                                    0 => {
7243                                        0 => {Elements::ScriptCMR},
7244                                        1 => {
7245                                            0 => {
7246                                                0 => {Elements::InternalKey},
7247                                                1 => {Elements::CurrentIndex}
7248                                            },
7249                                            1 => {
7250                                                0 => {
7251                                                    0 => {
7252                                                        0 => {
7253                                                            0 => {Elements::NumInputs},
7254                                                            1 => {Elements::NumOutputs}
7255                                                        },
7256                                                        1 => {
7257                                                            0 => {Elements::LockTime},
7258                                                            1 => {Elements::OutputAsset}
7259                                                        }
7260                                                    },
7261                                                    1 => {
7262                                                        0 => {
7263                                                            0 => {
7264                                                                0 => {Elements::OutputAmount},
7265                                                                1 => {Elements::OutputNonce}
7266                                                            },
7267                                                            1 => {
7268                                                                0 => {Elements::OutputScriptHash},
7269                                                                1 => {Elements::OutputNullDatum}
7270                                                            }
7271                                                        },
7272                                                        1 => {
7273                                                            0 => {
7274                                                                0 => {Elements::OutputIsFee},
7275                                                                1 => {Elements::OutputSurjectionProof}
7276                                                            },
7277                                                            1 => {
7278                                                                0 => {Elements::OutputRangeProof},
7279                                                                1 => {Elements::TotalFee}
7280                                                            }
7281                                                        }
7282                                                    }
7283                                                },
7284                                                1 => {
7285                                                    0 => {
7286                                                        0 => {
7287                                                            0 => {
7288                                                                0 => {
7289                                                                    0 => {
7290                                                                        0 => {
7291                                                                            0 => {
7292                                                                                0 => {Elements::CurrentPegin},
7293                                                                                1 => {Elements::CurrentPrevOutpoint}
7294                                                                            },
7295                                                                            1 => {
7296                                                                                0 => {Elements::CurrentAsset},
7297                                                                                1 => {Elements::CurrentAmount}
7298                                                                            }
7299                                                                        },
7300                                                                        1 => {
7301                                                                            0 => {
7302                                                                                0 => {Elements::CurrentScriptHash},
7303                                                                                1 => {Elements::CurrentSequence}
7304                                                                            },
7305                                                                            1 => {
7306                                                                                0 => {Elements::CurrentAnnexHash},
7307                                                                                1 => {Elements::CurrentScriptSigHash}
7308                                                                            }
7309                                                                        }
7310                                                                    },
7311                                                                    1 => {
7312                                                                        0 => {
7313                                                                            0 => {
7314                                                                                0 => {Elements::CurrentReissuanceBlinding},
7315                                                                                1 => {Elements::CurrentNewIssuanceContract}
7316                                                                            },
7317                                                                            1 => {
7318                                                                                0 => {Elements::CurrentReissuanceEntropy},
7319                                                                                1 => {Elements::CurrentIssuanceAssetAmount}
7320                                                                            }
7321                                                                        },
7322                                                                        1 => {
7323                                                                            0 => {
7324                                                                                0 => {Elements::CurrentIssuanceTokenAmount},
7325                                                                                1 => {Elements::CurrentIssuanceAssetProof}
7326                                                                            },
7327                                                                            1 => {
7328                                                                                0 => {Elements::CurrentIssuanceTokenProof},
7329                                                                                1 => {Elements::InputPegin}
7330                                                                            }
7331                                                                        }
7332                                                                    }
7333                                                                },
7334                                                                1 => {
7335                                                                    0 => {
7336                                                                        0 => {
7337                                                                            0 => {
7338                                                                                0 => {
7339                                                                                    0 => {Elements::InputPrevOutpoint},
7340                                                                                    1 => {Elements::InputAsset}
7341                                                                                },
7342                                                                                1 => {
7343                                                                                    0 => {Elements::InputAmount},
7344                                                                                    1 => {Elements::InputScriptHash}
7345                                                                                }
7346                                                                            },
7347                                                                            1 => {
7348                                                                                0 => {
7349                                                                                    0 => {Elements::InputSequence},
7350                                                                                    1 => {Elements::InputAnnexHash}
7351                                                                                },
7352                                                                                1 => {
7353                                                                                    0 => {Elements::InputScriptSigHash},
7354                                                                                    1 => {Elements::ReissuanceBlinding}
7355                                                                                }
7356                                                                            }
7357                                                                        },
7358                                                                        1 => {
7359                                                                            0 => {
7360                                                                                0 => {
7361                                                                                    0 => {Elements::NewIssuanceContract},
7362                                                                                    1 => {Elements::ReissuanceEntropy}
7363                                                                                },
7364                                                                                1 => {
7365                                                                                    0 => {Elements::IssuanceAssetAmount},
7366                                                                                    1 => {Elements::IssuanceTokenAmount}
7367                                                                                }
7368                                                                            },
7369                                                                            1 => {
7370                                                                                0 => {
7371                                                                                    0 => {Elements::IssuanceAssetProof},
7372                                                                                    1 => {Elements::IssuanceTokenProof}
7373                                                                                },
7374                                                                                1 => {
7375                                                                                    0 => {Elements::TapleafVersion},
7376                                                                                    1 => {Elements::Tappath}
7377                                                                                }
7378                                                                            }
7379                                                                        }
7380                                                                    },
7381                                                                    1 => {
7382                                                                        0 => {
7383                                                                            0 => {
7384                                                                                0 => {
7385                                                                                    0 => {Elements::Version},
7386                                                                                    1 => {Elements::GenesisBlockHash}
7387                                                                                },
7388                                                                                1 => {
7389                                                                                    0 => {Elements::TransactionId},
7390                                                                                    1 => {}
7391                                                                                }
7392                                                                            },
7393                                                                            1 => {}
7394                                                                        },
7395                                                                        1 => {}
7396                                                                    }
7397                                                                }
7398                                                            },
7399                                                            1 => {}
7400                                                        },
7401                                                        1 => {}
7402                                                    },
7403                                                    1 => {}
7404                                                }
7405                                            }
7406                                        }
7407                                    },
7408                                    1 => {}
7409                                },
7410                                1 => {}
7411                            },
7412                            1 => {}
7413                        },
7414                        1 => {}
7415                    }
7416                }
7417            }
7418        })
7419    }
7420
7421    fn cost(&self) -> Cost {
7422        match self {
7423            Elements::Add16 => Cost::from_milliweight(108),
7424            Elements::Add32 => Cost::from_milliweight(117),
7425            Elements::Add64 => Cost::from_milliweight(109),
7426            Elements::Add8 => Cost::from_milliweight(112),
7427            Elements::All16 => Cost::from_milliweight(62),
7428            Elements::All32 => Cost::from_milliweight(65),
7429            Elements::All64 => Cost::from_milliweight(79),
7430            Elements::All8 => Cost::from_milliweight(76),
7431            Elements::And1 => Cost::from_milliweight(79),
7432            Elements::And16 => Cost::from_milliweight(88),
7433            Elements::And32 => Cost::from_milliweight(94),
7434            Elements::And64 => Cost::from_milliweight(93),
7435            Elements::And8 => Cost::from_milliweight(91),
7436            Elements::AnnexHash => Cost::from_milliweight(241),
7437            Elements::AssetAmountHash => Cost::from_milliweight(308),
7438            Elements::Bip0340Verify => Cost::from_milliweight(49087),
7439            Elements::BrokenDoNotUseCheckLockDistance => Cost::from_milliweight(105),
7440            Elements::BrokenDoNotUseCheckLockDuration => Cost::from_milliweight(102),
7441            Elements::BrokenDoNotUseTxLockDistance => Cost::from_milliweight(91),
7442            Elements::BrokenDoNotUseTxLockDuration => Cost::from_milliweight(84),
7443            Elements::BuildTapbranch => Cost::from_milliweight(2563),
7444            Elements::BuildTapleafSimplicity => Cost::from_milliweight(1843),
7445            Elements::BuildTaptweak => Cost::from_milliweight(92813),
7446            Elements::CalculateAsset => Cost::from_milliweight(807),
7447            Elements::CalculateConfidentialToken => Cost::from_milliweight(707),
7448            Elements::CalculateExplicitToken => Cost::from_milliweight(771),
7449            Elements::CalculateIssuanceEntropy => Cost::from_milliweight(2095),
7450            Elements::Ch1 => Cost::from_milliweight(78),
7451            Elements::Ch16 => Cost::from_milliweight(94),
7452            Elements::Ch32 => Cost::from_milliweight(91),
7453            Elements::Ch64 => Cost::from_milliweight(91),
7454            Elements::Ch8 => Cost::from_milliweight(77),
7455            Elements::CheckLockHeight => Cost::from_milliweight(77),
7456            Elements::CheckLockTime => Cost::from_milliweight(93),
7457            Elements::CheckSigVerify => Cost::from_milliweight(50000),
7458            Elements::Complement1 => Cost::from_milliweight(79),
7459            Elements::Complement16 => Cost::from_milliweight(75),
7460            Elements::Complement32 => Cost::from_milliweight(93),
7461            Elements::Complement64 => Cost::from_milliweight(88),
7462            Elements::Complement8 => Cost::from_milliweight(80),
7463            Elements::CurrentAmount => Cost::from_milliweight(225),
7464            Elements::CurrentAnnexHash => Cost::from_milliweight(79),
7465            Elements::CurrentAsset => Cost::from_milliweight(171),
7466            Elements::CurrentIndex => Cost::from_milliweight(88),
7467            Elements::CurrentIssuanceAssetAmount => Cost::from_milliweight(165),
7468            Elements::CurrentIssuanceAssetProof => Cost::from_milliweight(140),
7469            Elements::CurrentIssuanceTokenAmount => Cost::from_milliweight(188),
7470            Elements::CurrentIssuanceTokenProof => Cost::from_milliweight(144),
7471            Elements::CurrentNewIssuanceContract => Cost::from_milliweight(145),
7472            Elements::CurrentPegin => Cost::from_milliweight(147),
7473            Elements::CurrentPrevOutpoint => Cost::from_milliweight(156),
7474            Elements::CurrentReissuanceBlinding => Cost::from_milliweight(94),
7475            Elements::CurrentReissuanceEntropy => Cost::from_milliweight(85),
7476            Elements::CurrentScriptHash => Cost::from_milliweight(134),
7477            Elements::CurrentScriptSigHash => Cost::from_milliweight(139),
7478            Elements::CurrentSequence => Cost::from_milliweight(89),
7479            Elements::Decompress => Cost::from_milliweight(10861),
7480            Elements::Decrement16 => Cost::from_milliweight(85),
7481            Elements::Decrement32 => Cost::from_milliweight(91),
7482            Elements::Decrement64 => Cost::from_milliweight(89),
7483            Elements::Decrement8 => Cost::from_milliweight(79),
7484            Elements::DivMod128_64 => Cost::from_milliweight(208),
7485            Elements::DivMod16 => Cost::from_milliweight(118),
7486            Elements::DivMod32 => Cost::from_milliweight(115),
7487            Elements::DivMod64 => Cost::from_milliweight(86),
7488            Elements::DivMod8 => Cost::from_milliweight(128),
7489            Elements::Divide16 => Cost::from_milliweight(98),
7490            Elements::Divide32 => Cost::from_milliweight(100),
7491            Elements::Divide64 => Cost::from_milliweight(101),
7492            Elements::Divide8 => Cost::from_milliweight(108),
7493            Elements::Divides16 => Cost::from_milliweight(93),
7494            Elements::Divides32 => Cost::from_milliweight(87),
7495            Elements::Divides64 => Cost::from_milliweight(91),
7496            Elements::Divides8 => Cost::from_milliweight(98),
7497            Elements::Eq1 => Cost::from_milliweight(74),
7498            Elements::Eq16 => Cost::from_milliweight(84),
7499            Elements::Eq256 => Cost::from_milliweight(225),
7500            Elements::Eq32 => Cost::from_milliweight(88),
7501            Elements::Eq64 => Cost::from_milliweight(100),
7502            Elements::Eq8 => Cost::from_milliweight(95),
7503            Elements::FeAdd => Cost::from_milliweight(755),
7504            Elements::FeInvert => Cost::from_milliweight(3175),
7505            Elements::FeIsOdd => Cost::from_milliweight(290),
7506            Elements::FeIsZero => Cost::from_milliweight(268),
7507            Elements::FeMultiply => Cost::from_milliweight(808),
7508            Elements::FeMultiplyBeta => Cost::from_milliweight(579),
7509            Elements::FeNegate => Cost::from_milliweight(531),
7510            Elements::FeNormalize => Cost::from_milliweight(521),
7511            Elements::FeSquare => Cost::from_milliweight(556),
7512            Elements::FeSquareRoot => Cost::from_milliweight(10275),
7513            Elements::FullAdd16 => Cost::from_milliweight(121),
7514            Elements::FullAdd32 => Cost::from_milliweight(119),
7515            Elements::FullAdd64 => Cost::from_milliweight(121),
7516            Elements::FullAdd8 => Cost::from_milliweight(127),
7517            Elements::FullDecrement16 => Cost::from_milliweight(92),
7518            Elements::FullDecrement32 => Cost::from_milliweight(107),
7519            Elements::FullDecrement64 => Cost::from_milliweight(81),
7520            Elements::FullDecrement8 => Cost::from_milliweight(91),
7521            Elements::FullIncrement16 => Cost::from_milliweight(89),
7522            Elements::FullIncrement32 => Cost::from_milliweight(104),
7523            Elements::FullIncrement64 => Cost::from_milliweight(99),
7524            Elements::FullIncrement8 => Cost::from_milliweight(72),
7525            Elements::FullLeftShift16_1 => Cost::from_milliweight(83),
7526            Elements::FullLeftShift16_2 => Cost::from_milliweight(83),
7527            Elements::FullLeftShift16_4 => Cost::from_milliweight(89),
7528            Elements::FullLeftShift16_8 => Cost::from_milliweight(65),
7529            Elements::FullLeftShift32_1 => Cost::from_milliweight(84),
7530            Elements::FullLeftShift32_16 => Cost::from_milliweight(81),
7531            Elements::FullLeftShift32_2 => Cost::from_milliweight(67),
7532            Elements::FullLeftShift32_4 => Cost::from_milliweight(84),
7533            Elements::FullLeftShift32_8 => Cost::from_milliweight(91),
7534            Elements::FullLeftShift64_1 => Cost::from_milliweight(99),
7535            Elements::FullLeftShift64_16 => Cost::from_milliweight(90),
7536            Elements::FullLeftShift64_2 => Cost::from_milliweight(94),
7537            Elements::FullLeftShift64_32 => Cost::from_milliweight(86),
7538            Elements::FullLeftShift64_4 => Cost::from_milliweight(94),
7539            Elements::FullLeftShift64_8 => Cost::from_milliweight(86),
7540            Elements::FullLeftShift8_1 => Cost::from_milliweight(96),
7541            Elements::FullLeftShift8_2 => Cost::from_milliweight(96),
7542            Elements::FullLeftShift8_4 => Cost::from_milliweight(85),
7543            Elements::FullMultiply16 => Cost::from_milliweight(112),
7544            Elements::FullMultiply32 => Cost::from_milliweight(96),
7545            Elements::FullMultiply64 => Cost::from_milliweight(127),
7546            Elements::FullMultiply8 => Cost::from_milliweight(109),
7547            Elements::FullRightShift16_1 => Cost::from_milliweight(80),
7548            Elements::FullRightShift16_2 => Cost::from_milliweight(79),
7549            Elements::FullRightShift16_4 => Cost::from_milliweight(88),
7550            Elements::FullRightShift16_8 => Cost::from_milliweight(57),
7551            Elements::FullRightShift32_1 => Cost::from_milliweight(74),
7552            Elements::FullRightShift32_16 => Cost::from_milliweight(64),
7553            Elements::FullRightShift32_2 => Cost::from_milliweight(63),
7554            Elements::FullRightShift32_4 => Cost::from_milliweight(71),
7555            Elements::FullRightShift32_8 => Cost::from_milliweight(84),
7556            Elements::FullRightShift64_1 => Cost::from_milliweight(99),
7557            Elements::FullRightShift64_16 => Cost::from_milliweight(86),
7558            Elements::FullRightShift64_2 => Cost::from_milliweight(86),
7559            Elements::FullRightShift64_32 => Cost::from_milliweight(73),
7560            Elements::FullRightShift64_4 => Cost::from_milliweight(93),
7561            Elements::FullRightShift64_8 => Cost::from_milliweight(99),
7562            Elements::FullRightShift8_1 => Cost::from_milliweight(88),
7563            Elements::FullRightShift8_2 => Cost::from_milliweight(86),
7564            Elements::FullRightShift8_4 => Cost::from_milliweight(89),
7565            Elements::FullSubtract16 => Cost::from_milliweight(121),
7566            Elements::FullSubtract32 => Cost::from_milliweight(116),
7567            Elements::FullSubtract64 => Cost::from_milliweight(98),
7568            Elements::FullSubtract8 => Cost::from_milliweight(126),
7569            Elements::GeIsOnCurve => Cost::from_milliweight(642),
7570            Elements::GeNegate => Cost::from_milliweight(945),
7571            Elements::GejAdd => Cost::from_milliweight(2897),
7572            Elements::GejDouble => Cost::from_milliweight(1764),
7573            Elements::GejEquiv => Cost::from_milliweight(2220),
7574            Elements::GejGeAdd => Cost::from_milliweight(2477),
7575            Elements::GejGeAddEx => Cost::from_milliweight(2719),
7576            Elements::GejGeEquiv => Cost::from_milliweight(1765),
7577            Elements::GejInfinity => Cost::from_milliweight(716),
7578            Elements::GejIsInfinity => Cost::from_milliweight(666),
7579            Elements::GejIsOnCurve => Cost::from_milliweight(1016),
7580            Elements::GejNegate => Cost::from_milliweight(1381),
7581            Elements::GejNormalize => Cost::from_milliweight(4099),
7582            Elements::GejRescale => Cost::from_milliweight(1908),
7583            Elements::GejXEquiv => Cost::from_milliweight(1047),
7584            Elements::GejYIsOdd => Cost::from_milliweight(3651),
7585            Elements::Generate => Cost::from_milliweight(50071),
7586            Elements::GenesisBlockHash => Cost::from_milliweight(148),
7587            Elements::HashToCurve => Cost::from_milliweight(68094),
7588            Elements::High1 => Cost::from_milliweight(57),
7589            Elements::High16 => Cost::from_milliweight(66),
7590            Elements::High32 => Cost::from_milliweight(58),
7591            Elements::High64 => Cost::from_milliweight(68),
7592            Elements::High8 => Cost::from_milliweight(59),
7593            Elements::Increment16 => Cost::from_milliweight(69),
7594            Elements::Increment32 => Cost::from_milliweight(92),
7595            Elements::Increment64 => Cost::from_milliweight(87),
7596            Elements::Increment8 => Cost::from_milliweight(85),
7597            Elements::InputAmount => Cost::from_milliweight(285),
7598            Elements::InputAmountsHash => Cost::from_milliweight(140),
7599            Elements::InputAnnexHash => Cost::from_milliweight(90),
7600            Elements::InputAnnexesHash => Cost::from_milliweight(155),
7601            Elements::InputAsset => Cost::from_milliweight(162),
7602            Elements::InputHash => Cost::from_milliweight(965),
7603            Elements::InputOutpointsHash => Cost::from_milliweight(142),
7604            Elements::InputPegin => Cost::from_milliweight(151),
7605            Elements::InputPrevOutpoint => Cost::from_milliweight(160),
7606            Elements::InputScriptHash => Cost::from_milliweight(147),
7607            Elements::InputScriptSigHash => Cost::from_milliweight(153),
7608            Elements::InputScriptSigsHash => Cost::from_milliweight(138),
7609            Elements::InputScriptsHash => Cost::from_milliweight(137),
7610            Elements::InputSequence => Cost::from_milliweight(99),
7611            Elements::InputSequencesHash => Cost::from_milliweight(142),
7612            Elements::InputUtxoHash => Cost::from_milliweight(1996),
7613            Elements::InputUtxosHash => Cost::from_milliweight(140),
7614            Elements::InputsHash => Cost::from_milliweight(154),
7615            Elements::InternalKey => Cost::from_milliweight(152),
7616            Elements::IsOne16 => Cost::from_milliweight(82),
7617            Elements::IsOne32 => Cost::from_milliweight(65),
7618            Elements::IsOne64 => Cost::from_milliweight(83),
7619            Elements::IsOne8 => Cost::from_milliweight(91),
7620            Elements::IsZero16 => Cost::from_milliweight(75),
7621            Elements::IsZero32 => Cost::from_milliweight(85),
7622            Elements::IsZero64 => Cost::from_milliweight(80),
7623            Elements::IsZero8 => Cost::from_milliweight(77),
7624            Elements::Issuance => Cost::from_milliweight(91),
7625            Elements::IssuanceAsset => Cost::from_milliweight(151),
7626            Elements::IssuanceAssetAmount => Cost::from_milliweight(162),
7627            Elements::IssuanceAssetAmountsHash => Cost::from_milliweight(139),
7628            Elements::IssuanceAssetProof => Cost::from_milliweight(150),
7629            Elements::IssuanceBlindingEntropyHash => Cost::from_milliweight(129),
7630            Elements::IssuanceEntropy => Cost::from_milliweight(153),
7631            Elements::IssuanceHash => Cost::from_milliweight(3738),
7632            Elements::IssuanceRangeProofsHash => Cost::from_milliweight(129),
7633            Elements::IssuanceToken => Cost::from_milliweight(149),
7634            Elements::IssuanceTokenAmount => Cost::from_milliweight(196),
7635            Elements::IssuanceTokenAmountsHash => Cost::from_milliweight(138),
7636            Elements::IssuanceTokenProof => Cost::from_milliweight(150),
7637            Elements::IssuancesHash => Cost::from_milliweight(141),
7638            Elements::LbtcAsset => Cost::from_milliweight(145),
7639            Elements::Le16 => Cost::from_milliweight(112),
7640            Elements::Le32 => Cost::from_milliweight(93),
7641            Elements::Le64 => Cost::from_milliweight(93),
7642            Elements::Le8 => Cost::from_milliweight(109),
7643            Elements::LeftExtend16_32 => Cost::from_milliweight(86),
7644            Elements::LeftExtend16_64 => Cost::from_milliweight(89),
7645            Elements::LeftExtend1_16 => Cost::from_milliweight(67),
7646            Elements::LeftExtend1_32 => Cost::from_milliweight(60),
7647            Elements::LeftExtend1_64 => Cost::from_milliweight(76),
7648            Elements::LeftExtend1_8 => Cost::from_milliweight(65),
7649            Elements::LeftExtend32_64 => Cost::from_milliweight(63),
7650            Elements::LeftExtend8_16 => Cost::from_milliweight(88),
7651            Elements::LeftExtend8_32 => Cost::from_milliweight(90),
7652            Elements::LeftExtend8_64 => Cost::from_milliweight(107),
7653            Elements::LeftPadHigh16_32 => Cost::from_milliweight(91),
7654            Elements::LeftPadHigh16_64 => Cost::from_milliweight(110),
7655            Elements::LeftPadHigh1_16 => Cost::from_milliweight(141),
7656            Elements::LeftPadHigh1_32 => Cost::from_milliweight(263),
7657            Elements::LeftPadHigh1_64 => Cost::from_milliweight(422),
7658            Elements::LeftPadHigh1_8 => Cost::from_milliweight(99),
7659            Elements::LeftPadHigh32_64 => Cost::from_milliweight(93),
7660            Elements::LeftPadHigh8_16 => Cost::from_milliweight(88),
7661            Elements::LeftPadHigh8_32 => Cost::from_milliweight(103),
7662            Elements::LeftPadHigh8_64 => Cost::from_milliweight(136),
7663            Elements::LeftPadLow16_32 => Cost::from_milliweight(69),
7664            Elements::LeftPadLow16_64 => Cost::from_milliweight(106),
7665            Elements::LeftPadLow1_16 => Cost::from_milliweight(65),
7666            Elements::LeftPadLow1_32 => Cost::from_milliweight(63),
7667            Elements::LeftPadLow1_64 => Cost::from_milliweight(61),
7668            Elements::LeftPadLow1_8 => Cost::from_milliweight(56),
7669            Elements::LeftPadLow32_64 => Cost::from_milliweight(91),
7670            Elements::LeftPadLow8_16 => Cost::from_milliweight(66),
7671            Elements::LeftPadLow8_32 => Cost::from_milliweight(61),
7672            Elements::LeftPadLow8_64 => Cost::from_milliweight(112),
7673            Elements::LeftRotate16 => Cost::from_milliweight(77),
7674            Elements::LeftRotate32 => Cost::from_milliweight(106),
7675            Elements::LeftRotate64 => Cost::from_milliweight(98),
7676            Elements::LeftRotate8 => Cost::from_milliweight(88),
7677            Elements::LeftShift16 => Cost::from_milliweight(72),
7678            Elements::LeftShift32 => Cost::from_milliweight(78),
7679            Elements::LeftShift64 => Cost::from_milliweight(82),
7680            Elements::LeftShift8 => Cost::from_milliweight(91),
7681            Elements::LeftShiftWith16 => Cost::from_milliweight(83),
7682            Elements::LeftShiftWith32 => Cost::from_milliweight(95),
7683            Elements::LeftShiftWith64 => Cost::from_milliweight(103),
7684            Elements::LeftShiftWith8 => Cost::from_milliweight(107),
7685            Elements::Leftmost16_1 => Cost::from_milliweight(93),
7686            Elements::Leftmost16_2 => Cost::from_milliweight(90),
7687            Elements::Leftmost16_4 => Cost::from_milliweight(75),
7688            Elements::Leftmost16_8 => Cost::from_milliweight(71),
7689            Elements::Leftmost32_1 => Cost::from_milliweight(77),
7690            Elements::Leftmost32_16 => Cost::from_milliweight(102),
7691            Elements::Leftmost32_2 => Cost::from_milliweight(66),
7692            Elements::Leftmost32_4 => Cost::from_milliweight(52),
7693            Elements::Leftmost32_8 => Cost::from_milliweight(103),
7694            Elements::Leftmost64_1 => Cost::from_milliweight(78),
7695            Elements::Leftmost64_16 => Cost::from_milliweight(88),
7696            Elements::Leftmost64_2 => Cost::from_milliweight(71),
7697            Elements::Leftmost64_32 => Cost::from_milliweight(90),
7698            Elements::Leftmost64_4 => Cost::from_milliweight(79),
7699            Elements::Leftmost64_8 => Cost::from_milliweight(86),
7700            Elements::Leftmost8_1 => Cost::from_milliweight(90),
7701            Elements::Leftmost8_2 => Cost::from_milliweight(90),
7702            Elements::Leftmost8_4 => Cost::from_milliweight(87),
7703            Elements::LinearCombination1 => Cost::from_milliweight(84674),
7704            Elements::LinearVerify1 => Cost::from_milliweight(43364),
7705            Elements::LockTime => Cost::from_milliweight(85),
7706            Elements::Low1 => Cost::from_milliweight(38),
7707            Elements::Low16 => Cost::from_milliweight(69),
7708            Elements::Low32 => Cost::from_milliweight(62),
7709            Elements::Low64 => Cost::from_milliweight(47),
7710            Elements::Low8 => Cost::from_milliweight(47),
7711            Elements::Lt16 => Cost::from_milliweight(123),
7712            Elements::Lt32 => Cost::from_milliweight(107),
7713            Elements::Lt64 => Cost::from_milliweight(76),
7714            Elements::Lt8 => Cost::from_milliweight(107),
7715            Elements::Maj1 => Cost::from_milliweight(62),
7716            Elements::Maj16 => Cost::from_milliweight(80),
7717            Elements::Maj32 => Cost::from_milliweight(96),
7718            Elements::Maj64 => Cost::from_milliweight(93),
7719            Elements::Maj8 => Cost::from_milliweight(94),
7720            Elements::Max16 => Cost::from_milliweight(114),
7721            Elements::Max32 => Cost::from_milliweight(92),
7722            Elements::Max64 => Cost::from_milliweight(104),
7723            Elements::Max8 => Cost::from_milliweight(96),
7724            Elements::Median16 => Cost::from_milliweight(123),
7725            Elements::Median32 => Cost::from_milliweight(101),
7726            Elements::Median64 => Cost::from_milliweight(109),
7727            Elements::Median8 => Cost::from_milliweight(122),
7728            Elements::Min16 => Cost::from_milliweight(97),
7729            Elements::Min32 => Cost::from_milliweight(113),
7730            Elements::Min64 => Cost::from_milliweight(102),
7731            Elements::Min8 => Cost::from_milliweight(99),
7732            Elements::Modulo16 => Cost::from_milliweight(103),
7733            Elements::Modulo32 => Cost::from_milliweight(102),
7734            Elements::Modulo64 => Cost::from_milliweight(85),
7735            Elements::Modulo8 => Cost::from_milliweight(102),
7736            Elements::Multiply16 => Cost::from_milliweight(90),
7737            Elements::Multiply32 => Cost::from_milliweight(90),
7738            Elements::Multiply64 => Cost::from_milliweight(85),
7739            Elements::Multiply8 => Cost::from_milliweight(93),
7740            Elements::Negate16 => Cost::from_milliweight(70),
7741            Elements::Negate32 => Cost::from_milliweight(85),
7742            Elements::Negate64 => Cost::from_milliweight(94),
7743            Elements::Negate8 => Cost::from_milliweight(91),
7744            Elements::NewIssuanceContract => Cost::from_milliweight(157),
7745            Elements::NonceHash => Cost::from_milliweight(317),
7746            Elements::NumInputs => Cost::from_milliweight(86),
7747            Elements::NumOutputs => Cost::from_milliweight(79),
7748            Elements::One16 => Cost::from_milliweight(60),
7749            Elements::One32 => Cost::from_milliweight(59),
7750            Elements::One64 => Cost::from_milliweight(59),
7751            Elements::One8 => Cost::from_milliweight(62),
7752            Elements::Or1 => Cost::from_milliweight(77),
7753            Elements::Or16 => Cost::from_milliweight(94),
7754            Elements::Or32 => Cost::from_milliweight(105),
7755            Elements::Or64 => Cost::from_milliweight(99),
7756            Elements::Or8 => Cost::from_milliweight(93),
7757            Elements::OutpointHash => Cost::from_milliweight(319),
7758            Elements::OutputAmount => Cost::from_milliweight(298),
7759            Elements::OutputAmountsHash => Cost::from_milliweight(140),
7760            Elements::OutputAsset => Cost::from_milliweight(170),
7761            Elements::OutputHash => Cost::from_milliweight(2849),
7762            Elements::OutputIsFee => Cost::from_milliweight(92),
7763            Elements::OutputNonce => Cost::from_milliweight(196),
7764            Elements::OutputNoncesHash => Cost::from_milliweight(151),
7765            Elements::OutputNullDatum => Cost::from_milliweight(87),
7766            Elements::OutputRangeProof => Cost::from_milliweight(154),
7767            Elements::OutputRangeProofsHash => Cost::from_milliweight(136),
7768            Elements::OutputScriptHash => Cost::from_milliweight(151),
7769            Elements::OutputScriptsHash => Cost::from_milliweight(142),
7770            Elements::OutputSurjectionProof => Cost::from_milliweight(151),
7771            Elements::OutputSurjectionProofsHash => Cost::from_milliweight(138),
7772            Elements::OutputsHash => Cost::from_milliweight(135),
7773            Elements::ParseLock => Cost::from_milliweight(97),
7774            Elements::ParseSequence => Cost::from_milliweight(116),
7775            Elements::PointVerify1 => Cost::from_milliweight(41494),
7776            Elements::ReissuanceBlinding => Cost::from_milliweight(91),
7777            Elements::ReissuanceEntropy => Cost::from_milliweight(93),
7778            Elements::RightExtend16_32 => Cost::from_milliweight(74),
7779            Elements::RightExtend16_64 => Cost::from_milliweight(82),
7780            Elements::RightExtend32_64 => Cost::from_milliweight(94),
7781            Elements::RightExtend8_16 => Cost::from_milliweight(76),
7782            Elements::RightExtend8_32 => Cost::from_milliweight(106),
7783            Elements::RightExtend8_64 => Cost::from_milliweight(124),
7784            Elements::RightPadHigh16_32 => Cost::from_milliweight(70),
7785            Elements::RightPadHigh16_64 => Cost::from_milliweight(88),
7786            Elements::RightPadHigh1_16 => Cost::from_milliweight(143),
7787            Elements::RightPadHigh1_32 => Cost::from_milliweight(223),
7788            Elements::RightPadHigh1_64 => Cost::from_milliweight(476),
7789            Elements::RightPadHigh1_8 => Cost::from_milliweight(107),
7790            Elements::RightPadHigh32_64 => Cost::from_milliweight(94),
7791            Elements::RightPadHigh8_16 => Cost::from_milliweight(89),
7792            Elements::RightPadHigh8_32 => Cost::from_milliweight(110),
7793            Elements::RightPadHigh8_64 => Cost::from_milliweight(107),
7794            Elements::RightPadLow16_32 => Cost::from_milliweight(71),
7795            Elements::RightPadLow16_64 => Cost::from_milliweight(96),
7796            Elements::RightPadLow1_16 => Cost::from_milliweight(81),
7797            Elements::RightPadLow1_32 => Cost::from_milliweight(75),
7798            Elements::RightPadLow1_64 => Cost::from_milliweight(73),
7799            Elements::RightPadLow1_8 => Cost::from_milliweight(68),
7800            Elements::RightPadLow32_64 => Cost::from_milliweight(80),
7801            Elements::RightPadLow8_16 => Cost::from_milliweight(75),
7802            Elements::RightPadLow8_32 => Cost::from_milliweight(77),
7803            Elements::RightPadLow8_64 => Cost::from_milliweight(82),
7804            Elements::RightRotate16 => Cost::from_milliweight(99),
7805            Elements::RightRotate32 => Cost::from_milliweight(92),
7806            Elements::RightRotate64 => Cost::from_milliweight(93),
7807            Elements::RightRotate8 => Cost::from_milliweight(75),
7808            Elements::RightShift16 => Cost::from_milliweight(84),
7809            Elements::RightShift32 => Cost::from_milliweight(88),
7810            Elements::RightShift64 => Cost::from_milliweight(91),
7811            Elements::RightShift8 => Cost::from_milliweight(88),
7812            Elements::RightShiftWith16 => Cost::from_milliweight(105),
7813            Elements::RightShiftWith32 => Cost::from_milliweight(92),
7814            Elements::RightShiftWith64 => Cost::from_milliweight(97),
7815            Elements::RightShiftWith8 => Cost::from_milliweight(103),
7816            Elements::Rightmost16_1 => Cost::from_milliweight(70),
7817            Elements::Rightmost16_2 => Cost::from_milliweight(82),
7818            Elements::Rightmost16_4 => Cost::from_milliweight(76),
7819            Elements::Rightmost16_8 => Cost::from_milliweight(69),
7820            Elements::Rightmost32_1 => Cost::from_milliweight(90),
7821            Elements::Rightmost32_16 => Cost::from_milliweight(64),
7822            Elements::Rightmost32_2 => Cost::from_milliweight(74),
7823            Elements::Rightmost32_4 => Cost::from_milliweight(92),
7824            Elements::Rightmost32_8 => Cost::from_milliweight(78),
7825            Elements::Rightmost64_1 => Cost::from_milliweight(77),
7826            Elements::Rightmost64_16 => Cost::from_milliweight(86),
7827            Elements::Rightmost64_2 => Cost::from_milliweight(74),
7828            Elements::Rightmost64_32 => Cost::from_milliweight(76),
7829            Elements::Rightmost64_4 => Cost::from_milliweight(70),
7830            Elements::Rightmost64_8 => Cost::from_milliweight(69),
7831            Elements::Rightmost8_1 => Cost::from_milliweight(79),
7832            Elements::Rightmost8_2 => Cost::from_milliweight(98),
7833            Elements::Rightmost8_4 => Cost::from_milliweight(98),
7834            Elements::ScalarAdd => Cost::from_milliweight(739),
7835            Elements::ScalarInvert => Cost::from_milliweight(3193),
7836            Elements::ScalarIsZero => Cost::from_milliweight(271),
7837            Elements::ScalarMultiply => Cost::from_milliweight(774),
7838            Elements::ScalarMultiplyLambda => Cost::from_milliweight(557),
7839            Elements::ScalarNegate => Cost::from_milliweight(490),
7840            Elements::ScalarNormalize => Cost::from_milliweight(472),
7841            Elements::ScalarSquare => Cost::from_milliweight(575),
7842            Elements::Scale => Cost::from_milliweight(72675),
7843            Elements::ScriptCMR => Cost::from_milliweight(136),
7844            Elements::Sha256Block => Cost::from_milliweight(771),
7845            Elements::Sha256Ctx8Add1 => Cost::from_milliweight(642),
7846            Elements::Sha256Ctx8Add128 => Cost::from_milliweight(1779),
7847            Elements::Sha256Ctx8Add16 => Cost::from_milliweight(747),
7848            Elements::Sha256Ctx8Add2 => Cost::from_milliweight(661),
7849            Elements::Sha256Ctx8Add256 => Cost::from_milliweight(2912),
7850            Elements::Sha256Ctx8Add32 => Cost::from_milliweight(896),
7851            Elements::Sha256Ctx8Add4 => Cost::from_milliweight(645),
7852            Elements::Sha256Ctx8Add512 => Cost::from_milliweight(5299),
7853            Elements::Sha256Ctx8Add64 => Cost::from_milliweight(1187),
7854            Elements::Sha256Ctx8Add8 => Cost::from_milliweight(674),
7855            Elements::Sha256Ctx8AddBuffer511 => Cost::from_milliweight(5060),
7856            Elements::Sha256Ctx8Finalize => Cost::from_milliweight(835),
7857            Elements::Sha256Ctx8Init => Cost::from_milliweight(118),
7858            Elements::Sha256Iv => Cost::from_milliweight(93),
7859            Elements::SigAllHash => Cost::from_milliweight(133),
7860            Elements::Some1 => Cost::from_milliweight(70),
7861            Elements::Some16 => Cost::from_milliweight(63),
7862            Elements::Some32 => Cost::from_milliweight(64),
7863            Elements::Some64 => Cost::from_milliweight(93),
7864            Elements::Some8 => Cost::from_milliweight(75),
7865            Elements::Subtract16 => Cost::from_milliweight(113),
7866            Elements::Subtract32 => Cost::from_milliweight(118),
7867            Elements::Subtract64 => Cost::from_milliweight(115),
7868            Elements::Subtract8 => Cost::from_milliweight(109),
7869            Elements::Swu => Cost::from_milliweight(32120),
7870            Elements::TapEnvHash => Cost::from_milliweight(162),
7871            Elements::TapdataInit => Cost::from_milliweight(1178),
7872            Elements::TapleafHash => Cost::from_milliweight(136),
7873            Elements::TapleafVersion => Cost::from_milliweight(105),
7874            Elements::Tappath => Cost::from_milliweight(83),
7875            Elements::TappathHash => Cost::from_milliweight(143),
7876            Elements::TotalFee => Cost::from_milliweight(230),
7877            Elements::TransactionId => Cost::from_milliweight(139),
7878            Elements::TxHash => Cost::from_milliweight(143),
7879            Elements::TxIsFinal => Cost::from_milliweight(71),
7880            Elements::TxLockHeight => Cost::from_milliweight(80),
7881            Elements::TxLockTime => Cost::from_milliweight(80),
7882            Elements::Verify => Cost::from_milliweight(57),
7883            Elements::Version => Cost::from_milliweight(93),
7884            Elements::Xor1 => Cost::from_milliweight(67),
7885            Elements::Xor16 => Cost::from_milliweight(83),
7886            Elements::Xor32 => Cost::from_milliweight(92),
7887            Elements::Xor64 => Cost::from_milliweight(95),
7888            Elements::Xor8 => Cost::from_milliweight(85),
7889            Elements::XorXor1 => Cost::from_milliweight(72),
7890            Elements::XorXor16 => Cost::from_milliweight(79),
7891            Elements::XorXor32 => Cost::from_milliweight(96),
7892            Elements::XorXor64 => Cost::from_milliweight(93),
7893            Elements::XorXor8 => Cost::from_milliweight(98),
7894        }
7895    }
7896
7897    fn parse(s: &str) -> Result<Self, crate::Error> where Self: Sized {
7898        str::FromStr::from_str(s)
7899    }
7900}
7901
7902impl fmt::Display for Elements {
7903    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7904        match self {
7905            Elements::Add16 => f.write_str("add_16"),
7906            Elements::Add32 => f.write_str("add_32"),
7907            Elements::Add64 => f.write_str("add_64"),
7908            Elements::Add8 => f.write_str("add_8"),
7909            Elements::All16 => f.write_str("all_16"),
7910            Elements::All32 => f.write_str("all_32"),
7911            Elements::All64 => f.write_str("all_64"),
7912            Elements::All8 => f.write_str("all_8"),
7913            Elements::And1 => f.write_str("and_1"),
7914            Elements::And16 => f.write_str("and_16"),
7915            Elements::And32 => f.write_str("and_32"),
7916            Elements::And64 => f.write_str("and_64"),
7917            Elements::And8 => f.write_str("and_8"),
7918            Elements::AnnexHash => f.write_str("annex_hash"),
7919            Elements::AssetAmountHash => f.write_str("asset_amount_hash"),
7920            Elements::Bip0340Verify => f.write_str("bip_0340_verify"),
7921            Elements::BrokenDoNotUseCheckLockDistance => f.write_str("broken_do_not_use_check_lock_distance"),
7922            Elements::BrokenDoNotUseCheckLockDuration => f.write_str("broken_do_not_use_check_lock_duration"),
7923            Elements::BrokenDoNotUseTxLockDistance => f.write_str("broken_do_not_use_tx_lock_distance"),
7924            Elements::BrokenDoNotUseTxLockDuration => f.write_str("broken_do_not_use_tx_lock_duration"),
7925            Elements::BuildTapbranch => f.write_str("build_tapbranch"),
7926            Elements::BuildTapleafSimplicity => f.write_str("build_tapleaf_simplicity"),
7927            Elements::BuildTaptweak => f.write_str("build_taptweak"),
7928            Elements::CalculateAsset => f.write_str("calculate_asset"),
7929            Elements::CalculateConfidentialToken => f.write_str("calculate_confidential_token"),
7930            Elements::CalculateExplicitToken => f.write_str("calculate_explicit_token"),
7931            Elements::CalculateIssuanceEntropy => f.write_str("calculate_issuance_entropy"),
7932            Elements::Ch1 => f.write_str("ch_1"),
7933            Elements::Ch16 => f.write_str("ch_16"),
7934            Elements::Ch32 => f.write_str("ch_32"),
7935            Elements::Ch64 => f.write_str("ch_64"),
7936            Elements::Ch8 => f.write_str("ch_8"),
7937            Elements::CheckLockHeight => f.write_str("check_lock_height"),
7938            Elements::CheckLockTime => f.write_str("check_lock_time"),
7939            Elements::CheckSigVerify => f.write_str("check_sig_verify"),
7940            Elements::Complement1 => f.write_str("complement_1"),
7941            Elements::Complement16 => f.write_str("complement_16"),
7942            Elements::Complement32 => f.write_str("complement_32"),
7943            Elements::Complement64 => f.write_str("complement_64"),
7944            Elements::Complement8 => f.write_str("complement_8"),
7945            Elements::CurrentAmount => f.write_str("current_amount"),
7946            Elements::CurrentAnnexHash => f.write_str("current_annex_hash"),
7947            Elements::CurrentAsset => f.write_str("current_asset"),
7948            Elements::CurrentIndex => f.write_str("current_index"),
7949            Elements::CurrentIssuanceAssetAmount => f.write_str("current_issuance_asset_amount"),
7950            Elements::CurrentIssuanceAssetProof => f.write_str("current_issuance_asset_proof"),
7951            Elements::CurrentIssuanceTokenAmount => f.write_str("current_issuance_token_amount"),
7952            Elements::CurrentIssuanceTokenProof => f.write_str("current_issuance_token_proof"),
7953            Elements::CurrentNewIssuanceContract => f.write_str("current_new_issuance_contract"),
7954            Elements::CurrentPegin => f.write_str("current_pegin"),
7955            Elements::CurrentPrevOutpoint => f.write_str("current_prev_outpoint"),
7956            Elements::CurrentReissuanceBlinding => f.write_str("current_reissuance_blinding"),
7957            Elements::CurrentReissuanceEntropy => f.write_str("current_reissuance_entropy"),
7958            Elements::CurrentScriptHash => f.write_str("current_script_hash"),
7959            Elements::CurrentScriptSigHash => f.write_str("current_script_sig_hash"),
7960            Elements::CurrentSequence => f.write_str("current_sequence"),
7961            Elements::Decompress => f.write_str("decompress"),
7962            Elements::Decrement16 => f.write_str("decrement_16"),
7963            Elements::Decrement32 => f.write_str("decrement_32"),
7964            Elements::Decrement64 => f.write_str("decrement_64"),
7965            Elements::Decrement8 => f.write_str("decrement_8"),
7966            Elements::DivMod128_64 => f.write_str("div_mod_128_64"),
7967            Elements::DivMod16 => f.write_str("div_mod_16"),
7968            Elements::DivMod32 => f.write_str("div_mod_32"),
7969            Elements::DivMod64 => f.write_str("div_mod_64"),
7970            Elements::DivMod8 => f.write_str("div_mod_8"),
7971            Elements::Divide16 => f.write_str("divide_16"),
7972            Elements::Divide32 => f.write_str("divide_32"),
7973            Elements::Divide64 => f.write_str("divide_64"),
7974            Elements::Divide8 => f.write_str("divide_8"),
7975            Elements::Divides16 => f.write_str("divides_16"),
7976            Elements::Divides32 => f.write_str("divides_32"),
7977            Elements::Divides64 => f.write_str("divides_64"),
7978            Elements::Divides8 => f.write_str("divides_8"),
7979            Elements::Eq1 => f.write_str("eq_1"),
7980            Elements::Eq16 => f.write_str("eq_16"),
7981            Elements::Eq256 => f.write_str("eq_256"),
7982            Elements::Eq32 => f.write_str("eq_32"),
7983            Elements::Eq64 => f.write_str("eq_64"),
7984            Elements::Eq8 => f.write_str("eq_8"),
7985            Elements::FeAdd => f.write_str("fe_add"),
7986            Elements::FeInvert => f.write_str("fe_invert"),
7987            Elements::FeIsOdd => f.write_str("fe_is_odd"),
7988            Elements::FeIsZero => f.write_str("fe_is_zero"),
7989            Elements::FeMultiply => f.write_str("fe_multiply"),
7990            Elements::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
7991            Elements::FeNegate => f.write_str("fe_negate"),
7992            Elements::FeNormalize => f.write_str("fe_normalize"),
7993            Elements::FeSquare => f.write_str("fe_square"),
7994            Elements::FeSquareRoot => f.write_str("fe_square_root"),
7995            Elements::FullAdd16 => f.write_str("full_add_16"),
7996            Elements::FullAdd32 => f.write_str("full_add_32"),
7997            Elements::FullAdd64 => f.write_str("full_add_64"),
7998            Elements::FullAdd8 => f.write_str("full_add_8"),
7999            Elements::FullDecrement16 => f.write_str("full_decrement_16"),
8000            Elements::FullDecrement32 => f.write_str("full_decrement_32"),
8001            Elements::FullDecrement64 => f.write_str("full_decrement_64"),
8002            Elements::FullDecrement8 => f.write_str("full_decrement_8"),
8003            Elements::FullIncrement16 => f.write_str("full_increment_16"),
8004            Elements::FullIncrement32 => f.write_str("full_increment_32"),
8005            Elements::FullIncrement64 => f.write_str("full_increment_64"),
8006            Elements::FullIncrement8 => f.write_str("full_increment_8"),
8007            Elements::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
8008            Elements::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
8009            Elements::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
8010            Elements::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
8011            Elements::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
8012            Elements::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
8013            Elements::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
8014            Elements::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
8015            Elements::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
8016            Elements::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
8017            Elements::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
8018            Elements::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
8019            Elements::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
8020            Elements::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
8021            Elements::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
8022            Elements::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
8023            Elements::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
8024            Elements::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
8025            Elements::FullMultiply16 => f.write_str("full_multiply_16"),
8026            Elements::FullMultiply32 => f.write_str("full_multiply_32"),
8027            Elements::FullMultiply64 => f.write_str("full_multiply_64"),
8028            Elements::FullMultiply8 => f.write_str("full_multiply_8"),
8029            Elements::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
8030            Elements::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
8031            Elements::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
8032            Elements::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
8033            Elements::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
8034            Elements::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
8035            Elements::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
8036            Elements::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
8037            Elements::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
8038            Elements::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
8039            Elements::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
8040            Elements::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
8041            Elements::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
8042            Elements::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
8043            Elements::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
8044            Elements::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
8045            Elements::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
8046            Elements::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
8047            Elements::FullSubtract16 => f.write_str("full_subtract_16"),
8048            Elements::FullSubtract32 => f.write_str("full_subtract_32"),
8049            Elements::FullSubtract64 => f.write_str("full_subtract_64"),
8050            Elements::FullSubtract8 => f.write_str("full_subtract_8"),
8051            Elements::GeIsOnCurve => f.write_str("ge_is_on_curve"),
8052            Elements::GeNegate => f.write_str("ge_negate"),
8053            Elements::GejAdd => f.write_str("gej_add"),
8054            Elements::GejDouble => f.write_str("gej_double"),
8055            Elements::GejEquiv => f.write_str("gej_equiv"),
8056            Elements::GejGeAdd => f.write_str("gej_ge_add"),
8057            Elements::GejGeAddEx => f.write_str("gej_ge_add_ex"),
8058            Elements::GejGeEquiv => f.write_str("gej_ge_equiv"),
8059            Elements::GejInfinity => f.write_str("gej_infinity"),
8060            Elements::GejIsInfinity => f.write_str("gej_is_infinity"),
8061            Elements::GejIsOnCurve => f.write_str("gej_is_on_curve"),
8062            Elements::GejNegate => f.write_str("gej_negate"),
8063            Elements::GejNormalize => f.write_str("gej_normalize"),
8064            Elements::GejRescale => f.write_str("gej_rescale"),
8065            Elements::GejXEquiv => f.write_str("gej_x_equiv"),
8066            Elements::GejYIsOdd => f.write_str("gej_y_is_odd"),
8067            Elements::Generate => f.write_str("generate"),
8068            Elements::GenesisBlockHash => f.write_str("genesis_block_hash"),
8069            Elements::HashToCurve => f.write_str("hash_to_curve"),
8070            Elements::High1 => f.write_str("high_1"),
8071            Elements::High16 => f.write_str("high_16"),
8072            Elements::High32 => f.write_str("high_32"),
8073            Elements::High64 => f.write_str("high_64"),
8074            Elements::High8 => f.write_str("high_8"),
8075            Elements::Increment16 => f.write_str("increment_16"),
8076            Elements::Increment32 => f.write_str("increment_32"),
8077            Elements::Increment64 => f.write_str("increment_64"),
8078            Elements::Increment8 => f.write_str("increment_8"),
8079            Elements::InputAmount => f.write_str("input_amount"),
8080            Elements::InputAmountsHash => f.write_str("input_amounts_hash"),
8081            Elements::InputAnnexHash => f.write_str("input_annex_hash"),
8082            Elements::InputAnnexesHash => f.write_str("input_annexes_hash"),
8083            Elements::InputAsset => f.write_str("input_asset"),
8084            Elements::InputHash => f.write_str("input_hash"),
8085            Elements::InputOutpointsHash => f.write_str("input_outpoints_hash"),
8086            Elements::InputPegin => f.write_str("input_pegin"),
8087            Elements::InputPrevOutpoint => f.write_str("input_prev_outpoint"),
8088            Elements::InputScriptHash => f.write_str("input_script_hash"),
8089            Elements::InputScriptSigHash => f.write_str("input_script_sig_hash"),
8090            Elements::InputScriptSigsHash => f.write_str("input_script_sigs_hash"),
8091            Elements::InputScriptsHash => f.write_str("input_scripts_hash"),
8092            Elements::InputSequence => f.write_str("input_sequence"),
8093            Elements::InputSequencesHash => f.write_str("input_sequences_hash"),
8094            Elements::InputUtxoHash => f.write_str("input_utxo_hash"),
8095            Elements::InputUtxosHash => f.write_str("input_utxos_hash"),
8096            Elements::InputsHash => f.write_str("inputs_hash"),
8097            Elements::InternalKey => f.write_str("internal_key"),
8098            Elements::IsOne16 => f.write_str("is_one_16"),
8099            Elements::IsOne32 => f.write_str("is_one_32"),
8100            Elements::IsOne64 => f.write_str("is_one_64"),
8101            Elements::IsOne8 => f.write_str("is_one_8"),
8102            Elements::IsZero16 => f.write_str("is_zero_16"),
8103            Elements::IsZero32 => f.write_str("is_zero_32"),
8104            Elements::IsZero64 => f.write_str("is_zero_64"),
8105            Elements::IsZero8 => f.write_str("is_zero_8"),
8106            Elements::Issuance => f.write_str("issuance"),
8107            Elements::IssuanceAsset => f.write_str("issuance_asset"),
8108            Elements::IssuanceAssetAmount => f.write_str("issuance_asset_amount"),
8109            Elements::IssuanceAssetAmountsHash => f.write_str("issuance_asset_amounts_hash"),
8110            Elements::IssuanceAssetProof => f.write_str("issuance_asset_proof"),
8111            Elements::IssuanceBlindingEntropyHash => f.write_str("issuance_blinding_entropy_hash"),
8112            Elements::IssuanceEntropy => f.write_str("issuance_entropy"),
8113            Elements::IssuanceHash => f.write_str("issuance_hash"),
8114            Elements::IssuanceRangeProofsHash => f.write_str("issuance_range_proofs_hash"),
8115            Elements::IssuanceToken => f.write_str("issuance_token"),
8116            Elements::IssuanceTokenAmount => f.write_str("issuance_token_amount"),
8117            Elements::IssuanceTokenAmountsHash => f.write_str("issuance_token_amounts_hash"),
8118            Elements::IssuanceTokenProof => f.write_str("issuance_token_proof"),
8119            Elements::IssuancesHash => f.write_str("issuances_hash"),
8120            Elements::LbtcAsset => f.write_str("lbtc_asset"),
8121            Elements::Le16 => f.write_str("le_16"),
8122            Elements::Le32 => f.write_str("le_32"),
8123            Elements::Le64 => f.write_str("le_64"),
8124            Elements::Le8 => f.write_str("le_8"),
8125            Elements::LeftExtend16_32 => f.write_str("left_extend_16_32"),
8126            Elements::LeftExtend16_64 => f.write_str("left_extend_16_64"),
8127            Elements::LeftExtend1_16 => f.write_str("left_extend_1_16"),
8128            Elements::LeftExtend1_32 => f.write_str("left_extend_1_32"),
8129            Elements::LeftExtend1_64 => f.write_str("left_extend_1_64"),
8130            Elements::LeftExtend1_8 => f.write_str("left_extend_1_8"),
8131            Elements::LeftExtend32_64 => f.write_str("left_extend_32_64"),
8132            Elements::LeftExtend8_16 => f.write_str("left_extend_8_16"),
8133            Elements::LeftExtend8_32 => f.write_str("left_extend_8_32"),
8134            Elements::LeftExtend8_64 => f.write_str("left_extend_8_64"),
8135            Elements::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
8136            Elements::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
8137            Elements::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
8138            Elements::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
8139            Elements::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
8140            Elements::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
8141            Elements::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
8142            Elements::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
8143            Elements::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
8144            Elements::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
8145            Elements::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
8146            Elements::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
8147            Elements::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
8148            Elements::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
8149            Elements::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
8150            Elements::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
8151            Elements::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
8152            Elements::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
8153            Elements::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
8154            Elements::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
8155            Elements::LeftRotate16 => f.write_str("left_rotate_16"),
8156            Elements::LeftRotate32 => f.write_str("left_rotate_32"),
8157            Elements::LeftRotate64 => f.write_str("left_rotate_64"),
8158            Elements::LeftRotate8 => f.write_str("left_rotate_8"),
8159            Elements::LeftShift16 => f.write_str("left_shift_16"),
8160            Elements::LeftShift32 => f.write_str("left_shift_32"),
8161            Elements::LeftShift64 => f.write_str("left_shift_64"),
8162            Elements::LeftShift8 => f.write_str("left_shift_8"),
8163            Elements::LeftShiftWith16 => f.write_str("left_shift_with_16"),
8164            Elements::LeftShiftWith32 => f.write_str("left_shift_with_32"),
8165            Elements::LeftShiftWith64 => f.write_str("left_shift_with_64"),
8166            Elements::LeftShiftWith8 => f.write_str("left_shift_with_8"),
8167            Elements::Leftmost16_1 => f.write_str("leftmost_16_1"),
8168            Elements::Leftmost16_2 => f.write_str("leftmost_16_2"),
8169            Elements::Leftmost16_4 => f.write_str("leftmost_16_4"),
8170            Elements::Leftmost16_8 => f.write_str("leftmost_16_8"),
8171            Elements::Leftmost32_1 => f.write_str("leftmost_32_1"),
8172            Elements::Leftmost32_16 => f.write_str("leftmost_32_16"),
8173            Elements::Leftmost32_2 => f.write_str("leftmost_32_2"),
8174            Elements::Leftmost32_4 => f.write_str("leftmost_32_4"),
8175            Elements::Leftmost32_8 => f.write_str("leftmost_32_8"),
8176            Elements::Leftmost64_1 => f.write_str("leftmost_64_1"),
8177            Elements::Leftmost64_16 => f.write_str("leftmost_64_16"),
8178            Elements::Leftmost64_2 => f.write_str("leftmost_64_2"),
8179            Elements::Leftmost64_32 => f.write_str("leftmost_64_32"),
8180            Elements::Leftmost64_4 => f.write_str("leftmost_64_4"),
8181            Elements::Leftmost64_8 => f.write_str("leftmost_64_8"),
8182            Elements::Leftmost8_1 => f.write_str("leftmost_8_1"),
8183            Elements::Leftmost8_2 => f.write_str("leftmost_8_2"),
8184            Elements::Leftmost8_4 => f.write_str("leftmost_8_4"),
8185            Elements::LinearCombination1 => f.write_str("linear_combination_1"),
8186            Elements::LinearVerify1 => f.write_str("linear_verify_1"),
8187            Elements::LockTime => f.write_str("lock_time"),
8188            Elements::Low1 => f.write_str("low_1"),
8189            Elements::Low16 => f.write_str("low_16"),
8190            Elements::Low32 => f.write_str("low_32"),
8191            Elements::Low64 => f.write_str("low_64"),
8192            Elements::Low8 => f.write_str("low_8"),
8193            Elements::Lt16 => f.write_str("lt_16"),
8194            Elements::Lt32 => f.write_str("lt_32"),
8195            Elements::Lt64 => f.write_str("lt_64"),
8196            Elements::Lt8 => f.write_str("lt_8"),
8197            Elements::Maj1 => f.write_str("maj_1"),
8198            Elements::Maj16 => f.write_str("maj_16"),
8199            Elements::Maj32 => f.write_str("maj_32"),
8200            Elements::Maj64 => f.write_str("maj_64"),
8201            Elements::Maj8 => f.write_str("maj_8"),
8202            Elements::Max16 => f.write_str("max_16"),
8203            Elements::Max32 => f.write_str("max_32"),
8204            Elements::Max64 => f.write_str("max_64"),
8205            Elements::Max8 => f.write_str("max_8"),
8206            Elements::Median16 => f.write_str("median_16"),
8207            Elements::Median32 => f.write_str("median_32"),
8208            Elements::Median64 => f.write_str("median_64"),
8209            Elements::Median8 => f.write_str("median_8"),
8210            Elements::Min16 => f.write_str("min_16"),
8211            Elements::Min32 => f.write_str("min_32"),
8212            Elements::Min64 => f.write_str("min_64"),
8213            Elements::Min8 => f.write_str("min_8"),
8214            Elements::Modulo16 => f.write_str("modulo_16"),
8215            Elements::Modulo32 => f.write_str("modulo_32"),
8216            Elements::Modulo64 => f.write_str("modulo_64"),
8217            Elements::Modulo8 => f.write_str("modulo_8"),
8218            Elements::Multiply16 => f.write_str("multiply_16"),
8219            Elements::Multiply32 => f.write_str("multiply_32"),
8220            Elements::Multiply64 => f.write_str("multiply_64"),
8221            Elements::Multiply8 => f.write_str("multiply_8"),
8222            Elements::Negate16 => f.write_str("negate_16"),
8223            Elements::Negate32 => f.write_str("negate_32"),
8224            Elements::Negate64 => f.write_str("negate_64"),
8225            Elements::Negate8 => f.write_str("negate_8"),
8226            Elements::NewIssuanceContract => f.write_str("new_issuance_contract"),
8227            Elements::NonceHash => f.write_str("nonce_hash"),
8228            Elements::NumInputs => f.write_str("num_inputs"),
8229            Elements::NumOutputs => f.write_str("num_outputs"),
8230            Elements::One16 => f.write_str("one_16"),
8231            Elements::One32 => f.write_str("one_32"),
8232            Elements::One64 => f.write_str("one_64"),
8233            Elements::One8 => f.write_str("one_8"),
8234            Elements::Or1 => f.write_str("or_1"),
8235            Elements::Or16 => f.write_str("or_16"),
8236            Elements::Or32 => f.write_str("or_32"),
8237            Elements::Or64 => f.write_str("or_64"),
8238            Elements::Or8 => f.write_str("or_8"),
8239            Elements::OutpointHash => f.write_str("outpoint_hash"),
8240            Elements::OutputAmount => f.write_str("output_amount"),
8241            Elements::OutputAmountsHash => f.write_str("output_amounts_hash"),
8242            Elements::OutputAsset => f.write_str("output_asset"),
8243            Elements::OutputHash => f.write_str("output_hash"),
8244            Elements::OutputIsFee => f.write_str("output_is_fee"),
8245            Elements::OutputNonce => f.write_str("output_nonce"),
8246            Elements::OutputNoncesHash => f.write_str("output_nonces_hash"),
8247            Elements::OutputNullDatum => f.write_str("output_null_datum"),
8248            Elements::OutputRangeProof => f.write_str("output_range_proof"),
8249            Elements::OutputRangeProofsHash => f.write_str("output_range_proofs_hash"),
8250            Elements::OutputScriptHash => f.write_str("output_script_hash"),
8251            Elements::OutputScriptsHash => f.write_str("output_scripts_hash"),
8252            Elements::OutputSurjectionProof => f.write_str("output_surjection_proof"),
8253            Elements::OutputSurjectionProofsHash => f.write_str("output_surjection_proofs_hash"),
8254            Elements::OutputsHash => f.write_str("outputs_hash"),
8255            Elements::ParseLock => f.write_str("parse_lock"),
8256            Elements::ParseSequence => f.write_str("parse_sequence"),
8257            Elements::PointVerify1 => f.write_str("point_verify_1"),
8258            Elements::ReissuanceBlinding => f.write_str("reissuance_blinding"),
8259            Elements::ReissuanceEntropy => f.write_str("reissuance_entropy"),
8260            Elements::RightExtend16_32 => f.write_str("right_extend_16_32"),
8261            Elements::RightExtend16_64 => f.write_str("right_extend_16_64"),
8262            Elements::RightExtend32_64 => f.write_str("right_extend_32_64"),
8263            Elements::RightExtend8_16 => f.write_str("right_extend_8_16"),
8264            Elements::RightExtend8_32 => f.write_str("right_extend_8_32"),
8265            Elements::RightExtend8_64 => f.write_str("right_extend_8_64"),
8266            Elements::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
8267            Elements::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
8268            Elements::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
8269            Elements::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
8270            Elements::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
8271            Elements::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
8272            Elements::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
8273            Elements::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
8274            Elements::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
8275            Elements::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
8276            Elements::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
8277            Elements::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
8278            Elements::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
8279            Elements::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
8280            Elements::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
8281            Elements::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
8282            Elements::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
8283            Elements::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
8284            Elements::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
8285            Elements::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
8286            Elements::RightRotate16 => f.write_str("right_rotate_16"),
8287            Elements::RightRotate32 => f.write_str("right_rotate_32"),
8288            Elements::RightRotate64 => f.write_str("right_rotate_64"),
8289            Elements::RightRotate8 => f.write_str("right_rotate_8"),
8290            Elements::RightShift16 => f.write_str("right_shift_16"),
8291            Elements::RightShift32 => f.write_str("right_shift_32"),
8292            Elements::RightShift64 => f.write_str("right_shift_64"),
8293            Elements::RightShift8 => f.write_str("right_shift_8"),
8294            Elements::RightShiftWith16 => f.write_str("right_shift_with_16"),
8295            Elements::RightShiftWith32 => f.write_str("right_shift_with_32"),
8296            Elements::RightShiftWith64 => f.write_str("right_shift_with_64"),
8297            Elements::RightShiftWith8 => f.write_str("right_shift_with_8"),
8298            Elements::Rightmost16_1 => f.write_str("rightmost_16_1"),
8299            Elements::Rightmost16_2 => f.write_str("rightmost_16_2"),
8300            Elements::Rightmost16_4 => f.write_str("rightmost_16_4"),
8301            Elements::Rightmost16_8 => f.write_str("rightmost_16_8"),
8302            Elements::Rightmost32_1 => f.write_str("rightmost_32_1"),
8303            Elements::Rightmost32_16 => f.write_str("rightmost_32_16"),
8304            Elements::Rightmost32_2 => f.write_str("rightmost_32_2"),
8305            Elements::Rightmost32_4 => f.write_str("rightmost_32_4"),
8306            Elements::Rightmost32_8 => f.write_str("rightmost_32_8"),
8307            Elements::Rightmost64_1 => f.write_str("rightmost_64_1"),
8308            Elements::Rightmost64_16 => f.write_str("rightmost_64_16"),
8309            Elements::Rightmost64_2 => f.write_str("rightmost_64_2"),
8310            Elements::Rightmost64_32 => f.write_str("rightmost_64_32"),
8311            Elements::Rightmost64_4 => f.write_str("rightmost_64_4"),
8312            Elements::Rightmost64_8 => f.write_str("rightmost_64_8"),
8313            Elements::Rightmost8_1 => f.write_str("rightmost_8_1"),
8314            Elements::Rightmost8_2 => f.write_str("rightmost_8_2"),
8315            Elements::Rightmost8_4 => f.write_str("rightmost_8_4"),
8316            Elements::ScalarAdd => f.write_str("scalar_add"),
8317            Elements::ScalarInvert => f.write_str("scalar_invert"),
8318            Elements::ScalarIsZero => f.write_str("scalar_is_zero"),
8319            Elements::ScalarMultiply => f.write_str("scalar_multiply"),
8320            Elements::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
8321            Elements::ScalarNegate => f.write_str("scalar_negate"),
8322            Elements::ScalarNormalize => f.write_str("scalar_normalize"),
8323            Elements::ScalarSquare => f.write_str("scalar_square"),
8324            Elements::Scale => f.write_str("scale"),
8325            Elements::ScriptCMR => f.write_str("script_cmr"),
8326            Elements::Sha256Block => f.write_str("sha_256_block"),
8327            Elements::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
8328            Elements::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
8329            Elements::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
8330            Elements::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
8331            Elements::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
8332            Elements::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
8333            Elements::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
8334            Elements::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
8335            Elements::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
8336            Elements::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
8337            Elements::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
8338            Elements::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
8339            Elements::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
8340            Elements::Sha256Iv => f.write_str("sha_256_iv"),
8341            Elements::SigAllHash => f.write_str("sig_all_hash"),
8342            Elements::Some1 => f.write_str("some_1"),
8343            Elements::Some16 => f.write_str("some_16"),
8344            Elements::Some32 => f.write_str("some_32"),
8345            Elements::Some64 => f.write_str("some_64"),
8346            Elements::Some8 => f.write_str("some_8"),
8347            Elements::Subtract16 => f.write_str("subtract_16"),
8348            Elements::Subtract32 => f.write_str("subtract_32"),
8349            Elements::Subtract64 => f.write_str("subtract_64"),
8350            Elements::Subtract8 => f.write_str("subtract_8"),
8351            Elements::Swu => f.write_str("swu"),
8352            Elements::TapEnvHash => f.write_str("tap_env_hash"),
8353            Elements::TapdataInit => f.write_str("tapdata_init"),
8354            Elements::TapleafHash => f.write_str("tapleaf_hash"),
8355            Elements::TapleafVersion => f.write_str("tapleaf_version"),
8356            Elements::Tappath => f.write_str("tappath"),
8357            Elements::TappathHash => f.write_str("tappath_hash"),
8358            Elements::TotalFee => f.write_str("total_fee"),
8359            Elements::TransactionId => f.write_str("transaction_id"),
8360            Elements::TxHash => f.write_str("tx_hash"),
8361            Elements::TxIsFinal => f.write_str("tx_is_final"),
8362            Elements::TxLockHeight => f.write_str("tx_lock_height"),
8363            Elements::TxLockTime => f.write_str("tx_lock_time"),
8364            Elements::Verify => f.write_str("verify"),
8365            Elements::Version => f.write_str("version"),
8366            Elements::Xor1 => f.write_str("xor_1"),
8367            Elements::Xor16 => f.write_str("xor_16"),
8368            Elements::Xor32 => f.write_str("xor_32"),
8369            Elements::Xor64 => f.write_str("xor_64"),
8370            Elements::Xor8 => f.write_str("xor_8"),
8371            Elements::XorXor1 => f.write_str("xor_xor_1"),
8372            Elements::XorXor16 => f.write_str("xor_xor_16"),
8373            Elements::XorXor32 => f.write_str("xor_xor_32"),
8374            Elements::XorXor64 => f.write_str("xor_xor_64"),
8375            Elements::XorXor8 => f.write_str("xor_xor_8"),
8376        }
8377    }
8378}
8379
8380impl str::FromStr for Elements {
8381    type Err = crate::Error;
8382
8383    fn from_str(s: &str) -> Result<Self, Self::Err> {
8384        match s {
8385            "add_16" => Ok(Elements::Add16),
8386            "add_32" => Ok(Elements::Add32),
8387            "add_64" => Ok(Elements::Add64),
8388            "add_8" => Ok(Elements::Add8),
8389            "all_16" => Ok(Elements::All16),
8390            "all_32" => Ok(Elements::All32),
8391            "all_64" => Ok(Elements::All64),
8392            "all_8" => Ok(Elements::All8),
8393            "and_1" => Ok(Elements::And1),
8394            "and_16" => Ok(Elements::And16),
8395            "and_32" => Ok(Elements::And32),
8396            "and_64" => Ok(Elements::And64),
8397            "and_8" => Ok(Elements::And8),
8398            "annex_hash" => Ok(Elements::AnnexHash),
8399            "asset_amount_hash" => Ok(Elements::AssetAmountHash),
8400            "bip_0340_verify" => Ok(Elements::Bip0340Verify),
8401            "broken_do_not_use_check_lock_distance" => Ok(Elements::BrokenDoNotUseCheckLockDistance),
8402            "broken_do_not_use_check_lock_duration" => Ok(Elements::BrokenDoNotUseCheckLockDuration),
8403            "broken_do_not_use_tx_lock_distance" => Ok(Elements::BrokenDoNotUseTxLockDistance),
8404            "broken_do_not_use_tx_lock_duration" => Ok(Elements::BrokenDoNotUseTxLockDuration),
8405            "build_tapbranch" => Ok(Elements::BuildTapbranch),
8406            "build_tapleaf_simplicity" => Ok(Elements::BuildTapleafSimplicity),
8407            "build_taptweak" => Ok(Elements::BuildTaptweak),
8408            "calculate_asset" => Ok(Elements::CalculateAsset),
8409            "calculate_confidential_token" => Ok(Elements::CalculateConfidentialToken),
8410            "calculate_explicit_token" => Ok(Elements::CalculateExplicitToken),
8411            "calculate_issuance_entropy" => Ok(Elements::CalculateIssuanceEntropy),
8412            "ch_1" => Ok(Elements::Ch1),
8413            "ch_16" => Ok(Elements::Ch16),
8414            "ch_32" => Ok(Elements::Ch32),
8415            "ch_64" => Ok(Elements::Ch64),
8416            "ch_8" => Ok(Elements::Ch8),
8417            "check_lock_height" => Ok(Elements::CheckLockHeight),
8418            "check_lock_time" => Ok(Elements::CheckLockTime),
8419            "check_sig_verify" => Ok(Elements::CheckSigVerify),
8420            "complement_1" => Ok(Elements::Complement1),
8421            "complement_16" => Ok(Elements::Complement16),
8422            "complement_32" => Ok(Elements::Complement32),
8423            "complement_64" => Ok(Elements::Complement64),
8424            "complement_8" => Ok(Elements::Complement8),
8425            "current_amount" => Ok(Elements::CurrentAmount),
8426            "current_annex_hash" => Ok(Elements::CurrentAnnexHash),
8427            "current_asset" => Ok(Elements::CurrentAsset),
8428            "current_index" => Ok(Elements::CurrentIndex),
8429            "current_issuance_asset_amount" => Ok(Elements::CurrentIssuanceAssetAmount),
8430            "current_issuance_asset_proof" => Ok(Elements::CurrentIssuanceAssetProof),
8431            "current_issuance_token_amount" => Ok(Elements::CurrentIssuanceTokenAmount),
8432            "current_issuance_token_proof" => Ok(Elements::CurrentIssuanceTokenProof),
8433            "current_new_issuance_contract" => Ok(Elements::CurrentNewIssuanceContract),
8434            "current_pegin" => Ok(Elements::CurrentPegin),
8435            "current_prev_outpoint" => Ok(Elements::CurrentPrevOutpoint),
8436            "current_reissuance_blinding" => Ok(Elements::CurrentReissuanceBlinding),
8437            "current_reissuance_entropy" => Ok(Elements::CurrentReissuanceEntropy),
8438            "current_script_hash" => Ok(Elements::CurrentScriptHash),
8439            "current_script_sig_hash" => Ok(Elements::CurrentScriptSigHash),
8440            "current_sequence" => Ok(Elements::CurrentSequence),
8441            "decompress" => Ok(Elements::Decompress),
8442            "decrement_16" => Ok(Elements::Decrement16),
8443            "decrement_32" => Ok(Elements::Decrement32),
8444            "decrement_64" => Ok(Elements::Decrement64),
8445            "decrement_8" => Ok(Elements::Decrement8),
8446            "div_mod_128_64" => Ok(Elements::DivMod128_64),
8447            "div_mod_16" => Ok(Elements::DivMod16),
8448            "div_mod_32" => Ok(Elements::DivMod32),
8449            "div_mod_64" => Ok(Elements::DivMod64),
8450            "div_mod_8" => Ok(Elements::DivMod8),
8451            "divide_16" => Ok(Elements::Divide16),
8452            "divide_32" => Ok(Elements::Divide32),
8453            "divide_64" => Ok(Elements::Divide64),
8454            "divide_8" => Ok(Elements::Divide8),
8455            "divides_16" => Ok(Elements::Divides16),
8456            "divides_32" => Ok(Elements::Divides32),
8457            "divides_64" => Ok(Elements::Divides64),
8458            "divides_8" => Ok(Elements::Divides8),
8459            "eq_1" => Ok(Elements::Eq1),
8460            "eq_16" => Ok(Elements::Eq16),
8461            "eq_256" => Ok(Elements::Eq256),
8462            "eq_32" => Ok(Elements::Eq32),
8463            "eq_64" => Ok(Elements::Eq64),
8464            "eq_8" => Ok(Elements::Eq8),
8465            "fe_add" => Ok(Elements::FeAdd),
8466            "fe_invert" => Ok(Elements::FeInvert),
8467            "fe_is_odd" => Ok(Elements::FeIsOdd),
8468            "fe_is_zero" => Ok(Elements::FeIsZero),
8469            "fe_multiply" => Ok(Elements::FeMultiply),
8470            "fe_multiply_beta" => Ok(Elements::FeMultiplyBeta),
8471            "fe_negate" => Ok(Elements::FeNegate),
8472            "fe_normalize" => Ok(Elements::FeNormalize),
8473            "fe_square" => Ok(Elements::FeSquare),
8474            "fe_square_root" => Ok(Elements::FeSquareRoot),
8475            "full_add_16" => Ok(Elements::FullAdd16),
8476            "full_add_32" => Ok(Elements::FullAdd32),
8477            "full_add_64" => Ok(Elements::FullAdd64),
8478            "full_add_8" => Ok(Elements::FullAdd8),
8479            "full_decrement_16" => Ok(Elements::FullDecrement16),
8480            "full_decrement_32" => Ok(Elements::FullDecrement32),
8481            "full_decrement_64" => Ok(Elements::FullDecrement64),
8482            "full_decrement_8" => Ok(Elements::FullDecrement8),
8483            "full_increment_16" => Ok(Elements::FullIncrement16),
8484            "full_increment_32" => Ok(Elements::FullIncrement32),
8485            "full_increment_64" => Ok(Elements::FullIncrement64),
8486            "full_increment_8" => Ok(Elements::FullIncrement8),
8487            "full_left_shift_16_1" => Ok(Elements::FullLeftShift16_1),
8488            "full_left_shift_16_2" => Ok(Elements::FullLeftShift16_2),
8489            "full_left_shift_16_4" => Ok(Elements::FullLeftShift16_4),
8490            "full_left_shift_16_8" => Ok(Elements::FullLeftShift16_8),
8491            "full_left_shift_32_1" => Ok(Elements::FullLeftShift32_1),
8492            "full_left_shift_32_16" => Ok(Elements::FullLeftShift32_16),
8493            "full_left_shift_32_2" => Ok(Elements::FullLeftShift32_2),
8494            "full_left_shift_32_4" => Ok(Elements::FullLeftShift32_4),
8495            "full_left_shift_32_8" => Ok(Elements::FullLeftShift32_8),
8496            "full_left_shift_64_1" => Ok(Elements::FullLeftShift64_1),
8497            "full_left_shift_64_16" => Ok(Elements::FullLeftShift64_16),
8498            "full_left_shift_64_2" => Ok(Elements::FullLeftShift64_2),
8499            "full_left_shift_64_32" => Ok(Elements::FullLeftShift64_32),
8500            "full_left_shift_64_4" => Ok(Elements::FullLeftShift64_4),
8501            "full_left_shift_64_8" => Ok(Elements::FullLeftShift64_8),
8502            "full_left_shift_8_1" => Ok(Elements::FullLeftShift8_1),
8503            "full_left_shift_8_2" => Ok(Elements::FullLeftShift8_2),
8504            "full_left_shift_8_4" => Ok(Elements::FullLeftShift8_4),
8505            "full_multiply_16" => Ok(Elements::FullMultiply16),
8506            "full_multiply_32" => Ok(Elements::FullMultiply32),
8507            "full_multiply_64" => Ok(Elements::FullMultiply64),
8508            "full_multiply_8" => Ok(Elements::FullMultiply8),
8509            "full_right_shift_16_1" => Ok(Elements::FullRightShift16_1),
8510            "full_right_shift_16_2" => Ok(Elements::FullRightShift16_2),
8511            "full_right_shift_16_4" => Ok(Elements::FullRightShift16_4),
8512            "full_right_shift_16_8" => Ok(Elements::FullRightShift16_8),
8513            "full_right_shift_32_1" => Ok(Elements::FullRightShift32_1),
8514            "full_right_shift_32_16" => Ok(Elements::FullRightShift32_16),
8515            "full_right_shift_32_2" => Ok(Elements::FullRightShift32_2),
8516            "full_right_shift_32_4" => Ok(Elements::FullRightShift32_4),
8517            "full_right_shift_32_8" => Ok(Elements::FullRightShift32_8),
8518            "full_right_shift_64_1" => Ok(Elements::FullRightShift64_1),
8519            "full_right_shift_64_16" => Ok(Elements::FullRightShift64_16),
8520            "full_right_shift_64_2" => Ok(Elements::FullRightShift64_2),
8521            "full_right_shift_64_32" => Ok(Elements::FullRightShift64_32),
8522            "full_right_shift_64_4" => Ok(Elements::FullRightShift64_4),
8523            "full_right_shift_64_8" => Ok(Elements::FullRightShift64_8),
8524            "full_right_shift_8_1" => Ok(Elements::FullRightShift8_1),
8525            "full_right_shift_8_2" => Ok(Elements::FullRightShift8_2),
8526            "full_right_shift_8_4" => Ok(Elements::FullRightShift8_4),
8527            "full_subtract_16" => Ok(Elements::FullSubtract16),
8528            "full_subtract_32" => Ok(Elements::FullSubtract32),
8529            "full_subtract_64" => Ok(Elements::FullSubtract64),
8530            "full_subtract_8" => Ok(Elements::FullSubtract8),
8531            "ge_is_on_curve" => Ok(Elements::GeIsOnCurve),
8532            "ge_negate" => Ok(Elements::GeNegate),
8533            "gej_add" => Ok(Elements::GejAdd),
8534            "gej_double" => Ok(Elements::GejDouble),
8535            "gej_equiv" => Ok(Elements::GejEquiv),
8536            "gej_ge_add" => Ok(Elements::GejGeAdd),
8537            "gej_ge_add_ex" => Ok(Elements::GejGeAddEx),
8538            "gej_ge_equiv" => Ok(Elements::GejGeEquiv),
8539            "gej_infinity" => Ok(Elements::GejInfinity),
8540            "gej_is_infinity" => Ok(Elements::GejIsInfinity),
8541            "gej_is_on_curve" => Ok(Elements::GejIsOnCurve),
8542            "gej_negate" => Ok(Elements::GejNegate),
8543            "gej_normalize" => Ok(Elements::GejNormalize),
8544            "gej_rescale" => Ok(Elements::GejRescale),
8545            "gej_x_equiv" => Ok(Elements::GejXEquiv),
8546            "gej_y_is_odd" => Ok(Elements::GejYIsOdd),
8547            "generate" => Ok(Elements::Generate),
8548            "genesis_block_hash" => Ok(Elements::GenesisBlockHash),
8549            "hash_to_curve" => Ok(Elements::HashToCurve),
8550            "high_1" => Ok(Elements::High1),
8551            "high_16" => Ok(Elements::High16),
8552            "high_32" => Ok(Elements::High32),
8553            "high_64" => Ok(Elements::High64),
8554            "high_8" => Ok(Elements::High8),
8555            "increment_16" => Ok(Elements::Increment16),
8556            "increment_32" => Ok(Elements::Increment32),
8557            "increment_64" => Ok(Elements::Increment64),
8558            "increment_8" => Ok(Elements::Increment8),
8559            "input_amount" => Ok(Elements::InputAmount),
8560            "input_amounts_hash" => Ok(Elements::InputAmountsHash),
8561            "input_annex_hash" => Ok(Elements::InputAnnexHash),
8562            "input_annexes_hash" => Ok(Elements::InputAnnexesHash),
8563            "input_asset" => Ok(Elements::InputAsset),
8564            "input_hash" => Ok(Elements::InputHash),
8565            "input_outpoints_hash" => Ok(Elements::InputOutpointsHash),
8566            "input_pegin" => Ok(Elements::InputPegin),
8567            "input_prev_outpoint" => Ok(Elements::InputPrevOutpoint),
8568            "input_script_hash" => Ok(Elements::InputScriptHash),
8569            "input_script_sig_hash" => Ok(Elements::InputScriptSigHash),
8570            "input_script_sigs_hash" => Ok(Elements::InputScriptSigsHash),
8571            "input_scripts_hash" => Ok(Elements::InputScriptsHash),
8572            "input_sequence" => Ok(Elements::InputSequence),
8573            "input_sequences_hash" => Ok(Elements::InputSequencesHash),
8574            "input_utxo_hash" => Ok(Elements::InputUtxoHash),
8575            "input_utxos_hash" => Ok(Elements::InputUtxosHash),
8576            "inputs_hash" => Ok(Elements::InputsHash),
8577            "internal_key" => Ok(Elements::InternalKey),
8578            "is_one_16" => Ok(Elements::IsOne16),
8579            "is_one_32" => Ok(Elements::IsOne32),
8580            "is_one_64" => Ok(Elements::IsOne64),
8581            "is_one_8" => Ok(Elements::IsOne8),
8582            "is_zero_16" => Ok(Elements::IsZero16),
8583            "is_zero_32" => Ok(Elements::IsZero32),
8584            "is_zero_64" => Ok(Elements::IsZero64),
8585            "is_zero_8" => Ok(Elements::IsZero8),
8586            "issuance" => Ok(Elements::Issuance),
8587            "issuance_asset" => Ok(Elements::IssuanceAsset),
8588            "issuance_asset_amount" => Ok(Elements::IssuanceAssetAmount),
8589            "issuance_asset_amounts_hash" => Ok(Elements::IssuanceAssetAmountsHash),
8590            "issuance_asset_proof" => Ok(Elements::IssuanceAssetProof),
8591            "issuance_blinding_entropy_hash" => Ok(Elements::IssuanceBlindingEntropyHash),
8592            "issuance_entropy" => Ok(Elements::IssuanceEntropy),
8593            "issuance_hash" => Ok(Elements::IssuanceHash),
8594            "issuance_range_proofs_hash" => Ok(Elements::IssuanceRangeProofsHash),
8595            "issuance_token" => Ok(Elements::IssuanceToken),
8596            "issuance_token_amount" => Ok(Elements::IssuanceTokenAmount),
8597            "issuance_token_amounts_hash" => Ok(Elements::IssuanceTokenAmountsHash),
8598            "issuance_token_proof" => Ok(Elements::IssuanceTokenProof),
8599            "issuances_hash" => Ok(Elements::IssuancesHash),
8600            "lbtc_asset" => Ok(Elements::LbtcAsset),
8601            "le_16" => Ok(Elements::Le16),
8602            "le_32" => Ok(Elements::Le32),
8603            "le_64" => Ok(Elements::Le64),
8604            "le_8" => Ok(Elements::Le8),
8605            "left_extend_16_32" => Ok(Elements::LeftExtend16_32),
8606            "left_extend_16_64" => Ok(Elements::LeftExtend16_64),
8607            "left_extend_1_16" => Ok(Elements::LeftExtend1_16),
8608            "left_extend_1_32" => Ok(Elements::LeftExtend1_32),
8609            "left_extend_1_64" => Ok(Elements::LeftExtend1_64),
8610            "left_extend_1_8" => Ok(Elements::LeftExtend1_8),
8611            "left_extend_32_64" => Ok(Elements::LeftExtend32_64),
8612            "left_extend_8_16" => Ok(Elements::LeftExtend8_16),
8613            "left_extend_8_32" => Ok(Elements::LeftExtend8_32),
8614            "left_extend_8_64" => Ok(Elements::LeftExtend8_64),
8615            "left_pad_high_16_32" => Ok(Elements::LeftPadHigh16_32),
8616            "left_pad_high_16_64" => Ok(Elements::LeftPadHigh16_64),
8617            "left_pad_high_1_16" => Ok(Elements::LeftPadHigh1_16),
8618            "left_pad_high_1_32" => Ok(Elements::LeftPadHigh1_32),
8619            "left_pad_high_1_64" => Ok(Elements::LeftPadHigh1_64),
8620            "left_pad_high_1_8" => Ok(Elements::LeftPadHigh1_8),
8621            "left_pad_high_32_64" => Ok(Elements::LeftPadHigh32_64),
8622            "left_pad_high_8_16" => Ok(Elements::LeftPadHigh8_16),
8623            "left_pad_high_8_32" => Ok(Elements::LeftPadHigh8_32),
8624            "left_pad_high_8_64" => Ok(Elements::LeftPadHigh8_64),
8625            "left_pad_low_16_32" => Ok(Elements::LeftPadLow16_32),
8626            "left_pad_low_16_64" => Ok(Elements::LeftPadLow16_64),
8627            "left_pad_low_1_16" => Ok(Elements::LeftPadLow1_16),
8628            "left_pad_low_1_32" => Ok(Elements::LeftPadLow1_32),
8629            "left_pad_low_1_64" => Ok(Elements::LeftPadLow1_64),
8630            "left_pad_low_1_8" => Ok(Elements::LeftPadLow1_8),
8631            "left_pad_low_32_64" => Ok(Elements::LeftPadLow32_64),
8632            "left_pad_low_8_16" => Ok(Elements::LeftPadLow8_16),
8633            "left_pad_low_8_32" => Ok(Elements::LeftPadLow8_32),
8634            "left_pad_low_8_64" => Ok(Elements::LeftPadLow8_64),
8635            "left_rotate_16" => Ok(Elements::LeftRotate16),
8636            "left_rotate_32" => Ok(Elements::LeftRotate32),
8637            "left_rotate_64" => Ok(Elements::LeftRotate64),
8638            "left_rotate_8" => Ok(Elements::LeftRotate8),
8639            "left_shift_16" => Ok(Elements::LeftShift16),
8640            "left_shift_32" => Ok(Elements::LeftShift32),
8641            "left_shift_64" => Ok(Elements::LeftShift64),
8642            "left_shift_8" => Ok(Elements::LeftShift8),
8643            "left_shift_with_16" => Ok(Elements::LeftShiftWith16),
8644            "left_shift_with_32" => Ok(Elements::LeftShiftWith32),
8645            "left_shift_with_64" => Ok(Elements::LeftShiftWith64),
8646            "left_shift_with_8" => Ok(Elements::LeftShiftWith8),
8647            "leftmost_16_1" => Ok(Elements::Leftmost16_1),
8648            "leftmost_16_2" => Ok(Elements::Leftmost16_2),
8649            "leftmost_16_4" => Ok(Elements::Leftmost16_4),
8650            "leftmost_16_8" => Ok(Elements::Leftmost16_8),
8651            "leftmost_32_1" => Ok(Elements::Leftmost32_1),
8652            "leftmost_32_16" => Ok(Elements::Leftmost32_16),
8653            "leftmost_32_2" => Ok(Elements::Leftmost32_2),
8654            "leftmost_32_4" => Ok(Elements::Leftmost32_4),
8655            "leftmost_32_8" => Ok(Elements::Leftmost32_8),
8656            "leftmost_64_1" => Ok(Elements::Leftmost64_1),
8657            "leftmost_64_16" => Ok(Elements::Leftmost64_16),
8658            "leftmost_64_2" => Ok(Elements::Leftmost64_2),
8659            "leftmost_64_32" => Ok(Elements::Leftmost64_32),
8660            "leftmost_64_4" => Ok(Elements::Leftmost64_4),
8661            "leftmost_64_8" => Ok(Elements::Leftmost64_8),
8662            "leftmost_8_1" => Ok(Elements::Leftmost8_1),
8663            "leftmost_8_2" => Ok(Elements::Leftmost8_2),
8664            "leftmost_8_4" => Ok(Elements::Leftmost8_4),
8665            "linear_combination_1" => Ok(Elements::LinearCombination1),
8666            "linear_verify_1" => Ok(Elements::LinearVerify1),
8667            "lock_time" => Ok(Elements::LockTime),
8668            "low_1" => Ok(Elements::Low1),
8669            "low_16" => Ok(Elements::Low16),
8670            "low_32" => Ok(Elements::Low32),
8671            "low_64" => Ok(Elements::Low64),
8672            "low_8" => Ok(Elements::Low8),
8673            "lt_16" => Ok(Elements::Lt16),
8674            "lt_32" => Ok(Elements::Lt32),
8675            "lt_64" => Ok(Elements::Lt64),
8676            "lt_8" => Ok(Elements::Lt8),
8677            "maj_1" => Ok(Elements::Maj1),
8678            "maj_16" => Ok(Elements::Maj16),
8679            "maj_32" => Ok(Elements::Maj32),
8680            "maj_64" => Ok(Elements::Maj64),
8681            "maj_8" => Ok(Elements::Maj8),
8682            "max_16" => Ok(Elements::Max16),
8683            "max_32" => Ok(Elements::Max32),
8684            "max_64" => Ok(Elements::Max64),
8685            "max_8" => Ok(Elements::Max8),
8686            "median_16" => Ok(Elements::Median16),
8687            "median_32" => Ok(Elements::Median32),
8688            "median_64" => Ok(Elements::Median64),
8689            "median_8" => Ok(Elements::Median8),
8690            "min_16" => Ok(Elements::Min16),
8691            "min_32" => Ok(Elements::Min32),
8692            "min_64" => Ok(Elements::Min64),
8693            "min_8" => Ok(Elements::Min8),
8694            "modulo_16" => Ok(Elements::Modulo16),
8695            "modulo_32" => Ok(Elements::Modulo32),
8696            "modulo_64" => Ok(Elements::Modulo64),
8697            "modulo_8" => Ok(Elements::Modulo8),
8698            "multiply_16" => Ok(Elements::Multiply16),
8699            "multiply_32" => Ok(Elements::Multiply32),
8700            "multiply_64" => Ok(Elements::Multiply64),
8701            "multiply_8" => Ok(Elements::Multiply8),
8702            "negate_16" => Ok(Elements::Negate16),
8703            "negate_32" => Ok(Elements::Negate32),
8704            "negate_64" => Ok(Elements::Negate64),
8705            "negate_8" => Ok(Elements::Negate8),
8706            "new_issuance_contract" => Ok(Elements::NewIssuanceContract),
8707            "nonce_hash" => Ok(Elements::NonceHash),
8708            "num_inputs" => Ok(Elements::NumInputs),
8709            "num_outputs" => Ok(Elements::NumOutputs),
8710            "one_16" => Ok(Elements::One16),
8711            "one_32" => Ok(Elements::One32),
8712            "one_64" => Ok(Elements::One64),
8713            "one_8" => Ok(Elements::One8),
8714            "or_1" => Ok(Elements::Or1),
8715            "or_16" => Ok(Elements::Or16),
8716            "or_32" => Ok(Elements::Or32),
8717            "or_64" => Ok(Elements::Or64),
8718            "or_8" => Ok(Elements::Or8),
8719            "outpoint_hash" => Ok(Elements::OutpointHash),
8720            "output_amount" => Ok(Elements::OutputAmount),
8721            "output_amounts_hash" => Ok(Elements::OutputAmountsHash),
8722            "output_asset" => Ok(Elements::OutputAsset),
8723            "output_hash" => Ok(Elements::OutputHash),
8724            "output_is_fee" => Ok(Elements::OutputIsFee),
8725            "output_nonce" => Ok(Elements::OutputNonce),
8726            "output_nonces_hash" => Ok(Elements::OutputNoncesHash),
8727            "output_null_datum" => Ok(Elements::OutputNullDatum),
8728            "output_range_proof" => Ok(Elements::OutputRangeProof),
8729            "output_range_proofs_hash" => Ok(Elements::OutputRangeProofsHash),
8730            "output_script_hash" => Ok(Elements::OutputScriptHash),
8731            "output_scripts_hash" => Ok(Elements::OutputScriptsHash),
8732            "output_surjection_proof" => Ok(Elements::OutputSurjectionProof),
8733            "output_surjection_proofs_hash" => Ok(Elements::OutputSurjectionProofsHash),
8734            "outputs_hash" => Ok(Elements::OutputsHash),
8735            "parse_lock" => Ok(Elements::ParseLock),
8736            "parse_sequence" => Ok(Elements::ParseSequence),
8737            "point_verify_1" => Ok(Elements::PointVerify1),
8738            "reissuance_blinding" => Ok(Elements::ReissuanceBlinding),
8739            "reissuance_entropy" => Ok(Elements::ReissuanceEntropy),
8740            "right_extend_16_32" => Ok(Elements::RightExtend16_32),
8741            "right_extend_16_64" => Ok(Elements::RightExtend16_64),
8742            "right_extend_32_64" => Ok(Elements::RightExtend32_64),
8743            "right_extend_8_16" => Ok(Elements::RightExtend8_16),
8744            "right_extend_8_32" => Ok(Elements::RightExtend8_32),
8745            "right_extend_8_64" => Ok(Elements::RightExtend8_64),
8746            "right_pad_high_16_32" => Ok(Elements::RightPadHigh16_32),
8747            "right_pad_high_16_64" => Ok(Elements::RightPadHigh16_64),
8748            "right_pad_high_1_16" => Ok(Elements::RightPadHigh1_16),
8749            "right_pad_high_1_32" => Ok(Elements::RightPadHigh1_32),
8750            "right_pad_high_1_64" => Ok(Elements::RightPadHigh1_64),
8751            "right_pad_high_1_8" => Ok(Elements::RightPadHigh1_8),
8752            "right_pad_high_32_64" => Ok(Elements::RightPadHigh32_64),
8753            "right_pad_high_8_16" => Ok(Elements::RightPadHigh8_16),
8754            "right_pad_high_8_32" => Ok(Elements::RightPadHigh8_32),
8755            "right_pad_high_8_64" => Ok(Elements::RightPadHigh8_64),
8756            "right_pad_low_16_32" => Ok(Elements::RightPadLow16_32),
8757            "right_pad_low_16_64" => Ok(Elements::RightPadLow16_64),
8758            "right_pad_low_1_16" => Ok(Elements::RightPadLow1_16),
8759            "right_pad_low_1_32" => Ok(Elements::RightPadLow1_32),
8760            "right_pad_low_1_64" => Ok(Elements::RightPadLow1_64),
8761            "right_pad_low_1_8" => Ok(Elements::RightPadLow1_8),
8762            "right_pad_low_32_64" => Ok(Elements::RightPadLow32_64),
8763            "right_pad_low_8_16" => Ok(Elements::RightPadLow8_16),
8764            "right_pad_low_8_32" => Ok(Elements::RightPadLow8_32),
8765            "right_pad_low_8_64" => Ok(Elements::RightPadLow8_64),
8766            "right_rotate_16" => Ok(Elements::RightRotate16),
8767            "right_rotate_32" => Ok(Elements::RightRotate32),
8768            "right_rotate_64" => Ok(Elements::RightRotate64),
8769            "right_rotate_8" => Ok(Elements::RightRotate8),
8770            "right_shift_16" => Ok(Elements::RightShift16),
8771            "right_shift_32" => Ok(Elements::RightShift32),
8772            "right_shift_64" => Ok(Elements::RightShift64),
8773            "right_shift_8" => Ok(Elements::RightShift8),
8774            "right_shift_with_16" => Ok(Elements::RightShiftWith16),
8775            "right_shift_with_32" => Ok(Elements::RightShiftWith32),
8776            "right_shift_with_64" => Ok(Elements::RightShiftWith64),
8777            "right_shift_with_8" => Ok(Elements::RightShiftWith8),
8778            "rightmost_16_1" => Ok(Elements::Rightmost16_1),
8779            "rightmost_16_2" => Ok(Elements::Rightmost16_2),
8780            "rightmost_16_4" => Ok(Elements::Rightmost16_4),
8781            "rightmost_16_8" => Ok(Elements::Rightmost16_8),
8782            "rightmost_32_1" => Ok(Elements::Rightmost32_1),
8783            "rightmost_32_16" => Ok(Elements::Rightmost32_16),
8784            "rightmost_32_2" => Ok(Elements::Rightmost32_2),
8785            "rightmost_32_4" => Ok(Elements::Rightmost32_4),
8786            "rightmost_32_8" => Ok(Elements::Rightmost32_8),
8787            "rightmost_64_1" => Ok(Elements::Rightmost64_1),
8788            "rightmost_64_16" => Ok(Elements::Rightmost64_16),
8789            "rightmost_64_2" => Ok(Elements::Rightmost64_2),
8790            "rightmost_64_32" => Ok(Elements::Rightmost64_32),
8791            "rightmost_64_4" => Ok(Elements::Rightmost64_4),
8792            "rightmost_64_8" => Ok(Elements::Rightmost64_8),
8793            "rightmost_8_1" => Ok(Elements::Rightmost8_1),
8794            "rightmost_8_2" => Ok(Elements::Rightmost8_2),
8795            "rightmost_8_4" => Ok(Elements::Rightmost8_4),
8796            "scalar_add" => Ok(Elements::ScalarAdd),
8797            "scalar_invert" => Ok(Elements::ScalarInvert),
8798            "scalar_is_zero" => Ok(Elements::ScalarIsZero),
8799            "scalar_multiply" => Ok(Elements::ScalarMultiply),
8800            "scalar_multiply_lambda" => Ok(Elements::ScalarMultiplyLambda),
8801            "scalar_negate" => Ok(Elements::ScalarNegate),
8802            "scalar_normalize" => Ok(Elements::ScalarNormalize),
8803            "scalar_square" => Ok(Elements::ScalarSquare),
8804            "scale" => Ok(Elements::Scale),
8805            "script_cmr" => Ok(Elements::ScriptCMR),
8806            "sha_256_block" => Ok(Elements::Sha256Block),
8807            "sha_256_ctx_8_add_1" => Ok(Elements::Sha256Ctx8Add1),
8808            "sha_256_ctx_8_add_128" => Ok(Elements::Sha256Ctx8Add128),
8809            "sha_256_ctx_8_add_16" => Ok(Elements::Sha256Ctx8Add16),
8810            "sha_256_ctx_8_add_2" => Ok(Elements::Sha256Ctx8Add2),
8811            "sha_256_ctx_8_add_256" => Ok(Elements::Sha256Ctx8Add256),
8812            "sha_256_ctx_8_add_32" => Ok(Elements::Sha256Ctx8Add32),
8813            "sha_256_ctx_8_add_4" => Ok(Elements::Sha256Ctx8Add4),
8814            "sha_256_ctx_8_add_512" => Ok(Elements::Sha256Ctx8Add512),
8815            "sha_256_ctx_8_add_64" => Ok(Elements::Sha256Ctx8Add64),
8816            "sha_256_ctx_8_add_8" => Ok(Elements::Sha256Ctx8Add8),
8817            "sha_256_ctx_8_add_buffer_511" => Ok(Elements::Sha256Ctx8AddBuffer511),
8818            "sha_256_ctx_8_finalize" => Ok(Elements::Sha256Ctx8Finalize),
8819            "sha_256_ctx_8_init" => Ok(Elements::Sha256Ctx8Init),
8820            "sha_256_iv" => Ok(Elements::Sha256Iv),
8821            "sig_all_hash" => Ok(Elements::SigAllHash),
8822            "some_1" => Ok(Elements::Some1),
8823            "some_16" => Ok(Elements::Some16),
8824            "some_32" => Ok(Elements::Some32),
8825            "some_64" => Ok(Elements::Some64),
8826            "some_8" => Ok(Elements::Some8),
8827            "subtract_16" => Ok(Elements::Subtract16),
8828            "subtract_32" => Ok(Elements::Subtract32),
8829            "subtract_64" => Ok(Elements::Subtract64),
8830            "subtract_8" => Ok(Elements::Subtract8),
8831            "swu" => Ok(Elements::Swu),
8832            "tap_env_hash" => Ok(Elements::TapEnvHash),
8833            "tapdata_init" => Ok(Elements::TapdataInit),
8834            "tapleaf_hash" => Ok(Elements::TapleafHash),
8835            "tapleaf_version" => Ok(Elements::TapleafVersion),
8836            "tappath" => Ok(Elements::Tappath),
8837            "tappath_hash" => Ok(Elements::TappathHash),
8838            "total_fee" => Ok(Elements::TotalFee),
8839            "transaction_id" => Ok(Elements::TransactionId),
8840            "tx_hash" => Ok(Elements::TxHash),
8841            "tx_is_final" => Ok(Elements::TxIsFinal),
8842            "tx_lock_height" => Ok(Elements::TxLockHeight),
8843            "tx_lock_time" => Ok(Elements::TxLockTime),
8844            "verify" => Ok(Elements::Verify),
8845            "version" => Ok(Elements::Version),
8846            "xor_1" => Ok(Elements::Xor1),
8847            "xor_16" => Ok(Elements::Xor16),
8848            "xor_32" => Ok(Elements::Xor32),
8849            "xor_64" => Ok(Elements::Xor64),
8850            "xor_8" => Ok(Elements::Xor8),
8851            "xor_xor_1" => Ok(Elements::XorXor1),
8852            "xor_xor_16" => Ok(Elements::XorXor16),
8853            "xor_xor_32" => Ok(Elements::XorXor32),
8854            "xor_xor_64" => Ok(Elements::XorXor64),
8855            "xor_xor_8" => Ok(Elements::XorXor8),
8856            x => Err(crate::Error::InvalidJetName(x.to_owned())),
8857        }
8858    }
8859}
8860
8861pub(crate) fn c_jet_ptr(jet: &Elements) -> fn(&mut CFrameItem, CFrameItem, &CElementsTxEnv) -> bool {
8862    match jet {
8863        Elements::Add16 => simplicity_sys::c_jets::jets_wrapper::add_16,
8864        Elements::Add32 => simplicity_sys::c_jets::jets_wrapper::add_32,
8865        Elements::Add64 => simplicity_sys::c_jets::jets_wrapper::add_64,
8866        Elements::Add8 => simplicity_sys::c_jets::jets_wrapper::add_8,
8867        Elements::All16 => simplicity_sys::c_jets::jets_wrapper::all_16,
8868        Elements::All32 => simplicity_sys::c_jets::jets_wrapper::all_32,
8869        Elements::All64 => simplicity_sys::c_jets::jets_wrapper::all_64,
8870        Elements::All8 => simplicity_sys::c_jets::jets_wrapper::all_8,
8871        Elements::And1 => simplicity_sys::c_jets::jets_wrapper::and_1,
8872        Elements::And16 => simplicity_sys::c_jets::jets_wrapper::and_16,
8873        Elements::And32 => simplicity_sys::c_jets::jets_wrapper::and_32,
8874        Elements::And64 => simplicity_sys::c_jets::jets_wrapper::and_64,
8875        Elements::And8 => simplicity_sys::c_jets::jets_wrapper::and_8,
8876        Elements::AnnexHash => simplicity_sys::c_jets::jets_wrapper::annex_hash,
8877        Elements::AssetAmountHash => simplicity_sys::c_jets::jets_wrapper::asset_amount_hash,
8878        Elements::Bip0340Verify => simplicity_sys::c_jets::jets_wrapper::bip_0340_verify,
8879        Elements::BrokenDoNotUseCheckLockDistance => simplicity_sys::c_jets::jets_wrapper::broken_do_not_use_check_lock_distance,
8880        Elements::BrokenDoNotUseCheckLockDuration => simplicity_sys::c_jets::jets_wrapper::broken_do_not_use_check_lock_duration,
8881        Elements::BrokenDoNotUseTxLockDistance => simplicity_sys::c_jets::jets_wrapper::broken_do_not_use_tx_lock_distance,
8882        Elements::BrokenDoNotUseTxLockDuration => simplicity_sys::c_jets::jets_wrapper::broken_do_not_use_tx_lock_duration,
8883        Elements::BuildTapbranch => simplicity_sys::c_jets::jets_wrapper::build_tapbranch,
8884        Elements::BuildTapleafSimplicity => simplicity_sys::c_jets::jets_wrapper::build_tapleaf_simplicity,
8885        Elements::BuildTaptweak => simplicity_sys::c_jets::jets_wrapper::build_taptweak,
8886        Elements::CalculateAsset => simplicity_sys::c_jets::jets_wrapper::calculate_asset,
8887        Elements::CalculateConfidentialToken => simplicity_sys::c_jets::jets_wrapper::calculate_confidential_token,
8888        Elements::CalculateExplicitToken => simplicity_sys::c_jets::jets_wrapper::calculate_explicit_token,
8889        Elements::CalculateIssuanceEntropy => simplicity_sys::c_jets::jets_wrapper::calculate_issuance_entropy,
8890        Elements::Ch1 => simplicity_sys::c_jets::jets_wrapper::ch_1,
8891        Elements::Ch16 => simplicity_sys::c_jets::jets_wrapper::ch_16,
8892        Elements::Ch32 => simplicity_sys::c_jets::jets_wrapper::ch_32,
8893        Elements::Ch64 => simplicity_sys::c_jets::jets_wrapper::ch_64,
8894        Elements::Ch8 => simplicity_sys::c_jets::jets_wrapper::ch_8,
8895        Elements::CheckLockHeight => simplicity_sys::c_jets::jets_wrapper::check_lock_height,
8896        Elements::CheckLockTime => simplicity_sys::c_jets::jets_wrapper::check_lock_time,
8897        Elements::CheckSigVerify => simplicity_sys::c_jets::jets_wrapper::check_sig_verify,
8898        Elements::Complement1 => simplicity_sys::c_jets::jets_wrapper::complement_1,
8899        Elements::Complement16 => simplicity_sys::c_jets::jets_wrapper::complement_16,
8900        Elements::Complement32 => simplicity_sys::c_jets::jets_wrapper::complement_32,
8901        Elements::Complement64 => simplicity_sys::c_jets::jets_wrapper::complement_64,
8902        Elements::Complement8 => simplicity_sys::c_jets::jets_wrapper::complement_8,
8903        Elements::CurrentAmount => simplicity_sys::c_jets::jets_wrapper::current_amount,
8904        Elements::CurrentAnnexHash => simplicity_sys::c_jets::jets_wrapper::current_annex_hash,
8905        Elements::CurrentAsset => simplicity_sys::c_jets::jets_wrapper::current_asset,
8906        Elements::CurrentIndex => simplicity_sys::c_jets::jets_wrapper::current_index,
8907        Elements::CurrentIssuanceAssetAmount => simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_amount,
8908        Elements::CurrentIssuanceAssetProof => simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_proof,
8909        Elements::CurrentIssuanceTokenAmount => simplicity_sys::c_jets::jets_wrapper::current_issuance_token_amount,
8910        Elements::CurrentIssuanceTokenProof => simplicity_sys::c_jets::jets_wrapper::current_issuance_token_proof,
8911        Elements::CurrentNewIssuanceContract => simplicity_sys::c_jets::jets_wrapper::current_new_issuance_contract,
8912        Elements::CurrentPegin => simplicity_sys::c_jets::jets_wrapper::current_pegin,
8913        Elements::CurrentPrevOutpoint => simplicity_sys::c_jets::jets_wrapper::current_prev_outpoint,
8914        Elements::CurrentReissuanceBlinding => simplicity_sys::c_jets::jets_wrapper::current_reissuance_blinding,
8915        Elements::CurrentReissuanceEntropy => simplicity_sys::c_jets::jets_wrapper::current_reissuance_entropy,
8916        Elements::CurrentScriptHash => simplicity_sys::c_jets::jets_wrapper::current_script_hash,
8917        Elements::CurrentScriptSigHash => simplicity_sys::c_jets::jets_wrapper::current_script_sig_hash,
8918        Elements::CurrentSequence => simplicity_sys::c_jets::jets_wrapper::current_sequence,
8919        Elements::Decompress => simplicity_sys::c_jets::jets_wrapper::decompress,
8920        Elements::Decrement16 => simplicity_sys::c_jets::jets_wrapper::decrement_16,
8921        Elements::Decrement32 => simplicity_sys::c_jets::jets_wrapper::decrement_32,
8922        Elements::Decrement64 => simplicity_sys::c_jets::jets_wrapper::decrement_64,
8923        Elements::Decrement8 => simplicity_sys::c_jets::jets_wrapper::decrement_8,
8924        Elements::DivMod128_64 => simplicity_sys::c_jets::jets_wrapper::div_mod_128_64,
8925        Elements::DivMod16 => simplicity_sys::c_jets::jets_wrapper::div_mod_16,
8926        Elements::DivMod32 => simplicity_sys::c_jets::jets_wrapper::div_mod_32,
8927        Elements::DivMod64 => simplicity_sys::c_jets::jets_wrapper::div_mod_64,
8928        Elements::DivMod8 => simplicity_sys::c_jets::jets_wrapper::div_mod_8,
8929        Elements::Divide16 => simplicity_sys::c_jets::jets_wrapper::divide_16,
8930        Elements::Divide32 => simplicity_sys::c_jets::jets_wrapper::divide_32,
8931        Elements::Divide64 => simplicity_sys::c_jets::jets_wrapper::divide_64,
8932        Elements::Divide8 => simplicity_sys::c_jets::jets_wrapper::divide_8,
8933        Elements::Divides16 => simplicity_sys::c_jets::jets_wrapper::divides_16,
8934        Elements::Divides32 => simplicity_sys::c_jets::jets_wrapper::divides_32,
8935        Elements::Divides64 => simplicity_sys::c_jets::jets_wrapper::divides_64,
8936        Elements::Divides8 => simplicity_sys::c_jets::jets_wrapper::divides_8,
8937        Elements::Eq1 => simplicity_sys::c_jets::jets_wrapper::eq_1,
8938        Elements::Eq16 => simplicity_sys::c_jets::jets_wrapper::eq_16,
8939        Elements::Eq256 => simplicity_sys::c_jets::jets_wrapper::eq_256,
8940        Elements::Eq32 => simplicity_sys::c_jets::jets_wrapper::eq_32,
8941        Elements::Eq64 => simplicity_sys::c_jets::jets_wrapper::eq_64,
8942        Elements::Eq8 => simplicity_sys::c_jets::jets_wrapper::eq_8,
8943        Elements::FeAdd => simplicity_sys::c_jets::jets_wrapper::fe_add,
8944        Elements::FeInvert => simplicity_sys::c_jets::jets_wrapper::fe_invert,
8945        Elements::FeIsOdd => simplicity_sys::c_jets::jets_wrapper::fe_is_odd,
8946        Elements::FeIsZero => simplicity_sys::c_jets::jets_wrapper::fe_is_zero,
8947        Elements::FeMultiply => simplicity_sys::c_jets::jets_wrapper::fe_multiply,
8948        Elements::FeMultiplyBeta => simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta,
8949        Elements::FeNegate => simplicity_sys::c_jets::jets_wrapper::fe_negate,
8950        Elements::FeNormalize => simplicity_sys::c_jets::jets_wrapper::fe_normalize,
8951        Elements::FeSquare => simplicity_sys::c_jets::jets_wrapper::fe_square,
8952        Elements::FeSquareRoot => simplicity_sys::c_jets::jets_wrapper::fe_square_root,
8953        Elements::FullAdd16 => simplicity_sys::c_jets::jets_wrapper::full_add_16,
8954        Elements::FullAdd32 => simplicity_sys::c_jets::jets_wrapper::full_add_32,
8955        Elements::FullAdd64 => simplicity_sys::c_jets::jets_wrapper::full_add_64,
8956        Elements::FullAdd8 => simplicity_sys::c_jets::jets_wrapper::full_add_8,
8957        Elements::FullDecrement16 => simplicity_sys::c_jets::jets_wrapper::full_decrement_16,
8958        Elements::FullDecrement32 => simplicity_sys::c_jets::jets_wrapper::full_decrement_32,
8959        Elements::FullDecrement64 => simplicity_sys::c_jets::jets_wrapper::full_decrement_64,
8960        Elements::FullDecrement8 => simplicity_sys::c_jets::jets_wrapper::full_decrement_8,
8961        Elements::FullIncrement16 => simplicity_sys::c_jets::jets_wrapper::full_increment_16,
8962        Elements::FullIncrement32 => simplicity_sys::c_jets::jets_wrapper::full_increment_32,
8963        Elements::FullIncrement64 => simplicity_sys::c_jets::jets_wrapper::full_increment_64,
8964        Elements::FullIncrement8 => simplicity_sys::c_jets::jets_wrapper::full_increment_8,
8965        Elements::FullLeftShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1,
8966        Elements::FullLeftShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2,
8967        Elements::FullLeftShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4,
8968        Elements::FullLeftShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8,
8969        Elements::FullLeftShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1,
8970        Elements::FullLeftShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16,
8971        Elements::FullLeftShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2,
8972        Elements::FullLeftShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4,
8973        Elements::FullLeftShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8,
8974        Elements::FullLeftShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1,
8975        Elements::FullLeftShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16,
8976        Elements::FullLeftShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2,
8977        Elements::FullLeftShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32,
8978        Elements::FullLeftShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4,
8979        Elements::FullLeftShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8,
8980        Elements::FullLeftShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1,
8981        Elements::FullLeftShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2,
8982        Elements::FullLeftShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4,
8983        Elements::FullMultiply16 => simplicity_sys::c_jets::jets_wrapper::full_multiply_16,
8984        Elements::FullMultiply32 => simplicity_sys::c_jets::jets_wrapper::full_multiply_32,
8985        Elements::FullMultiply64 => simplicity_sys::c_jets::jets_wrapper::full_multiply_64,
8986        Elements::FullMultiply8 => simplicity_sys::c_jets::jets_wrapper::full_multiply_8,
8987        Elements::FullRightShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1,
8988        Elements::FullRightShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2,
8989        Elements::FullRightShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4,
8990        Elements::FullRightShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8,
8991        Elements::FullRightShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1,
8992        Elements::FullRightShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16,
8993        Elements::FullRightShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2,
8994        Elements::FullRightShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4,
8995        Elements::FullRightShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8,
8996        Elements::FullRightShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1,
8997        Elements::FullRightShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16,
8998        Elements::FullRightShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2,
8999        Elements::FullRightShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32,
9000        Elements::FullRightShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4,
9001        Elements::FullRightShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8,
9002        Elements::FullRightShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1,
9003        Elements::FullRightShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2,
9004        Elements::FullRightShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4,
9005        Elements::FullSubtract16 => simplicity_sys::c_jets::jets_wrapper::full_subtract_16,
9006        Elements::FullSubtract32 => simplicity_sys::c_jets::jets_wrapper::full_subtract_32,
9007        Elements::FullSubtract64 => simplicity_sys::c_jets::jets_wrapper::full_subtract_64,
9008        Elements::FullSubtract8 => simplicity_sys::c_jets::jets_wrapper::full_subtract_8,
9009        Elements::GeIsOnCurve => simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve,
9010        Elements::GeNegate => simplicity_sys::c_jets::jets_wrapper::ge_negate,
9011        Elements::GejAdd => simplicity_sys::c_jets::jets_wrapper::gej_add,
9012        Elements::GejDouble => simplicity_sys::c_jets::jets_wrapper::gej_double,
9013        Elements::GejEquiv => simplicity_sys::c_jets::jets_wrapper::gej_equiv,
9014        Elements::GejGeAdd => simplicity_sys::c_jets::jets_wrapper::gej_ge_add,
9015        Elements::GejGeAddEx => simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex,
9016        Elements::GejGeEquiv => simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv,
9017        Elements::GejInfinity => simplicity_sys::c_jets::jets_wrapper::gej_infinity,
9018        Elements::GejIsInfinity => simplicity_sys::c_jets::jets_wrapper::gej_is_infinity,
9019        Elements::GejIsOnCurve => simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve,
9020        Elements::GejNegate => simplicity_sys::c_jets::jets_wrapper::gej_negate,
9021        Elements::GejNormalize => simplicity_sys::c_jets::jets_wrapper::gej_normalize,
9022        Elements::GejRescale => simplicity_sys::c_jets::jets_wrapper::gej_rescale,
9023        Elements::GejXEquiv => simplicity_sys::c_jets::jets_wrapper::gej_x_equiv,
9024        Elements::GejYIsOdd => simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd,
9025        Elements::Generate => simplicity_sys::c_jets::jets_wrapper::generate,
9026        Elements::GenesisBlockHash => simplicity_sys::c_jets::jets_wrapper::genesis_block_hash,
9027        Elements::HashToCurve => simplicity_sys::c_jets::jets_wrapper::hash_to_curve,
9028        Elements::High1 => simplicity_sys::c_jets::jets_wrapper::high_1,
9029        Elements::High16 => simplicity_sys::c_jets::jets_wrapper::high_16,
9030        Elements::High32 => simplicity_sys::c_jets::jets_wrapper::high_32,
9031        Elements::High64 => simplicity_sys::c_jets::jets_wrapper::high_64,
9032        Elements::High8 => simplicity_sys::c_jets::jets_wrapper::high_8,
9033        Elements::Increment16 => simplicity_sys::c_jets::jets_wrapper::increment_16,
9034        Elements::Increment32 => simplicity_sys::c_jets::jets_wrapper::increment_32,
9035        Elements::Increment64 => simplicity_sys::c_jets::jets_wrapper::increment_64,
9036        Elements::Increment8 => simplicity_sys::c_jets::jets_wrapper::increment_8,
9037        Elements::InputAmount => simplicity_sys::c_jets::jets_wrapper::input_amount,
9038        Elements::InputAmountsHash => simplicity_sys::c_jets::jets_wrapper::input_amounts_hash,
9039        Elements::InputAnnexHash => simplicity_sys::c_jets::jets_wrapper::input_annex_hash,
9040        Elements::InputAnnexesHash => simplicity_sys::c_jets::jets_wrapper::input_annexes_hash,
9041        Elements::InputAsset => simplicity_sys::c_jets::jets_wrapper::input_asset,
9042        Elements::InputHash => simplicity_sys::c_jets::jets_wrapper::input_hash,
9043        Elements::InputOutpointsHash => simplicity_sys::c_jets::jets_wrapper::input_outpoints_hash,
9044        Elements::InputPegin => simplicity_sys::c_jets::jets_wrapper::input_pegin,
9045        Elements::InputPrevOutpoint => simplicity_sys::c_jets::jets_wrapper::input_prev_outpoint,
9046        Elements::InputScriptHash => simplicity_sys::c_jets::jets_wrapper::input_script_hash,
9047        Elements::InputScriptSigHash => simplicity_sys::c_jets::jets_wrapper::input_script_sig_hash,
9048        Elements::InputScriptSigsHash => simplicity_sys::c_jets::jets_wrapper::input_script_sigs_hash,
9049        Elements::InputScriptsHash => simplicity_sys::c_jets::jets_wrapper::input_scripts_hash,
9050        Elements::InputSequence => simplicity_sys::c_jets::jets_wrapper::input_sequence,
9051        Elements::InputSequencesHash => simplicity_sys::c_jets::jets_wrapper::input_sequences_hash,
9052        Elements::InputUtxoHash => simplicity_sys::c_jets::jets_wrapper::input_utxo_hash,
9053        Elements::InputUtxosHash => simplicity_sys::c_jets::jets_wrapper::input_utxos_hash,
9054        Elements::InputsHash => simplicity_sys::c_jets::jets_wrapper::inputs_hash,
9055        Elements::InternalKey => simplicity_sys::c_jets::jets_wrapper::internal_key,
9056        Elements::IsOne16 => simplicity_sys::c_jets::jets_wrapper::is_one_16,
9057        Elements::IsOne32 => simplicity_sys::c_jets::jets_wrapper::is_one_32,
9058        Elements::IsOne64 => simplicity_sys::c_jets::jets_wrapper::is_one_64,
9059        Elements::IsOne8 => simplicity_sys::c_jets::jets_wrapper::is_one_8,
9060        Elements::IsZero16 => simplicity_sys::c_jets::jets_wrapper::is_zero_16,
9061        Elements::IsZero32 => simplicity_sys::c_jets::jets_wrapper::is_zero_32,
9062        Elements::IsZero64 => simplicity_sys::c_jets::jets_wrapper::is_zero_64,
9063        Elements::IsZero8 => simplicity_sys::c_jets::jets_wrapper::is_zero_8,
9064        Elements::Issuance => simplicity_sys::c_jets::jets_wrapper::issuance,
9065        Elements::IssuanceAsset => simplicity_sys::c_jets::jets_wrapper::issuance_asset,
9066        Elements::IssuanceAssetAmount => simplicity_sys::c_jets::jets_wrapper::issuance_asset_amount,
9067        Elements::IssuanceAssetAmountsHash => simplicity_sys::c_jets::jets_wrapper::issuance_asset_amounts_hash,
9068        Elements::IssuanceAssetProof => simplicity_sys::c_jets::jets_wrapper::issuance_asset_proof,
9069        Elements::IssuanceBlindingEntropyHash => simplicity_sys::c_jets::jets_wrapper::issuance_blinding_entropy_hash,
9070        Elements::IssuanceEntropy => simplicity_sys::c_jets::jets_wrapper::issuance_entropy,
9071        Elements::IssuanceHash => simplicity_sys::c_jets::jets_wrapper::issuance_hash,
9072        Elements::IssuanceRangeProofsHash => simplicity_sys::c_jets::jets_wrapper::issuance_range_proofs_hash,
9073        Elements::IssuanceToken => simplicity_sys::c_jets::jets_wrapper::issuance_token,
9074        Elements::IssuanceTokenAmount => simplicity_sys::c_jets::jets_wrapper::issuance_token_amount,
9075        Elements::IssuanceTokenAmountsHash => simplicity_sys::c_jets::jets_wrapper::issuance_token_amounts_hash,
9076        Elements::IssuanceTokenProof => simplicity_sys::c_jets::jets_wrapper::issuance_token_proof,
9077        Elements::IssuancesHash => simplicity_sys::c_jets::jets_wrapper::issuances_hash,
9078        Elements::LbtcAsset => simplicity_sys::c_jets::jets_wrapper::lbtc_asset,
9079        Elements::Le16 => simplicity_sys::c_jets::jets_wrapper::le_16,
9080        Elements::Le32 => simplicity_sys::c_jets::jets_wrapper::le_32,
9081        Elements::Le64 => simplicity_sys::c_jets::jets_wrapper::le_64,
9082        Elements::Le8 => simplicity_sys::c_jets::jets_wrapper::le_8,
9083        Elements::LeftExtend16_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_32,
9084        Elements::LeftExtend16_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_64,
9085        Elements::LeftExtend1_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_16,
9086        Elements::LeftExtend1_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_32,
9087        Elements::LeftExtend1_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_64,
9088        Elements::LeftExtend1_8 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_8,
9089        Elements::LeftExtend32_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_32_64,
9090        Elements::LeftExtend8_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_16,
9091        Elements::LeftExtend8_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_32,
9092        Elements::LeftExtend8_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_64,
9093        Elements::LeftPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32,
9094        Elements::LeftPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64,
9095        Elements::LeftPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16,
9096        Elements::LeftPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32,
9097        Elements::LeftPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64,
9098        Elements::LeftPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8,
9099        Elements::LeftPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64,
9100        Elements::LeftPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16,
9101        Elements::LeftPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32,
9102        Elements::LeftPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64,
9103        Elements::LeftPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32,
9104        Elements::LeftPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64,
9105        Elements::LeftPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16,
9106        Elements::LeftPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32,
9107        Elements::LeftPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64,
9108        Elements::LeftPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8,
9109        Elements::LeftPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64,
9110        Elements::LeftPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16,
9111        Elements::LeftPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32,
9112        Elements::LeftPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64,
9113        Elements::LeftRotate16 => simplicity_sys::c_jets::jets_wrapper::left_rotate_16,
9114        Elements::LeftRotate32 => simplicity_sys::c_jets::jets_wrapper::left_rotate_32,
9115        Elements::LeftRotate64 => simplicity_sys::c_jets::jets_wrapper::left_rotate_64,
9116        Elements::LeftRotate8 => simplicity_sys::c_jets::jets_wrapper::left_rotate_8,
9117        Elements::LeftShift16 => simplicity_sys::c_jets::jets_wrapper::left_shift_16,
9118        Elements::LeftShift32 => simplicity_sys::c_jets::jets_wrapper::left_shift_32,
9119        Elements::LeftShift64 => simplicity_sys::c_jets::jets_wrapper::left_shift_64,
9120        Elements::LeftShift8 => simplicity_sys::c_jets::jets_wrapper::left_shift_8,
9121        Elements::LeftShiftWith16 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_16,
9122        Elements::LeftShiftWith32 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_32,
9123        Elements::LeftShiftWith64 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_64,
9124        Elements::LeftShiftWith8 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_8,
9125        Elements::Leftmost16_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_1,
9126        Elements::Leftmost16_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_2,
9127        Elements::Leftmost16_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_4,
9128        Elements::Leftmost16_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_8,
9129        Elements::Leftmost32_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_1,
9130        Elements::Leftmost32_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_16,
9131        Elements::Leftmost32_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_2,
9132        Elements::Leftmost32_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_4,
9133        Elements::Leftmost32_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_8,
9134        Elements::Leftmost64_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_1,
9135        Elements::Leftmost64_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_16,
9136        Elements::Leftmost64_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_2,
9137        Elements::Leftmost64_32 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_32,
9138        Elements::Leftmost64_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_4,
9139        Elements::Leftmost64_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_8,
9140        Elements::Leftmost8_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_1,
9141        Elements::Leftmost8_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_2,
9142        Elements::Leftmost8_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_4,
9143        Elements::LinearCombination1 => simplicity_sys::c_jets::jets_wrapper::linear_combination_1,
9144        Elements::LinearVerify1 => simplicity_sys::c_jets::jets_wrapper::linear_verify_1,
9145        Elements::LockTime => simplicity_sys::c_jets::jets_wrapper::lock_time,
9146        Elements::Low1 => simplicity_sys::c_jets::jets_wrapper::low_1,
9147        Elements::Low16 => simplicity_sys::c_jets::jets_wrapper::low_16,
9148        Elements::Low32 => simplicity_sys::c_jets::jets_wrapper::low_32,
9149        Elements::Low64 => simplicity_sys::c_jets::jets_wrapper::low_64,
9150        Elements::Low8 => simplicity_sys::c_jets::jets_wrapper::low_8,
9151        Elements::Lt16 => simplicity_sys::c_jets::jets_wrapper::lt_16,
9152        Elements::Lt32 => simplicity_sys::c_jets::jets_wrapper::lt_32,
9153        Elements::Lt64 => simplicity_sys::c_jets::jets_wrapper::lt_64,
9154        Elements::Lt8 => simplicity_sys::c_jets::jets_wrapper::lt_8,
9155        Elements::Maj1 => simplicity_sys::c_jets::jets_wrapper::maj_1,
9156        Elements::Maj16 => simplicity_sys::c_jets::jets_wrapper::maj_16,
9157        Elements::Maj32 => simplicity_sys::c_jets::jets_wrapper::maj_32,
9158        Elements::Maj64 => simplicity_sys::c_jets::jets_wrapper::maj_64,
9159        Elements::Maj8 => simplicity_sys::c_jets::jets_wrapper::maj_8,
9160        Elements::Max16 => simplicity_sys::c_jets::jets_wrapper::max_16,
9161        Elements::Max32 => simplicity_sys::c_jets::jets_wrapper::max_32,
9162        Elements::Max64 => simplicity_sys::c_jets::jets_wrapper::max_64,
9163        Elements::Max8 => simplicity_sys::c_jets::jets_wrapper::max_8,
9164        Elements::Median16 => simplicity_sys::c_jets::jets_wrapper::median_16,
9165        Elements::Median32 => simplicity_sys::c_jets::jets_wrapper::median_32,
9166        Elements::Median64 => simplicity_sys::c_jets::jets_wrapper::median_64,
9167        Elements::Median8 => simplicity_sys::c_jets::jets_wrapper::median_8,
9168        Elements::Min16 => simplicity_sys::c_jets::jets_wrapper::min_16,
9169        Elements::Min32 => simplicity_sys::c_jets::jets_wrapper::min_32,
9170        Elements::Min64 => simplicity_sys::c_jets::jets_wrapper::min_64,
9171        Elements::Min8 => simplicity_sys::c_jets::jets_wrapper::min_8,
9172        Elements::Modulo16 => simplicity_sys::c_jets::jets_wrapper::modulo_16,
9173        Elements::Modulo32 => simplicity_sys::c_jets::jets_wrapper::modulo_32,
9174        Elements::Modulo64 => simplicity_sys::c_jets::jets_wrapper::modulo_64,
9175        Elements::Modulo8 => simplicity_sys::c_jets::jets_wrapper::modulo_8,
9176        Elements::Multiply16 => simplicity_sys::c_jets::jets_wrapper::multiply_16,
9177        Elements::Multiply32 => simplicity_sys::c_jets::jets_wrapper::multiply_32,
9178        Elements::Multiply64 => simplicity_sys::c_jets::jets_wrapper::multiply_64,
9179        Elements::Multiply8 => simplicity_sys::c_jets::jets_wrapper::multiply_8,
9180        Elements::Negate16 => simplicity_sys::c_jets::jets_wrapper::negate_16,
9181        Elements::Negate32 => simplicity_sys::c_jets::jets_wrapper::negate_32,
9182        Elements::Negate64 => simplicity_sys::c_jets::jets_wrapper::negate_64,
9183        Elements::Negate8 => simplicity_sys::c_jets::jets_wrapper::negate_8,
9184        Elements::NewIssuanceContract => simplicity_sys::c_jets::jets_wrapper::new_issuance_contract,
9185        Elements::NonceHash => simplicity_sys::c_jets::jets_wrapper::nonce_hash,
9186        Elements::NumInputs => simplicity_sys::c_jets::jets_wrapper::num_inputs,
9187        Elements::NumOutputs => simplicity_sys::c_jets::jets_wrapper::num_outputs,
9188        Elements::One16 => simplicity_sys::c_jets::jets_wrapper::one_16,
9189        Elements::One32 => simplicity_sys::c_jets::jets_wrapper::one_32,
9190        Elements::One64 => simplicity_sys::c_jets::jets_wrapper::one_64,
9191        Elements::One8 => simplicity_sys::c_jets::jets_wrapper::one_8,
9192        Elements::Or1 => simplicity_sys::c_jets::jets_wrapper::or_1,
9193        Elements::Or16 => simplicity_sys::c_jets::jets_wrapper::or_16,
9194        Elements::Or32 => simplicity_sys::c_jets::jets_wrapper::or_32,
9195        Elements::Or64 => simplicity_sys::c_jets::jets_wrapper::or_64,
9196        Elements::Or8 => simplicity_sys::c_jets::jets_wrapper::or_8,
9197        Elements::OutpointHash => simplicity_sys::c_jets::jets_wrapper::outpoint_hash,
9198        Elements::OutputAmount => simplicity_sys::c_jets::jets_wrapper::output_amount,
9199        Elements::OutputAmountsHash => simplicity_sys::c_jets::jets_wrapper::output_amounts_hash,
9200        Elements::OutputAsset => simplicity_sys::c_jets::jets_wrapper::output_asset,
9201        Elements::OutputHash => simplicity_sys::c_jets::jets_wrapper::output_hash,
9202        Elements::OutputIsFee => simplicity_sys::c_jets::jets_wrapper::output_is_fee,
9203        Elements::OutputNonce => simplicity_sys::c_jets::jets_wrapper::output_nonce,
9204        Elements::OutputNoncesHash => simplicity_sys::c_jets::jets_wrapper::output_nonces_hash,
9205        Elements::OutputNullDatum => simplicity_sys::c_jets::jets_wrapper::output_null_datum,
9206        Elements::OutputRangeProof => simplicity_sys::c_jets::jets_wrapper::output_range_proof,
9207        Elements::OutputRangeProofsHash => simplicity_sys::c_jets::jets_wrapper::output_range_proofs_hash,
9208        Elements::OutputScriptHash => simplicity_sys::c_jets::jets_wrapper::output_script_hash,
9209        Elements::OutputScriptsHash => simplicity_sys::c_jets::jets_wrapper::output_scripts_hash,
9210        Elements::OutputSurjectionProof => simplicity_sys::c_jets::jets_wrapper::output_surjection_proof,
9211        Elements::OutputSurjectionProofsHash => simplicity_sys::c_jets::jets_wrapper::output_surjection_proofs_hash,
9212        Elements::OutputsHash => simplicity_sys::c_jets::jets_wrapper::outputs_hash,
9213        Elements::ParseLock => simplicity_sys::c_jets::jets_wrapper::parse_lock,
9214        Elements::ParseSequence => simplicity_sys::c_jets::jets_wrapper::parse_sequence,
9215        Elements::PointVerify1 => simplicity_sys::c_jets::jets_wrapper::point_verify_1,
9216        Elements::ReissuanceBlinding => simplicity_sys::c_jets::jets_wrapper::reissuance_blinding,
9217        Elements::ReissuanceEntropy => simplicity_sys::c_jets::jets_wrapper::reissuance_entropy,
9218        Elements::RightExtend16_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_32,
9219        Elements::RightExtend16_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_64,
9220        Elements::RightExtend32_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_32_64,
9221        Elements::RightExtend8_16 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_16,
9222        Elements::RightExtend8_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_32,
9223        Elements::RightExtend8_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_64,
9224        Elements::RightPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32,
9225        Elements::RightPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64,
9226        Elements::RightPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16,
9227        Elements::RightPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32,
9228        Elements::RightPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64,
9229        Elements::RightPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8,
9230        Elements::RightPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64,
9231        Elements::RightPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16,
9232        Elements::RightPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32,
9233        Elements::RightPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64,
9234        Elements::RightPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32,
9235        Elements::RightPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64,
9236        Elements::RightPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16,
9237        Elements::RightPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32,
9238        Elements::RightPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64,
9239        Elements::RightPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8,
9240        Elements::RightPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64,
9241        Elements::RightPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16,
9242        Elements::RightPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32,
9243        Elements::RightPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64,
9244        Elements::RightRotate16 => simplicity_sys::c_jets::jets_wrapper::right_rotate_16,
9245        Elements::RightRotate32 => simplicity_sys::c_jets::jets_wrapper::right_rotate_32,
9246        Elements::RightRotate64 => simplicity_sys::c_jets::jets_wrapper::right_rotate_64,
9247        Elements::RightRotate8 => simplicity_sys::c_jets::jets_wrapper::right_rotate_8,
9248        Elements::RightShift16 => simplicity_sys::c_jets::jets_wrapper::right_shift_16,
9249        Elements::RightShift32 => simplicity_sys::c_jets::jets_wrapper::right_shift_32,
9250        Elements::RightShift64 => simplicity_sys::c_jets::jets_wrapper::right_shift_64,
9251        Elements::RightShift8 => simplicity_sys::c_jets::jets_wrapper::right_shift_8,
9252        Elements::RightShiftWith16 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_16,
9253        Elements::RightShiftWith32 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_32,
9254        Elements::RightShiftWith64 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_64,
9255        Elements::RightShiftWith8 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_8,
9256        Elements::Rightmost16_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_1,
9257        Elements::Rightmost16_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_2,
9258        Elements::Rightmost16_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_4,
9259        Elements::Rightmost16_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_8,
9260        Elements::Rightmost32_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_1,
9261        Elements::Rightmost32_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_16,
9262        Elements::Rightmost32_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_2,
9263        Elements::Rightmost32_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_4,
9264        Elements::Rightmost32_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_8,
9265        Elements::Rightmost64_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_1,
9266        Elements::Rightmost64_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_16,
9267        Elements::Rightmost64_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_2,
9268        Elements::Rightmost64_32 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_32,
9269        Elements::Rightmost64_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_4,
9270        Elements::Rightmost64_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_8,
9271        Elements::Rightmost8_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_1,
9272        Elements::Rightmost8_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_2,
9273        Elements::Rightmost8_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_4,
9274        Elements::ScalarAdd => simplicity_sys::c_jets::jets_wrapper::scalar_add,
9275        Elements::ScalarInvert => simplicity_sys::c_jets::jets_wrapper::scalar_invert,
9276        Elements::ScalarIsZero => simplicity_sys::c_jets::jets_wrapper::scalar_is_zero,
9277        Elements::ScalarMultiply => simplicity_sys::c_jets::jets_wrapper::scalar_multiply,
9278        Elements::ScalarMultiplyLambda => simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda,
9279        Elements::ScalarNegate => simplicity_sys::c_jets::jets_wrapper::scalar_negate,
9280        Elements::ScalarNormalize => simplicity_sys::c_jets::jets_wrapper::scalar_normalize,
9281        Elements::ScalarSquare => simplicity_sys::c_jets::jets_wrapper::scalar_square,
9282        Elements::Scale => simplicity_sys::c_jets::jets_wrapper::scale,
9283        Elements::ScriptCMR => simplicity_sys::c_jets::jets_wrapper::script_cmr,
9284        Elements::Sha256Block => simplicity_sys::c_jets::jets_wrapper::sha_256_block,
9285        Elements::Sha256Ctx8Add1 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1,
9286        Elements::Sha256Ctx8Add128 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128,
9287        Elements::Sha256Ctx8Add16 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16,
9288        Elements::Sha256Ctx8Add2 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2,
9289        Elements::Sha256Ctx8Add256 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256,
9290        Elements::Sha256Ctx8Add32 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32,
9291        Elements::Sha256Ctx8Add4 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4,
9292        Elements::Sha256Ctx8Add512 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512,
9293        Elements::Sha256Ctx8Add64 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64,
9294        Elements::Sha256Ctx8Add8 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8,
9295        Elements::Sha256Ctx8AddBuffer511 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511,
9296        Elements::Sha256Ctx8Finalize => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize,
9297        Elements::Sha256Ctx8Init => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init,
9298        Elements::Sha256Iv => simplicity_sys::c_jets::jets_wrapper::sha_256_iv,
9299        Elements::SigAllHash => simplicity_sys::c_jets::jets_wrapper::sig_all_hash,
9300        Elements::Some1 => simplicity_sys::c_jets::jets_wrapper::some_1,
9301        Elements::Some16 => simplicity_sys::c_jets::jets_wrapper::some_16,
9302        Elements::Some32 => simplicity_sys::c_jets::jets_wrapper::some_32,
9303        Elements::Some64 => simplicity_sys::c_jets::jets_wrapper::some_64,
9304        Elements::Some8 => simplicity_sys::c_jets::jets_wrapper::some_8,
9305        Elements::Subtract16 => simplicity_sys::c_jets::jets_wrapper::subtract_16,
9306        Elements::Subtract32 => simplicity_sys::c_jets::jets_wrapper::subtract_32,
9307        Elements::Subtract64 => simplicity_sys::c_jets::jets_wrapper::subtract_64,
9308        Elements::Subtract8 => simplicity_sys::c_jets::jets_wrapper::subtract_8,
9309        Elements::Swu => simplicity_sys::c_jets::jets_wrapper::swu,
9310        Elements::TapEnvHash => simplicity_sys::c_jets::jets_wrapper::tap_env_hash,
9311        Elements::TapdataInit => simplicity_sys::c_jets::jets_wrapper::tapdata_init,
9312        Elements::TapleafHash => simplicity_sys::c_jets::jets_wrapper::tapleaf_hash,
9313        Elements::TapleafVersion => simplicity_sys::c_jets::jets_wrapper::tapleaf_version,
9314        Elements::Tappath => simplicity_sys::c_jets::jets_wrapper::tappath,
9315        Elements::TappathHash => simplicity_sys::c_jets::jets_wrapper::tappath_hash,
9316        Elements::TotalFee => simplicity_sys::c_jets::jets_wrapper::total_fee,
9317        Elements::TransactionId => simplicity_sys::c_jets::jets_wrapper::transaction_id,
9318        Elements::TxHash => simplicity_sys::c_jets::jets_wrapper::tx_hash,
9319        Elements::TxIsFinal => simplicity_sys::c_jets::jets_wrapper::tx_is_final,
9320        Elements::TxLockHeight => simplicity_sys::c_jets::jets_wrapper::tx_lock_height,
9321        Elements::TxLockTime => simplicity_sys::c_jets::jets_wrapper::tx_lock_time,
9322        Elements::Verify => simplicity_sys::c_jets::jets_wrapper::verify,
9323        Elements::Version => simplicity_sys::c_jets::jets_wrapper::version,
9324        Elements::Xor1 => simplicity_sys::c_jets::jets_wrapper::xor_1,
9325        Elements::Xor16 => simplicity_sys::c_jets::jets_wrapper::xor_16,
9326        Elements::Xor32 => simplicity_sys::c_jets::jets_wrapper::xor_32,
9327        Elements::Xor64 => simplicity_sys::c_jets::jets_wrapper::xor_64,
9328        Elements::Xor8 => simplicity_sys::c_jets::jets_wrapper::xor_8,
9329        Elements::XorXor1 => simplicity_sys::c_jets::jets_wrapper::xor_xor_1,
9330        Elements::XorXor16 => simplicity_sys::c_jets::jets_wrapper::xor_xor_16,
9331        Elements::XorXor32 => simplicity_sys::c_jets::jets_wrapper::xor_xor_32,
9332        Elements::XorXor64 => simplicity_sys::c_jets::jets_wrapper::xor_xor_64,
9333        Elements::XorXor8 => simplicity_sys::c_jets::jets_wrapper::xor_xor_8,
9334    }
9335}