BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • youves uDEFI/SIRS Engine v2
operations (437)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
935
1854
 
1
parameter (or
2
            (or
3
              (or (or (nat %bailout) (nat %burn))
4
                  (or (bool %create_vault)
5
                      (or (nat %deposit) (lambda %execute unit (list operation)))))
6
              (or
7
                (or (nat %internal_bailout)
8
                    (or (nat %internal_burn)
9
                        (pair %internal_liquidate (address %vault_owner)
10
                                                  (nat %token_amount))))
11
                (or (nat %internal_mint)
12
                    (or
13
                      (pair %internal_settle_with_vault (address %vault_owner)
14
                                                        (pair (nat %token_amount)
15
                                                              (address %recipient)))
16
                      (list %internal_touch address)))))
17
            (or
18
              (or
19
                (or (nat %internal_withdraw)
20
                    (or (pair %liquidate (address %vault_owner) (nat %token_amount))
21
                        (nat %mint)))
22
                (or
23
                  (pair %remove_administrator (address %administrator_to_remove)
24
                                              (nat %token_id))
25
                  (or
26
                    (pair %set_administrator (address %administrator_to_set)
27
                                             (nat %token_id))
28
                    (pair %set_contracts
29
                      (pair (address %governance_token_contract)
30
                            (address %options_contract))
31
                      (pair (address %reward_pool_contract)
32
                            (pair (address %savings_pool_contract)
33
                                  (address %target_price_oracle)))))))
34
              (or
35
                (or (nat %set_reference_interest_rate)
36
                    (or (nat %set_target_price)
37
                        (pair %settle_with_vault (address %vault_owner)
38
                                                 (pair (nat %token_amount)
39
                                                       (address %recipient)))))
40
                (or (list %touch address) (or (unit %update) (nat %withdraw))))));
41
storage (pair
42
          (pair
43
            (pair
44
              (pair (timestamp %accrual_update_timestamp)
45
                    (big_map %administrators (pair (address %owner) (nat %token_id))
46
                                             unit))
47
              (pair (address %collateral_token_contract) (int %collateral_token_id)))
48
            (pair
49
              (pair (nat %compound_interest_rate) (address %governance_token_contract))
50
              (pair (address %options_contract) (nat %reference_interest_rate))))
51
          (pair
52
            (pair
53
              (pair (address %reward_pool_contract) (address %savings_pool_contract))
54
              (pair (address %sender) (nat %target_price)))
55
            (pair (pair (address %target_price_oracle) (address %token_contract))
56
                  (pair (nat %token_id)
57
                        (pair (nat %total_supply)
58
                              (big_map %vault_contexts address
59
                                                       (pair
60
                                                         (pair (bool %allows_settlement)
61
                                                               (nat %balance))
62
                                                         (pair
63
                                                           (bool %is_being_liquidated)
64
                                                           (nat %minted)))))))));
65
code { LAMBDA
66
         (pair unit
67
               (pair (list operation)
68
                     (pair
69
                       (pair
70
                         (pair (pair timestamp (big_map (pair address nat) unit))
71
                               (pair address int))
72
                         (pair (pair nat address) (pair address nat)))
73
                       (pair (pair (pair address address) (pair address nat))
74
                             (pair (pair address address)
75
                                   (pair nat
76
                                         (pair nat
77
                                               (big_map address
78
                                                        (pair (pair bool nat)
79
                                                              (pair bool nat))))))))))
80
         (pair unit
81
               (pair (list operation)
82
                     (pair
83
                       (pair
84
                         (pair (pair timestamp (big_map (pair address nat) unit))
85
                               (pair address int))
86
                         (pair (pair nat address) (pair address nat)))
87
                       (pair (pair (pair address address) (pair address nat))
88
                             (pair (pair address address)
89
                                   (pair nat
90
                                         (pair nat
91
                                               (big_map address
92
                                                        (pair (pair bool nat)
93
                                                              (pair bool nat))))))))))
94
         { CDR ;
95
           UNPAIR ;
96
           SWAP ;
97
           DUP ;
98
           DUG 2 ;
99
           GET 5 ;
100
           CAR ;
101
           CONTRACT %get_price (contract nat) ;
102
           IF_NONE { PUSH int 124 ; FAILWITH } {} ;
103
           PUSH mutez 0 ;
104
           SELF_ADDRESS ;
105
           CONTRACT %set_target_price nat ;
106
           IF_NONE { PUSH int 126 ; FAILWITH } {} ;
107
           TRANSFER_TOKENS ;
108
           CONS ;
109
           UNIT ;
110
           PAIR 3 } ;
111
       SWAP ;
112
       LAMBDA
113
         (pair unit
114
               (pair (list operation)
115
                     (pair
116
                       (pair
117
                         (pair (pair timestamp (big_map (pair address nat) unit))
118
                               (pair address int))
119
                         (pair (pair nat address) (pair address nat)))
120
                       (pair (pair (pair address address) (pair address nat))
121
                             (pair (pair address address)
122
                                   (pair nat
123
                                         (pair nat
124
                                               (big_map address
125
                                                        (pair (pair bool nat)
126
                                                              (pair bool nat))))))))))
127
         (pair unit
128
               (pair (list operation)
129
                     (pair
130
                       (pair
131
                         (pair (pair timestamp (big_map (pair address nat) unit))
132
                               (pair address int))
133
                         (pair (pair nat address) (pair address nat)))
134
                       (pair (pair (pair address address) (pair address nat))
135
                             (pair (pair address address)
136
                                   (pair nat
137
                                         (pair nat
138
                                               (big_map address
139
                                                        (pair (pair bool nat)
140
                                                              (pair bool nat))))))))))
141
         { UNPAIR 3 ;
142
           SWAP ;
143
           DUP 3 ;
144
           CAR ;
145
           CAR ;
146
           CAR ;
147
           CAR ;
148
           NOW ;
149
           SUB ;
150
           ISNAT ;
151
           IF_NONE { PUSH int 139 ; FAILWITH } {} ;
152
           DUP ;
153
           PUSH nat 0 ;
154
           COMPARE ;
155
           LT ;
156
           IF
157
             { DIG 2 ;
158
               DROP ;
159
               PUSH nat 1000000000000 ;
160
               DUP 4 ;
161
               GET 9 ;
162
               DUP 3 ;
163
               DUP 6 ;
164
               CAR ;
165
               GET 6 ;
166
               MUL ;
167
               MUL ;
168
               EDIV ;
169
               IF_NONE { PUSH int 142 ; FAILWITH } { CAR } ;
170
               PUSH nat 1000000000000 ;
171
               DUP 5 ;
172
               GET 9 ;
173
               DUP 4 ;
174
               PUSH nat 316 ;
175
               MUL ;
176
               MUL ;
177
               EDIV ;
178
               IF_NONE { PUSH int 144 ; FAILWITH } { CAR } ;
179
               DUP 5 ;
180
               UNPAIR ;
181
               UNPAIR ;
182
               SWAP ;
183
               UNPAIR ;
184
               CDR ;
185
               PUSH nat 1000000000000 ;
186
               DIG 7 ;
187
               PUSH nat 316 ;
188
               DUP 11 ;
189
               CAR ;
190
               GET 6 ;
191
               ADD ;
192
               MUL ;
193
               PUSH nat 1000000000000 ;
194
               ADD ;
195
               DIG 9 ;
196
               CAR ;
197
               GET 3 ;
198
               CAR ;
199
               MUL ;
200
               EDIV ;
201
               IF_NONE { PUSH int 149 ; FAILWITH } { CAR } ;
202
               PAIR ;
203
               PAIR ;
204
               SWAP ;
205
               PAIR ;
206
               PAIR ;
207
               DUG 3 ;
208
               DIG 2 ;
209
               DUP 4 ;
210
               GET 5 ;
211
               CDR ;
212
               CONTRACT %mint (pair (address %owner)
213
                                    (pair (nat %token_id) (nat %token_amount))) ;
214
               IF_NONE { PUSH int 175 ; FAILWITH } {} ;
215
               PUSH mutez 0 ;
216
               DUP 5 ;
217
               DIG 6 ;
218
               DUP ;
219
               GET 7 ;
220
               SWAP ;
221
               DUP ;
222
               DUG 8 ;
223
               GET 3 ;
224
               CAR ;
225
               CDR ;
226
               PAIR 3 ;
227
               TRANSFER_TOKENS ;
228
               CONS ;
229
               DUP 4 ;
230
               GET 5 ;
231
               CDR ;
232
               CONTRACT %mint (pair (address %owner)
233
                                    (pair (nat %token_id) (nat %token_amount))) ;
234
               IF_NONE { PUSH int 175 ; FAILWITH } {} ;
235
               PUSH mutez 0 ;
236
               DUP 4 ;
237
               DIG 6 ;
238
               DUP ;
239
               GET 7 ;
240
               SWAP ;
241
               DUP ;
242
               DUG 8 ;
243
               GET 3 ;
244
               CAR ;
245
               CAR ;
246
               PAIR 3 ;
247
               TRANSFER_TOKENS ;
248
               CONS ;
249
               DUG 2 ;
250
               DIG 3 ;
251
               DUP ;
252
               GET 9 ;
253
               DIG 2 ;
254
               DIG 3 ;
255
               ADD ;
256
               ADD ;
257
               UPDATE 9 ;
258
               UNPAIR ;
259
               UNPAIR ;
260
               UNPAIR ;
261
               CDR ;
262
               NOW ;
263
               PAIR ;
264
               PAIR ;
265
               PAIR ;
266
               PAIR ;
267
               SWAP }
268
             { DROP ; SWAP ; DROP } ;
269
           UNIT ;
270
           PAIR 3 } ;
271
       SWAP ;
272
       LAMBDA
273
         (pair (pair address nat)
274
               (pair (list operation)
275
                     (pair
276
                       (pair
277
                         (pair (pair timestamp (big_map (pair address nat) unit))
278
                               (pair address int))
279
                         (pair (pair nat address) (pair address nat)))
280
                       (pair (pair (pair address address) (pair address nat))
281
                             (pair (pair address address)
282
                                   (pair nat
283
                                         (pair nat
284
                                               (big_map address
285
                                                        (pair (pair bool nat)
286
                                                              (pair bool nat))))))))))
287
         (pair unit
288
               (pair (list operation)
289
                     (pair
290
                       (pair
291
                         (pair (pair timestamp (big_map (pair address nat) unit))
292
                               (pair address int))
293
                         (pair (pair nat address) (pair address nat)))
294
                       (pair (pair (pair address address) (pair address nat))
295
                             (pair (pair address address)
296
                                   (pair nat
297
                                         (pair nat
298
                                               (big_map address
299
                                                        (pair (pair bool nat)
300
                                                              (pair bool nat))))))))))
301
         { UNPAIR 3 ;
302
           SWAP ;
303
           DUP 3 ;
304
           CAR ;
305
           GET 3 ;
306
           CDR ;
307
           CONTRACT %update_stake (pair (address %address) (nat %amount)) ;
308
           IF_NONE { PUSH int 168 ; FAILWITH } {} ;
309
           PUSH mutez 0 ;
310
           DIG 3 ;
311
           TRANSFER_TOKENS ;
312
           CONS ;
313
           UNIT ;
314
           PAIR 3 } ;
315
       SWAP ;
316
       LAMBDA
317
         unit
318
         unit
319
         { DROP ; SELF_ADDRESS ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 400 ; FAILWITH } ; UNIT } ;
