x
834
1786
parameter (or (or (or (or (nat %bailout) (or (nat %burn) (pair %create_vault (option %baker key_hash) (contract %contract_address_callback address)))) (or (lambda %execute unit (list operation)) (or (unit %interest_rate_update) (nat %internal_bailout)))) (or (or (nat %internal_burn) (or (unit %internal_interest_rate_update) (pair %internal_liquidate (address %vault_owner) (nat %token_amount)))) (or (nat %internal_mint) (or (pair %internal_settle_with_vault (address %vault_owner) (pair (nat %token_amount) (address %recipient))) (mutez %internal_withdraw))))) (or (or (or (pair %liquidate (address %vault_owner) (nat %token_amount)) (or (nat %mint) (pair %remove_administrator (address %administrator_to_remove) (nat %token_id)))) (or (pair %set_administrator (address %administrator_to_set) (nat %token_id)) (or (pair %set_contracts (pair (address %governance_token_contract) (pair (address %observed_price_oracle) (address %options_contract))) (pair (address %reward_pool_contract) (pair (address %savings_pool_contract) (address %target_price_oracle)))) (nat %set_observed_price)))) (or (or (nat %set_target_price) (or (mutez %set_vault_balance) (option %set_vault_delegate key_hash))) (or (pair %settle_with_vault (address %vault_owner) (pair (nat %token_amount) (address %recipient))) (or (unit %update) (mutez %withdraw))))));storage (pair (pair (pair (pair (timestamp %accrual_update_timestamp) (big_map %administrators (pair (address %owner) (nat %token_id)) unit)) (pair (nat %compound_interest_rate) (address %governance_token_contract))) (pair (pair (timestamp %last_update_timestamp) (nat %observed_price)) (pair (address %observed_price_oracle) (pair (address %options_contract) (nat %reference_interest_rate))))) (pair (pair (pair (address %reward_pool_contract) (address %savings_pool_contract)) (pair (address %sender) (pair (nat %target_price) (address %target_price_oracle)))) (pair (pair (address %token_contract) (nat %token_id)) (pair (nat %total_supply) (pair (big_map %vault_contexts address (pair (pair (address %address) (mutez %balance)) (pair (bool %is_being_liquidated) (nat %minted)))) (big_map %vault_lookup address address))))));code { CAST (pair (or (or (or (or nat (or nat (pair (option key_hash) (contract address)))) (or (lambda unit (list operation)) (or unit nat))) (or (or nat (or unit (pair address nat))) (or nat (or (pair address (pair nat address)) mutez)))) (or (or (or (pair address nat) (or nat (pair address nat))) (or (pair address nat) (or (pair (pair address (pair address address)) (pair address (pair address address))) nat))) (or (or nat (or mutez (option key_hash))) (or (pair address (pair nat address)) (or unit mutez))))) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address))))))) ; LAMBDA (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address))))))) (pair (list operation) (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address)))))))) { NIL operation ; SWAP ; CDR ; DUP ; DUG 2 ; CAR ; GET 5 ; CONTRACT %get_price (contract nat) ; IF_NONE { PUSH int 50 ; FAILWITH } {} ; PUSH mutez 0 ; SELF_ADDRESS ; CONTRACT %set_observed_price nat ; IF_NONE { PUSH int 52 ; FAILWITH } {} ; TRANSFER_TOKENS ; CONS ; SWAP ; UNIT ; DIG 2 ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address))))))) (pair (list operation) (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address)))))))) { NIL operation ; SWAP ; CDR ; DUP ; DUG 2 ; GET 3 ; GET 6 ; CONTRACT %get_price (contract nat) ; IF_NONE { PUSH int 50 ; FAILWITH } {} ; PUSH mutez 0 ; SELF_ADDRESS ; CONTRACT %set_target_price nat ; IF_NONE { PUSH int 52 ; FAILWITH } {} ; TRANSFER_TOKENS ; CONS ; SWAP ; UNIT ; DIG 2 ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address))))))) (pair (list operation) (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address)))))))) { NIL operation ; SWAP ; DUP ; DUG 2 ; CDR ; DUP ; CAR ; CAR ; CAR ; CAR ; NOW ; SUB ; ISNAT ; IF_NONE { PUSH int 146 ; FAILWITH } {} ; DUP ; PUSH nat 0 ; COMPARE ; LT ; IF { DIG 3 ; DROP ; PUSH nat 1000000000000 ; DUP 3 ; GET 7 ; DUP 3 ; DUP 5 ; CAR ; GET 8 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 149 ; FAILWITH } { CAR } ; PUSH nat 1000000000000 ; DUP 4 ; GET 7 ; DUP 4 ; PUSH nat 316 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 151 ; FAILWITH } { CAR } ; DUP 4 ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; CDR ; PUSH nat 1000000000000 ; DIG 7 ; PUSH nat 316 ; DUP 10 ; CAR ; GET 8 ; ADD ; MUL ; PUSH nat 1000000000000 ; ADD ; DIG 8 ; CAR ; CAR ; GET 3 ; MUL ; EDIV ; IF_NONE { PUSH int 155 ; FAILWITH } { CAR } ; PAIR ; SWAP ; PAIR ; PAIR ; PAIR ; DUG 2 ; DIG 3 ; DUP 4 ; GET 5 ; CAR ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 101 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 5 ; DIG 6 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 8 ; GET 3 ; CAR ; CDR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 4 ; GET 5 ; CAR ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 101 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DIG 6 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 8 ; GET 3 ; CAR ; CAR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 3 ; DIG 2 ; DUP ; GET 7 ; DIG 2 ; DIG 3 ; ADD ; ADD ; UPDATE 7 ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; NOW ; PAIR ; PAIR ; PAIR ; PAIR } { DROP ; DIG 2 ; DROP } ; UNIT ; DIG 2 ; PAIR 3 } ; SWAP ; LAMBDA (pair (pair address nat) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address))))))) (pair (list operation) (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address)))))))) { NIL operation ; SWAP ; DUP ; DUG 2 ; CDR ; DUP ; DUG 2 ; CAR ; CAR ; GET 4 ; CONTRACT %update_stake (pair address nat) ; IF_NONE { PUSH int 174 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; CAR ; TRANSFER_TOKENS ; CONS ; SWAP ; UNIT ; DIG 2 ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address))))))) (pair (list operation) (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address)))))))) { NIL operation ; SWAP ; CDR ; SELF_ADDRESS ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 400 ; FAILWITH } ; UNIT ; DIG 2 ; PAIR 3 } ; SWAP ; LAMBDA (pair nat (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address))))))) (pair (list operation) (pair unit (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair timestamp nat) (pair address (pair address nat)))) (pair (pair (pair address address) (pair address (pair nat address))) (pair (pair address nat) (pair nat (pair (big_map address (pair (pair address mutez) (pair bool nat))) (big_map address address)))))))) { NIL operation ; SWAP ; DUP ; DUG 2 ; CDR ; DUP ; CAR ; CAR ; CAR ; CDR ; DIG 3 ; CAR ; SENDER ; PAIR ; MEM ; IF {} { PUSH int 401 ; FAILWITH } ; UNIT ; DIG 2 ; PAIR 3 } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { DUP 7 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DUP 8 ; DIG 4 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 4 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUP ; DUG 3 ; GET 3 ; CAR ; CDR ; CONTRACT %bailout nat ; IF_NONE { PUSH int 644 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; TRANSFER_TOKENS ; CONS ; SELF %internal_bailout ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { IF_LEFT { DUP 7 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DUP 8 ; DIG 4 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 4 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_burn ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 9 ; SENDER ; MEM ; IF { NIL operation ; DUP 3 ; GET 9 ; SENDER ; GET ; IF_NONE { PUSH int 299 ; FAILWITH } {} ; CAR ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 299 ; FAILWITH } {} ; AMOUNT ; UNIT ; TRANSFER_TOKENS ; CONS } { SELF_ADDRESS ; AMOUNT ; DUP 3 ; CAR ; CREATE_CONTRACT { parameter (or (unit %default) (or (option %set_delegate key_hash) (pair %withdraw (address %recipient) (mutez %amount)))) ; storage address ; code { CAST (pair (or unit (or (option key_hash) (pair address mutez))) address) ; UNPAIR ; IF_LEFT { DROP ; DUP ; CONTRACT %set_vault_balance mutez ; IF_NONE { PUSH int 64 ; FAILWITH } {} ; NIL operation ; SWAP ; PUSH mutez 0 ; BALANCE ; TRANSFER_TOKENS ; CONS } { IF_LEFT { SWAP ; DUP ; DUG 2 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; SET_DELEGATE ; NIL operation ; SWAP ; CONS ; SELF_ADDRESS ; CONTRACT unit ; IF_NONE { PUSH int 57 ; FAILWITH } {} ; PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS ; CONS } { SWAP ; DUP ; DUG 2 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; DUP ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 79 ; FAILWITH } {} ; NIL operation ; SWAP ; DIG 2 ; CDR ; UNIT ; TRANSFER_TOKENS ; CONS } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR } } ; PAIR ; DUP ; CAR ; NIL operation ; SWAP ; CONS ; DIG 3 ; DUP ; GET 9 ; PUSH (pair bool nat) (Pair False 0) ; AMOUNT ; DUP 6 ; CDR ; PAIR ; PAIR ; SOME ; SENDER ; UPDATE ; UPDATE 9 ; DUP ; GET 10 ; SENDER ; SOME ; DIG 4 ; CDR ; UPDATE ; UPDATE 10 ; DUG 2 } ; SWAP ; CDR ; PUSH mutez 0 ; DUP 4 ; GET 9 ; SENDER ; GET ; IF_NONE { PUSH int 301 ; FAILWITH } {} ; CAR ; CAR ; TRANSFER_TOKENS ; CONS } } } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DUG 2 ; PUSH nat 0 ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; CAR ; SWAP ; UNIT ; EXEC ; NIL operation ; SWAP ; ITER { CONS } ; ITER { CONS } } { IF_LEFT { DUP 7 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DUP 10 ; DIG 4 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 4 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; SELF %internal_interest_rate_update ; PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS ; CONS } { DUP 4 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DIG 3 ; DUP ; GET 9 ; SWAP ; DUP ; DUG 5 ; GET 3 ; GET 3 ; GET ; IF_NONE { PUSH int 669 ; FAILWITH } {} ; DUP 5 ; GET 3 ; GET 5 ; DUP 5 ; MUL ; PUSH mutez 1 ; PUSH nat 1000000000000 ; PUSH nat 2 ; DUP 4 ; LSR ; DUP 4 ; ADD ; EDIV ; IF_NONE { PUSH int 673 ; FAILWITH } { CAR } ; MUL ; DUP ; PUSH mutez 1000 ; SWAP ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 1000000000000 ; DUP 8 ; CAR ; CAR ; GET 3 ; DUP 5 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 677 ; FAILWITH } { CAR } ; DIG 3 ; DUP 8 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 9 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 678 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 678 ; FAILWITH } { CAR } ; UPDATE 4 ; UNPAIR ; UNPAIR ; SWAP ; DUP 5 ; SWAP ; SUB ; SWAP ; PAIR ; PAIR ; DUG 3 ; DUP 8 ; DUP ; GET 9 ; DUP 6 ; SOME ; DIG 10 ; GET 3 ; GET 3 ; UPDATE ; UPDATE 9 ; DUG 7 ; DUP 11 ; DIG 8 ; DUP ; DUP ; DUG 10 ; GET 3 ; GET 5 ; DUP 10 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 682 ; FAILWITH } {} ; MUL ; DIG 10 ; GET 3 ; GET 3 ; PAIR ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 8 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 6 ; SWAP ; CONS ; DUG 5 } ; DROP 2 ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DUG 2 ; CAR ; CAR ; CONTRACT %withdraw (pair address mutez) ; IF_NONE { PUSH int 684 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 6 ; GET 3 ; CAR ; CDR ; PAIR ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 5 ; CAR ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 101 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DIG 5 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 7 ; GET 3 ; CAR ; CDR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 3 ; DIG 2 ; DIG 3 ; GET 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 688 ; FAILWITH } {} ; UPDATE 7 ; SWAP } } } } { IF_LEFT { IF_LEFT { DUP 4 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; PUSH nat 1000000000 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; DIG 3 ; DUP ; GET 9 ; SWAP ; DUP ; DUG 5 ; GET 3 ; GET 3 ; GET ; IF_NONE { PUSH int 418 ; FAILWITH } {} ; PUSH nat 1000000000000 ; DUP 6 ; CAR ; CAR ; GET 3 ; DUP 3 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 420 ; FAILWITH } { CAR } ; DUP 6 ; GET 3 ; GET 5 ; DUP 6 ; DUP 3 ; SUB ; ISNAT ; IF_NONE { PUSH int 421 ; FAILWITH } {} ; MUL ; DIG 2 ; DUP 7 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 8 ; DUP 6 ; SUB ; ISNAT ; IF_NONE { PUSH int 422 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 422 ; FAILWITH } { CAR } ; UPDATE 4 ; DUG 2 ; DUP 7 ; DUP ; GET 9 ; DUP 5 ; SOME ; DIG 9 ; GET 3 ; GET 3 ; UPDATE ; UPDATE 9 ; DUG 6 ; DIG 3 ; DUP 7 ; GET 5 ; CAR ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 101 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 8 ; DIG 9 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 11 ; GET 3 ; GET 3 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 3 ; DUP 7 ; DUP 7 ; DIG 8 ; GET 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 427 ; FAILWITH } {} ; UPDATE 7 ; DUG 6 ; DUP 10 ; DUP 8 ; DUP 3 ; DIG 9 ; GET 3 ; GET 3 ; PAIR ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 7 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 5 ; SWAP ; CONS ; DUG 4 } ; DROP 4 ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { IF_LEFT { DUP 4 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; PUSH nat 604800 ; PUSH timestamp "1970-01-01T00:00:00Z" ; DUP 6 ; CAR ; GET 3 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH int 257 ; FAILWITH } {} ; EDIV ; IF_NONE { PUSH int 257 ; FAILWITH } { CAR } ; PUSH nat 604800 ; PUSH timestamp "1970-01-01T00:00:00Z" ; NOW ; SUB ; ISNAT ; IF_NONE { PUSH int 259 ; FAILWITH } {} ; EDIV ; IF_NONE { PUSH int 259 ; FAILWITH } { CAR } ; COMPARE ; GT ; IF {} { PUSH int 611 ; FAILWITH } ; DIG 3 ; DUP ; GET 3 ; GET 5 ; SWAP ; DUP ; DUG 5 ; CAR ; GET 3 ; CDR ; SUB ; PUSH nat 35 ; PUSH nat 1000000000000 ; PUSH nat 1 ; PUSH nat 2 ; DUP 9 ; GET 3 ; GET 5 ; PUSH nat 100 ; DUP 7 ; ABS ; DUP ; PUSH nat 2 ; DUP 14 ; GET 3 ; GET 5 ; LSR ; DUP ; DUG 2 ; COMPARE ; LE ; IF { SWAP ; DROP } { DROP } ; MUL ; EDIV ; IF_NONE { PUSH int 267 ; FAILWITH } { CAR } ; LSR ; PUSH nat 1 ; LSL ; SUB ; ISNAT ; IF_NONE { PUSH int 269 ; FAILWITH } {} ; MUL ; LSR ; DUP 10 ; DIG 6 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 6 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 4 ; SWAP ; CONS ; DUG 3 } ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; PUSH int 0 ; DIG 2 ; COMPARE ; GT ; IF { DUP 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CAR ; DIG 5 ; DIG 7 ; CAR ; GET 8 ; SUB ; DUP ; PUSH int 128 ; DUP ; DUG 2 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; ISNAT ; IF_NONE { PUSH int 275 ; FAILWITH } {} ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { DUP 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CAR ; DIG 5 ; DIG 7 ; CAR ; GET 8 ; ADD ; DUP ; PUSH nat 8192 ; DUP ; DUG 2 ; COMPARE ; LE ; IF { SWAP ; DROP } { DROP } ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; CDR ; NOW ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { DUP 4 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DUP 4 ; GET 9 ; DUP 4 ; CAR ; GET ; IF_NONE { PUSH int 472 ; FAILWITH } {} ; PUSH nat 1000000000000 ; PUSH mutez 1 ; DUP 3 ; CAR ; CDR ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; MUL ; PUSH nat 2 ; DUP 7 ; GET 3 ; GET 5 ; PUSH nat 1000000000000 ; DUP 9 ; CAR ; CAR ; GET 3 ; DUP 6 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 475 ; FAILWITH } { CAR } ; MUL ; MUL ; SWAP ; DUP ; DUG 2 ; COMPARE ; LT ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; GET 3 } ; IF {} { PUSH int 802 ; FAILWITH } ; SWAP ; PUSH bool True ; UPDATE 3 ; SWAP ; PUSH nat 3 ; DUP 7 ; GET 3 ; GET 5 ; DUP 7 ; CDR ; MUL ; LSR ; DUP 7 ; GET 3 ; GET 5 ; DUP 7 ; CDR ; MUL ; ADD ; PUSH mutez 1 ; PUSH nat 1000000000000 ; DUP 3 ; EDIV ; IF_NONE { PUSH int 485 ; FAILWITH } { CAR } ; MUL ; DUP 8 ; GET 3 ; GET 5 ; DUP 8 ; CDR ; PUSH nat 1000000000000 ; DUP 11 ; CAR ; CAR ; GET 3 ; DUP 8 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 475 ; FAILWITH } { CAR } ; SUB ; ISNAT ; IF_NONE { PUSH int 486 ; FAILWITH } {} ; MUL ; DUP ; PUSH nat 3 ; MUL ; DUP 4 ; DUP 6 ; SUB ; ISNAT ; IF_NONE { PUSH int 488 ; FAILWITH } {} ; COMPARE ; LT ; IF {} { PUSH int 803 ; FAILWITH } ; PUSH mutez 1000 ; DUP 3 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 100 ; PUSH nat 3 ; DUP 3 ; MUL ; MUL ; PUSH nat 105 ; DUP 5 ; DUP 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 491 ; FAILWITH } {} ; MUL ; COMPARE ; GE ; IF { DIG 4 ; PUSH bool False ; UPDATE 3 ; DUG 4 } {} ; DIG 5 ; DUP 9 ; GET 5 ; CAR ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 101 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 10 ; CDR ; DIG 11 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 13 ; GET 3 ; GET 3 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 5 ; DUP 9 ; DUP 9 ; CDR ; DIG 10 ; GET 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 496 ; FAILWITH } {} ; UPDATE 7 ; DUG 8 ; DUP 5 ; DUP 10 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 11 ; CDR ; PUSH nat 1000000000000 ; DUP 14 ; CAR ; CAR ; GET 3 ; DIG 10 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 475 ; FAILWITH } { CAR } ; SUB ; ISNAT ; IF_NONE { PUSH int 498 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 498 ; FAILWITH } { CAR } ; UPDATE 4 ; UNPAIR ; UNPAIR ; SWAP ; DUP 5 ; SWAP ; SUB ; SWAP ; PAIR ; PAIR ; DUG 4 ; DIG 8 ; DUP ; GET 9 ; DUP 7 ; SOME ; DUP 11 ; CAR ; UPDATE ; UPDATE 9 ; DUG 8 ; DUP 12 ; DIG 9 ; DUP 3 ; DUP 11 ; CAR ; PAIR ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 9 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 7 ; SWAP ; CONS ; DUG 6 } ; DROP 2 ; SWAP ; DROP ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DUG 2 ; CAR ; CAR ; CONTRACT %withdraw (pair address mutez) ; IF_NONE { PUSH int 505 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 3 ; GET 3 ; PAIR ; TRANSFER_TOKENS ; CONS } } } { IF_LEFT { DUP 4 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; PUSH nat 1000000000 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; DIG 3 ; DUP ; GET 9 ; SWAP ; DUP ; DUG 5 ; GET 3 ; GET 3 ; GET ; IF_NONE { PUSH int 357 ; FAILWITH } {} ; PUSH nat 1000000000000 ; DUP 6 ; CAR ; CAR ; GET 3 ; DUP 3 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 360 ; FAILWITH } { CAR } ; DUP 6 ; GET 3 ; GET 5 ; DUP 6 ; DUP 3 ; ADD ; MUL ; DUP ; PUSH nat 3 ; MUL ; PUSH nat 1000000000000 ; PUSH mutez 1 ; DUP 6 ; CAR ; CDR ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; MUL ; COMPARE ; GE ; IF {} { PUSH int 801 ; FAILWITH } ; DIG 2 ; DUP ; GET 4 ; DUP 8 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 9 ; MUL ; EDIV ; IF_NONE { PUSH int 370 ; FAILWITH } { CAR } ; ADD ; UPDATE 4 ; DUG 2 ; DUP 7 ; DUP ; GET 9 ; DUP 5 ; SOME ; DIG 9 ; GET 3 ; GET 3 ; UPDATE ; UPDATE 9 ; DUG 6 ; DIG 3 ; DUP 7 ; GET 5 ; CAR ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 101 ; FAILWITH } {} ; PUSH mutez 0 ; PUSH nat 6 ; DUP 9 ; LSR ; DUP 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 368 ; FAILWITH } {} ; DIG 9 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 11 ; GET 3 ; GET 3 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 7 ; GET 5 ; CAR ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 101 ; FAILWITH } {} ; PUSH mutez 0 ; PUSH nat 6 ; DUP 9 ; LSR ; DIG 9 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 11 ; GET 3 ; CAR ; CAR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 3 ; DIG 6 ; DUP ; GET 7 ; DUP 8 ; ADD ; UPDATE 7 ; DUG 6 ; DUP 10 ; DUP 8 ; DUP 3 ; DIG 9 ; GET 3 ; GET 3 ; PAIR ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 7 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 5 ; SWAP ; CONS ; DUG 4 } ; DROP 4 ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { IF_LEFT { DUP 4 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DIG 3 ; DUP ; CAR ; GET 7 ; SWAP ; DUP ; DUG 5 ; GET 3 ; GET 3 ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; DUP 4 ; GET 9 ; DUP 4 ; CAR ; GET ; IF_NONE { PUSH int 601 ; FAILWITH } {} ; DUP 5 ; GET 3 ; GET 5 ; DUP 5 ; GET 3 ; MUL ; PUSH mutez 1 ; PUSH nat 1000000000000 ; PUSH nat 4 ; DUP 4 ; LSR ; DUP 4 ; SUB ; ISNAT ; IF_NONE { PUSH int 605 ; FAILWITH } {} ; EDIV ; IF_NONE { PUSH int 605 ; FAILWITH } { CAR } ; MUL ; DUP ; PUSH mutez 1000 ; SWAP ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 1000000000000 ; DUP 8 ; CAR ; CAR ; GET 3 ; DUP 5 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 610 ; FAILWITH } { CAR } ; DIG 3 ; DUP 8 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 9 ; GET 3 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 612 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 612 ; FAILWITH } { CAR } ; UPDATE 4 ; UNPAIR ; UNPAIR ; SWAP ; DUP 5 ; SWAP ; SUB ; SWAP ; PAIR ; PAIR ; DUG 3 ; DIG 7 ; DUP ; GET 9 ; DUP 6 ; SOME ; DUP 10 ; CAR ; UPDATE ; UPDATE 9 ; DUG 7 ; DUP 11 ; DIG 8 ; DUP ; GET 3 ; GET 5 ; DUP 10 ; GET 3 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 617 ; FAILWITH } {} ; MUL ; DUP 10 ; CAR ; PAIR ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 8 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 6 ; SWAP ; CONS ; DUG 5 } ; DROP 2 ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DUG 2 ; CAR ; CAR ; CONTRACT %withdraw (pair address mutez) ; IF_NONE { PUSH int 619 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 4 ; PAIR ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 5 ; CAR ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 101 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; GET 3 ; DIG 5 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 7 ; GET 3 ; GET 3 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 3 ; DIG 2 ; GET 3 ; DIG 3 ; GET 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 623 ; FAILWITH } {} ; UPDATE 7 ; SWAP } { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DUG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; CAR ; DIG 2 ; DUP ; GET 9 ; SWAP ; DUP ; DUG 4 ; GET 3 ; GET 3 ; GET ; IF_NONE { PUSH int 544 ; FAILWITH } {} ; PUSH nat 3 ; DIG 4 ; DUP ; GET 3 ; GET 5 ; SWAP ; DUP ; DUG 6 ; CAR ; CAR ; GET 3 ; DUP 4 ; GET 4 ; MUL ; MUL ; MUL ; PUSH nat 1000000000000 ; DUP ; PUSH mutez 1 ; DUP 7 ; DUP 6 ; CAR ; CDR ; SUB ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; MUL ; MUL ; COMPARE ; GE ; IF {} { PUSH int 801 ; FAILWITH } ; UNPAIR ; UNPAIR ; SWAP ; DUP 5 ; SWAP ; SUB ; SWAP ; PAIR ; PAIR ; DUP 4 ; DUP ; GET 9 ; DUP 3 ; SOME ; DIG 6 ; GET 3 ; GET 3 ; UPDATE ; UPDATE 9 ; DUG 3 ; CAR ; CAR ; CONTRACT %withdraw (pair address mutez) ; IF_NONE { PUSH int 555 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 3 ; GET 3 ; PAIR ; TRANSFER_TOKENS ; CONS } } } } } { IF_LEFT { IF_LEFT { IF_LEFT { DUP 7 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DUP 8 ; DIG 4 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 4 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_liquidate ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { IF_LEFT { DUP 7 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DUP 8 ; DIG 4 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 4 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_mint ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DUP ; DUG 3 ; CDR ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; CAR ; DIG 2 ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; NONE unit ; DIG 7 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } } } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; IF_LEFT { DUP ; DUG 3 ; CDR ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; CAR ; DIG 2 ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; PUSH (option unit) (Some Unit) ; DIG 7 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } { IF_LEFT { DUG 2 ; PUSH nat 0 ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; CAR ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CAR ; DUP 7 ; GET 6 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CDR ; DUP 6 ; CAR ; GET 3 ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; CDR ; DUP 5 ; GET 3 ; DUP 6 ; GET 5 ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CAR ; DUP 6 ; CAR ; CAR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CDR ; DIG 6 ; CAR ; GET 4 ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; CAR ; GET 5 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "WrongCondition: sp.sender == self.data.observed_price_oracle" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DIG 4 ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; NIL operation } } } } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 3 ; GET 6 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "WrongCondition: sp.sender == self.data.target_price_oracle" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CDR ; DIG 5 ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; NIL operation } { IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; DUP ; GET 9 ; DUP ; DIG 4 ; GET 10 ; SENDER ; GET ; IF_NONE { PUSH int 185 ; FAILWITH } {} ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 185 ; FAILWITH } {} ; UNPAIR ; CAR ; DIG 5 ; SWAP ; PAIR ; PAIR ; SOME ; SWAP ; UPDATE ; UPDATE 9 ; NIL operation } { DIG 2 ; DROP ; NIL operation ; DUP 3 ; GET 9 ; SENDER ; GET ; IF_NONE { PUSH int 315 ; FAILWITH } {} ; CAR ; CAR ; CONTRACT %set_delegate (option key_hash) ; IF_NONE { PUSH int 315 ; FAILWITH } {} ; AMOUNT ; DIG 3 ; TRANSFER_TOKENS ; CONS } } } { IF_LEFT { DUP 7 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DUP 8 ; DIG 4 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 4 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_settle_with_vault ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { IF_LEFT { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; SWAP ; CAR } { DUP 7 ; DIG 2 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 2 ; DUP ; CAR ; DUP 8 ; DIG 4 ; UNIT ; PAIR ; EXEC ; DUP ; GET 4 ; DUG 4 ; DUP ; CAR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_withdraw ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }