BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • TezDozen β Crowdsale
operations (1.21K)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
934
1491
 
1
parameter (or
2
            (or
3
              (or (unit %default)
4
                  (or (nat %mint) (pair %oracle_callback string (pair timestamp nat))))
5
              (or (timestamp %ready_sale)
6
                  (or (unit %register_fomo)
7
                      (list %reveal_token_metadata (pair (nat %token_id)
8
                                                        (map %token_info string bytes))))))
9
            (or
10
              (or
11
                (pair %set_fomo_register_time (int %fomo_register_duration_minutes)
12
                                              (timestamp %fomo_register_start_time))
13
                (or (address %update_admin)
14
                    (list %update_blacklist (or (address %add_address)
15
                                               (address %remove_address)))))
16
              (or
17
                (or (pair %update_metadata (string %k) (bytes %v))
18
                    (list %upgrade_token_metadata (pair (nat %token_id)
19
                                                       (map %token_info string bytes))))
20
                (or (list %voucher_early_deployer address)
21
                    (list %voucher_fa2_callback (pair
22
                                                 (pair %request (address %owner)
23
                                                                (nat %token_id))
24
                                                 (nat %balance)))))));
25
storage (pair
26
          (pair
27
            (pair
28
              (pair (address %admin)
29
                    (pair (nat %base_index) (big_map %blacklist address unit)))
30
              (pair (pair (address %collaborator) (address %fa2))
31
                    (pair (mutez %fomo_price) (int %fomo_register_duration_minutes))))
32
            (pair
33
              (pair
34
                (pair (timestamp %fomo_register_start_time)
35
                      (int %fomo_sale_duration_minutes))
36
                (pair (timestamp %fomo_sale_start_time) (nat %fomo_supply)))
37
              (pair (pair (big_map %fomos address unit) (nat %max_mint))
38
                    (pair (nat %max_mint_wallet) (nat %max_supply)))))
39
          (pair
40
            (pair
41
              (pair (pair (big_map %metadata string bytes) (nat %mint_index))
42
                    (pair (big_map %mint_meta address (pair (nat %amount) (nat %level)))
43
                          (nat %n_minted)))
44
              (pair (pair (address %oracle) (bool %oracle_callback_expected))
45
                    (pair (string %placeholder_ipfs_path) (mutez %price))))
46
            (pair
47
              (pair (pair (string %provenance_hash) (int %public_sale_duration_minutes))
48
                    (pair (timestamp %public_sale_end_time)
49
                          (timestamp %public_sale_start_time)))
50
              (pair (pair (address %voucher_fa2) (bool %voucher_fa2_callback_expected))
51
                    (pair (nat %voucher_supply) (nat %voucher_token_id))))));