320
       SWAP ;
321
       LAMBDA
322
         (pair nat
323
               (pair (list operation)
324
                     (pair
325
                       (pair
326
                         (pair (pair timestamp (big_map (pair address nat) unit))
327
                               (pair address int))
328
                         (pair (pair nat address) (pair address nat)))
329
                       (pair (pair (pair address address) (pair address nat))
330
                             (pair (pair address address)
331
                                   (pair nat
332
                                         (pair nat
333
                                               (big_map address
334
                                                        (pair (pair bool nat)
335
                                                              (pair bool nat))))))))))
336
         (pair unit
337
               (pair (list operation)
338
                     (pair
339
                       (pair
340
                         (pair (pair timestamp (big_map (pair address nat) unit))
341
                               (pair address int))
342
                         (pair (pair nat address) (pair address nat)))
343
                       (pair (pair (pair address address) (pair address nat))
344
                             (pair (pair address address)
345
                                   (pair nat
346
                                         (pair nat
347
                                               (big_map address
348
                                                        (pair (pair bool nat)
349
                                                              (pair bool nat))))))))))
350
         { UNPAIR 3 ;
351
           SWAP ;
352
           DUP 3 ;
353
           CAR ;
354
           CAR ;
355
           CAR ;
356
           CDR ;
357
           DIG 2 ;
358
           SENDER ;
359
           PAIR ;
360
           MEM ;
361
           IF {} { PUSH int 401 ; FAILWITH } ;
362
           UNIT ;
363
           PAIR 3 } ;
364
       SWAP ;
365
       UNPAIR ;
366
       IF_LEFT
367
         { IF_LEFT
368
             { IF_LEFT
369
                 { IF_LEFT
370
                     { DIG 2 ;
371
                       DROP ;
372
                       DIG 2 ;
373
                       DROP ;
374
                       DIG 2 ;
375
                       DROP ;
376
                       NIL operation ;
377
                       DIG 4 ;
378
                       UNIT ;
379
                       SWAP ;
380
                       DIG 4 ;
381
                       DIG 3 ;
382
                       DIG 3 ;
383
                       PAIR 3 ;
384
                       EXEC ;
385
                       CDR ;
386
                       UNPAIR ;
387
                       DIG 3 ;
388
                       DIG 2 ;
389
                       DIG 3 ;
390
                       DIG 3 ;
391
                       DIG 3 ;
392
                       UNIT ;
393
                       SWAP ;
394
                       DIG 4 ;
395
                       DIG 3 ;
396
                       DIG 3 ;
397
                       PAIR 3 ;
398
                       EXEC ;
399
                       CDR ;
400
                       UNPAIR ;
401
                       SWAP ;
402
                       UNPAIR ;
403
                       SWAP ;
404
                       UNPAIR ;
405
                       UNPAIR ;
406
                       SWAP ;
407
                       CDR ;
408
                       SENDER ;
409
                       PAIR ;
410
                       SWAP ;
411
                       PAIR ;
412
                       PAIR ;
413
                       SWAP ;
414
                       PAIR ;
415
                       DUP ;
416
                       DUG 3 ;
417
                       GET 3 ;
418
                       CAR ;
419
                       CDR ;
420
                       CONTRACT %bailout nat ;
421
                       IF_NONE { PUSH int 588 ; FAILWITH } {} ;
422
                       PUSH mutez 0 ;
423
                       DUP 4 ;
424
                       TRANSFER_TOKENS ;
425
                       CONS ;
426
                       SELF %internal_bailout ;
427
                       PUSH mutez 0 ;
428
                       DIG 3 ;
429
                       TRANSFER_TOKENS ;
430
                       CONS }
431
                     { DIG 2 ;
432
                       DROP ;
433
                       DIG 2 ;
434
                       DROP ;
435
                       DIG 2 ;
436
                       DROP ;
437
                       NIL operation ;
438
                       DIG 4 ;
439
                       UNIT ;
440
                       SWAP ;
441
                       DIG 4 ;
442
                       DIG 3 ;
443
                       DIG 3 ;
444
                       PAIR 3 ;
445
                       EXEC ;
446
                       CDR ;
447
                       UNPAIR ;
448
                       DIG 3 ;
449
                       DIG 2 ;
450
                       DIG 3 ;
451
                       DIG 3 ;
452
                       DIG 3 ;
453
                       UNIT ;
454
                       SWAP ;
455
                       DIG 4 ;
456
                       DIG 3 ;
457
                       DIG 3 ;
458
                       PAIR 3 ;
459
                       EXEC ;
460
                       CDR ;
461
                       UNPAIR ;
462
                       SWAP ;
463
                       UNPAIR ;
464
                       SWAP ;
465
                       UNPAIR ;
466
                       UNPAIR ;
467
                       SWAP ;
468
                       CDR ;
469
                       SENDER ;
470
                       PAIR ;
471
                       SWAP ;
472
                       PAIR ;
473
                       PAIR ;
474
                       SWAP ;
475
                       PAIR ;
476
                       DUG 2 ;
477
                       SELF %internal_burn ;
478
                       PUSH mutez 0 ;
479
                       DIG 3 ;
480
                       TRANSFER_TOKENS ;
481
                       CONS } }
482
                 { IF_LEFT
483
                     { DIG 2 ;
484
                       DROP ;
485
                       DIG 2 ;
486
                       DROP ;
487
                       DIG 2 ;
488
                       DROP ;
489
                       DIG 2 ;
490
                       DROP ;
491
                       DIG 2 ;
492
                       DROP ;
493
                       SWAP ;
494
                       DUP ;
495
                       DUG 2 ;
496
                       GET 10 ;
497
                       SENDER ;
498
                       MEM ;
499
                       IF
500
                         { DROP }
501
                         { SWAP ;
502
                           DUP ;
503
                           GET 10 ;
504
                           PUSH (pair bool nat) (Pair False 0) ;
505
                           PUSH nat 0 ;
506
                           DIG 4 ;
507
                           PAIR ;
508
                           PAIR ;
509
                           SOME ;
510
                           SENDER ;
511
                           UPDATE ;
512
                           UPDATE 10 } ;
513
                       NIL operation }
514
                     { IF_LEFT
515
                         { DIG 2 ;
516
                           DROP ;
517
                           DIG 2 ;
518
                           DROP ;
519
                           DIG 2 ;
520
                           DROP ;
521
                           DIG 2 ;
522
                           DROP ;
523
                           DIG 2 ;
524
                           DROP ;
525
                           NIL operation ;
526
                           DUP 3 ;
527
                           CAR ;
528
                           CAR ;
529
                           GET 3 ;
530
                           CONTRACT %transfer (pair (address %from)
531
                                                    (pair (address %to) (nat %value))) ;
532
                           IF_NONE { PUSH int 91 ; FAILWITH } {} ;
533
                           PUSH mutez 0 ;
534
                           DUP 4 ;
535
                           SELF_ADDRESS ;
536
                           SENDER ;
537
                           PAIR 3 ;
538
                           TRANSFER_TOKENS ;
539
                           CONS ;
540
                           DIG 2 ;
541
                           DUP ;
542
                           GET 10 ;
543
                           DUP ;
544
                           SENDER ;
545
                           DUP ;
546
                           DUG 2 ;
547
                           GET ;
548
                           IF_NONE { PUSH int 441 ; FAILWITH } {} ;
549
                           UNPAIR ;
550
                           UNPAIR ;
551
                           SWAP ;
552
                           DIG 7 ;
553
                           ADD ;
554
                           SWAP ;
555
                           PAIR ;
556
                           PAIR ;
557
                           SOME ;
558
                           SWAP ;
559
                           UPDATE ;
560
                           UPDATE 10 ;
561
                           SWAP }
562
                         { NIL operation ;
563
                           DUP 4 ;
564
                           PUSH nat 0 ;
565
                           SWAP ;
566
                           DIG 4 ;
567
                           DIG 3 ;
568
                           DIG 3 ;
569
                           PAIR 3 ;
570
                           EXEC ;
571
                           UNPAIR 3 ;
572
                           DUG 8 ;
573
                           DUG 8 ;
574
                           DUG 8 ;
575
                           DUG 8 ;
576
                           DIG 7 ;
577
                           DIG 8 ;
578
                           DIG 8 ;
579
                           DIG 8 ;
580
                           DUP 3 ;
581
                           UNIT ;
582
                           EXEC ;
583
                           NIL operation ;
584
                           SWAP ;
585
                           ITER { CONS } ;
586
                           ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
587
                           DROP ;
588
                           SWAP ;
589
                           DROP ;
590
                           DIG 2 ;
591
                           DROP ;
592
                           DIG 2 ;
593
                           DROP ;
594
                           DIG 2 ;
595
                           DROP ;
596
                           DIG 2 ;
597
                           DROP ;
598
                           DIG 2 ;
599
                           DROP } } } }
600
             { IF_LEFT
601
                 { IF_LEFT
602
                     { DUP 4 ;
603
                       UNIT ;
604
                       EXEC ;
605
                       DIG 2 ;
606
                       DUP ;
607
                       GET 10 ;
608
                       SWAP ;
609
                       DUP ;
610
                       DUG 4 ;
611
                       GET 3 ;
612
                       GET 3 ;
613
                       GET ;
614
                       IF_NONE { PUSH int 613 ; FAILWITH } {} ;
615
                       PUSH nat 1 ;
616
                       DUP 5 ;
617
                       GET 3 ;
618
                       GET 4 ;
619
                       DUP 5 ;
620
                       MUL ;
621
                       EDIV ;
622
                       IF_NONE { PUSH int 615 ; FAILWITH } { CAR } ;
623
                       PUSH nat 1000000000000000000 ;
624
                       PUSH nat 1 ;
625
                       PUSH nat 2 ;
626
                       DUP 4 ;
627
                       LSR ;
628
                       DUP 4 ;
629
                       ADD ;
630
                       MUL ;
631
                       EDIV ;
632
                       IF_NONE { PUSH int 617 ; FAILWITH } { CAR } ;
633
                       DUP ;
634
                       PUSH nat 1 ;
635
                       SWAP ;
636
                       COMPARE ;
637
                       GE ;
638
                       IF {} { PUSH int 602 ; FAILWITH } ;
639
                       PUSH nat 1000000000000 ;
640
                       DUP 7 ;
641
                       CAR ;
642
                       GET 3 ;
643
                       CAR ;
644
                       DUP 5 ;
645
                       GET 4 ;
646
                       MUL ;
647
                       EDIV ;
648
                       IF_NONE { PUSH int 620 ; FAILWITH } { CAR } ;
649
                       DIG 3 ;
650
                       DUP 7 ;
651
                       CAR ;
652
                       GET 3 ;
653
                       CAR ;
654
                       PUSH nat 1000000000000 ;
655
                       DUP 8 ;
656
                       DUP 5 ;
657
                       SUB ;
658
                       ISNAT ;
659
                       IF_NONE { PUSH int 622 ; FAILWITH } {} ;
660
                       MUL ;
661
                       EDIV ;
662
                       IF_NONE { PUSH int 622 ; FAILWITH } { CAR } ;
663
                       UPDATE 4 ;
664
                       DUP ;
665
                       DUG 4 ;
666
                       UNPAIR ;
667
                       CAR ;
668
                       DUP 4 ;
669
                       DIG 6 ;
670
                       CAR ;
671
                       CDR ;
672
                       SUB ;
673
                       ISNAT ;
674
                       IF_NONE { PUSH int 623 ; FAILWITH } {} ;
675
                       SWAP ;
676
                       PAIR ;
677
                       PAIR ;
678
                       DUG 3 ;
679
                       DUP 7 ;
680
                       DUP ;
681
                       GET 10 ;
682
                       DUP 6 ;
683
                       SOME ;
684
                       DIG 9 ;
685
                       GET 3 ;
686
                       GET 3 ;
687
                       UPDATE ;
688
                       UPDATE 10 ;
689
                       DUG 6 ;
690
                       DUP 4 ;
691
                       CAR ;
692
                       CAR ;
693
                       IF
694
                         { DIG 2 ;
695
                           DROP ;
696
                           DIG 2 ;
697
                           DROP ;
698
                           DIG 2 ;
699
                           DROP ;
700
                           DIG 4 ;
701
                           DROP ;
702
                           DIG 4 ;
703
                           DROP ;
704
                           DIG 5 ;
705
                           DROP ;
706
                           DIG 5 ;
707
                           DROP ;
708
                           NIL operation ;
709
                           DIG 5 ;
710
                           PUSH nat 1 ;
711
                           DUP 7 ;
712
                           GET 3 ;
713
                           GET 4 ;
714
                           DUP 7 ;
715
                           DIG 5 ;
716
                           SUB ;
717
                           ISNAT ;
718
                           IF_NONE { PUSH int 628 ; FAILWITH } {} ;
719
                           MUL ;
720
                           EDIV ;
721
                           IF_NONE { PUSH int 628 ; FAILWITH } { CAR } ;
722
                           DUP 6 ;
723
                           GET 3 ;
724
                           GET 3 ;
725
                           PAIR ;
726
                           SWAP ;
727
                           DIG 5 ;
728
                           DIG 3 ;
729
                           DIG 3 ;
730
                           PAIR 3 ;
731
                           EXEC ;
732
                           CDR ;
733
                           UNPAIR ;
734
                           SWAP ;
735
                           DUG 3 }
736
                         { DROP ;
737
                           SWAP ;
738
                           DROP ;
739
                           SWAP ;
740
                           DROP ;
741
                           SWAP ;
742
                           DROP ;
743
                           DIG 3 ;
744
                           DROP ;
745
                           DIG 3 ;
746
                           DROP ;
747
                           DIG 3 ;
748
                           DROP ;
749
                           DIG 3 ;
750
                           DROP ;
751
                           DIG 3 ;
752
                           DROP ;
753
                           NIL operation } ;
754
                       DUP 4 ;
755
                       CAR ;
756
                       CAR ;
757
                       GET 3 ;
758
                       CONTRACT %transfer (pair (address %from)
759
                                                (pair (address %to) (nat %value))) ;
760
                       IF_NONE { PUSH int 91 ; FAILWITH } {} ;
761
                       PUSH mutez 0 ;
762
                       DIG 3 ;
763
                       DUP 6 ;
764
                       GET 3 ;
765
                       CAR ;
766
                       CDR ;
767
                       SELF_ADDRESS ;
768
                       PAIR 3 ;
769
                       TRANSFER_TOKENS ;
770
                       CONS ;
771
                       DUP 3 ;
772
                       GET 5 ;
773
                       CDR ;
774
                       CONTRACT %burn (pair (address %owner)
775
                                            (pair (nat %token_id) (nat %token_amount))) ;
776
                       IF_NONE { PUSH int 175 ; FAILWITH } {} ;
777
                       PUSH mutez 0 ;
778
                       DUP 4 ;
779
                       DIG 5 ;
780
                       DUP ;
781
                       GET 7 ;
782
                       SWAP ;
783
                       DUP ;
784
                       DUG 7 ;
785
                       GET 3 ;
786
                       CAR ;
787
                       CDR ;
788
                       PAIR 3 ;
789
                       TRANSFER_TOKENS ;
790
                       CONS ;
791
                       DUP 3 ;
792
                       DIG 2 ;
793
                       DIG 3 ;
794
                       GET 9 ;
795
                       SUB ;
796
                       ISNAT ;
797
                       IF_NONE { PUSH int 636 ; FAILWITH } {} ;
798
                       UPDATE 9 ;
799
                       SWAP }
800
                     { IF_LEFT
801
                         { DUP 4 ;
802
                           UNIT ;
803
                           EXEC ;
804
                           DROP ;
805
                           DUP ;
806
                           PUSH nat 1000001 ;
807
                           SWAP ;
808
                           COMPARE ;
809
                           GE ;
810
                           IF {} { PUSH int 602 ; FAILWITH } ;
811
                           SWAP ;
812
                           DUP ;
813
                           GET 10 ;
814
                           SWAP ;
815
                           DUP ;
816
                           DUG 3 ;
817
                           GET 3 ;
818
                           GET 3 ;
819
                           GET ;
820
                           IF_NONE { PUSH int 324 ; FAILWITH } {} ;
821
                           PUSH nat 1000000000000 ;
822
                           DUP 4 ;
823
                           CAR ;
824
                           GET 3 ;
825
                           CAR ;
826
                           DUP 3 ;
827
                           GET 4 ;
828
                           MUL ;
829
                           EDIV ;
830
                           IF_NONE { PUSH int 326 ; FAILWITH } { CAR } ;
831
                           PUSH nat 1 ;
832
                           DUP 5 ;
833
                           GET 3 ;
834
                           GET 4 ;
835
                           DUP 5 ;
836
                           DUP 4 ;
837
                           SUB ;
838
                           ISNAT ;
839
                           IF_NONE { PUSH int 327 ; FAILWITH } {} ;
840
                           MUL ;
841
                           EDIV ;
842
                           IF_NONE { PUSH int 327 ; FAILWITH } { CAR } ;
843
                           DIG 2 ;
844
                           DUP 5 ;
845
                           CAR ;
846
                           GET 3 ;
847
                           CAR ;
848
                           PUSH nat 1000000000000 ;
849
                           DUP 6 ;
850
                           DIG 5 ;
851
                           SUB ;
852
                           ISNAT ;
853
                           IF_NONE { PUSH int 329 ; FAILWITH } {} ;
854
                           MUL ;
855
                           EDIV ;
856
                           IF_NONE { PUSH int 329 ; FAILWITH } { CAR } ;
857
                           UPDATE 4 ;
858
                           SWAP ;
859
                           DUP 4 ;
860
                           DUP ;
861
                           GET 10 ;
862
                           DUP 4 ;
863
                           SOME ;
864
                           DIG 6 ;
865
                           GET 3 ;
866
                           GET 3 ;
867
                           UPDATE ;
868
                           UPDATE 10 ;
869
                           DUG 3 ;
870
                           NIL operation ;
871
                           DUP 5 ;
872
                           GET 5 ;
873
                           CDR ;
874
                           CONTRACT %burn (pair (address %owner)
875
                                                (pair (nat %token_id)
876
                                                      (nat %token_amount))) ;
877
                           IF_NONE { PUSH int 175 ; FAILWITH } {} ;
878
                           PUSH mutez 0 ;
879
                           DUP 6 ;
880
                           DIG 7 ;
881
                           DUP ;
882
                           GET 7 ;
883
                           SWAP ;
884
                           DUP ;
885
                           DUG 9 ;
886
                           GET 3 ;
887
                           GET 3 ;
888
                           PAIR 3 ;
889
                           TRANSFER_TOKENS ;
890
                           CONS ;
891
                           DUP 5 ;
892
                           DIG 4 ;
893
                           DIG 5 ;
894
                           GET 9 ;
895
                           SUB ;
896
                           ISNAT ;
897
                           IF_NONE { PUSH int 335 ; FAILWITH } {} ;
898
                           UPDATE 9 ;
899
                           DUG 3 ;
900
                           DIG 2 ;
901
                           CAR ;
902
                           CAR ;
903
                           IF
904
                             { DIG 3 ;
905
                               DROP ;
906
                               DIG 3 ;
907
                               DROP ;
908
                               DIG 4 ;
909
                               DROP ;
910
                               DIG 4 ;
911
                               DROP ;
912
                               DIG 3 ;
913
                               DIG 2 ;
914
                               DUP 4 ;
915
                               GET 3 ;
916
                               GET 3 ;
917
                               PAIR ;
918
                               SWAP ;
919
                               DUG 3 ;
920
                               PAIR 3 ;
921
                               EXEC ;
922
                               CDR ;
923
                               UNPAIR }
924
                             { SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } }
925
                         { DUP 4 ;
926
                           UNIT ;
927
                           EXEC ;
928
                           DUP 3 ;
929
                           GET 10 ;
930
                           DUP 3 ;
931
                           CAR ;
932
                           GET ;
933
                           IF_NONE { PUSH int 381 ; FAILWITH } {} ;
934
                           DUP ;
935
                           CAR ;
936
                           CDR ;
937
                           PUSH nat 1 ;
938
                           PUSH nat 2 ;
939
                           DUP 7 ;
940
                           GET 3 ;
941
                           GET 4 ;
942
                           PUSH nat 1000000000000 ;
943
                           DUP 9 ;
944
                           CAR ;
945
                           GET 3 ;
946
                           CAR ;
947
                           DUP 7 ;
948
                           GET 4 ;
949
                           MUL ;
950
                           EDIV ;
951
                           IF_NONE { PUSH int 384 ; FAILWITH } { CAR } ;
952
                           MUL ;
953
                           MUL ;
954
                           MUL ;
955
                           PUSH nat 1 ;
956
                           SWAP ;
957
                           EDIV ;
958
                           IF_NONE { PUSH int 386 ; FAILWITH } { CAR } ;
959
                           DUP ;
960
                           PUSH nat 1000000000000 ;
961
                           PUSH nat 1000000 ;
962
                           DUP 5 ;
963
                           MUL ;
964
                           MUL ;
965
                           COMPARE ;
966
                           LT ;
967
                           IF { PUSH bool True } { DUP 3 ; GET 3 } ;
968
                           IF {} { PUSH int 802 ; FAILWITH } ;
969
                           DIG 2 ;
970
                           PUSH bool True ;
971
                           UPDATE 3 ;
972
                           DUG 2 ;
973
                           PUSH nat 1000000000000000000 ;
974
                           PUSH nat 1 ;
975
                           PUSH nat 3 ;
976
                           PUSH nat 1 ;
977
                           DUP 10 ;
978
                           GET 3 ;
979
                           GET 4 ;
980
                           DUP 10 ;
981
                           CDR ;
982
                           MUL ;
983
                           EDIV ;
984
                           IF_NONE { PUSH int 392 ; FAILWITH } { CAR } ;
985
                           LSR ;
986
                           PUSH nat 1 ;
987
                           DUP 10 ;
988
                           GET 3 ;
989
                           GET 4 ;
990
                           DUP 10 ;
991
                           CDR ;
992
                           MUL ;
993
                           EDIV ;
994
                           IF_NONE { PUSH int 392 ; FAILWITH } { CAR } ;
995
                           ADD ;
996
                           MUL ;
997
                           EDIV ;
998
                           IF_NONE { PUSH int 394 ; FAILWITH } { CAR } ;
999
                           PUSH nat 1 ;
1000
                           DUP 8 ;
1001
                           GET 3 ;
1002
                           GET 4 ;
1003
                           DUP 8 ;
1004
                           CDR ;
1005
                           PUSH nat 1000000000000 ;
1006
                           DUP 11 ;
1007
                           CAR ;
1008
                           GET 3 ;
1009
                           CAR ;
1010
                           DUP 9 ;
1011
                           GET 4 ;
1012
                           MUL ;
1013
                           EDIV ;
1014
                           IF_NONE { PUSH int 384 ; FAILWITH } { CAR } ;
1015
                           SUB ;
1016
                           ISNAT ;
1017
                           IF_NONE { PUSH int 396 ; FAILWITH } {} ;
1018
                           MUL ;
1019
                           EDIV ;
1020
                           IF_NONE { PUSH int 396 ; FAILWITH } { CAR } ;
1021
                           PUSH nat 1 ;
1022
                           PUSH nat 3 ;
1023
                           DUP 3 ;
1024
                           MUL ;
1025
                           MUL ;
1026
                           PUSH nat 1000000000000 ;
1027
                           PUSH nat 1000000 ;
1028
                           DUP 5 ;
1029
                           DUP 8 ;
1030
                           SUB ;
1031
                           ISNAT ;
1032
                           IF_NONE { PUSH int 398 ; FAILWITH } {} ;
1033
                           MUL ;
1034
                           MUL ;
1035
                           COMPARE ;
1036
                           LT ;
1037
                           IF {} { PUSH int 803 ; FAILWITH } ;
1038
                           PUSH nat 1 ;
1039
                           DUP 3 ;
1040
                           COMPARE ;
1041
                           GE ;
1042
                           IF {} { PUSH int 602 ; FAILWITH } ;
1043
                           PUSH nat 1 ;
1044
                           PUSH nat 100 ;
1045
                           PUSH nat 3 ;
1046
                           DUP 4 ;
1047
                           MUL ;
1048
                           MUL ;
1049
                           MUL ;
1050
                           PUSH nat 1000000000000 ;
1051
                           PUSH nat 105 ;
1052
                           PUSH nat 1000000 ;
1053
                           DUP 6 ;
1054
                           DUP 9 ;
1055
                           SUB ;
1056
                           ISNAT ;
1057
                           IF_NONE { PUSH int 401 ; FAILWITH } {} ;
1058
                           MUL ;
1059
                           MUL ;
1060
                           MUL ;
1061
                           COMPARE ;
1062
                           GE ;
1063
                           IF { DIG 4 ; PUSH bool False ; UPDATE 3 ; DUG 4 } {} ;
1064
                           NIL operation ;
1065
                           DUP 9 ;
1066
                           GET 5 ;
1067
                           CDR ;
1068
                           CONTRACT %burn (pair (address %owner)
1069
                                                (pair (nat %token_id)
1070
                                                      (nat %token_amount))) ;
1071
                           IF_NONE { PUSH int 175 ; FAILWITH } {} ;
1072
                           PUSH mutez 0 ;
1073
                           DUP 10 ;
1074
                           CDR ;
1075
                           DIG 11 ;
1076
                           DUP ;
1077
                           GET 7 ;
1078
                           SWAP ;
1079
                           DUP ;
1080
                           DUG 13 ;
1081
                           GET 3 ;
1082
                           GET 3 ;
1083
                           PAIR 3 ;
1084
                           TRANSFER_TOKENS ;
1085
                           CONS ;
1086
                           DUP 9 ;
1087
                           DUP 9 ;
1088
                           CDR ;
1089
                           DIG 10 ;
1090
                           GET 9 ;
1091
                           SUB ;
1092
                           ISNAT ;
1093
                           IF_NONE { PUSH int 406 ; FAILWITH } {} ;
1094
                           UPDATE 9 ;
1095
                           DUG 8 ;
1096
                           DUP 6 ;
1097
                           DUP 10 ;
1098
                           CAR ;
1099
                           GET 3 ;
1100
                           CAR ;
1101
                           PUSH nat 1000000000000 ;
1102
                           DUP 11 ;
1103
                           CDR ;
1104
                           PUSH nat 1000000000000 ;
1105
                           DUP 14 ;
1106
                           CAR ;
1107
                           GET 3 ;
1108
                           CAR ;
1109
                           DIG 11 ;
1110
                           GET 4 ;
1111
                           MUL ;
1112
                           EDIV ;
1113
                           IF_NONE { PUSH int 384 ; FAILWITH } { CAR } ;
1114
                           SUB ;
1115
                           ISNAT ;
1116
                           IF_NONE { PUSH int 408 ; FAILWITH } {} ;
1117
                           MUL ;
1118
                           EDIV ;
1119
                           IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ;
1120
                           UPDATE 4 ;
1121
                           DUP ;
1122
                           DUG 6 ;
1123
                           UNPAIR ;
1124
                           CAR ;
1125
                           DUP 5 ;
1126
                           DIG 8 ;
1127
                           CAR ;
1128
                           CDR ;
1129
                           SUB ;
1130
                           ISNAT ;
1131
                           IF_NONE { PUSH int 409 ; FAILWITH } {} ;
1132
                           SWAP ;
1133
                           PAIR ;
1134
                           PAIR ;
1135
                           DUG 5 ;
1136
                           DIG 8 ;
1137
                           DUP ;
1138
                           GET 10 ;
1139
                           DUP 8 ;
1140
                           SOME ;
1141
                           DUP 11 ;
1142
                           CAR ;
1143
                           UPDATE ;
1144
                           UPDATE 10 ;
1145
                           DUG 8 ;
1146
                           DUP 6 ;
1147
                           CAR ;
1148
                           CAR ;
1149
                           IF
1150
                             { DIG 3 ;
1151
                               DROP ;
1152
                               DIG 3 ;
1153
                               DROP ;
1154
                               DIG 3 ;
1155
                               DROP ;
1156
                               DIG 3 ;
1157
                               DROP ;
1158
                               DIG 5 ;
1159
                               DROP ;
1160
                               DIG 5 ;
1161
                               DROP ;
1162
                               DIG 6 ;
1163
                               DROP ;
1164
                               DIG 6 ;
1165
                               DROP ;
1166
                               DIG 5 ;
1167
                               DIG 2 ;
1168
                               DIG 4 ;
1169
                               CAR ;
1170
                               PAIR ;
1171
                               SWAP ;
1172
                               DIG 4 ;
1173
                               DIG 3 ;
1174
                               DIG 3 ;
1175
                               PAIR 3 ;
1176
                               EXEC ;
1177
                               CDR ;
1178
                               UNPAIR ;
1179
                               SWAP ;
1180
                               DUG 2 }
1181
                             { SWAP ;
1182
                               DROP ;
1183
                               DIG 2 ;
1184
                               DROP ;
1185
                               DIG 2 ;
1186
                               DROP ;
1187
                               DIG 2 ;
1188
                               DROP ;
1189
                               DIG 2 ;
1190
                               DROP ;
1191
                               DIG 2 ;
1192
                               DROP ;
1193
                               DIG 3 ;
1194
                               DROP ;
1195
                               DIG 3 ;
1196
                               DROP ;
1197
                               DIG 3 ;
1198
                               DROP ;
1199
                               DIG 3 ;
1200
                               DROP ;
1201
                               DIG 3 ;
1202
                               DROP } ;
1203
                           DUP 3 ;
1204
                           CAR ;
1205
                           CAR ;
1206
                           GET 3 ;
1207
                           CONTRACT %transfer (pair (address %from)
1208
                                                    (pair (address %to) (nat %value))) ;
1209
                           IF_NONE { PUSH int 91 ; FAILWITH } {} ;
1210
                           PUSH mutez 0 ;
1211
                           DIG 3 ;
1212
                           DUP 5 ;
1213
                           GET 3 ;
1214
                           GET 3 ;
1215
                           SELF_ADDRESS ;
1216
                           PAIR 3 ;
1217
                           TRANSFER_TOKENS ;
1218
                           CONS } } }
1219
                 { IF_LEFT
1220
                     { DUP 4 ;
1221
                       UNIT ;
1222
                       EXEC ;
1223
                       DROP ;
1224
                       DUP ;
1225
                       PUSH nat 1000001 ;
1226
                       SWAP ;
1227
                       COMPARE ;
1228
                       GE ;
1229
                       IF {} { PUSH int 602 ; FAILWITH } ;
1230
                       SWAP ;
1231
                       DUP ;
1232
                       GET 10 ;
1233
                       SWAP ;
1234
                       DUP ;
1235
                       DUG 3 ;
1236
                       GET 3 ;
1237
                       GET 3 ;
1238
                       GET ;
1239
                       IF_NONE { PUSH int 261 ; FAILWITH } {} ;
1240
                       PUSH nat 1000000000000 ;
1241
                       DUP 4 ;
1242
                       CAR ;
1243
                       GET 3 ;
1244
                       CAR ;
1245
                       DUP 3 ;
1246
                       GET 4 ;
1247
                       MUL ;
1248
                       EDIV ;
1249
                       IF_NONE { PUSH int 264 ; FAILWITH } { CAR } ;
1250
                       PUSH nat 1 ;
1251
                       DUP 5 ;
1252
                       GET 3 ;
1253
                       GET 4 ;
1254
                       DUP 5 ;
1255
                       DIG 3 ;
1256
                       ADD ;
1257
                       MUL ;
1258
                       EDIV ;
1259
                       IF_NONE { PUSH int 265 ; FAILWITH } { CAR } ;
1260
                       PUSH nat 1 ;
1261
                       PUSH nat 3 ;
1262
                       DUP 3 ;
1263
                       MUL ;
1264
                       MUL ;
1265
                       PUSH nat 1000000000000 ;
1266
                       PUSH nat 1000000 ;
1267
                       DUP 5 ;
1268
                       CAR ;
1269
                       CDR ;
1270
                       MUL ;
1271
                       MUL ;
1272
                       COMPARE ;
1273
                       GE ;
1274
                       IF {} { PUSH int 801 ; FAILWITH } ;
1275
                       SWAP ;
1276
                       DUP ;
1277
                       GET 4 ;
1278
                       DUP 5 ;
1279
                       CAR ;
1280
                       GET 3 ;
1281
                       CAR ;
1282
                       PUSH nat 1000000000000 ;
1283
                       DUP 6 ;
1284
                       MUL ;
1285
                       EDIV ;
1286
                       IF_NONE { PUSH int 274 ; FAILWITH } { CAR } ;
1287
                       ADD ;
1288
                       UPDATE 4 ;
1289
                       SWAP ;
1290
                       DUP 4 ;
1291
                       DUP ;
1292
                       GET 10 ;
1293
                       DUP 4 ;
1294
                       SOME ;
1295
                       DIG 6 ;
1296
                       GET 3 ;
1297
                       GET 3 ;
1298
                       UPDATE ;
1299
                       UPDATE 10 ;
1300
                       DUG 3 ;
1301
                       NIL operation ;
1302
                       DUP 5 ;
1303
                       GET 5 ;
1304
                       CDR ;
1305
                       CONTRACT %mint (pair (address %owner)
1306
                                            (pair (nat %token_id) (nat %token_amount))) ;
1307
                       IF_NONE { PUSH int 175 ; FAILWITH } {} ;
1308
                       PUSH mutez 0 ;
1309
                       PUSH nat 6 ;
1310
                       DUP 7 ;
1311
                       LSR ;
1312
                       DUP 7 ;
1313
                       SUB ;
1314
                       ISNAT ;
1315
                       IF_NONE { PUSH int 272 ; FAILWITH } {} ;
1316
                       DIG 7 ;
1317
                       DUP ;
1318
                       GET 7 ;
1319
                       SWAP ;
1320
                       DUP ;
1321
                       DUG 9 ;
1322
                       GET 3 ;
1323
                       GET 3 ;
1324
                       PAIR 3 ;
1325
                       TRANSFER_TOKENS ;
1326
                       CONS ;
1327
                       DUP 5 ;
1328
                       GET 5 ;
1329
                       CDR ;
1330
                       CONTRACT %mint (pair (address %owner)
1331
                                            (pair (nat %token_id) (nat %token_amount))) ;
1332
                       IF_NONE { PUSH int 175 ; FAILWITH } {} ;
1333
                       PUSH mutez 0 ;
1334
                       PUSH nat 6 ;
1335
                       DUP 7 ;
1336
                       LSR ;
1337
                       DIG 7 ;
1338
                       DUP ;
1339
                       GET 7 ;
1340
                       SWAP ;
1341
                       DUP ;
1342
                       DUG 9 ;
1343
                       GET 3 ;
1344
                       CAR ;
1345
                       CAR ;
1346
                       PAIR 3 ;
1347
                       TRANSFER_TOKENS ;
1348
                       CONS ;
1349
                       DIG 4 ;
1350
                       DUP ;
1351
                       GET 9 ;
1352
                       DIG 5 ;
1353
                       ADD ;
1354
                       UPDATE 9 ;
1355
                       DUG 3 ;
1356
                       DIG 2 ;
1357
                       CAR ;
1358
                       CAR ;
1359
                       IF
1360
                         { DIG 3 ;
1361
                           DROP ;
1362
                           DIG 3 ;
1363
                           DROP ;
1364
                           DIG 4 ;
1365
                           DROP ;
1366
                           DIG 4 ;
1367
                           DROP ;
1368
                           DIG 3 ;
1369
                           DIG 2 ;
1370
                           DUP 4 ;
1371
                           GET 3 ;
1372
                           GET 3 ;
1373
                           PAIR ;
1374
                           SWAP ;
1375
                           DUG 3 ;
1376
                           PAIR 3 ;
1377
                           EXEC ;
1378
                           CDR ;
1379
                           UNPAIR }
1380
                         { SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } }
1381
                     { IF_LEFT
1382
                         { DUP 4 ;
1383
                           UNIT ;
1384
                           EXEC ;
1385
                           DIG 2 ;
1386
                           DUP ;
1387
                           CAR ;
1388
                           GET 5 ;
1389
                           SWAP ;
1390
                           DUP ;
1391
                           DUG 4 ;
1392
                           GET 3 ;
1393
                           GET 3 ;
1394
                           COMPARE ;
1395
                           EQ ;
1396
                           IF {} { PUSH int 401 ; FAILWITH } ;
1397
                           DUP 3 ;
1398
                           GET 10 ;
1399
                           DUP 3 ;
1400
                           CAR ;
1401
                           GET ;
1402
                           IF_NONE { PUSH int 539 ; FAILWITH } {} ;
1403
                           DUP ;
1404
                           CAR ;
1405
                           CAR ;
1406
                           IF {} { PUSH int 403 ; FAILWITH } ;
1407
                           PUSH nat 1 ;
1408
                           DUP 5 ;
1409
                           GET 3 ;
1410
                           GET 4 ;
1411
                           DUP 5 ;
1412
                           GET 3 ;
1413
                           MUL ;
1414
                           EDIV ;
1415
                           IF_NONE { PUSH int 544 ; FAILWITH } { CAR } ;
1416
                           PUSH nat 1000000000000000000 ;
1417
                           PUSH nat 1 ;
1418
                           PUSH nat 4 ;
1419
                           DUP 4 ;
1420
                           LSR ;
1421
                           DUP 4 ;
1422
                           SUB ;
1423
                           ISNAT ;
1424
                           IF_NONE { PUSH int 546 ; FAILWITH } {} ;
1425
                           MUL ;
1426
                           EDIV ;
1427
                           IF_NONE { PUSH int 546 ; FAILWITH } { CAR } ;
1428
                           DUP ;
1429
                           PUSH nat 1 ;
1430
                           SWAP ;
1431
                           COMPARE ;
1432
                           GE ;
1433
                           IF {} { PUSH int 602 ; FAILWITH } ;
1434
                           PUSH nat 1000000000000 ;
1435
                           DUP 7 ;
1436
                           CAR ;
1437
                           GET 3 ;
1438
                           CAR ;
1439
                           DUP 5 ;
1440
                           GET 4 ;
1441
                           MUL ;
1442
                           EDIV ;
1443
                           IF_NONE { PUSH int 550 ; FAILWITH } { CAR } ;
1444
                           DIG 3 ;
1445
                           DUP 7 ;
1446
                           CAR ;
1447
                           GET 3 ;
1448
                           CAR ;
1449
                           PUSH nat 1000000000000 ;
1450
                           DUP 8 ;
1451
                           GET 3 ;
1452
                           DUP 5 ;
1453
                           SUB ;
1454
                           ISNAT ;
1455
                           IF_NONE { PUSH int 553 ; FAILWITH } {} ;
1456
                           MUL ;
1457
                           EDIV ;
1458
                           IF_NONE { PUSH int 553 ; FAILWITH } { CAR } ;
1459
                           UPDATE 4 ;
1460
                           DUP ;
1461
                           DUG 4 ;
1462
                           UNPAIR ;
1463
                           CAR ;
1464
                           DUP 4 ;
1465
                           DIG 6 ;
1466
                           CAR ;
1467
                           CDR ;
1468
                           SUB ;
1469
                           ISNAT ;
1470
                           IF_NONE { PUSH int 554 ; FAILWITH } {} ;
1471
                           SWAP ;
1472
                           PAIR ;
1473
                           PAIR ;
1474
                           DUG 3 ;
1475
                           DIG 6 ;
1476
                           DUP ;
1477
                           GET 10 ;
1478
                           DUP 6 ;
1479
                           SOME ;
1480
                           DUP 9 ;
1481
                           CAR ;
1482
                           UPDATE ;
1483
                           UPDATE 10 ;
1484
                           DUG 6 ;
1485
                           DUP 4 ;
1486
                           CAR ;
1487
                           CAR ;
1488
                           IF
1489
                             { DIG 2 ;
1490
                               DROP ;
1491
                               DIG 2 ;
1492
                               DROP ;
1493
                               DIG 2 ;
1494
                               DROP ;
1495
                               DIG 4 ;
1496
                               DROP ;
1497
                               DIG 4 ;
1498
                               DROP ;
1499
                               DIG 5 ;
1500
                               DROP ;
1501
                               DIG 5 ;
1502
                               DROP ;
1503
                               NIL operation ;
1504
                               DIG 5 ;
1505
                               DUP 6 ;
1506
                               GET 3 ;
1507
                               GET 4 ;
1508
                               DUP 6 ;
1509
                               GET 3 ;
1510
                               DIG 4 ;
1511
                               SUB ;
1512
                               ISNAT ;
1513
                               IF_NONE { PUSH int 559 ; FAILWITH } {} ;
1514
                               MUL ;
1515
                               DUP 5 ;
1516
                               CAR ;
1517
                               PAIR ;
1518
                               SWAP ;
1519
                               DIG 5 ;
1520
                               DIG 3 ;
1521
                               DIG 3 ;
1522
                               PAIR 3 ;
1523
                               EXEC ;
1524
                               CDR ;
1525
                               UNPAIR ;
1526
                               SWAP ;
1527
                               DUG 3 }
1528
                             { DROP ;
1529
                               SWAP ;
1530
                               DROP ;
1531
                               SWAP ;
1532
                               DROP ;
1533
                               SWAP ;
1534
                               DROP ;
1535
                               DIG 3 ;
1536
                               DROP ;
1537
                               DIG 3 ;
1538
                               DROP ;
1539
                               DIG 3 ;
1540
                               DROP ;
1541
                               DIG 3 ;
1542
                               DROP ;
1543
                               DIG 3 ;
1544
                               DROP ;
1545
                               NIL operation } ;
1546
                           DUP 4 ;
1547
                           CAR ;
1548
                           CAR ;
1549
                           GET 3 ;
1550
                           CONTRACT %transfer (pair (address %from)
1551
                                                    (pair (address %to) (nat %value))) ;
1552
                           IF_NONE { PUSH int 91 ; FAILWITH } {} ;
1553
                           PUSH mutez 0 ;
1554
                           DIG 3 ;
1555
                           DUP 5 ;
1556
                           GET 4 ;
1557
                           SELF_ADDRESS ;
1558
                           PAIR 3 ;
1559
                           TRANSFER_TOKENS ;
1560
                           CONS ;
1561
                           DUP 3 ;
1562
                           GET 5 ;
1563
                           CDR ;
1564
                           CONTRACT %burn (pair (address %owner)
1565
                                                (pair (nat %token_id)
1566
                                                      (nat %token_amount))) ;
1567
                           IF_NONE { PUSH int 175 ; FAILWITH } {} ;
1568
                           PUSH mutez 0 ;
1569
                           DUP 4 ;
1570
                           GET 3 ;
1571
                           DIG 5 ;
1572
                           DUP ;
1573
                           GET 7 ;
1574
                           SWAP ;
1575
                           DUP ;
1576
                           DUG 7 ;
1577
                           GET 3 ;
1578
                           GET 3 ;
1579
                           PAIR 3 ;
1580
                           TRANSFER_TOKENS ;
1581
                           CONS ;
1582
                           DUP 3 ;
1583
                           DIG 2 ;
1584
                           GET 3 ;
1585
                           DIG 3 ;
1586
                           GET 9 ;
1587
                           SUB ;
1588
                           ISNAT ;
1589
                           IF_NONE { PUSH int 567 ; FAILWITH } {} ;
1590
                           UPDATE 9 ;
1591
                           SWAP }
1592
                         { DUP 4 ;
1593
                           UNIT ;
1594
                           EXEC ;
1595
                           NIL operation ;
1596
                           DUP 3 ;
1597
                           ITER { DUP 5 ;
1598
                                  GET 10 ;
1599
                                  SWAP ;
1600
                                  DUP ;
1601
                                  DUG 2 ;
1602
                                  GET ;
1603
                                  IF_NONE { PUSH int 657 ; FAILWITH } {} ;
1604
                                  CAR ;
1605
                                  CAR ;
1606
                                  IF
1607
                                    { DUP 8 ;
1608
                                      PUSH nat 1000000000000 ;
1609
                                      DIG 6 ;
1610
                                      DUP ;
1611
                                      GET 3 ;
1612
                                      GET 4 ;
1613
                                      SWAP ;
1614
                                      DUP ;
1615
                                      CAR ;
1616
                                      GET 3 ;
1617
                                      CAR ;
1618
                                      SWAP ;
1619
                                      DUP ;
1620
                                      DUG 9 ;
1621
                                      GET 10 ;
1622
                                      DUP 6 ;
1623
                                      GET ;
1624
                                      IF_NONE { PUSH int 658 ; FAILWITH } {} ;
1625
                                      GET 4 ;
1626
                                      MUL ;
1627
                                      MUL ;
1628
                                      EDIV ;
1629
                                      IF_NONE { PUSH int 658 ; FAILWITH } { CAR } ;
1630
                                      DIG 2 ;
1631
                                      PAIR ;
1632
                                      SWAP ;
1633
                                      DIG 5 ;
1634
                                      DIG 3 ;
1635
                                      DIG 3 ;
1636
                                      PAIR 3 ;
1637
                                      EXEC ;
1638
                                      CDR ;
1639
                                      UNPAIR ;
1640
                                      DUG 8 ;
1641
                                      DUG 8 ;
1642
                                      DUG 8 ;
1643
                                      DUG 8 ;
1644
                                      DIG 6 ;
1645
                                      DIG 8 ;
1646
                                      DIG 8 ;
1647
                                      DIG 8 }
1648
                                    { DROP } } ;
1649
                           SWAP ;
1650
                           DROP ;
1651
                           SWAP ;
1652
                           DROP ;
1653
                           DIG 2 ;
1654
                           DROP ;
1655
                           DIG 2 ;
1656
                           DROP ;
1657
                           DIG 2 ;
1658
                           DROP ;
1659
                           DIG 2 ;
1660
                           DROP ;
1661
                           DIG 2 ;
1662
                           DROP } } } } }
