(version 2)
(include "sci.sh")
(exports
    0 rm620
)
(use "Main")
(use "FPRoom")
(use "ChemicalObj")
(use "Inset")
(use "Osc")
(use "CueObj")
(use "TimedCue")
(use "Cycle")
(use "View")
(use "Obj")
(script 620)


(local
    local0
    local1
    local2
    local3
    local4
    local5
    local6
    local7
    theForm

)
(instance public rm620 of FPRoom
    (properties
        noun 36
        picture 620
    )

    (method (init)
        proc0_8(1)
        (if (<> gGNumber 610)
            (send gGame:handsOn())
            (send gIconBar:disable(1 3 7))
        )
        = gMedicineBottle 0
        = global143 0
        = global144 0
        = global145 0
        (super:init(self))
        UnLoad(128 800)
        UnLoad(128 842)
        Load(143 620)
        (send gGameMusic1:
            number(620)
            flags(1)
            loop(-1)
            play()
        )
        (workArea:init())
        (bottle1:init())
        (bottle2:init())
        (bottle3:init())
        (bottle4:init())
        (bottle5:init())
        (bottle6:init())
        (bottle7:init())
        (bottle8:init())
        (bottle9:init())
        (bottle10:init())
        (bottle11:init())
        (bottle13:init())
        (solid1:init())
        (solid2:init())
        (solid3:init())
        (solid4:init())
        (solid5:init())
        (solid6:init())
        (solid7:init())
        (beaker1:init())
        (solidBox1:init())
        (solidBoxes:init())
        (corks:init())
        (paper1:init())
        (stirringRods:init())
        (matches1:init())
        (mortar:init())
        (spatula1:init())
        (gradCylinder:init())
        (testTube1:init())
        (crucible1:init())
        (pillMachine:init())
        (alcoholLamp:init())
        (spectro:init())
        (puff:
            init()
            hide()
        )
        (balance1:
            init()
            setPri(6)
        )
        (dumper:
            init()
            setPri(5)
        )
        (send gIconBar:curIcon((send gIconBar:at(2))))
        (send gGame:setCursor(2))
    )


    (method (doit)
        (var temp0)
        (super:doit())
        (if (script)
        )(else
            = temp0 (send gOldCast:firstTrue(#onMe gOrigX (- gPEventY 10)))
            (if (IsObject(temp0) and ((<> temp0 local0) or local1))
                = local1 0
                proc625_0(temp0)
                = local0 temp0
            )
            (if (not IsObject(temp0))
                = local1 1
                (if (global145)
                    Display("" 108 global145)
                    = global145 0
                )
            )
        )
    )


    (method (dispose)
        proc625_1()
        DisposeScript(625)
        (if (<> global119 14)
            (send gGameMusic1:fade())
        )
        (super:dispose())
    )


    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 4
                (if (< gPEventY 130)
                    (if (gMedicineBottle)
                        (send gMedicineBottle:
                            posn(gOrigX gPEventY)
                            show()
                            setPri(15)
                            setLoop((send gMedicineBottle:loop))
                            setMotion(MoveTo (send gMedicineBottle:startX) (send gMedicineBottle:startY) gMedicineBottle)
                        )
                        proc625_1()
                        = gMedicineBottle 0
                    )(else
                        (super:doVerb(theVerb rest param2))
                    )
                )(else
                    (super:doVerb(theVerb rest param2))
                )
            )
            (case 8
                (if ((== (crucible1:contents) 25) and (== (crucible1:contentState) 51))
                    (send gFpMessager:say(65 0 31))
                )(else
                    (if (== (crucible1:contents) 25)
                        (send gEgo:get(-1 33))
                        = global143 1
                        (send gFpMessager:say(64 0 30 0 self))
                    )(else
                        (if (not global144 and ((((bottle11:amount) or (solidBoxes:amount)) or ((send gOldCast:contains(medicineBottle)) and (medicineBottle:amount))) or ((send gOldCast:contains(solidBox)) and (solidBox:amount))))
                            = global143 1
                            (send gFpMessager:say(61 0 19 0 self))
                        )(else
                            proc0_8(0)
                            (send global2:newRoom(610))
                        )
                    )
                )
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )


    (method (cue)
        (if (global143)
            proc0_8(0)
            (send global2:newRoom(610))
        )(else
            (send gIconBar:disable(1 3 7))
            (switch (global119)
                (case 2
                    (if (not proc0_2(75))
                        proc0_3(75)
                        (send gFpMessager:say(13 0 5))
                    )
                )
                (case 3
                    (if (not proc0_2(76))
                        proc0_3(76)
                        (send gFpMessager:say(13 0 6))
                    )
                )
                (case 4
                    (if ((send gEgo:has(32)) and not proc0_2(77))
                        proc0_3(77)
                        (send gFpMessager:say(13 0 7))
                    )(else
                        (if ((send gEgo:has(58)) and not proc0_2(78))
                            proc0_3(78)
                            (send gFpMessager:say(13 0 8))
                        )
                    )
                )
                (case 5
                    (if (not proc0_2(79))
                        proc0_3(79)
                        (send gFpMessager:say(13 0 9))
                    )
                )
            )
        )
    )

)
(instance sDoPuff of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (puff:
                    show()
                    posn(100 146)
                )
                = ticks 30
            )
            (case 1
                (puff:hide())
                = cycles 2
            )
            (case 2
                (send gFpMessager:say(37 64 22 0 self))
            )
            (case 3
                (self:dispose())
            )
        )
    )

)
(instance sDoSpectroLines of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (puff:
                    show()
                    posn((spectro:x) - (spectro:y) 17)
                )
                = ticks 30
            )
            (case 1
                (puff:hide())
                = cycles 2
            )
            (case 2
                (send gFpMessager:say(62 64 22 0 self))
            )
            (case 3
                (send global2:setInset(spectroInset self))
            )
            (case 4
                (send gGame:points(10 155))
                (self:dispose())
            )
        )
    )

)
(instance bottle1 of LabItem
    (properties
        x 56
        y 37
        noun 1
        view 620
        objName 6
        amount -1
        moveable 1
        startX 56
        startY 37
    )
)
(instance bottle2 of LabItem
    (properties
        x 71
        y 39
        noun 2
        view 620
        cel 1
        objName 7
        amount -1
        moveable 1
        startX 71
        startY 39
    )
)
(instance bottle3 of LabItem
    (properties
        x 86
        y 37
        noun 3
        view 620
        cel 2
        objName 8
        amount -1
        moveable 1
        startX 86
        startY 37
    )
)
(instance bottle4 of LabItem
    (properties
        x 101
        y 40
        noun 4
        view 620
        loop 1
        objName 9
        amount -1
        moveable 1
        startX 101
        startY 40
    )
)
(instance bottle5 of LabItem
    (properties
        x 121
        y 39
        noun 17
        view 620
        loop 1
        cel 1
        objName 10
        amount -1
        moveable 1
        startX 121
        startY 39
    )
)
(instance bottle6 of LabItem
    (properties
        x 138
        y 40
        noun 18
        view 620
        loop 1
        cel 3
        objName 11
        amount -1
        moveable 1
        startX 138
        startY 40
    )
)
(instance bottle7 of LabItem
    (properties
        x 154
        y 38
        noun 19
        view 620
        loop 2
        objName 12
        amount -1
        moveable 1
        startX 154
        startY 38
    )
)
(instance bottle8 of LabItem
    (properties
        x 167
        y 39
        noun 20
        view 620
        loop 1
        cel 2
        objName 13
        amount -1
        moveable 1
        startX 167
        startY 39
    )
)
(instance bottle9 of LabItem
    (properties
        x 179
        y 41
        noun 21
        view 620
        loop 2
        cel 1
        objName 14
        moveable 1
        startX 179
        startY 41
    )
)
(instance bottle10 of LabItem
    (properties
        x 192
        y 39
        noun 22
        view 620
        loop 1
        cel 4
        objName 15
        amount -1
        moveable 1
        startX 192
        startY 39
    )
)
(instance bottle11 of LabItem
    (properties
        x 133
        y 72
        noun 23
        view 620
        cel 4
        objType 4
        objName 39
        moveable 1
        startX 133
        startY 72
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (touchItem)
        (if ((send gOldCast:contains(medicineBottle)))
            (send gGameMusic2:
                number(2926)
                loop(1)
                flags(1)
                play()
            )
            (send gFpMessager:say(59 0 15))
        )(else
            = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
            (send gCursorNumber:
                view(view)
                setLoop(loop)
                setCel(+ cel 1)
                init()
            )
            (medicineBottle:
                init()
                hide()
                contents((self:contents))
                amount((self:amount))
                form((self:form))
            )
            (self:
                contents(0)
                amount(0)
            )
            = gMedicineBottle medicineBottle
            proc625_0(self)
        )
    )


    (method (exchangeItem)
        (if (== (send gMedicineBottle:objName) 39)
            (medicineBottle:cue())
            = gMedicineBottle 0
            proc625_1()
            proc625_0(self)
        )(else
            (if ((send gOldCast:contains(medicineBottle)))
                (send gGameMusic2:
                    number(2926)
                    loop(1)
                    flags(1)
                    play()
                )
                (send gFpMessager:say(59 0 15))
            )(else
                = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
                (send gCursorNumber:
                    view(view)
                    setLoop(loop)
                    setCel(+ cel 1)
                    init()
                )
                (send gMedicineBottle:
                    posn(gOrigX gPEventY)
                    show()
                    setPri(15)
                    setLoop((send gMedicineBottle:loop))
                    setMotion(MoveTo (send gMedicineBottle:startX) (send gMedicineBottle:startY) gMedicineBottle)
                )
                (medicineBottle:
                    init()
                    hide()
                    contents((self:contents))
                    amount((self:amount))
                    form((self:form))
                )
                (self:
                    contents(0)
                    amount(0)
                )
                = gMedicineBottle medicineBottle
            )
        )
    )

)
(instance medicineBottle of LabItem
    (properties
        noun 59
        view 620
        cel 5
        objType 4
        objName 39
        moveable 1
        startX 133
        startY 79
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (cue)
        (if (global143)
            (send global2:doVerb(8))
        )(else
            (bottle11:
                contents((self:contents))
                amount((self:amount))
                form((self:form))
            )
            (self:
                contents(0)
                amount(0)
                dispose()
            )
        )
    )

)
(instance bottle13 of LabItem
    (properties
        x 158
        y 78
        noun 40
        view 620
        cel 3
        objName 16
        amount -1
        moveable 1
        startX 158
        startY 78
    )
)
(instance crucible1 of LabItem
    (properties
        x 136
        y 117
        noun 63
        view 621
        loop 4
        objType 5
        objName 48
        form 26
        moveable 1
        startX 136
        startY 117
    )

    (method (doVerb theVerb param2)
        (if (((< gPEventY 130) or ((== (send gIconBar:curIcon) (send gIconBar:at(2))) and not gMedicineBottle)) or (== (send gIconBar:curIcon) (send gIconBar:at(0))))
            (super:doVerb(theVerb rest param2))
        )(else
            (if (== theVerb 53)
                (send gEgo:put(33))
                (send gGame:setCursor((send ((send gIconBar:at(2))):cursor)))
                (send gIconBar:select((send gIconBar:at(2))))
                (self:
                    contents(25)
                    amount(1)
                    contentState(49)
                )
                proc625_0(self)
            )(else
                (if (((== theVerb 69) and (== contents 25)) and (== contentState 51))
                    (send gFpMessager:say(66 69))
                    (send gEgo:
                        put(19)
                        get(-1 53)
                    )
                    = contents (= amount 0)
                    = contentState 49
                    (send gIconBar:
                        curIcon((send gIconBar:useIconItem))
                        curInvIcon((send ((send gInv:at(53))):
                                cursor(87)
                                yourself()
                            )
)
                        enable((send gIconBar:at(5)))
                    )
                    (send ((send gIconBar:curIcon)):cursor(87))
                    (send gGame:setCursor((send ((send gIconBar:at(5))):cursor)))
                    (send gIconBar:select((send gIconBar:at(5))))
                    proc625_0(self)
                )(else
                    (send gFpMessager:say(noun 0 25))
                )
            )
        )
    )

)
(instance solid1 of LabItem
    (properties
        x 178
        y 77
        noun 26
        view 620
        loop 10
        objName 17
        amount -1
        form 26
        moveable 1
        startX 178
        startY 77
    )
)
(instance solid2 of LabItem
    (properties
        x 200
        y 77
        noun 27
        view 621
        loop 5
        objName 18
        amount -1
        form 26
        moveable 1
        startX 200
        startY 77
    )
)
(instance solid3 of LabItem
    (properties
        x 224
        y 78
        noun 28
        view 621
        loop 6
        objName 19
        amount -1
        form 26
        moveable 1
        startX 224
        startY 78
    )
)
(instance solid4 of LabItem
    (properties
        x 249
        y 78
        noun 29
        view 621
        loop 7
        objName 20
        amount -1
        form 26
        moveable 1
        startX 249
        startY 78
    )
)
(instance solid5 of LabItem
    (properties
        x 209
        y 40
        noun 44
        view 621
        loop 5
        objName 21
        amount -1
        form 26
        moveable 1
        startX 209
        startY 40
    )
)
(instance solid6 of LabItem
    (properties
        x 232
        y 41
        noun 45
        view 621
        loop 6
        objName 22
        amount -1
        form 26
        moveable 1
        startX 232
        startY 41
    )
)
(instance solid7 of LabItem
    (properties
        x 258
        y 40
        noun 46
        view 620
        loop 10
        objName 23
        amount -1
        form 26
        moveable 1
        startX 258
        startY 40
    )
)
(instance solidBox1 of LabItem
    (properties
        x 56
        y 78
        noun 24
        view 620
        loop 8
        objName 24
        amount -1
        form 26
        moveable 1
        startX 56
        startY 78
    )
)
(instance solidBoxes of LabItem
    (properties
        x 82
        y 79
        noun 58
        view 620
        loop 8
        cel 1
        objType 4
        objName 40
        form 26
        moveable 1
        startX 82
        startY 79
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (touchItem)
        (if ((send gOldCast:contains(solidBox)))
            (send gGameMusic2:
                number(2926)
                loop(1)
                flags(1)
                play()
            )
            (send gFpMessager:say(25 0 15))
        )(else
            = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
            (send gCursorNumber:
                view(view)
                setLoop(loop)
                setCel(+ cel 1)
                init()
            )
            (solidBox:
                init()
                hide()
                contents((self:contents))
                amount((self:amount))
                form((self:form))
            )
            (self:
                contents(0)
                amount(0)
            )
            = gMedicineBottle solidBox
            proc625_0(self)
        )
    )


    (method (exchangeItem)
        (if (== (send gMedicineBottle:objName) 40)
            (solidBox:cue())
            = gMedicineBottle 0
            proc625_1()
            proc625_0(self)
        )(else
            (if ((send gOldCast:contains(solidBox)))
                (send gGameMusic2:
                    number(2926)
                    loop(1)
                    flags(1)
                    play()
                )
                (send gFpMessager:say(25 0 15))
            )(else
                = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
                (send gCursorNumber:
                    view(view)
                    setLoop(loop)
                    setCel(+ cel 1)
                    init()
                )
                (send gMedicineBottle:
                    posn(gOrigX gPEventY)
                    show()
                    setPri(15)
                    setLoop((send gMedicineBottle:loop))
                    setMotion(MoveTo (send gMedicineBottle:startX) (send gMedicineBottle:startY) gMedicineBottle)
                )
                (solidBox:
                    init()
                    hide()
                    contents((self:contents))
                    amount((self:amount))
                    form((self:form))
                )
                (self:
                    contents(0)
                    amount(0)
                )
                = gMedicineBottle solidBox
            )
        )
    )

)
(instance solidBox of LabItem
    (properties
        noun 25
        view 620
        loop 8
        cel 2
        objType 4
        objName 40
        form 26
        moveable 1
        startX 90
        startY 79
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (cue)
        (if (global143)
            (send global2:doVerb(8))
        )(else
            (solidBoxes:
                contents((self:contents))
                amount((self:amount))
                form((self:form))
            )
            (self:
                contents(0)
                amount(0)
                dispose()
            )
        )
    )


    (method (useItem)
        (if ((== (send gMedicineBottle:objName) 45) and (send gMedicineBottle:amount))
            (if (amount)
                = local4 0
                (if ((== form 31) and (== (send ((send gMedicineBottle:contents)):size) (send contents:size)))
                    = local2 0
                    (while (< local2 (send contents:size))
                        = local4 0
                        = local3 0
                        (while (< local3 (send contents:size))
                            (if ((== (send ((send contents:at(local2))):chemicalName) (send ((send ((send gMedicineBottle:contents)):at(local2))):chemicalName)) and (== (send ((send contents:at(local2))):chemicalAmount) (send ((send ((send gMedicineBottle:contents)):at(local2))):chemicalAmount)))
                                break
                            )
                            ++local3
                        )
                        (if (== local4 0)
                            break
                        )
                        ++local2
                    )
                )
                (if (<> form 31)
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                    (send gFpMessager:say(noun 77 28))
                )(else
                    (if (local4)
                        (self:
                            amount(+ amount 1)
                            contentState((send gMedicineBottle:contentState))
                        )
                        (send gMedicineBottle:dispose())
                        = gMedicineBottle 0
                        proc625_1()
                        proc625_0(self)
                        (if (== amount 6)
                            Animate((send gOldCast:elements) 0)
                            (send gEgo:
                                put(25)
                                put(26)
                            )
                            = global144 1
                            (if ((== global119 4) or (== global119 5))
                                (if (((== contentState 50) and (== (send contents:size) 2)) and (((((== (send ((send contents:at(0))):chemicalName) 18) and (== (send ((send contents:at(0))):chemicalAmount) 15)) and (== (send ((send contents:at(1))):chemicalName) 23)) and (== (send ((send contents:at(1))):chemicalAmount) 15)) or ((((== (send ((send contents:at(0))):chemicalName) 23) and (== (send ((send contents:at(0))):chemicalAmount) 15)) and (== (send ((send contents:at(1))):chemicalName) 18)) and (== (send ((send contents:at(1))):chemicalAmount) 15))))
                                    (send gEgo:get(-1 36))
                                )(else
                                    (send gEgo:get(-1 26))
                                    (if ((send gEgo:has(36)))
                                        (send gEgo:put(36))
                                    )
                                )
                                = global143 1
                                (send gFpMessager:say(34 0 9 0 self))
                            )(else
                                (send gEgo:get(-1 26))
                                = global143 1
                                (send gFpMessager:say(34 0 32 0 self))
                            )
                        )
                    )(else
                        (send gGameMusic2:
                            number(2926)
                            loop(1)
                            flags(1)
                            play()
                        )
                        (send gFpMessager:say(noun 77 1))
                    )
                )
            )(else
                (self:
                    contents((List:new()))
                    form(31)
                    amount(1)
                    contentState((send gMedicineBottle:contentState))
                )
                = local2 0
                (while (< local2 (send ((send gMedicineBottle:contents)):size))
                    (send contents:addToEnd((send ((ChemicalObj:new())):
                            chemicalName((send ((send ((send gMedicineBottle:contents)):at(local2))):chemicalName))
                            chemicalAmount((send ((send ((send gMedicineBottle:contents)):at(local2))):chemicalAmount))
                        )
))
                    ++local2
                )
                (send gMedicineBottle:dispose())
                = gMedicineBottle 0
                proc625_1()
                proc625_0(self)
            )
        )(else
            (if (== form 31)
                (send gGameMusic2:
                    number(2926)
                    loop(1)
                    flags(1)
                    play()
                )
                (send gFpMessager:say(noun 77 17))
            )(else
                (super:useItem())
            )
        )
    )

)
(instance beaker1 of LabItem
    (properties
        x 183
        y 118
        noun 48
        view 621
        loop 1
        objType 3
        objName 36
        form 0
        moveable 1
        startX 183
        startY 118
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (cue)
        (if (gMedicineBottle and (== (send gMedicineBottle:objName) 43))
            (self:
                setLoop(1)
                stopUpd()
            )
            (send gGameMusic2:stop())
            (send gGame:handsOn())
            (send gIconBar:disable(1 3 7))
        )(else
            (super:cue())
        )
    )

)
(instance corks of LabItem
    (properties
        x 234
        y 118
        noun 30
        view 620
        loop 12
        moveable 1
        startX 234
        startY 118
    )

    (method (touchItem)
        = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
        (send gCursorNumber:
            view(view)
            setLoop(loop)
            setCel(+ cel 1)
            init()
        )
        = gMedicineBottle (Cork:new())
        (send gMedicineBottle:
            init()
            hide()
        )
    )


    (method (exchangeItem)
        (if (not StrCmp((send gMedicineBottle:name) (Cork:name)))
            = gMedicineBottle 0
            proc625_1()
        )(else
            = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
            (send gCursorNumber:
                view(view)
                setLoop(loop)
                setCel(+ cel 1)
                init()
            )
            (send gMedicineBottle:
                posn(gOrigX gPEventY)
                show()
                setPri(15)
                setLoop((send gMedicineBottle:loop))
                setMotion(MoveTo (send gMedicineBottle:startX) (send gMedicineBottle:startY) gMedicineBottle)
            )
            = gMedicineBottle (Cork:new())
            (send gMedicineBottle:
                init()
                hide()
            )
        )
    )

)
(instance Cork of LabItem
    (properties
        noun 42
        view 620
        loop 12
        cel 1
        objType 5
        objName 42
        form 26
        moveable 1
        startX 234
        startY 115
    )

    (method (cue)
        (self:dispose())
    )

)
(instance paper1 of LabItem
    (properties
        x 207
        y 118
        noun 31
        view 620
        loop 11
        moveable 1
        startX 207
        startY 118
    )

    (method (touchItem)
        = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
        (send gCursorNumber:
            view(view)
            setLoop(loop)
            setCel(+ cel 1)
            init()
        )
        = gMedicineBottle (paperSheet:new())
        (send gMedicineBottle:
            init()
            hide()
        )
    )


    (method (exchangeItem)
        (if (== (send gMedicineBottle:objName) 45)
            = gMedicineBottle 0
            proc625_1()
        )(else
            = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
            (send gCursorNumber:
                view(view)
                setLoop(loop)
                setCel(+ cel 1)
                init()
            )
            (send gMedicineBottle:
                posn(gOrigX gPEventY)
                show()
                setPri(15)
                setLoop((send gMedicineBottle:loop))
                setMotion(MoveTo (send gMedicineBottle:startX) (send gMedicineBottle:startY) gMedicineBottle)
            )
            = gMedicineBottle (paperSheet:new())
            (send gMedicineBottle:
                init()
                hide()
            )
        )
    )

)
(instance paperSheet of LabItem
    (properties
        noun 41
        view 620
        loop 11
        cel 1
        objType 5
        objName 45
        form 26
        moveable 1
        startX 208
        startY 112
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (cue)
        (if (amount)
            (self:
                view(view)
                setLoop(11)
                setCel(2)
                setPri(-1)
                ignoreActors(1)
                stopUpd()
            )
        )(else
            (self:dispose())
        )
    )


    (method (touchItem)
        (if (amount)
            = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
            (send gCursorNumber:
                view(view)
                setLoop(13)
                setCel(0)
                init()
            )
            (self:
                startX(x)
                startY(y)
                hide()
            )
            = gMedicineBottle self
        )(else
            (self:
                startX(208)
                startY(112)
            )
            (super:touchItem())
        )
    )


    (method (useItem)
        (if (((== (send gMedicineBottle:objName) 35) and (== (send gMedicineBottle:amount) 0)) and (== amount 0))
            (send gGameMusic2:
                number(2731)
                flags(1)
                loop(1)
                play()
            )
            (send gFpMessager:say(51))
        )(else
            (if (((== (send gMedicineBottle:objName) 35) and (== (send gMedicineBottle:amount) 0)) and amount)
                (send gMedicineBottle:
                    contents((List:new()))
                    amount(amount)
                    form(form)
                    contentState(contentState)
                )
                = local2 0
                (while (< local2 (send contents:size))
                    (send ((send gMedicineBottle:contents)):addToEnd((send ((ChemicalObj:new())):
                            chemicalName((send ((send contents:at(local2))):chemicalName))
                            chemicalAmount((send ((send contents:at(local2))):chemicalAmount))
                        )
))
                    ++local2
                )
                (send contents:dispose())
                = form (= amount (= contents 0))
                = contentState 49
                (self:setCel(--cel))
                proc625_0(self)
            )(else
                (if (((== (send gMedicineBottle:objName) 35) and (send gMedicineBottle:amount)) and (== amount 0))
                    = contents (List:new())
                    = amount (send gMedicineBottle:amount)
                    = form (send gMedicineBottle:form)
                    = contentState (send gMedicineBottle:contentState)
                    = local2 0
                    (while (< local2 (send ((send gMedicineBottle:contents)):size))
                        (send contents:addToEnd((send ((ChemicalObj:new())):
                                chemicalName((send ((send ((send gMedicineBottle:contents)):at(local2))):chemicalName))
                                chemicalAmount((send ((send ((send gMedicineBottle:contents)):at(local2))):chemicalAmount))
                            )
))
                        ++local2
                    )
                    (send ((send gMedicineBottle:contents)):dispose())
                    (send gMedicineBottle:
                        contents(0)
                        amount(0)
                        form(0)
                        contentState(49)
                    )
                    (self:setCel(++cel))
                    proc625_0(self)
                )(else
                    (if (((== (send gMedicineBottle:objName) 35) and (send gMedicineBottle:amount)) and amount)
                        (send gFpMessager:say(noun 81 11))
                    )(else
                        (send gGameMusic2:
                            number(2926)
                            loop(1)
                            flags(1)
                            play()
                        )
                    )
                )
            )
        )
    )

)
(instance stirringRods of LabItem
    (properties
        x 260
        y 101
        noun 47
        view 621
        loop 2
        moveable 1
        startX 260
        startY 101
    )

    (method (touchItem)
        = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
        (send gCursorNumber:
            view(view)
            setLoop(loop)
            setCel(+ cel 1)
            init()
        )
        = gMedicineBottle (rod:new())
        (send gMedicineBottle:
            init()
            hide()
        )
    )


    (method (exchangeItem)
        (if (== (send gMedicineBottle:objName) 43)
            (send gMedicineBottle:dispose())
            = gMedicineBottle 0
            proc625_1()
        )(else
            = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
            (send gCursorNumber:
                view(view)
                setLoop(loop)
                setCel(+ cel 1)
                init()
            )
            (send gMedicineBottle:
                posn(gOrigX gPEventY)
                show()
                setPri(15)
                setLoop((send gMedicineBottle:loop))
                setMotion(MoveTo (send gMedicineBottle:startX) (send gMedicineBottle:startY) gMedicineBottle)
            )
            = gMedicineBottle (rod:new())
            (send gMedicineBottle:
                init()
                hide()
            )
        )
    )

)
(instance rod of LabItem
    (properties
        noun 54
        view 621
        loop 2
        cel 1
        objType 5
        objName 43
        form 26
        moveable 1
        startX 254
        startY 115
    )

    (method (cue)
        (self:dispose())
    )

)
(instance matches1 of LabItem
    (properties
        x 154
        y 118
        noun 32
        view 620
        loop 9
        objType 5
        objName 44
        form 26
        moveable 1
        startX 154
        startY 118
    )
)
(instance mortar of LabItem
    (properties
        x 90
        y 116
        noun 33
        view 620
        loop 7
        objType 3
        objName 37
        form 26
        moveable 1
        startX 90
        startY 116
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (cue)
        (if (local7)
            (self:
                setCel(0)
                stopUpd()
            )
            (send gGameMusic2:stop())
            = local7 0
            (send gGame:handsOn())
            (send gIconBar:disable(1 3 7))
        )(else
            (super:cue())
        )
    )


    (method (touchItem)
        (if (amount and (== contentState 49))
            (send gGame:handsOff())
            = local7 1
            (self:setCycle(TimedCue 4 self))
            (send gGameMusic2:
                number(2623)
                loop(-1)
                flags(1)
                play()
            )
            = contentState 50
        )(else
            (super:touchItem())
        )
    )

)
(instance spatula1 of LabItem
    (properties
        x 113
        y 116
        noun 53
        view 620
        loop 6
        objType 2
        objName 35
        form 26
        moveable 1
        startX 113
        startY 116
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (useItem)
        (if (== (send gMedicineBottle:objType) 3)
            (send gFpMessager:say(noun 76))
        )(else
            (super:useItem())
        )
    )

)
(instance gradCylinder of LabItem
    (properties
        x 56
        y 118
        noun 35
        view 620
        loop 4
        objType 2
        objName 32
        moveable 1
        startX 56
        startY 118
    )
)
(instance testTube1 of LabItem
    (properties
        x 72
        y 117
        noun 39
        view 620
        loop 5
        objType 3
        objName 38
        form 0
        moveable 1
        startX 72
        startY 117
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )

)
(instance alcoholLamp of LabItem
    (properties
        x 84
        y 159
        noun 37
        view 622
        priority 4
        signal $4011
        objType 5
        objName 46
    )

    (method (doVerb theVerb)
        = gTheVerb theVerb
        (switch (theVerb)
            (case 5
                proc0_3(93)
                (send gEgo:put(17))
                (send gGame:points(5))
                (send gGame:setCursor((send ((send gIconBar:at(2))):cursor)))
                (send gIconBar:select((send gIconBar:at(2))))
                (send gFpMessager:say(noun 5))
            )
            (case 64
                (if (((((< 91 (spectro:x)) and (< (spectro:x) 110)) and (< 159 (spectro:y))) and (< (spectro:y) 169)) and (== form 30))
                    (send global2:setScript(sDoSpectroLines))
                )(else
                    (if (== form 30)
                        (send global2:setScript(sDoPuff))
                    )(else
                        (send gFpMessager:say(noun theVerb 23))
                    )
                )
            )
            (case 53
                (if (== form 30)
                    (send gFpMessager:say(noun theVerb))
                )(else
                    (send gFpMessager:say(noun 53 23))
                )
            )
            (case 68
                (if (== form 30)
                    (send gGame:handsOff())
                    (send gFpMessager:say(noun theVerb 22 0 self))
                )(else
                    (send gFpMessager:say(noun theVerb 23))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )


    (method (cue)
        (switch (gTheVerb)
            (case 48
                (send gGame:handsOn())
                (send gIconBar:disable(1 3 7))
                (send gMedicineBottle:contentState(51))
                = gTheVerb 0
            )
            (case 68
                (send gGame:handsOn())
                (send gIconBar:disable(1 3 7))
                (send gEgo:
                    put(60)
                    get(-1 19)
                )
                (send gIconBar:
                    curIcon((send gIconBar:useIconItem))
                    curInvIcon((send ((send gInv:at(19))):
                            cursor(53)
                            yourself()
                        )
)
                    enable((send gIconBar:at(5)))
                )
                (send ((send gIconBar:curIcon)):cursor(53))
                (send gGame:setCursor((send ((send gIconBar:at(5))):cursor)))
                (send gIconBar:select((send gIconBar:at(5))))
                = gTheVerb 0
            )
            (case 3
                (send gGame:handsOn())
                (send gIconBar:disable(1 3 7))
                = gTheVerb 0
            )
            (default 
                (super:cue())
            )
        )
    )


    (method (touchItem)
        (if (== form 30)
            (send gFpMessager:say(noun 4 22))
            (self:
                form(49)
                setLoop(0)
                setCel(0)
                setCycle(0)
                stopUpd()
            )
        )(else
            (send gFpMessager:say(noun 4))
        )
    )


    (method (useItem)
        (if (== (send gMedicineBottle:objName) 47)
            (if (== form 30)
                (send gMedicineBottle:
                    ignoreActors(1)
                    posn(100 163)
                    show()
                    stopUpd()
                )
                proc625_1()
                = gMedicineBottle 0
            )(else
                (send gFpMessager:say(noun 80 23))
            )
        )(else
            (if (== (send gMedicineBottle:objName) 44)
                (if (== form 30)
                    (send gFpMessager:say(noun 79 22))
                )(else
                    (if (proc0_2(93))
                        (self:
                            setLoop(1)
                            setCycle(Fwd)
                        )
                        = form 30
                        (spectro:ignoreActors(1))
                        (send gMedicineBottle:
                            posn(gOrigX gPEventY)
                            show()
                            setPri(15)
                            setLoop((send gMedicineBottle:loop))
                            setMotion(MoveTo (send gMedicineBottle:startX) (send gMedicineBottle:startY) gMedicineBottle)
                        )
                        proc625_1()
                        = gMedicineBottle 0
                    )(else
                        (send gFpMessager:say(noun 79 24))
                    )
                )
            )(else
                (if (((== (send gMedicineBottle:objName) 48) and (== (send gMedicineBottle:contents) 25)) and (== (send gMedicineBottle:contentState) 51))
                    (send gFpMessager:say(noun 82 29))
                )(else
                    (if ((== (send gMedicineBottle:objName) 48) and (== (send gMedicineBottle:contents) 25))
                        (if (== form 30)
                            (if ((((send gEgo:has(19)) or (send gEgo:has(60))) or ((send gEgo:has(59)) and (send gEgo:has(8)))) or (((send gEgo:has(4)) and (send gEgo:has(27))) and (send gEgo:has(8))))
                                (send gGame:handsOff())
                                = gTheVerb 48
                                (send gFpMessager:say(noun 53 22 0 self))
                            )(else
                                (send gFpMessager:say(noun 53 25))
                            )
                        )(else
                            (send gFpMessager:say(noun 82 23))
                        )
                    )(else
                        (if (== (send gMedicineBottle:objName) 48)
                            (send gFpMessager:say(noun 82 12))
                        )(else
                            (if (== (send gMedicineBottle:objType) 1)
                                (if (== form 30)
                                    (send gFpMessager:say(noun 72))
                                )(else
                                    (send gGameMusic2:
                                        number(2926)
                                        loop(1)
                                        flags(1)
                                        play()
                                    )
                                )
                            )(else
                                (if (== (send gMedicineBottle:objType) 3)
                                    (if (== (send gMedicineBottle:objName) 37)
                                        (send gGameMusic2:
                                            number(2926)
                                            loop(1)
                                            flags(1)
                                            play()
                                        )
                                        (send gFpMessager:say(noun 76 1))
                                    )
                                    (if (== form 30)
                                        (if (== (send gMedicineBottle:amount) 0)
                                            (send gGameMusic2:
                                                number(2926)
                                                loop(1)
                                                flags(1)
                                                play()
                                            )
                                            (send gFpMessager:say(noun 76 12))
                                        )(else
                                            (if (== (send gMedicineBottle:objName) 37)
                                                (send gGameMusic2:
                                                    number(2926)
                                                    loop(1)
                                                    flags(1)
                                                    play()
                                                )
                                                (send gFpMessager:say(noun 76 1))
                                            )(else
                                                = gTheVerb 3
                                                (send gGame:handsOff())
                                                (send gFpMessager:say(noun 76 0 0 self))
                                                (if (== (send gMedicineBottle:contentState) 49)
                                                    (send gMedicineBottle:contentState(51))
                                                )(else
                                                    (if (== (send gMedicineBottle:contentState) 50)
                                                        (send gMedicineBottle:contentState(52))
                                                    )
                                                )
                                            )
                                        )
                                    )(else
                                        (send gGameMusic2:
                                            number(2926)
                                            loop(1)
                                            flags(1)
                                            play()
                                        )
                                    )
                                )(else
                                    (send gGameMusic2:
                                        number(2926)
                                        loop(1)
                                        flags(1)
                                        play()
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )

)
(instance spectro of LabItem
    (properties
        x 118
        y 158
        noun 62
        view 623
        objType 5
        objName 47
        moveable 1
        startX 118
        startY 158
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 64
                (if (((((< 91 (spectro:x)) and (< (spectro:x) 110)) and (< 159 (spectro:y))) and (< (spectro:y) 169)) and (== (alcoholLamp:form) 30))
                    (send global2:setScript(sDoSpectroLines))
                )(else
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                    (send gFpMessager:say(noun theVerb 23))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance pillMachine of LabItem
    (properties
        x 54
        y 170
        noun 38
        view 621
        objType 4
        objName 41
    )

    (method (dispose)
        (if (amount)
            (send contents:dispose())
        )
        (super:dispose())
    )


    (method (cue)
        (self:stopUpd())
        (send gGame:handsOn())
        (send gIconBar:disable(1 3 7))
    )


    (method (touchItem)
        (if (== amount 0)
            (send gFpMessager:say(noun 4))
        )(else
            (if (== form 29)
                (send gFpMessager:say(noun 4 16))
            )(else
                (send gGame:handsOff())
                (send gGameMusic2:
                    number(621)
                    loop(1)
                    flags(1)
                    play(self)
                )
                (self:setCycle(End))
                = theForm form
                = form 29
                = amount (- amount local5)
                (if (<= amount 0)
                    = amount 0
                )
                proc625_0(self)
            )
        )
    )


    (method (useItem)
        (if (== (send gMedicineBottle:objType) 4)
            (if ((== amount 0) and (<> form 29))
                (send gGameMusic2:
                    number(2926)
                    loop(1)
                    flags(1)
                    play()
                )
                (send gFpMessager:say(noun 77 12))
            )(else
                (if (== (send gMedicineBottle:amount) 0)
                    (send gMedicineBottle:
                        contents((List:new()))
                        form(29)
                        amount(3)
                        contentState(contentState)
                    )
                    = local2 0
                    (while (< local2 (send contents:size))
                        (send ((send gMedicineBottle:contents)):addToEnd((send ((ChemicalObj:new())):
                                chemicalName((send ((send contents:at(local2))):chemicalName))
                                chemicalAmount((send ((send contents:at(local2))):chemicalAmount))
                            )
))
                        ++local2
                    )
                    (if (== form 29)
                        (self:setCycle(Beg self))
                        = form theForm
                    )(else
                        (send gGame:handsOff())
                        (send gGameMusic2:
                            number(621)
                            loop(1)
                            flags(1)
                            play(self)
                        )
                        (self:setCycle(Osc 1))
                        = amount (- amount local5)
                        (if (<= amount 0)
                            = amount 0
                            = contentState 49
                            (send contents:dispose())
                            = contents 0
                        )
                    )
                    proc625_0(self)
                )(else
                    = local4 0
                    (if ((== (send gMedicineBottle:form) 29) and (== (send ((send gMedicineBottle:contents)):size) (send contents:size)))
                        = local2 0
                        (while (< local2 (send contents:size))
                            = local4 0
                            = local3 0
                            (while (< local3 (send contents:size))
                                (if ((== (send ((send contents:at(local2))):chemicalName) (send ((send ((send gMedicineBottle:contents)):at(local2))):chemicalName)) and (== (send ((send contents:at(local2))):chemicalAmount) (send ((send ((send gMedicineBottle:contents)):at(local2))):chemicalAmount)))
                                    break
                                )
                                ++local3
                            )
                            (if (== local4 0)
                                break
                            )
                            ++local2
                        )
                    )
                    (if (<> (send gMedicineBottle:form) 29)
                        (send gGameMusic2:
                            number(2926)
                            loop(1)
                            flags(1)
                            play()
                        )
                        (send gFpMessager:say(noun 77 17))
                    )(else
                        (if (local4)
                            (send gMedicineBottle:amount((+ (send gMedicineBottle:amount) 3)))
                            (if (== form 29)
                                (self:setCycle(Beg self))
                                = form theForm
                            )(else
                                (send gGame:handsOff())
                                (send gGameMusic2:
                                    number(621)
                                    loop(1)
                                    flags(1)
                                    play(self)
                                )
                                (self:setCycle(Osc 1))
                                = amount (- amount local5)
                            )
                            (if (<= amount 0)
                                = amount 0
                                = contentState 49
                                = form 0
                                (send contents:dispose())
                                = contents 0
                            )
                            proc625_0(self)
                        )(else
                            (send gGameMusic2:
                                number(2926)
                                loop(1)
                                flags(1)
                                play()
                            )
                            (send gFpMessager:say(noun 77 1))
                        )
                    )
                )
            )
        )(else
            (if (== (send gMedicineBottle:objType) 3)
                (if (== (send gMedicineBottle:amount) 0)
                    (send gGameMusic2:
                        number(2731)
                        flags(1)
                        loop(1)
                        play()
                    )
                    (send gFpMessager:say(51))
                )(else
                    (if (amount)
                        (send gGameMusic2:
                            number(2926)
                            loop(1)
                            flags(1)
                            play()
                        )
                        (send gFpMessager:say(noun 76 15))
                    )(else
                        (if ((send gMedicineBottle:amount) and (< (send ((send gMedicineBottle:contents)):size) 2))
                            (send gFpMessager:say(noun 73))
                        )(else
                            (if ((== (send gMedicineBottle:form) 26) or (== (send gMedicineBottle:form) 28))
                                (if (== (send gMedicineBottle:amount) 0)
                                    (send gGameMusic2:
                                        number(2731)
                                        flags(1)
                                        loop(1)
                                        play()
                                    )
                                    (send gFpMessager:say(51))
                                )(else
                                    = contents (send gMedicineBottle:contents)
                                    = amount (send gMedicineBottle:amount)
                                    = form (send gMedicineBottle:form)
                                    = contentState (send gMedicineBottle:contentState)
                                    (send gMedicineBottle:
                                        contents(0)
                                        amount(0)
                                        form(0)
                                        contentState(49)
                                    )
                                    (if (== (% amount 10) 0)
                                        = local5 (/ amount 10)
                                    )(else
                                        = local5 (/ amount 6)
                                    )
                                    proc625_0(self)
                                )
                            )(else
                                (send gGameMusic2:
                                    number(2926)
                                    loop(1)
                                    flags(1)
                                    play()
                                )
                                (send gFpMessager:say(noun 76 1))
                            )
                        )
                    )
                )
            )(else
                (if (== (send gMedicineBottle:objType) 2)
                    (send gFpMessager:say(noun 73))
                )(else
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                )
            )
        )
    )

)
(instance balance1 of LabItem
    (properties
        x 226
        y 162
        noun 52
        view 620
        loop 3
        objType 2
        objName 33
        form 34
    )

    (method (touchItem)
        (if (amount)
            (self:setCel(1))
            = form 0
            = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
            (send gCursorNumber:
                view(620)
                setLoop(15)
                setCel(1)
                init()
            )
            (balPan:
                init()
                hide()
                setCel(1)
                contents(contents)
                amount(amount)
                form(26)
                startY(132)
            )
            = gMedicineBottle balPan
            = amount (= contents 0)
            proc625_0(self)
        )(else
            (if (== form 34)
                (self:setCel(1))
                = form 0
                = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
                (send gCursorNumber:
                    view(620)
                    setLoop(15)
                    setCel(0)
                    init()
                )
                (balPan:
                    init()
                    hide()
                    setCel(0)
                    contents(0)
                    amount(0)
                    startY(131)
                )
                = gMedicineBottle balPan
            )(else
                (send gFpMessager:say(noun 4))
            )
        )
    )


    (method (useItem)
        (if (amount)
            (if ((== (send gMedicineBottle:objType) 1) and (== (send gMedicineBottle:form) 26))
                (if (== contents (send gMedicineBottle:objName))
                    = amount (+ amount 5)
                    proc625_0(self)
                )(else
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                    (send gFpMessager:say(noun 76 20))
                )
            )(else
                (if (== (send gMedicineBottle:objName) 35)
                    (if ((send gMedicineBottle:amount) and (== (send ((send gMedicineBottle:contents)):size) 1))
                        (if (== contents (send ((send ((send gMedicineBottle:contents)):at(0))):chemicalName))
                            = amount (+ amount 5)
                            (send ((send gMedicineBottle:contents)):dispose())
                            (send gMedicineBottle:
                                contents(0)
                                amount(0)
                                form(0)
                                contentState(49)
                            )
                            proc625_0(self)
                        )(else
                            (send gGameMusic2:
                                number(2926)
                                loop(1)
                                flags(1)
                                play()
                            )
                            (send gFpMessager:say(noun 76 20))
                        )
                    )(else
                        (if ((send gMedicineBottle:amount) and (> (send ((send gMedicineBottle:contents)):size) 1))
                            (send gGameMusic2:
                                number(2926)
                                loop(1)
                                flags(1)
                                play()
                            )
                            (send gFpMessager:say(noun 76 1))
                        )(else
                            (send gMedicineBottle:
                                amount(5)
                                contents((List:new()))
                                form(26)
                                contentState(49)
                            )
                            (send ((send gMedicineBottle:contents)):addToEnd((send ((ChemicalObj:new())):
                                    chemicalName(contents)
                                    chemicalAmount(5)
                                )
))
                            = amount (- amount 5)
                            (if (== amount 0)
                                (self:
                                    setCel(0)
                                    contents(0)
                                    form(34)
                                )
                            )
                            proc625_0(self)
                        )
                    )
                )(else
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                )
            )
        )(else
            (if (== form 34)
                (if ((== (send gMedicineBottle:objType) 1) and (== (send gMedicineBottle:form) 26))
                    (self:
                        setCel(2)
                        contents((send gMedicineBottle:objName))
                        amount(5)
                    )
                    proc625_0(self)
                )(else
                    (if (== (send gMedicineBottle:objName) 35)
                        (if ((send gMedicineBottle:amount) and (== (send ((send gMedicineBottle:contents)):size) 1))
                            (self:
                                setCel(2)
                                contents((send ((send ((send gMedicineBottle:contents)):at(0))):chemicalName))
                                amount(5)
                            )
                            (send ((send gMedicineBottle:contents)):dispose())
                            (send gMedicineBottle:
                                contents(0)
                                amount(0)
                                form(0)
                                contentState(49)
                            )
                            proc625_0(self)
                        )(else
                            (if ((send gMedicineBottle:amount) and (> (send ((send gMedicineBottle:contents)):size) 1))
                                (send gGameMusic2:
                                    number(2926)
                                    loop(1)
                                    flags(1)
                                    play()
                                )
                                (send gFpMessager:say(noun 76 1))
                            )(else
                                (send gGameMusic2:
                                    number(2731)
                                    flags(1)
                                    loop(1)
                                    play()
                                )
                                (send gFpMessager:say(51))
                            )
                        )
                    )(else
                        (send gGameMusic2:
                            number(2926)
                            loop(1)
                            flags(1)
                            play()
                        )
                    )
                )
            )(else
                (if ((== (send gMedicineBottle:objType) 1) and (== (send gMedicineBottle:form) 26))
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                    (send gFpMessager:say(noun 72 18))
                )(else
                    (if (== (send gMedicineBottle:objName) 35)
                        (if ((send gMedicineBottle:amount))
                            (send gGameMusic2:
                                number(2926)
                                loop(1)
                                flags(1)
                                play()
                            )
                            (send gFpMessager:say(noun 72 18))
                        )(else
                            (send gGameMusic2:
                                number(2731)
                                flags(1)
                                loop(1)
                                play()
                            )
                            (send gFpMessager:say(51))
                        )
                    )(else
                        (if (== (send gMedicineBottle:objName) 34)
                            (if ((send gMedicineBottle:amount))
                                (self:
                                    setCel(2)
                                    contents((send gMedicineBottle:contents))
                                    amount((send gMedicineBottle:amount))
                                )
                                proc625_0(self)
                            )(else
                                (self:setCel(0))
                            )
                            = form 34
                            (send gMedicineBottle:dispose())
                            = gMedicineBottle 0
                            proc625_1()
                        )(else
                            (send gGameMusic2:
                                number(2926)
                                loop(1)
                                flags(1)
                                play()
                            )
                        )
                    )
                )
            )
        )
    )

)
(instance balPan of LabItem
    (properties
        noun 60
        view 620
        loop 15
        objType 2
        objName 34
        form 0
        startX 227
        startY 131
    )

    (method (cue)
        (if (amount)
            (balance1:
                setCel(2)
                contents(contents)
                amount(amount)
            )
        )(else
            (balance1:setCel(0))
        )
        (balance1:form(34))
        (self:dispose())
    )


    (method (useItem)
        (if (amount)
            (if ((== (send gMedicineBottle:objType) 1) and (== (send gMedicineBottle:form) 26))
                (if (== contents (send gMedicineBottle:objName))
                    = amount (+ amount 5)
                )(else
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                    (send gFpMessager:say(noun 76 20))
                )
            )(else
                (if (== (send gMedicineBottle:objName) 35)
                    (if ((send gMedicineBottle:amount) and (== (send ((send gMedicineBottle:contents)):size) 1))
                        (if (== contents (send ((send ((send gMedicineBottle:contents)):at(0))):chemicalName))
                            = amount (+ amount 5)
                            (send ((send gMedicineBottle:contents)):dispose())
                            (send gMedicineBottle:
                                contents(0)
                                amount(0)
                                form(0)
                                contentState(49)
                            )
                        )(else
                            (send gGameMusic2:
                                number(2926)
                                loop(1)
                                flags(1)
                                play()
                            )
                            (send gFpMessager:say(noun 76 20))
                        )
                    )(else
                        (if ((send gMedicineBottle:amount) and (> (send ((send gMedicineBottle:contents)):size) 1))
                            (send gGameMusic2:
                                number(2926)
                                loop(1)
                                flags(1)
                                play()
                            )
                            (send gFpMessager:say(noun 76 1))
                        )(else
                            (send gMedicineBottle:
                                amount(5)
                                contents((List:new()))
                                form(26)
                                contentState(49)
                            )
                            (send ((send gMedicineBottle:contents)):addToEnd((send ((ChemicalObj:new())):
                                    chemicalName(contents)
                                    chemicalAmount(5)
                                )
))
                            = amount (- amount 5)
                            (if (== amount 0)
                                (self:
                                    setCel(0)
                                    contents(0)
                                    form(34)
                                )
                            )
                        )
                    )
                )(else
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                )
            )
        )(else
            (if ((== (send gMedicineBottle:objType) 1) and (== (send gMedicineBottle:form) 26))
                (self:
                    setCel(1)
                    contents((send gMedicineBottle:objName))
                    amount(5)
                )
            )(else
                (if (== (send gMedicineBottle:objName) 35)
                    (if ((send gMedicineBottle:amount) and (== (send ((send gMedicineBottle:contents)):size) 1))
                        (self:
                            setCel(1)
                            contents((send ((send ((send gMedicineBottle:contents)):at(0))):chemicalName))
                            amount(5)
                        )
                        (send ((send gMedicineBottle:contents)):dispose())
                        (send gMedicineBottle:
                            contents(0)
                            amount(0)
                            form(0)
                            contentState(49)
                        )
                    )(else
                        (if ((send gMedicineBottle:amount) and (> (send ((send gMedicineBottle:contents)):size) 1))
                            (send gGameMusic2:
                                number(2926)
                                loop(1)
                                flags(1)
                                play()
                            )
                            (send gFpMessager:say(noun 76 1))
                        )(else
                            (send gGameMusic2:
                                number(2731)
                                flags(1)
                                loop(1)
                                play()
                            )
                            (send gFpMessager:say(51))
                        )
                    )
                )(else
                    (send gGameMusic2:
                        number(2926)
                        loop(1)
                        flags(1)
                        play()
                    )
                )
            )
        )
    )

)
(instance dumper of LabItem
    (properties
        x 260
        y 173
        noun 16
        view 620
        loop 14
    )

    (method (touchItem)
        (send gFpMessager:say(noun 4))
    )


    (method (useItem)
        (if (proc999_5((send gMedicineBottle:objName) 43 42 45))
            (send gMedicineBottle:dispose())
            = gMedicineBottle 0
            proc625_1()
            (send gFpMessager:say(16 74 21))
        )(else
            (if (((== (send gMedicineBottle:objType) 1) or (== (send gMedicineBottle:amount) 0)) or ((== (send gMedicineBottle:objName) 48) and (== (send gMedicineBottle:contents) 25)))
                (send gGameMusic2:
                    number(2926)
                    loop(1)
                    flags(1)
                    play()
                )
                (send gFpMessager:say(16 74 4))
            )(else
                (switch ((send gMedicineBottle:objName))
                    (case 35
                        (send ((spatula1:contents)):dispose())
                    )
                    (case 36
                        (send ((beaker1:contents)):dispose())
                    )
                    (case 37
                        (send ((mortar:contents)):dispose())
                    )
                    (case 38
                        (send ((testTube1:contents)):dispose())
                    )
                    (case 39
                        (send ((medicineBottle:contents)):dispose())
                    )
                    (case 40
                        (send ((solidBox:contents)):dispose())
                    )
                    (case 34
                        (send gMedicineBottle:setCel(0))
                        = gCursorNumber (send ((send gIconBar:curIcon)):cursor)
                        (send gCursorNumber:
                            view(620)
                            setLoop(15)
                            setCel(0)
                            init()
                        )
                    )
                )
                (send gMedicineBottle:
                    amount(0)
                    contents(0)
                    form(0)
                    contentState(49)
                )
                (send gFpMessager:say(16 74))
            )
        )
    )

)
(instance puff of View
    (properties
        x 100
        y 146
        view 623
        loop 1
        priority 15
        signal $4010
    )
)
(instance workArea of Feature
    (properties
        x 164
        y 113
        z -50
        nsTop 157
        nsLeft 94
        nsBottom 171
        nsRight 204
    )

    (method (doVerb theVerb)
        (asm
            lsp     theVerb
            dup     
            ldi     4
            eq?     
            bnt     code_2ccb
            lag     gMedicineBottle
            bnt     code_2c8c
            pushi   #objName
            pushi   0
            send    4
            push    
            ldi     43
            eq?     
            bnt     code_2c8c
            pushi   #number
            pushi   1
            pushi   2926
            pushi   3
            pushi   1
            pushi   1
            pushi   99
            pushi   1
            pushi   1
            pushi   39
            pushi   0
            lag     gGameMusic2
            send    22
            pushi   #say
            pushi   3
            pushi   47
            pushi   0
            pushi   14
            lag     gFpMessager
            send    10
            jmp     code_2ce8
code_2c8c:  lag     gMedicineBottle
            bnt     code_2cbc
            pushi   302
            pushi   #x
            pushi   0
            pushi   153
            pushi   2
            lsg     gOrigX
            lsg     gPEventY
            ldi     10
            sub     
            push    
            pushi   224
            pushi   0
            pushi   299
            pushi   0
            lag     gMedicineBottle
            send    22
            pushi   0
            calle   proc625_1, 0
            ldi     0
            sag     gMedicineBottle
            jmp     code_2ce8
code_2cbc:  pushi   #say
            pushi   2
            pushi   55
            pushi   4
            lag     gFpMessager
            send    8
            jmp     code_2ce8
code_2ccb:  dup     
            ldi     8
            eq?     
            bnt     code_2cdf
            pushi   #doVerb
            pushi   1
            pushi   8
            lag     global2
            send    6
            jmp     code_2ce8
code_2cdf:  pushi   #doVerb
            pushi   1
            lsp     theVerb
            super   Feature, 6
code_2ce8:  toss    
            ret     
        )
    )

)
(instance spectroInset of Inset
    (properties
        view 623
        loop 2
        x 105
        y 143
        disposeNotOnMe 1
    )

    (method (dispose param1)
        (super:dispose(rest param1))
        (send gIconBar:disable(7))
    )


    (method (doVerb)
        (self:dispose())
    )

)
