spiffyscore

Check-in [ba64e400ba]
Login
Overview
SHA1:ba64e400ba60d9c3a43262dcfe3d990d93a82873
Date: 2011-10-20 18:44:05
User: brian
Comment:Yay, first alpha release. program supports syncing and basic section/subsection ordering.
Timelines: family | ancestors | trunk | v0.1
Downloads: Tarball | ZIP archive
Other Links: files | file ages | folders | manifest
Tags And Properties
Context
2011-10-20
18:44
[ba64e400ba] Leaf: Yay, first alpha release. program supports syncing and basic section/subsection ordering. (user: brian, tags: trunk, v0.1)
18:38
[8c559c112b] Merged the refactor branch into the main develop branch (user: brian, tags: develop)
2010-11-04
20:07
[6bfc2449ff] Generates a score randomly. Too little guarantee of program length (lots of empty or single-phrase strings) (user: spiffytech@gmail.com, tags: ply, trunk)
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Added cfg.orc version [8f705f0ccb].

            1  +sr=44100
            2  +ksmps=20
            3  +nchnls=1
            4  +
            5  +instr 1
            6  +    asound pluck   p4, cpspch(p5), cpspch(p6), p7, p8 p9 p10
            7  +    out asound
            8  +endin
            9  +
           10  +instr 2
           11  +    kenv linen p4, .1, p3, .2; envelope
           12  +    asound oscili kenv, cpspch(p5), p6; oscillator
           13  +    out asound
           14  +endin
           15  +
           16  +instr 3
           17  +    asound foscili p4, cpspch(p5), 5, 2, 3, p9
           18  +    out asound
           19  +endin
           20  +
           21  +instr 4
           22  +    aFMinst foscili p4, cpspch(p5), p6, p7, p8, p9
           23  +endin

Modified cfg.py from [8ccb7c15cb] to [6468589fde].

     1      1   #!/usr/bin/env python
     2      2   
            3  +from __future__ import division
            4  +import ipdb
     3      5   import os
     4      6   import random
     5      7   import sys
     6      8   import time
            9  +
           10  +import parse
           11  +import topsort
           12  +import yaml
           13  +
           14  +import tree
           15  +
     7     16   random.seed(time.time())
     8     17   
     9         -grammars = {
    10         -    "u": ["I V I IV u", "e"],
    11         -    "e": [""],
    12         -}
           18  +def main():
           19  +    composition = {
           20  +        "fm_test": {
           21  +            "intro": {
           22  +                "melody": {  # Instrument 'melody'
           23  +                    "score_line": "i2 %(time)f %(duration)f 7000 %(octave)d.%(note)s 2 6 5 1",
           24  +                    "octave": 8,
           25  +                    "duration": 10,
           26  +                    "grammars": {  # Notes for this instrument to use in this piece
           27  +                        "u": ["G/2 G/2 | G/4 G/4 A/4 A/4 | A/2 A/2 | G | G | A | A | A3 (w)"],
           28  +                        "w": ["E | E | F | F | G/2 G/2 | G3 (u)"],
           29  +                    },
           30  +                },
           31  +            },
           32  +        },
           33  +        "verse1": {
           34  +            "intro": {
           35  +                "melody": {  # Instrument 'melody'
           36  +                    "score_line": "i2 %(time)f %(duration)f 7000 %(octave)d.%(note)s 1",
           37  +                    "octave": 8,
           38  +                    "duration": 10,
           39  +                    "grammars": {  # Notes for this instrument to use in this piece
           40  +                        "u": ["G/2 G/2 | G/4 G/4 A/4 A/4 | A/2 A/2 | G | G | A | A | A3 (w)"],
           41  +                        "w": ["E | E | F | F | G/2 G/2 | G3 (u)"],
           42  +                    },
           43  +                },
           44  +            },
           45  +            "body": {
           46  +                "melody": {  # Instrument 'melody'
           47  +                    "score_line": "i2 %(time)f %(duration)f 7000 %(octave)d.%(note)s 1",
           48  +                    "octave": 8,
           49  +                    "duration": 10,
           50  +                    "grammars": {  # Notes for this instrument to use in this piece
           51  +                        "u": ["C | G/2 G/2 | G/2 G/2 | C | B, | F' | C | F | C | B | F | (w)"],
           52  +                        "w": ["E/4 A/4 D/4 G/4 | F/4 F/4 B2 | (u)"],
           53  +                    },
           54  +                },
           55  +            },
           56  +            "outro": {
           57  +                "melody": {  # Instrument 'melody'
           58  +                    "score_line": "i2 %(time)f %(duration)f 7000 %(octave)d.%(note)s 1",
           59  +                    "octave": 8,
           60  +                    "duration": 10,
           61  +                    "grammars": {  # Notes for this instrument to use in this piece
           62  +                        "u": ["C/4 C/4 C/4 C/4 | z2"],
           63  +                    },
           64  +                },
           65  +            },
           66  +        },
           67  +        "verse2": {
           68  +            "body": {
           69  +                "melody": {  # Instrument 'melody'
           70  +                    "score_line": "i2 %(time)f %(duration)f 7000 %(octave)d.%(note)s 1",
           71  +                    "octave": 8,
           72  +                    "duration": 30,
           73  +                    "grammars": {  # Notes for this instrument to use in this piece
           74  +                        "u": ["C | C | C | C | F/2 F/2 | F/2 F/2 | (u)", "D | D | G/2 A/2 | D | D | (u)"],
           75  +                    },
           76  +                },
           77  +                "harmony": {  # Instrument 'melody'
           78  +                    "score_line": "i3 %(time)f %(duration)f 4000 %(octave)d.%(note)s 2 3 5 3",
           79  +                    "octave": 8,
           80  +                    "duration": 30,
           81  +                    "grammars": {  # Notes for this instrument to use in this piece
           82  +                        "u": ["C | C | z | C | C | z/2 F/4 F/2 F/2 | F/2 F/2 | z (u)", "D | D | G/2 A/2 | D | D | z (u)"],
           83  +                    },
           84  +                },
           85  +                "percussion": {  # Instrument 'melody'
           86  +                    "score_line": "i1 %(time)f %(duration)f 7000 %(octave)d.%(note)s %(octave)d.%(note)s 0 6",
           87  +                    "octave": 8,
           88  +                    "duration": 30,
           89  +                    "grammars": {  # Notes for this instrument to use in this piece
           90  +                        "u": ["C/4 C/4 C/4 C/4 | F/2 F/2 | F/2 F/2 | (u)", "D/4 D/4 G/4 A/4 | D | D | (v)"],
           91  +                        "v": ["C | D | E | F | E | D | C | (u)",],
           92  +                    },
           93  +                },
           94  +            },
           95  +            "outro": {
           96  +                "percussion": {  # Instrument 'melody'
           97  +                    "score_line": "i1 %(time)f %(duration)f 7000 %(octave)d.%(note)s %(octave)d.%(note)s 0 6",
           98  +                    "octave": 8,
           99  +                    "duration": 30,
          100  +                    "grammars": {  # Notes for this instrument to use in this piece
          101  +                        "u": ["C/4 C/4 C/4 C/4"],
          102  +                    },
          103  +                },
          104  +            },
          105  +        },
          106  +        "sync_test": {
          107  +            "body": {
          108  +                "lead_instr": {  # Instrument 'melody'
          109  +                    "score_line": "i1 %(time)f %(duration)f 7000 %(octave)d.%(note)s %(octave)d.%(note)s 0 6",
          110  +                    "octave": 8,
          111  +                    "duration": 30,
          112  +                    "grammars": {  # Notes for this instrument to use in this piece
          113  +                        "u": ["D/4 D/4 D/4 D/4"],
          114  +                        "v": ["C/4 C/4 C/4 C/4"],
          115  +                    },
          116  +                },
          117  +                "follow_instr": {  # Instrument 'melody'
          118  +                    "score_line": "i2 %(time)f %(duration)f 7000 %(octave)d.%(note)s 1",
          119  +                    "sync": "lead_instr",
          120  +                    "octave": 8,
          121  +                    "duration": 30,
          122  +                    "grammars": {  # Notes for this instrument to use in this piece
          123  +                        "u": ["D/4 D/4 D/4 D/4"],
          124  +                        "v": ["C/4 C/4 C/4 C/4"],
          125  +                    },
          126  +                },
          127  +            },
          128  +        },
          129  +    }
          130  +    print '''f1 0 512 10 1
          131  +f2 0 8192 10 .24 .64 .88 .76 .06 .5 .34 .08
          132  +f3 0 1025 10 1
          133  +t 0 100
          134  +    '''
          135  +
          136  +    section_start = 0
          137  +#    for section in ["verse1", "verse2"]:
          138  +    for section in ["sync_test"]:
          139  +        print "; Section " + section
          140  +        subsection_start = section_start
          141  +        section = composition[section]
          142  +        for subsection in ["intro", "body", "outro"]:
          143  +            try:
          144  +                print "; Subsection " + subsection
          145  +                subsection = section[subsection]
          146  +
          147  +                unordered_instrs = []
          148  +                for instr in subsection:
          149  +                    subsection[instr]["name"] = instr
          150  +                    if not "sync" in subsection[instr].keys():
          151  +                        subsection[instr]["sync"] = None
          152  +                    unordered_instrs.append([subsection[instr]["sync"], instr])
          153  +                ordered_instrs = topsort.topsort(unordered_instrs)
          154  +                ordered_instrs.remove(None)  # None used as a placeholder for sort order for instruments with no sync setting
          155  +
          156  +                instrs = []
          157  +                syncs = {}
          158  +                for instr in ordered_instrs:
          159  +                    print ";Instrument " + instr
          160  +                    instr = subsection[instr]
          161  +                    max_time = instr["duration"]
          162  +                    instr_score, syncs = render_instr(instr, syncs, max_time)
          163  +                    instrs.append(instr_score)
          164  +                    for line in generate_csound_score(instr_score, instr["score_line"], subsection_start):
          165  +                        print line
          166  +                longest_score = max(instrs, key=lambda i: score_len(i))
          167  +                subsection_start += score_len(longest_score)
          168  +                section_start += score_len(longest_score)
          169  +            except KeyError:
          170  +                pass
          171  +
          172  +
          173  +def render_instr(instr, syncs, max_time):
          174  +    for g in instr["grammars"]:
          175  +        for i in range(len(instr["grammars"][g])):
          176  +            instr["grammars"][g][i] = parse.parse(instr["grammars"][g][i])
          177  +
          178  +    score= []
          179  +    try:
          180  +        score, syncs = choose_phrase(instr, syncs, 0, max_time)
          181  +
          182  +        while True:
          183  +            score_index_to_replace = None
          184  +            for item in range(len(score)):  # Optimize this by caching the index of the last node I replaced and startng there
          185  +                if isinstance(score[item], tree.Tree):
          186  +                    score_index_to_replace = item
          187  +            if score_index_to_replace is None:
          188  +                raise ValueError("No more nodes to fill in")
          189  +
          190  +            time_remaining = max_time - score_len(score)
          191  +            new_phrase, syncs = choose_phrase(instr, syncs, score_len(score), time_remaining)
          192  +            score = score[:node_index-1] + new_phrase + score[node_index+1:]
          193  +
          194  +    except ValueError:
          195  +        return (score, syncs)
          196  +
          197  +
          198  +def choose_phrase(instr, syncs, current_time, time_remaining):
          199  +    '''Filters grammars for ones that match the sync option, and phrases that fit the time remaining in the score'''
          200  +    time_filtered_grammars = {}
          201  +    for grammar in instr["grammars"]:
          202  +        time_filtered_grammars[grammar] = get_phrases_that_fit(instr["grammars"][grammar], time_remaining)
          203  +    if len(time_filtered_grammars.keys()) == 0:
          204  +        raise ValueError("No available grammars that will fit in the score")
          205  +
          206  +    grammar = None
          207  +#    if instr["name"] == "follow_instr":
          208  +#        ipdb.set_trace()
          209  +    if instr["sync"] is not None:
          210  +        guiding_instr = instr["sync"]
          211  +        sync_node = get_sync_node_at_time(syncs[guiding_instr], current_time)
          212  +        if sync_node in time_filtered_grammars.keys():
          213  +            grammar = sync_node
          214  +    if grammar is None:
          215  +        grammar = random.choice(time_filtered_grammars.keys())
          216  +    phrases = time_filtered_grammars[grammar]
          217  +    if instr["name"] not in syncs.keys():
          218  +        syncs[instr["name"]] = []
          219  +    syncs[instr["name"]].append({"node": grammar, "time": current_time})
          220  +
          221  +    return random.choice(phrases), syncs
          222  +
          223  +
          224  +def get_phrases_that_fit(grammar, time_remaining):
          225  +    valid_phrases = []
          226  +    for phrase in grammar:
          227  +        if score_len(phrase) <= time_remaining:
          228  +            valid_phrases.append(phrase)
          229  +    return valid_phrases
          230  +
          231  +
          232  +def get_sync_node_at_time(syncs, t):
          233  +    for s in range(len(syncs)):
          234  +        if syncs[s]["time"] >= t:
          235  +            return syncs[s]["node"]
          236  +
          237  +
          238  +def score_len(score):
          239  +    total = 0
          240  +    for n in score:
          241  +        if not isinstance(n, tree.Tree):
          242  +            total += n.duration
          243  +    return total
          244  +
    13    245   
    14         -score = "u"
          246  +def generate_csound_score(score, score_line, t):
          247  +    csound_note_values = {
          248  +        "C": "00",
          249  +        "C#": "01",
          250  +        "D": "02",
          251  +        "D#": "03",
          252  +        "E": "04",
          253  +        "F": "05",
          254  +        "F#": "06",
          255  +        "G": "07",
          256  +        "G#": "08",
          257  +        "A": "09",
          258  +        "A#": "10",
          259  +        "B": "11",
          260  +    }
          261  +    csound_score = []
          262  +    for token in score:
          263  +        if isinstance(token, parse.Chord):  # Chords
          264  +            for note in token.chord: 
          265  +                note = csound_note_values[note]
          266  +                csound_score.append(score_line % {"time": t, "octave": token.octave, "note": note, "duration": token.duration})
          267  +        elif isinstance(token, parse.Note):  # Individual notes
          268  +            note = csound_note_values[token.value]
          269  +            csound_score.append(score_line % {"time": t, "octave": token.octave, "note": note, "duration": token.duration})
          270  +        elif isinstance(token, tree.Tree):
          271  +            continue
          272  +        t += token.duration
          273  +    return csound_score
          274  +
    15    275   
    16         -print score
    17         -while 1:
    18         -    found_substitution = False
    19         -    for key,value in grammars.iteritems():
    20         -        print "key, value =", key, value
    21         -        if score.find(key) != -1:
    22         -            print "here"
    23         -            found_substitution = True
    24         -            while score.find(key) != -1:
    25         -                score = score.replace(key, random.choice(grammars[key]), 1)
    26         -                print score
    27         -                time.sleep(.25)
    28         -    if found_substitution is False:
    29         -        break
    30         -print score
          276  +if __name__ == "__main__": main() 

Added cfg.sco version [c92bf3908c].

            1  +f1  0  512  10  1
            2  +            f2 0 8192 10 .24 .64 .88 .76 .06 .5 .34 .08
            3  +            f3 0 1025 10 1
            4  +    
            5  +; Movement: intro1
            6  +i1 0.000000 0.500000 7000 7.11 7.11 0 6
            7  +i1 0.000000 0.500000 7000 7.04 7.04 0 6
            8  +i1 0.000000 0.500000 7000 7.08 7.08 0 6
            9  +i1 0.500000 2.000000 7000 7.08 7.08 0 6
           10  +i1 0.500000 2.000000 7000 7.11 7.11 0 6
           11  +i1 0.500000 2.000000 7000 7.02 7.02 0 6
           12  +i1 2.500000 0.500000 7000 7.04 7.04 0 6
           13  +i1 2.500000 0.500000 7000 7.09 7.09 0 6
           14  +i1 2.500000 0.500000 7000 7.11 7.11 0 6
           15  +i1 3.000000 0.500000 7000 7.06 7.06 0 6
           16  +i1 3.000000 0.500000 7000 7.09 7.09 0 6
           17  +i1 3.000000 0.500000 7000 7.01 7.01 0 6
           18  +i1 3.500000 0.500000 7000 7.11 7.11 0 6
           19  +i1 3.500000 0.500000 7000 7.04 7.04 0 6
           20  +i1 3.500000 0.500000 7000 7.08 7.08 0 6
           21  +; Movement: intro2
           22  +i3 4.000000 2.000000 2000 6.09 2 3 5 3
           23  +i3 6.000000 2.000000 2000 6.08 2 3 5 3
           24  +i3 8.000000 2.000000 2000 6.04 2 3 5 3
           25  +i3 10.000000 2.000000 2000 6.06 2 3 5 3
           26  +i1 4.000000 0.500000 7000 7.11 7.11 0 6
           27  +i1 4.000000 0.500000 7000 7.04 7.04 0 6
           28  +i1 4.000000 0.500000 7000 7.08 7.08 0 6
           29  +i1 4.500000 2.000000 7000 7.08 7.08 0 6
           30  +i1 4.500000 2.000000 7000 7.11 7.11 0 6
           31  +i1 4.500000 2.000000 7000 7.02 7.02 0 6
           32  +i1 6.500000 0.500000 7000 7.04 7.04 0 6
           33  +i1 6.500000 0.500000 7000 7.09 7.09 0 6
           34  +i1 6.500000 0.500000 7000 7.11 7.11 0 6
           35  +i1 7.000000 0.500000 7000 7.06 7.06 0 6
           36  +i1 7.000000 0.500000 7000 7.09 7.09 0 6
           37  +i1 7.000000 0.500000 7000 7.01 7.01 0 6
           38  +i1 7.500000 0.500000 7000 7.11 7.11 0 6
           39  +i1 7.500000 0.500000 7000 7.04 7.04 0 6
           40  +i1 7.500000 0.500000 7000 7.08 7.08 0 6
           41  +i1 8.000000 2.000000 7000 7.08 7.08 0 6
           42  +i1 8.000000 2.000000 7000 7.11 7.11 0 6
           43  +i1 8.000000 2.000000 7000 7.02 7.02 0 6
           44  +i1 10.000000 0.500000 7000 7.04 7.04 0 6
           45  +i1 10.000000 0.500000 7000 7.09 7.09 0 6
           46  +i1 10.000000 0.500000 7000 7.11 7.11 0 6
           47  +i1 10.500000 0.500000 7000 7.06 7.06 0 6
           48  +i1 10.500000 0.500000 7000 7.09 7.09 0 6
           49  +i1 10.500000 0.500000 7000 7.01 7.01 0 6
           50  +i1 11.000000 0.500000 7000 7.11 7.11 0 6
           51  +i1 11.000000 0.500000 7000 7.04 7.04 0 6
           52  +i1 11.000000 0.500000 7000 7.08 7.08 0 6
           53  +; Movement: overview
           54  +i3 12.000000 2.000000 2000 6.09 2 3 5 3
           55  +i3 14.000000 2.000000 2000 6.08 2 3 5 3
           56  +i3 16.000000 2.000000 2000 6.04 2 3 5 3
           57  +i3 18.000000 2.000000 2000 6.06 2 3 5 3
           58  +i3 20.000000 2.000000 2000 6.09 2 3 5 3
           59  +i3 22.000000 0.500000 2000 6.02 2 3 5 3
           60  +i3 22.500000 0.500000 2000 6.04 2 3 5 3
           61  +i3 23.000000 2.000000 2000 6.01 2 3 5 3
           62  +i3 25.000000 2.000000 2000 6.09 2 3 5 3
           63  +i3 27.000000 2.000000 2000 6.08 2 3 5 3
           64  +i3 29.000000 2.000000 2000 6.04 2 3 5 3
           65  +i3 31.000000 2.000000 2000 6.06 2 3 5 3
           66  +i3 33.000000 2.000000 2000 6.09 2 3 5 3
           67  +i3 35.000000 0.500000 2000 6.02 2 3 5 3
           68  +i3 35.500000 0.500000 2000 6.04 2 3 5 3
           69  +i3 36.000000 2.000000 2000 6.01 2 3 5 3
           70  +i3 38.000000 2.000000 2000 6.09 2 3 5 3
           71  +i3 40.000000 2.000000 2000 6.02 2 3 5 3
           72  +i3 42.000000 2.000000 2000 6.04 2 3 5 3
           73  +i3 44.000000 0.250000 2000 6.02 2 3 5 3
           74  +i3 44.250000 0.250000 2000 6.09 2 3 5 3
           75  +i3 44.500000 2.000000 2000 6.04 2 3 5 3
           76  +i3 46.500000 2.000000 2000 6.01 2 3 5 3
           77  +i3 48.500000 2.000000 2000 6.11 2 3 5 3
           78  +i3 50.500000 2.000000 2000 6.09 2 3 5 3
           79  +i3 52.500000 2.000000 2000 6.02 2 3 5 3
           80  +i2 12.000000 0.250000 7000 8.09 2
           81  +i2 12.250000 0.500000 7000 8.04 2
           82  +i2 12.750000 0.500000 7000 8.04 2
           83  +i2 13.250000 0.500000 7000 8.04 2
           84  +i2 13.750000 0.250000 7000 8.09 2
           85  +i2 14.000000 0.250000 7000 7.08 2
           86  +i2 14.250000 0.250000 7000 9.02 2
           87  +i2 14.500000 0.250000 7000 8.09 2
           88  +i2 14.750000 0.250000 7000 8.02 2
           89  +i2 15.000000 0.250000 7000 8.09 2
           90  +i2 15.250000 0.250000 7000 8.08 2
           91  +i2 15.500000 0.250000 7000 8.02 2
           92  +i2 15.750000 0.250000 7000 8.09 2
           93  +i2 16.000000 0.500000 7000 8.04 2
           94  +i2 16.500000 0.500000 7000 8.04 2
           95  +i2 17.000000 0.500000 7000 8.04 2
           96  +i2 17.500000 0.250000 7000 8.09 2
           97  +i2 17.750000 0.250000 7000 7.08 2
           98  +i2 18.000000 0.250000 7000 9.02 2
           99  +i2 18.250000 0.250000 7000 8.09 2
          100  +i2 18.500000 0.250000 7000 8.02 2
          101  +i2 18.750000 0.250000 7000 8.09 2
          102  +i2 19.000000 0.250000 7000 8.08 2
          103  +i2 19.250000 0.250000 7000 8.02 2
          104  +i2 19.500000 0.250000 7000 8.01 2
          105  +i2 19.750000 0.250000 7000 8.06 2
          106  +i2 20.000000 0.250000 7000 8.11 2
          107  +i2 20.250000 0.250000 7000 8.04 2
          108  +i2 20.500000 0.250000 7000 8.06 2
          109  +i2 20.750000 0.250000 7000 8.02 2
          110  +i2 21.000000 2.000000 7000 8.08 2
          111  +i2 23.000000 0.250000 7000 8.01 2
          112  +i2 23.250000 0.250000 7000 8.06 2
          113  +i2 23.500000 0.250000 7000 8.11 2
          114  +i2 23.750000 0.250000 7000 8.04 2
          115  +i2 24.000000 0.250000 7000 8.06 2
          116  +i2 24.250000 0.250000 7000 8.02 2
          117  +i2 24.500000 2.000000 7000 8.08 2
          118  +i2 26.500000 0.250000 7000 8.01 2
          119  +i2 26.750000 0.250000 7000 8.06 2
          120  +i2 27.000000 0.250000 7000 8.11 2
          121  +i2 27.250000 0.250000 7000 8.04 2
          122  +i2 27.500000 0.250000 7000 8.06 2
          123  +i2 27.750000 0.250000 7000 8.02 2
          124  +i2 28.000000 2.000000 7000 8.08 2
          125  +i2 30.000000 0.250000 7000 8.01 2
          126  +i2 30.250000 0.250000 7000 8.06 2
          127  +i2 30.500000 0.250000 7000 8.11 2
          128  +i2 30.750000 0.250000 7000 8.04 2
          129  +i2 31.000000 0.250000 7000 8.06 2
          130  +i2 31.250000 0.250000 7000 8.02 2
          131  +i2 31.500000 2.000000 7000 8.08 2
          132  +i2 33.500000 0.250000 7000 8.01 2
          133  +i2 33.750000 0.250000 7000 8.06 2
          134  +i2 34.000000 0.250000 7000 8.11 2
          135  +i2 34.250000 0.250000 7000 8.04 2
          136  +i2 34.500000 0.250000 7000 8.06 2
          137  +i2 34.750000 0.250000 7000 8.02 2
          138  +i2 35.000000 2.000000 7000 8.08 2
          139  +i2 37.000000 0.500000 7000 8.09 2
          140  +i2 37.500000 0.500000 7000 8.09 2
          141  +i2 38.000000 0.250000 7000 8.06 2
          142  +i2 38.250000 0.500000 7000 8.02 2
          143  +i2 38.750000 2.000000 7000 8.04 2
          144  +i2 41.000000 0.500000 7000 8.09 2
          145  +i2 41.500000 0.500000 7000 8.09 2
          146  +i2 42.000000 0.250000 7000 8.06 2
          147  +i2 42.250000 0.500000 7000 8.02 2
          148  +i2 42.750000 0.250000 7000 8.04 2
          149  +i2 43.000000 0.500000 7000 8.09 2
          150  +i2 43.500000 0.500000 7000 8.09 2
          151  +i2 44.000000 0.250000 7000 8.06 2
          152  +i2 44.250000 0.500000 7000 8.02 2
          153  +i2 44.750000 2.000000 7000 8.04 2
          154  +i2 47.000000 0.500000 7000 8.09 2
          155  +i2 47.500000 0.500000 7000 8.09 2
          156  +i2 48.000000 0.250000 7000 8.06 2
          157  +i2 48.250000 0.500000 7000 8.02 2
          158  +i2 48.750000 0.250000 7000 8.04 2
          159  +i1 12.000000 0.500000 7000 7.11 7.11 0 6
          160  +i1 12.000000 0.500000 7000 7.04 7.04 0 6
          161  +i1 12.000000 0.500000 7000 7.08 7.08 0 6
          162  +i1 12.500000 2.000000 7000 7.08 7.08 0 6
          163  +i1 12.500000 2.000000 7000 7.11 7.11 0 6
          164  +i1 12.500000 2.000000 7000 7.02 7.02 0 6
          165  +i1 14.500000 0.500000 7000 7.04 7.04 0 6
          166  +i1 14.500000 0.500000 7000 7.09 7.09 0 6
          167  +i1 14.500000 0.500000 7000 7.11 7.11 0 6
          168  +i1 15.000000 0.500000 7000 7.06 7.06 0 6
          169  +i1 15.000000 0.500000 7000 7.09 7.09 0 6
          170  +i1 15.000000 0.500000 7000 7.01 7.01 0 6
          171  +i1 15.500000 0.500000 7000 7.11 7.11 0 6
          172  +i1 15.500000 0.500000 7000 7.04 7.04 0 6
          173  +i1 15.500000 0.500000 7000 7.08 7.08 0 6
          174  +i1 16.000000 2.000000 7000 7.08 7.08 0 6
          175  +i1 16.000000 2.000000 7000 7.11 7.11 0 6
          176  +i1 16.000000 2.000000 7000 7.02 7.02 0 6
          177  +i1 18.000000 0.500000 7000 7.04 7.04 0 6
          178  +i1 18.000000 0.500000 7000 7.09 7.09 0 6
          179  +i1 18.000000 0.500000 7000 7.11 7.11 0 6
          180  +i1 18.500000 0.500000 7000 7.06 7.06 0 6
          181  +i1 18.500000 0.500000 7000 7.09 7.09 0 6
          182  +i1 18.500000 0.500000 7000 7.01 7.01 0 6
          183  +i1 19.000000 0.500000 7000 7.11 7.11 0 6
          184  +i1 19.000000 0.500000 7000 7.04 7.04 0 6
          185  +i1 19.000000 0.500000 7000 7.08 7.08 0 6
          186  +i1 19.500000 2.000000 7000 7.08 7.08 0 6
          187  +i1 19.500000 2.000000 7000 7.11 7.11 0 6
          188  +i1 19.500000 2.000000 7000 7.02 7.02 0 6
          189  +i1 21.500000 0.500000 7000 7.04 7.04 0 6
          190  +i1 21.500000 0.500000 7000 7.09 7.09 0 6
          191  +i1 21.500000 0.500000 7000 7.11 7.11 0 6
          192  +i1 22.000000 0.500000 7000 7.06 7.06 0 6
          193  +i1 22.000000 0.500000 7000 7.09 7.09 0 6
          194  +i1 22.000000 0.500000 7000 7.01 7.01 0 6
          195  +i1 22.500000 0.500000 7000 7.11 7.11 0 6
          196  +i1 22.500000 0.500000 7000 7.04 7.04 0 6
          197  +i1 22.500000 0.500000 7000 7.08 7.08 0 6
          198  +i1 23.000000 2.000000 7000 7.08 7.08 0 6
          199  +i1 23.000000 2.000000 7000 7.11 7.11 0 6
          200  +i1 23.000000 2.000000 7000 7.02 7.02 0 6
          201  +i1 25.000000 0.500000 7000 7.04 7.04 0 6
          202  +i1 25.000000 0.500000 7000 7.09 7.09 0 6
          203  +i1 25.000000 0.500000 7000 7.11 7.11 0 6
          204  +i1 25.500000 0.500000 7000 7.06 7.06 0 6
          205  +i1 25.500000 0.500000 7000 7.09 7.09 0 6
          206  +i1 25.500000 0.500000 7000 7.01 7.01 0 6
          207  +i1 26.000000 0.500000 7000 7.11 7.11 0 6
          208  +i1 26.000000 0.500000 7000 7.04 7.04 0 6
          209  +i1 26.000000 0.500000 7000 7.08 7.08 0 6
          210  +i1 26.500000 2.000000 7000 7.08 7.08 0 6
          211  +i1 26.500000 2.000000 7000 7.11 7.11 0 6
          212  +i1 26.500000 2.000000 7000 7.02 7.02 0 6
          213  +i1 28.500000 0.500000 7000 7.04 7.04 0 6
          214  +i1 28.500000 0.500000 7000 7.09 7.09 0 6
          215  +i1 28.500000 0.500000 7000 7.11 7.11 0 6
          216  +i1 29.000000 0.500000 7000 7.06 7.06 0 6
          217  +i1 29.000000 0.500000 7000 7.09 7.09 0 6
          218  +i1 29.000000 0.500000 7000 7.01 7.01 0 6
          219  +i1 29.500000 0.500000 7000 7.11 7.11 0 6
          220  +i1 29.500000 0.500000 7000 7.04 7.04 0 6
          221  +i1 29.500000 0.500000 7000 7.08 7.08 0 6
          222  +i1 30.000000 2.000000 7000 7.08 7.08 0 6
          223  +i1 30.000000 2.000000 7000 7.11 7.11 0 6
          224  +i1 30.000000 2.000000 7000 7.02 7.02 0 6
          225  +i1 32.000000 0.500000 7000 7.04 7.04 0 6
          226  +i1 32.000000 0.500000 7000 7.09 7.09 0 6
          227  +i1 32.000000 0.500000 7000 7.11 7.11 0 6
          228  +i1 32.500000 0.500000 7000 7.06 7.06 0 6
          229  +i1 32.500000 0.500000 7000 7.09 7.09 0 6
          230  +i1 32.500000 0.500000 7000 7.01 7.01 0 6
          231  +i1 33.000000 0.500000 7000 7.11 7.11 0 6
          232  +i1 33.000000 0.500000 7000 7.04 7.04 0 6
          233  +i1 33.000000 0.500000 7000 7.08 7.08 0 6
          234  +i1 33.500000 2.000000 7000 7.08 7.08 0 6
          235  +i1 33.500000 2.000000 7000 7.11 7.11 0 6
          236  +i1 33.500000 2.000000 7000 7.02 7.02 0 6
          237  +i1 35.500000 0.500000 7000 7.04 7.04 0 6
          238  +i1 35.500000 0.500000 7000 7.09 7.09 0 6
          239  +i1 35.500000 0.500000 7000 7.11 7.11 0 6
          240  +i1 36.000000 0.500000 7000 7.06 7.06 0 6
          241  +i1 36.000000 0.500000 7000 7.09 7.09 0 6
          242  +i1 36.000000 0.500000 7000 7.01 7.01 0 6
          243  +i1 36.500000 0.500000 7000 7.11 7.11 0 6
          244  +i1 36.500000 0.500000 7000 7.04 7.04 0 6
          245  +i1 36.500000 0.500000 7000 7.08 7.08 0 6
          246  +i1 37.000000 2.000000 7000 7.08 7.08 0 6
          247  +i1 37.000000 2.000000 7000 7.11 7.11 0 6
          248  +i1 37.000000 2.000000 7000 7.02 7.02 0 6
          249  +i1 39.000000 0.500000 7000 7.04 7.04 0 6
          250  +i1 39.000000 0.500000 7000 7.09 7.09 0 6
          251  +i1 39.000000 0.500000 7000 7.11 7.11 0 6
          252  +i1 39.500000 0.500000 7000 7.06 7.06 0 6
          253  +i1 39.500000 0.500000 7000 7.09 7.09 0 6
          254  +i1 39.500000 0.500000 7000 7.01 7.01 0 6
          255  +i1 40.000000 0.500000 7000 7.11 7.11 0 6
          256  +i1 40.000000 0.500000 7000 7.04 7.04 0 6
          257  +i1 40.000000 0.500000 7000 7.08 7.08 0 6
          258  +i1 40.500000 2.000000 7000 7.08 7.08 0 6
          259  +i1 40.500000 2.000000 7000 7.11 7.11 0 6
          260  +i1 40.500000 2.000000 7000 7.02 7.02 0 6
          261  +i1 42.500000 0.500000 7000 7.04 7.04 0 6
          262  +i1 42.500000 0.500000 7000 7.09 7.09 0 6
          263  +i1 42.500000 0.500000 7000 7.11 7.11 0 6
          264  +i1 43.000000 0.500000 7000 7.06 7.06 0 6
          265  +i1 43.000000 0.500000 7000 7.09 7.09 0 6
          266  +i1 43.000000 0.500000 7000 7.01 7.01 0 6
          267  +i1 43.500000 0.500000 7000 7.11 7.11 0 6
          268  +i1 43.500000 0.500000 7000 7.04 7.04 0 6
          269  +i1 43.500000 0.500000 7000 7.08 7.08 0 6
          270  +i1 44.000000 2.000000 7000 7.08 7.08 0 6
          271  +i1 44.000000 2.000000 7000 7.11 7.11 0 6
          272  +i1 44.000000 2.000000 7000 7.02 7.02 0 6
          273  +i1 46.000000 0.500000 7000 7.04 7.04 0 6
          274  +i1 46.000000 0.500000 7000 7.09 7.09 0 6
          275  +i1 46.000000 0.500000 7000 7.11 7.11 0 6
          276  +i1 46.500000 0.500000 7000 7.06 7.06 0 6
          277  +i1 46.500000 0.500000 7000 7.09 7.09 0 6
          278  +i1 46.500000 0.500000 7000 7.01 7.01 0 6
          279  +i1 47.000000 0.500000 7000 7.11 7.11 0 6
          280  +i1 47.000000 0.500000 7000 7.04 7.04 0 6
          281  +i1 47.000000 0.500000 7000 7.08 7.08 0 6
          282  +i1 47.500000 2.000000 7000 7.08 7.08 0 6
          283  +i1 47.500000 2.000000 7000 7.11 7.11 0 6
          284  +i1 47.500000 2.000000 7000 7.02 7.02 0 6
          285  +i1 49.500000 0.500000 7000 7.04 7.04 0 6
          286  +i1 49.500000 0.500000 7000 7.09 7.09 0 6
          287  +i1 49.500000 0.500000 7000 7.11 7.11 0 6
          288  +i1 50.000000 0.500000 7000 7.06 7.06 0 6
          289  +i1 50.000000 0.500000 7000 7.09 7.09 0 6
          290  +i1 50.000000 0.500000 7000 7.01 7.01 0 6
          291  +i1 50.500000 0.500000 7000 7.11 7.11 0 6
          292  +i1 50.500000 0.500000 7000 7.04 7.04 0 6
          293  +i1 50.500000 0.500000 7000 7.08 7.08 0 6
          294  +i1 51.000000 2.000000 7000 7.08 7.08 0 6
          295  +i1 51.000000 2.000000 7000 7.11 7.11 0 6
          296  +i1 51.000000 2.000000 7000 7.02 7.02 0 6
          297  +i1 53.000000 0.500000 7000 7.04 7.04 0 6
          298  +i1 53.000000 0.500000 7000 7.09 7.09 0 6
          299  +i1 53.000000 0.500000 7000 7.11 7.11 0 6
          300  +i1 53.500000 0.500000 7000 7.06 7.06 0 6
          301  +i1 53.500000 0.500000 7000 7.09 7.09 0 6
          302  +i1 53.500000 0.500000 7000 7.01 7.01 0 6
          303  +i1 54.000000 0.500000 7000 7.11 7.11 0 6
          304  +i1 54.000000 0.500000 7000 7.04 7.04 0 6
          305  +i1 54.000000 0.500000 7000 7.08 7.08 0 6
          306  +; Movement: a
          307  +i3 54.500000 2.000000 2000 6.09 2 3 5 3
          308  +i3 56.500000 2.000000 2000 6.08 2 3 5 3
          309  +i3 58.500000 2.000000 2000 6.04 2 3 5 3
          310  +i3 60.500000 2.000000 2000 6.06 2 3 5 3
          311  +i3 62.500000 2.000000 2000 6.09 2 3 5 3
          312  +i3 64.500000 0.500000 2000 6.02 2 3 5 3
          313  +i3 65.000000 0.500000 2000 6.04 2 3 5 3
          314  +i3 65.500000 2.000000 2000 6.01 2 3 5 3
          315  +i3 67.500000 2.000000 2000 6.09 2 3 5 3
          316  +i3 69.500000 2.000000 2000 6.02 2 3 5 3
          317  +i3 71.500000 2.000000 2000 6.04 2 3 5 3
          318  +i3 73.500000 0.250000 2000 6.02 2 3 5 3
          319  +i3 73.750000 0.250000 2000 6.09 2 3 5 3
          320  +i3 74.000000 2.000000 2000 6.04 2 3 5 3
          321  +i3 76.000000 2.000000 2000 6.01 2 3 5 3
          322  +i3 78.000000 2.000000 2000 6.11 2 3 5 3
          323  +i3 80.000000 2.000000 2000 6.09 2 3 5 3
          324  +i3 82.000000 2.000000 2000 6.08 2 3 5 3
          325  +i3 84.000000 2.000000 2000 6.04 2 3 5 3
          326  +i3 86.000000 2.000000 2000 6.06 2 3 5 3
          327  +i3 88.000000 2.000000 2000 6.09 2 3 5 3
          328  +i3 90.000000 0.500000 2000 6.02 2 3 5 3
          329  +i3 90.500000 0.500000 2000 6.04 2 3 5 3
          330  +i3 91.000000 2.000000 2000 6.01 2 3 5 3
          331  +i3 93.000000 2.000000 2000 6.09 2 3 5 3
          332  +i2 54.500000 0.250000 7000 8.09 2
          333  +i2 54.750000 0.250000 7000 8.08 2
          334  +i2 55.000000 0.250000 7000 8.02 2
          335  +i2 55.250000 0.250000 7000 8.09 2
          336  +i2 55.500000 0.250000 7000 8.08 2
          337  +i2 55.750000 0.250000 7000 8.02 2
          338  +i2 56.000000 0.250000 7000 8.09 2
          339  +i2 56.250000 0.250000 7000 8.08 2
          340  +i2 56.500000 0.250000 7000 8.02 2
          341  +i2 56.750000 0.250000 7000 8.09 2
          342  +i2 57.000000 0.250000 7000 8.08 2
          343  +i2 57.250000 0.250000 7000 8.02 2
          344  +i2 57.500000 0.250000 7000 8.09 2
          345  +i2 57.750000 0.500000 7000 8.04 2
          346  +i2 58.250000 0.500000 7000 8.04 2
          347  +i2 58.750000 0.500000 7000 8.04 2
          348  +i2 59.250000 0.250000 7000 8.09 2
          349  +i2 59.500000 0.250000 7000 7.08 2
          350  +i2 59.750000 0.250000 7000 9.02 2
          351  +i2 60.000000 0.250000 7000 8.06 2
          352  +i2 60.250000 0.250000 7000 8.01 2
          353  +i2 60.500000 0.250000 7000 8.11 2
          354  +i2 60.750000 0.250000 7000 8.09 2
          355  +i2 61.000000 0.250000 7000 8.08 2
          356  +i2 61.250000 0.250000 7000 8.09 2
          357  +i2 61.500000 0.250000 7000 8.02 2
          358  +i2 61.750000 0.250000 7000 8.04 2
          359  +i2 62.000000 0.250000 7000 8.06 2
          360  +i2 62.250000 0.250000 7000 8.08 2
          361  +i2 62.500000 0.250000 7000 8.09 2
          362  +i2 62.750000 0.250000 7000 8.02 2
          363  +i2 63.000000 0.250000 7000 8.04 2
          364  +i2 63.250000 0.250000 7000 8.06 2
          365  +i2 63.500000 0.250000 7000 8.08 2
          366  +i2 63.750000 0.250000 7000 8.09 2
          367  +i2 64.000000 0.500000 7000 8.04 2
          368  +i2 64.500000 0.500000 7000 8.04 2
          369  +i2 65.000000 0.500000 7000 8.04 2
          370  +i2 65.500000 0.250000 7000 8.09 2
          371  +i2 65.750000 0.250000 7000 7.08 2
          372  +i2 66.000000 0.250000 7000 9.02 2
          373  +i2 66.250000 0.250000 7000 8.06 2
          374  +i2 66.500000 0.250000 7000 8.01 2
          375  +i2 66.750000 0.250000 7000 8.11 2
          376  +i2 67.000000 0.250000 7000 8.09 2
          377  +i2 67.250000 0.250000 7000 8.08 2
          378  +i2 67.500000 0.250000 7000 8.09 2
          379  +i2 67.750000 0.250000 7000 8.02 2
          380  +i2 68.000000 0.250000 7000 8.04 2
          381  +i2 68.250000 0.250000 7000 8.06 2
          382  +i2 68.500000 0.250000 7000 8.08 2
          383  +i2 68.750000 0.250000 7000 8.09 2
          384  +i2 69.000000 0.250000 7000 8.02 2
          385  +i2 69.250000 0.250000 7000 8.04 2
          386  +i2 69.500000 0.250000 7000 8.06 2
          387  +i2 69.750000 0.250000 7000 8.08 2
          388  +i2 70.000000 0.250000 7000 8.09 2
          389  +i2 70.250000 0.250000 7000 8.08 2
          390  +i2 70.500000 0.250000 7000 8.02 2
          391  +i2 70.750000 0.250000 7000 8.09 2
          392  +i2 71.000000 0.500000 7000 8.04 2
          393  +i2 71.500000 0.500000 7000 8.04 2
          394  +i2 72.000000 0.500000 7000 8.04 2
          395  +i2 72.500000 0.250000 7000 8.09 2
          396  +i2 72.750000 0.250000 7000 7.08 2
          397  +i2 73.000000 0.250000 7000 9.02 2
          398  +i2 73.250000 0.250000 7000 8.06 2
          399  +i2 73.500000 0.250000 7000 8.01 2
          400  +i2 73.750000 0.250000 7000 8.11 2
          401  +i2 74.000000 0.250000 7000 8.09 2
          402  +i2 74.250000 0.250000 7000 8.08 2
          403  +i2 74.500000 0.250000 7000 8.09 2
          404  +i2 74.750000 0.250000 7000 8.02 2
          405  +i2 75.000000 0.250000 7000 8.04 2
          406  +i2 75.250000 0.250000 7000 8.06 2
          407  +i2 75.500000 0.250000 7000 8.08 2
          408  +i2 75.750000 0.250000 7000 8.09 2
          409  +i2 76.000000 0.250000 7000 8.02 2
          410  +i2 76.250000 0.250000 7000 8.04 2
          411  +i2 76.500000 0.250000 7000 8.06 2
          412  +i2 76.750000 0.250000 7000 8.08 2
          413  +i2 77.000000 0.250000 7000 8.09 2
          414  +i2 77.250000 0.250000 7000 8.02 2
          415  +i2 77.500000 0.250000 7000 8.08 2
          416  +i2 77.750000 0.250000 7000 8.09 2
          417  +i2 78.000000 0.250000 7000 8.02 2
          418  +i2 78.250000 0.250000 7000 8.04 2
          419  +i2 78.500000 0.250000 7000 8.06 2
          420  +i2 78.750000 0.250000 7000 8.08 2
          421  +i2 79.000000 0.250000 7000 8.09 2
          422  +i2 79.250000 0.250000 7000 8.02 2
          423  +i2 79.500000 0.250000 7000 8.04 2
          424  +i2 79.750000 0.250000 7000 8.06 2
          425  +i2 80.000000 0.250000 7000 8.08 2
          426  +i2 80.250000 0.250000 7000 8.09 2
          427  +i2 80.500000 0.250000 7000 8.02 2
          428  +i2 80.750000 0.250000 7000 8.08 2
          429  +i2 81.000000 0.250000 7000 8.09 2
          430  +i2 81.250000 0.250000 7000 8.02 2
          431  +i2 81.500000 0.250000 7000 8.04 2
          432  +i2 81.750000 0.250000 7000 8.06 2
          433  +i2 82.000000 0.250000 7000 8.08 2
          434  +i2 82.250000 0.250000 7000 8.09 2
          435  +i2 82.500000 0.250000 7000 8.02 2
          436  +i2 82.750000 0.250000 7000 8.04 2
          437  +i2 83.000000 0.250000 7000 8.06 2
          438  +i2 83.250000 0.250000 7000 8.08 2
          439  +i2 83.500000 0.250000 7000 8.09 2
          440  +i2 83.750000 0.250000 7000 8.02 2
          441  +i2 84.000000 0.250000 7000 8.08 2
          442  +i2 84.250000 0.250000 7000 8.09 2
          443  +i2 84.500000 0.250000 7000 8.02 2
          444  +i2 84.750000 0.250000 7000 8.04 2
          445  +i2 85.000000 0.250000 7000 8.06 2
          446  +i2 85.250000 0.250000 7000 8.08 2
          447  +i2 85.500000 0.250000 7000 8.09 2
          448  +i2 85.750000 0.250000 7000 8.02 2
          449  +i2 86.000000 0.250000 7000 8.04 2
          450  +i2 86.250000 0.250000 7000 8.06 2
          451  +i2 86.500000 0.250000 7000 8.08 2
          452  +i2 86.750000 0.250000 7000 8.09 2
          453  +i2 87.000000 0.250000 7000 8.02 2
          454  +i2 87.250000 0.250000 7000 8.08 2
          455  +i2 87.500000 0.250000 7000 8.09 2
          456  +i2 87.750000 0.250000 7000 8.02 2
          457  +i2 88.000000 0.250000 7000 8.04 2
          458  +i2 88.250000 0.250000 7000 8.06 2
          459  +i2 88.500000 0.250000 7000 8.08 2
          460  +i2 88.750000 0.250000 7000 8.09 2
          461  +i2 89.000000 0.250000 7000 8.02 2
          462  +i2 89.250000 0.250000 7000 8.04 2
          463  +i2 89.500000 0.250000 7000 8.06 2
          464  +i2 89.750000 0.250000 7000 8.08 2
          465  +i2 90.000000 0.250000 7000 8.09 2
          466  +i2 90.250000 0.250000 7000 8.02 2
          467  +i2 90.500000 0.250000 7000 8.08 2
          468  +i2 90.750000 0.250000 7000 8.09 2
          469  +i2 91.000000 0.250000 7000 8.02 2
          470  +i2 91.250000 0.250000 7000 8.04 2
          471  +i2 91.500000 0.250000 7000 8.06 2
          472  +i2 91.750000 0.250000 7000 8.08 2
          473  +i2 92.000000 0.250000 7000 8.09 2
          474  +i2 92.250000 0.250000 7000 8.02 2
          475  +i2 92.500000 0.250000 7000 8.04 2
          476  +i2 92.750000 0.250000 7000 8.06 2
          477  +i2 93.000000 0.250000 7000 8.08 2
          478  +i2 93.250000 0.250000 7000 8.09 2
          479  +i2 93.500000 0.500000 7000 8.04 2
          480  +i2 94.000000 0.500000 7000 8.04 2
          481  +i1 54.500000 0.500000 7000 7.11 7.11 0 6
          482  +i1 54.500000 0.500000 7000 7.04 7.04 0 6
          483  +i1 54.500000 0.500000 7000 7.08 7.08 0 6
          484  +i1 55.000000 2.000000 7000 7.08 7.08 0 6
          485  +i1 55.000000 2.000000 7000 7.11 7.11 0 6
          486  +i1 55.000000 2.000000 7000 7.02 7.02 0 6
          487  +i1 57.000000 0.500000 7000 7.04 7.04 0 6
          488  +i1 57.000000 0.500000 7000 7.09 7.09 0 6
          489  +i1 57.000000 0.500000 7000 7.11 7.11 0 6
          490  +i1 57.500000 0.500000 7000 7.06 7.06 0 6
          491  +i1 57.500000 0.500000 7000 7.09 7.09 0 6
          492  +i1 57.500000 0.500000 7000 7.01 7.01 0 6
          493  +i1 58.000000 0.500000 7000 7.11 7.11 0 6
          494  +i1 58.000000 0.500000 7000 7.04 7.04 0 6
          495  +i1 58.000000 0.500000 7000 7.08 7.08 0 6
          496  +i1 58.500000 2.000000 7000 7.08 7.08 0 6
          497  +i1 58.500000 2.000000 7000 7.11 7.11 0 6
          498  +i1 58.500000 2.000000 7000 7.02 7.02 0 6
          499  +i1 60.500000 0.500000 7000 7.04 7.04 0 6
          500  +i1 60.500000 0.500000 7000 7.09 7.09 0 6
          501  +i1 60.500000 0.500000 7000 7.11 7.11 0 6
          502  +i1 61.000000 0.500000 7000 7.06 7.06 0 6
          503  +i1 61.000000 0.500000 7000 7.09 7.09 0 6
          504  +i1 61.000000 0.500000 7000 7.01 7.01 0 6
          505  +i1 61.500000 0.500000 7000 7.11 7.11 0 6
          506  +i1 61.500000 0.500000 7000 7.04 7.04 0 6
          507  +i1 61.500000 0.500000 7000 7.08 7.08 0 6
          508  +i1 62.000000 2.000000 7000 7.08 7.08 0 6
          509  +i1 62.000000 2.000000 7000 7.11 7.11 0 6
          510  +i1 62.000000 2.000000 7000 7.02 7.02 0 6
          511  +i1 64.000000 0.500000 7000 7.04 7.04 0 6
          512  +i1 64.000000 0.500000 7000 7.09 7.09 0 6
          513  +i1 64.000000 0.500000 7000 7.11 7.11 0 6
          514  +i1 64.500000 0.500000 7000 7.06 7.06 0 6
          515  +i1 64.500000 0.500000 7000 7.09 7.09 0 6
          516  +i1 64.500000 0.500000 7000 7.01 7.01 0 6
          517  +i1 65.000000 0.500000 7000 7.11 7.11 0 6
          518  +i1 65.000000 0.500000 7000 7.04 7.04 0 6
          519  +i1 65.000000 0.500000 7000 7.08 7.08 0 6
          520  +i1 65.500000 2.000000 7000 7.08 7.08 0 6
          521  +i1 65.500000 2.000000 7000 7.11 7.11 0 6
          522  +i1 65.500000 2.000000 7000 7.02 7.02 0 6
          523  +i1 67.500000 0.500000 7000 7.04 7.04 0 6
          524  +i1 67.500000 0.500000 7000 7.09 7.09 0 6
          525  +i1 67.500000 0.500000 7000 7.11 7.11 0 6
          526  +i1 68.000000 0.500000 7000 7.06 7.06 0 6
          527  +i1 68.000000 0.500000 7000 7.09 7.09 0 6
          528  +i1 68.000000 0.500000 7000 7.01 7.01 0 6
          529  +i1 68.500000 0.500000 7000 7.11 7.11 0 6
          530  +i1 68.500000 0.500000 7000 7.04 7.04 0 6
          531  +i1 68.500000 0.500000 7000 7.08 7.08 0 6
          532  +i1 69.000000 2.000000 7000 7.08 7.08 0 6
          533  +i1 69.000000 2.000000 7000 7.11 7.11 0 6
          534  +i1 69.000000 2.000000 7000 7.02 7.02 0 6
          535  +i1 71.000000 0.500000 7000 7.04 7.04 0 6
          536  +i1 71.000000 0.500000 7000 7.09 7.09 0 6
          537  +i1 71.000000 0.500000 7000 7.11 7.11 0 6
          538  +i1 71.500000 0.500000 7000 7.06 7.06 0 6
          539  +i1 71.500000 0.500000 7000 7.09 7.09 0 6
          540  +i1 71.500000 0.500000 7000 7.01 7.01 0 6
          541  +i1 72.000000 0.500000 7000 7.11 7.11 0 6
          542  +i1 72.000000 0.500000 7000 7.04 7.04 0 6
          543  +i1 72.000000 0.500000 7000 7.08 7.08 0 6
          544  +i1 72.500000 2.000000 7000 7.08 7.08 0 6
          545  +i1 72.500000 2.000000 7000 7.11 7.11 0 6
          546  +i1 72.500000 2.000000 7000 7.02 7.02 0 6
          547  +i1 74.500000 0.500000 7000 7.04 7.04 0 6
          548  +i1 74.500000 0.500000 7000 7.09 7.09 0 6
          549  +i1 74.500000 0.500000 7000 7.11 7.11 0 6
          550  +i1 75.000000 0.500000 7000 7.06 7.06 0 6
          551  +i1 75.000000 0.500000 7000 7.09 7.09 0 6
          552  +i1 75.000000 0.500000 7000 7.01 7.01 0 6
          553  +i1 75.500000 0.500000 7000 7.11 7.11 0 6
          554  +i1 75.500000 0.500000 7000 7.04 7.04 0 6
          555  +i1 75.500000 0.500000 7000 7.08 7.08 0 6
          556  +i1 76.000000 2.000000 7000 7.08 7.08 0 6
          557  +i1 76.000000 2.000000 7000 7.11 7.11 0 6
          558  +i1 76.000000 2.000000 7000 7.02 7.02 0 6
          559  +i1 78.000000 0.500000 7000 7.04 7.04 0 6
          560  +i1 78.000000 0.500000 7000 7.09 7.09 0 6
          561  +i1 78.000000 0.500000 7000 7.11 7.11 0 6
          562  +i1 78.500000 0.500000 7000 7.06 7.06 0 6
          563  +i1 78.500000 0.500000 7000 7.09 7.09 0 6
          564  +i1 78.500000 0.500000 7000 7.01 7.01 0 6
          565  +i1 79.000000 0.500000 7000 7.11 7.11 0 6
          566  +i1 79.000000 0.500000 7000 7.04 7.04 0 6
          567  +i1 79.000000 0.500000 7000 7.08 7.08 0 6
          568  +i1 79.500000 2.000000 7000 7.08 7.08 0 6
          569  +i1 79.500000 2.000000 7000 7.11 7.11 0 6
          570  +i1 79.500000 2.000000 7000 7.02 7.02 0 6
          571  +i1 81.500000 0.500000 7000 7.04 7.04 0 6
          572  +i1 81.500000 0.500000 7000 7.09 7.09 0 6
          573  +i1 81.500000 0.500000 7000 7.11 7.11 0 6
          574  +i1 82.000000 0.500000 7000 7.06 7.06 0 6
          575  +i1 82.000000 0.500000 7000 7.09 7.09 0 6
          576  +i1 82.000000 0.500000 7000 7.01 7.01 0 6
          577  +i1 82.500000 0.500000 7000 7.11 7.11 0 6
          578  +i1 82.500000 0.500000 7000 7.04 7.04 0 6
          579  +i1 82.500000 0.500000 7000 7.08 7.08 0 6
          580  +i1 83.000000 2.000000 7000 7.08 7.08 0 6
          581  +i1 83.000000 2.000000 7000 7.11 7.11 0 6
          582  +i1 83.000000 2.000000 7000 7.02 7.02 0 6
          583  +i1 85.000000 0.500000 7000 7.04 7.04 0 6
          584  +i1 85.000000 0.500000 7000 7.09 7.09 0 6
          585  +i1 85.000000 0.500000 7000 7.11 7.11 0 6
          586  +i1 85.500000 0.500000 7000 7.06 7.06 0 6
          587  +i1 85.500000 0.500000 7000 7.09 7.09 0 6
          588  +i1 85.500000 0.500000 7000 7.01 7.01 0 6
          589  +i1 86.000000 0.500000 7000 7.11 7.11 0 6
          590  +i1 86.000000 0.500000 7000 7.04 7.04 0 6
          591  +i1 86.000000 0.500000 7000 7.08 7.08 0 6
          592  +i1 86.500000 2.000000 7000 7.08 7.08 0 6
          593  +i1 86.500000 2.000000 7000 7.11 7.11 0 6
          594  +i1 86.500000 2.000000 7000 7.02 7.02 0 6
          595  +i1 88.500000 0.500000 7000 7.04 7.04 0 6
          596  +i1 88.500000 0.500000 7000 7.09 7.09 0 6
          597  +i1 88.500000 0.500000 7000 7.11 7.11 0 6
          598  +i1 89.000000 0.500000 7000 7.06 7.06 0 6
          599  +i1 89.000000 0.500000 7000 7.09 7.09 0 6
          600  +i1 89.000000 0.500000 7000 7.01 7.01 0 6
          601  +i1 89.500000 0.500000 7000 7.11 7.11 0 6
          602  +i1 89.500000 0.500000 7000 7.04 7.04 0 6
          603  +i1 89.500000 0.500000 7000 7.08 7.08 0 6
          604  +i1 90.000000 2.000000 7000 7.08 7.08 0 6
          605  +i1 90.000000 2.000000 7000 7.11 7.11 0 6
          606  +i1 90.000000 2.000000 7000 7.02 7.02 0 6
          607  +i1 92.000000 0.500000 7000 7.04 7.04 0 6
          608  +i1 92.000000 0.500000 7000 7.09 7.09 0 6
          609  +i1 92.000000 0.500000 7000 7.11 7.11 0 6
          610  +i1 92.500000 0.500000 7000 7.06 7.06 0 6
          611  +i1 92.500000 0.500000 7000 7.09 7.09 0 6
          612  +i1 92.500000 0.500000 7000 7.01 7.01 0 6
          613  +i1 93.000000 0.500000 7000 7.11 7.11 0 6
          614  +i1 93.000000 0.500000 7000 7.04 7.04 0 6
          615  +i1 93.000000 0.500000 7000 7.08 7.08 0 6
          616  +i1 93.500000 2.000000 7000 7.08 7.08 0 6
          617  +i1 93.500000 2.000000 7000 7.11 7.11 0 6
          618  +i1 93.500000 2.000000 7000 7.02 7.02 0 6
          619  +i1 95.500000 0.500000 7000 7.04 7.04 0 6
          620  +i1 95.500000 0.500000 7000 7.09 7.09 0 6
          621  +i1 95.500000 0.500000 7000 7.11 7.11 0 6
          622  +i1 96.000000 0.500000 7000 7.06 7.06 0 6
          623  +i1 96.000000 0.500000 7000 7.09 7.09 0 6
          624  +i1 96.000000 0.500000 7000 7.01 7.01 0 6
          625  +i1 96.500000 0.500000 7000 7.11 7.11 0 6
          626  +i1 96.500000 0.500000 7000 7.04 7.04 0 6
          627  +i1 96.500000 0.500000 7000 7.08 7.08 0 6
          628  +i1 97.000000 2.000000 7000 7.08 7.08 0 6
          629  +i1 97.000000 2.000000 7000 7.11 7.11 0 6
          630  +i1 97.000000 2.000000 7000 7.02 7.02 0 6
          631  +i1 99.000000 0.500000 7000 7.04 7.04 0 6
          632  +i1 99.000000 0.500000 7000 7.09 7.09 0 6
          633  +i1 99.000000 0.500000 7000 7.11 7.11 0 6
          634  +i1 99.500000 0.500000 7000 7.06 7.06 0 6
          635  +i1 99.500000 0.500000 7000 7.09 7.09 0 6
          636  +i1 99.500000 0.500000 7000 7.01 7.01 0 6
          637  +i1 100.000000 0.500000 7000 7.11 7.11 0 6
          638  +i1 100.000000 0.500000 7000 7.04 7.04 0 6
          639  +i1 100.000000 0.500000 7000 7.08 7.08 0 6
          640  +i1 100.500000 2.000000 7000 7.08 7.08 0 6
          641  +i1 100.500000 2.000000 7000 7.11 7.11 0 6
          642  +i1 100.500000 2.000000 7000 7.02 7.02 0 6
          643  +; Movement: timbre_solo
          644  +i3 102.500000 0.250000 2000 6.09 2 3 5 3
          645  +i3 102.750000 0.500000 2000 6.06 2 3 5 3
          646  +i3 103.250000 0.500000 2000 6.06 2 3 5 3
          647  +i3 103.750000 0.500000 2000 6.02 2 3 5 3
          648  +i3 104.250000 0.250000 2000 6.01 2 3 5 3
          649  +i3 104.500000 0.250000 2000 6.06 2 3 5 3
          650  +i3 104.750000 0.250000 2000 6.11 2 3 5 3
          651  +i3 105.000000 0.250000 2000 6.04 2 3 5 3
          652  +i3 105.250000 0.250000 2000 6.06 2 3 5 3
          653  +i3 105.500000 0.250000 2000 6.02 2 3 5 3
          654  +i3 105.750000 2.000000 2000 6.08 2 3 5 3
          655  +i3 107.750000 0.250000 2000 6.01 2 3 5 3
          656  +i3 108.000000 0.250000 2000 6.06 2 3 5 3
          657  +i3 108.250000 0.250000 2000 6.11 2 3 5 3
          658  +i3 108.500000 0.250000 2000 6.04 2 3 5 3
          659  +i3 108.750000 0.250000 2000 6.06 2 3 5 3
          660  +i3 109.000000 0.250000 2000 6.02 2 3 5 3
          661  +i3 109.250000 2.000000 2000 6.08 2 3 5 3
          662  +i3 111.250000 0.250000 2000 6.06 2 3 5 3
          663  +i3 111.500000 0.250000 2000 6.01 2 3 5 3
          664  +i3 111.750000 0.250000 2000 6.11 2 3 5 3
          665  +i3 112.000000 0.250000 2000 6.09 2 3 5 3
          666  +i3 112.250000 0.500000 2000 6.08 2 3 5 3
          667  +i3 112.750000 0.500000 2000 6.09 2 3 5 3
          668  +i3 113.250000 0.500000 2000 6.11 2 3 5 3
          669  +i3 113.750000 0.500000 2000 6.04 2 3 5 3
          670  +i3 114.250000 0.250000 2000 6.06 2 3 5 3
          671  +i3 114.500000 0.250000 2000 6.01 2 3 5 3
          672  +i3 114.750000 0.250000 2000 6.11 2 3 5 3
          673  +i3 115.000000 0.250000 2000 6.09 2 3 5 3
          674  +i3 115.250000 0.250000 2000 6.06 2 3 5 3
          675  +i3 115.500000 0.250000 2000 6.01 2 3 5 3
          676  +i3 115.750000 0.250000 2000 6.11 2 3 5 3
          677  +i3 116.000000 0.250000 2000 6.09 2 3 5 3
          678  +i3 116.250000 0.500000 2000 6.08 2 3 5 3
          679  +i3 116.750000 0.500000 2000 6.09 2 3 5 3
          680  +i3 117.250000 0.500000 2000 6.11 2 3 5 3
          681  +i3 117.750000 0.500000 2000 6.04 2 3 5 3
          682  +i3 118.250000 0.500000 2000 6.08 2 3 5 3
          683  +i3 118.750000 0.500000 2000 6.09 2 3 5 3
          684  +i3 119.250000 0.500000 2000 6.11 2 3 5 3
          685  +i3 119.750000 0.500000 2000 6.04 2 3 5 3
          686  +i3 120.250000 0.500000 2000 6.08 2 3 5 3
          687  +i3 120.750000 0.500000 2000 6.09 2 3 5 3
          688  +i3 121.250000 0.500000 2000 6.11 2 3 5 3
          689  +i3 121.750000 0.500000 2000 6.04 2 3 5 3
          690  +i3 122.250000 0.500000 2000 6.08 2 3 5 3
          691  +i3 122.750000 0.500000 2000 6.09 2 3 5 3
          692  +i3 123.250000 0.500000 2000 6.11 2 3 5 3
          693  +i3 123.750000 0.500000 2000 6.04 2 3 5 3
          694  +i3 124.250000 0.500000 2000 6.08 2 3 5 3
          695  +i3 124.750000 0.500000 2000 6.09 2 3 5 3
          696  +i3 125.250000 0.500000 2000 6.11 2 3 5 3
          697  +i3 125.750000 0.500000 2000 6.04 2 3 5 3
          698  +i3 126.250000 0.500000 2000 6.08 2 3 5 3
          699  +i3 126.750000 0.500000 2000 6.09 2 3 5 3
          700  +i3 127.250000 0.500000 2000 6.11 2 3 5 3
          701  +i3 127.750000 0.500000 2000 6.04 2 3 5 3
          702  +i3 128.250000 0.500000 2000 6.08 2 3 5 3
          703  +i3 128.750000 0.500000 2000 6.09 2 3 5 3
          704  +i3 129.250000 0.500000 2000 6.11 2 3 5 3
          705  +i3 129.750000 0.500000 2000 6.04 2 3 5 3
          706  +i3 130.250000 0.500000 2000 6.08 2 3 5 3
          707  +i3 130.750000 0.500000 2000 6.09 2 3 5 3
          708  +i3 131.250000 0.500000 2000 6.11 2 3 5 3
          709  +i3 131.750000 0.500000 2000 6.04 2 3 5 3
          710  +i3 132.250000 0.250000 2000 6.06 2 3 5 3
          711  +i1 102.500000 0.500000 7000 7.11 7.11 0 6
          712  +i1 102.500000 0.500000 7000 7.04 7.04 0 6
          713  +i1 102.500000 0.500000 7000 7.08 7.08 0 6
          714  +i1 103.000000 0.500000 7000 7.08 7.08 0 6
          715  +i1 103.000000 0.500000 7000 7.11 7.11 0 6
          716  +i1 103.000000 0.500000 7000 7.02 7.02 0 6
          717  +i1 103.500000 0.500000 7000 7.04 7.04 0 6
          718  +i1 103.500000 0.500000 7000 7.09 7.09 0 6
          719  +i1 103.500000 0.500000 7000 7.11 7.11 0 6
          720  +i1 104.000000 0.500000 7000 7.06 7.06 0 6
          721  +i1 104.000000 0.500000 7000 7.09 7.09 0 6
          722  +i1 104.000000 0.500000 7000 7.01 7.01 0 6
          723  +i1 104.500000 0.500000 7000 7.11 7.11 0 6
          724  +i1 104.500000 0.500000 7000 7.04 7.04 0 6
          725  +i1 104.500000 0.500000 7000 7.08 7.08 0 6
          726  +i1 105.000000 0.500000 7000 7.08 7.08 0 6
          727  +i1 105.000000 0.500000 7000 7.11 7.11 0 6
          728  +i1 105.000000 0.500000 7000 7.02 7.02 0 6
          729  +i1 105.500000 0.500000 7000 7.04 7.04 0 6
          730  +i1 105.500000 0.500000 7000 7.09 7.09 0 6
          731  +i1 105.500000 0.500000 7000 7.11 7.11 0 6
          732  +i1 106.000000 0.500000 7000 7.06 7.06 0 6
          733  +i1 106.000000 0.500000 7000 7.09 7.09 0 6
          734  +i1 106.000000 0.500000 7000 7.01 7.01 0 6
          735  +i1 106.500000 0.500000 7000 7.11 7.11 0 6
          736  +i1 106.500000 0.500000 7000 7.04 7.04 0 6
          737  +i1 106.500000 0.500000 7000 7.08 7.08 0 6
          738  +i1 107.000000 0.500000 7000 7.08 7.08 0 6
          739  +i1 107.000000 0.500000 7000 7.11 7.11 0 6
          740  +i1 107.000000 0.500000 7000 7.02 7.02 0 6
          741  +i1 107.500000 0.500000 7000 7.04 7.04 0 6
          742  +i1 107.500000 0.500000 7000 7.09 7.09 0 6
          743  +i1 107.500000 0.500000 7000 7.11 7.11 0 6
          744  +i1 108.000000 0.500000 7000 7.06 7.06 0 6
          745  +i1 108.000000 0.500000 7000 7.09 7.09 0 6
          746  +i1 108.000000 0.500000 7000 7.01 7.01 0 6
          747  +i1 108.500000 0.500000 7000 7.11 7.11 0 6
          748  +i1 108.500000 0.500000 7000 7.04 7.04 0 6
          749  +i1 108.500000 0.500000 7000 7.08 7.08 0 6
          750  +i1 109.000000 0.500000 7000 7.08 7.08 0 6
          751  +i1 109.000000 0.500000 7000 7.11 7.11 0 6
          752  +i1 109.000000 0.500000 7000 7.02 7.02 0 6
          753  +i1 109.500000 0.500000 7000 7.04 7.04 0 6
          754  +i1 109.500000 0.500000 7000 7.09 7.09 0 6
          755  +i1 109.500000 0.500000 7000 7.11 7.11 0 6
          756  +i1 110.000000 0.500000 7000 7.06 7.06 0 6
          757  +i1 110.000000 0.500000 7000 7.09 7.09 0 6
          758  +i1 110.000000 0.500000 7000 7.01 7.01 0 6
          759  +i1 110.500000 0.500000 7000 7.11 7.11 0 6
          760  +i1 110.500000 0.500000 7000 7.04 7.04 0 6
          761  +i1 110.500000 0.500000 7000 7.08 7.08 0 6
          762  +i1 111.000000 0.500000 7000 7.08 7.08 0 6
          763  +i1 111.000000 0.500000 7000 7.11 7.11 0 6
          764  +i1 111.000000 0.500000 7000 7.02 7.02 0 6
          765  +i1 111.500000 0.500000 7000 7.04 7.04 0 6
          766  +i1 111.500000 0.500000 7000 7.09 7.09 0 6
          767  +i1 111.500000 0.500000 7000 7.11 7.11 0 6
          768  +i1 112.000000 0.500000 7000 7.06 7.06 0 6
          769  +i1 112.000000 0.500000 7000 7.09 7.09 0 6
          770  +i1 112.000000 0.500000 7000 7.01 7.01 0 6
          771  +i1 112.500000 0.500000 7000 7.11 7.11 0 6
          772  +i1 112.500000 0.500000 7000 7.04 7.04 0 6
          773  +i1 112.500000 0.500000 7000 7.08 7.08 0 6
          774  +i1 113.000000 0.500000 7000 7.08 7.08 0 6
          775  +i1 113.000000 0.500000 7000 7.11 7.11 0 6
          776  +i1 113.000000 0.500000 7000 7.02 7.02 0 6
          777  +i1 113.500000 0.500000 7000 7.04 7.04 0 6
          778  +i1 113.500000 0.500000 7000 7.09 7.09 0 6
          779  +i1 113.500000 0.500000 7000 7.11 7.11 0 6
          780  +i1 114.000000 0.500000 7000 7.06 7.06 0 6
          781  +i1 114.000000 0.500000 7000 7.09 7.09 0 6
          782  +i1 114.000000 0.500000 7000 7.01 7.01 0 6
          783  +i1 114.500000 0.500000 7000 7.11 7.11 0 6
          784  +i1 114.500000 0.500000 7000 7.04 7.04 0 6
          785  +i1 114.500000 0.500000 7000 7.08 7.08 0 6
          786  +i1 115.000000 0.500000 7000 7.08 7.08 0 6
          787  +i1 115.000000 0.500000 7000 7.11 7.11 0 6
          788  +i1 115.000000 0.500000 7000 7.02 7.02 0 6
          789  +i1 115.500000 0.500000 7000 7.04 7.04 0 6
          790  +i1 115.500000 0.500000 7000 7.09 7.09 0 6
          791  +i1 115.500000 0.500000 7000 7.11 7.11 0 6
          792  +i1 116.000000 0.500000 7000 7.06 7.06 0 6
          793  +i1 116.000000 0.500000 7000 7.09 7.09 0 6
          794  +i1 116.000000 0.500000 7000 7.01 7.01 0 6
          795  +i1 116.500000 0.500000 7000 7.11 7.11 0 6
          796  +i1 116.500000 0.500000 7000 7.04 7.04 0 6
          797  +i1 116.500000 0.500000 7000 7.08 7.08 0 6
          798  +i1 117.000000 0.500000 7000 7.08 7.08 0 6
          799  +i1 117.000000 0.500000 7000 7.11 7.11 0 6
          800  +i1 117.000000 0.500000 7000 7.02 7.02 0 6
          801  +i1 117.500000 0.500000 7000 7.04 7.04 0 6
          802  +i1 117.500000 0.500000 7000 7.09 7.09 0 6
          803  +i1 117.500000 0.500000 7000 7.11 7.11 0 6
          804  +i1 118.000000 0.500000 7000 7.06 7.06 0 6
          805  +i1 118.000000 0.500000 7000 7.09 7.09 0 6
          806  +i1 118.000000 0.500000 7000 7.01 7.01 0 6
          807  +i1 118.500000 0.500000 7000 7.11 7.11 0 6
          808  +i1 118.500000 0.500000 7000 7.04 7.04 0 6
          809  +i1 118.500000 0.500000 7000 7.08 7.08 0 6
          810  +i1 119.000000 0.500000 7000 7.08 7.08 0 6
          811  +i1 119.000000 0.500000 7000 7.11 7.11 0 6
          812  +i1 119.000000 0.500000 7000 7.02 7.02 0 6
          813  +i1 119.500000 0.500000 7000 7.04 7.04 0 6
          814  +i1 119.500000 0.500000 7000 7.09 7.09 0 6
          815  +i1 119.500000 0.500000 7000 7.11 7.11 0 6
          816  +i1 120.000000 0.500000 7000 7.06 7.06 0 6
          817  +i1 120.000000 0.500000 7000 7.09 7.09 0 6
          818  +i1 120.000000 0.500000 7000 7.01 7.01 0 6
          819  +i1 120.500000 0.500000 7000 7.11 7.11 0 6
          820  +i1 120.500000 0.500000 7000 7.04 7.04 0 6
          821  +i1 120.500000 0.500000 7000 7.08 7.08 0 6
          822  +i1 121.000000 0.500000 7000 7.08 7.08 0 6
          823  +i1 121.000000 0.500000 7000 7.11 7.11 0 6
          824  +i1 121.000000 0.500000 7000 7.02 7.02 0 6
          825  +i1 121.500000 0.500000 7000 7.04 7.04 0 6
          826  +i1 121.500000 0.500000 7000 7.09 7.09 0 6
          827  +i1 121.500000 0.500000 7000 7.11 7.11 0 6
          828  +i1 122.000000 0.500000 7000 7.06 7.06 0 6
          829  +i1 122.000000 0.500000 7000 7.09 7.09 0 6
          830  +i1 122.000000 0.500000 7000 7.01 7.01 0 6
          831  +i1 122.500000 0.500000 7000 7.11 7.11 0 6
          832  +i1 122.500000 0.500000 7000 7.04 7.04 0 6
          833  +i1 122.500000 0.500000 7000 7.08 7.08 0 6
          834  +i1 123.000000 0.500000 7000 7.08 7.08 0 6
          835  +i1 123.000000 0.500000 7000 7.11 7.11 0 6
          836  +i1 123.000000 0.500000 7000 7.02 7.02 0 6
          837  +i1 123.500000 0.500000 7000 7.04 7.04 0 6
          838  +i1 123.500000 0.500000 7000 7.09 7.09 0 6
          839  +i1 123.500000 0.500000 7000 7.11 7.11 0 6
          840  +i1 124.000000 0.500000 7000 7.06 7.06 0 6
          841  +i1 124.000000 0.500000 7000 7.09 7.09 0 6
          842  +i1 124.000000 0.500000 7000 7.01 7.01 0 6
          843  +i1 124.500000 0.500000 7000 7.11 7.11 0 6
          844  +i1 124.500000 0.500000 7000 7.04 7.04 0 6
          845  +i1 124.500000 0.500000 7000 7.08 7.08 0 6
          846  +i1 125.000000 0.500000 7000 7.08 7.08 0 6
          847  +i1 125.000000 0.500000 7000 7.11 7.11 0 6
          848  +i1 125.000000 0.500000 7000 7.02 7.02 0 6
          849  +i1 125.500000 0.500000 7000 7.04 7.04 0 6
          850  +i1 125.500000 0.500000 7000 7.09 7.09 0 6
          851  +i1 125.500000 0.500000 7000 7.11 7.11 0 6
          852  +i1 126.000000 0.500000 7000 7.06 7.06 0 6
          853  +i1 126.000000 0.500000 7000 7.09 7.09 0 6
          854  +i1 126.000000 0.500000 7000 7.01 7.01 0 6
          855  +i1 126.500000 0.500000 7000 7.11 7.11 0 6
          856  +i1 126.500000 0.500000 7000 7.04 7.04 0 6
          857  +i1 126.500000 0.500000 7000 7.08 7.08 0 6
          858  +i1 127.000000 0.500000 7000 7.08 7.08 0 6
          859  +i1 127.000000 0.500000 7000 7.11 7.11 0 6
          860  +i1 127.000000 0.500000 7000 7.02 7.02 0 6
          861  +i1 127.500000 0.500000 7000 7.04 7.04 0 6
          862  +i1 127.500000 0.500000 7000 7.09 7.09 0 6
          863  +i1 127.500000 0.500000 7000 7.11 7.11 0 6
          864  +i1 128.000000 0.500000 7000 7.06 7.06 0 6
          865  +i1 128.000000 0.500000 7000 7.09 7.09 0 6
          866  +i1 128.000000 0.500000 7000 7.01 7.01 0 6
          867  +i1 128.500000 0.500000 7000 7.11 7.11 0 6
          868  +i1 128.500000 0.500000 7000 7.04 7.04 0 6
          869  +i1 128.500000 0.500000 7000 7.08 7.08 0 6
          870  +i1 129.000000 0.500000 7000 7.08 7.08 0 6
          871  +i1 129.000000 0.500000 7000 7.11 7.11 0 6
          872  +i1 129.000000 0.500000 7000 7.02 7.02 0 6
          873  +i1 129.500000 0.500000 7000 7.04 7.04 0 6
          874  +i1 129.500000 0.500000 7000 7.09 7.09 0 6
          875  +i1 129.500000 0.500000 7000 7.11 7.11 0 6
          876  +i1 130.000000 0.500000 7000 7.06 7.06 0 6
          877  +i1 130.000000 0.500000 7000 7.09 7.09 0 6
          878  +i1 130.000000 0.500000 7000 7.01 7.01 0 6
          879  +i1 130.500000 0.500000 7000 7.11 7.11 0 6
          880  +i1 130.500000 0.500000 7000 7.04 7.04 0 6
          881  +i1 130.500000 0.500000 7000 7.08 7.08 0 6
          882  +i1 131.000000 0.500000 7000 7.08 7.08 0 6
          883  +i1 131.000000 0.500000 7000 7.11 7.11 0 6
          884  +i1 131.000000 0.500000 7000 7.02 7.02 0 6
          885  +i1 131.500000 0.500000 7000 7.04 7.04 0 6
          886  +i1 131.500000 0.500000 7000 7.09 7.09 0 6
          887  +i1 131.500000 0.500000 7000 7.11 7.11 0 6
          888  +i1 132.000000 0.500000 7000 7.06 7.06 0 6
          889  +i1 132.000000 0.500000 7000 7.09 7.09 0 6
          890  +i1 132.000000 0.500000 7000 7.01 7.01 0 6
          891  +; Movement: zelda1
          892  +i3 132.500000 2.000000 2000 6.09 2 3 5 3
          893  +i3 134.500000 2.000000 2000 6.08 2 3 5 3
          894  +i3 136.500000 2.000000 2000 6.04 2 3 5 3
          895  +i3 138.500000 2.000000 2000 6.06 2 3 5 3
          896  +i3 140.500000 2.000000 2000 6.09 2 3 5 3
          897  +i3 142.500000 0.500000 2000 6.02 2 3 5 3
          898  +i3 143.000000 0.500000 2000 6.04 2 3 5 3
          899  +i3 143.500000 2.000000 2000 6.01 2 3 5 3
          900  +i3 145.500000 2.000000 2000 6.09 2 3 5 3
          901  +i3 147.500000 2.000000 2000 6.08 2 3 5 3
          902  +i3 149.500000 2.000000 2000 6.04 2 3 5 3
          903  +i3 151.500000 2.000000 2000 6.06 2 3 5 3
          904  +i3 153.500000 2.000000 2000 6.09 2 3 5 3
          905  +i3 155.500000 0.500000 2000 6.02 2 3 5 3
          906  +i3 156.000000 0.500000 2000 6.04 2 3 5 3
          907  +i3 156.500000 2.000000 2000 6.01 2 3 5 3
          908  +i3 158.500000 2.000000 2000 6.09 2 3 5 3
          909  +i3 160.500000 2.000000 2000 6.08 2 3 5 3
          910  +i3 162.500000 2.000000 2000 6.04 2 3 5 3
          911  +i3 164.500000 2.000000 2000 6.06 2 3 5 3
          912  +i3 166.500000 2.000000 2000 6.09 2 3 5 3
          913  +i3 168.500000 0.500000 2000 6.02 2 3 5 3
          914  +i3 169.000000 0.500000 2000 6.04 2 3 5 3
          915  +i3 169.500000 2.000000 2000 6.01 2 3 5 3
          916  +i3 171.500000 2.000000 2000 6.09 2 3 5 3
          917  +i3 173.500000 2.000000 2000 6.08 2 3 5 3
          918  +i3 175.500000 2.000000 2000 6.04 2 3 5 3
          919  +i3 177.500000 2.000000 2000 6.06 2 3 5 3
          920  +i3 179.500000 2.000000 2000 6.09 2 3 5 3
          921  +i3 181.500000 0.500000 2000 6.02 2 3 5 3
          922  +i3 182.000000 0.500000 2000 6.04 2 3 5 3
          923  +i3 182.500000 2.000000 2000 6.01 2 3 5 3
          924  +i3 184.500000 2.000000 2000 6.09 2 3 5 3
          925  +i2 132.500000 0.500000 7000 8.08 2
          926  +i2 133.000000 0.500000 7000 8.09 2
          927  +i2 133.500000 0.500000 7000 8.11 2
          928  +i2 134.000000 0.500000 7000 8.04 2
          929  +i2 134.500000 0.250000 7000 8.01 2
          930  +i2 134.750000 0.250000 7000 8.06 2
          931  +i2 135.000000 0.250000 7000 8.11 2
          932  +i2 135.250000 0.250000 7000 8.04 2
          933  +i2 135.500000 0.250000 7000 8.06 2
          934  +i2 135.750000 0.250000 7000 8.02 2
          935  +i2 136.000000 2.000000 7000 8.08 2
          936  +i2 138.000000 0.250000 7000 8.06 2
          937  +i2 138.250000 0.250000 7000 8.01 2
          938  +i2 138.500000 0.250000 7000 8.11 2
          939  +i2 138.750000 0.250000 7000 8.09 2
          940  +i2 139.000000 0.500000 7000 8.08 2
          941  +i2 139.500000 0.500000 7000 8.09 2
          942  +i2 140.000000 0.500000 7000 8.11 2
          943  +i2 140.500000 0.500000 7000 8.04 2
          944  +i2 141.000000 0.250000 7000 8.01 2
          945  +i2 141.250000 0.250000 7000 8.06 2
          946  +i2 141.500000 0.250000 7000 8.11 2
          947  +i2 141.750000 0.250000 7000 8.04 2
          948  +i2 142.000000 0.250000 7000 8.06 2
          949  +i2 142.250000 0.250000 7000 8.02 2
          950  +i2 142.500000 2.000000 7000 8.08 2
          951  +i2 144.500000 0.250000 7000 8.06 2
          952  +i2 144.750000 0.250000 7000 8.01 2
          953  +i2 145.000000 0.250000 7000 8.11 2
          954  +i2 145.250000 0.250000 7000 8.09 2
          955  +i2 145.500000 0.500000 7000 8.08 2
          956  +i2 146.000000 0.500000 7000 8.09 2
          957  +i2 146.500000 0.500000 7000 8.11 2
          958  +i2 147.000000 0.500000 7000 8.04 2
          959  +i2 147.500000 0.250000 7000 8.01 2
          960  +i2 147.750000 0.250000 7000 8.06 2
          961  +i2 148.000000 0.250000 7000 8.11 2
          962  +i2 148.250000 0.250000 7000 8.04 2
          963  +i2 148.500000 0.250000 7000 8.06 2
          964  +i2 148.750000 0.250000 7000 8.02 2
          965  +i2 149.000000 2.000000 7000 8.08 2
          966  +i2 151.000000 0.250000 7000 8.06 2
          967  +i2 151.250000 0.250000 7000 8.01 2
          968  +i2 151.500000 0.250000 7000 8.11 2
          969  +i2 151.750000 0.250000 7000 8.09 2
          970  +i2 152.000000 0.500000 7000 8.08 2
          971  +i2 152.500000 0.500000 7000 8.09 2
          972  +i2 153.000000 0.500000 7000 8.11 2
          973  +i2 153.500000 0.500000 7000 8.04 2
          974  +i2 154.000000 0.250000 7000 8.01 2
          975  +i2 154.250000 0.250000 7000 8.06 2
          976  +i2 154.500000 0.250000 7000 8.11 2
          977  +i2 154.750000 0.250000 7000 8.04 2
          978  +i2 155.000000 0.250000 7000 8.06 2
          979  +i2 155.250000 0.250000 7000 8.02 2
          980  +i2 155.500000 2.000000 7000 8.08 2
          981  +i2 157.500000 0.250000 7000 8.06 2
          982  +i2 157.750000 0.250000 7000 8.01 2
          983  +i2 158.000000 0.250000 7000 8.11 2
          984  +i2 158.250000 0.250000 7000 8.09 2
          985  +i2 158.500000 0.500000 7000 8.08 2
          986  +i2 159.000000 0.500000 7000 8.09 2
          987  +i2 159.500000 0.500000 7000 8.11 2
          988  +i2 160.000000 0.500000 7000 8.04 2
          989  +i2 160.500000 0.250000 7000 8.01 2
          990  +i2 160.750000 0.250000 7000 8.06 2
          991  +i2 161.000000 0.250000 7000 8.11 2
          992  +i2 161.250000 0.250000 7000 8.04 2
          993  +i2 161.500000 0.250000 7000 8.06 2
          994  +i2 161.750000 0.250000 7000 8.02 2
          995  +i2 162.000000 2.000000 7000 8.08 2
          996  +i2 164.000000 0.250000 7000 8.06 2
          997  +i2 164.250000 0.250000 7000 8.01 2
          998  +i2 164.500000 0.250000 7000 8.11 2
          999  +i2 164.750000 0.250000 7000 8.09 2
         1000  +i2 165.000000 0.500000 7000 8.08 2
         1001  +i2 165.500000 0.500000 7000 8.09 2
         1002  +i2 166.000000 0.500000 7000 8.11 2
         1003  +i2 166.500000 0.500000 7000 8.04 2
         1004  +i2 167.000000 0.250000 7000 8.09 2
         1005  +i2 167.250000 0.500000 7000 8.06 2
         1006  +i2 167.750000 0.500000 7000 8.06 2
         1007  +i2 168.250000 0.500000 7000 8.02 2
         1008  +i2 168.750000 0.250000 7000 8.09 2
         1009  +i2 169.000000 0.500000 7000 8.06 2
         1010  +i2 169.500000 0.500000 7000 8.06 2
         1011  +i2 170.000000 0.500000 7000 8.02 2
         1012  +i2 170.500000 0.250000 7000 8.09 2
         1013  +i2 170.750000 0.500000 7000 8.06 2
         1014  +i2 171.250000 0.500000 7000 8.06 2
         1015  +i2 171.750000 0.500000 7000 8.02 2
         1016  +i2 172.250000 0.500000 7000 8.08 2
         1017  +i2 172.750000 0.500000 7000 8.09 2
         1018  +i2 173.250000 0.500000 7000 8.11 2
         1019  +i2 173.750000 0.500000 7000 8.04 2
         1020  +i2 174.250000 0.250000 7000 8.01 2
         1021  +i2 174.500000 0.250000 7000 8.06 2
         1022  +i2 174.750000 0.250000 7000 8.11 2
         1023  +i2 175.000000 0.250000 7000 8.04 2
         1024  +i2 175.250000 0.250000 7000 8.06 2
         1025  +i2 175.500000 0.250000 7000 8.02 2
         1026  +i2 175.750000 2.000000 7000 8.08 2
         1027  +i2 177.750000 0.250000 7000 8.06 2
         1028  +i2 178.000000 0.250000 7000 8.01 2
         1029  +i2 178.250000 0.250000 7000 8.11 2
         1030  +i2 178.500000 0.250000 7000 8.09 2
         1031  +i2 178.750000 0.500000 7000 8.08 2
         1032  +i2 179.250000 0.500000 7000 8.09 2
         1033  +i2 179.750000 0.500000 7000 8.11 2
         1034  +i2 180.250000 0.500000 7000 8.04 2
         1035  +i2 180.750000 0.250000 7000 8.09 2
         1036  +i2 181.000000 0.500000 7000 8.06 2
         1037  +i2 181.500000 0.500000 7000 8.06 2
         1038  +i2 182.000000 0.500000 7000 8.02 2
         1039  +i1 132.500000 0.500000 7000 7.11 7.11 0 6
         1040  +i1 132.500000 0.500000 7000 7.04 7.04 0 6
         1041  +i1 132.500000 0.500000 7000 7.08 7.08 0 6
         1042  +i1 133.000000 0.500000 7000 7.08 7.08 0 6
         1043  +i1 133.000000 0.500000 7000 7.11 7.11 0 6
         1044  +i1 133.000000 0.500000 7000 7.02 7.02 0 6
         1045  +i1 133.500000 0.500000 7000 7.04 7.04 0 6
         1046  +i1 133.500000 0.500000 7000 7.09 7.09 0 6
         1047  +i1 133.500000 0.500000 7000 7.11 7.11 0 6
         1048  +i1 134.000000 0.500000 7000 7.06 7.06 0 6
         1049  +i1 134.000000 0.500000 7000 7.09 7.09 0 6
         1050  +i1 134.000000 0.500000 7000 7.01 7.01 0 6
         1051  +i1 134.500000 0.500000 7000 7.11 7.11 0 6
         1052  +i1 134.500000 0.500000 7000 7.04 7.04 0 6
         1053  +i1 134.500000 0.500000 7000 7.08 7.08 0 6
         1054  +i1 135.000000 0.500000 7000 7.08 7.08 0 6
         1055  +i1 135.000000 0.500000 7000 7.11 7.11 0 6
         1056  +i1 135.000000 0.500000 7000 7.02 7.02 0 6
         1057  +i1 135.500000 0.500000 7000 7.04 7.04 0 6
         1058  +i1 135.500000 0.500000 7000 7.09 7.09 0 6
         1059  +i1 135.500000 0.500000 7000 7.11 7.11 0 6
         1060  +i1 136.000000 0.500000 7000 7.06 7.06 0 6
         1061  +i1 136.000000 0.500000 7000 7.09 7.09 0 6
         1062  +i1 136.000000 0.500000 7000 7.01 7.01 0 6
         1063  +i1 136.500000 0.500000 7000 7.11 7.11 0 6
         1064  +i1 136.500000 0.500000 7000 7.04 7.04 0 6
         1065  +i1 136.500000 0.500000 7000 7.08 7.08 0 6
         1066  +i1 137.000000 0.500000 7000 7.08 7.08 0 6
         1067  +i1 137.000000 0.500000 7000 7.11 7.11 0 6
         1068  +i1 137.000000 0.500000 7000 7.02 7.02 0 6
         1069  +i1 137.500000 0.500000 7000 7.04 7.04 0 6
         1070  +i1 137.500000 0.500000 7000 7.09 7.09 0 6
         1071  +i1 137.500000 0.500000 7000 7.11 7.11 0 6
         1072  +i1 138.000000 0.500000 7000 7.06 7.06 0 6
         1073  +i1 138.000000 0.500000 7000 7.09 7.09 0 6
         1074  +i1 138.000000 0.500000 7000 7.01 7.01 0 6
         1075  +i1 138.500000 0.500000 7000 7.11 7.11 0 6
         1076  +i1 138.500000 0.500000 7000 7.04 7.04 0 6
         1077  +i1 138.500000 0.500000 7000 7.08 7.08 0 6
         1078  +i1 139.000000 0.500000 7000 7.08 7.08 0 6
         1079  +i1 139.000000 0.500000 7000 7.11 7.11 0 6
         1080  +i1 139.000000 0.500000 7000 7.02 7.02 0 6
         1081  +i1 139.500000 0.500000 7000 7.04 7.04 0 6
         1082  +i1 139.500000 0.500000 7000 7.09 7.09 0 6
         1083  +i1 139.500000 0.500000 7000 7.11 7.11 0 6
         1084  +i1 140.000000 0.500000 7000 7.06 7.06 0 6
         1085  +i1 140.000000 0.500000 7000 7.09 7.09 0 6
         1086  +i1 140.000000 0.500000 7000 7.01 7.01 0 6
         1087  +i1 140.500000 0.500000 7000 7.11 7.11 0 6
         1088  +i1 140.500000 0.500000 7000 7.04 7.04 0 6
         1089  +i1 140.500000 0.500000 7000 7.08 7.08 0 6
         1090  +i1 141.000000 0.500000 7000 7.08 7.08 0 6
         1091  +i1 141.000000 0.500000 7000 7.11 7.11 0 6
         1092  +i1 141.000000 0.500000 7000 7.02 7.02 0 6
         1093  +i1 141.500000 0.500000 7000 7.04 7.04 0 6
         1094  +i1 141.500000 0.500000 7000 7.09 7.09 0 6
         1095  +i1 141.500000 0.500000 7000 7.11 7.11 0 6
         1096  +i1 142.000000 0.500000 7000 7.06 7.06 0 6
         1097  +i1 142.000000 0.500000 7000 7.09 7.09 0 6
         1098  +i1 142.000000 0.500000 7000 7.01 7.01 0 6
         1099  +i1 142.500000 0.500000 7000 7.11 7.11 0 6
         1100  +i1 142.500000 0.500000 7000 7.04 7.04 0 6
         1101  +i1 142.500000 0.500000 7000 7.08 7.08 0 6
         1102  +i1 143.000000 0.500000 7000 7.08 7.08 0 6
         1103  +i1 143.000000 0.500000 7000 7.11 7.11 0 6
         1104  +i1 143.000000 0.500000 7000 7.02 7.02 0 6
         1105  +i1 143.500000 0.500000 7000 7.04 7.04 0 6
         1106  +i1 143.500000 0.500000 7000 7.09 7.09 0 6
         1107  +i1 143.500000 0.500000 7000 7.11 7.11 0 6
         1108  +i1 144.000000 0.500000 7000 7.06 7.06 0 6
         1109  +i1 144.000000 0.500000 7000 7.09 7.09 0 6
         1110  +i1 144.000000 0.500000 7000 7.01 7.01 0 6
         1111  +i1 144.500000 0.500000 7000 7.11 7.11 0 6
         1112  +i1 144.500000 0.500000 7000 7.04 7.04 0 6
         1113  +i1 144.500000 0.500000 7000 7.08 7.08 0 6
         1114  +i1 145.000000 0.500000 7000 7.08 7.08 0 6
         1115  +i1 145.000000 0.500000 7000 7.11 7.11 0 6
         1116  +i1 145.000000 0.500000 7000 7.02 7.02 0 6
         1117  +i1 145.500000 0.500000 7000 7.04 7.04 0 6
         1118  +i1 145.500000 0.500000 7000 7.09 7.09 0 6
         1119  +i1 145.500000 0.500000 7000 7.11 7.11 0 6
         1120  +i1 146.000000 0.500000 7000 7.06 7.06 0 6
         1121  +i1 146.000000 0.500000 7000 7.09 7.09 0 6
         1122  +i1 146.000000 0.500000 7000 7.01 7.01 0 6
         1123  +i1 146.500000 0.500000 7000 7.11 7.11 0 6
         1124  +i1 146.500000 0.500000 7000 7.04 7.04 0 6
         1125  +i1 146.500000 0.500000 7000 7.08 7.08 0 6
         1126  +i1 147.000000 0.500000 7000 7.08 7.08 0 6
         1127  +i1 147.000000 0.500000 7000 7.11 7.11 0 6
         1128  +i1 147.000000 0.500000 7000 7.02 7.02 0 6
         1129  +i1 147.500000 0.500000 7000 7.04 7.04 0 6
         1130  +i1 147.500000 0.500000 7000 7.09 7.09 0 6
         1131  +i1 147.500000 0.500000 7000 7.11 7.11 0 6
         1132  +i1 148.000000 0.500000 7000 7.06 7.06 0 6
         1133  +i1 148.000000 0.500000 7000 7.09 7.09 0 6
         1134  +i1 148.000000 0.500000 7000 7.01 7.01 0 6
         1135  +i1 148.500000 0.500000 7000 7.11 7.11 0 6
         1136  +i1 148.500000 0.500000 7000 7.04 7.04 0 6
         1137  +i1 148.500000 0.500000 7000 7.08 7.08 0 6
         1138  +i1 149.000000 0.500000 7000 7.08 7.08 0 6
         1139  +i1 149.000000 0.500000 7000 7.11 7.11 0 6
         1140  +i1 149.000000 0.500000 7000 7.02 7.02 0 6
         1141  +i1 149.500000 0.500000 7000 7.04 7.04 0 6
         1142  +i1 149.500000 0.500000 7000 7.09 7.09 0 6
         1143  +i1 149.500000 0.500000 7000 7.11 7.11 0 6
         1144  +i1 150.000000 0.500000 7000 7.06 7.06 0 6
         1145  +i1 150.000000 0.500000 7000 7.09 7.09 0 6
         1146  +i1 150.000000 0.500000 7000 7.01 7.01 0 6
         1147  +i1 150.500000 0.500000 7000 7.11 7.11 0 6
         1148  +i1 150.500000 0.500000 7000 7.04 7.04 0 6
         1149  +i1 150.500000 0.500000 7000 7.08 7.08 0 6
         1150  +i1 151.000000 0.500000 7000 7.08 7.08 0 6
         1151  +i1 151.000000 0.500000 7000 7.11 7.11 0 6
         1152  +i1 151.000000 0.500000 7000 7.02 7.02 0 6
         1153  +i1 151.500000 0.500000 7000 7.04 7.04 0 6
         1154  +i1 151.500000 0.500000 7000 7.09 7.09 0 6
         1155  +i1 151.500000 0.500000 7000 7.11 7.11 0 6
         1156  +i1 152.000000 0.500000 7000 7.06 7.06 0 6
         1157  +i1 152.000000 0.500000 7000 7.09 7.09 0 6
         1158  +i1 152.000000 0.500000 7000 7.01 7.01 0 6
         1159  +i1 152.500000 0.500000 7000 7.11 7.11 0 6
         1160  +i1 152.500000 0.500000 7000 7.04 7.04 0 6
         1161  +i1 152.500000 0.500000 7000 7.08 7.08 0 6
         1162  +i1 153.000000 0.500000 7000 7.08 7.08 0 6
         1163  +i1 153.000000 0.500000 7000 7.11 7.11 0 6
         1164  +i1 153.000000 0.500000 7000 7.02 7.02 0 6
         1165  +i1 153.500000 0.500000 7000 7.04 7.04 0 6
         1166  +i1 153.500000 0.500000 7000 7.09 7.09 0 6
         1167  +i1 153.500000 0.500000 7000 7.11 7.11 0 6
         1168  +i1 154.000000 0.500000 7000 7.06 7.06 0 6
         1169  +i1 154.000000 0.500000 7000 7.09 7.09 0 6
         1170  +i1 154.000000 0.500000 7000 7.01 7.01 0 6
         1171  +i1 154.500000 0.500000 7000 7.11 7.11 0 6
         1172  +i1 154.500000 0.500000 7000 7.04 7.04 0 6
         1173  +i1 154.500000 0.500000 7000 7.08 7.08 0 6
         1174  +i1 155.000000 0.500000 7000 7.08 7.08 0 6
         1175  +i1 155.000000 0.500000 7000 7.11 7.11 0 6
         1176  +i1 155.000000 0.500000 7000 7.02 7.02 0 6
         1177  +i1 155.500000 0.500000 7000 7.04 7.04 0 6
         1178  +i1 155.500000 0.500000 7000 7.09 7.09 0 6
         1179  +i1 155.500000 0.500000 7000 7.11 7.11 0 6
         1180  +i1 156.000000 0.500000 7000 7.06 7.06 0 6
         1181  +i1 156.000000 0.500000 7000 7.09 7.09 0 6
         1182  +i1 156.000000 0.500000 7000 7.01 7.01 0 6
         1183  +i1 156.500000 0.500000 7000 7.11 7.11 0 6
         1184  +i1 156.500000 0.500000 7000 7.04 7.04 0 6
         1185  +i1 156.500000 0.500000 7000 7.08 7.08 0 6
         1186  +i1 157.000000 0.500000 7000 7.08 7.08 0 6
         1187  +i1 157.000000 0.500000 7000 7.11 7.11 0 6
         1188  +i1 157.000000 0.500000 7000 7.02 7.02 0 6
         1189  +i1 157.500000 0.500000 7000 7.04 7.04 0 6
         1190  +i1 157.500000 0.500000 7000 7.09 7.09 0 6
         1191  +i1 157.500000 0.500000 7000 7.11 7.11 0 6
         1192  +i1 158.000000 0.500000 7000 7.06 7.06 0 6
         1193  +i1 158.000000 0.500000 7000 7.09 7.09 0 6
         1194  +i1 158.000000 0.500000 7000 7.01 7.01 0 6
         1195  +i1 158.500000 0.500000 7000 7.11 7.11 0 6
         1196  +i1 158.500000 0.500000 7000 7.04 7.04 0 6
         1197  +i1 158.500000 0.500000 7000 7.08 7.08 0 6
         1198  +i1 159.000000 0.500000 7000 7.08 7.08 0 6
         1199  +i1 159.000000 0.500000 7000 7.11 7.11 0 6
         1200  +i1 159.000000 0.500000 7000 7.02 7.02 0 6
         1201  +i1 159.500000 0.500000 7000 7.04 7.04 0 6
         1202  +i1 159.500000 0.500000 7000 7.09 7.09 0 6
         1203  +i1 159.500000 0.500000 7000 7.11 7.11 0 6
         1204  +i1 160.000000 0.500000 7000 7.06 7.06 0 6
         1205  +i1 160.000000 0.500000 7000 7.09 7.09 0 6
         1206  +i1 160.000000 0.500000 7000 7.01 7.01 0 6
         1207  +i1 160.500000 0.500000 7000 7.11 7.11 0 6
         1208  +i1 160.500000 0.500000 7000 7.04 7.04 0 6
         1209  +i1 160.500000 0.500000 7000 7.08 7.08 0 6
         1210  +i1 161.000000 0.500000 7000 7.08 7.08 0 6
         1211  +i1 161.000000 0.500000 7000 7.11 7.11 0 6
         1212  +i1 161.000000 0.500000 7000 7.02 7.02 0 6
         1213  +i1 161.500000 0.500000 7000 7.04 7.04 0 6
         1214  +i1 161.500000 0.500000 7000 7.09 7.09 0 6
         1215  +i1 161.500000 0.500000 7000 7.11 7.11 0 6
         1216  +i1 162.000000 0.500000 7000 7.06 7.06 0 6
         1217  +i1 162.000000 0.500000 7000 7.09 7.09 0 6
         1218  +i1 162.000000 0.500000 7000 7.01 7.01 0 6
         1219  +i1 162.500000 0.500000 7000 7.11 7.11 0 6
         1220  +i1 162.500000 0.500000 7000 7.04 7.04 0 6
         1221  +i1 162.500000 0.500000 7000 7.08 7.08 0 6
         1222  +i1 163.000000 0.500000 7000 7.08 7.08 0 6
         1223  +i1 163.000000 0.500000 7000 7.11 7.11 0 6
         1224  +i1 163.000000 0.500000 7000 7.02 7.02 0 6
         1225  +i1 163.500000 0.500000 7000 7.04 7.04 0 6
         1226  +i1 163.500000 0.500000 7000 7.09 7.09 0 6
         1227  +i1 163.500000 0.500000 7000 7.11 7.11 0 6
         1228  +i1 164.000000 0.500000 7000 7.06 7.06 0 6
         1229  +i1 164.000000 0.500000 7000 7.09 7.09 0 6
         1230  +i1 164.000000 0.500000 7000 7.01 7.01 0 6
         1231  +i1 164.500000 0.500000 7000 7.11 7.11 0 6
         1232  +i1 164.500000 0.500000 7000 7.04 7.04 0 6
         1233  +i1 164.500000 0.500000 7000 7.08 7.08 0 6
         1234  +i1 165.000000 0.500000 7000 7.08 7.08 0 6
         1235  +i1 165.000000 0.500000 7000 7.11 7.11 0 6
         1236  +i1 165.000000 0.500000 7000 7.02 7.02 0 6
         1237  +i1 165.500000 0.500000 7000 7.04 7.04 0 6
         1238  +i1 165.500000 0.500000 7000 7.09 7.09 0 6
         1239  +i1 165.500000 0.500000 7000 7.11 7.11 0 6
         1240  +i1 166.000000 0.500000 7000 7.06 7.06 0 6
         1241  +i1 166.000000 0.500000 7000 7.09 7.09 0 6
         1242  +i1 166.000000 0.500000 7000 7.01 7.01 0 6
         1243  +i1 166.500000 0.500000 7000 7.11 7.11 0 6
         1244  +i1 166.500000 0.500000 7000 7.04 7.04 0 6
         1245  +i1 166.500000 0.500000 7000 7.08 7.08 0 6
         1246  +i1 167.000000 0.500000 7000 7.08 7.08 0 6
         1247  +i1 167.000000 0.500000 7000 7.11 7.11 0 6
         1248  +i1 167.000000 0.500000 7000 7.02 7.02 0 6
         1249  +i1 167.500000 0.500000 7000 7.04 7.04 0 6
         1250  +i1 167.500000 0.500000 7000 7.09 7.09 0 6
         1251  +i1 167.500000 0.500000 7000 7.11 7.11 0 6
         1252  +i1 168.000000 0.500000 7000 7.06 7.06 0 6
         1253  +i1 168.000000 0.500000 7000 7.09 7.09 0 6
         1254  +i1 168.000000 0.500000 7000 7.01 7.01 0 6
         1255  +i1 168.500000 0.500000 7000 7.11 7.11 0 6
         1256  +i1 168.500000 0.500000 7000 7.04 7.04 0 6
         1257  +i1 168.500000 0.500000 7000 7.08 7.08 0 6
         1258  +i1 169.000000 0.500000 7000 7.08 7.08 0 6
         1259  +i1 169.000000 0.500000 7000 7.11 7.11 0 6
         1260  +i1 169.000000 0.500000 7000 7.02 7.02 0 6
         1261  +i1 169.500000 0.500000 7000 7.04 7.04 0 6
         1262  +i1 169.500000 0.500000 7000 7.09 7.09 0 6
         1263  +i1 169.500000 0.500000 7000 7.11 7.11 0 6
         1264  +i1 170.000000 0.500000 7000 7.06 7.06 0 6
         1265  +i1 170.000000 0.500000 7000 7.09 7.09 0 6
         1266  +i1 170.000000 0.500000 7000 7.01 7.01 0 6
         1267  +i1 170.500000 0.500000 7000 7.11 7.11 0 6
         1268  +i1 170.500000 0.500000 7000 7.04 7.04 0 6
         1269  +i1 170.500000 0.500000 7000 7.08 7.08 0 6
         1270  +i1 171.000000 0.500000 7000 7.08 7.08 0 6
         1271  +i1 171.000000 0.500000 7000 7.11 7.11 0 6
         1272  +i1 171.000000 0.500000 7000 7.02 7.02 0 6
         1273  +i1 171.500000 0.500000 7000 7.04 7.04 0 6
         1274  +i1 171.500000 0.500000 7000 7.09 7.09 0 6
         1275  +i1 171.500000 0.500000 7000 7.11 7.11 0 6
         1276  +i1 172.000000 0.500000 7000 7.06 7.06 0 6
         1277  +i1 172.000000 0.500000 7000 7.09 7.09 0 6
         1278  +i1 172.000000 0.500000 7000 7.01 7.01 0 6
         1279  +i1 172.500000 0.500000 7000 7.11 7.11 0 6
         1280  +i1 172.500000 0.500000 7000 7.04 7.04 0 6
         1281  +i1 172.500000 0.500000 7000 7.08 7.08 0 6
         1282  +i1 173.000000 0.500000 7000 7.08 7.08 0 6
         1283  +i1 173.000000 0.500000 7000 7.11 7.11 0 6
         1284  +i1 173.000000 0.500000 7000 7.02 7.02 0 6
         1285  +i1 173.500000 0.500000 7000 7.04 7.04 0 6
         1286  +i1 173.500000 0.500000 7000 7.09 7.09 0 6
         1287  +i1 173.500000 0.500000 7000 7.11 7.11 0 6
         1288  +i1 174.000000 0.500000 7000 7.06 7.06 0 6
         1289  +i1 174.000000 0.500000 7000 7.09 7.09 0 6
         1290  +i1 174.000000 0.500000 7000 7.01 7.01 0 6
         1291  +i1 174.500000 0.500000 7000 7.11 7.11 0 6
         1292  +i1 174.500000 0.500000 7000 7.04 7.04 0 6
         1293  +i1 174.500000 0.500000 7000 7.08 7.08 0 6
         1294  +i1 175.000000 0.500000 7000 7.08 7.08 0 6
         1295  +i1 175.000000 0.500000 7000 7.11 7.11 0 6
         1296  +i1 175.000000 0.500000 7000 7.02 7.02 0 6
         1297  +i1 175.500000 0.500000 7000 7.04 7.04 0 6
         1298  +i1 175.500000 0.500000 7000 7.09 7.09 0 6
         1299  +i1 175.500000 0.500000 7000 7.11 7.11 0 6
         1300  +i1 176.000000 0.500000 7000 7.06 7.06 0 6
         1301  +i1 176.000000 0.500000 7000 7.09 7.09 0 6
         1302  +i1 176.000000 0.500000 7000 7.01 7.01 0 6
         1303  +i1 176.500000 0.500000 7000 7.11 7.11 0 6
         1304  +i1 176.500000 0.500000 7000 7.04 7.04 0 6
         1305  +i1 176.500000 0.500000 7000 7.08 7.08 0 6
         1306  +i1 177.000000 0.500000 7000 7.08 7.08 0 6
         1307  +i1 177.000000 0.500000 7000 7.11 7.11 0 6
         1308  +i1 177.000000 0.500000 7000 7.02 7.02 0 6
         1309  +i1 177.500000 0.500000 7000 7.04 7.04 0 6
         1310  +i1 177.500000 0.500000 7000 7.09 7.09 0 6
         1311  +i1 177.500000 0.500000 7000 7.11 7.11 0 6
         1312  +i1 178.000000 0.500000 7000 7.06 7.06 0 6
         1313  +i1 178.000000 0.500000 7000 7.09 7.09 0 6
         1314  +i1 178.000000 0.500000 7000 7.01 7.01 0 6
         1315  +i1 178.500000 0.500000 7000 7.11 7.11 0 6
         1316  +i1 178.500000 0.500000 7000 7.04 7.04 0 6
         1317  +i1 178.500000 0.500000 7000 7.08 7.08 0 6
         1318  +i1 179.000000 0.500000 7000 7.08 7.08 0 6
         1319  +i1 179.000000 0.500000 7000 7.11 7.11 0 6
         1320  +i1 179.000000 0.500000 7000 7.02 7.02 0 6
         1321  +i1 179.500000 0.500000 7000 7.04 7.04 0 6
         1322  +i1 179.500000 0.500000 7000 7.09 7.09 0 6
         1323  +i1 179.500000 0.500000 7000 7.11 7.11 0 6
         1324  +i1 180.000000 0.500000 7000 7.06 7.06 0 6
         1325  +i1 180.000000 0.500000 7000 7.09 7.09 0 6
         1326  +i1 180.000000 0.500000 7000 7.01 7.01 0 6
         1327  +i1 180.500000 0.500000 7000 7.11 7.11 0 6
         1328  +i1 180.500000 0.500000 7000 7.04 7.04 0 6
         1329  +i1 180.500000 0.500000 7000 7.08 7.08 0 6
         1330  +i1 181.000000 0.500000 7000 7.08 7.08 0 6
         1331  +i1 181.000000 0.500000 7000 7.11 7.11 0 6
         1332  +i1 181.000000 0.500000 7000 7.02 7.02 0 6
         1333  +i1 181.500000 0.500000 7000 7.04 7.04 0 6
         1334  +i1 181.500000 0.500000 7000 7.09 7.09 0 6
         1335  +i1 181.500000 0.500000 7000 7.11 7.11 0 6
         1336  +i1 182.000000 0.500000 7000 7.06 7.06 0 6
         1337  +i1 182.000000 0.500000 7000 7.09 7.09 0 6
         1338  +i1 182.000000 0.500000 7000 7.01 7.01 0 6
         1339  +i1 182.500000 0.500000 7000 7.11 7.11 0 6
         1340  +i1 182.500000 0.500000 7000 7.04 7.04 0 6
         1341  +i1 182.500000 0.500000 7000 7.08 7.08 0 6
         1342  +i1 183.000000 0.500000 7000 7.08 7.08 0 6
         1343  +i1 183.000000 0.500000 7000 7.11 7.11 0 6
         1344  +i1 183.000000 0.500000 7000 7.02 7.02 0 6
         1345  +i1 183.500000 0.500000 7000 7.04 7.04 0 6
         1346  +i1 183.500000 0.500000 7000 7.09 7.09 0 6
         1347  +i1 183.500000 0.500000 7000 7.11 7.11 0 6
         1348  +i1 184.000000 0.500000 7000 7.06 7.06 0 6
         1349  +i1 184.000000 0.500000 7000 7.09 7.09 0 6
         1350  +i1 184.000000 0.500000 7000 7.01 7.01 0 6
         1351  +i1 184.500000 0.500000 7000 7.11 7.11 0 6
         1352  +i1 184.500000 0.500000 7000 7.04 7.04 0 6
         1353  +i1 184.500000 0.500000 7000 7.08 7.08 0 6
         1354  +i1 185.000000 0.500000 7000 7.08 7.08 0 6
         1355  +i1 185.000000 0.500000 7000 7.11 7.11 0 6
         1356  +i1 185.000000 0.500000 7000 7.02 7.02 0 6
         1357  +i1 185.500000 0.500000 7000 7.04 7.04 0 6
         1358  +i1 185.500000 0.500000 7000 7.09 7.09 0 6
         1359  +i1 185.500000 0.500000 7000 7.11 7.11 0 6
         1360  +i1 186.000000 0.500000 7000 7.06 7.06 0 6
         1361  +i1 186.000000 0.500000 7000 7.09 7.09 0 6
         1362  +i1 186.000000 0.500000 7000 7.01 7.01 0 6
         1363  +; Movement: b
         1364  +i3 186.500000 2.000000 2000 6.09 2 3 5 3
         1365  +i3 188.500000 2.000000 2000 6.02 2 3 5 3
         1366  +i3 190.500000 2.000000 2000 6.04 2 3 5 3
         1367  +i3 192.500000 0.250000 2000 6.02 2 3 5 3
         1368  +i3 192.750000 0.250000 2000 6.09 2 3 5 3
         1369  +i3 193.000000 2.000000 2000 6.04 2 3 5 3
         1370  +i3 195.000000 2.000000 2000 6.01 2 3 5 3
         1371  +i3 197.000000 2.000000 2000 6.11 2 3 5 3
         1372  +i3 199.000000 2.000000 2000 6.09 2 3 5 3
         1373  +i3 201.000000 2.000000 2000 6.08 2 3 5 3
         1374  +i3 203.000000 2.000000 2000 6.04 2 3 5 3
         1375  +i3 205.000000 2.000000 2000 6.06 2 3 5 3
         1376  +i3 207.000000 2.000000 2000 6.09 2 3 5 3
         1377  +i3 209.000000 0.500000 2000 6.02 2 3 5 3
         1378  +i3 209.500000 0.500000 2000 6.04 2 3 5 3
         1379  +i3 210.000000 2.000000 2000 6.01 2 3 5 3
         1380  +i3 212.000000 2.000000 2000 6.09 2 3 5 3
         1381  +i3 214.000000 2.000000 2000 6.02 2 3 5 3
         1382  +i3 216.000000 2.000000 2000 6.04 2 3 5 3
         1383  +i3 218.000000 0.250000 2000 6.02 2 3 5 3
         1384  +i3 218.250000 0.250000 2000 6.09 2 3 5 3
         1385  +i3 218.500000 2.000000 2000 6.04 2 3 5 3
         1386  +i3 220.500000 2.000000 2000 6.01 2 3 5 3
         1387  +i3 222.500000 2.000000 2000 6.11 2 3 5 3
         1388  +i3 224.500000 2.000000 2000 6.09 2 3 5 3
         1389  +i2 186.500000 0.250000 7000 8.08 2
         1390  +i2 186.750000 0.250000 7000 8.09 2
         1391  +i2 187.000000 0.250000 7000 8.02 2
         1392  +i2 187.250000 0.250000 7000 8.04 2
         1393  +i2 187.500000 0.250000 7000 8.06 2
         1394  +i2 187.750000 0.250000 7000 8.09 2
         1395  +i2 188.000000 0.250000 7000 8.08 2
         1396  +i2 188.250000 0.250000 7000 8.04 2
         1397  +i2 188.500000 0.250000 7000 8.01 2
         1398  +i2 188.750000 0.250000 7000 8.09 2
         1399  +i2 189.000000 0.250000 7000 8.08 2
         1400  +i2 189.250000 0.250000 7000 8.04 2
         1401  +i2 189.500000 0.250000 7000 8.01 2
         1402  +i2 189.750000 0.250000 7000 8.01 2
         1403  +i2 190.000000 0.250000 7000 8.06 2
         1404  +i2 190.250000 0.250000 7000 8.11 2
         1405  +i2 190.500000 0.250000 7000 8.04 2
         1406  +i2 190.750000 0.250000 7000 8.06 2
         1407  +i2 191.000000 0.250000 7000 8.02 2
         1408  +i2 191.250000 2.000000 7000 8.08 2
         1409  +i2 193.250000 0.250000 7000 8.08 2
         1410  +i2 193.500000 0.250000 7000 8.09 2
         1411  +i2 193.750000 0.250000 7000 8.02 2
         1412  +i2 194.000000 0.250000 7000 8.04 2
         1413  +i2 194.250000 0.250000 7000 8.06 2
         1414  +i2 194.500000 0.250000 7000 8.09 2
         1415  +i2 194.750000 0.250000 7000 8.08 2
         1416  +i2 195.000000 0.250000 7000 8.04 2
         1417  +i2 195.250000 0.250000 7000 8.01 2
         1418  +i2 195.500000 0.250000 7000 8.01 2
         1419  +i2 195.750000 0.250000 7000 8.06 2
         1420  +i2 196.000000 0.250000 7000 8.11 2
         1421  +i2 196.250000 0.250000 7000 8.04 2
         1422  +i2 196.500000 0.250000 7000 8.06 2
         1423  +i2 196.750000 0.250000 7000 8.02 2
         1424  +i2 197.000000 2.000000 7000 8.08 2
         1425  +i2 199.000000 0.250000 7000 8.06 2
         1426  +i2 199.250000 0.250000 7000 8.01 2
         1427  +i2 199.500000 0.250000 7000 8.11 2
         1428  +i2 199.750000 0.250000 7000 8.09 2
         1429  +i2 200.000000 0.250000 7000 8.08 2
         1430  +i2 200.250000 0.250000 7000 8.09 2
         1431  +i2 200.500000 0.250000 7000 8.02 2
         1432  +i2 200.750000 0.250000 7000 8.04 2
         1433  +i2 201.000000 0.250000 7000 8.06 2
         1434  +i2 201.250000 0.250000 7000 8.09 2
         1435  +i2 201.500000 0.250000 7000 8.08 2
         1436  +i2 201.750000 0.250000 7000 8.04 2
         1437  +i2 202.000000 0.250000 7000 8.01 2
         1438  +i2 202.250000 0.250000 7000 8.09 2
         1439  +i2 202.500000 0.250000 7000 8.08 2
         1440  +i2 202.750000 0.250000 7000 8.04 2
         1441  +i2 203.000000 0.250000 7000 8.01 2
         1442  +i2 203.250000 0.250000 7000 8.01 2
         1443  +i2 203.500000 0.250000 7000 8.06 2
         1444  +i2 203.750000 0.250000 7000 8.11 2
         1445  +i2 204.000000 0.250000 7000 8.04 2
         1446  +i2 204.250000 0.250000 7000 8.06 2
         1447  +i2 204.500000 0.250000 7000 8.02 2
         1448  +i2 204.750000 2.000000 7000 8.08 2
         1449  +i2 206.750000 0.250000 7000 8.06 2
         1450  +i2 207.000000 0.250000 7000 8.01 2
         1451  +i2 207.250000 0.250000 7000 8.11 2
         1452  +i2 207.500000 0.250000 7000 8.09 2
         1453  +i2 207.750000 0.250000 7000 8.08 2
         1454  +i2 208.000000 0.250000 7000 8.09 2
         1455  +i2 208.250000 0.250000 7000 8.02 2
         1456  +i2 208.500000 0.250000 7000 8.04 2
         1457  +i2 208.750000 0.250000 7000 8.06 2
         1458  +i2 209.000000 0.250000 7000 8.01 2
         1459  +i2 209.250000 0.250000 7000 8.06 2
         1460  +i2 209.500000 0.250000 7000 8.11 2
         1461  +i2 209.750000 0.250000 7000 8.04 2
         1462  +i2 210.000000 0.250000 7000 8.06 2
         1463  +i2 210.250000 0.250000 7000 8.02 2
         1464  +i2 210.500000 2.000000 7000 8.08 2
         1465  +i2 212.500000 0.250000 7000 8.06 2
         1466  +i2 212.750000 0.250000 7000 8.01 2
         1467  +i2 213.000000 0.250000 7000 8.11 2
         1468  +i2 213.250000 0.250000 7000 8.09 2
         1469  +i2 213.500000 0.250000 7000 8.08 2
         1470  +i2 213.750000 0.250000 7000 8.09 2
         1471  +i2 214.000000 0.250000 7000 8.02 2
         1472  +i2 214.250000 0.250000 7000 8.04 2
         1473  +i2 214.500000 0.250000 7000 8.06 2
         1474  +i2 214.750000 0.250000 7000 8.09 2
         1475  +i2 215.000000 0.250000 7000 8.08 2
         1476  +i2 215.250000 0.250000 7000 8.04 2
         1477  +i2 215.500000 0.250000 7000 8.01 2
         1478  +i2 215.750000 0.250000 7000 8.01 2
         1479  +i2 216.000000 0.250000 7000 8.06 2
         1480  +i2 216.250000 0.250000 7000 8.11 2
         1481  +i2 216.500000 0.250000 7000 8.04 2
         1482  +i2 216.750000 0.250000 7000 8.06 2
         1483  +i2 217.000000 0.250000 7000 8.02 2
         1484  +i2 217.250000 2.000000 7000 8.08 2
         1485  +i2 219.250000 0.250000 7000 8.06 2
         1486  +i2 219.500000 0.250000 7000 8.01 2
         1487  +i2 219.750000 0.250000 7000 8.11 2
         1488  +i2 220.000000 0.250000 7000 8.09 2
         1489  +i2 220.250000 0.250000 7000 8.08 2
         1490  +i2 220.500000 0.250000 7000 8.09 2
         1491  +i2 220.750000 0.250000 7000 8.02 2
         1492  +i2 221.000000 0.250000 7000 8.04 2
         1493  +i2 221.250000 0.250000 7000 8.06 2
         1494  +i2 221.500000 0.250000 7000 8.09 2
         1495  +i2 221.750000 0.250000 7000 8.08 2
         1496  +i2 222.000000 0.250000 7000 8.04 2
         1497  +i2 222.250000 0.250000 7000 8.01 2
         1498  +i2 222.500000 0.250000 7000 8.01 2
         1499  +i2 222.750000 0.250000 7000 8.06 2
         1500  +i2 223.000000 0.250000 7000 8.11 2
         1501  +i2 223.250000 0.250000 7000 8.04 2
         1502  +i2 223.500000 0.250000 7000 8.06 2
         1503  +i2 223.750000 0.250000 7000 8.02 2
         1504  +i2 224.000000 2.000000 7000 8.08 2
         1505  +i2 226.000000 0.250000 7000 8.06 2
         1506  +i2 226.250000 0.250000 7000 8.01 2
         1507  +i1 186.500000 0.500000 7000 7.11 7.11 0 6
         1508  +i1 186.500000 0.500000 7000 7.04 7.04 0 6
         1509  +i1 186.500000 0.500000 7000 7.08 7.08 0 6
         1510  +i1 187.000000 2.000000 7000 7.08 7.08 0 6
         1511  +i1 187.000000 2.000000 7000 7.11 7.11 0 6
         1512  +i1 187.000000 2.000000 7000 7.02 7.02 0 6
         1513  +i1 189.000000 0.500000 7000 7.04 7.04 0 6
         1514  +i1 189.000000 0.500000 7000 7.09 7.09 0 6
         1515  +i1 189.000000 0.500000 7000 7.11 7.11 0 6
         1516  +i1 189.500000 0.500000 7000 7.06 7.06 0 6
         1517  +i1 189.500000 0.500000 7000 7.09 7.09 0 6
         1518  +i1 189.500000 0.500000 7000 7.01 7.01 0 6
         1519  +i1 190.000000 0.500000 7000 7.11 7.11 0 6
         1520  +i1 190.000000 0.500000 7000 7.04 7.04 0 6
         1521  +i1 190.000000 0.500000 7000 7.08 7.08 0 6
         1522  +i1 190.500000 2.000000 7000 7.08 7.08 0 6
         1523  +i1 190.500000 2.000000 7000 7.11 7.11 0 6
         1524  +i1 190.500000 2.000000 7000 7.02 7.02 0 6
         1525  +i1 192.500000 0.500000 7000 7.04 7.04 0 6
         1526  +i1 192.500000 0.500000 7000 7.09 7.09 0 6
         1527  +i1 192.500000 0.500000 7000 7.11 7.11 0 6
         1528  +i1 193.000000 0.500000 7000 7.06 7.06 0 6
         1529  +i1 193.000000 0.500000 7000 7.09 7.09 0 6
         1530  +i1 193.000000 0.500000 7000 7.01 7.01 0 6
         1531  +i1 193.500000 0.500000 7000 7.11 7.11 0 6
         1532  +i1 193.500000 0.500000 7000 7.04 7.04 0 6
         1533  +i1 193.500000 0.500000 7000 7.08 7.08 0 6
         1534  +i1 194.000000 2.000000 7000 7.08 7.08 0 6
         1535  +i1 194.000000 2.000000 7000 7.11 7.11 0 6
         1536  +i1 194.000000 2.000000 7000 7.02 7.02 0 6
         1537  +i1 196.000000 0.500000 7000 7.04 7.04 0 6
         1538  +i1 196.000000 0.500000 7000 7.09 7.09 0 6
         1539  +i1 196.000000 0.500000 7000 7.11 7.11 0 6
         1540  +i1 196.500000 0.500000 7000 7.06 7.06 0 6
         1541  +i1 196.500000 0.500000 7000 7.09 7.09 0 6
         1542  +i1 196.500000 0.500000 7000 7.01 7.01 0 6
         1543  +i1 197.000000 0.500000 7000 7.11 7.11 0 6
         1544  +i1 197.000000 0.500000 7000 7.04 7.04 0 6
         1545  +i1 197.000000 0.500000 7000 7.08 7.08 0 6
         1546  +i1 197.500000 2.000000 7000 7.08 7.08 0 6
         1547  +i1 197.500000 2.000000 7000 7.11 7.11 0 6
         1548  +i1 197.500000 2.000000 7000 7.02 7.02 0 6
         1549  +i1 199.500000 0.500000 7000 7.04 7.04 0 6
         1550  +i1 199.500000 0.500000 7000 7.09 7.09 0 6
         1551  +i1 199.500000 0.500000 7000 7.11 7.11 0 6
         1552  +i1 200.000000 0.500000 7000 7.06 7.06 0 6
         1553  +i1 200.000000 0.500000 7000 7.09 7.09 0 6
         1554  +i1 200.000000 0.500000 7000 7.01 7.01 0 6
         1555  +i1 200.500000 0.500000 7000 7.11 7.11 0 6
         1556  +i1 200.500000 0.500000 7000 7.04 7.04 0 6
         1557  +i1 200.500000 0.500000 7000 7.08 7.08 0 6
         1558  +i1 201.000000 2.000000 7000 7.08 7.08 0 6
         1559  +i1 201.000000 2.000000 7000 7.11 7.11 0 6
         1560  +i1 201.000000 2.000000 7000 7.02 7.02 0 6
         1561  +i1 203.000000 0.500000 7000 7.04 7.04 0 6
         1562  +i1 203.000000 0.500000 7000 7.09 7.09 0 6
         1563  +i1 203.000000 0.500000 7000 7.11 7.11 0 6
         1564  +i1 203.500000 0.500000 7000 7.06 7.06 0 6
         1565  +i1 203.500000 0.500000 7000 7.09 7.09 0 6
         1566  +i1 203.500000 0.500000 7000 7.01 7.01 0 6
         1567  +i1 204.000000 0.500000 7000 7.11 7.11 0 6
         1568  +i1 204.000000 0.500000 7000 7.04 7.04 0 6
         1569  +i1 204.000000 0.500000 7000 7.08 7.08 0 6
         1570  +i1 204.500000 2.000000 7000 7.08 7.08 0 6
         1571  +i1 204.500000 2.000000 7000 7.11 7.11 0 6
         1572  +i1 204.500000 2.000000 7000 7.02 7.02 0 6
         1573  +i1 206.500000 0.500000 7000 7.04 7.04 0 6
         1574  +i1 206.500000 0.500000 7000 7.09 7.09 0 6
         1575  +i1 206.500000 0.500000 7000 7.11 7.11 0 6
         1576  +i1 207.000000 0.500000 7000 7.06 7.06 0 6
         1577  +i1 207.000000 0.500000 7000 7.09 7.09 0 6
         1578  +i1 207.000000 0.500000 7000 7.01 7.01 0 6
         1579  +i1 207.500000 0.500000 7000 7.11 7.11 0 6
         1580  +i1 207.500000 0.500000 7000 7.04 7.04 0 6
         1581  +i1 207.500000 0.500000 7000 7.08 7.08 0 6
         1582  +i1 208.000000 2.000000 7000 7.08 7.08 0 6
         1583  +i1 208.000000 2.000000 7000 7.11 7.11 0 6
         1584  +i1 208.000000 2.000000 7000 7.02 7.02 0 6
         1585  +i1 210.000000 0.500000 7000 7.04 7.04 0 6
         1586  +i1 210.000000 0.500000 7000 7.09 7.09 0 6
         1587  +i1 210.000000 0.500000 7000 7.11 7.11 0 6
         1588  +i1 210.500000 0.500000 7000 7.06 7.06 0 6
         1589  +i1 210.500000 0.500000 7000 7.09 7.09 0 6
         1590  +i1 210.500000 0.500000 7000 7.01 7.01 0 6
         1591  +i1 211.000000 0.500000 7000 7.11 7.11 0 6
         1592  +i1 211.000000 0.500000 7000 7.04 7.04 0 6
         1593  +i1 211.000000 0.500000 7000 7.08 7.08 0 6
         1594  +i1 211.500000 2.000000 7000 7.08 7.08 0 6
         1595  +i1 211.500000 2.000000 7000 7.11 7.11 0 6
         1596  +i1 211.500000 2.000000 7000 7.02 7.02 0 6
         1597  +i1 213.500000 0.500000 7000 7.04 7.04 0 6
         1598  +i1 213.500000 0.500000 7000 7.09 7.09 0 6
         1599  +i1 213.500000 0.500000 7000 7.11 7.11 0 6
         1600  +i1 214.000000 0.500000 7000 7.06 7.06 0 6
         1601  +i1 214.000000 0.500000 7000 7.09 7.09 0 6
         1602  +i1 214.000000 0.500000 7000 7.01 7.01 0 6
         1603  +i1 214.500000 0.500000 7000 7.11 7.11 0 6
         1604  +i1 214.500000 0.500000 7000 7.04 7.04 0 6
         1605  +i1 214.500000 0.500000 7000 7.08 7.08 0 6
         1606  +i1 215.000000 2.000000 7000 7.08 7.08 0 6
         1607  +i1 215.000000 2.000000 7000 7.11 7.11 0 6
         1608  +i1 215.000000 2.000000 7000 7.02 7.02 0 6
         1609  +i1 217.000000 0.500000 7000 7.04 7.04 0 6
         1610  +i1 217.000000 0.500000 7000 7.09 7.09 0 6
         1611  +i1 217.000000 0.500000 7000 7.11 7.11 0 6
         1612  +i1 217.500000 0.500000 7000 7.06 7.06 0 6
         1613  +i1 217.500000 0.500000 7000 7.09 7.09 0 6
         1614  +i1 217.500000 0.500000 7000 7.01 7.01 0 6
         1615  +i1 218.000000 0.500000 7000 7.11 7.11 0 6
         1616  +i1 218.000000 0.500000 7000 7.04 7.04 0 6
         1617  +i1 218.000000 0.500000 7000 7.08 7.08 0 6
         1618  +i1 218.500000 2.000000 7000 7.08 7.08 0 6
         1619  +i1 218.500000 2.000000 7000 7.11 7.11 0 6
         1620  +i1 218.500000 2.000000 7000 7.02 7.02 0 6
         1621  +i1 220.500000 0.500000 7000 7.04 7.04 0 6
         1622  +i1 220.500000 0.500000 7000 7.09 7.09 0 6
         1623  +i1 220.500000 0.500000 7000 7.11 7.11 0 6
         1624  +i1 221.000000 0.500000 7000 7.06 7.06 0 6
         1625  +i1 221.000000 0.500000 7000 7.09 7.09 0 6
         1626  +i1 221.000000 0.500000 7000 7.01 7.01 0 6
         1627  +i1 221.500000 0.500000 7000 7.11 7.11 0 6
         1628  +i1 221.500000 0.500000 7000 7.04 7.04 0 6
         1629  +i1 221.500000 0.500000 7000 7.08 7.08 0 6
         1630  +i1 222.000000 2.000000 7000 7.08 7.08 0 6
         1631  +i1 222.000000 2.000000 7000 7.11 7.11 0 6
         1632  +i1 222.000000 2.000000 7000 7.02 7.02 0 6
         1633  +i1 224.000000 0.500000 7000 7.04 7.04 0 6
         1634  +i1 224.000000 0.500000 7000 7.09 7.09 0 6
         1635  +i1 224.000000 0.500000 7000 7.11 7.11 0 6
         1636  +i1 224.500000 0.500000 7000 7.06 7.06 0 6
         1637  +i1 224.500000 0.500000 7000 7.09 7.09 0 6
         1638  +i1 224.500000 0.500000 7000 7.01 7.01 0 6
         1639  +i1 225.000000 0.500000 7000 7.11 7.11 0 6
         1640  +i1 225.000000 0.500000 7000 7.04 7.04 0 6
         1641  +i1 225.000000 0.500000 7000 7.08 7.08 0 6
         1642  +i1 225.500000 2.000000 7000 7.08 7.08 0 6
         1643  +i1 225.500000 2.000000 7000 7.11 7.11 0 6
         1644  +i1 225.500000 2.000000 7000 7.02 7.02 0 6
         1645  +i1 227.500000 0.500000 7000 7.04 7.04 0 6
         1646  +i1 227.500000 0.500000 7000 7.09 7.09 0 6
         1647  +i1 227.500000 0.500000 7000 7.11 7.11 0 6
         1648  +i1 228.000000 0.500000 7000 7.06 7.06 0 6
         1649  +i1 228.000000 0.500000 7000 7.09 7.09 0 6
         1650  +i1 228.000000 0.500000 7000 7.01 7.01 0 6
         1651  +i1 228.500000 0.500000 7000 7.11 7.11 0 6
         1652  +i1 228.500000 0.500000 7000 7.04 7.04 0 6
         1653  +i1 228.500000 0.500000 7000 7.08 7.08 0 6
         1654  +; Movement: zelda2
         1655  +i3 229.000000 2.000000 2000 6.09 2 3 5 3
         1656  +i3 231.000000 2.000000 2000 6.02 2 3 5 3
         1657  +i3 233.000000 2.000000 2000 6.04 2 3 5 3
         1658  +i3 235.000000 0.250000 2000 6.02 2 3 5 3
         1659  +i3 235.250000 0.250000 2000 6.09 2 3 5 3
         1660  +i3 235.500000 2.000000 2000 6.04 2 3 5 3
         1661  +i3 237.500000 2.000000 2000 6.01 2 3 5 3
         1662  +i3 239.500000 2.000000 2000 6.11 2 3 5 3
         1663  +i3 241.500000 2.000000 2000 6.09 2 3 5 3
         1664  +i3 243.500000 2.000000 2000 6.08 2 3 5 3
         1665  +i3 245.500000 2.000000 2000 6.04 2 3 5 3
         1666  +i3 247.500000 2.000000 2000 6.06 2 3 5 3
         1667  +i3 249.500000 2.000000 2000 6.09 2 3 5 3
         1668  +i3 251.500000 0.500000 2000 6.02 2 3 5 3
         1669  +i3 252.000000 0.500000 2000 6.04 2 3 5 3
         1670  +i3 252.500000 2.000000 2000 6.01 2 3 5 3
         1671  +i3 254.500000 2.000000 2000 6.09 2 3 5 3
         1672  +i3 256.500000 2.000000 2000 6.02 2 3 5 3
         1673  +i3 258.500000 2.000000 2000 6.04 2 3 5 3
         1674  +i3 260.500000 0.250000 2000 6.02 2 3 5 3
         1675  +i3 260.750000 0.250000 2000 6.09 2 3 5 3
         1676  +i3 261.000000 2.000000 2000 6.04 2 3 5 3
         1677  +i3 263.000000 2.000000 2000 6.01 2 3 5 3
         1678  +i3 265.000000 2.000000 2000 6.11 2 3 5 3
         1679  +i3 267.000000 2.000000 2000 6.09 2 3 5 3
         1680  +i3 269.000000 2.000000 2000 6.08 2 3 5 3
         1681  +i3 271.000000 2.000000 2000 6.04 2 3 5 3
         1682  +i2 229.000000 0.500000 7000 8.01 2
         1683  +i2 229.500000 0.500000 7000 8.11 2
         1684  +i2 230.000000 0.500000 7000 8.02 2
         1685  +i2 230.500000 0.500000 7000 8.01 2
         1686  +i2 231.000000 0.500000 7000 8.04 2
         1687  +i2 231.500000 0.500000 7000 8.02 2
         1688  +i2 232.000000 0.500000 7000 8.06 2
         1689  +i2 232.500000 0.500000 7000 8.04 2
         1690  +i2 233.000000 3.000000 7000 8.08 2
         1691  +i2 238.000000 0.250000 7000 8.04 2
         1692  +i2 238.250000 0.250000 7000 8.02 2
         1693  +i2 238.500000 0.250000 7000 8.04 2
         1694  +i2 238.750000 0.250000 7000 8.02 2
         1695  +i2 239.000000 0.250000 7000 8.04 2
         1696  +i2 239.250000 0.250000 7000 8.06 2
         1697  +i2 239.500000 0.250000 7000 8.11 2
         1698  +i2 239.750000 0.250000 7000 8.11 2
         1699  +i2 240.000000 0.250000 7000 8.11 2
         1700  +i2 240.250000 0.250000 7000 8.09 2
         1701  +i2 240.500000 0.500000 7000 8.11 2
         1702  +i2 241.000000 0.500000 7000 8.01 2
         1703  +i2 241.500000 0.500000 7000 8.11 2
         1704  +i2 242.000000 0.500000 7000 8.02 2
         1705  +i2 242.500000 0.500000 7000 8.01 2
         1706  +i2 243.000000 0.500000 7000 8.04 2
         1707  +i2 243.500000 0.500000 7000 8.02 2
         1708  +i2 244.000000 0.500000 7000 8.06 2
         1709  +i2 244.500000 0.500000 7000 8.04 2
         1710  +i2 245.000000 0.500000 7000 8.01 2
         1711  +i2 245.500000 0.500000 7000 8.11 2
         1712  +i2 246.000000 0.500000 7000 8.02 2
         1713  +i2 246.500000 0.500000 7000 8.01 2
         1714  +i2 247.000000 0.500000 7000 8.04 2
         1715  +i2 247.500000 0.500000 7000 8.02 2
         1716  +i2 248.000000 0.500000 7000 8.06 2
         1717  +i2 248.500000 0.500000 7000 8.04 2
         1718  +i2 249.000000 0.500000 7000 8.01 2
         1719  +i2 249.500000 0.500000 7000 8.11 2
         1720  +i2 250.000000 0.500000 7000 8.02 2
         1721  +i2 250.500000 0.500000 7000 8.01 2
         1722  +i2 251.000000 0.500000 7000 8.04 2
         1723  +i2 251.500000 0.500000 7000 8.02 2
         1724  +i2 252.000000 0.500000 7000 8.06 2
         1725  +i2 252.500000 0.500000 7000 8.04 2
         1726  +i2 253.000000 0.500000 7000 8.01 2
         1727  +i2 253.500000 0.500000 7000 8.11 2
         1728  +i2 254.000000 0.500000 7000 8.02 2
         1729  +i2 254.500000 0.500000 7000 8.01 2
         1730  +i2 255.000000 0.500000 7000 8.04 2
         1731  +i2 255.500000 0.500000 7000 8.02 2
         1732  +i2 256.000000 0.500000 7000 8.06 2
         1733  +i2 256.500000 0.500000 7000 8.04 2
         1734  +i2 257.000000 0.500000 7000 8.09 2
         1735  +i2 257.500000 0.500000 7000 8.09 2
         1736  +i2 258.000000 0.250000 7000 8.06 2
         1737  +i2 258.250000 0.500000 7000 8.02 2
         1738  +i2 258.750000 2.000000 7000 8.04 2
         1739  +i2 261.000000 0.500000 7000 8.09 2
         1740  +i2 261.500000 0.500000 7000 8.09 2
         1741  +i2 262.000000 0.250000 7000 8.06 2
         1742  +i2 262.250000 0.500000 7000 8.02 2
         1743  +i2 262.750000 0.250000 7000 8.04 2
         1744  +i2 263.000000 3.000000 7000 8.08 2
         1745  +i2 268.000000 0.250000 7000 8.04 2
         1746  +i2 268.250000 0.250000 7000 8.02 2
         1747  +i2 268.500000 0.250000 7000 8.04 2
         1748  +i2 268.750000 0.250000 7000 8.02 2
         1749  +i1 229.000000 0.500000 7000 7.11 7.11 0 6
         1750  +i1 229.000000 0.500000 7000 7.04 7.04 0 6
         1751  +i1 229.000000 0.500000 7000 7.08 7.08 0 6
         1752  +i1 229.500000 0.500000 7000 7.08 7.08 0 6
         1753  +i1 229.500000 0.500000 7000 7.11 7.11 0 6
         1754  +i1 229.500000 0.500000 7000 7.02 7.02 0 6
         1755  +i1 230.000000 0.500000 7000 7.04 7.04 0 6
         1756  +i1 230.000000 0.500000 7000 7.09 7.09 0 6
         1757  +i1 230.000000 0.500000 7000 7.11 7.11 0 6
         1758  +i1 230.500000 0.500000 7000 7.06 7.06 0 6
         1759  +i1 230.500000 0.500000 7000 7.09 7.09 0 6
         1760  +i1 230.500000 0.500000 7000 7.01 7.01 0 6
         1761  +i1 231.000000 0.500000 7000 7.11 7.11 0 6
         1762  +i1 231.000000 0.500000 7000 7.04 7.04 0 6
         1763  +i1 231.000000 0.500000 7000 7.08 7.08 0 6
         1764  +i1 231.500000 0.500000 7000 7.08 7.08 0 6
         1765  +i1 231.500000 0.500000 7000 7.11 7.11 0 6
         1766  +i1 231.500000 0.500000 7000 7.02 7.02 0 6
         1767  +i1 232.000000 0.500000 7000 7.04 7.04 0 6
         1768  +i1 232.000000 0.500000 7000 7.09 7.09 0 6
         1769  +i1 232.000000 0.500000 7000 7.11 7.11 0 6
         1770  +i1 232.500000 0.500000 7000 7.06 7.06 0 6
         1771  +i1 232.500000 0.500000 7000 7.09 7.09 0 6
         1772  +i1 232.500000 0.500000 7000 7.01 7.01 0 6
         1773  +i1 233.000000 0.500000 7000 7.11 7.11 0 6
         1774  +i1 233.000000 0.500000 7000 7.04 7.04 0 6
         1775  +i1 233.000000 0.500000 7000 7.08 7.08 0 6
         1776  +i1 233.500000 0.500000 7000 7.08 7.08 0 6
         1777  +i1 233.500000 0.500000 7000 7.11 7.11 0 6
         1778  +i1 233.500000 0.500000 7000 7.02 7.02 0 6
         1779  +i1 234.000000 0.500000 7000 7.04 7.04 0 6
         1780  +i1 234.000000 0.500000 7000 7.09 7.09 0 6
         1781  +i1 234.000000 0.500000 7000 7.11 7.11 0 6
         1782  +i1 234.500000 0.500000 7000 7.06 7.06 0 6
         1783  +i1 234.500000 0.500000 7000 7.09 7.09 0 6
         1784  +i1 234.500000 0.500000 7000 7.01 7.01 0 6
         1785  +i1 235.000000 0.500000 7000 7.11 7.11 0 6
         1786  +i1 235.000000 0.500000 7000 7.04 7.04 0 6
         1787  +i1 235.000000 0.500000 7000 7.08 7.08 0 6
         1788  +i1 235.500000 0.500000 7000 7.08 7.08 0 6
         1789  +i1 235.500000 0.500000 7000 7.11 7.11 0 6
         1790  +i1 235.500000 0.500000 7000 7.02 7.02 0 6
         1791  +i1 236.000000 0.500000 7000 7.04 7.04 0 6
         1792  +i1 236.000000 0.500000 7000 7.09 7.09 0 6
         1793  +i1 236.000000 0.500000 7000 7.11 7.11 0 6
         1794  +i1 236.500000 0.500000 7000 7.06 7.06 0 6
         1795  +i1 236.500000 0.500000 7000 7.09 7.09 0 6
         1796  +i1 236.500000 0.500000 7000 7.01 7.01 0 6
         1797  +i1 237.000000 0.500000 7000 7.11 7.11 0 6
         1798  +i1 237.000000 0.500000 7000 7.04 7.04 0 6
         1799  +i1 237.000000 0.500000 7000 7.08 7.08 0 6
         1800  +i1 237.500000 0.500000 7000 7.08 7.08 0 6
         1801  +i1 237.500000 0.500000 7000 7.11 7.11 0 6
         1802  +i1 237.500000 0.500000 7000 7.02 7.02 0 6
         1803  +i1 238.000000 0.500000 7000 7.04 7.04 0 6
         1804  +i1 238.000000 0.500000 7000 7.09 7.09 0 6
         1805  +i1 238.000000 0.500000 7000 7.11 7.11 0 6
         1806  +i1 238.500000 0.500000 7000 7.06 7.06 0 6
         1807  +i1 238.500000 0.500000 7000 7.09 7.09 0 6
         1808  +i1 238.500000 0.500000 7000 7.01 7.01 0 6
         1809  +i1 239.000000 0.500000 7000 7.11 7.11 0 6
         1810  +i1 239.000000 0.500000 7000 7.04 7.04 0 6
         1811  +i1 239.000000 0.500000 7000 7.08 7.08 0 6
         1812  +i1 239.500000 0.500000 7000 7.08 7.08 0 6
         1813  +i1 239.500000 0.500000 7000 7.11 7.11 0 6
         1814  +i1 239.500000 0.500000 7000 7.02 7.02 0 6
         1815  +i1 240.000000 0.500000 7000 7.04 7.04 0 6
         1816  +i1 240.000000 0.500000 7000 7.09 7.09 0 6
         1817  +i1 240.000000 0.500000 7000 7.11 7.11 0 6
         1818  +i1 240.500000 0.500000 7000 7.06 7.06 0 6
         1819  +i1 240.500000 0.500000 7000 7.09 7.09 0 6
         1820  +i1 240.500000 0.500000 7000 7.01 7.01 0 6
         1821  +i1 241.000000 0.500000 7000 7.11 7.11 0 6
         1822  +i1 241.000000 0.500000 7000 7.04 7.04 0 6
         1823  +i1 241.000000 0.500000 7000 7.08 7.08 0 6
         1824  +i1 241.500000 0.500000 7000 7.08 7.08 0 6
         1825  +i1 241.500000 0.500000 7000 7.11 7.11 0 6
         1826  +i1 241.500000 0.500000 7000 7.02 7.02 0 6
         1827  +i1 242.000000 0.500000 7000 7.04 7.04 0 6
         1828  +i1 242.000000 0.500000 7000 7.09 7.09 0 6
         1829  +i1 242.000000 0.500000 7000 7.11 7.11 0 6
         1830  +i1 242.500000 0.500000 7000 7.06 7.06 0 6
         1831  +i1 242.500000 0.500000 7000 7.09 7.09 0 6
         1832  +i1 242.500000 0.500000 7000 7.01 7.01 0 6
         1833  +i1 243.000000 0.500000 7000 7.11 7.11 0 6
         1834  +i1 243.000000 0.500000 7000 7.04 7.04 0 6
         1835  +i1 243.000000 0.500000 7000 7.08 7.08 0 6
         1836  +i1 243.500000 0.500000 7000 7.08 7.08 0 6
         1837  +i1 243.500000 0.500000 7000 7.11 7.11 0 6
         1838  +i1 243.500000 0.500000 7000 7.02 7.02 0 6
         1839  +i1 244.000000 0.500000 7000 7.04 7.04 0 6
         1840  +i1 244.000000 0.500000 7000 7.09 7.09 0 6
         1841  +i1 244.000000 0.500000 7000 7.11 7.11 0 6
         1842  +i1 244.500000 0.500000 7000 7.06 7.06 0 6
         1843  +i1 244.500000 0.500000 7000 7.09 7.09 0 6
         1844  +i1 244.500000 0.500000 7000 7.01 7.01 0 6
         1845  +i1 245.000000 0.500000 7000 7.11 7.11 0 6
         1846  +i1 245.000000 0.500000 7000 7.04 7.04 0 6
         1847  +i1 245.000000 0.500000 7000 7.08 7.08 0 6
         1848  +i1 245.500000 0.500000 7000 7.08 7.08 0 6
         1849  +i1 245.500000 0.500000 7000 7.11 7.11 0 6
         1850  +i1 245.500000 0.500000 7000 7.02 7.02 0 6
         1851  +i1 246.000000 0.500000 7000 7.04 7.04 0 6
         1852  +i1 246.000000 0.500000 7000 7.09 7.09 0 6
         1853  +i1 246.000000 0.500000 7000 7.11 7.11 0 6
         1854  +i1 246.500000 0.500000 7000 7.06 7.06 0 6
         1855  +i1 246.500000 0.500000 7000 7.09 7.09 0 6
         1856  +i1 246.500000 0.500000 7000 7.01 7.01 0 6
         1857  +i1 247.000000 0.500000 7000 7.11 7.11 0 6
         1858  +i1 247.000000 0.500000 7000 7.04 7.04 0 6
         1859  +i1 247.000000 0.500000 7000 7.08 7.08 0 6
         1860  +i1 247.500000 0.500000 7000 7.08 7.08 0 6
         1861  +i1 247.500000 0.500000 7000 7.11 7.11 0 6
         1862  +i1 247.500000 0.500000 7000 7.02 7.02 0 6
         1863  +i1 248.000000 0.500000 7000 7.04 7.04 0 6
         1864  +i1 248.000000 0.500000 7000 7.09 7.09 0 6
         1865  +i1 248.000000 0.500000 7000 7.11 7.11 0 6
         1866  +i1 248.500000 0.500000 7000 7.06 7.06 0 6
         1867  +i1 248.500000 0.500000 7000 7.09 7.09 0 6
         1868  +i1 248.500000 0.500000 7000 7.01 7.01 0 6
         1869  +i1 249.000000 0.500000 7000 7.11 7.11 0 6
         1870  +i1 249.000000 0.500000 7000 7.04 7.04 0 6
         1871  +i1 249.000000 0.500000 7000 7.08 7.08 0 6
         1872  +i1 249.500000 0.500000 7000 7.08 7.08 0 6
         1873  +i1 249.500000 0.500000 7000 7.11 7.11 0 6
         1874  +i1 249.500000 0.500000 7000 7.02 7.02 0 6
         1875  +i1 250.000000 0.500000 7000 7.04 7.04 0 6
         1876  +i1 250.000000 0.500000 7000 7.09 7.09 0 6
         1877  +i1 250.000000 0.500000 7000 7.11 7.11 0 6
         1878  +i1 250.500000 0.500000 7000 7.06 7.06 0 6
         1879  +i1 250.500000 0.500000 7000 7.09 7.09 0 6
         1880  +i1 250.500000 0.500000 7000 7.01 7.01 0 6
         1881  +i1 251.000000 0.500000 7000 7.11 7.11 0 6
         1882  +i1 251.000000 0.500000 7000 7.04 7.04 0 6
         1883  +i1 251.000000 0.500000 7000 7.08 7.08 0 6
         1884  +i1 251.500000 0.500000 7000 7.08 7.08 0 6
         1885  +i1 251.500000 0.500000 7000 7.11 7.11 0 6
         1886  +i1 251.500000 0.500000 7000 7.02 7.02 0 6
         1887  +i1 252.000000 0.500000 7000 7.04 7.04 0 6
         1888  +i1 252.000000 0.500000 7000 7.09 7.09 0 6
         1889  +i1 252.000000 0.500000 7000 7.11 7.11 0 6
         1890  +i1 252.500000 0.500000 7000 7.06 7.06 0 6
         1891  +i1 252.500000 0.500000 7000 7.09 7.09 0 6
         1892  +i1 252.500000 0.500000 7000 7.01 7.01 0 6
         1893  +i1 253.000000 0.500000 7000 7.11 7.11 0 6
         1894  +i1 253.000000 0.500000 7000 7.04 7.04 0 6
         1895  +i1 253.000000 0.500000 7000 7.08 7.08 0 6
         1896  +i1 253.500000 0.500000 7000 7.08 7.08 0 6
         1897  +i1 253.500000 0.500000 7000 7.11 7.11 0 6
         1898  +i1 253.500000 0.500000 7000 7.02 7.02 0 6
         1899  +i1 254.000000 0.500000 7000 7.04 7.04 0 6
         1900  +i1 254.000000 0.500000 7000 7.09 7.09 0 6
         1901  +i1 254.000000 0.500000 7000 7.11 7.11 0 6
         1902  +i1 254.500000 0.500000 7000 7.06 7.06 0 6
         1903  +i1 254.500000 0.500000 7000 7.09 7.09 0 6
         1904  +i1 254.500000 0.500000 7000 7.01 7.01 0 6
         1905  +i1 255.000000 0.500000 7000 7.11 7.11 0 6
         1906  +i1 255.000000 0.500000 7000 7.04 7.04 0 6
         1907  +i1 255.000000 0.500000 7000 7.08 7.08 0 6
         1908  +i1 255.500000 0.500000 7000 7.08 7.08 0 6
         1909  +i1 255.500000 0.500000 7000 7.11 7.11 0 6
         1910  +i1 255.500000 0.500000 7000 7.02 7.02 0 6
         1911  +i1 256.000000 0.500000 7000 7.04 7.04 0 6
         1912  +i1 256.000000 0.500000 7000 7.09 7.09 0 6
         1913  +i1 256.000000 0.500000 7000 7.11 7.11 0 6
         1914  +i1 256.500000 0.500000 7000 7.06 7.06 0 6
         1915  +i1 256.500000 0.500000 7000 7.09 7.09 0 6
         1916  +i1 256.500000 0.500000 7000 7.01 7.01 0 6
         1917  +i1 257.000000 0.500000 7000 7.11 7.11 0 6
         1918  +i1 257.000000 0.500000 7000 7.04 7.04 0 6
         1919  +i1 257.000000 0.500000 7000 7.08 7.08 0 6
         1920  +i1 257.500000 0.500000 7000 7.08 7.08 0 6
         1921  +i1 257.500000 0.500000 7000 7.11 7.11 0 6
         1922  +i1 257.500000 0.500000 7000 7.02 7.02 0 6
         1923  +i1 258.000000 0.500000 7000 7.04 7.04 0 6
         1924  +i1 258.000000 0.500000 7000 7.09 7.09 0 6
         1925  +i1 258.000000 0.500000 7000 7.11 7.11 0 6
         1926  +i1 258.500000 0.500000 7000 7.06 7.06 0 6
         1927  +i1 258.500000 0.500000 7000 7.09 7.09 0 6
         1928  +i1 258.500000 0.500000 7000 7.01 7.01 0 6
         1929  +i1 259.000000 0.500000 7000 7.11 7.11 0 6
         1930  +i1 259.000000 0.500000 7000 7.04 7.04 0 6
         1931  +i1 259.000000 0.500000 7000 7.08 7.08 0 6
         1932  +i1 259.500000 0.500000 7000 7.08 7.08 0 6
         1933  +i1 259.500000 0.500000 7000 7.11 7.11 0 6
         1934  +i1 259.500000 0.500000 7000 7.02 7.02 0 6
         1935  +i1 260.000000 0.500000 7000 7.04 7.04 0 6
         1936  +i1 260.000000 0.500000 7000 7.09 7.09 0 6
         1937  +i1 260.000000 0.500000 7000 7.11 7.11 0 6
         1938  +i1 260.500000 0.500000 7000 7.06 7.06 0 6
         1939  +i1 260.500000 0.500000 7000 7.09 7.09 0 6
         1940  +i1 260.500000 0.500000 7000 7.01 7.01 0 6
         1941  +i1 261.000000 0.500000 7000 7.11 7.11 0 6
         1942  +i1 261.000000 0.500000 7000 7.04 7.04 0 6
         1943  +i1 261.000000 0.500000 7000 7.08 7.08 0 6
         1944  +i1 261.500000 0.500000 7000 7.08 7.08 0 6
         1945  +i1 261.500000 0.500000 7000 7.11 7.11 0 6
         1946  +i1 261.500000 0.500000 7000 7.02 7.02 0 6
         1947  +i1 262.000000 0.500000 7000 7.04 7.04 0 6
         1948  +i1 262.000000 0.500000 7000 7.09 7.09 0 6
         1949  +i1 262.000000 0.500000 7000 7.11 7.11 0 6
         1950  +i1 262.500000 0.500000 7000 7.06 7.06 0 6
         1951  +i1 262.500000 0.500000 7000 7.09 7.09 0 6
         1952  +i1 262.500000 0.500000 7000 7.01 7.01 0 6
         1953  +i1 263.000000 0.500000 7000 7.11 7.11 0 6
         1954  +i1 263.000000 0.500000 7000 7.04 7.04 0 6
         1955  +i1 263.000000 0.500000 7000 7.08 7.08 0 6
         1956  +i1 263.500000 0.500000 7000 7.08 7.08 0 6
         1957  +i1 263.500000 0.500000 7000 7.11 7.11 0 6
         1958  +i1 263.500000 0.500000 7000 7.02 7.02 0 6
         1959  +i1 264.000000 0.500000 7000 7.04 7.04 0 6
         1960  +i1 264.000000 0.500000 7000 7.09 7.09 0 6
         1961  +i1 264.000000 0.500000 7000 7.11 7.11 0 6
         1962  +i1 264.500000 0.500000 7000 7.06 7.06 0 6
         1963  +i1 264.500000 0.500000 7000 7.09 7.09 0 6
         1964  +i1 264.500000 0.500000 7000 7.01 7.01 0 6
         1965  +i1 265.000000 0.500000 7000 7.11 7.11 0 6
         1966  +i1 265.000000 0.500000 7000 7.04 7.04 0 6
         1967  +i1 265.000000 0.500000 7000 7.08 7.08 0 6
         1968  +i1 265.500000 0.500000 7000 7.08 7.08 0 6
         1969  +i1 265.500000 0.500000 7000 7.11 7.11 0 6
         1970  +i1 265.500000 0.500000 7000 7.02 7.02 0 6
         1971  +i1 266.000000 0.500000 7000 7.04 7.04 0 6
         1972  +i1 266.000000 0.500000 7000 7.09 7.09 0 6
         1973  +i1 266.000000 0.500000 7000 7.11 7.11 0 6
         1974  +i1 266.500000 0.500000 7000 7.06 7.06 0 6
         1975  +i1 266.500000 0.500000 7000 7.09 7.09 0 6
         1976  +i1 266.500000 0.500000 7000 7.01 7.01 0 6
         1977  +i1 267.000000 0.500000 7000 7.11 7.11 0 6
         1978  +i1 267.000000 0.500000 7000 7.04 7.04 0 6
         1979  +i1 267.000000 0.500000 7000 7.08 7.08 0 6
         1980  +i1 267.500000 0.500000 7000 7.08 7.08 0 6
         1981  +i1 267.500000 0.500000 7000 7.11 7.11 0 6
         1982  +i1 267.500000 0.500000 7000 7.02 7.02 0 6
         1983  +i1 268.000000 0.500000 7000 7.04 7.04 0 6
         1984  +i1 268.000000 0.500000 7000 7.09 7.09 0 6
         1985  +i1 268.000000 0.500000 7000 7.11 7.11 0 6
         1986  +i1 268.500000 0.500000 7000 7.06 7.06 0 6
         1987  +i1 268.500000 0.500000 7000 7.09 7.09 0 6
         1988  +i1 268.500000 0.500000 7000 7.01 7.01 0 6
         1989  +i1 269.000000 0.500000 7000 7.11 7.11 0 6
         1990  +i1 269.000000 0.500000 7000 7.04 7.04 0 6
         1991  +i1 269.000000 0.500000 7000 7.08 7.08 0 6
         1992  +i1 269.500000 0.500000 7000 7.08 7.08 0 6
         1993  +i1 269.500000 0.500000 7000 7.11 7.11 0 6
         1994  +i1 269.500000 0.500000 7000 7.02 7.02 0 6
         1995  +i1 270.000000 0.500000 7000 7.04 7.04 0 6
         1996  +i1 270.000000 0.500000 7000 7.09 7.09 0 6
         1997  +i1 270.000000 0.500000 7000 7.11 7.11 0 6
         1998  +i1 270.500000 0.500000 7000 7.06 7.06 0 6
         1999  +i1 270.500000 0.500000 7000 7.09 7.09 0 6
         2000  +i1 270.500000 0.500000 7000 7.01 7.01 0 6
         2001  +i1 271.000000 0.500000 7000 7.11 7.11 0 6
         2002  +i1 271.000000 0.500000 7000 7.04 7.04 0 6
         2003  +i1 271.000000 0.500000 7000 7.08 7.08 0 6
         2004  +i1 271.500000 0.500000 7000 7.08 7.08 0 6
         2005  +i1 271.500000 0.500000 7000 7.11 7.11 0 6
         2006  +i1 271.500000 0.500000 7000 7.02 7.02 0 6
         2007  +i1 272.000000 0.500000 7000 7.04 7.04 0 6
         2008  +i1 272.000000 0.500000 7000 7.09 7.09 0 6
         2009  +i1 272.000000 0.500000 7000 7.11 7.11 0 6
         2010  +i1 272.500000 0.500000 7000 7.06 7.06 0 6
         2011  +i1 272.500000 0.500000 7000 7.09 7.09 0 6
         2012  +i1 272.500000 0.500000 7000 7.01 7.01 0 6
         2013  +; Movement: outro1
         2014  +i3 273.000000 2.000000 2000 6.09 2 3 5 3
         2015  +i3 275.000000 2.000000 2000 6.08 2 3 5 3
         2016  +i3 277.000000 2.000000 2000 6.04 2 3 5 3
         2017  +i3 279.000000 2.000000 2000 6.06 2 3 5 3
         2018  +i3 281.000000 2.000000 2000 6.09 2 3 5 3
         2019  +i3 283.000000 0.500000 2000 6.02 2 3 5 3
         2020  +i3 283.500000 0.500000 2000 6.04 2 3 5 3
         2021  +i3 284.000000 2.000000 2000 6.01 2 3 5 3
         2022  +i3 286.000000 2.000000 2000 6.09 2 3 5 3
         2023  +i3 288.000000 2.000000 2000 6.02 2 3 5 3
         2024  +i3 290.000000 2.000000 2000 6.04 2 3 5 3
         2025  +i3 292.000000 0.250000 2000 6.02 2 3 5 3
         2026  +i3 292.250000 0.250000 2000 6.09 2 3 5 3
         2027  +i3 292.500000 2.000000 2000 6.04 2 3 5 3
         2028  +i3 294.500000 2.000000 2000 6.01 2 3 5 3
         2029  +i3 296.500000 2.000000 2000 6.11 2 3 5 3
         2030  +i2 273.000000 0.250000 7000 8.08 2
         2031  +i2 273.250000 0.250000 7000 8.09 2
         2032  +i2 273.500000 0.250000 7000 8.02 2
         2033  +i2 273.750000 0.250000 7000 8.04 2
         2034  +i2 274.000000 0.250000 7000 8.06 2
         2035  +i2 274.250000 0.250000 7000 8.01 2
         2036  +i2 274.500000 0.250000 7000 8.06 2
         2037  +i2 274.750000 0.250000 7000 8.11 2
         2038  +i2 275.000000 0.250000 7000 8.04 2
         2039  +i2 275.250000 0.250000 7000 8.06 2
         2040  +i2 275.500000 0.250000 7000 8.02 2
         2041  +i2 275.750000 2.000000 7000 8.08 2
         2042  +i2 277.750000 0.250000 7000 8.08 2
         2043  +i2 278.000000 0.250000 7000 8.09 2
         2044  +i2 278.250000 0.250000 7000 8.02 2
         2045  +i2 278.500000 0.250000 7000 8.04 2
         2046  +i2 278.750000 0.250000 7000 8.06 2
         2047  +i2 279.000000 0.250000 7000 8.01 2
         2048  +i2 279.250000 0.250000 7000 8.06 2
         2049  +i2 279.500000 0.250000 7000 8.11 2
         2050  +i2 279.750000 0.250000 7000 8.04 2
         2051  +i2 280.000000 0.250000 7000 8.06 2
         2052  +i2 280.250000 0.250000 7000 8.02 2
         2053  +i2 280.500000 2.000000 7000 8.08 2
         2054  +i2 282.500000 0.250000 7000 8.08 2
         2055  +i2 282.750000 0.250000 7000 8.09 2
         2056  +i2 283.000000 0.250000 7000 8.02 2
         2057  +i2 283.250000 0.250000 7000 8.04 2
         2058  +i2 283.500000 0.250000 7000 8.06 2
         2059  +i2 283.750000 0.250000 7000 8.01 2
         2060  +i2 284.000000 0.250000 7000 8.06 2
         2061  +i2 284.250000 0.250000 7000 8.11 2
         2062  +i2 284.500000 0.250000 7000 8.04 2
         2063  +i2 284.750000 0.250000 7000 8.06 2
         2064  +i2 285.000000 0.250000 7000 8.02 2
         2065  +i2 285.250000 2.000000 7000 8.08 2
         2066  +i2 287.250000 0.250000 7000 8.08 2
         2067  +i2 287.500000 0.250000 7000 8.09 2
         2068  +i2 287.750000 0.250000 7000 8.02 2
         2069  +i2 288.000000 0.250000 7000 8.04 2
         2070  +i2 288.250000 0.250000 7000 8.06 2
         2071  +i2 288.500000 0.250000 7000 8.01 2
         2072  +i2 288.750000 0.250000 7000 8.06 2
         2073  +i2 289.000000 0.250000 7000 8.11 2
         2074  +i2 289.250000 0.250000 7000 8.04 2
         2075  +i2 289.500000 0.250000 7000 8.06 2
         2076  +i2 289.750000 0.250000 7000 8.02 2
         2077  +i2 290.000000 2.000000 7000 8.08 2
         2078  +i2 292.000000 0.250000 7000 8.06 2
         2079  +i2 292.250000 0.250000 7000 8.01 2
         2080  +i2 292.500000 0.250000 7000 8.11 2
         2081  +i2 292.750000 0.250000 7000 8.09 2
         2082  +i1 273.000000 0.500000 7000 7.11 7.11 0 6
         2083  +i1 273.000000 0.500000 7000 7.04 7.04 0 6
         2084  +i1 273.000000 0.500000 7000 7.08 7.08 0 6
         2085  +i1 273.500000 2.000000 7000 7.08 7.08 0 6
         2086  +i1 273.500000 2.000000 7000 7.11 7.11 0 6
         2087  +i1 273.500000 2.000000 7000 7.02 7.02 0 6
         2088  +i1 275.500000 0.500000 7000 7.04 7.04 0 6
         2089  +i1 275.500000 0.500000 7000 7.09 7.09 0 6
         2090  +i1 275.500000 0.500000 7000 7.11 7.11 0 6
         2091  +i1 276.000000 0.500000 7000 7.06 7.06 0 6
         2092  +i1 276.000000 0.500000 7000 7.09 7.09 0 6
         2093  +i1 276.000000 0.500000 7000 7.01 7.01 0 6
         2094  +i1 276.500000 0.500000 7000 7.11 7.11 0 6
         2095  +i1 276.500000 0.500000 7000 7.04 7.04 0 6
         2096  +i1 276.500000 0.500000 7000 7.08 7.08 0 6
         2097  +i1 277.000000 2.000000 7000 7.08 7.08 0 6
         2098  +i1 277.000000 2.000000 7000 7.11 7.11 0 6
         2099  +i1 277.000000 2.000000 7000 7.02 7.02 0 6
         2100  +i1 279.000000 0.500000 7000 7.04 7.04 0 6
         2101  +i1 279.000000 0.500000 7000 7.09 7.09 0 6
         2102  +i1 279.000000 0.500000 7000 7.11 7.11 0 6
         2103  +i1 279.500000 0.500000 7000 7.06 7.06 0 6
         2104  +i1 279.500000 0.500000 7000 7.09 7.09 0 6
         2105  +i1 279.500000 0.500000 7000 7.01 7.01 0 6
         2106  +i1 280.000000 0.500000 7000 7.11 7.11 0 6
         2107  +i1 280.000000 0.500000 7000 7.04 7.04 0 6
         2108  +i1 280.000000 0.500000 7000 7.08 7.08 0 6
         2109  +i1 280.500000 2.000000 7000 7.08 7.08 0 6
         2110  +i1 280.500000 2.000000 7000 7.11 7.11 0 6
         2111  +i1 280.500000 2.000000 7000 7.02 7.02 0 6
         2112  +i1 282.500000 0.500000 7000 7.04 7.04 0 6
         2113  +i1 282.500000 0.500000 7000 7.09 7.09 0 6
         2114  +i1 282.500000 0.500000 7000 7.11 7.11 0 6
         2115  +i1 283.000000 0.500000 7000 7.06 7.06 0 6
         2116  +i1 283.000000 0.500000 7000 7.09 7.09 0 6
         2117  +i1 283.000000 0.500000 7000 7.01 7.01 0 6
         2118  +i1 283.500000 0.500000 7000 7.11 7.11 0 6
         2119  +i1 283.500000 0.500000 7000 7.04 7.04 0 6
         2120  +i1 283.500000 0.500000 7000 7.08 7.08 0 6
         2121  +i1 284.000000 2.000000 7000 7.08 7.08 0 6
         2122  +i1 284.000000 2.000000 7000 7.11 7.11 0 6
         2123  +i1 284.000000 2.000000 7000 7.02 7.02 0 6
         2124  +i1 286.000000 0.500000 7000 7.04 7.04 0 6
         2125  +i1 286.000000 0.500000 7000 7.09 7.09 0 6
         2126  +i1 286.000000 0.500000 7000 7.11 7.11 0 6
         2127  +i1 286.500000 0.500000 7000 7.06 7.06 0 6
         2128  +i1 286.500000 0.500000 7000 7.09 7.09 0 6
         2129  +i1 286.500000 0.500000 7000 7.01 7.01 0 6
         2130  +i1 287.000000 0.500000 7000 7.11 7.11 0 6
         2131  +i1 287.000000 0.500000 7000 7.04 7.04 0 6
         2132  +i1 287.000000 0.500000 7000 7.08 7.08 0 6
         2133  +i1 287.500000 2.000000 7000 7.08 7.08 0 6
         2134  +i1 287.500000 2.000000 7000 7.11 7.11 0 6
         2135  +i1 287.500000 2.000000 7000 7.02 7.02 0 6
         2136  +i1 289.500000 0.500000 7000 7.04 7.04 0 6
         2137  +i1 289.500000 0.500000 7000 7.09 7.09 0 6
         2138  +i1 289.500000 0.500000 7000 7.11 7.11 0 6
         2139  +i1 290.000000 0.500000 7000 7.06 7.06 0 6
         2140  +i1 290.000000 0.500000 7000 7.09 7.09 0 6
         2141  +i1 290.000000 0.500000 7000 7.01 7.01 0 6
         2142  +i1 290.500000 0.500000 7000 7.11 7.11 0 6
         2143  +i1 290.500000 0.500000 7000 7.04 7.04 0 6
         2144  +i1 290.500000 0.500000 7000 7.08 7.08 0 6
         2145  +i1 291.000000 2.000000 7000 7.08 7.08 0 6
         2146  +i1 291.000000 2.000000 7000 7.11 7.11 0 6
         2147  +i1 291.000000 2.000000 7000 7.02 7.02 0 6
         2148  +i1 293.000000 0.500000 7000 7.04 7.04 0 6
         2149  +i1 293.000000 0.500000 7000 7.09 7.09 0 6
         2150  +i1 293.000000 0.500000 7000 7.11 7.11 0 6
         2151  +i1 293.500000 0.500000 7000 7.06 7.06 0 6
         2152  +i1 293.500000 0.500000 7000 7.09 7.09 0 6
         2153  +i1 293.500000 0.500000 7000 7.01 7.01 0 6
         2154  +i1 294.000000 0.500000 7000 7.11 7.11 0 6
         2155  +i1 294.000000 0.500000 7000 7.04 7.04 0 6
         2156  +i1 294.000000 0.500000 7000 7.08 7.08 0 6
         2157  +i1 294.500000 2.000000 7000 7.08 7.08 0 6
         2158  +i1 294.500000 2.000000 7000 7.11 7.11 0 6
         2159  +i1 294.500000 2.000000 7000 7.02 7.02 0 6
         2160  +i1 296.500000 0.500000 7000 7.04 7.04 0 6
         2161  +i1 296.500000 0.500000 7000 7.09 7.09 0 6
         2162  +i1 296.500000 0.500000 7000 7.11 7.11 0 6
         2163  +i1 297.000000 0.500000 7000 7.06 7.06 0 6
         2164  +i1 297.000000 0.500000 7000 7.09 7.09 0 6
         2165  +i1 297.000000 0.500000 7000 7.01 7.01 0 6
         2166  +i1 297.500000 0.500000 7000 7.11 7.11 0 6
         2167  +i1 297.500000 0.500000 7000 7.04 7.04 0 6
         2168  +i1 297.500000 0.500000 7000 7.08 7.08 0 6
         2169  +; Movement: outro2
         2170  +i1 298.500000 0.500000 7000 7.11 7.11 0 6
         2171  +i1 298.500000 0.500000 7000 7.04 7.04 0 6
         2172  +i1 298.500000 0.500000 7000 7.08 7.08 0 6
         2173  +i1 299.000000 2.000000 7000 7.08 7.08 0 6
         2174  +i1 299.000000 2.000000 7000 7.11 7.11 0 6
         2175  +i1 299.000000 2.000000 7000 7.02 7.02 0 6
         2176  +i1 301.000000 0.500000 7000 7.04 7.04 0 6
         2177  +i1 301.000000 0.500000 7000 7.09 7.09 0 6
         2178  +i1 301.000000 0.500000 7000 7.11 7.11 0 6
         2179  +i1 301.500000 0.500000 7000 7.06 7.06 0 6
         2180  +i1 301.500000 0.500000 7000 7.09 7.09 0 6
         2181  +i1 301.500000 0.500000 7000 7.01 7.01 0 6
         2182  +i1 302.000000 0.500000 7000 7.11 7.11 0 6
         2183  +i1 302.000000 0.500000 7000 7.04 7.04 0 6
         2184  +i1 302.000000 0.500000 7000 7.08 7.08 0 6

Added parse.py version [2afbfc4534].

            1  +#!/usr/bin/env python
            2  +
            3  +import tree
            4  +
            5  +from ply import lex, yacc
            6  +class Note():
            7  +    def __init__(self, value, duration=1, octave=8):
            8  +        self.value = value
            9  +        self.duration = duration
           10  +        self.octave = octave
           11  +        self.accidental = None
           12  +    def __repr__(self):
           13  +        return "Note %s %s %s" % (self.value, self.duration, self.octave)
           14  +
           15  +class Chord():
           16  +    def __init__(self, value, duration=1, chord_type="major", octave=5):
           17  +        self.value = value
           18  +        self.duration = duration
           19  +        self.chord_type = chord_type
           20  +        self.octave = octave
           21  +    def __repr__(self):
           22  +        return "Chord %s %s %s" % (self.value, self.duration, self.chord_type, self.octave)
           23  +
           24  +class Rest():
           25  +    def __init__(self, duration=1):
           26  +        self.duration = duration
           27  +    def __repr__(self):
           28  +        return "Rest node %s" % self.duration
           29  +
           30  +
           31  +def parse(score, default_octave=8):
           32  +    # Tokenize (lex)
           33  +    tokens = (
           34  +        "NOTE_LENGTH",
           35  +        "BASENOTE",
           36  +        "ACCIDENTAL",
           37  +        "REST",
           38  +        "OCTAVE",
           39  +        "CHORD_TYPE",
           40  +        "PAREN",
           41  +        "SYNCOPATE",
           42  +        "NODE",
           43  +    )
           44  +
           45  +    t_ignore = " |"
           46  +
           47  +    t_BASENOTE = r"[A-Ga-g]"
           48  +#    t_BASENOTE = r"I+V?|VI*|i+v?|vi*"
           49  +    t_ACCIDENTAL = r"\^{1,2}|_{1,2}|="
           50  +    t_REST = r"z"
           51  +    t_OCTAVE = r"'+|,+"
           52  +    t_CHORD_TYPE = r"m|7|m7|0|o|\+|mb5|sus|sus4|maj7|mmaj7|7sus4|dim|dim7|7b5|m7b5|6|b6|m6|mb6|46|maj9|9|add9|7b9|m9"
           53  +    t_PAREN = "\(|\)"
           54  +    t_SYNCOPATE = "\+|-"
           55  +    t_NODE = r"\([a-zA-Z0-9_-]+\)"
           56  +
           57  +    def t_NOTE_LENGTH(t):
           58  +        r"/?\d+"
           59  +        multiplier = float(t.value.strip("/"))
           60  +        if t.value.startswith("/"):
           61  +            multiplier = 1/multiplier
           62  +        t.value = multiplier
           63  +        return t
           64  +
           65  +    def t_error(t):
           66  +        raise TypeError("Unknown text '%s'" % (t.value,))
           67  +
           68  +    lex.lex()
           69  +    lex.input(score)
           70  +
           71  +
           72  +    # Parse (yacc)
           73  +
           74  +    def p_note_list(p):
           75  +        '''score : score note
           76  +                 | score chord
           77  +                 | score rest
           78  +            | score node
           79  +        '''
           80  +        p[0] = p[1] + [p[2]]
           81  +
           82  +    def p_score(p):
           83  +        '''score : note
           84  +                 | chord
           85  +                 | rest
           86  +            | node
           87  +        '''
           88  +        p[0] = [p[1]]
           89  +
           90  +
           91  +    def p_chord_length(p):
           92  +        ''' chord : chord NOTE_LENGTH
           93  +        '''
           94  +        new_note = p[1]
           95  +        new_note.duration = p[2]
           96  +        p[0] = new_note
           97  +
           98  +
           99  +    def p_note_length(p):
          100  +        ''' note : note NOTE_LENGTH
          101  +        '''
          102  +        new_note = p[1]
          103  +        new_note.duration = p[2]
          104  +        p[0] = new_note
          105  +
          106  +
          107  +    def p_chord(p):
          108  +        '''chord : PAREN note PAREN
          109  +                 | PAREN note CHORD_TYPE PAREN
          110  +        '''
          111  +        pitch = p[2].value
          112  +        pitch = pitch.upper()
          113  +        p[0] = Chord(value=pitch, octave=default_octave)
          114  +        if len(p) > 3:
          115  +            p[0].chord_type = p[3]
          116  +
          117  +
          118  +    def p_note_syncopate(p):
          119  +        ''' note : note SYNCOPATE
          120  +        '''
          121  +        note.syncopate = p[2]
          122  +
          123  +
          124  +    def p_accidental(p):
          125  +        '''note : ACCIDENTAL note
          126  +        '''
          127  +        p[2].accidental = p[1]
          128  +        p[0] = p[2]
          129  +
          130  +    def p_octave(p):
          131  +        '''note : note OCTAVE
          132  +        '''
          133  +        count = len(p[2])
          134  +        increment_or_decrement = 1 if p[2].startswith("'") else -1
          135  +        p[1].octave += (count * increment_or_decrement)
          136  +        p[0] = p[1]
          137  +
          138  +    def p_note(p):
          139  +        '''note : BASENOTE
          140  +        '''
          141  +        p[0] = Note(p[1], octave=default_octave)
          142  +
          143  +    def p_rest(p):
          144  +        ''' rest : REST
          145  +                 | REST NOTE_LENGTH
          146  +        '''
          147  +        p[0] = Rest()
          148  +        if len(p) > 2:
          149  +            p[0].duration = p[2]
          150  +
          151  +    def p_node(p):
          152  +        '''node : NODE
          153  +        '''
          154  +        p[0] = tree.Tree(p[1].strip("(").strip(")"))
          155  +
          156  +
          157  +    def p_error(p):
          158  +        print p
          159  +        raise Exception("Syntax error at '%s' of element type %s" % (p.value, p.type))
          160  +        
          161  +    yacc.yacc()
          162  +
          163  +    return yacc.parse(score)

Added rad_util.py version [99f93e22cf].

            1  +# Copyright (c) 2007 RADLogic
            2  +# 
            3  +# Permission is hereby granted, free of charge, to any person obtaining a copy
            4  +# of this software and associated documentation files (the "Software"), to deal
            5  +# in the Software without restriction, including without limitation the rights
            6  +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
            7  +# copies of the Software, and to permit persons to whom the Software is
            8  +# furnished to do so, subject to the following conditions:
            9  +# 
           10  +# The above copyright notice and this permission notice shall be included in
           11  +# all copies or substantial portions of the Software.
           12  +# 
           13  +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
           14  +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
           15  +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
           16  +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
           17  +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
           18  +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
           19  +# THE SOFTWARE.
           20  +"""Provide various handy Python functions.
           21  +
           22  +Running this script directly will execute the doctests.
           23  +
           24  +Functions:
           25  +int2bin(i, n) -- Convert integer to binary string.
           26  +bin2int(bin_string) -- Convert binary string to integer.
           27  +reverse(input_string) -- Reverse a string.
           28  +transpose(matrix) -- Transpose a list of lists.
           29  +polygon_area(points_list) -- Calculate the area of an arbitrary polygon.
           30  +timestamp() -- Return string containing current time stamp.
           31  +pt2str(point) -- Return prettier string version of point tuple.
           32  +gcf(a, b) -- Return the greatest common factor of two numbers.
           33  +lcm(a, b) -- Return the least common multiple of two numbers.
           34  +permutations(input_list) -- Generate all permutations of a list of items.
           35  +reduce_fraction(fraction) -- Reduce fraction (num, denom) to simplest form.
           36  +quantile(l, p) -- Return p quantile of list l. E.g. p=0.25 for q1.
           37  +trim(l) -- Discard values in list more than 1.5*IQR outside IQR.
           38  +nice_units(value) -- Return value converted to human readable units.
           39  +uniquify(seq) -- Return sequence with duplicate items in sequence seq removed.
           40  +reverse_dict(d) -- Return the dictionary with the items as keys and vice-versa.
           41  +lsb(x, n) -- Return the n least significant bits of x.
           42  +gray_encode(i) -- Gray encode the given integer.
           43  +random_vec(bits, max_value=None) -- Return a random binary vector.
           44  +binary_range(bits) -- Return list of all possible binary numbers width=bits.
           45  +float_range([start], stop, [step]) -- Return range of floats.
           46  +find_common_fixes(s1, s2) -- Find common (prefix, suffix) of two strings.
           47  +is_rotated(seq1, seq2) -- Return true if the list is a rotation of other list.
           48  +getmodule(obj) -- Return the module that contains the object definition of obj.
           49  +                  (use inspect.getmodule instead, though)
           50  +get_args(argv) -- Store command-line args in a dictionary.
           51  +
           52  +This module requires Python >= 2.2
           53  +
           54  +"""
           55  +__author__ = 'Tim Wegener <twegener@radlogic.com.au>'
           56  +__date__ = '$Date: 2007/03/27 03:15:06 $'
           57  +__version__ = '$Revision: 0.45 $'
           58  +__credits__ = """
           59  +              David Chandler, for polygon area algorithm.
           60  +               (http://www.davidchandler.com/AreaOfAGeneralPolygon.pdf)
           61  +              """
           62  +
           63  +import re
           64  +import sys
           65  +import time
           66  +import random
           67  +
           68  +try:
           69  +    True, False
           70  +except NameError:
           71  +    True, False = (1==1, 0==1)
           72  +
           73  +
           74  +def int2bin(i, n):
           75  +    """Convert decimal integer i to n-bit binary number (string).
           76  +
           77  +    >>> int2bin(0, 8)
           78  +    '00000000'
           79  +
           80  +    >>> int2bin(123, 8)
           81  +    '01111011'
           82  +
           83  +    >>> int2bin(123L, 8)
           84  +    '01111011'
           85  +
           86  +    >>> int2bin(15, 2)
           87  +    Traceback (most recent call last):
           88  +    ValueError: Value too large for given number of bits.
           89  +
           90  +    """
           91  +    hex2bin = {'0': '0000', '1': '0001', '2': '0010', '3': '0011',
           92  +               '4': '0100', '5': '0101', '6': '0110', '7': '0111',
           93  +               '8': '1000', '9': '1001', 'a': '1010', 'b': '1011',
           94  +               'c': '1100', 'd': '1101', 'e': '1110', 'f': '1111'}
           95  +    # Convert to hex then map each hex digit to binary equivalent.
           96  +    result = ''.join([hex2bin[x] for x in hex(i).lower().replace('l','')[2:]])
           97  +                      
           98  +    # Shrink result to appropriate length.
           99  +    # Raise an error if the value is changed by the truncation.
          100  +    if '1' in result[:-n]:
          101  +        raise ValueError("Value too large for given number of bits.")
          102  +    result = result[-n:]
          103  +    # Zero-pad if length longer than mapped result.
          104  +    result = '0'*(n-len(result)) + result
          105  +    return result
          106  +
          107  +
          108  +def bin2int(bin_string):
          109  +    """Convert binary number string to decimal integer.
          110  +    
          111  +    Note: Python > v2 has int(bin_string, 2)
          112  +
          113  +    >>> bin2int('1111')
          114  +    15
          115  +
          116  +    >>> bin2int('0101')
          117  +    5
          118  +
          119  +    """
          120  +##     result = 0
          121  +##     bin_list = list(bin_string)
          122  +##     if len(filter(lambda x: x in ('1','0'), bin_list)) < len(bin_list):
          123  +##         raise Exception ("bin2int: Error - not a binary number: %s"
          124  +##                          % bin_string)
          125  +##     bit_list = map(int, bin_list)
          126  +##     bit_list.reverse()  # Make most significant bit have highest index.
          127  +##     for bit_place in range(len(bit_list)):
          128  +##         result = result + ((2**bit_place) * bit_list[bit_place])
          129  +##     return result
          130  +    return int(bin_string, 2)
          131  +
          132  +
          133  +def reverse(input_string):
          134  +    """Reverse a string. Useful for strings of binary numbers.
          135  +
          136  +    >>> reverse('abc')
          137  +    'cba'
          138  +
          139  +    """
          140  +    str_list = list(input_string)
          141  +    str_list.reverse()
          142  +    return ''.join(str_list)
          143  +
          144  +
          145  +def transpose(matrix):
          146  +    """Transpose a list of lists.
          147  +
          148  +    >>> transpose([['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']])
          149  +    [['a', 'd', 'g'], ['b', 'e', 'h'], ['c', 'f', 'i']]
          150  +
          151  +    >>> transpose([['a', 'b', 'c'], ['d', 'e', 'f']])
          152  +    [['a', 'd'], ['b', 'e'], ['c', 'f']]
          153  +
          154  +    >>> transpose([['a', 'b'], ['d', 'e'], ['g', 'h']])
          155  +    [['a', 'd', 'g'], ['b', 'e', 'h']]
          156  +
          157  +    """
          158  +    result = zip(*matrix)
          159  +    # Convert list of tuples to list of lists.
          160  +    # map is faster than a list comprehension since it is being used with
          161  +    # a built-in function as an argument.
          162  +    result = map(list, result)
          163  +    return result
          164  +
          165  +
          166  +def polygon_area(points_list, precision=100):
          167  +    """Calculate area of an arbitrary polygon using an algorithm from the web.
          168  +
          169  +    Return the area of the polygon as a positive float. 
          170  +
          171  +    Arguments:
          172  +    points_list -- list of point tuples [(x0, y0), (x1, y1), (x2, y2), ...]
          173  +                   (Unclosed polygons will be closed automatically.
          174  +    precision -- Internal arithmetic precision (integer arithmetic).
          175  +
          176  +    >>> polygon_area([(0, 0), (0, 1), (1, 1), (1, 2), (2, 2), (2, 0), (0, 0)])
          177  +    3.0
          178  +
          179  +    Credits:
          180  +    Area of a General Polygon by David Chandler
          181  +    http://www.davidchandler.com/AreaOfAGeneralPolygon.pdf
          182  +    
          183  +    """
          184  +    # Scale up co-ordinates and convert them to integers.
          185  +    for i in range(len(points_list)):
          186  +        points_list[i] = (int(points_list[i][0] * precision),
          187  +                          int(points_list[i][1] * precision))
          188  +    # Close polygon if not closed.
          189  +    if points_list[-1] != points_list[0]:
          190  +        points_list.append(points_list[0])
          191  +    # Calculate area.
          192  +    area = 0
          193  +    for i in range(len(points_list)-1):
          194  +        (x_i, y_i) = points_list[i]
          195  +        (x_i_plus_1, y_i_plus_1) = points_list[i+1]
          196  +        area = area + (x_i_plus_1 * y_i) - (y_i_plus_1 * x_i)
          197  +    area = abs(area / 2)
          198  +    # Unscale area.
          199  +    area = float(area)/(precision**2)
          200  +    return area
          201  +
          202  +
          203  +def timestamp():
          204  +    """Return string containing current time stamp.
          205  +
          206  +    Note: In Python 2 onwards can use time.asctime() with no arguments.
          207  +
          208  +    """
          209  +
          210  +    return time.asctime()
          211  +
          212  +
          213  +def pt2str(point):
          214  +    """Return prettier string version of point tuple.
          215  +
          216  +    >>> pt2str((1.8, 1.9))
          217  +    '(1.8, 1.9)'
          218  +
          219  +    """
          220  +    return "(%s, %s)" % (str(point[0]), str(point[1]))
          221  +
          222  +
          223  +def gcf(a, b, epsilon=1e-16):
          224  +    """Return the greatest common factor of a and b, using Euclidean algorithm.
          225  +
          226  +    Arguments:
          227  +    a, b -- two numbers
          228  +            If both numbers are integers return an integer result, 
          229  +            otherwise return a float result.
          230  +    epsilon -- floats less than this magnitude are considered to be zero
          231  +               (default: 1e-16)
          232  +
          233  +    Examples:
          234  +
          235  +    >>> gcf(12, 34)
          236  +    2
          237  +
          238  +    >>> gcf(13.5, 4)
          239  +    0.5
          240  +
          241  +    >>> gcf(-2, 4)
          242  +    2
          243  +
          244  +    >>> gcf(5, 0)
          245  +    5
          246  +
          247  +    By (a convenient) definition:
          248  +    >>> gcf(0, 0)
          249  +    0
          250  +
          251  +    """
          252  +    result = max(a, b)
          253  +    remainder = min(a, b)
          254  +    while remainder and abs(remainder) > epsilon:
          255  +        new_remainder = result % remainder
          256  +        result = remainder
          257  +        remainder = new_remainder
          258  +    return abs(result)
          259  +
          260  +def lcm(a, b, precision=None):
          261  +    """Return the least common multiple of a and b, using the gcf function.
          262  +
          263  +    Arguments:
          264  +    a, b -- two numbers. If both are integers return an integer result, 
          265  +            otherwise a return a float result.
          266  +    precision -- scaling factor if a and/or b are floats.
          267  +
          268  +    >>> lcm(21, 6)
          269  +    42
          270  +
          271  +    >>> lcm(2.5, 3.5)
          272  +    17.5
          273  +
          274  +    >>> str(lcm(1.5e-8, 2.5e-8, precision=1e9))
          275  +    '7.5e-08'
          276  +
          277  +    By (an arbitary) definition:
          278  +    >>> lcm(0, 0)
          279  +    0
          280  +
          281  +    """
          282  +    # Note: Dummy precision argument is for backwards compatibility.
          283  +    # Do the division first.
          284  +    # (See http://en.wikipedia.org/wiki/Least_common_multiple )
          285  +    denom = gcf(a, b)
          286  +    if denom == 0:
          287  +        result = 0
          288  +    else:
          289  +        result = a * (b / denom)
          290  +    return result
          291  +
          292  +
          293  +def permutations(input_list):
          294  +    """Return a list containing all permutations of the input list.
          295  +
          296  +    Note: This is a recursive function.
          297  +
          298  +    >>> perms = permutations(['a', 'b', 'c'])
          299  +    >>> perms.sort()
          300  +    >>> for perm in perms:
          301  +    ...     print perm
          302  +    ['a', 'b', 'c']
          303  +    ['a', 'c', 'b']
          304  +    ['b', 'a', 'c']
          305  +    ['b', 'c', 'a']
          306  +    ['c', 'a', 'b']
          307  +    ['c', 'b', 'a']
          308  +
          309  +    """
          310  +    out_lists = []
          311  +    if len(input_list) > 1:
          312  +        # Extract first item in list.
          313  +        item = input_list[0]
          314  +        # Find all permutations of remainder of list. (Recursive call.)
          315  +        sub_lists = permutations(input_list[1:])
          316  +        # For every permutation of the sub list...
          317  +        for sub_list in sub_lists:
          318  +            # Insert the extracted first item at every position of the list.
          319  +            for i in range(len(input_list)):
          320  +                new_list = sub_list[:]
          321  +                new_list.insert(i, item)
          322  +                out_lists.append(new_list)
          323  +    else:
          324  +        # Termination condition: only one item in input list.
          325  +        out_lists = [input_list]
          326  +    return out_lists
          327  +
          328  +
          329  +def reduce_fraction(fraction):
          330  +    """Reduce fraction tuple to simplest form. fraction=(num, denom)
          331  +    
          332  +    >>> reduce_fraction((14, 7))
          333  +    (2, 1)
          334  +
          335  +    >>> reduce_fraction((-2, 4))
          336  +    (-1, 2)
          337  +
          338  +    >>> reduce_fraction((0, 4))
          339  +    (0, 1)
          340  +
          341  +    >>> reduce_fraction((4, 0))
          342  +    (1, 0)
          343  +    
          344  +    """
          345  +    (numerator, denominator) = fraction
          346  +    common_factor = abs(gcf(numerator, denominator))
          347  +    result = (numerator/common_factor, denominator/common_factor)
          348  +    return result
          349  +
          350  +
          351  +def quantile(l, p):
          352  +    """Return p quantile of list l. E.g. p=0.25 for q1.
          353  +
          354  +    See:
          355  +    http://rweb.stat.umn.edu/R/library/base/html/quantile.html
          356  +
          357  +    """
          358  +    l_sort = l[:]
          359  +    l_sort.sort()
          360  +    n = len(l)
          361  +    r = 1 + ((n - 1) * p)
          362  +    i = int(r)
          363  +    f = r - i
          364  +    if i < n:
          365  +        result =  (1-f)*l_sort[i-1] + f*l_sort[i]
          366  +    else:
          367  +        result = l_sort[i-1]
          368  +    return result
          369  +
          370  +
          371  +def trim(l):
          372  +    """Discard values in list more than 1.5*IQR outside IQR.
          373  +
          374  +    (IQR is inter-quartile-range)
          375  +
          376  +    This function uses rad_util.quantile
          377  +
          378  +    1.5*IQR -- mild outlier
          379  +    3*IQR -- extreme outlier
          380  +
          381  +    See:
          382  +    http://wind.cc.whecn.edu/~pwildman/statnew/section_7_-_exploratory_data_analysis.htm
          383  +
          384  +    """
          385  +    l_sort = l[:]
          386  +    l_sort.sort()
          387  +    # Calculate medianscore  (based on stats.py lmedianscore by Gary Strangman)
          388  +    if len(l_sort) % 2 == 0:
          389  +        # If even number of scores, average middle 2.
          390  +        index = int(len(l_sort) / 2)  # Integer division correct
          391  +        median = float(l_sort[index] + l_sort[index-1]) / 2
          392  +    else:
          393  +        # int divsion gives mid value when count from 0
          394  +        index = int(len(l_sort) / 2)
          395  +        median = l_sort[index]
          396  +    # Calculate IQR.
          397  +    q1 = quantile(l_sort, 0.25)
          398  +    q3 = quantile(l_sort, 0.75)
          399  +    iqr = q3 - q1
          400  +    iqr_extra = iqr * 1.5
          401  +    def in_interval(x, i=iqr_extra, q1=q1, q3=q3):
          402  +        return (x >= q1-i and x <= q3+i)
          403  +    l_trimmed = [x for x in l_sort if in_interval(x)]
          404  +    return l_trimmed
          405  +
          406  +
          407  +def nice_units(value, dp=0, sigfigs=None, suffix='', space=' ',
          408  +               use_extra_prefixes=False, use_full_name=False, mode='si'):
          409  +    """Return value converted to human readable units eg milli, micro, etc.
          410  +
          411  +    Arguments:
          412  +    value -- number in base units
          413  +    dp -- number of decimal places to display (rounded)
          414  +    sigfigs -- number of significant figures to display (rounded)
          415  +               This overrides dp if set.
          416  +    suffix -- optional unit suffix to append to unit multiplier
          417  +    space -- seperator between value and unit multiplier (default: ' ')
          418  +    use_extra_prefixes -- use hecto, deka, deci and centi as well if set.
          419  +                          (default: False)
          420  +    use_full_name -- use full name for multiplier symbol,
          421  +                     e.g. milli instead of m
          422  +                     (default: False)
          423  +    mode -- 'si' for SI prefixes, 'bin' for binary multipliers (1024, etc.)
          424  +            (Default: 'si')
          425  +
          426  +    SI prefixes from:
          427  +    http://physics.nist.gov/cuu/Units/prefixes.html
          428  +    (Greek mu changed to u.)
          429  +    Binary prefixes based on:
          430  +    http://physics.nist.gov/cuu/Units/binary.html
          431  +
          432  +    >>> nice_units(2e-11)
          433  +    '20 p'
          434  +
          435  +    >>> nice_units(2e-11, space='')
          436  +    '20p'
          437  +
          438  +    """
          439  +    si_prefixes = {1e24:  ('Y', 'yotta'),
          440  +                   1e21:  ('Z', 'zetta'),
          441  +                   1e18:  ('E', 'exa'),
          442  +                   1e15:  ('P', 'peta'),
          443  +                   1e12:  ('T', 'tera'),
          444  +                   1e9:   ('G', 'giga'),
          445  +                   1e6:   ('M', 'mega'),
          446  +                   1e3:   ('k', 'kilo'),
          447  +                   1e-3:  ('m', 'milli'),
          448  +                   1e-6:  ('u', 'micro'),
          449  +                   1e-9:  ('n', 'nano'),
          450  +                   1e-12: ('p', 'pico'),
          451  +                   1e-15: ('f', 'femto'),
          452  +                   1e-18: ('a', 'atto'),
          453  +                   1e-21: ('z', 'zepto'),
          454  +                   1e-24: ('y', 'yocto')
          455  +                   }
          456  +    if use_extra_prefixes:
          457  +        si_prefixes.update({1e2:  ('h', 'hecto'),
          458  +                            1e1:  ('da', 'deka'),
          459  +                            1e-1: ('d', 'deci'),
          460  +                            1e-2: ('c', 'centi')
          461  +                            })
          462  +    bin_prefixes = {2**10: ('K', 'kilo'),
          463  +                    2**20: ('M', 'mega'),
          464  +                    2**30: ('G', 'mega'),
          465  +                    2**40: ('T', 'tera'),
          466  +                    2**50: ('P', 'peta'),
          467  +                    2**60: ('E', 'exa')
          468  +                    }
          469  +    if mode == 'bin':
          470  +        prefixes = bin_prefixes
          471  +    else:
          472  +        prefixes = si_prefixes
          473  +    prefixes[1] = ('', '')  # Unity.
          474  +    # Determine appropriate multiplier.
          475  +    multipliers = prefixes.keys()
          476  +    multipliers.sort()
          477  +    mult = None
          478  +    for i in range(len(multipliers) - 1):
          479  +        lower_mult = multipliers[i]
          480  +        upper_mult = multipliers[i+1]
          481  +        if lower_mult <= value < upper_mult:
          482  +            mult_i = i
          483  +            break
          484  +    if mult is None:
          485  +        if value < multipliers[0]:
          486  +            mult_i = 0
          487  +        elif value >= multipliers[-1]:
          488  +            mult_i = len(multipliers) - 1
          489  +    mult = multipliers[mult_i]
          490  +    # Convert value for this multiplier.
          491  +    new_value = value / mult
          492  +    # Deal with special case due to rounding.
          493  +    if sigfigs is None:
          494  +        if mult_i < (len(multipliers) - 1) and \
          495  +               round(new_value, dp) == \
          496  +               round((multipliers[mult_i+1] / mult), dp):
          497  +            mult = multipliers[mult_i + 1]
          498  +            new_value = value / mult
          499  +    # Concatenate multiplier symbol.
          500  +    if use_full_name:
          501  +        label_type = 1
          502  +    else:
          503  +        label_type = 0
          504  +    # Round and truncate to appropriate precision.
          505  +    if sigfigs is None:
          506  +        str_value = eval('"%.'+str(dp)+'f" % new_value', locals(), {})
          507  +    else:
          508  +        str_value = eval('"%.'+str(sigfigs)+'g" % new_value', locals(), {})
          509  +    return str_value + space + prefixes[mult][label_type] + suffix
          510  +
          511  +
          512  +def uniquify(seq, preserve_order=False):
          513  +    """Return sequence with duplicate items in sequence seq removed.
          514  +
          515  +    The code is based on usenet post by Tim Peters.
          516  +
          517  +    This code is O(N) if the sequence items are hashable, O(N**2) if not.
          518  +    
          519  +    Peter Bengtsson has a blog post with an empirical comparison of other
          520  +    approaches:
          521  +    http://www.peterbe.com/plog/uniqifiers-benchmark
          522  +
          523  +    If order is not important and the sequence items are hashable then
          524  +    list(set(seq)) is readable and efficient.
          525  +
          526  +    If order is important and the sequence items are hashable generator
          527  +    expressions can be used (in py >= 2.4) (useful for large sequences):
          528  +    seen = set()
          529  +    do_something(x for x in seq if x not in seen or seen.add(x))
          530  +
          531  +    Arguments:
          532  +    seq -- sequence
          533  +    preserve_order -- if not set the order will be arbitrary
          534  +                      Using this option will incur a speed penalty.
          535  +                      (default: False)
          536  +
          537  +    Example showing order preservation:
          538  +
          539  +    >>> uniquify(['a', 'aa', 'b', 'b', 'ccc', 'ccc', 'd'], preserve_order=True)
          540  +    ['a', 'aa', 'b', 'ccc', 'd']
          541  +
          542  +    Example using a sequence of un-hashable items:
          543  +
          544  +    >>> uniquify([['z'], ['x'], ['y'], ['z']], preserve_order=True)
          545  +    [['z'], ['x'], ['y']]
          546  +
          547  +    The sorted output or the non-order-preserving approach should equal
          548  +    that of the sorted order-preserving approach output:
          549  +    
          550  +    >>> unordered = uniquify([3, 3, 1, 2], preserve_order=False)
          551  +    >>> unordered.sort()
          552  +    >>> ordered = uniquify([3, 3, 1, 2], preserve_order=True)
          553  +    >>> ordered.sort()
          554  +    >>> ordered
          555  +    [1, 2, 3]
          556  +    >>> int(ordered == unordered)
          557  +    1
          558  +
          559  +    """
          560  +    try:
          561  +        # Attempt fast algorithm.
          562  +        d = {}
          563  +        if preserve_order:
          564  +            # This is based on Dave Kirby's method (f8) noted in the post:
          565  +            # http://www.peterbe.com/plog/uniqifiers-benchmark
          566  +            return [x for x in seq if (x not in d) and not d.__setitem__(x, 0)]
          567  +        else:
          568  +            for x in seq:
          569  +                d[x] = 0
          570  +            return d.keys()
          571  +    except TypeError:
          572  +        # Have an unhashable object, so use slow algorithm.
          573  +        result = []
          574  +        app = result.append
          575  +        for x in seq:
          576  +            if x not in result:
          577  +                app(x)
          578  +        return result
          579  +
          580  +# Alias to noun form for backward compatibility.
          581  +unique = uniquify
          582  +
          583  +
          584  +def reverse_dict(d):
          585  +    """Reverse a dictionary so the items become the keys and vice-versa.
          586  +
          587  +    Note: The results will be arbitrary if the items are not unique.
          588  +
          589  +    >>> d = reverse_dict({'a': 1, 'b': 2})
          590  +    >>> d_items = d.items()
          591  +    >>> d_items.sort()
          592  +    >>> d_items
          593  +    [(1, 'a'), (2, 'b')]
          594  +
          595  +    """
          596  +    result = {}
          597  +    for key, value in d.items():
          598  +        result[value] = key
          599  +    return result
          600  +
          601  +    
          602  +def lsb(x, n):
          603  +    """Return the n least significant bits of x.
          604  +
          605  +    >>> lsb(13, 3)
          606  +    5
          607  +
          608  +    """
          609  +    return x & ((2 ** n) - 1)
          610  +
          611  +
          612  +def gray_encode(i):
          613  +    """Gray encode the given integer."""
          614  +
          615  +    return i ^ (i >> 1)
          616  +
          617  +
          618  +def random_vec(bits, max_value=None):
          619  +    """Generate a random binary vector of length bits and given max value."""
          620  +
          621  +    vector = ""
          622  +    for _ in range(int(bits / 10) + 1):
          623  +        i = int((2**10) * random.random())
          624  +        vector += int2bin(i, 10)
          625  +
          626  +    if max_value and (max_value < 2 ** bits - 1):
          627  +        vector = int2bin((int(vector, 2) / (2 ** bits - 1)) * max_value, bits)
          628  +    
          629  +    return vector[0:bits]
          630  +
          631  +
          632  +def binary_range(bits):
          633  +    """Return a list of all possible binary numbers in order with width=bits. 
          634  +    
          635  +    It would be nice to extend it to match the
          636  +    functionality of python's range() built-in function.
          637  +    
          638  +    """
          639  +    l = []
          640  +    v = ['0'] * bits
          641  +
          642  +    toggle = [1] + [0] * bits
          643  +    
          644  +    while toggle[bits] != 1:
          645  +        v_copy = v[:]
          646  +        v_copy.reverse()
          647  +        l.append(''.join(v_copy))
          648  +        
          649  +        toggle = [1] + [0]*bits
          650  +        i = 0
          651  +        while i < bits and toggle[i] == 1:
          652  +            if toggle[i]:
          653  +                if v[i] == '0':
          654  +                    v[i] = '1'
          655  +                    toggle[i+1] = 0
          656  +                else:
          657  +                    v[i] = '0'
          658  +                    toggle[i+1] = 1
          659  +            i += 1
          660  +    return l
          661  +
          662  +
          663  +def float_range(start, stop=None, step=None):
          664  +    """Return a list containing an arithmetic progression of floats.
          665  +
          666  +    Return a list of floats between 0.0 (or start) and stop with an
          667  +    increment of step. 
          668  +
          669  +    This is in functionality to python's range() built-in function 
          670  +    but can accept float increments.
          671  +
          672  +    As with range(), stop is omitted from the list.
          673  +
          674  +    """
          675  +    if stop is None:
          676  +        stop = float(start)
          677  +        start = 0.0
          678  +
          679  +    if step is None:
          680  +        step = 1.0
          681  +
          682  +    cur = float(start)
          683  +    l = []
          684  +    while cur < stop:
          685  +        l.append(cur)
          686  +        cur += step
          687  +
          688  +    return l
          689  +
          690  +
          691  +def find_common_fixes(s1, s2):
          692  +    """Find common (prefix, suffix) of two strings.
          693  +
          694  +    >>> find_common_fixes('abc', 'def')
          695  +    ('', '')
          696  +
          697  +    >>> find_common_fixes('abcelephantdef', 'abccowdef')
          698  +    ('abc', 'def')
          699  +
          700  +    >>> find_common_fixes('abcelephantdef', 'abccow')
          701  +    ('abc', '')
          702  +
          703  +    >>> find_common_fixes('elephantdef', 'abccowdef')
          704  +    ('', 'def')
          705  +
          706  +    """
          707  +    prefix = []
          708  +    suffix = []
          709  +
          710  +    i = 0
          711  +    common_len = min(len(s1), len(s2))
          712  +    while i < common_len:
          713  +        if s1[i] != s2[i]:
          714  +            break
          715  +
          716  +        prefix.append(s1[i])
          717  +        i += 1
          718  +
          719  +    i = 1
          720  +    while i < (common_len + 1):
          721  +        if s1[-i] != s2[-i]:
          722  +            break
          723  +        
          724  +        suffix.append(s1[-i])
          725  +        i += 1
          726  +
          727  +    suffix.reverse()
          728  +
          729  +    prefix = ''.join(prefix)
          730  +    suffix = ''.join(suffix)
          731  +        
          732  +    return (prefix, suffix)
          733  +
          734  +
          735  +def is_rotated(seq1, seq2):
          736  +    """Return true if the first sequence is a rotation of the second sequence.
          737  +
          738  +    >>> seq1 = ['A', 'B', 'C', 'D']
          739  +    >>> seq2 = ['C', 'D', 'A', 'B']
          740  +    >>> int(is_rotated(seq1, seq2))
          741  +    1
          742  +
          743  +    >>> seq2 = ['C', 'D', 'B', 'A']
          744  +    >>> int(is_rotated(seq1, seq2))
          745  +    0
          746  +
          747  +    >>> seq1 = ['A', 'B', 'C', 'A']
          748  +    >>> seq2 = ['A', 'A', 'B', 'C']
          749  +    >>> int(is_rotated(seq1, seq2))
          750  +    1
          751  +
          752  +    >>> seq2 = ['A', 'B', 'C', 'A']
          753  +    >>> int(is_rotated(seq1, seq2))
          754  +    1
          755  +
          756  +    >>> seq2 = ['A', 'A', 'C', 'B']
          757  +    >>> int(is_rotated(seq1, seq2))
          758  +    0
          759  +
          760  +    """
          761  +    # Do a sanity check.
          762  +    if len(seq1) != len(seq2):
          763  +        return False
          764  +    # Look for occurrences of second sequence head item in first sequence.
          765  +    start_indexes = []
          766  +    head_item = seq2[0]
          767  +    for index1 in range(len(seq1)):
          768  +        if seq1[index1] == head_item:
          769  +            start_indexes.append(index1)
          770  +    # Check that wrapped sequence matches.
          771  +    double_seq1 = seq1 + seq1
          772  +    for index1 in start_indexes:
          773  +        if double_seq1[index1:index1+len(seq1)] == seq2:
          774  +            return True
          775  +    return False
          776  +
          777  +def getmodule(obj):
          778  +    """Return the module that contains the object definition of obj.
          779  +
          780  +    Note: Use inspect.getmodule instead.
          781  +
          782  +    Arguments:
          783  +    obj -- python obj, generally a class or a function
          784  +
          785  +    Examples:
          786  +    
          787  +    A function:
          788  +    >>> module = getmodule(random.choice)
          789  +    >>> module.__name__
          790  +    'random'
          791  +    >>> module is random
          792  +    1
          793  +
          794  +    A class:
          795  +    >>> module = getmodule(random.Random)
          796  +    >>> module.__name__
          797  +    'random'
          798  +    >>> module is random
          799  +    1
          800  +
          801  +    A class inheriting from a class in another module:
          802  +    (note: The inheriting class must define at least one function.)
          803  +    >>> class MyRandom(random.Random):
          804  +    ...     def play(self):
          805  +    ...         pass
          806  +    >>> module = getmodule(MyRandom)
          807  +    >>> if __name__ == '__main__':
          808  +    ...     name = 'rad_util'
          809  +    ... else:
          810  +    ...     name = module.__name__
          811  +    >>> name
          812  +    'rad_util'
          813  +    >>> module is sys.modules[__name__]
          814  +    1
          815  +
          816  +    Discussion:
          817  +    This approach is slightly hackish, and won't work in various situations.
          818  +    However, this was the approach recommended by GvR, so it's as good as
          819  +    you'll get.
          820  +
          821  +    See GvR's post in this thread:
          822  +    http://groups.google.com.au/group/comp.lang.python/browse_thread/thread/966a7bdee07e3b34/c3cab3f41ea84236?lnk=st&q=python+determine+class+module&rnum=4&hl=en#c3cab3f41ea84236
          823  +    
          824  +    """
          825  +    if hasattr(obj, 'func_globals'):
          826  +        func = obj
          827  +    else:
          828  +        # Handle classes.
          829  +        func = None
          830  +        for item in obj.__dict__.values():
          831  +            if hasattr(item, 'func_globals'):
          832  +                func = item
          833  +                break
          834  +        if func is None:
          835  +            raise ValueError("No functions attached to object: %r" % obj)
          836  +    module_name = func.func_globals['__name__']
          837  +    # Get module.
          838  +    module = sys.modules[module_name]
          839  +    return module
          840  +
          841  +
          842  +def round_grid(value, grid, mode=0):
          843  +    """Round off the given value to the given grid size.
          844  +
          845  +    Arguments:
          846  +    value -- value to be roudne
          847  +    grid -- result must be a multiple of this
          848  +    mode -- 0 nearest, 1 up, -1 down
          849  +
          850  +    Examples:
          851  +    
          852  +    >>> round_grid(7.5, 5)
          853  +    10
          854  +
          855  +    >>> round_grid(7.5, 5, mode=-1)
          856  +    5
          857  +
          858  +    >>> round_grid(7.3, 5, mode=1)
          859  +    10
          860  +
          861  +    >>> round_grid(7.3, 5.0, mode=1)
          862  +    10.0
          863  +
          864  +    """
          865  +    off_grid = value % grid
          866  +    if mode == 0:
          867  +        add_one = int(off_grid >= (grid / 2.0))
          868  +    elif mode == 1 and off_grid:
          869  +        add_one = 1
          870  +    elif mode == -1 and off_grid:
          871  +        add_one = 0
          872  +    result = ((int(value / grid) + add_one) * grid)
          873  +    return result
          874  +
          875  +
          876  +def get_args(argv):
          877  +    """Store command-line args in a dictionary.
          878  +    
          879  +    -, -- prefixes are removed
          880  +    Items not prefixed with - or -- are stored as a list, indexed by 'args'
          881  +
          882  +    For options that take a value use --option=value
          883  +
          884  +    Consider using optparse or getopt (in Python standard library) instead.
          885  +
          886  +    """
          887  +    d = {}
          888  +    args = []
          889  +    
          890  +    for arg in argv:
          891  +            
          892  +        if arg.startswith('-'):
          893  +            parts = re.sub(r'^-+', '', arg).split('=')
          894  +            if len(parts) == 2:
          895  +                d[parts[0]] = parts[1]
          896  +            else:
          897  +                d[parts[0]] = None
          898  +        else:
          899  +            args.append(arg)
          900  +
          901  +    d['args'] = args
          902  +    
          903  +    return d
          904  +
          905  +
          906  +if __name__ == '__main__':
          907  +    import doctest
          908  +    doctest.testmod(sys.modules['__main__'])
          909  +

Added score.yaml version [29fd4ba47c].

            1  +---
            2  +chorus:
            3  +    core:
            4  +        rhythm:
            5  +            csound_line: i1 %(time)f %(duration)f 7000 %(octave)d.%(note)s %(octave)d.%(note)s 0 6
            6  +            max_duration: 80
            7  +            sync: timbre
            8  +            octave: 7
            9  +            sustain: 1
           10  +            grammars:
           11  +                u: 
           12  +                    - (I) (ii)/4 (ii)/4 (IV)/2 (V)2 (IV) (ii) x u
           13  +                    - (I) (vii) (III) y u
           14  +                    - (I) (v) (IV) u u
           15  +                w: (i) (VII)2 (VI)/4 (V)/4 (i)/4 (VII)2 (VI) (V) w u
           16  +                x: (III/2) (VI)/2 (III)/2 (vii)2 (i)2 (V) u
           17  +                y: (I) (vi)2 (IV) (V) y y u
           18  +
           19  +        timbre:
           20  +            csound_line: i3 %(time)f %(duration)f 2000 %(octave)d.%(note)s 2 3 5 3
           21  +            max_duration: 80
           22  +            sync: melody
           23  +            sustain: 1
           24  +            octave: 6
           25  +            grammars:
           26  +                u: 
           27  +                    - I2+ VII2 V2 VI2 I2 IV/2 V/2 III2 u
           28  +                    - I2- IV2 V2 IV I V2 III2 II2. u
           29  +
           30  +        melody:
           31  +            csound_line: i2 %(time)f %(duration)f 7000 %(octave)d.%(note)s 2
           32  +            max_duration: 80
           33  +            octave: 8
           34  +            grammars: 
           35  +                u: 
           36  +                    - I V/2 V/2 V/2 I VII
           37  +                    - IV' I IV I VII IV
           38  +                w: III/4 VI/4 II/4 V/4 VI/4 IV/4 VII2
           39  +                x: I/2 I/2 VI IV/2 V2 z I/2 I/2 VI IV/2 V

