BCD

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