Skip to main content

simplicity/jet/init/
bitcoin.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};
12
13/// The Bitcoin jet family.
14#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
15pub enum Bitcoin {
16    Add16,
17    Add32,
18    Add64,
19    Add8,
20    All16,
21    All32,
22    All64,
23    All8,
24    And1,
25    And16,
26    And32,
27    And64,
28    And8,
29    AnnexHash,
30    Bip0340Verify,
31    BuildTapbranch,
32    BuildTapleafSimplicity,
33    BuildTaptweak,
34    Ch1,
35    Ch16,
36    Ch32,
37    Ch64,
38    Ch8,
39    CheckLockDistance,
40    CheckLockDuration,
41    CheckLockHeight,
42    CheckLockTime,
43    CheckSigVerify,
44    Complement1,
45    Complement16,
46    Complement32,
47    Complement64,
48    Complement8,
49    CurrentAnnexHash,
50    CurrentIndex,
51    CurrentPrevOutpoint,
52    CurrentScriptHash,
53    CurrentScriptSigHash,
54    CurrentSequence,
55    CurrentValue,
56    Decompress,
57    Decrement16,
58    Decrement32,
59    Decrement64,
60    Decrement8,
61    DivMod128_64,
62    DivMod16,
63    DivMod32,
64    DivMod64,
65    DivMod8,
66    Divide16,
67    Divide32,
68    Divide64,
69    Divide8,
70    Divides16,
71    Divides32,
72    Divides64,
73    Divides8,
74    Eq1,
75    Eq16,
76    Eq256,
77    Eq32,
78    Eq64,
79    Eq8,
80    FeAdd,
81    FeInvert,
82    FeIsOdd,
83    FeIsZero,
84    FeMultiply,
85    FeMultiplyBeta,
86    FeNegate,
87    FeNormalize,
88    FeSquare,
89    FeSquareRoot,
90    Fee,
91    FullAdd16,
92    FullAdd32,
93    FullAdd64,
94    FullAdd8,
95    FullDecrement16,
96    FullDecrement32,
97    FullDecrement64,
98    FullDecrement8,
99    FullIncrement16,
100    FullIncrement32,
101    FullIncrement64,
102    FullIncrement8,
103    FullLeftShift16_1,
104    FullLeftShift16_2,
105    FullLeftShift16_4,
106    FullLeftShift16_8,
107    FullLeftShift32_1,
108    FullLeftShift32_16,
109    FullLeftShift32_2,
110    FullLeftShift32_4,
111    FullLeftShift32_8,
112    FullLeftShift64_1,
113    FullLeftShift64_16,
114    FullLeftShift64_2,
115    FullLeftShift64_32,
116    FullLeftShift64_4,
117    FullLeftShift64_8,
118    FullLeftShift8_1,
119    FullLeftShift8_2,
120    FullLeftShift8_4,
121    FullMultiply16,
122    FullMultiply32,
123    FullMultiply64,
124    FullMultiply8,
125    FullRightShift16_1,
126    FullRightShift16_2,
127    FullRightShift16_4,
128    FullRightShift16_8,
129    FullRightShift32_1,
130    FullRightShift32_16,
131    FullRightShift32_2,
132    FullRightShift32_4,
133    FullRightShift32_8,
134    FullRightShift64_1,
135    FullRightShift64_16,
136    FullRightShift64_2,
137    FullRightShift64_32,
138    FullRightShift64_4,
139    FullRightShift64_8,
140    FullRightShift8_1,
141    FullRightShift8_2,
142    FullRightShift8_4,
143    FullSubtract16,
144    FullSubtract32,
145    FullSubtract64,
146    FullSubtract8,
147    GeIsOnCurve,
148    GeNegate,
149    GejAdd,
150    GejDouble,
151    GejEquiv,
152    GejGeAdd,
153    GejGeAddEx,
154    GejGeEquiv,
155    GejInfinity,
156    GejIsInfinity,
157    GejIsOnCurve,
158    GejNegate,
159    GejNormalize,
160    GejRescale,
161    GejXEquiv,
162    GejYIsOdd,
163    Generate,
164    HashToCurve,
165    High1,
166    High16,
167    High32,
168    High64,
169    High8,
170    Increment16,
171    Increment32,
172    Increment64,
173    Increment8,
174    InputAnnexHash,
175    InputAnnexesHash,
176    InputHash,
177    InputOutpointsHash,
178    InputPrevOutpoint,
179    InputScriptHash,
180    InputScriptSigHash,
181    InputScriptSigsHash,
182    InputScriptsHash,
183    InputSequence,
184    InputSequencesHash,
185    InputUtxoHash,
186    InputUtxosHash,
187    InputValue,
188    InputValuesHash,
189    InputsHash,
190    InternalKey,
191    IsOne16,
192    IsOne32,
193    IsOne64,
194    IsOne8,
195    IsZero16,
196    IsZero32,
197    IsZero64,
198    IsZero8,
199    Le16,
200    Le32,
201    Le64,
202    Le8,
203    LeftExtend16_32,
204    LeftExtend16_64,
205    LeftExtend1_16,
206    LeftExtend1_32,
207    LeftExtend1_64,
208    LeftExtend1_8,
209    LeftExtend32_64,
210    LeftExtend8_16,
211    LeftExtend8_32,
212    LeftExtend8_64,
213    LeftPadHigh16_32,
214    LeftPadHigh16_64,
215    LeftPadHigh1_16,
216    LeftPadHigh1_32,
217    LeftPadHigh1_64,
218    LeftPadHigh1_8,
219    LeftPadHigh32_64,
220    LeftPadHigh8_16,
221    LeftPadHigh8_32,
222    LeftPadHigh8_64,
223    LeftPadLow16_32,
224    LeftPadLow16_64,
225    LeftPadLow1_16,
226    LeftPadLow1_32,
227    LeftPadLow1_64,
228    LeftPadLow1_8,
229    LeftPadLow32_64,
230    LeftPadLow8_16,
231    LeftPadLow8_32,
232    LeftPadLow8_64,
233    LeftRotate16,
234    LeftRotate32,
235    LeftRotate64,
236    LeftRotate8,
237    LeftShift16,
238    LeftShift32,
239    LeftShift64,
240    LeftShift8,
241    LeftShiftWith16,
242    LeftShiftWith32,
243    LeftShiftWith64,
244    LeftShiftWith8,
245    Leftmost16_1,
246    Leftmost16_2,
247    Leftmost16_4,
248    Leftmost16_8,
249    Leftmost32_1,
250    Leftmost32_16,
251    Leftmost32_2,
252    Leftmost32_4,
253    Leftmost32_8,
254    Leftmost64_1,
255    Leftmost64_16,
256    Leftmost64_2,
257    Leftmost64_32,
258    Leftmost64_4,
259    Leftmost64_8,
260    Leftmost8_1,
261    Leftmost8_2,
262    Leftmost8_4,
263    LinearCombination1,
264    LinearVerify1,
265    LockTime,
266    Low1,
267    Low16,
268    Low32,
269    Low64,
270    Low8,
271    Lt16,
272    Lt32,
273    Lt64,
274    Lt8,
275    Maj1,
276    Maj16,
277    Maj32,
278    Maj64,
279    Maj8,
280    Max16,
281    Max32,
282    Max64,
283    Max8,
284    Median16,
285    Median32,
286    Median64,
287    Median8,
288    Min16,
289    Min32,
290    Min64,
291    Min8,
292    Modulo16,
293    Modulo32,
294    Modulo64,
295    Modulo8,
296    Multiply16,
297    Multiply32,
298    Multiply64,
299    Multiply8,
300    Negate16,
301    Negate32,
302    Negate64,
303    Negate8,
304    NumInputs,
305    NumOutputs,
306    One16,
307    One32,
308    One64,
309    One8,
310    Or1,
311    Or16,
312    Or32,
313    Or64,
314    Or8,
315    OutpointHash,
316    OutputHash,
317    OutputScriptHash,
318    OutputScriptsHash,
319    OutputValue,
320    OutputValuesHash,
321    OutputsHash,
322    ParseLock,
323    ParseSequence,
324    PointVerify1,
325    RightExtend16_32,
326    RightExtend16_64,
327    RightExtend32_64,
328    RightExtend8_16,
329    RightExtend8_32,
330    RightExtend8_64,
331    RightPadHigh16_32,
332    RightPadHigh16_64,
333    RightPadHigh1_16,
334    RightPadHigh1_32,
335    RightPadHigh1_64,
336    RightPadHigh1_8,
337    RightPadHigh32_64,
338    RightPadHigh8_16,
339    RightPadHigh8_32,
340    RightPadHigh8_64,
341    RightPadLow16_32,
342    RightPadLow16_64,
343    RightPadLow1_16,
344    RightPadLow1_32,
345    RightPadLow1_64,
346    RightPadLow1_8,
347    RightPadLow32_64,
348    RightPadLow8_16,
349    RightPadLow8_32,
350    RightPadLow8_64,
351    RightRotate16,
352    RightRotate32,
353    RightRotate64,
354    RightRotate8,
355    RightShift16,
356    RightShift32,
357    RightShift64,
358    RightShift8,
359    RightShiftWith16,
360    RightShiftWith32,
361    RightShiftWith64,
362    RightShiftWith8,
363    Rightmost16_1,
364    Rightmost16_2,
365    Rightmost16_4,
366    Rightmost16_8,
367    Rightmost32_1,
368    Rightmost32_16,
369    Rightmost32_2,
370    Rightmost32_4,
371    Rightmost32_8,
372    Rightmost64_1,
373    Rightmost64_16,
374    Rightmost64_2,
375    Rightmost64_32,
376    Rightmost64_4,
377    Rightmost64_8,
378    Rightmost8_1,
379    Rightmost8_2,
380    Rightmost8_4,
381    ScalarAdd,
382    ScalarInvert,
383    ScalarIsZero,
384    ScalarMultiply,
385    ScalarMultiplyLambda,
386    ScalarNegate,
387    ScalarNormalize,
388    ScalarSquare,
389    Scale,
390    ScriptCMR,
391    Sha256Block,
392    Sha256Ctx8Add1,
393    Sha256Ctx8Add128,
394    Sha256Ctx8Add16,
395    Sha256Ctx8Add2,
396    Sha256Ctx8Add256,
397    Sha256Ctx8Add32,
398    Sha256Ctx8Add4,
399    Sha256Ctx8Add512,
400    Sha256Ctx8Add64,
401    Sha256Ctx8Add8,
402    Sha256Ctx8AddBuffer511,
403    Sha256Ctx8Finalize,
404    Sha256Ctx8Init,
405    Sha256Iv,
406    SigAllHash,
407    Some1,
408    Some16,
409    Some32,
410    Some64,
411    Some8,
412    Subtract16,
413    Subtract32,
414    Subtract64,
415    Subtract8,
416    Swu,
417    TapEnvHash,
418    TapdataInit,
419    TapleafHash,
420    TapleafVersion,
421    Tappath,
422    TappathHash,
423    TotalInputValue,
424    TotalOutputValue,
425    TransactionId,
426    TxHash,
427    TxIsFinal,
428    TxLockDistance,
429    TxLockDuration,
430    TxLockHeight,
431    TxLockTime,
432    Verify,
433    Version,
434    Xor1,
435    Xor16,
436    Xor32,
437    Xor64,
438    Xor8,
439    XorXor1,
440    XorXor16,
441    XorXor32,
442    XorXor64,
443    XorXor8,
444}
445
446impl Bitcoin {
447    /// Array of all Bitcoin jets.
448    pub const ALL: [Self; 428] = [
449        Self::Add16,
450        Self::Add32,
451        Self::Add64,
452        Self::Add8,
453        Self::All16,
454        Self::All32,
455        Self::All64,
456        Self::All8,
457        Self::And1,
458        Self::And16,
459        Self::And32,
460        Self::And64,
461        Self::And8,
462        Self::AnnexHash,
463        Self::Bip0340Verify,
464        Self::BuildTapbranch,
465        Self::BuildTapleafSimplicity,
466        Self::BuildTaptweak,
467        Self::Ch1,
468        Self::Ch16,
469        Self::Ch32,
470        Self::Ch64,
471        Self::Ch8,
472        Self::CheckLockDistance,
473        Self::CheckLockDuration,
474        Self::CheckLockHeight,
475        Self::CheckLockTime,
476        Self::CheckSigVerify,
477        Self::Complement1,
478        Self::Complement16,
479        Self::Complement32,
480        Self::Complement64,
481        Self::Complement8,
482        Self::CurrentAnnexHash,
483        Self::CurrentIndex,
484        Self::CurrentPrevOutpoint,
485        Self::CurrentScriptHash,
486        Self::CurrentScriptSigHash,
487        Self::CurrentSequence,
488        Self::CurrentValue,
489        Self::Decompress,
490        Self::Decrement16,
491        Self::Decrement32,
492        Self::Decrement64,
493        Self::Decrement8,
494        Self::DivMod128_64,
495        Self::DivMod16,
496        Self::DivMod32,
497        Self::DivMod64,
498        Self::DivMod8,
499        Self::Divide16,
500        Self::Divide32,
501        Self::Divide64,
502        Self::Divide8,
503        Self::Divides16,
504        Self::Divides32,
505        Self::Divides64,
506        Self::Divides8,
507        Self::Eq1,
508        Self::Eq16,
509        Self::Eq256,
510        Self::Eq32,
511        Self::Eq64,
512        Self::Eq8,
513        Self::FeAdd,
514        Self::FeInvert,
515        Self::FeIsOdd,
516        Self::FeIsZero,
517        Self::FeMultiply,
518        Self::FeMultiplyBeta,
519        Self::FeNegate,
520        Self::FeNormalize,
521        Self::FeSquare,
522        Self::FeSquareRoot,
523        Self::Fee,
524        Self::FullAdd16,
525        Self::FullAdd32,
526        Self::FullAdd64,
527        Self::FullAdd8,
528        Self::FullDecrement16,
529        Self::FullDecrement32,
530        Self::FullDecrement64,
531        Self::FullDecrement8,
532        Self::FullIncrement16,
533        Self::FullIncrement32,
534        Self::FullIncrement64,
535        Self::FullIncrement8,
536        Self::FullLeftShift16_1,
537        Self::FullLeftShift16_2,
538        Self::FullLeftShift16_4,
539        Self::FullLeftShift16_8,
540        Self::FullLeftShift32_1,
541        Self::FullLeftShift32_16,
542        Self::FullLeftShift32_2,
543        Self::FullLeftShift32_4,
544        Self::FullLeftShift32_8,
545        Self::FullLeftShift64_1,
546        Self::FullLeftShift64_16,
547        Self::FullLeftShift64_2,
548        Self::FullLeftShift64_32,
549        Self::FullLeftShift64_4,
550        Self::FullLeftShift64_8,
551        Self::FullLeftShift8_1,
552        Self::FullLeftShift8_2,
553        Self::FullLeftShift8_4,
554        Self::FullMultiply16,
555        Self::FullMultiply32,
556        Self::FullMultiply64,
557        Self::FullMultiply8,
558        Self::FullRightShift16_1,
559        Self::FullRightShift16_2,
560        Self::FullRightShift16_4,
561        Self::FullRightShift16_8,
562        Self::FullRightShift32_1,
563        Self::FullRightShift32_16,
564        Self::FullRightShift32_2,
565        Self::FullRightShift32_4,
566        Self::FullRightShift32_8,
567        Self::FullRightShift64_1,
568        Self::FullRightShift64_16,
569        Self::FullRightShift64_2,
570        Self::FullRightShift64_32,
571        Self::FullRightShift64_4,
572        Self::FullRightShift64_8,
573        Self::FullRightShift8_1,
574        Self::FullRightShift8_2,
575        Self::FullRightShift8_4,
576        Self::FullSubtract16,
577        Self::FullSubtract32,
578        Self::FullSubtract64,
579        Self::FullSubtract8,
580        Self::GeIsOnCurve,
581        Self::GeNegate,
582        Self::GejAdd,
583        Self::GejDouble,
584        Self::GejEquiv,
585        Self::GejGeAdd,
586        Self::GejGeAddEx,
587        Self::GejGeEquiv,
588        Self::GejInfinity,
589        Self::GejIsInfinity,
590        Self::GejIsOnCurve,
591        Self::GejNegate,
592        Self::GejNormalize,
593        Self::GejRescale,
594        Self::GejXEquiv,
595        Self::GejYIsOdd,
596        Self::Generate,
597        Self::HashToCurve,
598        Self::High1,
599        Self::High16,
600        Self::High32,
601        Self::High64,
602        Self::High8,
603        Self::Increment16,
604        Self::Increment32,
605        Self::Increment64,
606        Self::Increment8,
607        Self::InputAnnexHash,
608        Self::InputAnnexesHash,
609        Self::InputHash,
610        Self::InputOutpointsHash,
611        Self::InputPrevOutpoint,
612        Self::InputScriptHash,
613        Self::InputScriptSigHash,
614        Self::InputScriptSigsHash,
615        Self::InputScriptsHash,
616        Self::InputSequence,
617        Self::InputSequencesHash,
618        Self::InputUtxoHash,
619        Self::InputUtxosHash,
620        Self::InputValue,
621        Self::InputValuesHash,
622        Self::InputsHash,
623        Self::InternalKey,
624        Self::IsOne16,
625        Self::IsOne32,
626        Self::IsOne64,
627        Self::IsOne8,
628        Self::IsZero16,
629        Self::IsZero32,
630        Self::IsZero64,
631        Self::IsZero8,
632        Self::Le16,
633        Self::Le32,
634        Self::Le64,
635        Self::Le8,
636        Self::LeftExtend16_32,
637        Self::LeftExtend16_64,
638        Self::LeftExtend1_16,
639        Self::LeftExtend1_32,
640        Self::LeftExtend1_64,
641        Self::LeftExtend1_8,
642        Self::LeftExtend32_64,
643        Self::LeftExtend8_16,
644        Self::LeftExtend8_32,
645        Self::LeftExtend8_64,
646        Self::LeftPadHigh16_32,
647        Self::LeftPadHigh16_64,
648        Self::LeftPadHigh1_16,
649        Self::LeftPadHigh1_32,
650        Self::LeftPadHigh1_64,
651        Self::LeftPadHigh1_8,
652        Self::LeftPadHigh32_64,
653        Self::LeftPadHigh8_16,
654        Self::LeftPadHigh8_32,
655        Self::LeftPadHigh8_64,
656        Self::LeftPadLow16_32,
657        Self::LeftPadLow16_64,
658        Self::LeftPadLow1_16,
659        Self::LeftPadLow1_32,
660        Self::LeftPadLow1_64,
661        Self::LeftPadLow1_8,
662        Self::LeftPadLow32_64,
663        Self::LeftPadLow8_16,
664        Self::LeftPadLow8_32,
665        Self::LeftPadLow8_64,
666        Self::LeftRotate16,
667        Self::LeftRotate32,
668        Self::LeftRotate64,
669        Self::LeftRotate8,
670        Self::LeftShift16,
671        Self::LeftShift32,
672        Self::LeftShift64,
673        Self::LeftShift8,
674        Self::LeftShiftWith16,
675        Self::LeftShiftWith32,
676        Self::LeftShiftWith64,
677        Self::LeftShiftWith8,
678        Self::Leftmost16_1,
679        Self::Leftmost16_2,
680        Self::Leftmost16_4,
681        Self::Leftmost16_8,
682        Self::Leftmost32_1,
683        Self::Leftmost32_16,
684        Self::Leftmost32_2,
685        Self::Leftmost32_4,
686        Self::Leftmost32_8,
687        Self::Leftmost64_1,
688        Self::Leftmost64_16,
689        Self::Leftmost64_2,
690        Self::Leftmost64_32,
691        Self::Leftmost64_4,
692        Self::Leftmost64_8,
693        Self::Leftmost8_1,
694        Self::Leftmost8_2,
695        Self::Leftmost8_4,
696        Self::LinearCombination1,
697        Self::LinearVerify1,
698        Self::LockTime,
699        Self::Low1,
700        Self::Low16,
701        Self::Low32,
702        Self::Low64,
703        Self::Low8,
704        Self::Lt16,
705        Self::Lt32,
706        Self::Lt64,
707        Self::Lt8,
708        Self::Maj1,
709        Self::Maj16,
710        Self::Maj32,
711        Self::Maj64,
712        Self::Maj8,
713        Self::Max16,
714        Self::Max32,
715        Self::Max64,
716        Self::Max8,
717        Self::Median16,
718        Self::Median32,
719        Self::Median64,
720        Self::Median8,
721        Self::Min16,
722        Self::Min32,
723        Self::Min64,
724        Self::Min8,
725        Self::Modulo16,
726        Self::Modulo32,
727        Self::Modulo64,
728        Self::Modulo8,
729        Self::Multiply16,
730        Self::Multiply32,
731        Self::Multiply64,
732        Self::Multiply8,
733        Self::Negate16,
734        Self::Negate32,
735        Self::Negate64,
736        Self::Negate8,
737        Self::NumInputs,
738        Self::NumOutputs,
739        Self::One16,
740        Self::One32,
741        Self::One64,
742        Self::One8,
743        Self::Or1,
744        Self::Or16,
745        Self::Or32,
746        Self::Or64,
747        Self::Or8,
748        Self::OutpointHash,
749        Self::OutputHash,
750        Self::OutputScriptHash,
751        Self::OutputScriptsHash,
752        Self::OutputValue,
753        Self::OutputValuesHash,
754        Self::OutputsHash,
755        Self::ParseLock,
756        Self::ParseSequence,
757        Self::PointVerify1,
758        Self::RightExtend16_32,
759        Self::RightExtend16_64,
760        Self::RightExtend32_64,
761        Self::RightExtend8_16,
762        Self::RightExtend8_32,
763        Self::RightExtend8_64,
764        Self::RightPadHigh16_32,
765        Self::RightPadHigh16_64,
766        Self::RightPadHigh1_16,
767        Self::RightPadHigh1_32,
768        Self::RightPadHigh1_64,
769        Self::RightPadHigh1_8,
770        Self::RightPadHigh32_64,
771        Self::RightPadHigh8_16,
772        Self::RightPadHigh8_32,
773        Self::RightPadHigh8_64,
774        Self::RightPadLow16_32,
775        Self::RightPadLow16_64,
776        Self::RightPadLow1_16,
777        Self::RightPadLow1_32,
778        Self::RightPadLow1_64,
779        Self::RightPadLow1_8,
780        Self::RightPadLow32_64,
781        Self::RightPadLow8_16,
782        Self::RightPadLow8_32,
783        Self::RightPadLow8_64,
784        Self::RightRotate16,
785        Self::RightRotate32,
786        Self::RightRotate64,
787        Self::RightRotate8,
788        Self::RightShift16,
789        Self::RightShift32,
790        Self::RightShift64,
791        Self::RightShift8,
792        Self::RightShiftWith16,
793        Self::RightShiftWith32,
794        Self::RightShiftWith64,
795        Self::RightShiftWith8,
796        Self::Rightmost16_1,
797        Self::Rightmost16_2,
798        Self::Rightmost16_4,
799        Self::Rightmost16_8,
800        Self::Rightmost32_1,
801        Self::Rightmost32_16,
802        Self::Rightmost32_2,
803        Self::Rightmost32_4,
804        Self::Rightmost32_8,
805        Self::Rightmost64_1,
806        Self::Rightmost64_16,
807        Self::Rightmost64_2,
808        Self::Rightmost64_32,
809        Self::Rightmost64_4,
810        Self::Rightmost64_8,
811        Self::Rightmost8_1,
812        Self::Rightmost8_2,
813        Self::Rightmost8_4,
814        Self::ScalarAdd,
815        Self::ScalarInvert,
816        Self::ScalarIsZero,
817        Self::ScalarMultiply,
818        Self::ScalarMultiplyLambda,
819        Self::ScalarNegate,
820        Self::ScalarNormalize,
821        Self::ScalarSquare,
822        Self::Scale,
823        Self::ScriptCMR,
824        Self::Sha256Block,
825        Self::Sha256Ctx8Add1,
826        Self::Sha256Ctx8Add128,
827        Self::Sha256Ctx8Add16,
828        Self::Sha256Ctx8Add2,
829        Self::Sha256Ctx8Add256,
830        Self::Sha256Ctx8Add32,
831        Self::Sha256Ctx8Add4,
832        Self::Sha256Ctx8Add512,
833        Self::Sha256Ctx8Add64,
834        Self::Sha256Ctx8Add8,
835        Self::Sha256Ctx8AddBuffer511,
836        Self::Sha256Ctx8Finalize,
837        Self::Sha256Ctx8Init,
838        Self::Sha256Iv,
839        Self::SigAllHash,
840        Self::Some1,
841        Self::Some16,
842        Self::Some32,
843        Self::Some64,
844        Self::Some8,
845        Self::Subtract16,
846        Self::Subtract32,
847        Self::Subtract64,
848        Self::Subtract8,
849        Self::Swu,
850        Self::TapEnvHash,
851        Self::TapdataInit,
852        Self::TapleafHash,
853        Self::TapleafVersion,
854        Self::Tappath,
855        Self::TappathHash,
856        Self::TotalInputValue,
857        Self::TotalOutputValue,
858        Self::TransactionId,
859        Self::TxHash,
860        Self::TxIsFinal,
861        Self::TxLockDistance,
862        Self::TxLockDuration,
863        Self::TxLockHeight,
864        Self::TxLockTime,
865        Self::Verify,
866        Self::Version,
867        Self::Xor1,
868        Self::Xor16,
869        Self::Xor32,
870        Self::Xor64,
871        Self::Xor8,
872        Self::XorXor1,
873        Self::XorXor16,
874        Self::XorXor32,
875        Self::XorXor64,
876        Self::XorXor8,
877    ];
878}
879
880impl Jet for Bitcoin {
881
882    fn cmr(&self) -> Cmr {
883        unimplemented!("Bitcoin jet CMRs weights have not yet been implemented.")
884    }
885
886    fn source_ty(&self) -> TypeName {
887        let name: &'static [u8] = match self {
888            Bitcoin::Add16 => b"i",
889            Bitcoin::Add32 => b"l",
890            Bitcoin::Add64 => b"*ll",
891            Bitcoin::Add8 => b"****22*22**22*22***22*22**22*22",
892            Bitcoin::All16 => b"****22*22**22*22***22*22**22*22",
893            Bitcoin::All32 => b"i",
894            Bitcoin::All64 => b"l",
895            Bitcoin::All8 => b"***22*22**22*22",
896            Bitcoin::And1 => b"*22",
897            Bitcoin::And16 => b"i",
898            Bitcoin::And32 => b"l",
899            Bitcoin::And64 => b"*ll",
900            Bitcoin::And8 => b"****22*22**22*22***22*22**22*22",
901            Bitcoin::AnnexHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh+1h",
902            Bitcoin::Bip0340Verify => b"**hh*hh",
903            Bitcoin::BuildTapbranch => b"*hh",
904            Bitcoin::BuildTapleafSimplicity => b"h",
905            Bitcoin::BuildTaptweak => b"*hh",
906            Bitcoin::Ch1 => b"*2*22",
907            Bitcoin::Ch16 => b"*****22*22**22*22***22*22**22*22i",
908            Bitcoin::Ch32 => b"*il",
909            Bitcoin::Ch64 => b"*l*ll",
910            Bitcoin::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
911            Bitcoin::CheckLockDistance => b"****22*22**22*22***22*22**22*22",
912            Bitcoin::CheckLockDuration => b"****22*22**22*22***22*22**22*22",
913            Bitcoin::CheckLockHeight => b"i",
914            Bitcoin::CheckLockTime => b"i",
915            Bitcoin::CheckSigVerify => b"**h*hh*hh",
916            Bitcoin::Complement1 => b"2",
917            Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22",
918            Bitcoin::Complement32 => b"i",
919            Bitcoin::Complement64 => b"l",
920            Bitcoin::Complement8 => b"***22*22**22*22",
921            Bitcoin::CurrentAnnexHash => b"1",
922            Bitcoin::CurrentIndex => b"1",
923            Bitcoin::CurrentPrevOutpoint => b"1",
924            Bitcoin::CurrentScriptHash => b"1",
925            Bitcoin::CurrentScriptSigHash => b"1",
926            Bitcoin::CurrentSequence => b"1",
927            Bitcoin::CurrentValue => b"1",
928            Bitcoin::Decompress => b"*2h",
929            Bitcoin::Decrement16 => b"****22*22**22*22***22*22**22*22",
930            Bitcoin::Decrement32 => b"i",
931            Bitcoin::Decrement64 => b"l",
932            Bitcoin::Decrement8 => b"***22*22**22*22",
933            Bitcoin::DivMod128_64 => b"**lll",
934            Bitcoin::DivMod16 => b"i",
935            Bitcoin::DivMod32 => b"l",
936            Bitcoin::DivMod64 => b"*ll",
937            Bitcoin::DivMod8 => b"****22*22**22*22***22*22**22*22",
938            Bitcoin::Divide16 => b"i",
939            Bitcoin::Divide32 => b"l",
940            Bitcoin::Divide64 => b"*ll",
941            Bitcoin::Divide8 => b"****22*22**22*22***22*22**22*22",
942            Bitcoin::Divides16 => b"i",
943            Bitcoin::Divides32 => b"l",
944            Bitcoin::Divides64 => b"*ll",
945            Bitcoin::Divides8 => b"****22*22**22*22***22*22**22*22",
946            Bitcoin::Eq1 => b"*22",
947            Bitcoin::Eq16 => b"i",
948            Bitcoin::Eq256 => b"*hh",
949            Bitcoin::Eq32 => b"l",
950            Bitcoin::Eq64 => b"*ll",
951            Bitcoin::Eq8 => b"****22*22**22*22***22*22**22*22",
952            Bitcoin::FeAdd => b"*hh",
953            Bitcoin::FeInvert => b"h",
954            Bitcoin::FeIsOdd => b"h",
955            Bitcoin::FeIsZero => b"h",
956            Bitcoin::FeMultiply => b"*hh",
957            Bitcoin::FeMultiplyBeta => b"h",
958            Bitcoin::FeNegate => b"h",
959            Bitcoin::FeNormalize => b"h",
960            Bitcoin::FeSquare => b"h",
961            Bitcoin::FeSquareRoot => b"h",
962            Bitcoin::Fee => b"1",
963            Bitcoin::FullAdd16 => b"*2i",
964            Bitcoin::FullAdd32 => b"*2l",
965            Bitcoin::FullAdd64 => b"*2*ll",
966            Bitcoin::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
967            Bitcoin::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
968            Bitcoin::FullDecrement32 => b"*2i",
969            Bitcoin::FullDecrement64 => b"*2l",
970            Bitcoin::FullDecrement8 => b"*2***22*22**22*22",
971            Bitcoin::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
972            Bitcoin::FullIncrement32 => b"*2i",
973            Bitcoin::FullIncrement64 => b"*2l",
974            Bitcoin::FullIncrement8 => b"*2***22*22**22*22",
975            Bitcoin::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
976            Bitcoin::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
977            Bitcoin::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
978            Bitcoin::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
979            Bitcoin::FullLeftShift32_1 => b"*i2",
980            Bitcoin::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
981            Bitcoin::FullLeftShift32_2 => b"*i*22",
982            Bitcoin::FullLeftShift32_4 => b"*i**22*22",
983            Bitcoin::FullLeftShift32_8 => b"*i***22*22**22*22",
984            Bitcoin::FullLeftShift64_1 => b"*l2",
985            Bitcoin::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
986            Bitcoin::FullLeftShift64_2 => b"*l*22",
987            Bitcoin::FullLeftShift64_32 => b"*li",
988            Bitcoin::FullLeftShift64_4 => b"*l**22*22",
989            Bitcoin::FullLeftShift64_8 => b"*l***22*22**22*22",
990            Bitcoin::FullLeftShift8_1 => b"****22*22**22*222",
991            Bitcoin::FullLeftShift8_2 => b"****22*22**22*22*22",
992            Bitcoin::FullLeftShift8_4 => b"****22*22**22*22**22*22",
993            Bitcoin::FullMultiply16 => b"l",
994            Bitcoin::FullMultiply32 => b"*ll",
995            Bitcoin::FullMultiply64 => b"h",
996            Bitcoin::FullMultiply8 => b"i",
997            Bitcoin::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
998            Bitcoin::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
999            Bitcoin::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
1000            Bitcoin::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1001            Bitcoin::FullRightShift32_1 => b"*2i",
1002            Bitcoin::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
1003            Bitcoin::FullRightShift32_2 => b"**22i",
1004            Bitcoin::FullRightShift32_4 => b"***22*22i",
1005            Bitcoin::FullRightShift32_8 => b"****22*22**22*22i",
1006            Bitcoin::FullRightShift64_1 => b"*2l",
1007            Bitcoin::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
1008            Bitcoin::FullRightShift64_2 => b"**22l",
1009            Bitcoin::FullRightShift64_32 => b"*il",
1010            Bitcoin::FullRightShift64_4 => b"***22*22l",
1011            Bitcoin::FullRightShift64_8 => b"****22*22**22*22l",
1012            Bitcoin::FullRightShift8_1 => b"*2***22*22**22*22",
1013            Bitcoin::FullRightShift8_2 => b"**22***22*22**22*22",
1014            Bitcoin::FullRightShift8_4 => b"***22*22***22*22**22*22",
1015            Bitcoin::FullSubtract16 => b"*2i",
1016            Bitcoin::FullSubtract32 => b"*2l",
1017            Bitcoin::FullSubtract64 => b"*2*ll",
1018            Bitcoin::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
1019            Bitcoin::GeIsOnCurve => b"*hh",
1020            Bitcoin::GeNegate => b"*hh",
1021            Bitcoin::GejAdd => b"***hhh**hhh",
1022            Bitcoin::GejDouble => b"**hhh",
1023            Bitcoin::GejEquiv => b"***hhh**hhh",
1024            Bitcoin::GejGeAdd => b"***hhh*hh",
1025            Bitcoin::GejGeAddEx => b"***hhh*hh",
1026            Bitcoin::GejGeEquiv => b"***hhh*hh",
1027            Bitcoin::GejInfinity => b"1",
1028            Bitcoin::GejIsInfinity => b"**hhh",
1029            Bitcoin::GejIsOnCurve => b"**hhh",
1030            Bitcoin::GejNegate => b"**hhh",
1031            Bitcoin::GejNormalize => b"**hhh",
1032            Bitcoin::GejRescale => b"***hhhh",
1033            Bitcoin::GejXEquiv => b"*h**hhh",
1034            Bitcoin::GejYIsOdd => b"**hhh",
1035            Bitcoin::Generate => b"h",
1036            Bitcoin::HashToCurve => b"h",
1037            Bitcoin::High1 => b"1",
1038            Bitcoin::High16 => b"1",
1039            Bitcoin::High32 => b"1",
1040            Bitcoin::High64 => b"1",
1041            Bitcoin::High8 => b"1",
1042            Bitcoin::Increment16 => b"****22*22**22*22***22*22**22*22",
1043            Bitcoin::Increment32 => b"i",
1044            Bitcoin::Increment64 => b"l",
1045            Bitcoin::Increment8 => b"***22*22**22*22",
1046            Bitcoin::InputAnnexHash => b"i",
1047            Bitcoin::InputAnnexesHash => b"1",
1048            Bitcoin::InputHash => b"i",
1049            Bitcoin::InputOutpointsHash => b"1",
1050            Bitcoin::InputPrevOutpoint => b"i",
1051            Bitcoin::InputScriptHash => b"i",
1052            Bitcoin::InputScriptSigHash => b"i",
1053            Bitcoin::InputScriptSigsHash => b"1",
1054            Bitcoin::InputScriptsHash => b"1",
1055            Bitcoin::InputSequence => b"i",
1056            Bitcoin::InputSequencesHash => b"1",
1057            Bitcoin::InputUtxoHash => b"i",
1058            Bitcoin::InputUtxosHash => b"1",
1059            Bitcoin::InputValue => b"i",
1060            Bitcoin::InputValuesHash => b"1",
1061            Bitcoin::InputsHash => b"1",
1062            Bitcoin::InternalKey => b"1",
1063            Bitcoin::IsOne16 => b"****22*22**22*22***22*22**22*22",
1064            Bitcoin::IsOne32 => b"i",
1065            Bitcoin::IsOne64 => b"l",
1066            Bitcoin::IsOne8 => b"***22*22**22*22",
1067            Bitcoin::IsZero16 => b"****22*22**22*22***22*22**22*22",
1068            Bitcoin::IsZero32 => b"i",
1069            Bitcoin::IsZero64 => b"l",
1070            Bitcoin::IsZero8 => b"***22*22**22*22",
1071            Bitcoin::Le16 => b"i",
1072            Bitcoin::Le32 => b"l",
1073            Bitcoin::Le64 => b"*ll",
1074            Bitcoin::Le8 => b"****22*22**22*22***22*22**22*22",
1075            Bitcoin::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
1076            Bitcoin::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
1077            Bitcoin::LeftExtend1_16 => b"2",
1078            Bitcoin::LeftExtend1_32 => b"2",
1079            Bitcoin::LeftExtend1_64 => b"2",
1080            Bitcoin::LeftExtend1_8 => b"2",
1081            Bitcoin::LeftExtend32_64 => b"i",
1082            Bitcoin::LeftExtend8_16 => b"***22*22**22*22",
1083            Bitcoin::LeftExtend8_32 => b"***22*22**22*22",
1084            Bitcoin::LeftExtend8_64 => b"***22*22**22*22",
1085            Bitcoin::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
1086            Bitcoin::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
1087            Bitcoin::LeftPadHigh1_16 => b"2",
1088            Bitcoin::LeftPadHigh1_32 => b"2",
1089            Bitcoin::LeftPadHigh1_64 => b"2",
1090            Bitcoin::LeftPadHigh1_8 => b"2",
1091            Bitcoin::LeftPadHigh32_64 => b"i",
1092            Bitcoin::LeftPadHigh8_16 => b"***22*22**22*22",
1093            Bitcoin::LeftPadHigh8_32 => b"***22*22**22*22",
1094            Bitcoin::LeftPadHigh8_64 => b"***22*22**22*22",
1095            Bitcoin::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
1096            Bitcoin::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
1097            Bitcoin::LeftPadLow1_16 => b"2",
1098            Bitcoin::LeftPadLow1_32 => b"2",
1099            Bitcoin::LeftPadLow1_64 => b"2",
1100            Bitcoin::LeftPadLow1_8 => b"2",
1101            Bitcoin::LeftPadLow32_64 => b"i",
1102            Bitcoin::LeftPadLow8_16 => b"***22*22**22*22",
1103            Bitcoin::LeftPadLow8_32 => b"***22*22**22*22",
1104            Bitcoin::LeftPadLow8_64 => b"***22*22**22*22",
1105            Bitcoin::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
1106            Bitcoin::LeftRotate32 => b"****22*22**22*22i",
1107            Bitcoin::LeftRotate64 => b"****22*22**22*22l",
1108            Bitcoin::LeftRotate8 => b"***22*22***22*22**22*22",
1109            Bitcoin::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
1110            Bitcoin::LeftShift32 => b"****22*22**22*22i",
1111            Bitcoin::LeftShift64 => b"****22*22**22*22l",
1112            Bitcoin::LeftShift8 => b"***22*22***22*22**22*22",
1113            Bitcoin::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
1114            Bitcoin::LeftShiftWith32 => b"*2****22*22**22*22i",
1115            Bitcoin::LeftShiftWith64 => b"*2****22*22**22*22l",
1116            Bitcoin::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
1117            Bitcoin::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
1118            Bitcoin::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
1119            Bitcoin::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
1120            Bitcoin::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
1121            Bitcoin::Leftmost32_1 => b"i",
1122            Bitcoin::Leftmost32_16 => b"i",
1123            Bitcoin::Leftmost32_2 => b"i",
1124            Bitcoin::Leftmost32_4 => b"i",
1125            Bitcoin::Leftmost32_8 => b"i",
1126            Bitcoin::Leftmost64_1 => b"l",
1127            Bitcoin::Leftmost64_16 => b"l",
1128            Bitcoin::Leftmost64_2 => b"l",
1129            Bitcoin::Leftmost64_32 => b"l",
1130            Bitcoin::Leftmost64_4 => b"l",
1131            Bitcoin::Leftmost64_8 => b"l",
1132            Bitcoin::Leftmost8_1 => b"***22*22**22*22",
1133            Bitcoin::Leftmost8_2 => b"***22*22**22*22",
1134            Bitcoin::Leftmost8_4 => b"***22*22**22*22",
1135            Bitcoin::LinearCombination1 => b"**h**hhhh",
1136            Bitcoin::LinearVerify1 => b"***h*hhh*hh",
1137            Bitcoin::LockTime => b"1",
1138            Bitcoin::Low1 => b"1",
1139            Bitcoin::Low16 => b"1",
1140            Bitcoin::Low32 => b"1",
1141            Bitcoin::Low64 => b"1",
1142            Bitcoin::Low8 => b"1",
1143            Bitcoin::Lt16 => b"i",
1144            Bitcoin::Lt32 => b"l",
1145            Bitcoin::Lt64 => b"*ll",
1146            Bitcoin::Lt8 => b"****22*22**22*22***22*22**22*22",
1147            Bitcoin::Maj1 => b"*2*22",
1148            Bitcoin::Maj16 => b"*****22*22**22*22***22*22**22*22i",
1149            Bitcoin::Maj32 => b"*il",
1150            Bitcoin::Maj64 => b"*l*ll",
1151            Bitcoin::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1152            Bitcoin::Max16 => b"i",
1153            Bitcoin::Max32 => b"l",
1154            Bitcoin::Max64 => b"*ll",
1155            Bitcoin::Max8 => b"****22*22**22*22***22*22**22*22",
1156            Bitcoin::Median16 => b"*****22*22**22*22***22*22**22*22i",
1157            Bitcoin::Median32 => b"*il",
1158            Bitcoin::Median64 => b"*l*ll",
1159            Bitcoin::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1160            Bitcoin::Min16 => b"i",
1161            Bitcoin::Min32 => b"l",
1162            Bitcoin::Min64 => b"*ll",
1163            Bitcoin::Min8 => b"****22*22**22*22***22*22**22*22",
1164            Bitcoin::Modulo16 => b"i",
1165            Bitcoin::Modulo32 => b"l",
1166            Bitcoin::Modulo64 => b"*ll",
1167            Bitcoin::Modulo8 => b"****22*22**22*22***22*22**22*22",
1168            Bitcoin::Multiply16 => b"i",
1169            Bitcoin::Multiply32 => b"l",
1170            Bitcoin::Multiply64 => b"*ll",
1171            Bitcoin::Multiply8 => b"****22*22**22*22***22*22**22*22",
1172            Bitcoin::Negate16 => b"****22*22**22*22***22*22**22*22",
1173            Bitcoin::Negate32 => b"i",
1174            Bitcoin::Negate64 => b"l",
1175            Bitcoin::Negate8 => b"***22*22**22*22",
1176            Bitcoin::NumInputs => b"1",
1177            Bitcoin::NumOutputs => b"1",
1178            Bitcoin::One16 => b"1",
1179            Bitcoin::One32 => b"1",
1180            Bitcoin::One64 => b"1",
1181            Bitcoin::One8 => b"1",
1182            Bitcoin::Or1 => b"*22",
1183            Bitcoin::Or16 => b"i",
1184            Bitcoin::Or32 => b"l",
1185            Bitcoin::Or64 => b"*ll",
1186            Bitcoin::Or8 => b"****22*22**22*22***22*22**22*22",
1187            Bitcoin::OutpointHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hi",
1188            Bitcoin::OutputHash => b"i",
1189            Bitcoin::OutputScriptHash => b"i",
1190            Bitcoin::OutputScriptsHash => b"1",
1191            Bitcoin::OutputValue => b"i",
1192            Bitcoin::OutputValuesHash => b"1",
1193            Bitcoin::OutputsHash => b"1",
1194            Bitcoin::ParseLock => b"i",
1195            Bitcoin::ParseSequence => b"i",
1196            Bitcoin::PointVerify1 => b"***h*2hh*2h",
1197            Bitcoin::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
1198            Bitcoin::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
1199            Bitcoin::RightExtend32_64 => b"i",
1200            Bitcoin::RightExtend8_16 => b"***22*22**22*22",
1201            Bitcoin::RightExtend8_32 => b"***22*22**22*22",
1202            Bitcoin::RightExtend8_64 => b"***22*22**22*22",
1203            Bitcoin::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
1204            Bitcoin::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
1205            Bitcoin::RightPadHigh1_16 => b"2",
1206            Bitcoin::RightPadHigh1_32 => b"2",
1207            Bitcoin::RightPadHigh1_64 => b"2",
1208            Bitcoin::RightPadHigh1_8 => b"2",
1209            Bitcoin::RightPadHigh32_64 => b"i",
1210            Bitcoin::RightPadHigh8_16 => b"***22*22**22*22",
1211            Bitcoin::RightPadHigh8_32 => b"***22*22**22*22",
1212            Bitcoin::RightPadHigh8_64 => b"***22*22**22*22",
1213            Bitcoin::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
1214            Bitcoin::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
1215            Bitcoin::RightPadLow1_16 => b"2",
1216            Bitcoin::RightPadLow1_32 => b"2",
1217            Bitcoin::RightPadLow1_64 => b"2",
1218            Bitcoin::RightPadLow1_8 => b"2",
1219            Bitcoin::RightPadLow32_64 => b"i",
1220            Bitcoin::RightPadLow8_16 => b"***22*22**22*22",
1221            Bitcoin::RightPadLow8_32 => b"***22*22**22*22",
1222            Bitcoin::RightPadLow8_64 => b"***22*22**22*22",
1223            Bitcoin::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
1224            Bitcoin::RightRotate32 => b"****22*22**22*22i",
1225            Bitcoin::RightRotate64 => b"****22*22**22*22l",
1226            Bitcoin::RightRotate8 => b"***22*22***22*22**22*22",
1227            Bitcoin::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
1228            Bitcoin::RightShift32 => b"****22*22**22*22i",
1229            Bitcoin::RightShift64 => b"****22*22**22*22l",
1230            Bitcoin::RightShift8 => b"***22*22***22*22**22*22",
1231            Bitcoin::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
1232            Bitcoin::RightShiftWith32 => b"*2****22*22**22*22i",
1233            Bitcoin::RightShiftWith64 => b"*2****22*22**22*22l",
1234            Bitcoin::RightShiftWith8 => b"*2***22*22***22*22**22*22",
1235            Bitcoin::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
1236            Bitcoin::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
1237            Bitcoin::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
1238            Bitcoin::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
1239            Bitcoin::Rightmost32_1 => b"i",
1240            Bitcoin::Rightmost32_16 => b"i",
1241            Bitcoin::Rightmost32_2 => b"i",
1242            Bitcoin::Rightmost32_4 => b"i",
1243            Bitcoin::Rightmost32_8 => b"i",
1244            Bitcoin::Rightmost64_1 => b"l",
1245            Bitcoin::Rightmost64_16 => b"l",
1246            Bitcoin::Rightmost64_2 => b"l",
1247            Bitcoin::Rightmost64_32 => b"l",
1248            Bitcoin::Rightmost64_4 => b"l",
1249            Bitcoin::Rightmost64_8 => b"l",
1250            Bitcoin::Rightmost8_1 => b"***22*22**22*22",
1251            Bitcoin::Rightmost8_2 => b"***22*22**22*22",
1252            Bitcoin::Rightmost8_4 => b"***22*22**22*22",
1253            Bitcoin::ScalarAdd => b"*hh",
1254            Bitcoin::ScalarInvert => b"h",
1255            Bitcoin::ScalarIsZero => b"h",
1256            Bitcoin::ScalarMultiply => b"*hh",
1257            Bitcoin::ScalarMultiplyLambda => b"h",
1258            Bitcoin::ScalarNegate => b"h",
1259            Bitcoin::ScalarNormalize => b"h",
1260            Bitcoin::ScalarSquare => b"h",
1261            Bitcoin::Scale => b"*h**hhh",
1262            Bitcoin::ScriptCMR => b"1",
1263            Bitcoin::Sha256Block => b"*h*hh",
1264            Bitcoin::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",
1265            Bitcoin::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
1266            Bitcoin::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
1267            Bitcoin::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",
1268            Bitcoin::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",
1269            Bitcoin::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
1270            Bitcoin::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
1271            Bitcoin::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",
1272            Bitcoin::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
1273            Bitcoin::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
1274            Bitcoin::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",
1275            Bitcoin::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1276            Bitcoin::Sha256Ctx8Init => b"1",
1277            Bitcoin::Sha256Iv => b"1",
1278            Bitcoin::SigAllHash => b"1",
1279            Bitcoin::Some1 => b"2",
1280            Bitcoin::Some16 => b"****22*22**22*22***22*22**22*22",
1281            Bitcoin::Some32 => b"i",
1282            Bitcoin::Some64 => b"l",
1283            Bitcoin::Some8 => b"***22*22**22*22",
1284            Bitcoin::Subtract16 => b"i",
1285            Bitcoin::Subtract32 => b"l",
1286            Bitcoin::Subtract64 => b"*ll",
1287            Bitcoin::Subtract8 => b"****22*22**22*22***22*22**22*22",
1288            Bitcoin::Swu => b"h",
1289            Bitcoin::TapEnvHash => b"1",
1290            Bitcoin::TapdataInit => b"1",
1291            Bitcoin::TapleafHash => b"1",
1292            Bitcoin::TapleafVersion => b"1",
1293            Bitcoin::Tappath => b"***22*22**22*22",
1294            Bitcoin::TappathHash => b"1",
1295            Bitcoin::TotalInputValue => b"1",
1296            Bitcoin::TotalOutputValue => b"1",
1297            Bitcoin::TransactionId => b"1",
1298            Bitcoin::TxHash => b"1",
1299            Bitcoin::TxIsFinal => b"1",
1300            Bitcoin::TxLockDistance => b"1",
1301            Bitcoin::TxLockDuration => b"1",
1302            Bitcoin::TxLockHeight => b"1",
1303            Bitcoin::TxLockTime => b"1",
1304            Bitcoin::Verify => b"2",
1305            Bitcoin::Version => b"1",
1306            Bitcoin::Xor1 => b"*22",
1307            Bitcoin::Xor16 => b"i",
1308            Bitcoin::Xor32 => b"l",
1309            Bitcoin::Xor64 => b"*ll",
1310            Bitcoin::Xor8 => b"****22*22**22*22***22*22**22*22",
1311            Bitcoin::XorXor1 => b"*2*22",
1312            Bitcoin::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
1313            Bitcoin::XorXor32 => b"*il",
1314            Bitcoin::XorXor64 => b"*l*ll",
1315            Bitcoin::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1316        };
1317
1318        TypeName(name)
1319    }
1320
1321    fn target_ty(&self) -> TypeName {
1322        let name: &'static [u8] = match self {
1323            Bitcoin::Add16 => b"*2****22*22**22*22***22*22**22*22",
1324            Bitcoin::Add32 => b"*2i",
1325            Bitcoin::Add64 => b"*2l",
1326            Bitcoin::Add8 => b"*2***22*22**22*22",
1327            Bitcoin::All16 => b"2",
1328            Bitcoin::All32 => b"2",
1329            Bitcoin::All64 => b"2",
1330            Bitcoin::All8 => b"2",
1331            Bitcoin::And1 => b"2",
1332            Bitcoin::And16 => b"****22*22**22*22***22*22**22*22",
1333            Bitcoin::And32 => b"i",
1334            Bitcoin::And64 => b"l",
1335            Bitcoin::And8 => b"***22*22**22*22",
1336            Bitcoin::AnnexHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1337            Bitcoin::Bip0340Verify => b"1",
1338            Bitcoin::BuildTapbranch => b"h",
1339            Bitcoin::BuildTapleafSimplicity => b"h",
1340            Bitcoin::BuildTaptweak => b"h",
1341            Bitcoin::Ch1 => b"2",
1342            Bitcoin::Ch16 => b"****22*22**22*22***22*22**22*22",
1343            Bitcoin::Ch32 => b"i",
1344            Bitcoin::Ch64 => b"l",
1345            Bitcoin::Ch8 => b"***22*22**22*22",
1346            Bitcoin::CheckLockDistance => b"1",
1347            Bitcoin::CheckLockDuration => b"1",
1348            Bitcoin::CheckLockHeight => b"1",
1349            Bitcoin::CheckLockTime => b"1",
1350            Bitcoin::CheckSigVerify => b"1",
1351            Bitcoin::Complement1 => b"2",
1352            Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22",
1353            Bitcoin::Complement32 => b"i",
1354            Bitcoin::Complement64 => b"l",
1355            Bitcoin::Complement8 => b"***22*22**22*22",
1356            Bitcoin::CurrentAnnexHash => b"+1h",
1357            Bitcoin::CurrentIndex => b"i",
1358            Bitcoin::CurrentPrevOutpoint => b"*hi",
1359            Bitcoin::CurrentScriptHash => b"h",
1360            Bitcoin::CurrentScriptSigHash => b"h",
1361            Bitcoin::CurrentSequence => b"i",
1362            Bitcoin::CurrentValue => b"l",
1363            Bitcoin::Decompress => b"+1*hh",
1364            Bitcoin::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
1365            Bitcoin::Decrement32 => b"*2i",
1366            Bitcoin::Decrement64 => b"*2l",
1367            Bitcoin::Decrement8 => b"*2***22*22**22*22",
1368            Bitcoin::DivMod128_64 => b"*ll",
1369            Bitcoin::DivMod16 => b"i",
1370            Bitcoin::DivMod32 => b"l",
1371            Bitcoin::DivMod64 => b"*ll",
1372            Bitcoin::DivMod8 => b"****22*22**22*22***22*22**22*22",
1373            Bitcoin::Divide16 => b"****22*22**22*22***22*22**22*22",
1374            Bitcoin::Divide32 => b"i",
1375            Bitcoin::Divide64 => b"l",
1376            Bitcoin::Divide8 => b"***22*22**22*22",
1377            Bitcoin::Divides16 => b"2",
1378            Bitcoin::Divides32 => b"2",
1379            Bitcoin::Divides64 => b"2",
1380            Bitcoin::Divides8 => b"2",
1381            Bitcoin::Eq1 => b"2",
1382            Bitcoin::Eq16 => b"2",
1383            Bitcoin::Eq256 => b"2",
1384            Bitcoin::Eq32 => b"2",
1385            Bitcoin::Eq64 => b"2",
1386            Bitcoin::Eq8 => b"2",
1387            Bitcoin::FeAdd => b"h",
1388            Bitcoin::FeInvert => b"h",
1389            Bitcoin::FeIsOdd => b"2",
1390            Bitcoin::FeIsZero => b"2",
1391            Bitcoin::FeMultiply => b"h",
1392            Bitcoin::FeMultiplyBeta => b"h",
1393            Bitcoin::FeNegate => b"h",
1394            Bitcoin::FeNormalize => b"h",
1395            Bitcoin::FeSquare => b"h",
1396            Bitcoin::FeSquareRoot => b"+1h",
1397            Bitcoin::Fee => b"l",
1398            Bitcoin::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
1399            Bitcoin::FullAdd32 => b"*2i",
1400            Bitcoin::FullAdd64 => b"*2l",
1401            Bitcoin::FullAdd8 => b"*2***22*22**22*22",
1402            Bitcoin::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
1403            Bitcoin::FullDecrement32 => b"*2i",
1404            Bitcoin::FullDecrement64 => b"*2l",
1405            Bitcoin::FullDecrement8 => b"*2***22*22**22*22",
1406            Bitcoin::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
1407            Bitcoin::FullIncrement32 => b"*2i",
1408            Bitcoin::FullIncrement64 => b"*2l",
1409            Bitcoin::FullIncrement8 => b"*2***22*22**22*22",
1410            Bitcoin::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
1411            Bitcoin::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
1412            Bitcoin::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
1413            Bitcoin::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1414            Bitcoin::FullLeftShift32_1 => b"*2i",
1415            Bitcoin::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
1416            Bitcoin::FullLeftShift32_2 => b"**22i",
1417            Bitcoin::FullLeftShift32_4 => b"***22*22i",
1418            Bitcoin::FullLeftShift32_8 => b"****22*22**22*22i",
1419            Bitcoin::FullLeftShift64_1 => b"*2l",
1420            Bitcoin::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
1421            Bitcoin::FullLeftShift64_2 => b"**22l",
1422            Bitcoin::FullLeftShift64_32 => b"*il",
1423            Bitcoin::FullLeftShift64_4 => b"***22*22l",
1424            Bitcoin::FullLeftShift64_8 => b"****22*22**22*22l",
1425            Bitcoin::FullLeftShift8_1 => b"*2***22*22**22*22",
1426            Bitcoin::FullLeftShift8_2 => b"**22***22*22**22*22",
1427            Bitcoin::FullLeftShift8_4 => b"***22*22***22*22**22*22",
1428            Bitcoin::FullMultiply16 => b"i",
1429            Bitcoin::FullMultiply32 => b"l",
1430            Bitcoin::FullMultiply64 => b"*ll",
1431            Bitcoin::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
1432            Bitcoin::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
1433            Bitcoin::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
1434            Bitcoin::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
1435            Bitcoin::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
1436            Bitcoin::FullRightShift32_1 => b"*i2",
1437            Bitcoin::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
1438            Bitcoin::FullRightShift32_2 => b"*i*22",
1439            Bitcoin::FullRightShift32_4 => b"*i**22*22",
1440            Bitcoin::FullRightShift32_8 => b"*i***22*22**22*22",
1441            Bitcoin::FullRightShift64_1 => b"*l2",
1442            Bitcoin::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
1443            Bitcoin::FullRightShift64_2 => b"*l*22",
1444            Bitcoin::FullRightShift64_32 => b"*li",
1445            Bitcoin::FullRightShift64_4 => b"*l**22*22",
1446            Bitcoin::FullRightShift64_8 => b"*l***22*22**22*22",
1447            Bitcoin::FullRightShift8_1 => b"****22*22**22*222",
1448            Bitcoin::FullRightShift8_2 => b"****22*22**22*22*22",
1449            Bitcoin::FullRightShift8_4 => b"****22*22**22*22**22*22",
1450            Bitcoin::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
1451            Bitcoin::FullSubtract32 => b"*2i",
1452            Bitcoin::FullSubtract64 => b"*2l",
1453            Bitcoin::FullSubtract8 => b"*2***22*22**22*22",
1454            Bitcoin::GeIsOnCurve => b"2",
1455            Bitcoin::GeNegate => b"*hh",
1456            Bitcoin::GejAdd => b"**hhh",
1457            Bitcoin::GejDouble => b"**hhh",
1458            Bitcoin::GejEquiv => b"2",
1459            Bitcoin::GejGeAdd => b"**hhh",
1460            Bitcoin::GejGeAddEx => b"*h**hhh",
1461            Bitcoin::GejGeEquiv => b"2",
1462            Bitcoin::GejInfinity => b"**hhh",
1463            Bitcoin::GejIsInfinity => b"2",
1464            Bitcoin::GejIsOnCurve => b"2",
1465            Bitcoin::GejNegate => b"**hhh",
1466            Bitcoin::GejNormalize => b"+1*hh",
1467            Bitcoin::GejRescale => b"**hhh",
1468            Bitcoin::GejXEquiv => b"2",
1469            Bitcoin::GejYIsOdd => b"2",
1470            Bitcoin::Generate => b"**hhh",
1471            Bitcoin::HashToCurve => b"*hh",
1472            Bitcoin::High1 => b"2",
1473            Bitcoin::High16 => b"****22*22**22*22***22*22**22*22",
1474            Bitcoin::High32 => b"i",
1475            Bitcoin::High64 => b"l",
1476            Bitcoin::High8 => b"***22*22**22*22",
1477            Bitcoin::Increment16 => b"*2****22*22**22*22***22*22**22*22",
1478            Bitcoin::Increment32 => b"*2i",
1479            Bitcoin::Increment64 => b"*2l",
1480            Bitcoin::Increment8 => b"*2***22*22**22*22",
1481            Bitcoin::InputAnnexHash => b"+1+1h",
1482            Bitcoin::InputAnnexesHash => b"h",
1483            Bitcoin::InputHash => b"+1h",
1484            Bitcoin::InputOutpointsHash => b"h",
1485            Bitcoin::InputPrevOutpoint => b"+1*hi",
1486            Bitcoin::InputScriptHash => b"+1h",
1487            Bitcoin::InputScriptSigHash => b"+1h",
1488            Bitcoin::InputScriptSigsHash => b"h",
1489            Bitcoin::InputScriptsHash => b"h",
1490            Bitcoin::InputSequence => b"+1i",
1491            Bitcoin::InputSequencesHash => b"h",
1492            Bitcoin::InputUtxoHash => b"+1h",
1493            Bitcoin::InputUtxosHash => b"h",
1494            Bitcoin::InputValue => b"+1l",
1495            Bitcoin::InputValuesHash => b"h",
1496            Bitcoin::InputsHash => b"h",
1497            Bitcoin::InternalKey => b"h",
1498            Bitcoin::IsOne16 => b"2",
1499            Bitcoin::IsOne32 => b"2",
1500            Bitcoin::IsOne64 => b"2",
1501            Bitcoin::IsOne8 => b"2",
1502            Bitcoin::IsZero16 => b"2",
1503            Bitcoin::IsZero32 => b"2",
1504            Bitcoin::IsZero64 => b"2",
1505            Bitcoin::IsZero8 => b"2",
1506            Bitcoin::Le16 => b"2",
1507            Bitcoin::Le32 => b"2",
1508            Bitcoin::Le64 => b"2",
1509            Bitcoin::Le8 => b"2",
1510            Bitcoin::LeftExtend16_32 => b"i",
1511            Bitcoin::LeftExtend16_64 => b"l",
1512            Bitcoin::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
1513            Bitcoin::LeftExtend1_32 => b"i",
1514            Bitcoin::LeftExtend1_64 => b"l",
1515            Bitcoin::LeftExtend1_8 => b"***22*22**22*22",
1516            Bitcoin::LeftExtend32_64 => b"l",
1517            Bitcoin::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
1518            Bitcoin::LeftExtend8_32 => b"i",
1519            Bitcoin::LeftExtend8_64 => b"l",
1520            Bitcoin::LeftPadHigh16_32 => b"i",
1521            Bitcoin::LeftPadHigh16_64 => b"l",
1522            Bitcoin::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
1523            Bitcoin::LeftPadHigh1_32 => b"i",
1524            Bitcoin::LeftPadHigh1_64 => b"l",
1525            Bitcoin::LeftPadHigh1_8 => b"***22*22**22*22",
1526            Bitcoin::LeftPadHigh32_64 => b"l",
1527            Bitcoin::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
1528            Bitcoin::LeftPadHigh8_32 => b"i",
1529            Bitcoin::LeftPadHigh8_64 => b"l",
1530            Bitcoin::LeftPadLow16_32 => b"i",
1531            Bitcoin::LeftPadLow16_64 => b"l",
1532            Bitcoin::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
1533            Bitcoin::LeftPadLow1_32 => b"i",
1534            Bitcoin::LeftPadLow1_64 => b"l",
1535            Bitcoin::LeftPadLow1_8 => b"***22*22**22*22",
1536            Bitcoin::LeftPadLow32_64 => b"l",
1537            Bitcoin::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
1538            Bitcoin::LeftPadLow8_32 => b"i",
1539            Bitcoin::LeftPadLow8_64 => b"l",
1540            Bitcoin::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
1541            Bitcoin::LeftRotate32 => b"i",
1542            Bitcoin::LeftRotate64 => b"l",
1543            Bitcoin::LeftRotate8 => b"***22*22**22*22",
1544            Bitcoin::LeftShift16 => b"****22*22**22*22***22*22**22*22",
1545            Bitcoin::LeftShift32 => b"i",
1546            Bitcoin::LeftShift64 => b"l",
1547            Bitcoin::LeftShift8 => b"***22*22**22*22",
1548            Bitcoin::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
1549            Bitcoin::LeftShiftWith32 => b"i",
1550            Bitcoin::LeftShiftWith64 => b"l",
1551            Bitcoin::LeftShiftWith8 => b"***22*22**22*22",
1552            Bitcoin::Leftmost16_1 => b"2",
1553            Bitcoin::Leftmost16_2 => b"*22",
1554            Bitcoin::Leftmost16_4 => b"**22*22",
1555            Bitcoin::Leftmost16_8 => b"***22*22**22*22",
1556            Bitcoin::Leftmost32_1 => b"2",
1557            Bitcoin::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
1558            Bitcoin::Leftmost32_2 => b"*22",
1559            Bitcoin::Leftmost32_4 => b"**22*22",
1560            Bitcoin::Leftmost32_8 => b"***22*22**22*22",
1561            Bitcoin::Leftmost64_1 => b"2",
1562            Bitcoin::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
1563            Bitcoin::Leftmost64_2 => b"*22",
1564            Bitcoin::Leftmost64_32 => b"i",
1565            Bitcoin::Leftmost64_4 => b"**22*22",
1566            Bitcoin::Leftmost64_8 => b"***22*22**22*22",
1567            Bitcoin::Leftmost8_1 => b"2",
1568            Bitcoin::Leftmost8_2 => b"*22",
1569            Bitcoin::Leftmost8_4 => b"**22*22",
1570            Bitcoin::LinearCombination1 => b"**hhh",
1571            Bitcoin::LinearVerify1 => b"1",
1572            Bitcoin::LockTime => b"i",
1573            Bitcoin::Low1 => b"2",
1574            Bitcoin::Low16 => b"****22*22**22*22***22*22**22*22",
1575            Bitcoin::Low32 => b"i",
1576            Bitcoin::Low64 => b"l",
1577            Bitcoin::Low8 => b"***22*22**22*22",
1578            Bitcoin::Lt16 => b"2",
1579            Bitcoin::Lt32 => b"2",
1580            Bitcoin::Lt64 => b"2",
1581            Bitcoin::Lt8 => b"2",
1582            Bitcoin::Maj1 => b"2",
1583            Bitcoin::Maj16 => b"****22*22**22*22***22*22**22*22",
1584            Bitcoin::Maj32 => b"i",
1585            Bitcoin::Maj64 => b"l",
1586            Bitcoin::Maj8 => b"***22*22**22*22",
1587            Bitcoin::Max16 => b"****22*22**22*22***22*22**22*22",
1588            Bitcoin::Max32 => b"i",
1589            Bitcoin::Max64 => b"l",
1590            Bitcoin::Max8 => b"***22*22**22*22",
1591            Bitcoin::Median16 => b"****22*22**22*22***22*22**22*22",
1592            Bitcoin::Median32 => b"i",
1593            Bitcoin::Median64 => b"l",
1594            Bitcoin::Median8 => b"***22*22**22*22",
1595            Bitcoin::Min16 => b"****22*22**22*22***22*22**22*22",
1596            Bitcoin::Min32 => b"i",
1597            Bitcoin::Min64 => b"l",
1598            Bitcoin::Min8 => b"***22*22**22*22",
1599            Bitcoin::Modulo16 => b"****22*22**22*22***22*22**22*22",
1600            Bitcoin::Modulo32 => b"i",
1601            Bitcoin::Modulo64 => b"l",
1602            Bitcoin::Modulo8 => b"***22*22**22*22",
1603            Bitcoin::Multiply16 => b"i",
1604            Bitcoin::Multiply32 => b"l",
1605            Bitcoin::Multiply64 => b"*ll",
1606            Bitcoin::Multiply8 => b"****22*22**22*22***22*22**22*22",
1607            Bitcoin::Negate16 => b"*2****22*22**22*22***22*22**22*22",
1608            Bitcoin::Negate32 => b"*2i",
1609            Bitcoin::Negate64 => b"*2l",
1610            Bitcoin::Negate8 => b"*2***22*22**22*22",
1611            Bitcoin::NumInputs => b"i",
1612            Bitcoin::NumOutputs => b"i",
1613            Bitcoin::One16 => b"****22*22**22*22***22*22**22*22",
1614            Bitcoin::One32 => b"i",
1615            Bitcoin::One64 => b"l",
1616            Bitcoin::One8 => b"***22*22**22*22",
1617            Bitcoin::Or1 => b"2",
1618            Bitcoin::Or16 => b"****22*22**22*22***22*22**22*22",
1619            Bitcoin::Or32 => b"i",
1620            Bitcoin::Or64 => b"l",
1621            Bitcoin::Or8 => b"***22*22**22*22",
1622            Bitcoin::OutpointHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1623            Bitcoin::OutputHash => b"+1h",
1624            Bitcoin::OutputScriptHash => b"+1h",
1625            Bitcoin::OutputScriptsHash => b"h",
1626            Bitcoin::OutputValue => b"+1l",
1627            Bitcoin::OutputValuesHash => b"h",
1628            Bitcoin::OutputsHash => b"h",
1629            Bitcoin::ParseLock => b"+ii",
1630            Bitcoin::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
1631            Bitcoin::PointVerify1 => b"1",
1632            Bitcoin::RightExtend16_32 => b"i",
1633            Bitcoin::RightExtend16_64 => b"l",
1634            Bitcoin::RightExtend32_64 => b"l",
1635            Bitcoin::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
1636            Bitcoin::RightExtend8_32 => b"i",
1637            Bitcoin::RightExtend8_64 => b"l",
1638            Bitcoin::RightPadHigh16_32 => b"i",
1639            Bitcoin::RightPadHigh16_64 => b"l",
1640            Bitcoin::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
1641            Bitcoin::RightPadHigh1_32 => b"i",
1642            Bitcoin::RightPadHigh1_64 => b"l",
1643            Bitcoin::RightPadHigh1_8 => b"***22*22**22*22",
1644            Bitcoin::RightPadHigh32_64 => b"l",
1645            Bitcoin::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
1646            Bitcoin::RightPadHigh8_32 => b"i",
1647            Bitcoin::RightPadHigh8_64 => b"l",
1648            Bitcoin::RightPadLow16_32 => b"i",
1649            Bitcoin::RightPadLow16_64 => b"l",
1650            Bitcoin::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
1651            Bitcoin::RightPadLow1_32 => b"i",
1652            Bitcoin::RightPadLow1_64 => b"l",
1653            Bitcoin::RightPadLow1_8 => b"***22*22**22*22",
1654            Bitcoin::RightPadLow32_64 => b"l",
1655            Bitcoin::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
1656            Bitcoin::RightPadLow8_32 => b"i",
1657            Bitcoin::RightPadLow8_64 => b"l",
1658            Bitcoin::RightRotate16 => b"****22*22**22*22***22*22**22*22",
1659            Bitcoin::RightRotate32 => b"i",
1660            Bitcoin::RightRotate64 => b"l",
1661            Bitcoin::RightRotate8 => b"***22*22**22*22",
1662            Bitcoin::RightShift16 => b"****22*22**22*22***22*22**22*22",
1663            Bitcoin::RightShift32 => b"i",
1664            Bitcoin::RightShift64 => b"l",
1665            Bitcoin::RightShift8 => b"***22*22**22*22",
1666            Bitcoin::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
1667            Bitcoin::RightShiftWith32 => b"i",
1668            Bitcoin::RightShiftWith64 => b"l",
1669            Bitcoin::RightShiftWith8 => b"***22*22**22*22",
1670            Bitcoin::Rightmost16_1 => b"2",
1671            Bitcoin::Rightmost16_2 => b"*22",
1672            Bitcoin::Rightmost16_4 => b"**22*22",
1673            Bitcoin::Rightmost16_8 => b"***22*22**22*22",
1674            Bitcoin::Rightmost32_1 => b"2",
1675            Bitcoin::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
1676            Bitcoin::Rightmost32_2 => b"*22",
1677            Bitcoin::Rightmost32_4 => b"**22*22",
1678            Bitcoin::Rightmost32_8 => b"***22*22**22*22",
1679            Bitcoin::Rightmost64_1 => b"2",
1680            Bitcoin::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
1681            Bitcoin::Rightmost64_2 => b"*22",
1682            Bitcoin::Rightmost64_32 => b"i",
1683            Bitcoin::Rightmost64_4 => b"**22*22",
1684            Bitcoin::Rightmost64_8 => b"***22*22**22*22",
1685            Bitcoin::Rightmost8_1 => b"2",
1686            Bitcoin::Rightmost8_2 => b"*22",
1687            Bitcoin::Rightmost8_4 => b"**22*22",
1688            Bitcoin::ScalarAdd => b"h",
1689            Bitcoin::ScalarInvert => b"h",
1690            Bitcoin::ScalarIsZero => b"2",
1691            Bitcoin::ScalarMultiply => b"h",
1692            Bitcoin::ScalarMultiplyLambda => b"h",
1693            Bitcoin::ScalarNegate => b"h",
1694            Bitcoin::ScalarNormalize => b"h",
1695            Bitcoin::ScalarSquare => b"h",
1696            Bitcoin::Scale => b"**hhh",
1697            Bitcoin::ScriptCMR => b"h",
1698            Bitcoin::Sha256Block => b"h",
1699            Bitcoin::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1700            Bitcoin::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1701            Bitcoin::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1702            Bitcoin::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1703            Bitcoin::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1704            Bitcoin::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1705            Bitcoin::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1706            Bitcoin::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1707            Bitcoin::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1708            Bitcoin::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1709            Bitcoin::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1710            Bitcoin::Sha256Ctx8Finalize => b"h",
1711            Bitcoin::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1712            Bitcoin::Sha256Iv => b"h",
1713            Bitcoin::SigAllHash => b"h",
1714            Bitcoin::Some1 => b"2",
1715            Bitcoin::Some16 => b"2",
1716            Bitcoin::Some32 => b"2",
1717            Bitcoin::Some64 => b"2",
1718            Bitcoin::Some8 => b"2",
1719            Bitcoin::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
1720            Bitcoin::Subtract32 => b"*2i",
1721            Bitcoin::Subtract64 => b"*2l",
1722            Bitcoin::Subtract8 => b"*2***22*22**22*22",
1723            Bitcoin::Swu => b"*hh",
1724            Bitcoin::TapEnvHash => b"h",
1725            Bitcoin::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1726            Bitcoin::TapleafHash => b"h",
1727            Bitcoin::TapleafVersion => b"***22*22**22*22",
1728            Bitcoin::Tappath => b"+1h",
1729            Bitcoin::TappathHash => b"h",
1730            Bitcoin::TotalInputValue => b"l",
1731            Bitcoin::TotalOutputValue => b"l",
1732            Bitcoin::TransactionId => b"h",
1733            Bitcoin::TxHash => b"h",
1734            Bitcoin::TxIsFinal => b"2",
1735            Bitcoin::TxLockDistance => b"****22*22**22*22***22*22**22*22",
1736            Bitcoin::TxLockDuration => b"****22*22**22*22***22*22**22*22",
1737            Bitcoin::TxLockHeight => b"i",
1738            Bitcoin::TxLockTime => b"i",
1739            Bitcoin::Verify => b"1",
1740            Bitcoin::Version => b"i",
1741            Bitcoin::Xor1 => b"2",
1742            Bitcoin::Xor16 => b"****22*22**22*22***22*22**22*22",
1743            Bitcoin::Xor32 => b"i",
1744            Bitcoin::Xor64 => b"l",
1745            Bitcoin::Xor8 => b"***22*22**22*22",
1746            Bitcoin::XorXor1 => b"2",
1747            Bitcoin::XorXor16 => b"****22*22**22*22***22*22**22*22",
1748            Bitcoin::XorXor32 => b"i",
1749            Bitcoin::XorXor64 => b"l",
1750            Bitcoin::XorXor8 => b"***22*22**22*22",
1751        };
1752
1753        TypeName(name)
1754    }
1755
1756    fn encode(&self, w: &mut BitWriter<&mut dyn Write>) -> std::io::Result<usize> {
1757        let (n, len) = match self {
1758            Bitcoin::Verify => (0, 3),
1759            Bitcoin::Low1 => (8, 6),
1760            Bitcoin::Low8 => (37, 8),
1761            Bitcoin::Low16 => (304, 11),
1762            Bitcoin::Low32 => (305, 11),
1763            Bitcoin::Low64 => (306, 11),
1764            Bitcoin::High1 => (10, 6),
1765            Bitcoin::High8 => (45, 8),
1766            Bitcoin::High16 => (368, 11),
1767            Bitcoin::High32 => (369, 11),
1768            Bitcoin::High64 => (370, 11),
1769            Bitcoin::Complement1 => (96, 9),
1770            Bitcoin::Complement8 => (389, 11),
1771            Bitcoin::Complement16 => (3120, 14),
1772            Bitcoin::Complement32 => (3121, 14),
1773            Bitcoin::Complement64 => (3122, 14),
1774            Bitcoin::And1 => (98, 9),
1775            Bitcoin::And8 => (397, 11),
1776            Bitcoin::And16 => (3184, 14),
1777            Bitcoin::And32 => (3185, 14),
1778            Bitcoin::And64 => (3186, 14),
1779            Bitcoin::Or1 => (100, 9),
1780            Bitcoin::Or8 => (405, 11),
1781            Bitcoin::Or16 => (3248, 14),
1782            Bitcoin::Or32 => (3249, 14),
1783            Bitcoin::Or64 => (3250, 14),
1784            Bitcoin::Xor1 => (102, 9),
1785            Bitcoin::Xor8 => (413, 11),
1786            Bitcoin::Xor16 => (3312, 14),
1787            Bitcoin::Xor32 => (3313, 14),
1788            Bitcoin::Xor64 => (3314, 14),
1789            Bitcoin::Maj1 => (208, 10),
1790            Bitcoin::Maj8 => (837, 12),
1791            Bitcoin::Maj16 => (6704, 15),
1792            Bitcoin::Maj32 => (6705, 15),
1793            Bitcoin::Maj64 => (6706, 15),
1794            Bitcoin::XorXor1 => (210, 10),
1795            Bitcoin::XorXor8 => (845, 12),
1796            Bitcoin::XorXor16 => (6768, 15),
1797            Bitcoin::XorXor32 => (6769, 15),
1798            Bitcoin::XorXor64 => (6770, 15),
1799            Bitcoin::Ch1 => (212, 10),
1800            Bitcoin::Ch8 => (853, 12),
1801            Bitcoin::Ch16 => (6832, 15),
1802            Bitcoin::Ch32 => (6833, 15),
1803            Bitcoin::Ch64 => (6834, 15),
1804            Bitcoin::Some1 => (214, 10),
1805            Bitcoin::Some8 => (861, 12),
1806            Bitcoin::Some16 => (6896, 15),
1807            Bitcoin::Some32 => (6897, 15),
1808            Bitcoin::Some64 => (6898, 15),
1809            Bitcoin::All8 => (869, 12),
1810            Bitcoin::All16 => (6960, 15),
1811            Bitcoin::All32 => (6961, 15),
1812            Bitcoin::All64 => (6962, 15),
1813            Bitcoin::Eq1 => (218, 10),
1814            Bitcoin::Eq8 => (877, 12),
1815            Bitcoin::Eq16 => (7024, 15),
1816            Bitcoin::Eq32 => (7025, 15),
1817            Bitcoin::Eq64 => (7026, 15),
1818            Bitcoin::Eq256 => (14056, 16),
1819            Bitcoin::FullLeftShift8_1 => (1765, 13),
1820            Bitcoin::FullLeftShift16_1 => (14128, 16),
1821            Bitcoin::FullLeftShift32_1 => (14129, 16),
1822            Bitcoin::FullLeftShift64_1 => (14130, 16),
1823            Bitcoin::FullLeftShift8_2 => (7076, 15),
1824            Bitcoin::FullLeftShift16_2 => (7077, 15),
1825            Bitcoin::FullLeftShift32_2 => (56624, 18),
1826            Bitcoin::FullLeftShift64_2 => (56625, 18),
1827            Bitcoin::FullLeftShift8_4 => (1770, 13),
1828            Bitcoin::FullLeftShift16_4 => (7084, 15),
1829            Bitcoin::FullLeftShift32_4 => (7085, 15),
1830            Bitcoin::FullLeftShift64_4 => (56688, 18),
1831            Bitcoin::FullLeftShift16_8 => (14176, 16),
1832            Bitcoin::FullLeftShift32_8 => (56708, 18),
1833            Bitcoin::FullLeftShift64_8 => (56709, 18),
1834            Bitcoin::FullLeftShift32_16 => (14178, 16),
1835            Bitcoin::FullLeftShift64_16 => (56716, 18),
1836            Bitcoin::FullLeftShift64_32 => (14180, 16),
1837            Bitcoin::FullRightShift8_1 => (1781, 13),
1838            Bitcoin::FullRightShift16_1 => (14256, 16),
1839            Bitcoin::FullRightShift32_1 => (14257, 16),
1840            Bitcoin::FullRightShift64_1 => (14258, 16),
1841            Bitcoin::FullRightShift8_2 => (7140, 15),
1842            Bitcoin::FullRightShift16_2 => (7141, 15),
1843            Bitcoin::FullRightShift32_2 => (57136, 18),
1844            Bitcoin::FullRightShift64_2 => (57137, 18),
1845            Bitcoin::FullRightShift8_4 => (1786, 13),
1846            Bitcoin::FullRightShift16_4 => (7148, 15),
1847            Bitcoin::FullRightShift32_4 => (7149, 15),
1848            Bitcoin::FullRightShift64_4 => (57200, 18),
1849            Bitcoin::FullRightShift16_8 => (14304, 16),
1850            Bitcoin::FullRightShift32_8 => (57220, 18),
1851            Bitcoin::FullRightShift64_8 => (57221, 18),
1852            Bitcoin::FullRightShift32_16 => (14306, 16),
1853            Bitcoin::FullRightShift64_16 => (57228, 18),
1854            Bitcoin::FullRightShift64_32 => (14308, 16),
1855            Bitcoin::Leftmost8_1 => (28677, 17),
1856            Bitcoin::Leftmost16_1 => (229424, 20),
1857            Bitcoin::Leftmost32_1 => (229425, 20),
1858            Bitcoin::Leftmost64_1 => (229426, 20),
1859            Bitcoin::Leftmost8_2 => (114724, 19),
1860            Bitcoin::Leftmost16_2 => (114725, 19),
1861            Bitcoin::Leftmost32_2 => (917808, 22),
1862            Bitcoin::Leftmost64_2 => (917809, 22),
1863            Bitcoin::Leftmost8_4 => (28682, 17),
1864            Bitcoin::Leftmost16_4 => (114732, 19),
1865            Bitcoin::Leftmost32_4 => (114733, 19),
1866            Bitcoin::Leftmost64_4 => (917872, 22),
1867            Bitcoin::Leftmost16_8 => (229472, 20),
1868            Bitcoin::Leftmost32_8 => (917892, 22),
1869            Bitcoin::Leftmost64_8 => (917893, 22),
1870            Bitcoin::Leftmost32_16 => (229474, 20),
1871            Bitcoin::Leftmost64_16 => (917900, 22),
1872            Bitcoin::Leftmost64_32 => (229476, 20),
1873            Bitcoin::Rightmost8_1 => (28693, 17),
1874            Bitcoin::Rightmost16_1 => (229552, 20),
1875            Bitcoin::Rightmost32_1 => (229553, 20),
1876            Bitcoin::Rightmost64_1 => (229554, 20),
1877            Bitcoin::Rightmost8_2 => (114788, 19),
1878            Bitcoin::Rightmost16_2 => (114789, 19),
1879            Bitcoin::Rightmost32_2 => (918320, 22),
1880            Bitcoin::Rightmost64_2 => (918321, 22),
1881            Bitcoin::Rightmost8_4 => (28698, 17),
1882            Bitcoin::Rightmost16_4 => (114796, 19),
1883            Bitcoin::Rightmost32_4 => (114797, 19),
1884            Bitcoin::Rightmost64_4 => (918384, 22),
1885            Bitcoin::Rightmost16_8 => (229600, 20),
1886            Bitcoin::Rightmost32_8 => (918404, 22),
1887            Bitcoin::Rightmost64_8 => (918405, 22),
1888            Bitcoin::Rightmost32_16 => (229602, 20),
1889            Bitcoin::Rightmost64_16 => (918412, 22),
1890            Bitcoin::Rightmost64_32 => (229604, 20),
1891            Bitcoin::LeftPadLow1_8 => (28709, 17),
1892            Bitcoin::LeftPadLow1_16 => (229680, 20),
1893            Bitcoin::LeftPadLow1_32 => (229681, 20),
1894            Bitcoin::LeftPadLow1_64 => (229682, 20),
1895            Bitcoin::LeftPadLow8_16 => (229728, 20),
1896            Bitcoin::LeftPadLow8_32 => (918916, 22),
1897            Bitcoin::LeftPadLow8_64 => (918917, 22),
1898            Bitcoin::LeftPadLow16_32 => (229730, 20),
1899            Bitcoin::LeftPadLow16_64 => (918924, 22),
1900            Bitcoin::LeftPadLow32_64 => (229732, 20),
1901            Bitcoin::LeftPadHigh1_8 => (28725, 17),
1902            Bitcoin::LeftPadHigh1_16 => (229808, 20),
1903            Bitcoin::LeftPadHigh1_32 => (229809, 20),
1904            Bitcoin::LeftPadHigh1_64 => (229810, 20),
1905            Bitcoin::LeftPadHigh8_16 => (229856, 20),
1906            Bitcoin::LeftPadHigh8_32 => (919428, 22),
1907            Bitcoin::LeftPadHigh8_64 => (919429, 22),
1908            Bitcoin::LeftPadHigh16_32 => (229858, 20),
1909            Bitcoin::LeftPadHigh16_64 => (919436, 22),
1910            Bitcoin::LeftPadHigh32_64 => (229860, 20),
1911            Bitcoin::LeftExtend1_8 => (28741, 17),
1912            Bitcoin::LeftExtend1_16 => (229936, 20),
1913            Bitcoin::LeftExtend1_32 => (229937, 20),
1914            Bitcoin::LeftExtend1_64 => (229938, 20),
1915            Bitcoin::LeftExtend8_16 => (229984, 20),
1916            Bitcoin::LeftExtend8_32 => (919940, 22),
1917            Bitcoin::LeftExtend8_64 => (919941, 22),
1918            Bitcoin::LeftExtend16_32 => (229986, 20),
1919            Bitcoin::LeftExtend16_64 => (919948, 22),
1920            Bitcoin::LeftExtend32_64 => (229988, 20),
1921            Bitcoin::RightPadLow1_8 => (28757, 17),
1922            Bitcoin::RightPadLow1_16 => (230064, 20),
1923            Bitcoin::RightPadLow1_32 => (230065, 20),
1924            Bitcoin::RightPadLow1_64 => (230066, 20),
1925            Bitcoin::RightPadLow8_16 => (230112, 20),
1926            Bitcoin::RightPadLow8_32 => (920452, 22),
1927            Bitcoin::RightPadLow8_64 => (920453, 22),
1928            Bitcoin::RightPadLow16_32 => (230114, 20),
1929            Bitcoin::RightPadLow16_64 => (920460, 22),
1930            Bitcoin::RightPadLow32_64 => (230116, 20),
1931            Bitcoin::RightPadHigh1_8 => (28773, 17),
1932            Bitcoin::RightPadHigh1_16 => (230192, 20),
1933            Bitcoin::RightPadHigh1_32 => (230193, 20),
1934            Bitcoin::RightPadHigh1_64 => (230194, 20),
1935            Bitcoin::RightPadHigh8_16 => (230240, 20),
1936            Bitcoin::RightPadHigh8_32 => (920964, 22),
1937            Bitcoin::RightPadHigh8_64 => (920965, 22),
1938            Bitcoin::RightPadHigh16_32 => (230242, 20),
1939            Bitcoin::RightPadHigh16_64 => (920972, 22),
1940            Bitcoin::RightPadHigh32_64 => (230244, 20),
1941            Bitcoin::RightExtend8_16 => (230368, 20),
1942            Bitcoin::RightExtend8_32 => (921476, 22),
1943            Bitcoin::RightExtend8_64 => (921477, 22),
1944            Bitcoin::RightExtend16_32 => (230370, 20),
1945            Bitcoin::RightExtend16_64 => (921484, 22),
1946            Bitcoin::RightExtend32_64 => (230372, 20),
1947            Bitcoin::LeftShiftWith8 => (14405, 16),
1948            Bitcoin::LeftShiftWith16 => (115248, 19),
1949            Bitcoin::LeftShiftWith32 => (115249, 19),
1950            Bitcoin::LeftShiftWith64 => (115250, 19),
1951            Bitcoin::RightShiftWith8 => (14413, 16),
1952            Bitcoin::RightShiftWith16 => (115312, 19),
1953            Bitcoin::RightShiftWith32 => (115313, 19),
1954            Bitcoin::RightShiftWith64 => (115314, 19),
1955            Bitcoin::LeftShift8 => (14421, 16),
1956            Bitcoin::LeftShift16 => (115376, 19),
1957            Bitcoin::LeftShift32 => (115377, 19),
1958            Bitcoin::LeftShift64 => (115378, 19),
1959            Bitcoin::RightShift8 => (14429, 16),
1960            Bitcoin::RightShift16 => (115440, 19),
1961            Bitcoin::RightShift32 => (115441, 19),
1962            Bitcoin::RightShift64 => (115442, 19),
1963            Bitcoin::LeftRotate8 => (14437, 16),
1964            Bitcoin::LeftRotate16 => (115504, 19),
1965            Bitcoin::LeftRotate32 => (115505, 19),
1966            Bitcoin::LeftRotate64 => (115506, 19),
1967            Bitcoin::RightRotate8 => (14445, 16),
1968            Bitcoin::RightRotate16 => (115568, 19),
1969            Bitcoin::RightRotate32 => (115569, 19),
1970            Bitcoin::RightRotate64 => (115570, 19),
1971            Bitcoin::One8 => (69, 8),
1972            Bitcoin::One16 => (560, 11),
1973            Bitcoin::One32 => (561, 11),
1974            Bitcoin::One64 => (562, 11),
1975            Bitcoin::FullAdd8 => (293, 10),
1976            Bitcoin::FullAdd16 => (2352, 13),
1977            Bitcoin::FullAdd32 => (2353, 13),
1978            Bitcoin::FullAdd64 => (2354, 13),
1979            Bitcoin::Add8 => (301, 10),
1980            Bitcoin::Add16 => (2416, 13),
1981            Bitcoin::Add32 => (2417, 13),
1982            Bitcoin::Add64 => (2418, 13),
1983            Bitcoin::FullIncrement8 => (2437, 13),
1984            Bitcoin::FullIncrement16 => (19504, 16),
1985            Bitcoin::FullIncrement32 => (19505, 16),
1986            Bitcoin::FullIncrement64 => (19506, 16),
1987            Bitcoin::Increment8 => (2445, 13),
1988            Bitcoin::Increment16 => (19568, 16),
1989            Bitcoin::Increment32 => (19569, 16),
1990            Bitcoin::Increment64 => (19570, 16),
1991            Bitcoin::FullSubtract8 => (2461, 13),
1992            Bitcoin::FullSubtract16 => (19696, 16),
1993            Bitcoin::FullSubtract32 => (19697, 16),
1994            Bitcoin::FullSubtract64 => (19698, 16),
1995            Bitcoin::Subtract8 => (4933, 14),
1996            Bitcoin::Subtract16 => (39472, 17),
1997            Bitcoin::Subtract32 => (39473, 17),
1998            Bitcoin::Subtract64 => (39474, 17),
1999            Bitcoin::Negate8 => (4941, 14),
2000            Bitcoin::Negate16 => (39536, 17),
2001            Bitcoin::Negate32 => (39537, 17),
2002            Bitcoin::Negate64 => (39538, 17),
2003            Bitcoin::FullDecrement8 => (4949, 14),
2004            Bitcoin::FullDecrement16 => (39600, 17),
2005            Bitcoin::FullDecrement32 => (39601, 17),
2006            Bitcoin::FullDecrement64 => (39602, 17),
2007            Bitcoin::Decrement8 => (4957, 14),
2008            Bitcoin::Decrement16 => (39664, 17),
2009            Bitcoin::Decrement32 => (39665, 17),
2010            Bitcoin::Decrement64 => (39666, 17),
2011            Bitcoin::FullMultiply8 => (4965, 14),
2012            Bitcoin::FullMultiply16 => (39728, 17),
2013            Bitcoin::FullMultiply32 => (39729, 17),
2014            Bitcoin::FullMultiply64 => (39730, 17),
2015            Bitcoin::Multiply8 => (4973, 14),
2016            Bitcoin::Multiply16 => (39792, 17),
2017            Bitcoin::Multiply32 => (39793, 17),
2018            Bitcoin::Multiply64 => (39794, 17),
2019            Bitcoin::IsZero8 => (4981, 14),
2020            Bitcoin::IsZero16 => (39856, 17),
2021            Bitcoin::IsZero32 => (39857, 17),
2022            Bitcoin::IsZero64 => (39858, 17),
2023            Bitcoin::IsOne8 => (4989, 14),
2024            Bitcoin::IsOne16 => (39920, 17),
2025            Bitcoin::IsOne32 => (39921, 17),
2026            Bitcoin::IsOne64 => (39922, 17),
2027            Bitcoin::Le8 => (79877, 18),
2028            Bitcoin::Le16 => (639024, 21),
2029            Bitcoin::Le32 => (639025, 21),
2030            Bitcoin::Le64 => (639026, 21),
2031            Bitcoin::Lt8 => (79885, 18),
2032            Bitcoin::Lt16 => (639088, 21),
2033            Bitcoin::Lt32 => (639089, 21),
2034            Bitcoin::Lt64 => (639090, 21),
2035            Bitcoin::Min8 => (79893, 18),
2036            Bitcoin::Min16 => (639152, 21),
2037            Bitcoin::Min32 => (639153, 21),
2038            Bitcoin::Min64 => (639154, 21),
2039            Bitcoin::Max8 => (79901, 18),
2040            Bitcoin::Max16 => (639216, 21),
2041            Bitcoin::Max32 => (639217, 21),
2042            Bitcoin::Max64 => (639218, 21),
2043            Bitcoin::Median8 => (79909, 18),
2044            Bitcoin::Median16 => (639280, 21),
2045            Bitcoin::Median32 => (639281, 21),
2046            Bitcoin::Median64 => (639282, 21),
2047            Bitcoin::DivMod128_64 => (639346, 21),
2048            Bitcoin::DivMod8 => (79925, 18),
2049            Bitcoin::DivMod16 => (639408, 21),
2050            Bitcoin::DivMod32 => (639409, 21),
2051            Bitcoin::DivMod64 => (639410, 21),
2052            Bitcoin::Divide8 => (79933, 18),
2053            Bitcoin::Divide16 => (639472, 21),
2054            Bitcoin::Divide32 => (639473, 21),
2055            Bitcoin::Divide64 => (639474, 21),
2056            Bitcoin::Modulo8 => (79941, 18),
2057            Bitcoin::Modulo16 => (639536, 21),
2058            Bitcoin::Modulo32 => (639537, 21),
2059            Bitcoin::Modulo64 => (639538, 21),
2060            Bitcoin::Divides8 => (79949, 18),
2061            Bitcoin::Divides16 => (639600, 21),
2062            Bitcoin::Divides32 => (639601, 21),
2063            Bitcoin::Divides64 => (639602, 21),
2064            Bitcoin::Sha256Block => (20, 6),
2065            Bitcoin::Sha256Iv => (84, 8),
2066            Bitcoin::Sha256Ctx8Add1 => (170, 9),
2067            Bitcoin::Sha256Ctx8Add2 => (684, 11),
2068            Bitcoin::Sha256Ctx8Add4 => (685, 11),
2069            Bitcoin::Sha256Ctx8Add8 => (5488, 14),
2070            Bitcoin::Sha256Ctx8Add16 => (5489, 14),
2071            Bitcoin::Sha256Ctx8Add32 => (5490, 14),
2072            Bitcoin::Sha256Ctx8Add64 => (5491, 14),
2073            Bitcoin::Sha256Ctx8Add128 => (10984, 15),
2074            Bitcoin::Sha256Ctx8Add256 => (10985, 15),
2075            Bitcoin::Sha256Ctx8Add512 => (10986, 15),
2076            Bitcoin::Sha256Ctx8AddBuffer511 => (688, 11),
2077            Bitcoin::Sha256Ctx8Finalize => (689, 11),
2078            Bitcoin::Sha256Ctx8Init => (690, 11),
2079            Bitcoin::PointVerify1 => (192, 9),
2080            Bitcoin::Decompress => (388, 10),
2081            Bitcoin::LinearVerify1 => (778, 11),
2082            Bitcoin::LinearCombination1 => (6240, 14),
2083            Bitcoin::Scale => (3121, 13),
2084            Bitcoin::Generate => (3122, 13),
2085            Bitcoin::GejInfinity => (3123, 13),
2086            Bitcoin::GejNormalize => (6248, 14),
2087            Bitcoin::GejNegate => (6249, 14),
2088            Bitcoin::GeNegate => (6250, 14),
2089            Bitcoin::GejDouble => (6251, 14),
2090            Bitcoin::GejAdd => (6252, 14),
2091            Bitcoin::GejGeAddEx => (6253, 14),
2092            Bitcoin::GejGeAdd => (6254, 14),
2093            Bitcoin::GejRescale => (6255, 14),
2094            Bitcoin::GejIsInfinity => (100096, 18),
2095            Bitcoin::GejEquiv => (100097, 18),
2096            Bitcoin::GejGeEquiv => (100098, 18),
2097            Bitcoin::GejXEquiv => (100099, 18),
2098            Bitcoin::GejYIsOdd => (100100, 18),
2099            Bitcoin::GejIsOnCurve => (100101, 18),
2100            Bitcoin::GeIsOnCurve => (100102, 18),
2101            Bitcoin::ScalarNormalize => (100103, 18),
2102            Bitcoin::ScalarNegate => (100104, 18),
2103            Bitcoin::ScalarAdd => (100105, 18),
2104            Bitcoin::ScalarSquare => (100106, 18),
2105            Bitcoin::ScalarMultiply => (100107, 18),
2106            Bitcoin::ScalarMultiplyLambda => (100108, 18),
2107            Bitcoin::ScalarInvert => (100109, 18),
2108            Bitcoin::ScalarIsZero => (100110, 18),
2109            Bitcoin::FeNormalize => (200227, 19),
2110            Bitcoin::FeNegate => (200228, 19),
2111            Bitcoin::FeAdd => (200229, 19),
2112            Bitcoin::FeSquare => (200230, 19),
2113            Bitcoin::FeMultiply => (200231, 19),
2114            Bitcoin::FeMultiplyBeta => (200232, 19),
2115            Bitcoin::FeInvert => (200233, 19),
2116            Bitcoin::FeSquareRoot => (200234, 19),
2117            Bitcoin::FeIsZero => (200235, 19),
2118            Bitcoin::FeIsOdd => (200236, 19),
2119            Bitcoin::HashToCurve => (200238, 19),
2120            Bitcoin::Swu => (200239, 19),
2121            Bitcoin::CheckSigVerify => (98, 8),
2122            Bitcoin::Bip0340Verify => (396, 10),
2123            Bitcoin::ParseLock => (102, 8),
2124            Bitcoin::ParseSequence => (412, 10),
2125            Bitcoin::TapdataInit => (413, 10),
2126            Bitcoin::SigAllHash => (4, 3),
2127            Bitcoin::TxHash => (20, 5),
2128            Bitcoin::TapEnvHash => (21, 5),
2129            Bitcoin::OutputsHash => (176, 8),
2130            Bitcoin::InputsHash => (177, 8),
2131            Bitcoin::InputUtxosHash => (178, 8),
2132            Bitcoin::OutputHash => (179, 8),
2133            Bitcoin::OutputValuesHash => (360, 9),
2134            Bitcoin::OutputScriptsHash => (361, 9),
2135            Bitcoin::InputHash => (362, 9),
2136            Bitcoin::InputOutpointsHash => (363, 9),
2137            Bitcoin::InputSequencesHash => (364, 9),
2138            Bitcoin::InputAnnexesHash => (365, 9),
2139            Bitcoin::InputScriptSigsHash => (366, 9),
2140            Bitcoin::InputUtxoHash => (367, 9),
2141            Bitcoin::InputValuesHash => (5888, 13),
2142            Bitcoin::InputScriptsHash => (5889, 13),
2143            Bitcoin::TapleafHash => (5890, 13),
2144            Bitcoin::TappathHash => (5891, 13),
2145            Bitcoin::OutpointHash => (5892, 13),
2146            Bitcoin::AnnexHash => (5893, 13),
2147            Bitcoin::BuildTapleafSimplicity => (5894, 13),
2148            Bitcoin::BuildTapbranch => (5895, 13),
2149            Bitcoin::BuildTaptweak => (5896, 13),
2150            Bitcoin::CheckLockHeight => (24, 5),
2151            Bitcoin::CheckLockTime => (100, 7),
2152            Bitcoin::CheckLockDistance => (101, 7),
2153            Bitcoin::CheckLockDuration => (816, 10),
2154            Bitcoin::TxLockHeight => (817, 10),
2155            Bitcoin::TxLockTime => (818, 10),
2156            Bitcoin::TxLockDistance => (819, 10),
2157            Bitcoin::TxLockDuration => (1640, 11),
2158            Bitcoin::TxIsFinal => (1641, 11),
2159            Bitcoin::ScriptCMR => (26, 5),
2160            Bitcoin::InternalKey => (108, 7),
2161            Bitcoin::CurrentIndex => (109, 7),
2162            Bitcoin::NumInputs => (880, 10),
2163            Bitcoin::NumOutputs => (881, 10),
2164            Bitcoin::LockTime => (882, 10),
2165            Bitcoin::Fee => (883, 10),
2166            Bitcoin::OutputValue => (1768, 11),
2167            Bitcoin::OutputScriptHash => (1769, 11),
2168            Bitcoin::TotalOutputValue => (1770, 11),
2169            Bitcoin::CurrentPrevOutpoint => (1771, 11),
2170            Bitcoin::CurrentValue => (1772, 11),
2171            Bitcoin::CurrentScriptHash => (1773, 11),
2172            Bitcoin::CurrentSequence => (1774, 11),
2173            Bitcoin::CurrentAnnexHash => (1775, 11),
2174            Bitcoin::CurrentScriptSigHash => (28416, 15),
2175            Bitcoin::InputPrevOutpoint => (28417, 15),
2176            Bitcoin::InputValue => (28418, 15),
2177            Bitcoin::InputScriptHash => (28419, 15),
2178            Bitcoin::InputSequence => (28420, 15),
2179            Bitcoin::InputAnnexHash => (28421, 15),
2180            Bitcoin::InputScriptSigHash => (28422, 15),
2181            Bitcoin::TotalInputValue => (28423, 15),
2182            Bitcoin::TapleafVersion => (28424, 15),
2183            Bitcoin::Tappath => (28425, 15),
2184            Bitcoin::Version => (28426, 15),
2185            Bitcoin::TransactionId => (28427, 15),
2186        };
2187
2188        w.write_bits_be(n, len)
2189    }
2190
2191    fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> where Self: Sized {
2192        decode_bits!(bits, {
2193            0 => {
2194                0 => {
2195                    0 => {Bitcoin::Verify},
2196                    1 => {
2197                        0 => {
2198                            0 => {
2199                                0 => {Bitcoin::Low1},
2200                                1 => {
2201                                    0 => {
2202                                        0 => {},
2203                                        1 => {Bitcoin::Low8}
2204                                    },
2205                                    1 => {
2206                                        0 => {
2207                                            0 => {
2208                                                0 => {
2209                                                    0 => {Bitcoin::Low16},
2210                                                    1 => {Bitcoin::Low32}
2211                                                },
2212                                                1 => {
2213                                                    0 => {Bitcoin::Low64},
2214                                                    1 => {}
2215                                                }
2216                                            },
2217                                            1 => {}
2218                                        },
2219                                        1 => {}
2220                                    }
2221                                }
2222                            },
2223                            1 => {
2224                                0 => {Bitcoin::High1},
2225                                1 => {
2226                                    0 => {
2227                                        0 => {},
2228                                        1 => {Bitcoin::High8}
2229                                    },
2230                                    1 => {
2231                                        0 => {
2232                                            0 => {
2233                                                0 => {
2234                                                    0 => {Bitcoin::High16},
2235                                                    1 => {Bitcoin::High32}
2236                                                },
2237                                                1 => {
2238                                                    0 => {Bitcoin::High64},
2239                                                    1 => {}
2240                                                }
2241                                            },
2242                                            1 => {}
2243                                        },
2244                                        1 => {}
2245                                    }
2246                                }
2247                            }
2248                        },
2249                        1 => {
2250                            0 => {
2251                                0 => {
2252                                    0 => {
2253                                        0 => {
2254                                            0 => {Bitcoin::Complement1},
2255                                            1 => {
2256                                                0 => {
2257                                                    0 => {},
2258                                                    1 => {Bitcoin::Complement8}
2259                                                },
2260                                                1 => {
2261                                                    0 => {
2262                                                        0 => {
2263                                                            0 => {
2264                                                                0 => {Bitcoin::Complement16},
2265                                                                1 => {Bitcoin::Complement32}
2266                                                            },
2267                                                            1 => {
2268                                                                0 => {Bitcoin::Complement64},
2269                                                                1 => {}
2270                                                            }
2271                                                        },
2272                                                        1 => {}
2273                                                    },
2274                                                    1 => {}
2275                                                }
2276                                            }
2277                                        },
2278                                        1 => {
2279                                            0 => {Bitcoin::And1},
2280                                            1 => {
2281                                                0 => {
2282                                                    0 => {},
2283                                                    1 => {Bitcoin::And8}
2284                                                },
2285                                                1 => {
2286                                                    0 => {
2287                                                        0 => {
2288                                                            0 => {
2289                                                                0 => {Bitcoin::And16},
2290                                                                1 => {Bitcoin::And32}
2291                                                            },
2292                                                            1 => {
2293                                                                0 => {Bitcoin::And64},
2294                                                                1 => {}
2295                                                            }
2296                                                        },
2297                                                        1 => {}
2298                                                    },
2299                                                    1 => {}
2300                                                }
2301                                            }
2302                                        }
2303                                    },
2304                                    1 => {
2305                                        0 => {
2306                                            0 => {Bitcoin::Or1},
2307                                            1 => {
2308                                                0 => {
2309                                                    0 => {},
2310                                                    1 => {Bitcoin::Or8}
2311                                                },
2312                                                1 => {
2313                                                    0 => {
2314                                                        0 => {
2315                                                            0 => {
2316                                                                0 => {Bitcoin::Or16},
2317                                                                1 => {Bitcoin::Or32}
2318                                                            },
2319                                                            1 => {
2320                                                                0 => {Bitcoin::Or64},
2321                                                                1 => {}
2322                                                            }
2323                                                        },
2324                                                        1 => {}
2325                                                    },
2326                                                    1 => {}
2327                                                }
2328                                            }
2329                                        },
2330                                        1 => {
2331                                            0 => {Bitcoin::Xor1},
2332                                            1 => {
2333                                                0 => {
2334                                                    0 => {},
2335                                                    1 => {Bitcoin::Xor8}
2336                                                },
2337                                                1 => {
2338                                                    0 => {
2339                                                        0 => {
2340                                                            0 => {
2341                                                                0 => {Bitcoin::Xor16},
2342                                                                1 => {Bitcoin::Xor32}
2343                                                            },
2344                                                            1 => {
2345                                                                0 => {Bitcoin::Xor64},
2346                                                                1 => {}
2347                                                            }
2348                                                        },
2349                                                        1 => {}
2350                                                    },
2351                                                    1 => {}
2352                                                }
2353                                            }
2354                                        }
2355                                    }
2356                                },
2357                                1 => {
2358                                    0 => {
2359                                        0 => {
2360                                            0 => {
2361                                                0 => {Bitcoin::Maj1},
2362                                                1 => {
2363                                                    0 => {
2364                                                        0 => {},
2365                                                        1 => {Bitcoin::Maj8}
2366                                                    },
2367                                                    1 => {
2368                                                        0 => {
2369                                                            0 => {
2370                                                                0 => {
2371                                                                    0 => {Bitcoin::Maj16},
2372                                                                    1 => {Bitcoin::Maj32}
2373                                                                },
2374                                                                1 => {
2375                                                                    0 => {Bitcoin::Maj64},
2376                                                                    1 => {}
2377                                                                }
2378                                                            },
2379                                                            1 => {}
2380                                                        },
2381                                                        1 => {}
2382                                                    }
2383                                                }
2384                                            },
2385                                            1 => {
2386                                                0 => {Bitcoin::XorXor1},
2387                                                1 => {
2388                                                    0 => {
2389                                                        0 => {},
2390                                                        1 => {Bitcoin::XorXor8}
2391                                                    },
2392                                                    1 => {
2393                                                        0 => {
2394                                                            0 => {
2395                                                                0 => {
2396                                                                    0 => {Bitcoin::XorXor16},
2397                                                                    1 => {Bitcoin::XorXor32}
2398                                                                },
2399                                                                1 => {
2400                                                                    0 => {Bitcoin::XorXor64},
2401                                                                    1 => {}
2402                                                                }
2403                                                            },
2404                                                            1 => {}
2405                                                        },
2406                                                        1 => {}
2407                                                    }
2408                                                }
2409                                            }
2410                                        },
2411                                        1 => {
2412                                            0 => {
2413                                                0 => {Bitcoin::Ch1},
2414                                                1 => {
2415                                                    0 => {
2416                                                        0 => {},
2417                                                        1 => {Bitcoin::Ch8}
2418                                                    },
2419                                                    1 => {
2420                                                        0 => {
2421                                                            0 => {
2422                                                                0 => {
2423                                                                    0 => {Bitcoin::Ch16},
2424                                                                    1 => {Bitcoin::Ch32}
2425                                                                },
2426                                                                1 => {
2427                                                                    0 => {Bitcoin::Ch64},
2428                                                                    1 => {}
2429                                                                }
2430                                                            },
2431                                                            1 => {}
2432                                                        },
2433                                                        1 => {}
2434                                                    }
2435                                                }
2436                                            },
2437                                            1 => {
2438                                                0 => {Bitcoin::Some1},
2439                                                1 => {
2440                                                    0 => {
2441                                                        0 => {},
2442                                                        1 => {Bitcoin::Some8}
2443                                                    },
2444                                                    1 => {
2445                                                        0 => {
2446                                                            0 => {
2447                                                                0 => {
2448                                                                    0 => {Bitcoin::Some16},
2449                                                                    1 => {Bitcoin::Some32}
2450                                                                },
2451                                                                1 => {
2452                                                                    0 => {Bitcoin::Some64},
2453                                                                    1 => {}
2454                                                                }
2455                                                            },
2456                                                            1 => {}
2457                                                        },
2458                                                        1 => {}
2459                                                    }
2460                                                }
2461                                            }
2462                                        }
2463                                    },
2464                                    1 => {
2465                                        0 => {
2466                                            0 => {
2467                                                0 => {},
2468                                                1 => {
2469                                                    0 => {
2470                                                        0 => {},
2471                                                        1 => {Bitcoin::All8}
2472                                                    },
2473                                                    1 => {
2474                                                        0 => {
2475                                                            0 => {
2476                                                                0 => {
2477                                                                    0 => {Bitcoin::All16},
2478                                                                    1 => {Bitcoin::All32}
2479                                                                },
2480                                                                1 => {
2481                                                                    0 => {Bitcoin::All64},
2482                                                                    1 => {}
2483                                                                }
2484                                                            },
2485                                                            1 => {}
2486                                                        },
2487                                                        1 => {}
2488                                                    }
2489                                                }
2490                                            },
2491                                            1 => {
2492                                                0 => {Bitcoin::Eq1},
2493                                                1 => {
2494                                                    0 => {
2495                                                        0 => {},
2496                                                        1 => {Bitcoin::Eq8}
2497                                                    },
2498                                                    1 => {
2499                                                        0 => {
2500                                                            0 => {
2501                                                                0 => {
2502                                                                    0 => {Bitcoin::Eq16},
2503                                                                    1 => {Bitcoin::Eq32}
2504                                                                },
2505                                                                1 => {
2506                                                                    0 => {Bitcoin::Eq64},
2507                                                                    1 => {}
2508                                                                }
2509                                                            },
2510                                                            1 => {
2511                                                                0 => {
2512                                                                    0 => {
2513                                                                        0 => {Bitcoin::Eq256},
2514                                                                        1 => {}
2515                                                                    },
2516                                                                    1 => {}
2517                                                                },
2518                                                                1 => {}
2519                                                            }
2520                                                        },
2521                                                        1 => {}
2522                                                    }
2523                                                }
2524                                            }
2525                                        },
2526                                        1 => {
2527                                            0 => {
2528                                                0 => {
2529                                                    0 => {},
2530                                                    1 => {
2531                                                        0 => {
2532                                                            0 => {},
2533                                                            1 => {Bitcoin::FullLeftShift8_1}
2534                                                        },
2535                                                        1 => {
2536                                                            0 => {
2537                                                                0 => {
2538                                                                    0 => {
2539                                                                        0 => {Bitcoin::FullLeftShift16_1},
2540                                                                        1 => {Bitcoin::FullLeftShift32_1}
2541                                                                    },
2542                                                                    1 => {
2543                                                                        0 => {Bitcoin::FullLeftShift64_1},
2544                                                                        1 => {}
2545                                                                    }
2546                                                                },
2547                                                                1 => {}
2548                                                            },
2549                                                            1 => {}
2550                                                        }
2551                                                    }
2552                                                },
2553                                                1 => {
2554                                                    0 => {
2555                                                        0 => {
2556                                                            0 => {},
2557                                                            1 => {
2558                                                                0 => {
2559                                                                    0 => {Bitcoin::FullLeftShift8_2},
2560                                                                    1 => {Bitcoin::FullLeftShift16_2}
2561                                                                },
2562                                                                1 => {
2563                                                                    0 => {
2564                                                                        0 => {
2565                                                                            0 => {
2566                                                                                0 => {Bitcoin::FullLeftShift32_2},
2567                                                                                1 => {Bitcoin::FullLeftShift64_2}
2568                                                                            },
2569                                                                            1 => {}
2570                                                                        },
2571                                                                        1 => {}
2572                                                                    },
2573                                                                    1 => {}
2574                                                                }
2575                                                            }
2576                                                        },
2577                                                        1 => {
2578                                                            0 => {Bitcoin::FullLeftShift8_4},
2579                                                            1 => {
2580                                                                0 => {
2581                                                                    0 => {Bitcoin::FullLeftShift16_4},
2582                                                                    1 => {Bitcoin::FullLeftShift32_4}
2583                                                                },
2584                                                                1 => {
2585                                                                    0 => {
2586                                                                        0 => {
2587                                                                            0 => {
2588                                                                                0 => {Bitcoin::FullLeftShift64_4},
2589                                                                                1 => {}
2590                                                                            },
2591                                                                            1 => {}
2592                                                                        },
2593                                                                        1 => {}
2594                                                                    },
2595                                                                    1 => {}
2596                                                                }
2597                                                            }
2598                                                        }
2599                                                    },
2600                                                    1 => {
2601                                                        0 => {
2602                                                            0 => {
2603                                                                0 => {
2604                                                                    0 => {
2605                                                                        0 => {Bitcoin::FullLeftShift16_8},
2606                                                                        1 => {
2607                                                                            0 => {
2608                                                                                0 => {Bitcoin::FullLeftShift32_8},
2609                                                                                1 => {Bitcoin::FullLeftShift64_8}
2610                                                                            },
2611                                                                            1 => {}
2612                                                                        }
2613                                                                    },
2614                                                                    1 => {
2615                                                                        0 => {Bitcoin::FullLeftShift32_16},
2616                                                                        1 => {
2617                                                                            0 => {
2618                                                                                0 => {Bitcoin::FullLeftShift64_16},
2619                                                                                1 => {}
2620                                                                            },
2621                                                                            1 => {}
2622                                                                        }
2623                                                                    }
2624                                                                },
2625                                                                1 => {
2626                                                                    0 => {
2627                                                                        0 => {Bitcoin::FullLeftShift64_32},
2628                                                                        1 => {}
2629                                                                    },
2630                                                                    1 => {}
2631                                                                }
2632                                                            },
2633                                                            1 => {}
2634                                                        },
2635                                                        1 => {}
2636                                                    }
2637                                                }
2638                                            },
2639                                            1 => {
2640                                                0 => {
2641                                                    0 => {},
2642                                                    1 => {
2643                                                        0 => {
2644                                                            0 => {},
2645                                                            1 => {Bitcoin::FullRightShift8_1}
2646                                                        },
2647                                                        1 => {
2648                                                            0 => {
2649                                                                0 => {
2650                                                                    0 => {
2651                                                                        0 => {Bitcoin::FullRightShift16_1},
2652                                                                        1 => {Bitcoin::FullRightShift32_1}
2653                                                                    },
2654                                                                    1 => {
2655                                                                        0 => {Bitcoin::FullRightShift64_1},
2656                                                                        1 => {}
2657                                                                    }
2658                                                                },
2659                                                                1 => {}
2660                                                            },
2661                                                            1 => {}
2662                                                        }
2663                                                    }
2664                                                },
2665                                                1 => {
2666                                                    0 => {
2667                                                        0 => {
2668                                                            0 => {},
2669                                                            1 => {
2670                                                                0 => {
2671                                                                    0 => {Bitcoin::FullRightShift8_2},
2672                                                                    1 => {Bitcoin::FullRightShift16_2}
2673                                                                },
2674                                                                1 => {
2675                                                                    0 => {
2676                                                                        0 => {
2677                                                                            0 => {
2678                                                                                0 => {Bitcoin::FullRightShift32_2},
2679                                                                                1 => {Bitcoin::FullRightShift64_2}
2680                                                                            },
2681                                                                            1 => {}
2682                                                                        },
2683                                                                        1 => {}
2684                                                                    },
2685                                                                    1 => {}
2686                                                                }
2687                                                            }
2688                                                        },
2689                                                        1 => {
2690                                                            0 => {Bitcoin::FullRightShift8_4},
2691                                                            1 => {
2692                                                                0 => {
2693                                                                    0 => {Bitcoin::FullRightShift16_4},
2694                                                                    1 => {Bitcoin::FullRightShift32_4}
2695                                                                },
2696                                                                1 => {
2697                                                                    0 => {
2698                                                                        0 => {
2699                                                                            0 => {
2700                                                                                0 => {Bitcoin::FullRightShift64_4},
2701                                                                                1 => {}
2702                                                                            },
2703                                                                            1 => {}
2704                                                                        },
2705                                                                        1 => {}
2706                                                                    },
2707                                                                    1 => {}
2708                                                                }
2709                                                            }
2710                                                        }
2711                                                    },
2712                                                    1 => {
2713                                                        0 => {
2714                                                            0 => {
2715                                                                0 => {
2716                                                                    0 => {
2717                                                                        0 => {Bitcoin::FullRightShift16_8},
2718                                                                        1 => {
2719                                                                            0 => {
2720                                                                                0 => {Bitcoin::FullRightShift32_8},
2721                                                                                1 => {Bitcoin::FullRightShift64_8}
2722                                                                            },
2723                                                                            1 => {}
2724                                                                        }
2725                                                                    },
2726                                                                    1 => {
2727                                                                        0 => {Bitcoin::FullRightShift32_16},
2728                                                                        1 => {
2729                                                                            0 => {
2730                                                                                0 => {Bitcoin::FullRightShift64_16},
2731                                                                                1 => {}
2732                                                                            },
2733                                                                            1 => {}
2734                                                                        }
2735                                                                    }
2736                                                                },
2737                                                                1 => {
2738                                                                    0 => {
2739                                                                        0 => {Bitcoin::FullRightShift64_32},
2740                                                                        1 => {}
2741                                                                    },
2742                                                                    1 => {}
2743                                                                }
2744                                                            },
2745                                                            1 => {}
2746                                                        },
2747                                                        1 => {}
2748                                                    }
2749                                                }
2750                                            }
2751                                        }
2752                                    }
2753                                }
2754                            },
2755                            1 => {
2756                                0 => {
2757                                    0 => {
2758                                        0 => {
2759                                            0 => {
2760                                                0 => {
2761                                                    0 => {
2762                                                        0 => {
2763                                                            0 => {
2764                                                                0 => {
2765                                                                    0 => {},
2766                                                                    1 => {
2767                                                                        0 => {
2768                                                                            0 => {},
2769                                                                            1 => {Bitcoin::Leftmost8_1}
2770                                                                        },
2771                                                                        1 => {
2772                                                                            0 => {
2773                                                                                0 => {
2774                                                                                    0 => {
2775                                                                                        0 => {Bitcoin::Leftmost16_1},
2776                                                                                        1 => {Bitcoin::Leftmost32_1}
2777                                                                                    },
2778                                                                                    1 => {
2779                                                                                        0 => {Bitcoin::Leftmost64_1},
2780                                                                                        1 => {}
2781                                                                                    }
2782                                                                                },
2783                                                                                1 => {}
2784                                                                            },
2785                                                                            1 => {}
2786                                                                        }
2787                                                                    }
2788                                                                },
2789                                                                1 => {
2790                                                                    0 => {
2791                                                                        0 => {
2792                                                                            0 => {},
2793                                                                            1 => {
2794                                                                                0 => {
2795                                                                                    0 => {Bitcoin::Leftmost8_2},
2796                                                                                    1 => {Bitcoin::Leftmost16_2}
2797                                                                                },
2798                                                                                1 => {
2799                                                                                    0 => {
2800                                                                                        0 => {
2801                                                                                            0 => {
2802                                                                                                0 => {Bitcoin::Leftmost32_2},
2803                                                                                                1 => {Bitcoin::Leftmost64_2}
2804                                                                                            },
2805                                                                                            1 => {}
2806                                                                                        },
2807                                                                                        1 => {}
2808                                                                                    },
2809                                                                                    1 => {}
2810                                                                                }
2811                                                                            }
2812                                                                        },
2813                                                                        1 => {
2814                                                                            0 => {Bitcoin::Leftmost8_4},
2815                                                                            1 => {
2816                                                                                0 => {
2817                                                                                    0 => {Bitcoin::Leftmost16_4},
2818                                                                                    1 => {Bitcoin::Leftmost32_4}
2819                                                                                },
2820                                                                                1 => {
2821                                                                                    0 => {
2822                                                                                        0 => {
2823                                                                                            0 => {
2824                                                                                                0 => {Bitcoin::Leftmost64_4},
2825                                                                                                1 => {}
2826                                                                                            },
2827                                                                                            1 => {}
2828                                                                                        },
2829                                                                                        1 => {}
2830                                                                                    },
2831                                                                                    1 => {}
2832                                                                                }
2833                                                                            }
2834                                                                        }
2835                                                                    },
2836                                                                    1 => {
2837                                                                        0 => {
2838                                                                            0 => {
2839                                                                                0 => {
2840                                                                                    0 => {
2841                                                                                        0 => {Bitcoin::Leftmost16_8},
2842                                                                                        1 => {
2843                                                                                            0 => {
2844                                                                                                0 => {Bitcoin::Leftmost32_8},
2845                                                                                                1 => {Bitcoin::Leftmost64_8}
2846                                                                                            },
2847                                                                                            1 => {}
2848                                                                                        }
2849                                                                                    },
2850                                                                                    1 => {
2851                                                                                        0 => {Bitcoin::Leftmost32_16},
2852                                                                                        1 => {
2853                                                                                            0 => {
2854                                                                                                0 => {Bitcoin::Leftmost64_16},
2855                                                                                                1 => {}
2856                                                                                            },
2857                                                                                            1 => {}
2858                                                                                        }
2859                                                                                    }
2860                                                                                },
2861                                                                                1 => {
2862                                                                                    0 => {
2863                                                                                        0 => {Bitcoin::Leftmost64_32},
2864                                                                                        1 => {}
2865                                                                                    },
2866                                                                                    1 => {}
2867                                                                                }
2868                                                                            },
2869                                                                            1 => {}
2870                                                                        },
2871                                                                        1 => {}
2872                                                                    }
2873                                                                }
2874                                                            },
2875                                                            1 => {
2876                                                                0 => {
2877                                                                    0 => {},
2878                                                                    1 => {
2879                                                                        0 => {
2880                                                                            0 => {},
2881                                                                            1 => {Bitcoin::Rightmost8_1}
2882                                                                        },
2883                                                                        1 => {
2884                                                                            0 => {
2885                                                                                0 => {
2886                                                                                    0 => {
2887                                                                                        0 => {Bitcoin::Rightmost16_1},
2888                                                                                        1 => {Bitcoin::Rightmost32_1}
2889                                                                                    },
2890                                                                                    1 => {
2891                                                                                        0 => {Bitcoin::Rightmost64_1},
2892                                                                                        1 => {}
2893                                                                                    }
2894                                                                                },
2895                                                                                1 => {}
2896                                                                            },
2897                                                                            1 => {}
2898                                                                        }
2899                                                                    }
2900                                                                },
2901                                                                1 => {
2902                                                                    0 => {
2903                                                                        0 => {
2904                                                                            0 => {},
2905                                                                            1 => {
2906                                                                                0 => {
2907                                                                                    0 => {Bitcoin::Rightmost8_2},
2908                                                                                    1 => {Bitcoin::Rightmost16_2}
2909                                                                                },
2910                                                                                1 => {
2911                                                                                    0 => {
2912                                                                                        0 => {
2913                                                                                            0 => {
2914                                                                                                0 => {Bitcoin::Rightmost32_2},
2915                                                                                                1 => {Bitcoin::Rightmost64_2}
2916                                                                                            },
2917                                                                                            1 => {}
2918                                                                                        },
2919                                                                                        1 => {}
2920                                                                                    },
2921                                                                                    1 => {}
2922                                                                                }
2923                                                                            }
2924                                                                        },
2925                                                                        1 => {
2926                                                                            0 => {Bitcoin::Rightmost8_4},
2927                                                                            1 => {
2928                                                                                0 => {
2929                                                                                    0 => {Bitcoin::Rightmost16_4},
2930                                                                                    1 => {Bitcoin::Rightmost32_4}
2931                                                                                },
2932                                                                                1 => {
2933                                                                                    0 => {
2934                                                                                        0 => {
2935                                                                                            0 => {
2936                                                                                                0 => {Bitcoin::Rightmost64_4},
2937                                                                                                1 => {}
2938                                                                                            },
2939                                                                                            1 => {}
2940                                                                                        },
2941                                                                                        1 => {}
2942                                                                                    },
2943                                                                                    1 => {}
2944                                                                                }
2945                                                                            }
2946                                                                        }
2947                                                                    },
2948                                                                    1 => {
2949                                                                        0 => {
2950                                                                            0 => {
2951                                                                                0 => {
2952                                                                                    0 => {
2953                                                                                        0 => {Bitcoin::Rightmost16_8},
2954                                                                                        1 => {
2955                                                                                            0 => {
2956                                                                                                0 => {Bitcoin::Rightmost32_8},
2957                                                                                                1 => {Bitcoin::Rightmost64_8}
2958                                                                                            },
2959                                                                                            1 => {}
2960                                                                                        }
2961                                                                                    },
2962                                                                                    1 => {
2963                                                                                        0 => {Bitcoin::Rightmost32_16},
2964                                                                                        1 => {
2965                                                                                            0 => {
2966                                                                                                0 => {Bitcoin::Rightmost64_16},
2967                                                                                                1 => {}
2968                                                                                            },
2969                                                                                            1 => {}
2970                                                                                        }
2971                                                                                    }
2972                                                                                },
2973                                                                                1 => {
2974                                                                                    0 => {
2975                                                                                        0 => {Bitcoin::Rightmost64_32},
2976                                                                                        1 => {}
2977                                                                                    },
2978                                                                                    1 => {}
2979                                                                                }
2980                                                                            },
2981                                                                            1 => {}
2982                                                                        },
2983                                                                        1 => {}
2984                                                                    }
2985                                                                }
2986                                                            }
2987                                                        },
2988                                                        1 => {
2989                                                            0 => {
2990                                                                0 => {
2991                                                                    0 => {},
2992                                                                    1 => {
2993                                                                        0 => {
2994                                                                            0 => {},
2995                                                                            1 => {Bitcoin::LeftPadLow1_8}
2996                                                                        },
2997                                                                        1 => {
2998                                                                            0 => {
2999                                                                                0 => {
3000                                                                                    0 => {
3001                                                                                        0 => {Bitcoin::LeftPadLow1_16},
3002                                                                                        1 => {Bitcoin::LeftPadLow1_32}
3003                                                                                    },
3004                                                                                    1 => {
3005                                                                                        0 => {Bitcoin::LeftPadLow1_64},
3006                                                                                        1 => {}
3007                                                                                    }
3008                                                                                },
3009                                                                                1 => {}
3010                                                                            },
3011                                                                            1 => {}
3012                                                                        }
3013                                                                    }
3014                                                                },
3015                                                                1 => {
3016                                                                    0 => {},
3017                                                                    1 => {
3018                                                                        0 => {
3019                                                                            0 => {
3020                                                                                0 => {
3021                                                                                    0 => {
3022                                                                                        0 => {Bitcoin::LeftPadLow8_16},
3023                                                                                        1 => {
3024                                                                                            0 => {
3025                                                                                                0 => {Bitcoin::LeftPadLow8_32},
3026                                                                                                1 => {Bitcoin::LeftPadLow8_64}
3027                                                                                            },
3028                                                                                            1 => {}
3029                                                                                        }
3030                                                                                    },
3031                                                                                    1 => {
3032                                                                                        0 => {Bitcoin::LeftPadLow16_32},
3033                                                                                        1 => {
3034                                                                                            0 => {
3035                                                                                                0 => {Bitcoin::LeftPadLow16_64},
3036                                                                                                1 => {}
3037                                                                                            },
3038                                                                                            1 => {}
3039                                                                                        }
3040                                                                                    }
3041                                                                                },
3042                                                                                1 => {
3043                                                                                    0 => {
3044                                                                                        0 => {Bitcoin::LeftPadLow32_64},
3045                                                                                        1 => {}
3046                                                                                    },
3047                                                                                    1 => {}
3048                                                                                }
3049                                                                            },
3050                                                                            1 => {}
3051                                                                        },
3052                                                                        1 => {}
3053                                                                    }
3054                                                                }
3055                                                            },
3056                                                            1 => {
3057                                                                0 => {
3058                                                                    0 => {},
3059                                                                    1 => {
3060                                                                        0 => {
3061                                                                            0 => {},
3062                                                                            1 => {Bitcoin::LeftPadHigh1_8}
3063                                                                        },
3064                                                                        1 => {
3065                                                                            0 => {
3066                                                                                0 => {
3067                                                                                    0 => {
3068                                                                                        0 => {Bitcoin::LeftPadHigh1_16},
3069                                                                                        1 => {Bitcoin::LeftPadHigh1_32}
3070                                                                                    },
3071                                                                                    1 => {
3072                                                                                        0 => {Bitcoin::LeftPadHigh1_64},
3073                                                                                        1 => {}
3074                                                                                    }
3075                                                                                },
3076                                                                                1 => {}
3077                                                                            },
3078                                                                            1 => {}
3079                                                                        }
3080                                                                    }
3081                                                                },
3082                                                                1 => {
3083                                                                    0 => {},
3084                                                                    1 => {
3085                                                                        0 => {
3086                                                                            0 => {
3087                                                                                0 => {
3088                                                                                    0 => {
3089                                                                                        0 => {Bitcoin::LeftPadHigh8_16},
3090                                                                                        1 => {
3091                                                                                            0 => {
3092                                                                                                0 => {Bitcoin::LeftPadHigh8_32},
3093                                                                                                1 => {Bitcoin::LeftPadHigh8_64}
3094                                                                                            },
3095                                                                                            1 => {}
3096                                                                                        }
3097                                                                                    },
3098                                                                                    1 => {
3099                                                                                        0 => {Bitcoin::LeftPadHigh16_32},
3100                                                                                        1 => {
3101                                                                                            0 => {
3102                                                                                                0 => {Bitcoin::LeftPadHigh16_64},
3103                                                                                                1 => {}
3104                                                                                            },
3105                                                                                            1 => {}
3106                                                                                        }
3107                                                                                    }
3108                                                                                },
3109                                                                                1 => {
3110                                                                                    0 => {
3111                                                                                        0 => {Bitcoin::LeftPadHigh32_64},
3112                                                                                        1 => {}
3113                                                                                    },
3114                                                                                    1 => {}
3115                                                                                }
3116                                                                            },
3117                                                                            1 => {}
3118                                                                        },
3119                                                                        1 => {}
3120                                                                    }
3121                                                                }
3122                                                            }
3123                                                        }
3124                                                    },
3125                                                    1 => {
3126                                                        0 => {
3127                                                            0 => {
3128                                                                0 => {
3129                                                                    0 => {},
3130                                                                    1 => {
3131                                                                        0 => {
3132                                                                            0 => {},
3133                                                                            1 => {Bitcoin::LeftExtend1_8}
3134                                                                        },
3135                                                                        1 => {
3136                                                                            0 => {
3137                                                                                0 => {
3138                                                                                    0 => {
3139                                                                                        0 => {Bitcoin::LeftExtend1_16},
3140                                                                                        1 => {Bitcoin::LeftExtend1_32}
3141                                                                                    },
3142                                                                                    1 => {
3143                                                                                        0 => {Bitcoin::LeftExtend1_64},
3144                                                                                        1 => {}
3145                                                                                    }
3146                                                                                },
3147                                                                                1 => {}
3148                                                                            },
3149                                                                            1 => {}
3150                                                                        }
3151                                                                    }
3152                                                                },
3153                                                                1 => {
3154                                                                    0 => {},
3155                                                                    1 => {
3156                                                                        0 => {
3157                                                                            0 => {
3158                                                                                0 => {
3159                                                                                    0 => {
3160                                                                                        0 => {Bitcoin::LeftExtend8_16},
3161                                                                                        1 => {
3162                                                                                            0 => {
3163                                                                                                0 => {Bitcoin::LeftExtend8_32},
3164                                                                                                1 => {Bitcoin::LeftExtend8_64}
3165                                                                                            },
3166                                                                                            1 => {}
3167                                                                                        }
3168                                                                                    },
3169                                                                                    1 => {
3170                                                                                        0 => {Bitcoin::LeftExtend16_32},
3171                                                                                        1 => {
3172                                                                                            0 => {
3173                                                                                                0 => {Bitcoin::LeftExtend16_64},
3174                                                                                                1 => {}
3175                                                                                            },
3176                                                                                            1 => {}
3177                                                                                        }
3178                                                                                    }
3179                                                                                },
3180                                                                                1 => {
3181                                                                                    0 => {
3182                                                                                        0 => {Bitcoin::LeftExtend32_64},
3183                                                                                        1 => {}
3184                                                                                    },
3185                                                                                    1 => {}
3186                                                                                }
3187                                                                            },
3188                                                                            1 => {}
3189                                                                        },
3190                                                                        1 => {}
3191                                                                    }
3192                                                                }
3193                                                            },
3194                                                            1 => {
3195                                                                0 => {
3196                                                                    0 => {},
3197                                                                    1 => {
3198                                                                        0 => {
3199                                                                            0 => {},
3200                                                                            1 => {Bitcoin::RightPadLow1_8}
3201                                                                        },
3202                                                                        1 => {
3203                                                                            0 => {
3204                                                                                0 => {
3205                                                                                    0 => {
3206                                                                                        0 => {Bitcoin::RightPadLow1_16},
3207                                                                                        1 => {Bitcoin::RightPadLow1_32}
3208                                                                                    },
3209                                                                                    1 => {
3210                                                                                        0 => {Bitcoin::RightPadLow1_64},
3211                                                                                        1 => {}
3212                                                                                    }
3213                                                                                },
3214                                                                                1 => {}
3215                                                                            },
3216                                                                            1 => {}
3217                                                                        }
3218                                                                    }
3219                                                                },
3220                                                                1 => {
3221                                                                    0 => {},
3222                                                                    1 => {
3223                                                                        0 => {
3224                                                                            0 => {
3225                                                                                0 => {
3226                                                                                    0 => {
3227                                                                                        0 => {Bitcoin::RightPadLow8_16},
3228                                                                                        1 => {
3229                                                                                            0 => {
3230                                                                                                0 => {Bitcoin::RightPadLow8_32},
3231                                                                                                1 => {Bitcoin::RightPadLow8_64}
3232                                                                                            },
3233                                                                                            1 => {}
3234                                                                                        }
3235                                                                                    },
3236                                                                                    1 => {
3237                                                                                        0 => {Bitcoin::RightPadLow16_32},
3238                                                                                        1 => {
3239                                                                                            0 => {
3240                                                                                                0 => {Bitcoin::RightPadLow16_64},
3241                                                                                                1 => {}
3242                                                                                            },
3243                                                                                            1 => {}
3244                                                                                        }
3245                                                                                    }
3246                                                                                },
3247                                                                                1 => {
3248                                                                                    0 => {
3249                                                                                        0 => {Bitcoin::RightPadLow32_64},
3250                                                                                        1 => {}
3251                                                                                    },
3252                                                                                    1 => {}
3253                                                                                }
3254                                                                            },
3255                                                                            1 => {}
3256                                                                        },
3257                                                                        1 => {}
3258                                                                    }
3259                                                                }
3260                                                            }
3261                                                        },
3262                                                        1 => {
3263                                                            0 => {
3264                                                                0 => {
3265                                                                    0 => {},
3266                                                                    1 => {
3267                                                                        0 => {
3268                                                                            0 => {},
3269                                                                            1 => {Bitcoin::RightPadHigh1_8}
3270                                                                        },
3271                                                                        1 => {
3272                                                                            0 => {
3273                                                                                0 => {
3274                                                                                    0 => {
3275                                                                                        0 => {Bitcoin::RightPadHigh1_16},
3276                                                                                        1 => {Bitcoin::RightPadHigh1_32}
3277                                                                                    },
3278                                                                                    1 => {
3279                                                                                        0 => {Bitcoin::RightPadHigh1_64},
3280                                                                                        1 => {}
3281                                                                                    }
3282                                                                                },
3283                                                                                1 => {}
3284                                                                            },
3285                                                                            1 => {}
3286                                                                        }
3287                                                                    }
3288                                                                },
3289                                                                1 => {
3290                                                                    0 => {},
3291                                                                    1 => {
3292                                                                        0 => {
3293                                                                            0 => {
3294                                                                                0 => {
3295                                                                                    0 => {
3296                                                                                        0 => {Bitcoin::RightPadHigh8_16},
3297                                                                                        1 => {
3298                                                                                            0 => {
3299                                                                                                0 => {Bitcoin::RightPadHigh8_32},
3300                                                                                                1 => {Bitcoin::RightPadHigh8_64}
3301                                                                                            },
3302                                                                                            1 => {}
3303                                                                                        }
3304                                                                                    },
3305                                                                                    1 => {
3306                                                                                        0 => {Bitcoin::RightPadHigh16_32},
3307                                                                                        1 => {
3308                                                                                            0 => {
3309                                                                                                0 => {Bitcoin::RightPadHigh16_64},
3310                                                                                                1 => {}
3311                                                                                            },
3312                                                                                            1 => {}
3313                                                                                        }
3314                                                                                    }
3315                                                                                },
3316                                                                                1 => {
3317                                                                                    0 => {
3318                                                                                        0 => {Bitcoin::RightPadHigh32_64},
3319                                                                                        1 => {}
3320                                                                                    },
3321                                                                                    1 => {}
3322                                                                                }
3323                                                                            },
3324                                                                            1 => {}
3325                                                                        },
3326                                                                        1 => {}
3327                                                                    }
3328                                                                }
3329                                                            },
3330                                                            1 => {
3331                                                                0 => {},
3332                                                                1 => {
3333                                                                    0 => {},
3334                                                                    1 => {
3335                                                                        0 => {
3336                                                                            0 => {
3337                                                                                0 => {
3338                                                                                    0 => {
3339                                                                                        0 => {Bitcoin::RightExtend8_16},
3340                                                                                        1 => {
3341                                                                                            0 => {
3342                                                                                                0 => {Bitcoin::RightExtend8_32},
3343                                                                                                1 => {Bitcoin::RightExtend8_64}
3344                                                                                            },
3345                                                                                            1 => {}
3346                                                                                        }
3347                                                                                    },
3348                                                                                    1 => {
3349                                                                                        0 => {Bitcoin::RightExtend16_32},
3350                                                                                        1 => {
3351                                                                                            0 => {
3352                                                                                                0 => {Bitcoin::RightExtend16_64},
3353                                                                                                1 => {}
3354                                                                                            },
3355                                                                                            1 => {}
3356                                                                                        }
3357                                                                                    }
3358                                                                                },
3359                                                                                1 => {
3360                                                                                    0 => {
3361                                                                                        0 => {Bitcoin::RightExtend32_64},
3362                                                                                        1 => {}
3363                                                                                    },
3364                                                                                    1 => {}
3365                                                                                }
3366                                                                            },
3367                                                                            1 => {}
3368                                                                        },
3369                                                                        1 => {}
3370                                                                    }
3371                                                                }
3372                                                            }
3373                                                        }
3374                                                    }
3375                                                },
3376                                                1 => {
3377                                                    0 => {
3378                                                        0 => {
3379                                                            0 => {
3380                                                                0 => {},
3381                                                                1 => {
3382                                                                    0 => {
3383                                                                        0 => {},
3384                                                                        1 => {Bitcoin::LeftShiftWith8}
3385                                                                    },
3386                                                                    1 => {
3387                                                                        0 => {
3388                                                                            0 => {
3389                                                                                0 => {
3390                                                                                    0 => {Bitcoin::LeftShiftWith16},
3391                                                                                    1 => {Bitcoin::LeftShiftWith32}
3392                                                                                },
3393                                                                                1 => {
3394                                                                                    0 => {Bitcoin::LeftShiftWith64},
3395                                                                                    1 => {}
3396                                                                                }
3397                                                                            },
3398                                                                            1 => {}
3399                                                                        },
3400                                                                        1 => {}
3401                                                                    }
3402                                                                }
3403                                                            },
3404                                                            1 => {
3405                                                                0 => {},
3406                                                                1 => {
3407                                                                    0 => {
3408                                                                        0 => {},
3409                                                                        1 => {Bitcoin::RightShiftWith8}
3410                                                                    },
3411                                                                    1 => {
3412                                                                        0 => {
3413                                                                            0 => {
3414                                                                                0 => {
3415                                                                                    0 => {Bitcoin::RightShiftWith16},
3416                                                                                    1 => {Bitcoin::RightShiftWith32}
3417                                                                                },
3418                                                                                1 => {
3419                                                                                    0 => {Bitcoin::RightShiftWith64},
3420                                                                                    1 => {}
3421                                                                                }
3422                                                                            },
3423                                                                            1 => {}
3424                                                                        },
3425                                                                        1 => {}
3426                                                                    }
3427                                                                }
3428                                                            }
3429                                                        },
3430                                                        1 => {
3431                                                            0 => {
3432                                                                0 => {},
3433                                                                1 => {
3434                                                                    0 => {
3435                                                                        0 => {},
3436                                                                        1 => {Bitcoin::LeftShift8}
3437                                                                    },
3438                                                                    1 => {
3439                                                                        0 => {
3440                                                                            0 => {
3441                                                                                0 => {
3442                                                                                    0 => {Bitcoin::LeftShift16},
3443                                                                                    1 => {Bitcoin::LeftShift32}
3444                                                                                },
3445                                                                                1 => {
3446                                                                                    0 => {Bitcoin::LeftShift64},
3447                                                                                    1 => {}
3448                                                                                }
3449                                                                            },
3450                                                                            1 => {}
3451                                                                        },
3452                                                                        1 => {}
3453                                                                    }
3454                                                                }
3455                                                            },
3456                                                            1 => {
3457                                                                0 => {},
3458                                                                1 => {
3459                                                                    0 => {
3460                                                                        0 => {},
3461                                                                        1 => {Bitcoin::RightShift8}
3462                                                                    },
3463                                                                    1 => {
3464                                                                        0 => {
3465                                                                            0 => {
3466                                                                                0 => {
3467                                                                                    0 => {Bitcoin::RightShift16},
3468                                                                                    1 => {Bitcoin::RightShift32}
3469                                                                                },
3470                                                                                1 => {
3471                                                                                    0 => {Bitcoin::RightShift64},
3472                                                                                    1 => {}
3473                                                                                }
3474                                                                            },
3475                                                                            1 => {}
3476                                                                        },
3477                                                                        1 => {}
3478                                                                    }
3479                                                                }
3480                                                            }
3481                                                        }
3482                                                    },
3483                                                    1 => {
3484                                                        0 => {
3485                                                            0 => {
3486                                                                0 => {},
3487                                                                1 => {
3488                                                                    0 => {
3489                                                                        0 => {},
3490                                                                        1 => {Bitcoin::LeftRotate8}
3491                                                                    },
3492                                                                    1 => {
3493                                                                        0 => {
3494                                                                            0 => {
3495                                                                                0 => {
3496                                                                                    0 => {Bitcoin::LeftRotate16},
3497                                                                                    1 => {Bitcoin::LeftRotate32}
3498                                                                                },
3499                                                                                1 => {
3500                                                                                    0 => {Bitcoin::LeftRotate64},
3501                                                                                    1 => {}
3502                                                                                }
3503                                                                            },
3504                                                                            1 => {}
3505                                                                        },
3506                                                                        1 => {}
3507                                                                    }
3508                                                                }
3509                                                            },
3510                                                            1 => {
3511                                                                0 => {},
3512                                                                1 => {
3513                                                                    0 => {
3514                                                                        0 => {},
3515                                                                        1 => {Bitcoin::RightRotate8}
3516                                                                    },
3517                                                                    1 => {
3518                                                                        0 => {
3519                                                                            0 => {
3520                                                                                0 => {
3521                                                                                    0 => {Bitcoin::RightRotate16},
3522                                                                                    1 => {Bitcoin::RightRotate32}
3523                                                                                },
3524                                                                                1 => {
3525                                                                                    0 => {Bitcoin::RightRotate64},
3526                                                                                    1 => {}
3527                                                                                }
3528                                                                            },
3529                                                                            1 => {}
3530                                                                        },
3531                                                                        1 => {}
3532                                                                    }
3533                                                                }
3534                                                            }
3535                                                        },
3536                                                        1 => {}
3537                                                    }
3538                                                }
3539                                            },
3540                                            1 => {}
3541                                        },
3542                                        1 => {}
3543                                    },
3544                                    1 => {}
3545                                },
3546                                1 => {}
3547                            }
3548                        }
3549                    }
3550                },
3551                1 => {
3552                    0 => {
3553                        0 => {
3554                            0 => {
3555                                0 => {},
3556                                1 => {
3557                                    0 => {
3558                                        0 => {},
3559                                        1 => {Bitcoin::One8}
3560                                    },
3561                                    1 => {
3562                                        0 => {
3563                                            0 => {
3564                                                0 => {
3565                                                    0 => {Bitcoin::One16},
3566                                                    1 => {Bitcoin::One32}
3567                                                },
3568                                                1 => {
3569                                                    0 => {Bitcoin::One64},
3570                                                    1 => {}
3571                                                }
3572                                            },
3573                                            1 => {}
3574                                        },
3575                                        1 => {}
3576                                    }
3577                                }
3578                            },
3579                            1 => {
3580                                0 => {
3581                                    0 => {
3582                                        0 => {},
3583                                        1 => {
3584                                            0 => {
3585                                                0 => {},
3586                                                1 => {Bitcoin::FullAdd8}
3587                                            },
3588                                            1 => {
3589                                                0 => {
3590                                                    0 => {
3591                                                        0 => {
3592                                                            0 => {Bitcoin::FullAdd16},
3593                                                            1 => {Bitcoin::FullAdd32}
3594                                                        },
3595                                                        1 => {
3596                                                            0 => {Bitcoin::FullAdd64},
3597                                                            1 => {}
3598                                                        }
3599                                                    },
3600                                                    1 => {}
3601                                                },
3602                                                1 => {}
3603                                            }
3604                                        }
3605                                    },
3606                                    1 => {
3607                                        0 => {},
3608                                        1 => {
3609                                            0 => {
3610                                                0 => {},
3611                                                1 => {Bitcoin::Add8}
3612                                            },
3613                                            1 => {
3614                                                0 => {
3615                                                    0 => {
3616                                                        0 => {
3617                                                            0 => {Bitcoin::Add16},
3618                                                            1 => {Bitcoin::Add32}
3619                                                        },
3620                                                        1 => {
3621                                                            0 => {Bitcoin::Add64},
3622                                                            1 => {}
3623                                                        }
3624                                                    },
3625                                                    1 => {}
3626                                                },
3627                                                1 => {}
3628                                            }
3629                                        }
3630                                    }
3631                                },
3632                                1 => {
3633                                    0 => {
3634                                        0 => {
3635                                            0 => {
3636                                                0 => {
3637                                                    0 => {},
3638                                                    1 => {
3639                                                        0 => {
3640                                                            0 => {},
3641                                                            1 => {Bitcoin::FullIncrement8}
3642                                                        },
3643                                                        1 => {
3644                                                            0 => {
3645                                                                0 => {
3646                                                                    0 => {
3647                                                                        0 => {Bitcoin::FullIncrement16},
3648                                                                        1 => {Bitcoin::FullIncrement32}
3649                                                                    },
3650                                                                    1 => {
3651                                                                        0 => {Bitcoin::FullIncrement64},
3652                                                                        1 => {}
3653                                                                    }
3654                                                                },
3655                                                                1 => {}
3656                                                            },
3657                                                            1 => {}
3658                                                        }
3659                                                    }
3660                                                },
3661                                                1 => {
3662                                                    0 => {},
3663                                                    1 => {
3664                                                        0 => {
3665                                                            0 => {},
3666                                                            1 => {Bitcoin::Increment8}
3667                                                        },
3668                                                        1 => {
3669                                                            0 => {
3670                                                                0 => {
3671                                                                    0 => {
3672                                                                        0 => {Bitcoin::Increment16},
3673                                                                        1 => {Bitcoin::Increment32}
3674                                                                    },
3675                                                                    1 => {
3676                                                                        0 => {Bitcoin::Increment64},
3677                                                                        1 => {}
3678                                                                    }
3679                                                                },
3680                                                                1 => {}
3681                                                            },
3682                                                            1 => {}
3683                                                        }
3684                                                    }
3685                                                }
3686                                            },
3687                                            1 => {
3688                                                0 => {},
3689                                                1 => {
3690                                                    0 => {},
3691                                                    1 => {
3692                                                        0 => {
3693                                                            0 => {},
3694                                                            1 => {Bitcoin::FullSubtract8}
3695                                                        },
3696                                                        1 => {
3697                                                            0 => {
3698                                                                0 => {
3699                                                                    0 => {
3700                                                                        0 => {Bitcoin::FullSubtract16},
3701                                                                        1 => {Bitcoin::FullSubtract32}
3702                                                                    },
3703                                                                    1 => {
3704                                                                        0 => {Bitcoin::FullSubtract64},
3705                                                                        1 => {}
3706                                                                    }
3707                                                                },
3708                                                                1 => {}
3709                                                            },
3710                                                            1 => {}
3711                                                        }
3712                                                    }
3713                                                }
3714                                            }
3715                                        },
3716                                        1 => {
3717                                            0 => {
3718                                                0 => {
3719                                                    0 => {
3720                                                        0 => {},
3721                                                        1 => {
3722                                                            0 => {
3723                                                                0 => {},
3724                                                                1 => {Bitcoin::Subtract8}
3725                                                            },
3726                                                            1 => {
3727                                                                0 => {
3728                                                                    0 => {
3729                                                                        0 => {
3730                                                                            0 => {Bitcoin::Subtract16},
3731                                                                            1 => {Bitcoin::Subtract32}
3732                                                                        },
3733                                                                        1 => {
3734                                                                            0 => {Bitcoin::Subtract64},
3735                                                                            1 => {}
3736                                                                        }
3737                                                                    },
3738                                                                    1 => {}
3739                                                                },
3740                                                                1 => {}
3741                                                            }
3742                                                        }
3743                                                    },
3744                                                    1 => {
3745                                                        0 => {},
3746                                                        1 => {
3747                                                            0 => {
3748                                                                0 => {},
3749                                                                1 => {Bitcoin::Negate8}
3750                                                            },
3751                                                            1 => {
3752                                                                0 => {
3753                                                                    0 => {
3754                                                                        0 => {
3755                                                                            0 => {Bitcoin::Negate16},
3756                                                                            1 => {Bitcoin::Negate32}
3757                                                                        },
3758                                                                        1 => {
3759                                                                            0 => {Bitcoin::Negate64},
3760                                                                            1 => {}
3761                                                                        }
3762                                                                    },
3763                                                                    1 => {}
3764                                                                },
3765                                                                1 => {}
3766                                                            }
3767                                                        }
3768                                                    }
3769                                                },
3770                                                1 => {
3771                                                    0 => {
3772                                                        0 => {},
3773                                                        1 => {
3774                                                            0 => {
3775                                                                0 => {},
3776                                                                1 => {Bitcoin::FullDecrement8}
3777                                                            },
3778                                                            1 => {
3779                                                                0 => {
3780                                                                    0 => {
3781                                                                        0 => {
3782                                                                            0 => {Bitcoin::FullDecrement16},
3783                                                                            1 => {Bitcoin::FullDecrement32}
3784                                                                        },
3785                                                                        1 => {
3786                                                                            0 => {Bitcoin::FullDecrement64},
3787                                                                            1 => {}
3788                                                                        }
3789                                                                    },
3790                                                                    1 => {}
3791                                                                },
3792                                                                1 => {}
3793                                                            }
3794                                                        }
3795                                                    },
3796                                                    1 => {
3797                                                        0 => {},
3798                                                        1 => {
3799                                                            0 => {
3800                                                                0 => {},
3801                                                                1 => {Bitcoin::Decrement8}
3802                                                            },
3803                                                            1 => {
3804                                                                0 => {
3805                                                                    0 => {
3806                                                                        0 => {
3807                                                                            0 => {Bitcoin::Decrement16},
3808                                                                            1 => {Bitcoin::Decrement32}
3809                                                                        },
3810                                                                        1 => {
3811                                                                            0 => {Bitcoin::Decrement64},
3812                                                                            1 => {}
3813                                                                        }
3814                                                                    },
3815                                                                    1 => {}
3816                                                                },
3817                                                                1 => {}
3818                                                            }
3819                                                        }
3820                                                    }
3821                                                }
3822                                            },
3823                                            1 => {
3824                                                0 => {
3825                                                    0 => {
3826                                                        0 => {},
3827                                                        1 => {
3828                                                            0 => {
3829                                                                0 => {},
3830                                                                1 => {Bitcoin::FullMultiply8}
3831                                                            },
3832                                                            1 => {
3833                                                                0 => {
3834                                                                    0 => {
3835                                                                        0 => {
3836                                                                            0 => {Bitcoin::FullMultiply16},
3837                                                                            1 => {Bitcoin::FullMultiply32}
3838                                                                        },
3839                                                                        1 => {
3840                                                                            0 => {Bitcoin::FullMultiply64},
3841                                                                            1 => {}
3842                                                                        }
3843                                                                    },
3844                                                                    1 => {}
3845                                                                },
3846                                                                1 => {}
3847                                                            }
3848                                                        }
3849                                                    },
3850                                                    1 => {
3851                                                        0 => {},
3852                                                        1 => {
3853                                                            0 => {
3854                                                                0 => {},
3855                                                                1 => {Bitcoin::Multiply8}
3856                                                            },
3857                                                            1 => {
3858                                                                0 => {
3859                                                                    0 => {
3860                                                                        0 => {
3861                                                                            0 => {Bitcoin::Multiply16},
3862                                                                            1 => {Bitcoin::Multiply32}
3863                                                                        },
3864                                                                        1 => {
3865                                                                            0 => {Bitcoin::Multiply64},
3866                                                                            1 => {}
3867                                                                        }
3868                                                                    },
3869                                                                    1 => {}
3870                                                                },
3871                                                                1 => {}
3872                                                            }
3873                                                        }
3874                                                    }
3875                                                },
3876                                                1 => {
3877                                                    0 => {
3878                                                        0 => {},
3879                                                        1 => {
3880                                                            0 => {
3881                                                                0 => {},
3882                                                                1 => {Bitcoin::IsZero8}
3883                                                            },
3884                                                            1 => {
3885                                                                0 => {
3886                                                                    0 => {
3887                                                                        0 => {
3888                                                                            0 => {Bitcoin::IsZero16},
3889                                                                            1 => {Bitcoin::IsZero32}
3890                                                                        },
3891                                                                        1 => {
3892                                                                            0 => {Bitcoin::IsZero64},
3893                                                                            1 => {}
3894                                                                        }
3895                                                                    },
3896                                                                    1 => {}
3897                                                                },
3898                                                                1 => {}
3899                                                            }
3900                                                        }
3901                                                    },
3902                                                    1 => {
3903                                                        0 => {},
3904                                                        1 => {
3905                                                            0 => {
3906                                                                0 => {},
3907                                                                1 => {Bitcoin::IsOne8}
3908                                                            },
3909                                                            1 => {
3910                                                                0 => {
3911                                                                    0 => {
3912                                                                        0 => {
3913                                                                            0 => {Bitcoin::IsOne16},
3914                                                                            1 => {Bitcoin::IsOne32}
3915                                                                        },
3916                                                                        1 => {
3917                                                                            0 => {Bitcoin::IsOne64},
3918                                                                            1 => {}
3919                                                                        }
3920                                                                    },
3921                                                                    1 => {}
3922                                                                },
3923                                                                1 => {}
3924                                                            }
3925                                                        }
3926                                                    }
3927                                                }
3928                                            }
3929                                        }
3930                                    },
3931                                    1 => {
3932                                        0 => {
3933                                            0 => {
3934                                                0 => {
3935                                                    0 => {
3936                                                        0 => {
3937                                                            0 => {
3938                                                                0 => {
3939                                                                    0 => {
3940                                                                        0 => {},
3941                                                                        1 => {
3942                                                                            0 => {
3943                                                                                0 => {},
3944                                                                                1 => {Bitcoin::Le8}
3945                                                                            },
3946                                                                            1 => {
3947                                                                                0 => {
3948                                                                                    0 => {
3949                                                                                        0 => {
3950                                                                                            0 => {Bitcoin::Le16},
3951                                                                                            1 => {Bitcoin::Le32}
3952                                                                                        },
3953                                                                                        1 => {
3954                                                                                            0 => {Bitcoin::Le64},
3955                                                                                            1 => {}
3956                                                                                        }
3957                                                                                    },
3958                                                                                    1 => {}
3959                                                                                },
3960                                                                                1 => {}
3961                                                                            }
3962                                                                        }
3963                                                                    },
3964                                                                    1 => {
3965                                                                        0 => {},
3966                                                                        1 => {
3967                                                                            0 => {
3968                                                                                0 => {},
3969                                                                                1 => {Bitcoin::Lt8}
3970                                                                            },
3971                                                                            1 => {
3972                                                                                0 => {
3973                                                                                    0 => {
3974                                                                                        0 => {
3975                                                                                            0 => {Bitcoin::Lt16},
3976                                                                                            1 => {Bitcoin::Lt32}
3977                                                                                        },
3978                                                                                        1 => {
3979                                                                                            0 => {Bitcoin::Lt64},
3980                                                                                            1 => {}
3981                                                                                        }
3982                                                                                    },
3983                                                                                    1 => {}
3984                                                                                },
3985                                                                                1 => {}
3986                                                                            }
3987                                                                        }
3988                                                                    }
3989                                                                },
3990                                                                1 => {
3991                                                                    0 => {
3992                                                                        0 => {},
3993                                                                        1 => {
3994                                                                            0 => {
3995                                                                                0 => {},
3996                                                                                1 => {Bitcoin::Min8}
3997                                                                            },
3998                                                                            1 => {
3999                                                                                0 => {
4000                                                                                    0 => {
4001                                                                                        0 => {
4002                                                                                            0 => {Bitcoin::Min16},
4003                                                                                            1 => {Bitcoin::Min32}
4004                                                                                        },
4005                                                                                        1 => {
4006                                                                                            0 => {Bitcoin::Min64},
4007                                                                                            1 => {}
4008                                                                                        }
4009                                                                                    },
4010                                                                                    1 => {}
4011                                                                                },
4012                                                                                1 => {}
4013                                                                            }
4014                                                                        }
4015                                                                    },
4016                                                                    1 => {
4017                                                                        0 => {},
4018                                                                        1 => {
4019                                                                            0 => {
4020                                                                                0 => {},
4021                                                                                1 => {Bitcoin::Max8}
4022                                                                            },
4023                                                                            1 => {
4024                                                                                0 => {
4025                                                                                    0 => {
4026                                                                                        0 => {
4027                                                                                            0 => {Bitcoin::Max16},
4028                                                                                            1 => {Bitcoin::Max32}
4029                                                                                        },
4030                                                                                        1 => {
4031                                                                                            0 => {Bitcoin::Max64},
4032                                                                                            1 => {}
4033                                                                                        }
4034                                                                                    },
4035                                                                                    1 => {}
4036                                                                                },
4037                                                                                1 => {}
4038                                                                            }
4039                                                                        }
4040                                                                    }
4041                                                                }
4042                                                            },
4043                                                            1 => {
4044                                                                0 => {
4045                                                                    0 => {
4046                                                                        0 => {},
4047                                                                        1 => {
4048                                                                            0 => {
4049                                                                                0 => {},
4050                                                                                1 => {Bitcoin::Median8}
4051                                                                            },
4052                                                                            1 => {
4053                                                                                0 => {
4054                                                                                    0 => {
4055                                                                                        0 => {
4056                                                                                            0 => {Bitcoin::Median16},
4057                                                                                            1 => {Bitcoin::Median32}
4058                                                                                        },
4059                                                                                        1 => {
4060                                                                                            0 => {Bitcoin::Median64},
4061                                                                                            1 => {}
4062                                                                                        }
4063                                                                                    },
4064                                                                                    1 => {}
4065                                                                                },
4066                                                                                1 => {}
4067                                                                            }
4068                                                                        }
4069                                                                    },
4070                                                                    1 => {
4071                                                                        0 => {},
4072                                                                        1 => {
4073                                                                            0 => {},
4074                                                                            1 => {
4075                                                                                0 => {
4076                                                                                    0 => {
4077                                                                                        0 => {},
4078                                                                                        1 => {
4079                                                                                            0 => {Bitcoin::DivMod128_64},
4080                                                                                            1 => {}
4081                                                                                        }
4082                                                                                    },
4083                                                                                    1 => {}
4084                                                                                },
4085                                                                                1 => {}
4086                                                                            }
4087                                                                        }
4088                                                                    }
4089                                                                },
4090                                                                1 => {
4091                                                                    0 => {
4092                                                                        0 => {},
4093                                                                        1 => {
4094                                                                            0 => {
4095                                                                                0 => {},
4096                                                                                1 => {Bitcoin::DivMod8}
4097                                                                            },
4098                                                                            1 => {
4099                                                                                0 => {
4100                                                                                    0 => {
4101                                                                                        0 => {
4102                                                                                            0 => {Bitcoin::DivMod16},
4103                                                                                            1 => {Bitcoin::DivMod32}
4104                                                                                        },
4105                                                                                        1 => {
4106                                                                                            0 => {Bitcoin::DivMod64},
4107                                                                                            1 => {}
4108                                                                                        }
4109                                                                                    },
4110                                                                                    1 => {}
4111                                                                                },
4112                                                                                1 => {}
4113                                                                            }
4114                                                                        }
4115                                                                    },
4116                                                                    1 => {
4117                                                                        0 => {},
4118                                                                        1 => {
4119                                                                            0 => {
4120                                                                                0 => {},
4121                                                                                1 => {Bitcoin::Divide8}
4122                                                                            },
4123                                                                            1 => {
4124                                                                                0 => {
4125                                                                                    0 => {
4126                                                                                        0 => {
4127                                                                                            0 => {Bitcoin::Divide16},
4128                                                                                            1 => {Bitcoin::Divide32}
4129                                                                                        },
4130                                                                                        1 => {
4131                                                                                            0 => {Bitcoin::Divide64},
4132                                                                                            1 => {}
4133                                                                                        }
4134                                                                                    },
4135                                                                                    1 => {}
4136                                                                                },
4137                                                                                1 => {}
4138                                                                            }
4139                                                                        }
4140                                                                    }
4141                                                                }
4142                                                            }
4143                                                        },
4144                                                        1 => {
4145                                                            0 => {
4146                                                                0 => {
4147                                                                    0 => {
4148                                                                        0 => {},
4149                                                                        1 => {
4150                                                                            0 => {
4151                                                                                0 => {},
4152                                                                                1 => {Bitcoin::Modulo8}
4153                                                                            },
4154                                                                            1 => {
4155                                                                                0 => {
4156                                                                                    0 => {
4157                                                                                        0 => {
4158                                                                                            0 => {Bitcoin::Modulo16},
4159                                                                                            1 => {Bitcoin::Modulo32}
4160                                                                                        },
4161                                                                                        1 => {
4162                                                                                            0 => {Bitcoin::Modulo64},
4163                                                                                            1 => {}
4164                                                                                        }
4165                                                                                    },
4166                                                                                    1 => {}
4167                                                                                },
4168                                                                                1 => {}
4169                                                                            }
4170                                                                        }
4171                                                                    },
4172                                                                    1 => {
4173                                                                        0 => {},
4174                                                                        1 => {
4175                                                                            0 => {
4176                                                                                0 => {},
4177                                                                                1 => {Bitcoin::Divides8}
4178                                                                            },
4179                                                                            1 => {
4180                                                                                0 => {
4181                                                                                    0 => {
4182                                                                                        0 => {
4183                                                                                            0 => {Bitcoin::Divides16},
4184                                                                                            1 => {Bitcoin::Divides32}
4185                                                                                        },
4186                                                                                        1 => {
4187                                                                                            0 => {Bitcoin::Divides64},
4188                                                                                            1 => {}
4189                                                                                        }
4190                                                                                    },
4191                                                                                    1 => {}
4192                                                                                },
4193                                                                                1 => {}
4194                                                                            }
4195                                                                        }
4196                                                                    }
4197                                                                },
4198                                                                1 => {}
4199                                                            },
4200                                                            1 => {}
4201                                                        }
4202                                                    },
4203                                                    1 => {}
4204                                                },
4205                                                1 => {}
4206                                            },
4207                                            1 => {}
4208                                        },
4209                                        1 => {}
4210                                    }
4211                                }
4212                            }
4213                        },
4214                        1 => {
4215                            0 => {
4216                                0 => {Bitcoin::Sha256Block},
4217                                1 => {
4218                                    0 => {
4219                                        0 => {Bitcoin::Sha256Iv},
4220                                        1 => {
4221                                            0 => {Bitcoin::Sha256Ctx8Add1},
4222                                            1 => {
4223                                                0 => {
4224                                                    0 => {Bitcoin::Sha256Ctx8Add2},
4225                                                    1 => {Bitcoin::Sha256Ctx8Add4}
4226                                                },
4227                                                1 => {
4228                                                    0 => {
4229                                                        0 => {
4230                                                            0 => {
4231                                                                0 => {Bitcoin::Sha256Ctx8Add8},
4232                                                                1 => {Bitcoin::Sha256Ctx8Add16}
4233                                                            },
4234                                                            1 => {
4235                                                                0 => {Bitcoin::Sha256Ctx8Add32},
4236                                                                1 => {Bitcoin::Sha256Ctx8Add64}
4237                                                            }
4238                                                        },
4239                                                        1 => {
4240                                                            0 => {
4241                                                                0 => {
4242                                                                    0 => {Bitcoin::Sha256Ctx8Add128},
4243                                                                    1 => {Bitcoin::Sha256Ctx8Add256}
4244                                                                },
4245                                                                1 => {
4246                                                                    0 => {Bitcoin::Sha256Ctx8Add512},
4247                                                                    1 => {}
4248                                                                }
4249                                                            },
4250                                                            1 => {}
4251                                                        }
4252                                                    },
4253                                                    1 => {}
4254                                                }
4255                                            }
4256                                        }
4257                                    },
4258                                    1 => {
4259                                        0 => {
4260                                            0 => {
4261                                                0 => {
4262                                                    0 => {Bitcoin::Sha256Ctx8AddBuffer511},
4263                                                    1 => {Bitcoin::Sha256Ctx8Finalize}
4264                                                },
4265                                                1 => {
4266                                                    0 => {Bitcoin::Sha256Ctx8Init},
4267                                                    1 => {}
4268                                                }
4269                                            },
4270                                            1 => {}
4271                                        },
4272                                        1 => {}
4273                                    }
4274                                }
4275                            },
4276                            1 => {}
4277                        }
4278                    },
4279                    1 => {
4280                        0 => {
4281                            0 => {
4282                                0 => {
4283                                    0 => {
4284                                        0 => {
4285                                            0 => {Bitcoin::PointVerify1},
4286                                            1 => {}
4287                                        },
4288                                        1 => {
4289                                            0 => {
4290                                                0 => {Bitcoin::Decompress},
4291                                                1 => {
4292                                                    0 => {Bitcoin::LinearVerify1},
4293                                                    1 => {}
4294                                                }
4295                                            },
4296                                            1 => {
4297                                                0 => {
4298                                                    0 => {
4299                                                        0 => {
4300                                                            0 => {
4301                                                                0 => {Bitcoin::LinearCombination1},
4302                                                                1 => {}
4303                                                            },
4304                                                            1 => {Bitcoin::Scale}
4305                                                        },
4306                                                        1 => {
4307                                                            0 => {Bitcoin::Generate},
4308                                                            1 => {Bitcoin::GejInfinity}
4309                                                        }
4310                                                    },
4311                                                    1 => {
4312                                                        0 => {
4313                                                            0 => {
4314                                                                0 => {Bitcoin::GejNormalize},
4315                                                                1 => {Bitcoin::GejNegate}
4316                                                            },
4317                                                            1 => {
4318                                                                0 => {Bitcoin::GeNegate},
4319                                                                1 => {Bitcoin::GejDouble}
4320                                                            }
4321                                                        },
4322                                                        1 => {
4323                                                            0 => {
4324                                                                0 => {Bitcoin::GejAdd},
4325                                                                1 => {Bitcoin::GejGeAddEx}
4326                                                            },
4327                                                            1 => {
4328                                                                0 => {Bitcoin::GejGeAdd},
4329                                                                1 => {Bitcoin::GejRescale}
4330                                                            }
4331                                                        }
4332                                                    }
4333                                                },
4334                                                1 => {
4335                                                    0 => {
4336                                                        0 => {
4337                                                            0 => {
4338                                                                0 => {
4339                                                                    0 => {
4340                                                                        0 => {
4341                                                                            0 => {
4342                                                                                0 => {Bitcoin::GejIsInfinity},
4343                                                                                1 => {Bitcoin::GejEquiv}
4344                                                                            },
4345                                                                            1 => {
4346                                                                                0 => {Bitcoin::GejGeEquiv},
4347                                                                                1 => {Bitcoin::GejXEquiv}
4348                                                                            }
4349                                                                        },
4350                                                                        1 => {
4351                                                                            0 => {
4352                                                                                0 => {Bitcoin::GejYIsOdd},
4353                                                                                1 => {Bitcoin::GejIsOnCurve}
4354                                                                            },
4355                                                                            1 => {
4356                                                                                0 => {Bitcoin::GeIsOnCurve},
4357                                                                                1 => {Bitcoin::ScalarNormalize}
4358                                                                            }
4359                                                                        }
4360                                                                    },
4361                                                                    1 => {
4362                                                                        0 => {
4363                                                                            0 => {
4364                                                                                0 => {Bitcoin::ScalarNegate},
4365                                                                                1 => {Bitcoin::ScalarAdd}
4366                                                                            },
4367                                                                            1 => {
4368                                                                                0 => {Bitcoin::ScalarSquare},
4369                                                                                1 => {Bitcoin::ScalarMultiply}
4370                                                                            }
4371                                                                        },
4372                                                                        1 => {
4373                                                                            0 => {
4374                                                                                0 => {Bitcoin::ScalarMultiplyLambda},
4375                                                                                1 => {Bitcoin::ScalarInvert}
4376                                                                            },
4377                                                                            1 => {
4378                                                                                0 => {Bitcoin::ScalarIsZero},
4379                                                                                1 => {}
4380                                                                            }
4381                                                                        }
4382                                                                    }
4383                                                                },
4384                                                                1 => {
4385                                                                    0 => {
4386                                                                        0 => {
4387                                                                            0 => {
4388                                                                                0 => {},
4389                                                                                1 => {
4390                                                                                    0 => {},
4391                                                                                    1 => {Bitcoin::FeNormalize}
4392                                                                                }
4393                                                                            },
4394                                                                            1 => {
4395                                                                                0 => {
4396                                                                                    0 => {Bitcoin::FeNegate},
4397                                                                                    1 => {Bitcoin::FeAdd}
4398                                                                                },
4399                                                                                1 => {
4400                                                                                    0 => {Bitcoin::FeSquare},
4401                                                                                    1 => {Bitcoin::FeMultiply}
4402                                                                                }
4403                                                                            }
4404                                                                        },
4405                                                                        1 => {
4406                                                                            0 => {
4407                                                                                0 => {
4408                                                                                    0 => {Bitcoin::FeMultiplyBeta},
4409                                                                                    1 => {Bitcoin::FeInvert}
4410                                                                                },
4411                                                                                1 => {
4412                                                                                    0 => {Bitcoin::FeSquareRoot},
4413                                                                                    1 => {Bitcoin::FeIsZero}
4414                                                                                }
4415                                                                            },
4416                                                                            1 => {
4417                                                                                0 => {
4418                                                                                    0 => {Bitcoin::FeIsOdd},
4419                                                                                    1 => {}
4420                                                                                },
4421                                                                                1 => {
4422                                                                                    0 => {Bitcoin::HashToCurve},
4423                                                                                    1 => {Bitcoin::Swu}
4424                                                                                }
4425                                                                            }
4426                                                                        }
4427                                                                    },
4428                                                                    1 => {}
4429                                                                }
4430                                                            },
4431                                                            1 => {}
4432                                                        },
4433                                                        1 => {}
4434                                                    },
4435                                                    1 => {}
4436                                                }
4437                                            }
4438                                        }
4439                                    },
4440                                    1 => {
4441                                        0 => {Bitcoin::CheckSigVerify},
4442                                        1 => {
4443                                            0 => {
4444                                                0 => {Bitcoin::Bip0340Verify},
4445                                                1 => {}
4446                                            },
4447                                            1 => {}
4448                                        }
4449                                    }
4450                                },
4451                                1 => {
4452                                    0 => {},
4453                                    1 => {
4454                                        0 => {Bitcoin::ParseLock},
4455                                        1 => {
4456                                            0 => {
4457                                                0 => {Bitcoin::ParseSequence},
4458                                                1 => {Bitcoin::TapdataInit}
4459                                            },
4460                                            1 => {}
4461                                        }
4462                                    }
4463                                }
4464                            },
4465                            1 => {}
4466                        },
4467                        1 => {}
4468                    }
4469                }
4470            },
4471            1 => {
4472                0 => {
4473                    0 => {Bitcoin::SigAllHash},
4474                    1 => {
4475                        0 => {
4476                            0 => {Bitcoin::TxHash},
4477                            1 => {Bitcoin::TapEnvHash}
4478                        },
4479                        1 => {
4480                            0 => {
4481                                0 => {
4482                                    0 => {
4483                                        0 => {Bitcoin::OutputsHash},
4484                                        1 => {Bitcoin::InputsHash}
4485                                    },
4486                                    1 => {
4487                                        0 => {Bitcoin::InputUtxosHash},
4488                                        1 => {Bitcoin::OutputHash}
4489                                    }
4490                                },
4491                                1 => {
4492                                    0 => {
4493                                        0 => {
4494                                            0 => {Bitcoin::OutputValuesHash},
4495                                            1 => {Bitcoin::OutputScriptsHash}
4496                                        },
4497                                        1 => {
4498                                            0 => {Bitcoin::InputHash},
4499                                            1 => {Bitcoin::InputOutpointsHash}
4500                                        }
4501                                    },
4502                                    1 => {
4503                                        0 => {
4504                                            0 => {Bitcoin::InputSequencesHash},
4505                                            1 => {Bitcoin::InputAnnexesHash}
4506                                        },
4507                                        1 => {
4508                                            0 => {Bitcoin::InputScriptSigsHash},
4509                                            1 => {Bitcoin::InputUtxoHash}
4510                                        }
4511                                    }
4512                                }
4513                            },
4514                            1 => {
4515                                0 => {
4516                                    0 => {
4517                                        0 => {
4518                                            0 => {
4519                                                0 => {
4520                                                    0 => {
4521                                                        0 => {
4522                                                            0 => {Bitcoin::InputValuesHash},
4523                                                            1 => {Bitcoin::InputScriptsHash}
4524                                                        },
4525                                                        1 => {
4526                                                            0 => {Bitcoin::TapleafHash},
4527                                                            1 => {Bitcoin::TappathHash}
4528                                                        }
4529                                                    },
4530                                                    1 => {
4531                                                        0 => {
4532                                                            0 => {Bitcoin::OutpointHash},
4533                                                            1 => {Bitcoin::AnnexHash}
4534                                                        },
4535                                                        1 => {
4536                                                            0 => {Bitcoin::BuildTapleafSimplicity},
4537                                                            1 => {Bitcoin::BuildTapbranch}
4538                                                        }
4539                                                    }
4540                                                },
4541                                                1 => {
4542                                                    0 => {
4543                                                        0 => {
4544                                                            0 => {Bitcoin::BuildTaptweak},
4545                                                            1 => {}
4546                                                        },
4547                                                        1 => {}
4548                                                    },
4549                                                    1 => {}
4550                                                }
4551                                            },
4552                                            1 => {}
4553                                        },
4554                                        1 => {}
4555                                    },
4556                                    1 => {}
4557                                },
4558                                1 => {}
4559                            }
4560                        }
4561                    }
4562                },
4563                1 => {
4564                    0 => {
4565                        0 => {
4566                            0 => {Bitcoin::CheckLockHeight},
4567                            1 => {
4568                                0 => {
4569                                    0 => {Bitcoin::CheckLockTime},
4570                                    1 => {Bitcoin::CheckLockDistance}
4571                                },
4572                                1 => {
4573                                    0 => {
4574                                        0 => {
4575                                            0 => {
4576                                                0 => {Bitcoin::CheckLockDuration},
4577                                                1 => {Bitcoin::TxLockHeight}
4578                                            },
4579                                            1 => {
4580                                                0 => {Bitcoin::TxLockTime},
4581                                                1 => {Bitcoin::TxLockDistance}
4582                                            }
4583                                        },
4584                                        1 => {
4585                                            0 => {
4586                                                0 => {
4587                                                    0 => {Bitcoin::TxLockDuration},
4588                                                    1 => {Bitcoin::TxIsFinal}
4589                                                },
4590                                                1 => {}
4591                                            },
4592                                            1 => {}
4593                                        }
4594                                    },
4595                                    1 => {}
4596                                }
4597                            }
4598                        },
4599                        1 => {
4600                            0 => {Bitcoin::ScriptCMR},
4601                            1 => {
4602                                0 => {
4603                                    0 => {Bitcoin::InternalKey},
4604                                    1 => {Bitcoin::CurrentIndex}
4605                                },
4606                                1 => {
4607                                    0 => {
4608                                        0 => {
4609                                            0 => {
4610                                                0 => {Bitcoin::NumInputs},
4611                                                1 => {Bitcoin::NumOutputs}
4612                                            },
4613                                            1 => {
4614                                                0 => {Bitcoin::LockTime},
4615                                                1 => {Bitcoin::Fee}
4616                                            }
4617                                        },
4618                                        1 => {
4619                                            0 => {
4620                                                0 => {
4621                                                    0 => {Bitcoin::OutputValue},
4622                                                    1 => {Bitcoin::OutputScriptHash}
4623                                                },
4624                                                1 => {
4625                                                    0 => {Bitcoin::TotalOutputValue},
4626                                                    1 => {Bitcoin::CurrentPrevOutpoint}
4627                                                }
4628                                            },
4629                                            1 => {
4630                                                0 => {
4631                                                    0 => {Bitcoin::CurrentValue},
4632                                                    1 => {Bitcoin::CurrentScriptHash}
4633                                                },
4634                                                1 => {
4635                                                    0 => {Bitcoin::CurrentSequence},
4636                                                    1 => {Bitcoin::CurrentAnnexHash}
4637                                                }
4638                                            }
4639                                        }
4640                                    },
4641                                    1 => {
4642                                        0 => {
4643                                            0 => {
4644                                                0 => {
4645                                                    0 => {
4646                                                        0 => {
4647                                                            0 => {
4648                                                                0 => {
4649                                                                    0 => {Bitcoin::CurrentScriptSigHash},
4650                                                                    1 => {Bitcoin::InputPrevOutpoint}
4651                                                                },
4652                                                                1 => {
4653                                                                    0 => {Bitcoin::InputValue},
4654                                                                    1 => {Bitcoin::InputScriptHash}
4655                                                                }
4656                                                            },
4657                                                            1 => {
4658                                                                0 => {
4659                                                                    0 => {Bitcoin::InputSequence},
4660                                                                    1 => {Bitcoin::InputAnnexHash}
4661                                                                },
4662                                                                1 => {
4663                                                                    0 => {Bitcoin::InputScriptSigHash},
4664                                                                    1 => {Bitcoin::TotalInputValue}
4665                                                                }
4666                                                            }
4667                                                        },
4668                                                        1 => {
4669                                                            0 => {
4670                                                                0 => {
4671                                                                    0 => {Bitcoin::TapleafVersion},
4672                                                                    1 => {Bitcoin::Tappath}
4673                                                                },
4674                                                                1 => {
4675                                                                    0 => {Bitcoin::Version},
4676                                                                    1 => {Bitcoin::TransactionId}
4677                                                                }
4678                                                            },
4679                                                            1 => {}
4680                                                        }
4681                                                    },
4682                                                    1 => {}
4683                                                },
4684                                                1 => {}
4685                                            },
4686                                            1 => {}
4687                                        },
4688                                        1 => {}
4689                                    }
4690                                }
4691                            }
4692                        }
4693                    },
4694                    1 => {}
4695                }
4696            }
4697        })
4698    }
4699
4700    fn cost(&self) -> Cost {
4701        unimplemented!("Unspecified cost of Bitcoin jets")
4702    }
4703
4704    fn parse(s: &str) -> Result<Self, crate::Error> where Self: Sized {
4705        str::FromStr::from_str(s)
4706    }
4707}
4708
4709impl fmt::Display for Bitcoin {
4710    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4711        match self {
4712            Bitcoin::Add16 => f.write_str("add_16"),
4713            Bitcoin::Add32 => f.write_str("add_32"),
4714            Bitcoin::Add64 => f.write_str("add_64"),
4715            Bitcoin::Add8 => f.write_str("add_8"),
4716            Bitcoin::All16 => f.write_str("all_16"),
4717            Bitcoin::All32 => f.write_str("all_32"),
4718            Bitcoin::All64 => f.write_str("all_64"),
4719            Bitcoin::All8 => f.write_str("all_8"),
4720            Bitcoin::And1 => f.write_str("and_1"),
4721            Bitcoin::And16 => f.write_str("and_16"),
4722            Bitcoin::And32 => f.write_str("and_32"),
4723            Bitcoin::And64 => f.write_str("and_64"),
4724            Bitcoin::And8 => f.write_str("and_8"),
4725            Bitcoin::AnnexHash => f.write_str("annex_hash"),
4726            Bitcoin::Bip0340Verify => f.write_str("bip_0340_verify"),
4727            Bitcoin::BuildTapbranch => f.write_str("build_tapbranch"),
4728            Bitcoin::BuildTapleafSimplicity => f.write_str("build_tapleaf_simplicity"),
4729            Bitcoin::BuildTaptweak => f.write_str("build_taptweak"),
4730            Bitcoin::Ch1 => f.write_str("ch_1"),
4731            Bitcoin::Ch16 => f.write_str("ch_16"),
4732            Bitcoin::Ch32 => f.write_str("ch_32"),
4733            Bitcoin::Ch64 => f.write_str("ch_64"),
4734            Bitcoin::Ch8 => f.write_str("ch_8"),
4735            Bitcoin::CheckLockDistance => f.write_str("check_lock_distance"),
4736            Bitcoin::CheckLockDuration => f.write_str("check_lock_duration"),
4737            Bitcoin::CheckLockHeight => f.write_str("check_lock_height"),
4738            Bitcoin::CheckLockTime => f.write_str("check_lock_time"),
4739            Bitcoin::CheckSigVerify => f.write_str("check_sig_verify"),
4740            Bitcoin::Complement1 => f.write_str("complement_1"),
4741            Bitcoin::Complement16 => f.write_str("complement_16"),
4742            Bitcoin::Complement32 => f.write_str("complement_32"),
4743            Bitcoin::Complement64 => f.write_str("complement_64"),
4744            Bitcoin::Complement8 => f.write_str("complement_8"),
4745            Bitcoin::CurrentAnnexHash => f.write_str("current_annex_hash"),
4746            Bitcoin::CurrentIndex => f.write_str("current_index"),
4747            Bitcoin::CurrentPrevOutpoint => f.write_str("current_prev_outpoint"),
4748            Bitcoin::CurrentScriptHash => f.write_str("current_script_hash"),
4749            Bitcoin::CurrentScriptSigHash => f.write_str("current_script_sig_hash"),
4750            Bitcoin::CurrentSequence => f.write_str("current_sequence"),
4751            Bitcoin::CurrentValue => f.write_str("current_value"),
4752            Bitcoin::Decompress => f.write_str("decompress"),
4753            Bitcoin::Decrement16 => f.write_str("decrement_16"),
4754            Bitcoin::Decrement32 => f.write_str("decrement_32"),
4755            Bitcoin::Decrement64 => f.write_str("decrement_64"),
4756            Bitcoin::Decrement8 => f.write_str("decrement_8"),
4757            Bitcoin::DivMod128_64 => f.write_str("div_mod_128_64"),
4758            Bitcoin::DivMod16 => f.write_str("div_mod_16"),
4759            Bitcoin::DivMod32 => f.write_str("div_mod_32"),
4760            Bitcoin::DivMod64 => f.write_str("div_mod_64"),
4761            Bitcoin::DivMod8 => f.write_str("div_mod_8"),
4762            Bitcoin::Divide16 => f.write_str("divide_16"),
4763            Bitcoin::Divide32 => f.write_str("divide_32"),
4764            Bitcoin::Divide64 => f.write_str("divide_64"),
4765            Bitcoin::Divide8 => f.write_str("divide_8"),
4766            Bitcoin::Divides16 => f.write_str("divides_16"),
4767            Bitcoin::Divides32 => f.write_str("divides_32"),
4768            Bitcoin::Divides64 => f.write_str("divides_64"),
4769            Bitcoin::Divides8 => f.write_str("divides_8"),
4770            Bitcoin::Eq1 => f.write_str("eq_1"),
4771            Bitcoin::Eq16 => f.write_str("eq_16"),
4772            Bitcoin::Eq256 => f.write_str("eq_256"),
4773            Bitcoin::Eq32 => f.write_str("eq_32"),
4774            Bitcoin::Eq64 => f.write_str("eq_64"),
4775            Bitcoin::Eq8 => f.write_str("eq_8"),
4776            Bitcoin::FeAdd => f.write_str("fe_add"),
4777            Bitcoin::FeInvert => f.write_str("fe_invert"),
4778            Bitcoin::FeIsOdd => f.write_str("fe_is_odd"),
4779            Bitcoin::FeIsZero => f.write_str("fe_is_zero"),
4780            Bitcoin::FeMultiply => f.write_str("fe_multiply"),
4781            Bitcoin::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
4782            Bitcoin::FeNegate => f.write_str("fe_negate"),
4783            Bitcoin::FeNormalize => f.write_str("fe_normalize"),
4784            Bitcoin::FeSquare => f.write_str("fe_square"),
4785            Bitcoin::FeSquareRoot => f.write_str("fe_square_root"),
4786            Bitcoin::Fee => f.write_str("fee"),
4787            Bitcoin::FullAdd16 => f.write_str("full_add_16"),
4788            Bitcoin::FullAdd32 => f.write_str("full_add_32"),
4789            Bitcoin::FullAdd64 => f.write_str("full_add_64"),
4790            Bitcoin::FullAdd8 => f.write_str("full_add_8"),
4791            Bitcoin::FullDecrement16 => f.write_str("full_decrement_16"),
4792            Bitcoin::FullDecrement32 => f.write_str("full_decrement_32"),
4793            Bitcoin::FullDecrement64 => f.write_str("full_decrement_64"),
4794            Bitcoin::FullDecrement8 => f.write_str("full_decrement_8"),
4795            Bitcoin::FullIncrement16 => f.write_str("full_increment_16"),
4796            Bitcoin::FullIncrement32 => f.write_str("full_increment_32"),
4797            Bitcoin::FullIncrement64 => f.write_str("full_increment_64"),
4798            Bitcoin::FullIncrement8 => f.write_str("full_increment_8"),
4799            Bitcoin::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
4800            Bitcoin::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
4801            Bitcoin::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
4802            Bitcoin::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
4803            Bitcoin::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
4804            Bitcoin::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
4805            Bitcoin::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
4806            Bitcoin::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
4807            Bitcoin::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
4808            Bitcoin::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
4809            Bitcoin::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
4810            Bitcoin::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
4811            Bitcoin::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
4812            Bitcoin::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
4813            Bitcoin::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
4814            Bitcoin::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
4815            Bitcoin::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
4816            Bitcoin::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
4817            Bitcoin::FullMultiply16 => f.write_str("full_multiply_16"),
4818            Bitcoin::FullMultiply32 => f.write_str("full_multiply_32"),
4819            Bitcoin::FullMultiply64 => f.write_str("full_multiply_64"),
4820            Bitcoin::FullMultiply8 => f.write_str("full_multiply_8"),
4821            Bitcoin::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
4822            Bitcoin::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
4823            Bitcoin::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
4824            Bitcoin::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
4825            Bitcoin::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
4826            Bitcoin::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
4827            Bitcoin::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
4828            Bitcoin::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
4829            Bitcoin::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
4830            Bitcoin::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
4831            Bitcoin::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
4832            Bitcoin::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
4833            Bitcoin::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
4834            Bitcoin::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
4835            Bitcoin::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
4836            Bitcoin::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
4837            Bitcoin::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
4838            Bitcoin::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
4839            Bitcoin::FullSubtract16 => f.write_str("full_subtract_16"),
4840            Bitcoin::FullSubtract32 => f.write_str("full_subtract_32"),
4841            Bitcoin::FullSubtract64 => f.write_str("full_subtract_64"),
4842            Bitcoin::FullSubtract8 => f.write_str("full_subtract_8"),
4843            Bitcoin::GeIsOnCurve => f.write_str("ge_is_on_curve"),
4844            Bitcoin::GeNegate => f.write_str("ge_negate"),
4845            Bitcoin::GejAdd => f.write_str("gej_add"),
4846            Bitcoin::GejDouble => f.write_str("gej_double"),
4847            Bitcoin::GejEquiv => f.write_str("gej_equiv"),
4848            Bitcoin::GejGeAdd => f.write_str("gej_ge_add"),
4849            Bitcoin::GejGeAddEx => f.write_str("gej_ge_add_ex"),
4850            Bitcoin::GejGeEquiv => f.write_str("gej_ge_equiv"),
4851            Bitcoin::GejInfinity => f.write_str("gej_infinity"),
4852            Bitcoin::GejIsInfinity => f.write_str("gej_is_infinity"),
4853            Bitcoin::GejIsOnCurve => f.write_str("gej_is_on_curve"),
4854            Bitcoin::GejNegate => f.write_str("gej_negate"),
4855            Bitcoin::GejNormalize => f.write_str("gej_normalize"),
4856            Bitcoin::GejRescale => f.write_str("gej_rescale"),
4857            Bitcoin::GejXEquiv => f.write_str("gej_x_equiv"),
4858            Bitcoin::GejYIsOdd => f.write_str("gej_y_is_odd"),
4859            Bitcoin::Generate => f.write_str("generate"),
4860            Bitcoin::HashToCurve => f.write_str("hash_to_curve"),
4861            Bitcoin::High1 => f.write_str("high_1"),
4862            Bitcoin::High16 => f.write_str("high_16"),
4863            Bitcoin::High32 => f.write_str("high_32"),
4864            Bitcoin::High64 => f.write_str("high_64"),
4865            Bitcoin::High8 => f.write_str("high_8"),
4866            Bitcoin::Increment16 => f.write_str("increment_16"),
4867            Bitcoin::Increment32 => f.write_str("increment_32"),
4868            Bitcoin::Increment64 => f.write_str("increment_64"),
4869            Bitcoin::Increment8 => f.write_str("increment_8"),
4870            Bitcoin::InputAnnexHash => f.write_str("input_annex_hash"),
4871            Bitcoin::InputAnnexesHash => f.write_str("input_annexes_hash"),
4872            Bitcoin::InputHash => f.write_str("input_hash"),
4873            Bitcoin::InputOutpointsHash => f.write_str("input_outpoints_hash"),
4874            Bitcoin::InputPrevOutpoint => f.write_str("input_prev_outpoint"),
4875            Bitcoin::InputScriptHash => f.write_str("input_script_hash"),
4876            Bitcoin::InputScriptSigHash => f.write_str("input_script_sig_hash"),
4877            Bitcoin::InputScriptSigsHash => f.write_str("input_script_sigs_hash"),
4878            Bitcoin::InputScriptsHash => f.write_str("input_scripts_hash"),
4879            Bitcoin::InputSequence => f.write_str("input_sequence"),
4880            Bitcoin::InputSequencesHash => f.write_str("input_sequences_hash"),
4881            Bitcoin::InputUtxoHash => f.write_str("input_utxo_hash"),
4882            Bitcoin::InputUtxosHash => f.write_str("input_utxos_hash"),
4883            Bitcoin::InputValue => f.write_str("input_value"),
4884            Bitcoin::InputValuesHash => f.write_str("input_values_hash"),
4885            Bitcoin::InputsHash => f.write_str("inputs_hash"),
4886            Bitcoin::InternalKey => f.write_str("internal_key"),
4887            Bitcoin::IsOne16 => f.write_str("is_one_16"),
4888            Bitcoin::IsOne32 => f.write_str("is_one_32"),
4889            Bitcoin::IsOne64 => f.write_str("is_one_64"),
4890            Bitcoin::IsOne8 => f.write_str("is_one_8"),
4891            Bitcoin::IsZero16 => f.write_str("is_zero_16"),
4892            Bitcoin::IsZero32 => f.write_str("is_zero_32"),
4893            Bitcoin::IsZero64 => f.write_str("is_zero_64"),
4894            Bitcoin::IsZero8 => f.write_str("is_zero_8"),
4895            Bitcoin::Le16 => f.write_str("le_16"),
4896            Bitcoin::Le32 => f.write_str("le_32"),
4897            Bitcoin::Le64 => f.write_str("le_64"),
4898            Bitcoin::Le8 => f.write_str("le_8"),
4899            Bitcoin::LeftExtend16_32 => f.write_str("left_extend_16_32"),
4900            Bitcoin::LeftExtend16_64 => f.write_str("left_extend_16_64"),
4901            Bitcoin::LeftExtend1_16 => f.write_str("left_extend_1_16"),
4902            Bitcoin::LeftExtend1_32 => f.write_str("left_extend_1_32"),
4903            Bitcoin::LeftExtend1_64 => f.write_str("left_extend_1_64"),
4904            Bitcoin::LeftExtend1_8 => f.write_str("left_extend_1_8"),
4905            Bitcoin::LeftExtend32_64 => f.write_str("left_extend_32_64"),
4906            Bitcoin::LeftExtend8_16 => f.write_str("left_extend_8_16"),
4907            Bitcoin::LeftExtend8_32 => f.write_str("left_extend_8_32"),
4908            Bitcoin::LeftExtend8_64 => f.write_str("left_extend_8_64"),
4909            Bitcoin::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
4910            Bitcoin::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
4911            Bitcoin::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
4912            Bitcoin::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
4913            Bitcoin::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
4914            Bitcoin::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
4915            Bitcoin::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
4916            Bitcoin::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
4917            Bitcoin::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
4918            Bitcoin::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
4919            Bitcoin::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
4920            Bitcoin::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
4921            Bitcoin::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
4922            Bitcoin::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
4923            Bitcoin::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
4924            Bitcoin::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
4925            Bitcoin::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
4926            Bitcoin::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
4927            Bitcoin::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
4928            Bitcoin::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
4929            Bitcoin::LeftRotate16 => f.write_str("left_rotate_16"),
4930            Bitcoin::LeftRotate32 => f.write_str("left_rotate_32"),
4931            Bitcoin::LeftRotate64 => f.write_str("left_rotate_64"),
4932            Bitcoin::LeftRotate8 => f.write_str("left_rotate_8"),
4933            Bitcoin::LeftShift16 => f.write_str("left_shift_16"),
4934            Bitcoin::LeftShift32 => f.write_str("left_shift_32"),
4935            Bitcoin::LeftShift64 => f.write_str("left_shift_64"),
4936            Bitcoin::LeftShift8 => f.write_str("left_shift_8"),
4937            Bitcoin::LeftShiftWith16 => f.write_str("left_shift_with_16"),
4938            Bitcoin::LeftShiftWith32 => f.write_str("left_shift_with_32"),
4939            Bitcoin::LeftShiftWith64 => f.write_str("left_shift_with_64"),
4940            Bitcoin::LeftShiftWith8 => f.write_str("left_shift_with_8"),
4941            Bitcoin::Leftmost16_1 => f.write_str("leftmost_16_1"),
4942            Bitcoin::Leftmost16_2 => f.write_str("leftmost_16_2"),
4943            Bitcoin::Leftmost16_4 => f.write_str("leftmost_16_4"),
4944            Bitcoin::Leftmost16_8 => f.write_str("leftmost_16_8"),
4945            Bitcoin::Leftmost32_1 => f.write_str("leftmost_32_1"),
4946            Bitcoin::Leftmost32_16 => f.write_str("leftmost_32_16"),
4947            Bitcoin::Leftmost32_2 => f.write_str("leftmost_32_2"),
4948            Bitcoin::Leftmost32_4 => f.write_str("leftmost_32_4"),
4949            Bitcoin::Leftmost32_8 => f.write_str("leftmost_32_8"),
4950            Bitcoin::Leftmost64_1 => f.write_str("leftmost_64_1"),
4951            Bitcoin::Leftmost64_16 => f.write_str("leftmost_64_16"),
4952            Bitcoin::Leftmost64_2 => f.write_str("leftmost_64_2"),
4953            Bitcoin::Leftmost64_32 => f.write_str("leftmost_64_32"),
4954            Bitcoin::Leftmost64_4 => f.write_str("leftmost_64_4"),
4955            Bitcoin::Leftmost64_8 => f.write_str("leftmost_64_8"),
4956            Bitcoin::Leftmost8_1 => f.write_str("leftmost_8_1"),
4957            Bitcoin::Leftmost8_2 => f.write_str("leftmost_8_2"),
4958            Bitcoin::Leftmost8_4 => f.write_str("leftmost_8_4"),
4959            Bitcoin::LinearCombination1 => f.write_str("linear_combination_1"),
4960            Bitcoin::LinearVerify1 => f.write_str("linear_verify_1"),
4961            Bitcoin::LockTime => f.write_str("lock_time"),
4962            Bitcoin::Low1 => f.write_str("low_1"),
4963            Bitcoin::Low16 => f.write_str("low_16"),
4964            Bitcoin::Low32 => f.write_str("low_32"),
4965            Bitcoin::Low64 => f.write_str("low_64"),
4966            Bitcoin::Low8 => f.write_str("low_8"),
4967            Bitcoin::Lt16 => f.write_str("lt_16"),
4968            Bitcoin::Lt32 => f.write_str("lt_32"),
4969            Bitcoin::Lt64 => f.write_str("lt_64"),
4970            Bitcoin::Lt8 => f.write_str("lt_8"),
4971            Bitcoin::Maj1 => f.write_str("maj_1"),
4972            Bitcoin::Maj16 => f.write_str("maj_16"),
4973            Bitcoin::Maj32 => f.write_str("maj_32"),
4974            Bitcoin::Maj64 => f.write_str("maj_64"),
4975            Bitcoin::Maj8 => f.write_str("maj_8"),
4976            Bitcoin::Max16 => f.write_str("max_16"),
4977            Bitcoin::Max32 => f.write_str("max_32"),
4978            Bitcoin::Max64 => f.write_str("max_64"),
4979            Bitcoin::Max8 => f.write_str("max_8"),
4980            Bitcoin::Median16 => f.write_str("median_16"),
4981            Bitcoin::Median32 => f.write_str("median_32"),
4982            Bitcoin::Median64 => f.write_str("median_64"),
4983            Bitcoin::Median8 => f.write_str("median_8"),
4984            Bitcoin::Min16 => f.write_str("min_16"),
4985            Bitcoin::Min32 => f.write_str("min_32"),
4986            Bitcoin::Min64 => f.write_str("min_64"),
4987            Bitcoin::Min8 => f.write_str("min_8"),
4988            Bitcoin::Modulo16 => f.write_str("modulo_16"),
4989            Bitcoin::Modulo32 => f.write_str("modulo_32"),
4990            Bitcoin::Modulo64 => f.write_str("modulo_64"),
4991            Bitcoin::Modulo8 => f.write_str("modulo_8"),
4992            Bitcoin::Multiply16 => f.write_str("multiply_16"),
4993            Bitcoin::Multiply32 => f.write_str("multiply_32"),
4994            Bitcoin::Multiply64 => f.write_str("multiply_64"),
4995            Bitcoin::Multiply8 => f.write_str("multiply_8"),
4996            Bitcoin::Negate16 => f.write_str("negate_16"),
4997            Bitcoin::Negate32 => f.write_str("negate_32"),
4998            Bitcoin::Negate64 => f.write_str("negate_64"),
4999            Bitcoin::Negate8 => f.write_str("negate_8"),
5000            Bitcoin::NumInputs => f.write_str("num_inputs"),
5001            Bitcoin::NumOutputs => f.write_str("num_outputs"),
5002            Bitcoin::One16 => f.write_str("one_16"),
5003            Bitcoin::One32 => f.write_str("one_32"),
5004            Bitcoin::One64 => f.write_str("one_64"),
5005            Bitcoin::One8 => f.write_str("one_8"),
5006            Bitcoin::Or1 => f.write_str("or_1"),
5007            Bitcoin::Or16 => f.write_str("or_16"),
5008            Bitcoin::Or32 => f.write_str("or_32"),
5009            Bitcoin::Or64 => f.write_str("or_64"),
5010            Bitcoin::Or8 => f.write_str("or_8"),
5011            Bitcoin::OutpointHash => f.write_str("outpoint_hash"),
5012            Bitcoin::OutputHash => f.write_str("output_hash"),
5013            Bitcoin::OutputScriptHash => f.write_str("output_script_hash"),
5014            Bitcoin::OutputScriptsHash => f.write_str("output_scripts_hash"),
5015            Bitcoin::OutputValue => f.write_str("output_value"),
5016            Bitcoin::OutputValuesHash => f.write_str("output_values_hash"),
5017            Bitcoin::OutputsHash => f.write_str("outputs_hash"),
5018            Bitcoin::ParseLock => f.write_str("parse_lock"),
5019            Bitcoin::ParseSequence => f.write_str("parse_sequence"),
5020            Bitcoin::PointVerify1 => f.write_str("point_verify_1"),
5021            Bitcoin::RightExtend16_32 => f.write_str("right_extend_16_32"),
5022            Bitcoin::RightExtend16_64 => f.write_str("right_extend_16_64"),
5023            Bitcoin::RightExtend32_64 => f.write_str("right_extend_32_64"),
5024            Bitcoin::RightExtend8_16 => f.write_str("right_extend_8_16"),
5025            Bitcoin::RightExtend8_32 => f.write_str("right_extend_8_32"),
5026            Bitcoin::RightExtend8_64 => f.write_str("right_extend_8_64"),
5027            Bitcoin::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
5028            Bitcoin::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
5029            Bitcoin::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
5030            Bitcoin::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
5031            Bitcoin::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
5032            Bitcoin::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
5033            Bitcoin::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
5034            Bitcoin::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
5035            Bitcoin::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
5036            Bitcoin::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
5037            Bitcoin::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
5038            Bitcoin::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
5039            Bitcoin::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
5040            Bitcoin::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
5041            Bitcoin::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
5042            Bitcoin::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
5043            Bitcoin::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
5044            Bitcoin::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
5045            Bitcoin::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
5046            Bitcoin::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
5047            Bitcoin::RightRotate16 => f.write_str("right_rotate_16"),
5048            Bitcoin::RightRotate32 => f.write_str("right_rotate_32"),
5049            Bitcoin::RightRotate64 => f.write_str("right_rotate_64"),
5050            Bitcoin::RightRotate8 => f.write_str("right_rotate_8"),
5051            Bitcoin::RightShift16 => f.write_str("right_shift_16"),
5052            Bitcoin::RightShift32 => f.write_str("right_shift_32"),
5053            Bitcoin::RightShift64 => f.write_str("right_shift_64"),
5054            Bitcoin::RightShift8 => f.write_str("right_shift_8"),
5055            Bitcoin::RightShiftWith16 => f.write_str("right_shift_with_16"),
5056            Bitcoin::RightShiftWith32 => f.write_str("right_shift_with_32"),
5057            Bitcoin::RightShiftWith64 => f.write_str("right_shift_with_64"),
5058            Bitcoin::RightShiftWith8 => f.write_str("right_shift_with_8"),
5059            Bitcoin::Rightmost16_1 => f.write_str("rightmost_16_1"),
5060            Bitcoin::Rightmost16_2 => f.write_str("rightmost_16_2"),
5061            Bitcoin::Rightmost16_4 => f.write_str("rightmost_16_4"),
5062            Bitcoin::Rightmost16_8 => f.write_str("rightmost_16_8"),
5063            Bitcoin::Rightmost32_1 => f.write_str("rightmost_32_1"),
5064            Bitcoin::Rightmost32_16 => f.write_str("rightmost_32_16"),
5065            Bitcoin::Rightmost32_2 => f.write_str("rightmost_32_2"),
5066            Bitcoin::Rightmost32_4 => f.write_str("rightmost_32_4"),
5067            Bitcoin::Rightmost32_8 => f.write_str("rightmost_32_8"),
5068            Bitcoin::Rightmost64_1 => f.write_str("rightmost_64_1"),
5069            Bitcoin::Rightmost64_16 => f.write_str("rightmost_64_16"),
5070            Bitcoin::Rightmost64_2 => f.write_str("rightmost_64_2"),
5071            Bitcoin::Rightmost64_32 => f.write_str("rightmost_64_32"),
5072            Bitcoin::Rightmost64_4 => f.write_str("rightmost_64_4"),
5073            Bitcoin::Rightmost64_8 => f.write_str("rightmost_64_8"),
5074            Bitcoin::Rightmost8_1 => f.write_str("rightmost_8_1"),
5075            Bitcoin::Rightmost8_2 => f.write_str("rightmost_8_2"),
5076            Bitcoin::Rightmost8_4 => f.write_str("rightmost_8_4"),
5077            Bitcoin::ScalarAdd => f.write_str("scalar_add"),
5078            Bitcoin::ScalarInvert => f.write_str("scalar_invert"),
5079            Bitcoin::ScalarIsZero => f.write_str("scalar_is_zero"),
5080            Bitcoin::ScalarMultiply => f.write_str("scalar_multiply"),
5081            Bitcoin::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
5082            Bitcoin::ScalarNegate => f.write_str("scalar_negate"),
5083            Bitcoin::ScalarNormalize => f.write_str("scalar_normalize"),
5084            Bitcoin::ScalarSquare => f.write_str("scalar_square"),
5085            Bitcoin::Scale => f.write_str("scale"),
5086            Bitcoin::ScriptCMR => f.write_str("script_cmr"),
5087            Bitcoin::Sha256Block => f.write_str("sha_256_block"),
5088            Bitcoin::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
5089            Bitcoin::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
5090            Bitcoin::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
5091            Bitcoin::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
5092            Bitcoin::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
5093            Bitcoin::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
5094            Bitcoin::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
5095            Bitcoin::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
5096            Bitcoin::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
5097            Bitcoin::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
5098            Bitcoin::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
5099            Bitcoin::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
5100            Bitcoin::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
5101            Bitcoin::Sha256Iv => f.write_str("sha_256_iv"),
5102            Bitcoin::SigAllHash => f.write_str("sig_all_hash"),
5103            Bitcoin::Some1 => f.write_str("some_1"),
5104            Bitcoin::Some16 => f.write_str("some_16"),
5105            Bitcoin::Some32 => f.write_str("some_32"),
5106            Bitcoin::Some64 => f.write_str("some_64"),
5107            Bitcoin::Some8 => f.write_str("some_8"),
5108            Bitcoin::Subtract16 => f.write_str("subtract_16"),
5109            Bitcoin::Subtract32 => f.write_str("subtract_32"),
5110            Bitcoin::Subtract64 => f.write_str("subtract_64"),
5111            Bitcoin::Subtract8 => f.write_str("subtract_8"),
5112            Bitcoin::Swu => f.write_str("swu"),
5113            Bitcoin::TapEnvHash => f.write_str("tap_env_hash"),
5114            Bitcoin::TapdataInit => f.write_str("tapdata_init"),
5115            Bitcoin::TapleafHash => f.write_str("tapleaf_hash"),
5116            Bitcoin::TapleafVersion => f.write_str("tapleaf_version"),
5117            Bitcoin::Tappath => f.write_str("tappath"),
5118            Bitcoin::TappathHash => f.write_str("tappath_hash"),
5119            Bitcoin::TotalInputValue => f.write_str("total_input_value"),
5120            Bitcoin::TotalOutputValue => f.write_str("total_output_value"),
5121            Bitcoin::TransactionId => f.write_str("transaction_id"),
5122            Bitcoin::TxHash => f.write_str("tx_hash"),
5123            Bitcoin::TxIsFinal => f.write_str("tx_is_final"),
5124            Bitcoin::TxLockDistance => f.write_str("tx_lock_distance"),
5125            Bitcoin::TxLockDuration => f.write_str("tx_lock_duration"),
5126            Bitcoin::TxLockHeight => f.write_str("tx_lock_height"),
5127            Bitcoin::TxLockTime => f.write_str("tx_lock_time"),
5128            Bitcoin::Verify => f.write_str("verify"),
5129            Bitcoin::Version => f.write_str("version"),
5130            Bitcoin::Xor1 => f.write_str("xor_1"),
5131            Bitcoin::Xor16 => f.write_str("xor_16"),
5132            Bitcoin::Xor32 => f.write_str("xor_32"),
5133            Bitcoin::Xor64 => f.write_str("xor_64"),
5134            Bitcoin::Xor8 => f.write_str("xor_8"),
5135            Bitcoin::XorXor1 => f.write_str("xor_xor_1"),
5136            Bitcoin::XorXor16 => f.write_str("xor_xor_16"),
5137            Bitcoin::XorXor32 => f.write_str("xor_xor_32"),
5138            Bitcoin::XorXor64 => f.write_str("xor_xor_64"),
5139            Bitcoin::XorXor8 => f.write_str("xor_xor_8"),
5140        }
5141    }
5142}
5143
5144impl str::FromStr for Bitcoin {
5145    type Err = crate::Error;
5146
5147    fn from_str(s: &str) -> Result<Self, Self::Err> {
5148        match s {
5149            "add_16" => Ok(Bitcoin::Add16),
5150            "add_32" => Ok(Bitcoin::Add32),
5151            "add_64" => Ok(Bitcoin::Add64),
5152            "add_8" => Ok(Bitcoin::Add8),
5153            "all_16" => Ok(Bitcoin::All16),
5154            "all_32" => Ok(Bitcoin::All32),
5155            "all_64" => Ok(Bitcoin::All64),
5156            "all_8" => Ok(Bitcoin::All8),
5157            "and_1" => Ok(Bitcoin::And1),
5158            "and_16" => Ok(Bitcoin::And16),
5159            "and_32" => Ok(Bitcoin::And32),
5160            "and_64" => Ok(Bitcoin::And64),
5161            "and_8" => Ok(Bitcoin::And8),
5162            "annex_hash" => Ok(Bitcoin::AnnexHash),
5163            "bip_0340_verify" => Ok(Bitcoin::Bip0340Verify),
5164            "build_tapbranch" => Ok(Bitcoin::BuildTapbranch),
5165            "build_tapleaf_simplicity" => Ok(Bitcoin::BuildTapleafSimplicity),
5166            "build_taptweak" => Ok(Bitcoin::BuildTaptweak),
5167            "ch_1" => Ok(Bitcoin::Ch1),
5168            "ch_16" => Ok(Bitcoin::Ch16),
5169            "ch_32" => Ok(Bitcoin::Ch32),
5170            "ch_64" => Ok(Bitcoin::Ch64),
5171            "ch_8" => Ok(Bitcoin::Ch8),
5172            "check_lock_distance" => Ok(Bitcoin::CheckLockDistance),
5173            "check_lock_duration" => Ok(Bitcoin::CheckLockDuration),
5174            "check_lock_height" => Ok(Bitcoin::CheckLockHeight),
5175            "check_lock_time" => Ok(Bitcoin::CheckLockTime),
5176            "check_sig_verify" => Ok(Bitcoin::CheckSigVerify),
5177            "complement_1" => Ok(Bitcoin::Complement1),
5178            "complement_16" => Ok(Bitcoin::Complement16),
5179            "complement_32" => Ok(Bitcoin::Complement32),
5180            "complement_64" => Ok(Bitcoin::Complement64),
5181            "complement_8" => Ok(Bitcoin::Complement8),
5182            "current_annex_hash" => Ok(Bitcoin::CurrentAnnexHash),
5183            "current_index" => Ok(Bitcoin::CurrentIndex),
5184            "current_prev_outpoint" => Ok(Bitcoin::CurrentPrevOutpoint),
5185            "current_script_hash" => Ok(Bitcoin::CurrentScriptHash),
5186            "current_script_sig_hash" => Ok(Bitcoin::CurrentScriptSigHash),
5187            "current_sequence" => Ok(Bitcoin::CurrentSequence),
5188            "current_value" => Ok(Bitcoin::CurrentValue),
5189            "decompress" => Ok(Bitcoin::Decompress),
5190            "decrement_16" => Ok(Bitcoin::Decrement16),
5191            "decrement_32" => Ok(Bitcoin::Decrement32),
5192            "decrement_64" => Ok(Bitcoin::Decrement64),
5193            "decrement_8" => Ok(Bitcoin::Decrement8),
5194            "div_mod_128_64" => Ok(Bitcoin::DivMod128_64),
5195            "div_mod_16" => Ok(Bitcoin::DivMod16),
5196            "div_mod_32" => Ok(Bitcoin::DivMod32),
5197            "div_mod_64" => Ok(Bitcoin::DivMod64),
5198            "div_mod_8" => Ok(Bitcoin::DivMod8),
5199            "divide_16" => Ok(Bitcoin::Divide16),
5200            "divide_32" => Ok(Bitcoin::Divide32),
5201            "divide_64" => Ok(Bitcoin::Divide64),
5202            "divide_8" => Ok(Bitcoin::Divide8),
5203            "divides_16" => Ok(Bitcoin::Divides16),
5204            "divides_32" => Ok(Bitcoin::Divides32),
5205            "divides_64" => Ok(Bitcoin::Divides64),
5206            "divides_8" => Ok(Bitcoin::Divides8),
5207            "eq_1" => Ok(Bitcoin::Eq1),
5208            "eq_16" => Ok(Bitcoin::Eq16),
5209            "eq_256" => Ok(Bitcoin::Eq256),
5210            "eq_32" => Ok(Bitcoin::Eq32),
5211            "eq_64" => Ok(Bitcoin::Eq64),
5212            "eq_8" => Ok(Bitcoin::Eq8),
5213            "fe_add" => Ok(Bitcoin::FeAdd),
5214            "fe_invert" => Ok(Bitcoin::FeInvert),
5215            "fe_is_odd" => Ok(Bitcoin::FeIsOdd),
5216            "fe_is_zero" => Ok(Bitcoin::FeIsZero),
5217            "fe_multiply" => Ok(Bitcoin::FeMultiply),
5218            "fe_multiply_beta" => Ok(Bitcoin::FeMultiplyBeta),
5219            "fe_negate" => Ok(Bitcoin::FeNegate),
5220            "fe_normalize" => Ok(Bitcoin::FeNormalize),
5221            "fe_square" => Ok(Bitcoin::FeSquare),
5222            "fe_square_root" => Ok(Bitcoin::FeSquareRoot),
5223            "fee" => Ok(Bitcoin::Fee),
5224            "full_add_16" => Ok(Bitcoin::FullAdd16),
5225            "full_add_32" => Ok(Bitcoin::FullAdd32),
5226            "full_add_64" => Ok(Bitcoin::FullAdd64),
5227            "full_add_8" => Ok(Bitcoin::FullAdd8),
5228            "full_decrement_16" => Ok(Bitcoin::FullDecrement16),
5229            "full_decrement_32" => Ok(Bitcoin::FullDecrement32),
5230            "full_decrement_64" => Ok(Bitcoin::FullDecrement64),
5231            "full_decrement_8" => Ok(Bitcoin::FullDecrement8),
5232            "full_increment_16" => Ok(Bitcoin::FullIncrement16),
5233            "full_increment_32" => Ok(Bitcoin::FullIncrement32),
5234            "full_increment_64" => Ok(Bitcoin::FullIncrement64),
5235            "full_increment_8" => Ok(Bitcoin::FullIncrement8),
5236            "full_left_shift_16_1" => Ok(Bitcoin::FullLeftShift16_1),
5237            "full_left_shift_16_2" => Ok(Bitcoin::FullLeftShift16_2),
5238            "full_left_shift_16_4" => Ok(Bitcoin::FullLeftShift16_4),
5239            "full_left_shift_16_8" => Ok(Bitcoin::FullLeftShift16_8),
5240            "full_left_shift_32_1" => Ok(Bitcoin::FullLeftShift32_1),
5241            "full_left_shift_32_16" => Ok(Bitcoin::FullLeftShift32_16),
5242            "full_left_shift_32_2" => Ok(Bitcoin::FullLeftShift32_2),
5243            "full_left_shift_32_4" => Ok(Bitcoin::FullLeftShift32_4),
5244            "full_left_shift_32_8" => Ok(Bitcoin::FullLeftShift32_8),
5245            "full_left_shift_64_1" => Ok(Bitcoin::FullLeftShift64_1),
5246            "full_left_shift_64_16" => Ok(Bitcoin::FullLeftShift64_16),
5247            "full_left_shift_64_2" => Ok(Bitcoin::FullLeftShift64_2),
5248            "full_left_shift_64_32" => Ok(Bitcoin::FullLeftShift64_32),
5249            "full_left_shift_64_4" => Ok(Bitcoin::FullLeftShift64_4),
5250            "full_left_shift_64_8" => Ok(Bitcoin::FullLeftShift64_8),
5251            "full_left_shift_8_1" => Ok(Bitcoin::FullLeftShift8_1),
5252            "full_left_shift_8_2" => Ok(Bitcoin::FullLeftShift8_2),
5253            "full_left_shift_8_4" => Ok(Bitcoin::FullLeftShift8_4),
5254            "full_multiply_16" => Ok(Bitcoin::FullMultiply16),
5255            "full_multiply_32" => Ok(Bitcoin::FullMultiply32),
5256            "full_multiply_64" => Ok(Bitcoin::FullMultiply64),
5257            "full_multiply_8" => Ok(Bitcoin::FullMultiply8),
5258            "full_right_shift_16_1" => Ok(Bitcoin::FullRightShift16_1),
5259            "full_right_shift_16_2" => Ok(Bitcoin::FullRightShift16_2),
5260            "full_right_shift_16_4" => Ok(Bitcoin::FullRightShift16_4),
5261            "full_right_shift_16_8" => Ok(Bitcoin::FullRightShift16_8),
5262            "full_right_shift_32_1" => Ok(Bitcoin::FullRightShift32_1),
5263            "full_right_shift_32_16" => Ok(Bitcoin::FullRightShift32_16),
5264            "full_right_shift_32_2" => Ok(Bitcoin::FullRightShift32_2),
5265            "full_right_shift_32_4" => Ok(Bitcoin::FullRightShift32_4),
5266            "full_right_shift_32_8" => Ok(Bitcoin::FullRightShift32_8),
5267            "full_right_shift_64_1" => Ok(Bitcoin::FullRightShift64_1),
5268            "full_right_shift_64_16" => Ok(Bitcoin::FullRightShift64_16),
5269            "full_right_shift_64_2" => Ok(Bitcoin::FullRightShift64_2),
5270            "full_right_shift_64_32" => Ok(Bitcoin::FullRightShift64_32),
5271            "full_right_shift_64_4" => Ok(Bitcoin::FullRightShift64_4),
5272            "full_right_shift_64_8" => Ok(Bitcoin::FullRightShift64_8),
5273            "full_right_shift_8_1" => Ok(Bitcoin::FullRightShift8_1),
5274            "full_right_shift_8_2" => Ok(Bitcoin::FullRightShift8_2),
5275            "full_right_shift_8_4" => Ok(Bitcoin::FullRightShift8_4),
5276            "full_subtract_16" => Ok(Bitcoin::FullSubtract16),
5277            "full_subtract_32" => Ok(Bitcoin::FullSubtract32),
5278            "full_subtract_64" => Ok(Bitcoin::FullSubtract64),
5279            "full_subtract_8" => Ok(Bitcoin::FullSubtract8),
5280            "ge_is_on_curve" => Ok(Bitcoin::GeIsOnCurve),
5281            "ge_negate" => Ok(Bitcoin::GeNegate),
5282            "gej_add" => Ok(Bitcoin::GejAdd),
5283            "gej_double" => Ok(Bitcoin::GejDouble),
5284            "gej_equiv" => Ok(Bitcoin::GejEquiv),
5285            "gej_ge_add" => Ok(Bitcoin::GejGeAdd),
5286            "gej_ge_add_ex" => Ok(Bitcoin::GejGeAddEx),
5287            "gej_ge_equiv" => Ok(Bitcoin::GejGeEquiv),
5288            "gej_infinity" => Ok(Bitcoin::GejInfinity),
5289            "gej_is_infinity" => Ok(Bitcoin::GejIsInfinity),
5290            "gej_is_on_curve" => Ok(Bitcoin::GejIsOnCurve),
5291            "gej_negate" => Ok(Bitcoin::GejNegate),
5292            "gej_normalize" => Ok(Bitcoin::GejNormalize),
5293            "gej_rescale" => Ok(Bitcoin::GejRescale),
5294            "gej_x_equiv" => Ok(Bitcoin::GejXEquiv),
5295            "gej_y_is_odd" => Ok(Bitcoin::GejYIsOdd),
5296            "generate" => Ok(Bitcoin::Generate),
5297            "hash_to_curve" => Ok(Bitcoin::HashToCurve),
5298            "high_1" => Ok(Bitcoin::High1),
5299            "high_16" => Ok(Bitcoin::High16),
5300            "high_32" => Ok(Bitcoin::High32),
5301            "high_64" => Ok(Bitcoin::High64),
5302            "high_8" => Ok(Bitcoin::High8),
5303            "increment_16" => Ok(Bitcoin::Increment16),
5304            "increment_32" => Ok(Bitcoin::Increment32),
5305            "increment_64" => Ok(Bitcoin::Increment64),
5306            "increment_8" => Ok(Bitcoin::Increment8),
5307            "input_annex_hash" => Ok(Bitcoin::InputAnnexHash),
5308            "input_annexes_hash" => Ok(Bitcoin::InputAnnexesHash),
5309            "input_hash" => Ok(Bitcoin::InputHash),
5310            "input_outpoints_hash" => Ok(Bitcoin::InputOutpointsHash),
5311            "input_prev_outpoint" => Ok(Bitcoin::InputPrevOutpoint),
5312            "input_script_hash" => Ok(Bitcoin::InputScriptHash),
5313            "input_script_sig_hash" => Ok(Bitcoin::InputScriptSigHash),
5314            "input_script_sigs_hash" => Ok(Bitcoin::InputScriptSigsHash),
5315            "input_scripts_hash" => Ok(Bitcoin::InputScriptsHash),
5316            "input_sequence" => Ok(Bitcoin::InputSequence),
5317            "input_sequences_hash" => Ok(Bitcoin::InputSequencesHash),
5318            "input_utxo_hash" => Ok(Bitcoin::InputUtxoHash),
5319            "input_utxos_hash" => Ok(Bitcoin::InputUtxosHash),
5320            "input_value" => Ok(Bitcoin::InputValue),
5321            "input_values_hash" => Ok(Bitcoin::InputValuesHash),
5322            "inputs_hash" => Ok(Bitcoin::InputsHash),
5323            "internal_key" => Ok(Bitcoin::InternalKey),
5324            "is_one_16" => Ok(Bitcoin::IsOne16),
5325            "is_one_32" => Ok(Bitcoin::IsOne32),
5326            "is_one_64" => Ok(Bitcoin::IsOne64),
5327            "is_one_8" => Ok(Bitcoin::IsOne8),
5328            "is_zero_16" => Ok(Bitcoin::IsZero16),
5329            "is_zero_32" => Ok(Bitcoin::IsZero32),
5330            "is_zero_64" => Ok(Bitcoin::IsZero64),
5331            "is_zero_8" => Ok(Bitcoin::IsZero8),
5332            "le_16" => Ok(Bitcoin::Le16),
5333            "le_32" => Ok(Bitcoin::Le32),
5334            "le_64" => Ok(Bitcoin::Le64),
5335            "le_8" => Ok(Bitcoin::Le8),
5336            "left_extend_16_32" => Ok(Bitcoin::LeftExtend16_32),
5337            "left_extend_16_64" => Ok(Bitcoin::LeftExtend16_64),
5338            "left_extend_1_16" => Ok(Bitcoin::LeftExtend1_16),
5339            "left_extend_1_32" => Ok(Bitcoin::LeftExtend1_32),
5340            "left_extend_1_64" => Ok(Bitcoin::LeftExtend1_64),
5341            "left_extend_1_8" => Ok(Bitcoin::LeftExtend1_8),
5342            "left_extend_32_64" => Ok(Bitcoin::LeftExtend32_64),
5343            "left_extend_8_16" => Ok(Bitcoin::LeftExtend8_16),
5344            "left_extend_8_32" => Ok(Bitcoin::LeftExtend8_32),
5345            "left_extend_8_64" => Ok(Bitcoin::LeftExtend8_64),
5346            "left_pad_high_16_32" => Ok(Bitcoin::LeftPadHigh16_32),
5347            "left_pad_high_16_64" => Ok(Bitcoin::LeftPadHigh16_64),
5348            "left_pad_high_1_16" => Ok(Bitcoin::LeftPadHigh1_16),
5349            "left_pad_high_1_32" => Ok(Bitcoin::LeftPadHigh1_32),
5350            "left_pad_high_1_64" => Ok(Bitcoin::LeftPadHigh1_64),
5351            "left_pad_high_1_8" => Ok(Bitcoin::LeftPadHigh1_8),
5352            "left_pad_high_32_64" => Ok(Bitcoin::LeftPadHigh32_64),
5353            "left_pad_high_8_16" => Ok(Bitcoin::LeftPadHigh8_16),
5354            "left_pad_high_8_32" => Ok(Bitcoin::LeftPadHigh8_32),
5355            "left_pad_high_8_64" => Ok(Bitcoin::LeftPadHigh8_64),
5356            "left_pad_low_16_32" => Ok(Bitcoin::LeftPadLow16_32),
5357            "left_pad_low_16_64" => Ok(Bitcoin::LeftPadLow16_64),
5358            "left_pad_low_1_16" => Ok(Bitcoin::LeftPadLow1_16),
5359            "left_pad_low_1_32" => Ok(Bitcoin::LeftPadLow1_32),
5360            "left_pad_low_1_64" => Ok(Bitcoin::LeftPadLow1_64),
5361            "left_pad_low_1_8" => Ok(Bitcoin::LeftPadLow1_8),
5362            "left_pad_low_32_64" => Ok(Bitcoin::LeftPadLow32_64),
5363            "left_pad_low_8_16" => Ok(Bitcoin::LeftPadLow8_16),
5364            "left_pad_low_8_32" => Ok(Bitcoin::LeftPadLow8_32),
5365            "left_pad_low_8_64" => Ok(Bitcoin::LeftPadLow8_64),
5366            "left_rotate_16" => Ok(Bitcoin::LeftRotate16),
5367            "left_rotate_32" => Ok(Bitcoin::LeftRotate32),
5368            "left_rotate_64" => Ok(Bitcoin::LeftRotate64),
5369            "left_rotate_8" => Ok(Bitcoin::LeftRotate8),
5370            "left_shift_16" => Ok(Bitcoin::LeftShift16),
5371            "left_shift_32" => Ok(Bitcoin::LeftShift32),
5372            "left_shift_64" => Ok(Bitcoin::LeftShift64),
5373            "left_shift_8" => Ok(Bitcoin::LeftShift8),
5374            "left_shift_with_16" => Ok(Bitcoin::LeftShiftWith16),
5375            "left_shift_with_32" => Ok(Bitcoin::LeftShiftWith32),
5376            "left_shift_with_64" => Ok(Bitcoin::LeftShiftWith64),
5377            "left_shift_with_8" => Ok(Bitcoin::LeftShiftWith8),
5378            "leftmost_16_1" => Ok(Bitcoin::Leftmost16_1),
5379            "leftmost_16_2" => Ok(Bitcoin::Leftmost16_2),
5380            "leftmost_16_4" => Ok(Bitcoin::Leftmost16_4),
5381            "leftmost_16_8" => Ok(Bitcoin::Leftmost16_8),
5382            "leftmost_32_1" => Ok(Bitcoin::Leftmost32_1),
5383            "leftmost_32_16" => Ok(Bitcoin::Leftmost32_16),
5384            "leftmost_32_2" => Ok(Bitcoin::Leftmost32_2),
5385            "leftmost_32_4" => Ok(Bitcoin::Leftmost32_4),
5386            "leftmost_32_8" => Ok(Bitcoin::Leftmost32_8),
5387            "leftmost_64_1" => Ok(Bitcoin::Leftmost64_1),
5388            "leftmost_64_16" => Ok(Bitcoin::Leftmost64_16),
5389            "leftmost_64_2" => Ok(Bitcoin::Leftmost64_2),
5390            "leftmost_64_32" => Ok(Bitcoin::Leftmost64_32),
5391            "leftmost_64_4" => Ok(Bitcoin::Leftmost64_4),
5392            "leftmost_64_8" => Ok(Bitcoin::Leftmost64_8),
5393            "leftmost_8_1" => Ok(Bitcoin::Leftmost8_1),
5394            "leftmost_8_2" => Ok(Bitcoin::Leftmost8_2),
5395            "leftmost_8_4" => Ok(Bitcoin::Leftmost8_4),
5396            "linear_combination_1" => Ok(Bitcoin::LinearCombination1),
5397            "linear_verify_1" => Ok(Bitcoin::LinearVerify1),
5398            "lock_time" => Ok(Bitcoin::LockTime),
5399            "low_1" => Ok(Bitcoin::Low1),
5400            "low_16" => Ok(Bitcoin::Low16),
5401            "low_32" => Ok(Bitcoin::Low32),
5402            "low_64" => Ok(Bitcoin::Low64),
5403            "low_8" => Ok(Bitcoin::Low8),
5404            "lt_16" => Ok(Bitcoin::Lt16),
5405            "lt_32" => Ok(Bitcoin::Lt32),
5406            "lt_64" => Ok(Bitcoin::Lt64),
5407            "lt_8" => Ok(Bitcoin::Lt8),
5408            "maj_1" => Ok(Bitcoin::Maj1),
5409            "maj_16" => Ok(Bitcoin::Maj16),
5410            "maj_32" => Ok(Bitcoin::Maj32),
5411            "maj_64" => Ok(Bitcoin::Maj64),
5412            "maj_8" => Ok(Bitcoin::Maj8),
5413            "max_16" => Ok(Bitcoin::Max16),
5414            "max_32" => Ok(Bitcoin::Max32),
5415            "max_64" => Ok(Bitcoin::Max64),
5416            "max_8" => Ok(Bitcoin::Max8),
5417            "median_16" => Ok(Bitcoin::Median16),
5418            "median_32" => Ok(Bitcoin::Median32),
5419            "median_64" => Ok(Bitcoin::Median64),
5420            "median_8" => Ok(Bitcoin::Median8),
5421            "min_16" => Ok(Bitcoin::Min16),
5422            "min_32" => Ok(Bitcoin::Min32),
5423            "min_64" => Ok(Bitcoin::Min64),
5424            "min_8" => Ok(Bitcoin::Min8),
5425            "modulo_16" => Ok(Bitcoin::Modulo16),
5426            "modulo_32" => Ok(Bitcoin::Modulo32),
5427            "modulo_64" => Ok(Bitcoin::Modulo64),
5428            "modulo_8" => Ok(Bitcoin::Modulo8),
5429            "multiply_16" => Ok(Bitcoin::Multiply16),
5430            "multiply_32" => Ok(Bitcoin::Multiply32),
5431            "multiply_64" => Ok(Bitcoin::Multiply64),
5432            "multiply_8" => Ok(Bitcoin::Multiply8),
5433            "negate_16" => Ok(Bitcoin::Negate16),
5434            "negate_32" => Ok(Bitcoin::Negate32),
5435            "negate_64" => Ok(Bitcoin::Negate64),
5436            "negate_8" => Ok(Bitcoin::Negate8),
5437            "num_inputs" => Ok(Bitcoin::NumInputs),
5438            "num_outputs" => Ok(Bitcoin::NumOutputs),
5439            "one_16" => Ok(Bitcoin::One16),
5440            "one_32" => Ok(Bitcoin::One32),
5441            "one_64" => Ok(Bitcoin::One64),
5442            "one_8" => Ok(Bitcoin::One8),
5443            "or_1" => Ok(Bitcoin::Or1),
5444            "or_16" => Ok(Bitcoin::Or16),
5445            "or_32" => Ok(Bitcoin::Or32),
5446            "or_64" => Ok(Bitcoin::Or64),
5447            "or_8" => Ok(Bitcoin::Or8),
5448            "outpoint_hash" => Ok(Bitcoin::OutpointHash),
5449            "output_hash" => Ok(Bitcoin::OutputHash),
5450            "output_script_hash" => Ok(Bitcoin::OutputScriptHash),
5451            "output_scripts_hash" => Ok(Bitcoin::OutputScriptsHash),
5452            "output_value" => Ok(Bitcoin::OutputValue),
5453            "output_values_hash" => Ok(Bitcoin::OutputValuesHash),
5454            "outputs_hash" => Ok(Bitcoin::OutputsHash),
5455            "parse_lock" => Ok(Bitcoin::ParseLock),
5456            "parse_sequence" => Ok(Bitcoin::ParseSequence),
5457            "point_verify_1" => Ok(Bitcoin::PointVerify1),
5458            "right_extend_16_32" => Ok(Bitcoin::RightExtend16_32),
5459            "right_extend_16_64" => Ok(Bitcoin::RightExtend16_64),
5460            "right_extend_32_64" => Ok(Bitcoin::RightExtend32_64),
5461            "right_extend_8_16" => Ok(Bitcoin::RightExtend8_16),
5462            "right_extend_8_32" => Ok(Bitcoin::RightExtend8_32),
5463            "right_extend_8_64" => Ok(Bitcoin::RightExtend8_64),
5464            "right_pad_high_16_32" => Ok(Bitcoin::RightPadHigh16_32),
5465            "right_pad_high_16_64" => Ok(Bitcoin::RightPadHigh16_64),
5466            "right_pad_high_1_16" => Ok(Bitcoin::RightPadHigh1_16),
5467            "right_pad_high_1_32" => Ok(Bitcoin::RightPadHigh1_32),
5468            "right_pad_high_1_64" => Ok(Bitcoin::RightPadHigh1_64),
5469            "right_pad_high_1_8" => Ok(Bitcoin::RightPadHigh1_8),
5470            "right_pad_high_32_64" => Ok(Bitcoin::RightPadHigh32_64),
5471            "right_pad_high_8_16" => Ok(Bitcoin::RightPadHigh8_16),
5472            "right_pad_high_8_32" => Ok(Bitcoin::RightPadHigh8_32),
5473            "right_pad_high_8_64" => Ok(Bitcoin::RightPadHigh8_64),
5474            "right_pad_low_16_32" => Ok(Bitcoin::RightPadLow16_32),
5475            "right_pad_low_16_64" => Ok(Bitcoin::RightPadLow16_64),
5476            "right_pad_low_1_16" => Ok(Bitcoin::RightPadLow1_16),
5477            "right_pad_low_1_32" => Ok(Bitcoin::RightPadLow1_32),
5478            "right_pad_low_1_64" => Ok(Bitcoin::RightPadLow1_64),
5479            "right_pad_low_1_8" => Ok(Bitcoin::RightPadLow1_8),
5480            "right_pad_low_32_64" => Ok(Bitcoin::RightPadLow32_64),
5481            "right_pad_low_8_16" => Ok(Bitcoin::RightPadLow8_16),
5482            "right_pad_low_8_32" => Ok(Bitcoin::RightPadLow8_32),
5483            "right_pad_low_8_64" => Ok(Bitcoin::RightPadLow8_64),
5484            "right_rotate_16" => Ok(Bitcoin::RightRotate16),
5485            "right_rotate_32" => Ok(Bitcoin::RightRotate32),
5486            "right_rotate_64" => Ok(Bitcoin::RightRotate64),
5487            "right_rotate_8" => Ok(Bitcoin::RightRotate8),
5488            "right_shift_16" => Ok(Bitcoin::RightShift16),
5489            "right_shift_32" => Ok(Bitcoin::RightShift32),
5490            "right_shift_64" => Ok(Bitcoin::RightShift64),
5491            "right_shift_8" => Ok(Bitcoin::RightShift8),
5492            "right_shift_with_16" => Ok(Bitcoin::RightShiftWith16),
5493            "right_shift_with_32" => Ok(Bitcoin::RightShiftWith32),
5494            "right_shift_with_64" => Ok(Bitcoin::RightShiftWith64),
5495            "right_shift_with_8" => Ok(Bitcoin::RightShiftWith8),
5496            "rightmost_16_1" => Ok(Bitcoin::Rightmost16_1),
5497            "rightmost_16_2" => Ok(Bitcoin::Rightmost16_2),
5498            "rightmost_16_4" => Ok(Bitcoin::Rightmost16_4),
5499            "rightmost_16_8" => Ok(Bitcoin::Rightmost16_8),
5500            "rightmost_32_1" => Ok(Bitcoin::Rightmost32_1),
5501            "rightmost_32_16" => Ok(Bitcoin::Rightmost32_16),
5502            "rightmost_32_2" => Ok(Bitcoin::Rightmost32_2),
5503            "rightmost_32_4" => Ok(Bitcoin::Rightmost32_4),
5504            "rightmost_32_8" => Ok(Bitcoin::Rightmost32_8),
5505            "rightmost_64_1" => Ok(Bitcoin::Rightmost64_1),
5506            "rightmost_64_16" => Ok(Bitcoin::Rightmost64_16),
5507            "rightmost_64_2" => Ok(Bitcoin::Rightmost64_2),
5508            "rightmost_64_32" => Ok(Bitcoin::Rightmost64_32),
5509            "rightmost_64_4" => Ok(Bitcoin::Rightmost64_4),
5510            "rightmost_64_8" => Ok(Bitcoin::Rightmost64_8),
5511            "rightmost_8_1" => Ok(Bitcoin::Rightmost8_1),
5512            "rightmost_8_2" => Ok(Bitcoin::Rightmost8_2),
5513            "rightmost_8_4" => Ok(Bitcoin::Rightmost8_4),
5514            "scalar_add" => Ok(Bitcoin::ScalarAdd),
5515            "scalar_invert" => Ok(Bitcoin::ScalarInvert),
5516            "scalar_is_zero" => Ok(Bitcoin::ScalarIsZero),
5517            "scalar_multiply" => Ok(Bitcoin::ScalarMultiply),
5518            "scalar_multiply_lambda" => Ok(Bitcoin::ScalarMultiplyLambda),
5519            "scalar_negate" => Ok(Bitcoin::ScalarNegate),
5520            "scalar_normalize" => Ok(Bitcoin::ScalarNormalize),
5521            "scalar_square" => Ok(Bitcoin::ScalarSquare),
5522            "scale" => Ok(Bitcoin::Scale),
5523            "script_cmr" => Ok(Bitcoin::ScriptCMR),
5524            "sha_256_block" => Ok(Bitcoin::Sha256Block),
5525            "sha_256_ctx_8_add_1" => Ok(Bitcoin::Sha256Ctx8Add1),
5526            "sha_256_ctx_8_add_128" => Ok(Bitcoin::Sha256Ctx8Add128),
5527            "sha_256_ctx_8_add_16" => Ok(Bitcoin::Sha256Ctx8Add16),
5528            "sha_256_ctx_8_add_2" => Ok(Bitcoin::Sha256Ctx8Add2),
5529            "sha_256_ctx_8_add_256" => Ok(Bitcoin::Sha256Ctx8Add256),
5530            "sha_256_ctx_8_add_32" => Ok(Bitcoin::Sha256Ctx8Add32),
5531            "sha_256_ctx_8_add_4" => Ok(Bitcoin::Sha256Ctx8Add4),
5532            "sha_256_ctx_8_add_512" => Ok(Bitcoin::Sha256Ctx8Add512),
5533            "sha_256_ctx_8_add_64" => Ok(Bitcoin::Sha256Ctx8Add64),
5534            "sha_256_ctx_8_add_8" => Ok(Bitcoin::Sha256Ctx8Add8),
5535            "sha_256_ctx_8_add_buffer_511" => Ok(Bitcoin::Sha256Ctx8AddBuffer511),
5536            "sha_256_ctx_8_finalize" => Ok(Bitcoin::Sha256Ctx8Finalize),
5537            "sha_256_ctx_8_init" => Ok(Bitcoin::Sha256Ctx8Init),
5538            "sha_256_iv" => Ok(Bitcoin::Sha256Iv),
5539            "sig_all_hash" => Ok(Bitcoin::SigAllHash),
5540            "some_1" => Ok(Bitcoin::Some1),
5541            "some_16" => Ok(Bitcoin::Some16),
5542            "some_32" => Ok(Bitcoin::Some32),
5543            "some_64" => Ok(Bitcoin::Some64),
5544            "some_8" => Ok(Bitcoin::Some8),
5545            "subtract_16" => Ok(Bitcoin::Subtract16),
5546            "subtract_32" => Ok(Bitcoin::Subtract32),
5547            "subtract_64" => Ok(Bitcoin::Subtract64),
5548            "subtract_8" => Ok(Bitcoin::Subtract8),
5549            "swu" => Ok(Bitcoin::Swu),
5550            "tap_env_hash" => Ok(Bitcoin::TapEnvHash),
5551            "tapdata_init" => Ok(Bitcoin::TapdataInit),
5552            "tapleaf_hash" => Ok(Bitcoin::TapleafHash),
5553            "tapleaf_version" => Ok(Bitcoin::TapleafVersion),
5554            "tappath" => Ok(Bitcoin::Tappath),
5555            "tappath_hash" => Ok(Bitcoin::TappathHash),
5556            "total_input_value" => Ok(Bitcoin::TotalInputValue),
5557            "total_output_value" => Ok(Bitcoin::TotalOutputValue),
5558            "transaction_id" => Ok(Bitcoin::TransactionId),
5559            "tx_hash" => Ok(Bitcoin::TxHash),
5560            "tx_is_final" => Ok(Bitcoin::TxIsFinal),
5561            "tx_lock_distance" => Ok(Bitcoin::TxLockDistance),
5562            "tx_lock_duration" => Ok(Bitcoin::TxLockDuration),
5563            "tx_lock_height" => Ok(Bitcoin::TxLockHeight),
5564            "tx_lock_time" => Ok(Bitcoin::TxLockTime),
5565            "verify" => Ok(Bitcoin::Verify),
5566            "version" => Ok(Bitcoin::Version),
5567            "xor_1" => Ok(Bitcoin::Xor1),
5568            "xor_16" => Ok(Bitcoin::Xor16),
5569            "xor_32" => Ok(Bitcoin::Xor32),
5570            "xor_64" => Ok(Bitcoin::Xor64),
5571            "xor_8" => Ok(Bitcoin::Xor8),
5572            "xor_xor_1" => Ok(Bitcoin::XorXor1),
5573            "xor_xor_16" => Ok(Bitcoin::XorXor16),
5574            "xor_xor_32" => Ok(Bitcoin::XorXor32),
5575            "xor_xor_64" => Ok(Bitcoin::XorXor64),
5576            "xor_xor_8" => Ok(Bitcoin::XorXor8),
5577            x => Err(crate::Error::InvalidJetName(x.to_owned())),
5578        }
5579    }
5580}
5581
5582pub(crate) fn c_jet_ptr(jet: &Bitcoin) -> fn(&mut CFrameItem, CFrameItem, &()) -> bool {
5583        unimplemented!("Bitcoin jets have not yet been implemented.")
5584}