Added test.sco version [e27e42951e].

            1  +f1 0 512 10 1
            2  +f2 0 8192 10 .24 .64 .88 .76 .06 .5 .34 .08
            3  +f3 0 1025 10 1
            4  +t 0 100
            5  +    
            6  +; Section fm_test
            7  +; Subsection intro
            8  +;Instrument melody
            9  +i2 0.000000 1.000000 7000 8.04 2 6 5 1
           10  +i2 1.000000 1.000000 7000 8.04 2 6 5 1
           11  +i2 2.000000 1.000000 7000 8.05 2 6 5 1
           12  +i2 3.000000 1.000000 7000 8.05 2 6 5 1
           13  +i2 4.000000 0.500000 7000 8.07 2 6 5 1
           14  +i2 4.500000 0.500000 7000 8.07 2 6 5 1
           15  +i2 5.000000 3.000000 7000 8.07 2 6 5 1
           16  +; Subsection body
           17  +; Subsection outro

Added todo.org version [510751b73f].

            1  +* Features [4/10]
            2  +- [X] Top-down composition
            3  +- [ ] Coordinate the melody and rhythm
            4  +- [X] Set maximum song length of movement per instrument
            5  +- [ ] Set minimum song length of movement per instrument
            6  +- [ ] Need to support all chord types
            7  +- [X] Doesn't handle rest notes
            8  +- [ ] Handle full ABC BNF (yeah, right, that's gonna happen...)
            9  +- [X] Set instrument octave in score file
           10  +- [ ] Output score to separate file
           11  +- [ ] Support parallel voices - ensure e.g. a certain chord progression is always
           12  +  accompanied by a certain melody
           13  +- [ ] Syncopation
           14  +- [ ] Sustain option for notes (give score notation a sustain symbol, and use it to set how long after the notes's duration to keep holding. With sustain, the next note's start time isn't done by when the current note ends. 
           15  +
           16  +* Bugs [5/6]
           17  +- [X] TLD resets clock for each movement
           18  +- [X] TLD doesn't accept an ordering for the movements
           19  +- [X] Doesn't handle minor chords    
           20  +- [X] Calculated duration is absolute, not relative to BPM
           21  +- [X] Chords don't respect octaves
           22  +- [ ] Whole notes not held for proper duration
           23  +
           24  +* Structure [1/7]    
           25  +- [ ] Chords should be composed of Notes, not ordinary arrays
           26  +- [ ] There should be a Musical_Phrase object that holds phrases (and sets of
           27  +  phrases), and allows them to nest
           28  +- [ ] Does each instrument need a score parameter if the grammars are non-terminating?
           29  +- [ ] Duration should be in beats, not seconds. This ensures movements don't
           30  +  end in the middle of a phrase.
           31  +- [ ] Generate score with proper generation tools, not this string-replace nonsense
           32  +- [X] Store csound score lines with instruments
           33  +- [ ] Upgrade from simple string substitution for the score to something
           34  +  list-based (maybe). Idea is to keep musical phrases intact in the event of a
           35  +  truncation of the score. Also, if done right, no need for retroactive length
           36  +  parsing- a measure is has a specific length, which is known at
           37  +  generation-time, thus solving the length limit problem.

Added topsort.py version [810c677434].

            1  +# topsort - dependency (topological) sorting and cycle finding functions
            2  +# Copyright (C) 2007 RADLogic
            3  +# 
            4  +# This library is free software; you can redistribute it and/or
            5  +# modify it under the terms of the GNU Lesser General Public
            6  +# License as published by the Free Software Foundation; 
            7  +# version 2.1 of the License.
            8  +# 
            9  +# This library is distributed in the hope that it will be useful,
           10  +# but WITHOUT ANY WARRANTY; without even the implied warranty of
           11  +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
           12  +# Lesser General Public License for more details.
           13  +#
           14  +# See http://www.fsf.org/licensing/licenses/lgpl.txt for full license text.
           15  +"""Provide toplogical sorting (i.e. dependency sorting) functions.
           16  +
           17  +The topsort function is based on code posted on Usenet by Tim Peters.
           18  +
           19  +Modifications:
           20  +- added doctests
           21  +- changed some bits to use current Python idioms
           22  +  (listcomp instead of filter, +=/-=, inherit from Exception)
           23  +- added a topsort_levels version that ports items in each dependency level
           24  +  into a sub-list
           25  +- added find_cycles to aid in cycle debugging
           26  +
           27  +Run this module directly to run the doctests (unittests).
           28  +Make sure they all pass before checking in any modifications.
           29  +
           30  +Requires Python >= 2.2
           31  +(For Python 2.2 also requires separate sets.py module)
           32  +
           33  +This requires the rad_util.py module.
           34  +
           35  +"""
           36  +
           37  +# Provide support for Python 2.2*
           38  +from __future__ import generators
           39  +
           40  +__version__ = '$Revision: 0.9 $'
           41  +__date__ = '$Date: 2007/03/27 04:15:26 $'
           42  +__credits__ = '''Tim Peters -- original topsort code
           43  +Tim Wegener -- doctesting, updating to current idioms, topsort_levels,
           44  +               find_cycles
           45  +'''
           46  +
           47  +# Make Python 2.3 sets look like Python 2.4 sets.
           48  +try:
           49  +    set
           50  +except NameError:
           51  +    from sets import Set as set
           52  +
           53  +from rad_util import is_rotated
           54  +
           55  +
           56  +class CycleError(Exception):
           57  +    """Cycle Error"""
           58  +    pass
           59  +
           60  +
           61  +def topsort(pairlist):
           62  +    """Topologically sort a list of (parent, child) pairs.
           63  +
           64  +    Return a list of the elements in dependency order (parent to child order).
           65  +
           66  +    >>> print topsort( [(1,2), (3,4), (5,6), (1,3), (1,5), (1,6), (2,5)] ) 
           67  +    [1, 2, 3, 5, 4, 6]
           68  +
           69  +    >>> print topsort( [(1,2), (1,3), (2,4), (3,4), (5,6), (4,5)] )
           70  +    [1, 2, 3, 4, 5, 6]
           71  +
           72  +    >>> print topsort( [(1,2), (2,3), (3,2)] )
           73  +    Traceback (most recent call last):
           74  +    CycleError: ([1], {2: 1, 3: 1}, {2: [3], 3: [2]})
           75  +    
           76  +    """
           77  +    num_parents = {}  # element -> # of predecessors 
           78  +    children = {}  # element -> list of successors 
           79  +    for parent, child in pairlist: 
           80  +        # Make sure every element is a key in num_parents.
           81  +        if not num_parents.has_key( parent ): 
           82  +            num_parents[parent] = 0 
           83  +        if not num_parents.has_key( child ): 
           84  +            num_parents[child] = 0 
           85  +
           86  +        # Since child has a parent, increment child's num_parents count.
           87  +        num_parents[child] += 1
           88  +
           89  +        # ... and parent gains a child.
           90  +        children.setdefault(parent, []).append(child)
           91  +
           92  +    # Suck up everything without a parent.
           93  +    answer = [x for x in num_parents.keys() if num_parents[x] == 0]
           94  +
           95  +    # For everything in answer, knock down the parent count on its children.
           96  +    # Note that answer grows *in* the loop.
           97  +    for parent in answer: 
           98  +        del num_parents[parent]
           99  +        if children.has_key( parent ): 
          100  +            for child in children[parent]: 
          101  +                num_parents[child] -= 1
          102  +                if num_parents[child] == 0: 
          103  +                    answer.append( child ) 
          104  +            # Following "del" isn't needed; just makes 
          105  +            # CycleError details easier to grasp.
          106  +            del children[parent]
          107  +
          108  +    if num_parents: 
          109  +        # Everything in num_parents has at least one child -> 
          110  +        # there's a cycle.
          111  +        raise CycleError(answer, num_parents, children)
          112  +    return answer 
          113  +
          114  +def topsort_levels(pairlist):
          115  +    """Topologically sort a list of (parent, child) pairs into depth levels.
          116  +
          117  +    This returns a generator. 
          118  +    Turn this into a an iterator using the iter built-in function.
          119  +    (if you iterate over the iterator, each element gets generated when
          120  +    it is asked for, rather than generating the whole list up-front.)
          121  +
          122  +    Each generated element is a list of items at that dependency level.
          123  +
          124  +    >>> dependency_pairs = [(1,2), (3,4), (5,6), (1,3), (1,5), (1,6), (2,5)]
          125  +    >>> for level in iter(topsort_levels( dependency_pairs )):
          126  +    ...    print level
          127  +    [1]
          128  +    [2, 3]
          129  +    [4, 5]
          130  +    [6]
          131  +
          132  +    >>> dependency_pairs = [(1,2), (1,3), (2,4), (3,4), (5,6), (4,5)]
          133  +    >>> for level in iter(topsort_levels( dependency_pairs )):
          134  +    ...    print level
          135  +    [1]
          136  +    [2, 3]
          137  +    [4]
          138  +    [5]
          139  +    [6]
          140  +
          141  +    >>> dependency_pairs = [(1,2), (2,3), (3,4), (4, 3)]
          142  +    >>> try:
          143  +    ...     for level in iter(topsort_levels( dependency_pairs )):
          144  +    ...         print level
          145  +    ... except CycleError, exc:
          146  +    ...     print 'CycleError:', exc
          147  +    [1]
          148  +    [2]
          149  +    CycleError: ({3: 1, 4: 1}, {3: [4], 4: [3]})
          150  +
          151  +
          152  +    The cycle error should look like.
          153  +    CycleError: ({3: 1, 4: 1}, {3: [4], 4: [3]})
          154  +    # todo: Make the doctest more robust (i.e. handle arbitrary dict order).
          155  +
          156  +    """
          157  +    num_parents = {}  # element -> # of predecessors 
          158  +    children = {}  # element -> list of successors 
          159  +    for parent, child in pairlist: 
          160  +        # Make sure every element is a key in num_parents.
          161  +        if not num_parents.has_key( parent ): 
          162  +            num_parents[parent] = 0 
          163  +        if not num_parents.has_key( child ): 
          164  +            num_parents[child] = 0 
          165  +
          166  +        # Since child has a parent, increment child's num_parents count.
          167  +        num_parents[child] += 1
          168  +
          169  +        # ... and parent gains a child.
          170  +        children.setdefault(parent, []).append(child)
          171  +
          172  +    return topsort_levels_core(num_parents, children)
          173  +
          174  +def topsort_levels_core(num_parents, children):
          175  +    """Topologically sort a bunch of interdependent items based on dependency.
          176  +
          177  +    This returns a generator.
          178  +    Turn this into a an iterator using the iter built-in function.
          179  +    (if you iterate over the iterator, each element gets generated when
          180  +    it is asked for, rather than generating the whole list up-front.)
          181  +
          182  +    Each generated element is a list of items at that dependency level.
          183  +
          184  +    >>> list(topsort_levels_core(
          185  +    ...          {1: 0, 2: 1, 3: 1, 4: 1, 5: 2, 6: 2},
          186  +    ...          {1: [2, 3, 5, 6], 2: [5], 3: [4], 4: [], 5: [6]}))
          187  +    [[1], [2, 3], [4, 5], [6]]
          188  +
          189  +    >>> list(topsort_levels_core(
          190  +    ...          {1: 0, 2: 2, 3: 1},
          191  +    ...          {1: [2], 2: [3], 3: [2]}))
          192  +    Traceback (most recent call last):
          193  +    CycleError: ({2: 1, 3: 1}, {2: [3], 3: [2]})
          194  +
          195  +    This function has a more complicated interface than topsort_levels,
          196  +    but is useful if the data is easier to generate in this form.
          197  +
          198  +    Arguments:
          199  +    num_parents -- key: item, value: number of parents (predecessors)
          200  +    children -- key: item, value: list of children (successors)
          201  +
          202  +    """
          203  +    while 1:
          204  +        # Suck up everything without a predecessor.
          205  +        level_parents = [x for x in num_parents.keys() if num_parents[x] == 0]
          206  +
          207  +        if not level_parents:
          208  +            break
          209  +
          210  +        # Offer the next generated item,
          211  +        # which is a list of the items at this dependency level.
          212  +        yield level_parents
          213  +
          214  +        # For everything item in this level,
          215  +        # decrement the parent count,
          216  +        # since we have accounted for its parent.
          217  +        for level_parent in level_parents:
          218  +
          219  +            del num_parents[level_parent]
          220  +
          221  +            if children.has_key(level_parent):
          222  +                for level_parent_child in children[level_parent]:
          223  +                    num_parents[level_parent_child] -= 1
          224  +                del children[level_parent]
          225  +        
          226  +    if num_parents: 
          227  +        # Everything in num_parents has at least one child -> 
          228  +        # there's a cycle.
          229  +        raise CycleError(num_parents, children)
          230  +    else:
          231  +        # This is the end of the generator.
          232  +        raise StopIteration
          233  +
          234  +
          235  +def find_cycles(parent_children):
          236  +    """Yield cycles. Each result is a list of items comprising a cycle.
          237  +
          238  +    Use a 'stack' based approach to find all the cycles.
          239  +    This is a generator, so yields each cycle as it finds it.
          240  +
          241  +    It is implicit that the last item in each cycle list is a parent of the
          242  +    first item (thereby forming a cycle).
          243  +
          244  +    Arguments:
          245  +    parent_children -- parent -> collection of children
          246  +
          247  +    Simplest cycle:
          248  +    >>> cycles = list(find_cycles({'A': ['B'], 'B': ['A']}))
          249  +    >>> len(cycles)
          250  +    1
          251  +    >>> cycle = cycles[0]
          252  +    >>> cycle.sort()
          253  +    >>> print cycle
          254  +    ['A', 'B']
          255  +
          256  +    Simplest cycle with extra baggage at the start and the end:
          257  +    >>> cycles = list(find_cycles(parent_children={'A': ['B'],
          258  +    ...                                            'B': ['C'],
          259  +    ...                                            'C': ['B', 'D'],
          260  +    ...                                            'D': [],
          261  +    ...                                            }))
          262  +    >>> len(cycles)
          263  +    1
          264  +    >>> cycle = cycles[0]
          265  +    >>> cycle.sort()
          266  +    >>> print cycle
          267  +    ['B', 'C']
          268  +
          269  +    Double cycle:
          270  +    >>> cycles = list(find_cycles(parent_children={'A': ['B'],
          271  +    ...                                            'B': ['C1', 'C2'],
          272  +    ...                                            'C1': ['D1'],
          273  +    ...                                            'D1': ['E1'],
          274  +    ...                                            'E1': ['D1'],
          275  +    ...                                            'C2': ['D2'],
          276  +    ...                                            'D2': ['E2'],
          277  +    ...                                            'E2': ['D2'],
          278  +    ...                                            }))
          279  +    >>> len(cycles)
          280  +    2
          281  +    >>> for cycle in cycles:
          282  +    ...     cycle.sort()
          283  +    >>> cycles.sort()
          284  +    >>> cycle1 = cycles[0]
          285  +    >>> cycle1.sort()
          286  +    >>> print cycle1
          287  +    ['D1', 'E1']
          288  +    >>> cycle2 = cycles[1]
          289  +    >>> cycle2.sort()
          290  +    >>> print cycle2
          291  +    ['D2', 'E2']
          292  +
          293  +    Simple cycle with children not specified for one item:
          294  +    # todo: Should this barf instead?
          295  +    >>> cycles = list(find_cycles(parent_children={'A': ['B'],
          296  +    ...                                            'B': ['A'],
          297  +    ...                                            'C': ['D']}))
          298  +    >>> len(cycles)
          299  +    1
          300  +    >>> cycle = cycles[0]
          301  +    >>> cycle.sort()
          302  +    >>> print cycle
          303  +    ['A', 'B']
          304  +
          305  +    Diamond cycle
          306  +    >>> cycles = list(find_cycles(parent_children={'A': ['B1', 'B2'],
          307  +    ...                                            'B1': ['C'],
          308  +    ...                                            'B2': ['C'],
          309  +    ...                                            'C': ['A', 'B1']}))
          310  +    >>> len(cycles)
          311  +    3
          312  +    >>> sorted_cycles = []
          313  +    >>> for cycle in cycles:
          314  +    ...     cycle = list(cycle)
          315  +    ...     cycle.sort()
          316  +    ...     sorted_cycles.append(cycle)
          317  +    >>> sorted_cycles.sort()
          318  +    >>> for cycle in sorted_cycles:
          319  +    ...     print cycle
          320  +    ['A', 'B1', 'C']
          321  +    ['A', 'B2', 'C']
          322  +    ['B1', 'C']
          323  +
          324  +    Hairy case (order can matter if something is wrong):
          325  +    (Note order of B and C in the list.)
          326  +    >>> cycles = list(find_cycles(parent_children={
          327  +    ...                                           'TD': ['DD'],
          328  +    ...                                           'TC': ['DC'],
          329  +    ...                                           'DC': ['DQ'],
          330  +    ...                                           'C': ['DQ'],
          331  +    ...                                           'DQ': ['IA', 'TO'],
          332  +    ...                                           'IA': ['A'],
          333  +    ...                                           'A': ['B', 'C'],
          334  +    ...                                           }))
          335  +    >>> len(cycles)
          336  +    1
          337  +    >>> cycle = cycles[0]
          338  +    >>> cycle.sort()
          339  +    >>> print cycle
          340  +    ['A', 'C', 'DQ', 'IA']
          341  +
          342  +    """
          343  +    cycles = []
          344  +    visited_nodes = set()
          345  +
          346  +    for parent in parent_children:
          347  +        if parent in visited_nodes:
          348  +            # This node is part of a path that has already been traversed.
          349  +            continue
          350  +
          351  +        paths = [[parent]]
          352  +        while paths:
          353  +            path = paths.pop()
          354  +
          355  +            parent = path[-1]
          356  +            
          357  +            try:
          358  +                children = parent_children[parent]
          359  +            except KeyError:
          360  +                continue
          361  +
          362  +            for child in children:
          363  +                # Keeping a set of the path nodes, for O(1) lookups at the
          364  +                # expense of more memory and complexity, actually makes speed
          365  +                # worse. (Due to construction of sets.)
          366  +                # This is O(N).
          367  +                if child in path:
          368  +                    # This is a cycle.
          369  +                    cycle = path[path.index(child):]
          370  +                    # Check that this is not a dup cycle.
          371  +                    is_dup = False
          372  +                    for other_cycle in cycles:
          373  +                        if is_rotated(other_cycle, cycle):
          374  +                            is_dup = True
          375  +                            break
          376  +                    if not is_dup:
          377  +                        cycles.append(cycle)
          378  +                        yield cycle
          379  +                else:
          380  +                    # Push this new path onto the 'stack'.
          381  +                    # This is probably the most expensive part of the algorithm
          382  +                    # (a list copy).
          383  +                    paths.append(path + [child])
          384  +                    # Mark the node as visited.
          385  +                    visited_nodes.add(child)
          386  +
          387  +
          388  +if __name__ == '__main__':
          389  +    # Run the doctest tests.
          390  +    import sys
          391  +    import doctest
          392  +    doctest.testmod(sys.modules['__main__'])

Added tree.py version [29c78902c8].

            1  +import pdb
            2  +
            3  +class Tree():
            4  +    def __init__(self, name):
            5  +        self.nodes = []
            6  +        self.name = name
            7  +
            8  +    def traverse_depth_first(self):
            9  +        all_nodes = []
           10  +        for node in self.nodes:
           11  +            if isinstance(node, Node):
           12  +                all_nodes.append(node)
           13  +            elif isinstance(node, Tree):
           14  +#                pdb.set_trace()
           15  +                all_nodes.extend(node.traverse_depth_first())
           16  +        return all_nodes
           17  +
           18  +    def __str__(self):
           19  +        return str(self.__unicode__())
           20  +    def __unicode__(self):
           21  +        return self.nodes
           22  +
           23  +
           24  +class Node():
           25  +    def __init__(self, parent, data):
           26  +        self.parent = parent
           27  +        self.data = data
           28  +
           29  +    def __str__(self):
           30  +        return str(self.__unicode__())
           31  +    def __unicode__(self):
           32  +        return self.data