1663
         { IF_LEFT
1664
             { IF_LEFT
1665
                 { IF_LEFT
1666
                     { DIG 2 ;
1667
                       DROP ;
1668
                       DIG 3 ;
1669
                       DROP ;
1670
                       DIG 3 ;
1671
                       DROP ;
1672
                       DIG 3 ;
1673
                       DROP ;
1674
                       DIG 2 ;
1675
                       UNIT ;
1676
                       EXEC ;
1677
                       DROP ;
1678
                       SWAP ;
1679
                       DUP ;
1680
                       GET 10 ;
1681
                       SWAP ;
1682
                       DUP ;
1683
                       DUG 3 ;
1684
                       GET 3 ;
1685
                       GET 3 ;
1686
                       GET ;
1687
                       IF_NONE { PUSH int 479 ; FAILWITH } {} ;
1688
                       PUSH nat 1 ;
1689
                       PUSH nat 3 ;
1690
                       DIG 4 ;
1691
                       DUP ;
1692
                       GET 3 ;
1693
                       GET 4 ;
1694
                       SWAP ;
1695
                       DUP ;
1696
                       DUG 6 ;
1697
                       CAR ;
1698
                       GET 3 ;
1699
                       CAR ;
1700
                       DUP 5 ;
1701
                       GET 4 ;
1702
                       MUL ;
1703
                       MUL ;
1704
                       MUL ;
1705
                       MUL ;
1706
                       PUSH nat 1 ;
1707
                       PUSH nat 1000000000000 ;
1708
                       PUSH nat 1000000 ;
1709
                       PUSH nat 1000000000000 ;
1710
                       DUP 7 ;
1711
                       DUP 7 ;
1712
                       CAR ;
1713
                       CDR ;
1714
                       SUB ;
1715
                       ISNAT ;
1716
                       IF_NONE { PUSH int 481 ; FAILWITH } {} ;
1717
                       MUL ;
1718
                       MUL ;
1719
                       MUL ;
1720
                       MUL ;
1721
                       COMPARE ;
1722
                       GE ;
1723
                       IF {} { PUSH int 801 ; FAILWITH } ;
1724
                       DUP ;
1725
                       UNPAIR ;
1726
                       CAR ;
1727
                       DUP 4 ;
1728
                       DIG 3 ;
1729
                       CAR ;
1730
                       CDR ;
1731
                       SUB ;
1732
                       ISNAT ;
1733
                       IF_NONE { PUSH int 481 ; FAILWITH } {} ;
1734
                       SWAP ;
1735
                       PAIR ;
1736
                       PAIR ;
1737
                       DUP 3 ;
1738
                       DUP ;
1739
                       GET 10 ;
1740
                       DIG 2 ;
1741
                       SOME ;
1742
                       DIG 4 ;
1743
                       GET 3 ;
1744
                       GET 3 ;
1745
                       UPDATE ;
1746
                       UPDATE 10 ;
1747
                       SWAP ;
1748
                       NIL operation ;
1749
                       DUP 3 ;
1750
                       CAR ;
1751
                       CAR ;
1752
                       GET 3 ;
1753
                       CONTRACT %transfer (pair (address %from)
1754
                                                (pair (address %to) (nat %value))) ;
1755
                       IF_NONE { PUSH int 91 ; FAILWITH } {} ;
1756
                       PUSH mutez 0 ;
1757
                       DIG 3 ;
1758
                       DUP 5 ;
1759
                       GET 3 ;
1760
                       GET 3 ;
1761
                       SELF_ADDRESS ;
1762
                       PAIR 3 ;
1763
                       TRANSFER_TOKENS ;
1764
                       CONS }
1765
                     { IF_LEFT
1766
                         { DIG 2 ;
1767
                           DROP ;
1768
                           DIG 2 ;
1769
                           DROP ;
1770
                           DIG 2 ;
1771
                           DROP ;
1772
                           NIL operation ;
1773
                           DIG 4 ;
1774
                           UNIT ;
1775
                           SWAP ;
1776
                           DIG 4 ;
1777
                           DIG 3 ;
1778
                           DIG 3 ;
1779
                           PAIR 3 ;
1780
                           EXEC ;
1781
                           CDR ;
1782
                           UNPAIR ;
1783
                           DIG 3 ;
1784
                           DIG 2 ;
1785
                           DIG 3 ;
1786
                           DIG 3 ;
1787
                           DIG 3 ;
1788
                           UNIT ;
1789
                           SWAP ;
1790
                           DIG 4 ;
1791
                           DIG 3 ;
1792
                           DIG 3 ;
1793
                           PAIR 3 ;
1794
                           EXEC ;
1795
                           CDR ;
1796
                           UNPAIR ;
1797
                           SWAP ;
1798
                           UNPAIR ;
1799
                           SWAP ;
1800
                           UNPAIR ;
1801
                           UNPAIR ;
1802
                           SWAP ;
1803
                           CDR ;
1804
                           SENDER ;
1805
                           PAIR ;
1806
                           SWAP ;
1807
                           PAIR ;
1808
                           PAIR ;
1809
                           SWAP ;
1810
                           PAIR ;
1811
                           DUG 2 ;
1812
                           SELF %internal_liquidate ;
1813
                           PUSH mutez 0 ;
1814
                           DIG 3 ;
1815
                           TRANSFER_TOKENS ;
1816
                           CONS }
1817
                         { DIG 2 ;
1818
                           DROP ;
1819
                           DIG 2 ;
1820
                           DROP ;
1821
                           DIG 2 ;
1822
                           DROP ;
1823
                           NIL operation ;
1824
                           DIG 4 ;
1825
                           UNIT ;
1826
                           SWAP ;
1827
                           DIG 4 ;
1828
                           DIG 3 ;
1829
                           DIG 3 ;
1830
                           PAIR 3 ;
1831
                           EXEC ;
1832
                           CDR ;
1833
                           UNPAIR ;
1834
                           DIG 3 ;
1835
                           DIG 2 ;
1836
                           DIG 3 ;
1837
                           DIG 3 ;
1838
                           DIG 3 ;
1839
                           UNIT ;
1840
                           SWAP ;
1841
                           DIG 4 ;
1842
                           DIG 3 ;
1843
                           DIG 3 ;
1844
                           PAIR 3 ;
1845
                           EXEC ;
1846
                           CDR ;
1847
                           UNPAIR ;
1848
                           SWAP ;
1849
                           UNPAIR ;
1850
                           SWAP ;
1851
                           UNPAIR ;
1852
                           UNPAIR ;
1853
                           SWAP ;
1854
                           CDR ;
1855
                           SENDER ;
1856
                           PAIR ;
1857
                           SWAP ;
1858
                           PAIR ;
1859
                           PAIR ;
1860
                           SWAP ;
1861
                           PAIR ;
1862
                           DUG 2 ;
1863
                           SELF %internal_mint ;
1864
                           PUSH mutez 0 ;
1865
                           DIG 3 ;
1866
                           TRANSFER_TOKENS ;
1867
                           CONS } } }
1868
                 { IF_LEFT
1869
                     { DIG 3 ;
1870
                       DROP ;
1871
                       DIG 3 ;
1872
                       DROP ;
1873
                       DIG 3 ;
1874
                       DROP ;
1875
                       DIG 3 ;
1876
                       DROP ;
1877
                       NIL operation ;
1878
                       DIG 3 ;
1879
                       DUP 3 ;
1880
                       CDR ;
1881
                       SWAP ;
1882
                       DIG 4 ;
1883
                       DIG 3 ;
1884
                       DIG 3 ;
1885
                       PAIR 3 ;
1886
                       EXEC ;
1887
                       CDR ;
1888
                       UNPAIR ;
1889
                       SWAP ;
1890
                       UNPAIR ;
1891
                       UNPAIR ;
1892
                       UNPAIR ;
1893
                       UNPAIR ;
1894
                       SWAP ;
1895
                       NONE unit ;
1896
                       DIG 7 ;
1897
                       UPDATE ;
1898
                       SWAP ;
1899
                       PAIR ;
1900
                       PAIR ;
1901
                       PAIR ;
1902
                       PAIR ;
1903
                       SWAP }
1904
                     { IF_LEFT
1905
                         { DIG 3 ;
1906
                           DROP ;
1907
                           DIG 3 ;
1908
                           DROP ;
1909
                           DIG 3 ;
1910
                           DROP ;
1911
                           DIG 3 ;
1912
                           DROP ;
1913
                           NIL operation ;
1914
                           DIG 3 ;
1915
                           DUP 3 ;
1916
                           CDR ;
1917
                           SWAP ;
1918
                           DIG 4 ;
1919
                           DIG 3 ;
1920
                           DIG 3 ;
1921
                           PAIR 3 ;
1922
                           EXEC ;
1923
                           CDR ;
1924
                           UNPAIR ;
1925
                           SWAP ;
1926
                           UNPAIR ;
1927
                           UNPAIR ;
1928
                           UNPAIR ;
1929
                           UNPAIR ;
1930
                           SWAP ;
1931
                           PUSH (option unit) (Some Unit) ;
1932
                           DIG 7 ;
1933
                           UPDATE ;
1934
                           SWAP ;
1935
                           PAIR ;
1936
                           PAIR ;
1937
                           PAIR ;
1938
                           PAIR ;
1939
                           SWAP }
1940
                         { DIG 3 ;
1941
                           DROP ;
1942
                           DIG 3 ;
1943
                           DROP ;
1944
                           DIG 3 ;
1945
                           DROP ;
1946
                           DIG 3 ;
1947
                           DROP ;
1948
                           NIL operation ;
1949
                           DIG 3 ;
1950
                           PUSH nat 0 ;
1951
                           SWAP ;
1952
                           DIG 4 ;
1953
                           DIG 3 ;
1954
                           DIG 3 ;
1955
                           PAIR 3 ;
1956
                           EXEC ;
1957
                           CDR ;
1958
                           UNPAIR ;
1959
                           SWAP ;
1960
                           UNPAIR ;
1961
                           SWAP ;
1962
                           UNPAIR ;
1963
                           SWAP ;
1964
                           UNPAIR ;
1965
                           CDR ;
1966
                           DUP 6 ;
1967
                           GET 6 ;
1968
                           PAIR ;
1969
                           PAIR ;
1970
                           SWAP ;
1971
                           CDR ;
1972
                           DUP 5 ;
1973
                           GET 3 ;
1974
                           DUP 6 ;
1975
                           GET 5 ;
1976
                           SWAP ;
1977
                           PAIR ;
1978
                           PAIR ;
1979
                           PAIR ;
1980
                           SWAP ;
1981
                           UNPAIR ;
1982
                           SWAP ;
1983
                           UNPAIR ;
1984
                           CAR ;
1985
                           DUP 6 ;
1986
                           CAR ;
1987
                           CAR ;
1988
                           SWAP ;
1989
                           PAIR ;
1990
                           SWAP ;
1991
                           CDR ;
1992
                           DIG 5 ;
1993
                           CAR ;
1994
                           CDR ;
1995
                           PAIR ;
1996
                           SWAP ;
1997
                           PAIR ;
1998
                           SWAP ;
1999
                           PAIR ;
2000
                           PAIR ;
2001
                           SWAP } } } }
2002
             { IF_LEFT
2003
                 { IF_LEFT
2004
                     { DIG 3 ;
2005
                       DROP ;
2006
                       DIG 3 ;
2007
                       DROP ;
2008
                       DIG 4 ;
2009
                       DROP ;
2010
                       NIL operation ;
2011
                       DIG 3 ;
2012
                       PUSH nat 0 ;
2013
                       SWAP ;
2014
                       DIG 4 ;
2015
                       DIG 3 ;
2016
                       DIG 3 ;
2017
                       PAIR 3 ;
2018
                       EXEC ;
2019
                       CDR ;
2020
                       UNPAIR ;
2021
                       DIG 3 ;
2022
                       DIG 2 ;
2023
                       DIG 3 ;
2024
                       DIG 3 ;
2025
                       DIG 3 ;
2026
                       UNIT ;
2027
                       SWAP ;
2028
                       DIG 4 ;
2029
                       DIG 3 ;
2030
                       DIG 3 ;
2031
                       PAIR 3 ;
2032
                       EXEC ;
2033
                       CDR ;
2034
                       UNPAIR ;
2035
                       SWAP ;
2036
                       UNPAIR ;
2037
                       UNPAIR ;
2038
                       SWAP ;
2039
                       UNPAIR ;
2040
                       SWAP ;
2041
                       CAR ;
2042
                       DIG 5 ;
2043
                       SWAP ;
2044
                       PAIR ;
2045
                       SWAP ;
2046
                       PAIR ;
2047
                       SWAP ;
2048
                       PAIR ;
2049
                       PAIR ;
2050
                       SWAP }
2051
                     { IF_LEFT
2052
                         { DIG 2 ;
2053
                           DROP ;
2054
                           DIG 2 ;
2055
                           DROP ;
2056
                           DIG 2 ;
2057
                           DROP ;
2058
                           DIG 2 ;
2059
                           DROP ;
2060
                           DIG 2 ;
2061
                           DROP ;
2062
                           SWAP ;
2063
                           DUP ;
2064
                           DUG 2 ;
2065
                           GET 5 ;
2066
                           CAR ;
2067
                           SENDER ;
2068
                           COMPARE ;
2069
                           EQ ;
2070
                           IF
2071
                             {}
2072
                             { PUSH string "WrongCondition: sp.sender == self.data.target_price_oracle" ;
2073
                               FAILWITH } ;
2074
                           SWAP ;
2075
                           UNPAIR ;
2076
                           SWAP ;
2077
                           UNPAIR ;
2078
                           UNPAIR ;
2079
                           SWAP ;
2080
                           CAR ;
2081
                           DIG 4 ;
2082
                           SWAP ;
2083
                           PAIR ;
2084
                           SWAP ;
2085
                           PAIR ;
2086
                           PAIR ;
2087
                           SWAP ;
2088
                           PAIR ;
2089
                           NIL operation }
2090
                         { DIG 2 ;
2091
                           DROP ;
2092
                           DIG 2 ;
2093
                           DROP ;
2094
                           DIG 2 ;
2095
                           DROP ;
2096
                           NIL operation ;
2097
                           DIG 4 ;
2098
                           UNIT ;
2099
                           SWAP ;
2100
                           DIG 4 ;
2101
                           DIG 3 ;
2102
                           DIG 3 ;
2103
                           PAIR 3 ;
2104
                           EXEC ;
2105
                           CDR ;
2106
                           UNPAIR ;
2107
                           DIG 3 ;
2108
                           DIG 2 ;
2109
                           DIG 3 ;
2110
                           DIG 3 ;
2111
                           DIG 3 ;
2112
                           UNIT ;
2113
                           SWAP ;
2114
                           DIG 4 ;
2115
                           DIG 3 ;
2116
                           DIG 3 ;
2117
                           PAIR 3 ;
2118
                           EXEC ;
2119
                           CDR ;
2120
                           UNPAIR ;
2121
                           SWAP ;
2122
                           UNPAIR ;
2123
                           SWAP ;
2124
                           UNPAIR ;
2125
                           UNPAIR ;
2126
                           SWAP ;
2127
                           CDR ;
2128
                           SENDER ;
2129
                           PAIR ;
2130
                           SWAP ;
2131
                           PAIR ;
2132
                           PAIR ;
2133
                           SWAP ;
2134
                           PAIR ;
2135
                           DUG 2 ;
2136
                           SELF %internal_settle_with_vault ;
2137
                           PUSH mutez 0 ;
2138
                           DIG 3 ;
2139
                           TRANSFER_TOKENS ;
2140
                           CONS } } }
2141
                 { IF_LEFT
2142
                     { DIG 2 ;
2143
                       DROP ;
2144
                       DIG 2 ;
2145
                       DROP ;
2146
                       DIG 2 ;
2147
                       DROP ;
2148
                       NIL operation ;
2149
                       DIG 4 ;
2150
                       UNIT ;
2151
                       SWAP ;
2152
                       DIG 4 ;
2153
                       DIG 3 ;
2154
                       DIG 3 ;
2155
                       PAIR 3 ;
2156
                       EXEC ;
2157
                       CDR ;
2158
                       UNPAIR ;
2159
                       DIG 3 ;
2160
                       DIG 2 ;
2161
                       DIG 3 ;
2162
                       DIG 3 ;
2163
                       DIG 3 ;
2164
                       UNIT ;
2165
                       SWAP ;
2166
                       DIG 4 ;
2167
                       DIG 3 ;
2168
                       DIG 3 ;
2169
                       PAIR 3 ;
2170
                       EXEC ;
2171
                       CDR ;
2172
                       UNPAIR ;
2173
                       SWAP ;
2174
                       DUG 2 ;
2175
                       SELF %internal_touch ;
2176
                       PUSH mutez 0 ;
2177
                       DIG 3 ;
2178
                       TRANSFER_TOKENS ;
2179
                       CONS }
2180
                     { IF_LEFT
2181
                         { DROP ;
2182
                           SWAP ;
2183
                           DROP ;
2184
                           SWAP ;
2185
                           DROP ;
2186
                           SWAP ;
2187
                           DROP ;
2188
                           DIG 2 ;
2189
                           DROP ;
2190
                           NIL operation ;
2191
                           DIG 2 ;
2192
                           UNIT ;
2193
                           SWAP ;
2194
                           DUG 3 ;
2195
                           PAIR 3 ;
2196
                           EXEC ;
2197
                           CDR ;
2198
                           UNPAIR }
2199
                         { DIG 2 ;
2200
                           DROP ;
2201
                           DIG 2 ;
2202
                           DROP ;
2203
                           DIG 2 ;
2204
                           DROP ;
2205
                           NIL operation ;
2206
                           DIG 4 ;
2207
                           UNIT ;
2208
                           SWAP ;
2209
                           DIG 4 ;
2210
                           DIG 3 ;
2211
                           DIG 3 ;
2212
                           PAIR 3 ;
2213
                           EXEC ;
2214
                           CDR ;
2215
                           UNPAIR ;
2216
                           DIG 3 ;
2217
                           DIG 2 ;
2218
                           DIG 3 ;
2219
                           DIG 3 ;
2220
                           DIG 3 ;
2221
                           UNIT ;
2222
                           SWAP ;
2223
                           DIG 4 ;
2224
                           DIG 3 ;
2225
                           DIG 3 ;
2226
                           PAIR 3 ;
2227
                           EXEC ;
2228
                           CDR ;
2229
                           UNPAIR ;
2230
                           SWAP ;
2231
                           UNPAIR ;
2232
                           SWAP ;
2233
                           UNPAIR ;
2234
                           UNPAIR ;
2235
                           SWAP ;
2236
                           CDR ;
2237
                           SENDER ;
2238
                           PAIR ;
2239
                           SWAP ;
2240
                           PAIR ;
2241
                           PAIR ;
2242
                           SWAP ;
2243
                           PAIR ;
2244
                           DUG 2 ;
2245
                           SELF %internal_withdraw ;
2246
                           PUSH mutez 0 ;
2247
                           DIG 3 ;
2248
                           TRANSFER_TOKENS ;
2249
                           CONS } } } } } ;
2250
       NIL operation ;
2251
       SWAP ;
2252
       ITER { CONS } ;
2253
       PAIR }