52
code { UNPAIR ;
53
       IF_LEFT
54
         { IF_LEFT
55
             { IF_LEFT
56
                 { DROP ;
57
                   NIL operation ;
58
                   SENDER ;
59
                   CONTRACT unit ;
60
                   IF_NONE { PUSH int 94 ; FAILWITH } {} ;
61
                   AMOUNT ;
62
                   UNIT ;
63
                   TRANSFER_TOKENS ;
64
                   CONS }
65
                 { IF_LEFT
66
                     { SWAP ;
67
                       DUP ;
68
                       DUG 2 ;
69
                       CAR ;
70
                       GET 3 ;
71
                       GET 3 ;
72
                       NOW ;
73
                       COMPARE ;
74
                       GE ;
75
                       IF
76
                         { SWAP ; DUP ; DUG 2 ; GET 5 ; GET 3 ; NOW ; COMPARE ; LE }
77
                         { PUSH bool False } ;
78
                       IF {} { PUSH string "NOT_ON_SALE" ; FAILWITH } ;
79
                       SWAP ;
80
                       DUP ;
81
                       DUG 2 ;
82
                       GET 5 ;
83
                       GET 4 ;
84
                       NOW ;
85
                       COMPARE ;
86
                       LT ;
87
                       IF
88
                         { DUP ;
89
                           PUSH nat 1 ;
90
                           COMPARE ;
91
                           EQ ;
92
                           IF {} { PUSH string "FOMO_CAN_ONLY_MINT_ONE" ; FAILWITH } ;
93
                           SWAP ;
94
                           DUP ;
95
                           DUG 2 ;
96
                           CAR ;
97
                           CAR ;
98
                           GET 5 ;
99
                           AMOUNT ;
100
                           COMPARE ;
101
                           EQ ;
102
                           IF {} { PUSH string "WRONG_PRICE" ; FAILWITH } ;
103
                           SWAP ;
104
                           DUP ;
105
                           DUG 2 ;
106
                           CAR ;
107
                           GET 5 ;
108
                           CAR ;
109
                           SENDER ;
110
                           MEM ;
111
                           IF {} { PUSH string "NOT_REGISTERED_ADDRESS" ; FAILWITH } ;
112
                           SWAP ;
113
                           DUP ;
114
                           GET 9 ;
115
                           SWAP ;
116
                           DUP ;
117
                           DUG 3 ;
118
                           CAR ;
119
                           GET 3 ;
120
                           GET 4 ;
121
                           ADD ;
122
                           PUSH nat 1 ;
123
                           DUP 4 ;
124
                           GET 3 ;
125
                           CAR ;
126
                           GET 4 ;
127
                           ADD ;
128
                           COMPARE ;
129
                           LE ;
130
                           IF {} { PUSH string "OVER_FOMO_SUPPLY" ; FAILWITH } ;
131
                           SWAP ;
132
                           UNPAIR ;
133
                           UNPAIR ;
134
                           SWAP ;
135
                           UNPAIR ;
136
                           SWAP ;
137
                           UNPAIR ;
138
                           UNPAIR ;
139
                           NONE unit ;
140
                           SENDER ;
141
                           UPDATE ;
142
                           PAIR ;
143
                           PAIR ;
144
                           SWAP ;
145
                           PAIR ;
146
                           SWAP ;
147
                           PAIR ;
148
                           PAIR ;
149
                           SWAP }
150
                         { SWAP ;
151
                           DUP ;
152
                           DUG 2 ;
153
                           CAR ;
154
                           CAR ;
155
                           CAR ;
156
                           GET 4 ;
157
                           SENDER ;
158
                           MEM ;
159
                           IF { PUSH string "IN_BLACKLIST" ; FAILWITH } {} ;
160
                           DUP ;
161
                           PUSH nat 0 ;
162
                           COMPARE ;
163
                           LT ;
164
                           IF
165
                             { SWAP ; DUP ; DUG 2 ; CAR ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; COMPARE ; LE }
166
                             { PUSH bool False } ;
167
                           IF {} { PUSH string "WRONG_MINT_AMOUNT" ; FAILWITH } ;
168
                           SWAP ;
169
                           DUP ;
170
                           DUG 2 ;
171
                           CAR ;
172
                           GET 8 ;
173
                           SWAP ;
174
                           DUP ;
175
                           DUG 2 ;
176
                           DUP 4 ;
177
                           GET 3 ;
178
                           CAR ;
179
                           GET 4 ;
180
                           ADD ;
181
                           COMPARE ;
182
                           LE ;
183
                           IF {} { PUSH string "OVER_MAX_SUPPLY" ; FAILWITH } ;
184
                           SWAP ;
185
                           DUP ;
186
                           DUG 2 ;
187
                           GET 3 ;
188
                           GET 6 ;
189
                           AMOUNT ;
190
                           EDIV ;
191
                           IF_NONE { PUSH int 200 ; FAILWITH } {} ;
192
                           CAR ;
193
                           SWAP ;
194
                           DUP ;
195
                           DUG 2 ;
196
                           COMPARE ;
197
                           EQ ;
198
                           IF
199
                             { PUSH mutez 1 ;
200
                               DUP ;
201
                               DUP 4 ;
202
                               GET 3 ;
203
                               GET 6 ;
204
                               EDIV ;
205
                               IF_NONE { PUSH int 201 ; FAILWITH } {} ;
206
                               CAR ;
207
                               DUP 4 ;
208
                               GET 3 ;
209
                               GET 6 ;
210
                               AMOUNT ;
211
                               EDIV ;
212
                               IF_NONE { PUSH int 200 ; FAILWITH } {} ;
213
                               CAR ;
214
                               MUL ;
215
                               MUL ;
216
                               AMOUNT ;
217
                               COMPARE ;
218
                               EQ }
219
                             { PUSH bool False } ;
220
                           IF {} { PUSH string "WRONG_PRICE" ; FAILWITH } ;
221
                           SWAP ;
222
                           DUP ;
223
                           DUG 2 ;
224
                           GET 3 ;
225
                           CAR ;
226
                           GET 3 ;
227
                           SENDER ;
228
                           MEM ;
229
                           IF
230
                             { SWAP ;
231
                               DUP ;
232
                               DUG 2 ;
233
                               GET 3 ;
234
                               CAR ;
235
                               GET 3 ;
236
                               SENDER ;
237
                               GET ;
238
                               IF_NONE { PUSH int 206 ; FAILWITH } {} ;
239
                               CDR ;
240
                               LEVEL ;
241
                               COMPARE ;
242
                               GT ;
243
                               IF {} { PUSH string "CANNOT_BATCH_MINT" ; FAILWITH } ;
244
                               SWAP ;
245
                               DUP ;
246
                               DUG 2 ;
247
                               CAR ;
248
                               GET 7 ;
249
                               SWAP ;
250
                               DUP ;
251
                               DUG 2 ;
252
                               DUP 4 ;
253
                               GET 3 ;
254
                               CAR ;
255
                               GET 3 ;
256
                               SENDER ;
257
                               GET ;
258
                               IF_NONE { PUSH int 208 ; FAILWITH } {} ;
259
                               CAR ;
260
                               ADD ;
261
                               COMPARE ;
262
                               LE ;
263
                               IF {} { PUSH string "OVER_MAX_MINT_WALLET" ; FAILWITH } ;
264
                               SWAP ;
265
                               UNPAIR ;
266
                               SWAP ;
267
                               UNPAIR ;
268
                               UNPAIR ;
269
                               UNPAIR ;
270
                               SWAP ;
271
                               UNPAIR ;
272
                               DUP ;
273
                               SENDER ;
274
                               DUP ;
275
                               DUG 2 ;
276
                               GET ;
277
                               IF_NONE { PUSH int 209 ; FAILWITH } {} ;
278
                               DUP ;
279
                               CAR ;
280
                               DUP 10 ;
281
                               ADD ;
282
                               UPDATE 1 ;
283
                               SOME ;
284
                               SWAP ;
285
                               UPDATE ;
286
                               DUP ;
287
                               SENDER ;
288
                               DUP ;
289
                               DUG 2 ;
290
                               GET ;
291
                               IF_NONE { PUSH int 210 ; FAILWITH } {} ;
292
                               LEVEL ;
293
                               UPDATE 2 ;
294
                               SOME ;
295
                               SWAP ;
296
                               UPDATE ;
297
                               PAIR ;
298
                               SWAP ;
299
                               PAIR ;
300
                               PAIR ;
301
                               PAIR ;
302
                               SWAP ;
303
                               PAIR ;
304
                               SWAP }
305
                             { SWAP ;
306
                               UNPAIR ;
307
                               SWAP ;
308
                               UNPAIR ;
309
                               UNPAIR ;
310
                               UNPAIR ;
311
                               SWAP ;
312
                               UNPAIR ;
313
                               LEVEL ;
314
                               DUP 8 ;
315
                               PAIR ;
316
                               SOME ;
317
                               SENDER ;
318
                               UPDATE ;
319
                               PAIR ;
320
                               SWAP ;
321
                               PAIR ;
322
                               PAIR ;
323
                               PAIR ;
324
                               SWAP ;
325
                               PAIR ;
326
                               SWAP } } ;
327
                       NIL operation ;
328
                       DUP 3 ;
329
                       CAR ;
330
                       CAR ;
331
                       GET 3 ;
332
                       CAR ;
333
                       CONTRACT unit ;
334
                       IF_NONE { PUSH int 215 ; FAILWITH } {} ;
335
                       PUSH mutez 1 ;
336
                       PUSH nat 4 ;
337
                       PUSH mutez 1 ;
338
                       AMOUNT ;
339
                       EDIV ;
340
                       IF_NONE { PUSH int 214 ; FAILWITH } {} ;
341
                       CAR ;
342
                       EDIV ;
343
                       IF_NONE { PUSH int 214 ; FAILWITH } { CAR } ;
344
                       MUL ;
345
                       UNIT ;
346
                       TRANSFER_TOKENS ;
347
                       CONS ;
348
                       DUP 3 ;
349
                       CAR ;
350
                       CAR ;
351
                       CAR ;
352
                       CAR ;
353
                       CONTRACT unit ;
354
                       IF_NONE { PUSH int 216 ; FAILWITH } {} ;
355
                       PUSH mutez 1 ;
356
                       PUSH nat 4 ;
357
                       PUSH mutez 1 ;
358
                       AMOUNT ;
359
                       EDIV ;
360
                       IF_NONE { PUSH int 214 ; FAILWITH } {} ;
361
                       CAR ;
362
                       EDIV ;
363
                       IF_NONE { PUSH int 214 ; FAILWITH } { CAR } ;
364
                       MUL ;
365
                       AMOUNT ;
366
                       SUB ;
367
                       UNIT ;
368
                       TRANSFER_TOKENS ;
369
                       CONS ;
370
                       SWAP ;
371
                       DUP ;
372
                       DUG 2 ;
373
                       PUSH nat 0 ;
374
                       DUP ;
375
                       DUP 3 ;
376
                       COMPARE ;
377
                       GT ;
378
                       LOOP { DUP 5 ;
379
                              GET 3 ;
380
                              CAR ;
381
                              CAR ;
382
                              CDR ;
383
                              NIL string ;
384
                              PUSH nat 0 ;
385
                              DUP 3 ;
386
                              COMPARE ;
387
                              EQ ;
388
                              IF { PUSH string "0" ; CONS } {} ;
389
                              PUSH nat 0 ;
390
                              DUP 3 ;
391
                              COMPARE ;
392
                              GT ;
393
                              LOOP { PUSH (map nat string) { Elt 0 "0" ;
394
                                             Elt 1 "1" ;
395
                                             Elt 2 "2" ;
396
                                             Elt 3 "3" ;
397
                                             Elt 4 "4" ;
398
                                             Elt 5 "5" ;
399
                                             Elt 6 "6" ;
400
                                             Elt 7 "7" ;
401
                                             Elt 8 "8" ;
402
                                             Elt 9 "9" } ;
403
                                     PUSH nat 10 ;
404
                                     DUP 4 ;
405
                                     EDIV ;
406
                                     IF_NONE { PUSH int 48 ; FAILWITH } { CDR } ;
407
                                     GET ;
408
                                     IF_NONE { PUSH int 48 ; FAILWITH } {} ;
409
                                     CONS ;
410
                                     PUSH nat 10 ;
411
                                     DIG 2 ;
412
                                     EDIV ;
413
                                     IF_NONE { PUSH int 49 ; FAILWITH } { CAR } ;
414
                                     SWAP ;
415
                                     PUSH nat 0 ;
416
                                     DUP 3 ;
417
                                     COMPARE ;
418
                                     GT } ;
419
                              SWAP ;
420
                              DROP ;
421
                              DIG 3 ;
422
                              DUP 6 ;
423
                              CAR ;
424
                              CAR ;
425
                              GET 3 ;
426
                              CDR ;
427
                              CONTRACT %mint (pair (pair address nat)
428
                                                   (pair nat (map string bytes))) ;
429
                              IF_NONE { PUSH int 252 ; FAILWITH } {} ;
430
                              PUSH mutez 0 ;
431
                              EMPTY_MAP string bytes ;
432
                              DIG 4 ;
433
                              CONCAT ;
434
                              DUP 9 ;
435
                              GET 3 ;
436
                              GET 5 ;
437
                              CONCAT ;
438
                              PACK ;
439
                              SOME ;
440
                              PUSH string "" ;
441
                              UPDATE ;
442
                              DIG 7 ;
443
                              DUP ;
444
                              CAR ;
445
                              CAR ;
446
                              CAR ;
447
                              GET 3 ;
448
                              SWAP ;
449
                              DUP ;
450
                              DUG 9 ;
451
                              GET 3 ;
452
                              CAR ;
453
                              CAR ;
454
                              CDR ;
455
                              ADD ;
456
                              PAIR ;
457
                              PUSH nat 1 ;
458
                              SENDER ;
459
                              PAIR ;
460
                              PAIR ;
461
                              TRANSFER_TOKENS ;
462
                              CONS ;
463
                              DUG 2 ;
464
                              DIG 4 ;
465
                              UNPAIR ;
466
                              SWAP ;
467
                              UNPAIR ;
468
                              UNPAIR ;
469
                              UNPAIR ;
470
                              UNPAIR ;
471
                              SWAP ;
472
                              PUSH nat 1 ;
473
                              ADD ;
474
                              SWAP ;
475
                              PAIR ;
476
                              PAIR ;
477
                              PAIR ;
478
                              PAIR ;
479
                              SWAP ;
480
                              PAIR ;
481
                              DUP ;
482
                              CAR ;
483
                              GET 8 ;
484
                              SWAP ;
485
                              DUP ;
486
                              DUG 6 ;
487
                              GET 3 ;
488
                              CAR ;
489
                              CAR ;
490
                              CDR ;
491
                              COMPARE ;
492
                              GT ;
493
                              IF
494
                                { DIG 4 ;
495
                                  UNPAIR ;
496
                                  SWAP ;
497
                                  UNPAIR ;
498
                                  UNPAIR ;
499
                                  UNPAIR ;
500
                                  CAR ;
501
                                  PUSH nat 1 ;
502
                                  SWAP ;
503
                                  PAIR ;
504
                                  PAIR ;
505
                                  PAIR ;
506
                                  PAIR ;
507
                                  SWAP ;
508
                                  PAIR ;
509
                                  DUG 4 }
510
                                {} ;
511
                              DIG 4 ;
512
                              UNPAIR ;
513
                              SWAP ;
514
                              UNPAIR ;
515
                              UNPAIR ;
516
                              UNPAIR ;
517
                              SWAP ;
518
                              UNPAIR ;
519
                              SWAP ;
520
                              PUSH nat 1 ;
521
                              ADD ;
522
                              SWAP ;
523
                              PAIR ;
524
                              SWAP ;
525
                              PAIR ;
526
                              PAIR ;
527
                              PAIR ;
528
                              SWAP ;
529
                              PAIR ;
530
                              DUG 4 ;
531
                              PUSH nat 1 ;
532
                              ADD ;
533
                              DUP ;
534
                              DUP 3 ;
535
                              COMPARE ;
536
                              GT } ;
537
                       DROP 2 ;
538
                       SWAP ;
539
                       DROP }
540
                     { SWAP ;
541
                       DUP ;
542
                       DUG 2 ;
543
                       GET 3 ;
544
                       GET 3 ;
545
                       CAR ;
546
                       SENDER ;
547
                       COMPARE ;
548
                       EQ ;
549
                       IF {} { PUSH string "NOT_ORACLE" ; FAILWITH } ;
550
                       SWAP ;
551
                       DUP ;
552
                       DUG 2 ;
553
                       GET 3 ;
554
                       GET 3 ;
555
                       CDR ;
556
                       IF {} { PUSH string "NOT_CALLBACK_EXPECTED" ; FAILWITH } ;
557
                       SWAP ;
558
                       UNPAIR ;
559
                       SWAP ;
560
                       UNPAIR ;
561
                       UNPAIR ;
562
                       SWAP ;
563
                       UNPAIR ;
564
                       CAR ;
565
                       PUSH bool False ;
566
                       SWAP ;
567
                       PAIR ;
568
                       PAIR ;
569
                       SWAP ;
570
                       PAIR ;
571
                       PAIR ;
572
                       SWAP ;
573
                       PAIR ;
574
                       DUP ;
575
                       DUG 2 ;
576
                       UNPAIR ;
577
                       SWAP ;
578
                       UNPAIR ;
579
                       UNPAIR ;
580
                       UNPAIR ;
581
                       CAR ;
582
                       DIG 6 ;
583
                       CAR ;
584
                       GET 8 ;
585
                       DIG 6 ;
586
                       GET 4 ;
587
                       EDIV ;
588
                       IF_NONE { PUSH int 102 ; FAILWITH } { CDR } ;
589
                       SWAP ;
590
                       PAIR ;
591
                       PAIR ;
592
                       PAIR ;
593
                       PAIR ;
594
                       SWAP ;
595
                       PAIR ;
596
                       DUP ;
597
                       GET 3 ;
598
                       CAR ;
599
                       CAR ;
600
                       CDR ;
601
                       PUSH nat 0 ;
602
                       COMPARE ;
603
                       EQ ;
604
                       IF
605
                         { DUP ;
606
                           UNPAIR ;
607
                           SWAP ;
608
                           UNPAIR ;
609
                           UNPAIR ;
610
                           UNPAIR ;
611
                           CAR ;
612
                           DIG 5 ;
613
                           CAR ;
614
                           GET 8 ;
615
                           SWAP ;
616
                           PAIR ;
617
                           PAIR ;
618
                           PAIR ;
619
                           PAIR ;
620
                           SWAP ;
621
                           PAIR }
622
                         {} ;
623
                       NIL operation } } }
624
             { IF_LEFT
625
                 { SWAP ;
626
                   DUP ;
627
                   DUG 2 ;
628
                   CAR ;
629
                   CAR ;
630
                   CAR ;
631
                   CAR ;
632
                   SENDER ;
633
                   COMPARE ;
634
                   EQ ;
635
                   IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
636
                   SWAP ;
637
                   UNPAIR ;
638
                   UNPAIR ;
639
                   SWAP ;
640
                   UNPAIR ;
641
                   UNPAIR ;
642
                   SWAP ;
643
                   CDR ;
644
                   DUP 6 ;
645
                   PAIR ;
646
                   SWAP ;
647
                   PAIR ;
648
                   PAIR ;
649
                   SWAP ;
650
                   PAIR ;
651
                   PAIR ;
652
                   DUP ;
653
                   DUG 2 ;
654
                   UNPAIR ;
655
                   SWAP ;
656
                   UNPAIR ;
657
                   SWAP ;
658
                   UNPAIR ;
659
                   UNPAIR ;
660
                   SWAP ;
661
                   CAR ;
662
                   DIG 5 ;
663
                   PUSH int 60 ;
664
                   DIG 7 ;
665
                   CAR ;
666
                   GET 3 ;
667
                   CAR ;
668
                   CDR ;
669
                   MUL ;
670
                   ADD ;
671
                   SWAP ;
672
                   PAIR ;
673
                   SWAP ;
674
                   PAIR ;
675
                   PAIR ;
676
                   SWAP ;
677
                   PAIR ;
678
                   SWAP ;
679
                   PAIR ;
680
                   DUP ;
681
                   UNPAIR ;
682
                   SWAP ;
683
                   UNPAIR ;
684
                   SWAP ;
685
                   UNPAIR ;
686
                   UNPAIR ;
687
                   SWAP ;
688
                   CDR ;
689
                   DUP 6 ;
690
                   GET 5 ;
691
                   GET 4 ;
692
                   PUSH int 60 ;
693
                   DIG 7 ;
694
                   GET 5 ;
695
                   CAR ;
696
                   CDR ;
697
                   MUL ;
698
                   ADD ;
699
                   PAIR ;
700
                   SWAP ;
701
                   PAIR ;
702
                   PAIR ;
703
                   SWAP ;
704
                   UNPAIR ;
705
                   SWAP ;
706
                   UNPAIR ;
707
                   CAR ;
708
                   PUSH bool True ;
709
                   SWAP ;
710
                   PAIR ;
711
                   PAIR ;
712
                   SWAP ;
713
                   PAIR ;
714
                   PAIR ;
715
                   SWAP ;
716
                   PAIR ;
717
                   DUP ;
718
                   GET 3 ;
719
                   GET 3 ;
720
                   CAR ;
721
                   CONTRACT %get (pair string
722
                                       (contract (pair string (pair timestamp nat)))) ;
723
                   IF_NONE { PUSH int 116 ; FAILWITH } {} ;
724
                   NIL operation ;
725
                   SWAP ;
726
                   PUSH mutez 0 ;
727
                   SELF_ADDRESS ;
728
                   CONTRACT %oracle_callback (pair string (pair timestamp nat)) ;
729
                   IF_NONE { PUSH int 117 ; FAILWITH } {} ;
730
                   PUSH string "XTZ-USD" ;
731
                   PAIR ;
732
                   TRANSFER_TOKENS ;
733
                   CONS }
734
                 { IF_LEFT
735
                     { DROP ;
736
                       DUP ;
737
                       CAR ;
738
                       CAR ;
739
                       CAR ;
740
                       GET 4 ;
741
                       SENDER ;
742
                       MEM ;
743
                       IF { PUSH string "IN_BLACKLIST" ; FAILWITH } {} ;
744
                       DUP ;
745
                       CAR ;
746
                       GET 5 ;
747
                       CAR ;
748
                       SENDER ;
749
                       MEM ;
750
                       IF { PUSH string "IN_FOMOS_ALREADY" ; FAILWITH } {} ;
751
                       DUP ;
752
                       CAR ;
753
                       GET 3 ;
754
                       CAR ;
755
                       CAR ;
756
                       NOW ;
757
                       COMPARE ;
758
                       GE ;
759
                       IF
760
                         { DUP ;
761
                           CAR ;
762
                           GET 3 ;
763
                           CAR ;
764
                           CAR ;
765
                           PUSH int 60 ;
766
                           DUP 3 ;
767
                           CAR ;
768
                           CAR ;
769
                           GET 6 ;
770
                           MUL ;
771
                           ADD ;
772
                           NOW ;
773
                           COMPARE ;
774
                           LE }
775
                         { PUSH bool False } ;
776
                       IF {} { PUSH string "NOT_IN_REGISTER_TIME" ; FAILWITH } ;
777
                       UNPAIR ;
778
                       UNPAIR ;
779
                       SWAP ;
780
                       UNPAIR ;
781
                       SWAP ;
782
                       UNPAIR ;
783
                       UNPAIR ;
784
                       PUSH (option unit) (Some Unit) ;
785
                       SENDER ;
786
                       UPDATE ;
787
                       PAIR ;
788
                       PAIR ;
789
                       SWAP ;
790
                       PAIR ;
791
                       SWAP ;
792
                       PAIR ;
793
                       PAIR ;
794
                       NIL operation }
795
                     { SWAP ;
796
                       DUP ;
797
                       DUG 2 ;
798
                       CAR ;
799
                       CAR ;
800
                       CAR ;
801
                       CAR ;
802
                       SENDER ;
803
                       COMPARE ;
804
                       EQ ;
805
                       IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
806
                       SWAP ;
807
                       DUP ;
808
                       DUG 2 ;
809
                       GET 5 ;
810
                       GET 4 ;
811
                       NOW ;
812
                       COMPARE ;
813
                       GE ;
814
                       IF {} { PUSH string "SALE_NOT_START" ; FAILWITH } ;
815
                       NIL operation ;
816
                       DUP 3 ;
817
                       CAR ;
818
                       CAR ;
819
                       GET 3 ;
820
                       CDR ;
821
                       CONTRACT %update_token_metadata (list (pair nat (map string bytes))) ;
822
                       IF_NONE { PUSH int 167 ; FAILWITH } {} ;
823
                       PUSH mutez 0 ;
824
                       DIG 3 ;
825
                       TRANSFER_TOKENS ;
826
                       CONS } } } }
827
         { IF_LEFT
828
             { IF_LEFT
829
                 { SWAP ;
830
                   DUP ;
831
                   DUG 2 ;
832
                   CAR ;
833
                   CAR ;
834
                   CAR ;
835
                   CAR ;
836
                   SENDER ;
837
                   COMPARE ;
838
                   EQ ;
839
                   IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
840
                   SWAP ;
841
                   UNPAIR ;
842
                   UNPAIR ;
843
                   SWAP ;
844
                   UNPAIR ;
845
                   UNPAIR ;
846
                   CDR ;
847
                   DUP 6 ;
848
                   CDR ;
849
                   PAIR ;
850
                   PAIR ;
851
                   PAIR ;
852
                   SWAP ;
853
                   UNPAIR ;
854
                   SWAP ;
855
                   UNPAIR ;
856
                   SWAP ;
857
                   CAR ;
858
                   DIG 5 ;
859
                   CAR ;
860
                   SWAP ;
861
                   PAIR ;
862
                   SWAP ;
863
                   PAIR ;
864
                   SWAP ;
865
                   PAIR ;
866
                   PAIR ;
867
                   PAIR }
868
                 { IF_LEFT
869
                     { SWAP ;
870
                       DUP ;
871
                       DUG 2 ;
872
                       CAR ;
873
                       CAR ;
874
                       CAR ;
875
                       CAR ;
876
                       SENDER ;
877
                       COMPARE ;
878
                       EQ ;
879
                       IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
880
                       SWAP ;
881
                       UNPAIR ;
882
                       UNPAIR ;
883
                       UNPAIR ;
884
                       CDR ;
885
                       DIG 4 ;
886
                       PAIR ;
887
                       PAIR ;
888
                       PAIR ;
889
                       PAIR }
890
                     { SWAP ;
891
                       DUP ;
892
                       DUG 2 ;
893
                       CAR ;
894
                       CAR ;
895
                       CAR ;
896
                       CAR ;
897
                       SENDER ;
898
                       COMPARE ;
899
                       EQ ;
900
                       IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
901
                       DUP ;
902
                       ITER { IF_LEFT
903
                                { DIG 2 ;
904
                                  UNPAIR ;
905
                                  UNPAIR ;
906
                                  UNPAIR ;
907
                                  UNPAIR ;
908
                                  SWAP ;
909
                                  UNPAIR ;
910
                                  SWAP ;
911
                                  PUSH (option unit) (Some Unit) ;
912
                                  DIG 7 ;
913
                                  UPDATE ;
914
                                  SWAP ;
915
                                  PAIR ;
916
                                  SWAP ;
917
                                  PAIR ;
918
                                  PAIR ;
919
                                  PAIR ;
920
                                  PAIR ;
921
                                  SWAP }
922
                                { DIG 2 ;
923
                                  UNPAIR ;
924
                                  UNPAIR ;
925
                                  UNPAIR ;
926
                                  UNPAIR ;
927
                                  SWAP ;
928
                                  UNPAIR ;
929
                                  SWAP ;
930
                                  NONE unit ;
931
                                  DIG 7 ;
932
                                  UPDATE ;
933
                                  SWAP ;
934
                                  PAIR ;
935
                                  SWAP ;
936
                                  PAIR ;
937
                                  PAIR ;
938
                                  PAIR ;
939
                                  PAIR ;
940
                                  SWAP } } ;
941
                       DROP } } ;
942
               NIL operation }
943
             { IF_LEFT
944
                 { IF_LEFT
945
                     { SWAP ;
946
                       DUP ;
947
                       DUG 2 ;
948
                       CAR ;
949
                       CAR ;
950
                       CAR ;
951
                       CAR ;
952
                       SENDER ;
953
                       COMPARE ;
954
                       EQ ;
955
                       IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
956
                       SWAP ;
957
                       UNPAIR ;
958
                       SWAP ;
959
                       UNPAIR ;
960
                       UNPAIR ;
961
                       UNPAIR ;
962
                       UNPAIR ;
963
                       DUP 7 ;
964
                       CDR ;
965
                       SOME ;
966
                       DIG 7 ;
967
                       CAR ;
968
                       UPDATE ;
969
                       PAIR ;
970
                       PAIR ;
971
                       PAIR ;
972
                       PAIR ;
973
                       SWAP ;
974
                       PAIR ;
975
                       NIL operation }
976
                     { SWAP ;
977
                       DUP ;
978
                       DUG 2 ;
979
                       CAR ;
980
                       CAR ;
981
                       CAR ;
982
                       CAR ;
983
                       SENDER ;
984
                       COMPARE ;
985
                       EQ ;
986
                       IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
987
                       SWAP ;
988
                       DUP ;
989
                       DUG 2 ;
990
                       GET 5 ;
991
                       GET 3 ;
992
                       NOW ;
993
                       COMPARE ;
994
                       GE ;
995
                       IF {} { PUSH string "SALE_NOT_END" ; FAILWITH } ;
996
                       NIL operation ;
997
                       DUP 3 ;
998
                       CAR ;
999
                       CAR ;
1000
                       GET 3 ;
1001
                       CDR ;
1002
                       CONTRACT %update_token_metadata (list (pair nat (map string bytes))) ;
1003
                       IF_NONE { PUSH int 175 ; FAILWITH } {} ;
1004
                       PUSH mutez 0 ;
1005
                       DIG 3 ;
1006
                       TRANSFER_TOKENS ;
1007
                       CONS } }
1008
                 { IF_LEFT
1009
                     { SWAP ;
1010
                       DUP ;
1011
                       DUG 2 ;
1012
                       CAR ;
1013
                       CAR ;
1014
                       CAR ;
1015
                       CAR ;
1016
                       SENDER ;
1017
                       COMPARE ;
1018
                       EQ ;
1019
                       IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
1020
                       NIL (pair address nat) ;
1021
                       SWAP ;
1022
                       DUP ;
1023
                       DUG 2 ;
1024
                       ITER { SWAP ; DUP 4 ; GET 10 ; DIG 2 ; PAIR ; CONS } ;
1025
                       SWAP ;
1026
                       DROP ;
1027
                       SWAP ;
1028
                       UNPAIR ;
1029
                       SWAP ;
1030
                       UNPAIR ;
1031
                       SWAP ;
1032
                       UNPAIR ;
1033
                       SWAP ;
1034
                       UNPAIR ;
1035
                       CAR ;
1036
                       PUSH bool True ;
1037
                       SWAP ;
1038
                       PAIR ;
1039
                       PAIR ;
1040
                       SWAP ;
1041
                       PAIR ;
1042
                       SWAP ;
1043
                       PAIR ;
1044
                       SWAP ;
1045
                       PAIR ;
1046
                       SWAP ;
1047
                       NIL operation ;
1048
                       DUP 3 ;
1049
                       GET 7 ;
1050
                       CAR ;
1051
                       CONTRACT %balance_of (pair (list (pair address nat))
1052
                                                  (contract (list (pair (pair address nat)
1053
                                                                      nat)))) ;
1054
                       IF_NONE { PUSH int 225 ; FAILWITH } {} ;
1055
                       PUSH mutez 0 ;
1056
                       SELF_ADDRESS ;
1057
                       CONTRACT %voucher_fa2_callback (list (pair (pair address nat) nat)) ;
1058
                       IF_NONE { PUSH int 226 ; FAILWITH } {} ;
1059
                       DIG 4 ;
1060
                       PAIR ;
1061
                       TRANSFER_TOKENS ;
1062
                       CONS }
1063
                     { SWAP ;
1064
                       DUP ;
1065
                       DUG 2 ;
1066
                       GET 7 ;
1067
                       CAR ;
1068
                       SENDER ;
1069
                       COMPARE ;
1070
                       EQ ;
1071
                       IF {} { PUSH string "NOT_voucher_FA2" ; FAILWITH } ;
1072
                       SWAP ;
1073
                       DUP ;
1074
                       DUG 2 ;
1075
                       GET 7 ;
1076
                       CDR ;
1077
                       IF {} { PUSH string "NOT_CALLBACK_EXPECTED" ; FAILWITH } ;
1078
                       SWAP ;
1079
                       UNPAIR ;
1080
                       SWAP ;
1081
                       UNPAIR ;
1082
                       SWAP ;
1083
                       UNPAIR ;
1084
                       SWAP ;
1085
                       UNPAIR ;
1086
                       CAR ;
1087
                       PUSH bool False ;
1088
                       SWAP ;
1089
                       PAIR ;
1090
                       PAIR ;
1091
                       SWAP ;
1092
                       PAIR ;
1093
                       SWAP ;
1094
                       PAIR ;
1095
                       SWAP ;
1096
                       PAIR ;
1097
                       SWAP ;
1098
                       PUSH nat 0 ;
1099
                       NIL operation ;
1100
                       DUP 3 ;
1101
                       ITER { DUP ;
1102
                              CDR ;
1103
                              PUSH nat 0 ;
1104
                              COMPARE ;
1105
                              LT ;
1106
                              IF {} { PUSH string "BALANCE <> 0" ; FAILWITH } ;
1107
                              PUSH nat 20 ;
1108
                              DUP 6 ;
1109
                              GET 9 ;
1110
                              EDIV ;
1111
                              IF_NONE { PUSH int 239 ; FAILWITH } {} ;
1112
                              CAR ;
1113
                              SWAP ;
1114
                              DUP ;
1115
                              DUG 2 ;
1116
                              CDR ;
1117
                              MUL ;
1118
                              DIG 3 ;
1119
                              ADD ;
1120
                              DUG 2 ;
1121
                              PUSH nat 20 ;
1122
                              DUP 6 ;
1123
                              GET 9 ;
1124
                              EDIV ;
1125
                              IF_NONE { PUSH int 239 ; FAILWITH } {} ;
1126
                              CAR ;
1127
                              SWAP ;
1128
                              DUP ;
1129
                              DUG 2 ;
1130
                              CDR ;
1131
                              MUL ;
1132
                              PUSH nat 0 ;
1133
                              DUP ;
1134
                              DUP 3 ;
1135
                              COMPARE ;
1136
                              GT ;
1137
                              LOOP { DUP 7 ;
1138
                                     GET 3 ;
1139
                                     CAR ;
1140
                                     CAR ;
1141
                                     CDR ;
1142
                                     NIL string ;
1143
                                     PUSH nat 0 ;
1144
                                     DUP 3 ;
1145
                                     COMPARE ;
1146
                                     EQ ;
1147
                                     IF { PUSH string "0" ; CONS } {} ;
1148
                                     PUSH nat 0 ;
1149
                                     DUP 3 ;
1150
                                     COMPARE ;
1151
                                     GT ;
1152
                                     LOOP { PUSH (map nat string) { Elt 0 "0" ;
1153
                                                    Elt 1 "1" ;
1154
                                                    Elt 2 "2" ;
1155
                                                    Elt 3 "3" ;
1156
                                                    Elt 4 "4" ;
1157
                                                    Elt 5 "5" ;
1158
                                                    Elt 6 "6" ;
1159
                                                    Elt 7 "7" ;
1160
                                                    Elt 8 "8" ;
1161
                                                    Elt 9 "9" } ;
1162
                                            PUSH nat 10 ;
1163
                                            DUP 4 ;
1164
                                            EDIV ;
1165
                                            IF_NONE { PUSH int 48 ; FAILWITH } { CDR } ;
1166
                                            GET ;
1167
                                            IF_NONE { PUSH int 48 ; FAILWITH } {} ;
1168
                                            CONS ;
1169
                                            PUSH nat 10 ;
1170
                                            DIG 2 ;
1171
                                            EDIV ;
1172
                                            IF_NONE { PUSH int 49 ; FAILWITH } { CAR } ;
1173
                                            SWAP ;
1174
                                            PUSH nat 0 ;
1175
                                            DUP 3 ;
1176
                                            COMPARE ;
1177
                                            GT } ;
1178
                                     SWAP ;
1179
                                     DROP ;
1180
                                     DIG 4 ;
1181
                                     DUP 8 ;
1182
                                     CAR ;
1183
                                     CAR ;
1184
                                     GET 3 ;
1185
                                     CDR ;
1186
                                     CONTRACT %mint (pair (pair address nat)
1187
                                                          (pair nat (map string bytes))) ;
1188
                                     IF_NONE { PUSH int 252 ; FAILWITH } {} ;
1189
                                     PUSH mutez 0 ;
1190
                                     EMPTY_MAP string bytes ;
1191
                                     DIG 4 ;
1192
                                     CONCAT ;
1193
                                     DUP 11 ;
1194
                                     GET 3 ;
1195
                                     GET 5 ;
1196
                                     CONCAT ;
1197
                                     PACK ;
1198
                                     SOME ;
1199
                                     PUSH string "" ;
1200
                                     UPDATE ;
1201
                                     DIG 9 ;
1202
                                     DUP ;
1203
                                     CAR ;
1204
                                     CAR ;
1205
                                     CAR ;
1206
                                     GET 3 ;
1207
                                     SWAP ;
1208
                                     DUP ;
1209
                                     DUG 11 ;
1210
                                     GET 3 ;
1211
                                     CAR ;
1212
                                     CAR ;
1213
                                     CDR ;
1214
                                     ADD ;
1215
                                     PAIR ;
1216
                                     PUSH nat 1 ;
1217
                                     DUP 8 ;
1218
                                     CAR ;
1219
                                     CAR ;
1220
                                     PAIR ;
1221
                                     PAIR ;
1222
                                     TRANSFER_TOKENS ;
1223
                                     CONS ;
1224
                                     DUG 3 ;
1225
                                     DIG 6 ;
1226
                                     UNPAIR ;
1227
                                     SWAP ;
1228
                                     UNPAIR ;
1229
                                     UNPAIR ;
1230
                                     UNPAIR ;
1231
                                     UNPAIR ;
1232
                                     SWAP ;
1233
                                     PUSH nat 1 ;
1234
                                     ADD ;
1235
                                     SWAP ;
1236
                                     PAIR ;
1237
                                     PAIR ;
1238
                                     PAIR ;
1239
                                     PAIR ;
1240
                                     SWAP ;
1241
                                     PAIR ;
1242
                                     DUP ;
1243
                                     CAR ;
1244
                                     GET 8 ;
1245
                                     SWAP ;
1246
                                     DUP ;
1247
                                     DUG 8 ;
1248
                                     GET 3 ;
1249
                                     CAR ;
1250
                                     CAR ;
1251
                                     CDR ;
1252
                                     COMPARE ;
1253
                                     GT ;
1254
                                     IF
1255
                                       { DIG 6 ;
1256
                                         UNPAIR ;
1257
                                         SWAP ;
1258
                                         UNPAIR ;
1259
                                         UNPAIR ;
1260
                                         UNPAIR ;
1261
                                         CAR ;
1262
                                         PUSH nat 1 ;
1263
                                         SWAP ;
1264
                                         PAIR ;
1265
                                         PAIR ;
1266
                                         PAIR ;
1267
                                         PAIR ;
1268
                                         SWAP ;
1269
                                         PAIR ;
1270
                                         DUG 6 }
1271
                                       {} ;
1272
                                     DIG 6 ;
1273
                                     UNPAIR ;
1274
                                     SWAP ;
1275
                                     UNPAIR ;
1276
                                     UNPAIR ;
1277
                                     UNPAIR ;
1278
                                     SWAP ;
1279
                                     UNPAIR ;
1280
                                     SWAP ;
1281
                                     PUSH nat 1 ;
1282
                                     ADD ;
1283
                                     SWAP ;
1284
                                     PAIR ;
1285
                                     SWAP ;
1286
                                     PAIR ;
1287
                                     PAIR ;
1288
                                     PAIR ;
1289
                                     SWAP ;
1290
                                     PAIR ;
1291
                                     DUG 6 ;
1292
                                     PUSH nat 1 ;
1293
                                     ADD ;
1294
                                     DUP ;
1295
                                     DUP 3 ;
1296
                                     COMPARE ;
1297
                                     GT } ;
1298
                              DROP 3 } ;
1299
                       SWAP ;
1300
                       DUP ;
1301
                       DUG 2 ;
1302
                       DUP 5 ;
1303
                       GET 9 ;
1304
                       COMPARE ;
1305
                       GT ;
1306
                       IF
1307
                         { SWAP ;
1308
                           DUP ;
1309
                           DUG 2 ;
1310
                           DUP 5 ;
1311
                           GET 9 ;
1312
                           SUB ;
1313
                           ABS ;
1314
                           PUSH nat 0 ;
1315
                           DUP ;
1316
                           DUP 3 ;
1317
                           COMPARE ;
1318
                           GT ;
1319
                           LOOP { DUP 6 ;
1320
                                  GET 3 ;
1321
                                  CAR ;
1322
                                  CAR ;
1323
                                  CDR ;
1324
                                  NIL string ;
1325
                                  PUSH nat 0 ;
1326
                                  DUP 3 ;
1327
                                  COMPARE ;
1328
                                  EQ ;
1329
                                  IF { PUSH string "0" ; CONS } {} ;
1330
                                  PUSH nat 0 ;
1331
                                  DUP 3 ;
1332
                                  COMPARE ;
1333
                                  GT ;
1334
                                  LOOP { PUSH (map nat string) { Elt 0 "0" ;
1335
                                                 Elt 1 "1" ;
1336
                                                 Elt 2 "2" ;
1337
                                                 Elt 3 "3" ;
1338
                                                 Elt 4 "4" ;
1339
                                                 Elt 5 "5" ;
1340
                                                 Elt 6 "6" ;
1341
                                                 Elt 7 "7" ;
1342
                                                 Elt 8 "8" ;
1343
                                                 Elt 9 "9" } ;
1344
                                         PUSH nat 10 ;
1345
                                         DUP 4 ;
1346
                                         EDIV ;
1347
                                         IF_NONE { PUSH int 48 ; FAILWITH } { CDR } ;
1348
                                         GET ;
1349
                                         IF_NONE { PUSH int 48 ; FAILWITH } {} ;
1350
                                         CONS ;
1351
                                         PUSH nat 10 ;
1352
                                         DIG 2 ;
1353
                                         EDIV ;
1354
                                         IF_NONE { PUSH int 49 ; FAILWITH } { CAR } ;
1355
                                         SWAP ;
1356
                                         PUSH nat 0 ;
1357
                                         DUP 3 ;
1358
                                         COMPARE ;
1359
                                         GT } ;
1360
                                  SWAP ;
1361
                                  DROP ;
1362
                                  DIG 3 ;
1363
                                  DUP 7 ;
1364
                                  CAR ;
1365
                                  CAR ;
1366
                                  GET 3 ;
1367
                                  CDR ;
1368
                                  CONTRACT %mint (pair (pair address nat)
1369
                                                       (pair nat (map string bytes))) ;
1370
                                  IF_NONE { PUSH int 252 ; FAILWITH } {} ;
1371
                                  PUSH mutez 0 ;
1372
                                  EMPTY_MAP string bytes ;
1373
                                  DIG 4 ;
1374
                                  CONCAT ;
1375
                                  DUP 10 ;
1376
                                  GET 3 ;
1377
                                  GET 5 ;
1378
                                  CONCAT ;
1379
                                  PACK ;
1380
                                  SOME ;
1381
                                  PUSH string "" ;
1382
                                  UPDATE ;
1383
                                  DIG 8 ;
1384
                                  DUP ;
1385
                                  CAR ;
1386
                                  CAR ;
1387
                                  CAR ;
1388
                                  GET 3 ;
1389
                                  SWAP ;
1390
                                  DUP ;
1391
                                  DUG 10 ;
1392
                                  GET 3 ;
1393
                                  CAR ;
1394
                                  CAR ;
1395
                                  CDR ;
1396
                                  ADD ;
1397
                                  PAIR ;
1398
                                  PUSH nat 1 ;
1399
                                  DUP 10 ;
1400
                                  CAR ;
1401
                                  CAR ;
1402
                                  CAR ;
1403
                                  CAR ;
1404
                                  PAIR ;
1405
                                  PAIR ;
1406
                                  TRANSFER_TOKENS ;
1407
                                  CONS ;
1408
                                  DUG 2 ;
1409
                                  DIG 5 ;
1410
                                  UNPAIR ;
1411
                                  SWAP ;
1412
                                  UNPAIR ;
1413
                                  UNPAIR ;
1414
                                  UNPAIR ;
1415
                                  UNPAIR ;
1416
                                  SWAP ;
1417
                                  PUSH nat 1 ;
1418
                                  ADD ;
1419
                                  SWAP ;
1420
                                  PAIR ;
1421
                                  PAIR ;
1422
                                  PAIR ;
1423
                                  PAIR ;
1424
                                  SWAP ;
1425
                                  PAIR ;
1426
                                  DUP ;
1427
                                  CAR ;
1428
                                  GET 8 ;
1429
                                  SWAP ;
1430
                                  DUP ;
1431
                                  DUG 7 ;
1432
                                  GET 3 ;
1433
                                  CAR ;
1434
                                  CAR ;
1435
                                  CDR ;
1436
                                  COMPARE ;
1437
                                  GT ;
1438
                                  IF
1439
                                    { DIG 5 ;
1440
                                      UNPAIR ;
1441
                                      SWAP ;
1442
                                      UNPAIR ;
1443
                                      UNPAIR ;
1444
                                      UNPAIR ;
1445
                                      CAR ;
1446
                                      PUSH nat 1 ;
1447
                                      SWAP ;
1448
                                      PAIR ;
1449
                                      PAIR ;
1450
                                      PAIR ;
1451
                                      PAIR ;
1452
                                      SWAP ;
1453
                                      PAIR ;
1454
                                      DUG 5 }
1455
                                    {} ;
1456
                                  DIG 5 ;
1457
                                  UNPAIR ;
1458
                                  SWAP ;
1459
                                  UNPAIR ;
1460
                                  UNPAIR ;
1461
                                  UNPAIR ;
1462
                                  SWAP ;
1463
                                  UNPAIR ;
1464
                                  SWAP ;
1465
                                  PUSH nat 1 ;
1466
                                  ADD ;
1467
                                  SWAP ;
1468
                                  PAIR ;
1469
                                  SWAP ;
1470
                                  PAIR ;
1471
                                  PAIR ;
1472
                                  PAIR ;
1473
                                  SWAP ;
1474
                                  PAIR ;
1475
                                  DUG 5 ;
1476
                                  PUSH nat 1 ;
1477
                                  ADD ;
1478
                                  DUP ;
1479
                                  DUP 3 ;
1480
                                  COMPARE ;
1481
                                  GT } ;
1482
                           DROP 2 ;
1483
                           SWAP ;
1484
                           DROP ;
1485
                           SWAP ;
1486
                           DROP }
1487
                         { SWAP ; DROP ; SWAP ; DROP } } } } } ;
1488
       NIL operation ;
1489
       SWAP ;
1490
       ITER { CONS } ;
1491
       PAIR }