ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’basic’’’’’’’’’’(5@‹’’’’’č’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’basic handbuch.1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’œš’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŅQa€ė’’52’’’’6M’’’’a€’’’’’’’’’’’’’’€’<’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’Į€’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’!’’’’’’’’’’’’’’’’’’’’’ #off ("u")# ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #off("b")# ’’’’’’’’’’q’!’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’?’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #off("b")# ’’’’’’’’’’‚’L’’’’’’’’’’’’’’’’’’’q‚’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‚’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‚’M’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’1ƒ’’’’’’’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’Qƒ’?’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’Inhalt ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ƒ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńƒ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A„’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘„’?’’’’’’’’’’’’’’’’’’’į„’?’’’’’’’’’’’’’’’’’’’1…’@’’’’’’’’’’’’’’’’’’’…’@’’’’’’’’’’’’’’’’’’’х’@’’’’’’’’’’’’’’’’’’’!†’@’’’’’’’’’’’’’’’’’’’q†’@’’’’’’’’’’’’’’’’’’’Į†’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‡’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‡’@’’’’’’’’’’’’’’’’’’’ˆ’@’’’’’’’’’’’’’’’’’’’Qˆ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ˆ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńˆ’@’’’’’’’’’’’’’’’’’’’A‰’.’’’’’’’’’’’’’’’’’’’q‰’@’’’’’’’’’’’’’’’’’’’Į‰’@’’’’’’’’’’’’’’’’’’’Š’.’’’’’’’’’’’’’’’’’’’AŠ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Š’@’’’’’’’’’’’’’’’’’’’ኒ@’’’’’’’’’’’’’’’’’’’1‹’@’’’’’’’’’’’’’’’’’’’‹’@’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ы’’’’’’’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’ń‹’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŒ’O’’’’’’’’’’’’’’’’’’’±Œ’N’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’Q’M’’’’’’’’’’’’’’’’’’’’’machen. ’’’’’’’’’’’’’”’M’’’’’’’’’’’’’’’’’’’ń’Q’’’’’’’’’’’’’’’’’’’QŽ’N’’’’’’’’’’’’’’’’’’’”Ž’6’’’’’’’’’’’’’’’’’’’įŽ’I’’’’’’’’’’’’’’’’’’’1’O’’’’’’’’’’’’’’’’’’’‘’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’J’’’’’’’’’’’’’’’’’’’1’M’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’ᐒG’’’’’’’’’’’’’’’’’’’1‘’O’’’’’’’’’’’’’’’’’’’‘‘’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‘’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’a’’O’’’’’’’’’’’’’’’’’’’Į’’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’1“’F’’’’’’’’’’’’’’’’’’’“’Q’’’’’’’’’’’’’’’’’’’į“’?’’’’’’’’’’’’’’’’’’’1”’R’’’’’’’’’’’’’’’’’’’‘”’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į”’M’’’’’’’’’’’’’’’’’’’1•’E’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’‘•’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end#’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į•’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!–’F’’’’’’’’’’’’’’’’’’’q–’ ’’’’’’’’’’’’’’’’’’’”–’^’’’’’’’’’’’’’’’’’’’—’&’’’’’’’’’’’’’’’’’’’1—’P’’’’’’’’’’’’’’’’’’’‘—’O’’’’’’’’’’’’’’’’’’’ń—’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!˜’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a˜’M’’’’’’’’’’’’’’’’’’’±˜’Q’’’’’’’’’’’’’’’’’’’™’S’’’’’’’’’’’’’’’’’’’q™’R’’’’’’’’’’’’’’’’’’’љ’T’’’’’’’’’’’’’’’’’’’1š’O’’’’’’’’’’’’’’’’’’’‘š’K’’’’’’’’’’’’’’’’’’’’’ entnehmen. ’’’’’’’’’’ᚒL’’’’’’’’’’’’’’’’’’’1›’N’’’’’’’’’’’’’’’’’’’›’$’’’’’’’’’’’’’’’’’’’±›’H’’’’’’’’’’’’’’’’’’’œ’&’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’1œ’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’œ’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ќ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’Q’N’’’’’’’’’’’’’’’’’’’”’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ž’,’’’’’’’’’’’’’’’’’’’Qž’L’’’’’’’’’’’’’’’’’’’”ž’O’’’’’’’’’’’’’’’’’’’Ÿ’J’’’’’’’’’’’’’’’’’’’’’ Ūbersetzt. ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŸ’F’’’’’’’’’’’’’’’’’’’”Ÿ’H’’’’’’’’’’’’’’’’’’’ńŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A ’H’’’’’’’’’’’’’’’’’’’‘ ’M’’’’’’’’’’’’’’’’’’’į ’&’’’’’’’’’’’’’’’’’’’”’N’’’’’’’’’’’’’’’’’’’’’rufen: ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a”’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’””’P’’’’’’’’’’’’’’’’’’’¢’?’’’’’’’’’’’’’’’’’’’Q¢’O’’’’’’’’’’’’’’’’’’’±¢’,’’’’’’’’’’’’’’’’’’’ᢒY’’’’’’’’’’’’’’’’’’’A£’V’’’’’’’’’’’’’’’’’’’”£’R’’’’’’’’’’’’’’’’’’’¤’L’’’’’’’’’’’’’’’’’’’Q¤’J’’’’’’’’’’’’’’’’’’’”¤’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’xponent:’’’’’’’’Ņ’C’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’² ’%’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ digit found:’’’’’’’’’" ’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’Ņ ’C’’’’’’’’’’’’’’’’’’’" ’'’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’D’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’ ’)’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’I’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā ’ ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’5’’’’’’’’’’’’’’’’’’’r ’ ’’’’’’’’’’’’’’’’’’’¢ ’-’’’’’’’’’’’’’’’’’’’Ņ ’’’’’’’’’’’’’’’’’’’’ņ ’8’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’%’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ IF is error’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FALSE’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’ TRUE’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ IF is error’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ FALSE’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’*’’’’’’’’’’’’’’’’’’’ā’"’’’’’’’’’’’’’’’’’’’’’ TRUE’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’;’’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’W’’’’’’’’’’’’’’’’’’’b’W’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’:’’’’’’’’’’’’’’’’’’’"’K’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’ā’6’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ listing’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’L’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚’L’’’’’’’’’’’’’’’’’’’’’ scope’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’b’L’’’’’’’’’’’’’’’’’’’²’'’’’’’’’’’’’’’’’’’’’ā’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ LET nil = "";’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b’M’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’M’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ col (f, 1);’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’<’’’’’’’’’’’’’’’’’’’¢’&’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’M’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’2’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’M’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’b’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’+’’’’’’’’’’’’’’’’’’’¢’"’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’B’@’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’M’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’K’’’’’’’’’’’’’’’’’’’¢’&’’’’’’’’’’’’’’’’’’’Ņ’'’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’@’’’’’’’’’’’’’’’’’’’r ’K’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā ’M’’’’’’’’’’’’’’’’’’’2!’E’’’’’’’’’’’’’’’’’’’‚!’E’’’’’’’’’’’’’’’’’’’Ņ!’’’’’’’’’’’’’’’’’’’’ņ!’’’’’’’’’’’’’’’’’’’’"’'’’’’’’’’’’’’’’’’’’’B"’’’’’’’’’’’’’’’’’’’’b"’’’’’’’’’’’’’’’’’’’’r"’’’’’’’’’’’’’’’’’’’’‚"’’’’’’’’’’’’’’’’’’’’¢"’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā"’'’’’’’’’’’’’’’’’’’’’ņ"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2#’)’’’’’’’’’’’’’’’’’’’b#’’’’’’’’’’’’’’’’’’’’‚#’)’’’’’’’’’’’’’’’’’’’²#’&’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ 0’’’’’’’’’’’’’’’’’’ā#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’$’'’’’’’’’’’’’’’’’’’’’2$’’’’’’’’’’’’’’’’’’’’R$’)’’’’’’’’’’’’’’’’’’’‚$’$’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’²$’L’’’’’’’’’’’’’’’’’’’’’ 0’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"%’0’’’’’’’’’’’’’’’’’’’b%’’’’’’’’’’’’’’’’’’’’‚%’’’’’’’’’’’’’’’’’’’’¢%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā%’M’’’’’’’’’’’’’’’’’’’2&’M’’’’’’’’’’’’’’’’’’’‚&’&’’’’’’’’’’’’’’’’’’’²&’'’’’’’’’’’’’’’’’’’’’ā&’+’’’’’’’’’’’’’’’’’’’'’'’’’’’’’’’’’’’’’’’’’B'’1’’’’’’’’’’’’’’’’’’’‚'’.’’’’’’’’’’’’’’’’’’’²'’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’(’ ’’’’’’’’’’’’’’’’’’’2(’"’’’’’’’’’’’’’’’’’’’b(’’’’’’’’’’’’’’’’’’’’‚(’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā(’’’’’’’’’’’’’’’’’’’’ā(’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’")’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B)’M’’’’’’’’’’’’’’’’’’’’)’/’’’’’’’’’’’’’’’’’’’Ņ)’'’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’"*’’’’’’’’’’’’’’’’’’’’B*’%’’’’’’’’’’’’’’’’’’’’’ loc adr .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’²*’’’’’’’’’’’’’’’’’’’’Ņ*’’’’’’’’’’’’’’’’’’’’+’'’’’’’’’’’’’’’’’’’’’’’ loc adr .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R+’’’’’’’’’’’’’’’’’’’’’’ loc adr’’’’’’’’’’’r+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’’²+’(’’’’’’’’’’’’’’’’’’’ā+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’,’&’’’’’’’’’’’’’’’’’’’2,’)’’’’’’’’’’’’’’’’’’’’’ THEN 1’’’’’’’’’’’’b,’’’’’’’’’’’’’’’’’’’’’’ THEN 2’’’’’’’’’’’’‚,’’’’’’’’’’’’’’’’’’’’’’ THEN 4’’’’’’’’’’’’¢,’’’’’’’’’’’’’’’’’’’’’’ THEN 8’’’’’’’’’’’’Ā,’’’’’’’’’’’’’’’’’’’’ā,’’’’’’’’’’’’’’’’’’’’-’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r-’’’’’’’’’’’’’’’’’’’’’’ quiet value’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ-’L’’’’’’’’’’’’’’’’’’’".’L’’’’’’’’’’’’’’’’’’’r.’$’’’’’’’’’’’’’’’’’’’¢.’.’’’’’’’’’’’’’’’’’’’Ņ.’$’’’’’’’’’’’’’’’’’’’/’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ LET nil = "";’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R/’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā/’’’’’’’’’’’’’’’’’’’’ā/’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’’"0’’’’’’’’’’’’’’’’’’’’B0’’’’’’’’’’’’’’’’’’’’b0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚0’=’’’’’’’’’’’’’’’’’’’Ā0’.’’’’’’’’’’’’’’’’’’’ņ0’’’’’’’’’’’’’’’’’’’’"1’’’’’’’’’’’’’’’’’’’’B1’’’’’’’’’’’’’’’’’’’’b1’’’’’’’’’’’’’’’’’’’’‚1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Ѥ’’’’’’’’’’’’’’’’’’’’ᤒL’’’’’’’’’’’’’’’’’’’1„’0’’’’’’’’’’’’’’’’’’’q„’I’’’’’’’’’’’’’’’’’’’Į„’Q’’’’’’’’’’’’’’’’’’’!¦’R’’’’’’’’’’’’’’’’’’’¦’P’’’’’’’’’’’’’’’’’’’ᦒH’’’’’’’’’’’’’’’’’’’1§’S’’’’’’’’’’’’’’’’’’’‘§’!’’’’’’’’’’’’’’’’’’’Į§’R’’’’’’’’’’’’’’’’’’’!Ø’O’’’’’’’’’’’’’’’’’’’Ø’S’’’’’’’’’’’’’’’’’’’ᨒ’’’’’’’’’’’’’’’’’’’©’O’’’’’’’’’’’’’’’’’’’’’ #off ("b")# ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a©’*’’’’’’’’’’’’’’’’’’’’’ Compilierens ’’’’’’’’‘©’_’’’’’’’’’’’’’’’’’’’Ŗ’Z’’’’’’’’’’’’’’’’’’’aŖ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ŗ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŖ’\’’’’’’’’’’’’’’’’’’’1«’Q’’’’’’’’’’’’’’’’’’’‘«’P’’’’’’’’’’’’’’’’’’’ń«’R’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¬’L’’’’’’’’’’’’’’’’’’’”¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’Į¬’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’­’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A­’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q­’B’’’’’’’’’’’’’’’’’’’Į­’Y’’’’’’’’’’’’’’’’’’’!®’O’’’’’’’’’’’’’’’’’’’®’#’’’’’’’’’’’’’’’’’’’±®’L’’’’’’’’’’’’’’’’’’’Æ’^’’’’’’’’’’’’’’’’’’’aÆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÆ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Æ’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÆ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1°’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q°’[’’’’’’’’’’’’’’’’’’’Ѱ’P’’’’’’’’’’’’’’’’’’’1±’Q’’’’’’’’’’’’’’’’’’’‘±’P’’’’’’’’’’’’’’’’’’’ń±’\’’’’’’’’’’’’’’’’’’’Q²’N’’’’’’’’’’’’’’’’’’’”²’L’’’’’’’’’’’’’’’’’’’ń²’’’’’’’’’’’’’’’’’’’’³’N’’’’’’’’’’’’’’’’’’’a³’Q’’’’’’’’’’’’’’’’’’’Į³’K’’’’’’’’’’’’’’’’’’’“’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q“’G’’’’’’’’’’’’’’’’’’’’’kŚnnte: ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į“’B’’’’’’’’’’’’’’’’’’’µ’#’’’’’’’’’’’’’’’’’’’Aµ’’’’’’’’’’’’’’’’’’’’’’ PRINT ’’’’’’’’’’aµ’’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’”µ’ ’’’’’’’’’’’’’’’’’’’ѵ’+’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’!¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¶’I’’’’’’’’’’’’’’’’’’’¶’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¶’X’’’’’’’’’’’’’’’’’’’!·’G’’’’’’’’’’’’’’’’’’’q·’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į·’_’’’’’’’’’’’’’’’’’’’1ø’.’’’’’’’’’’’’’’’’’’’aø’]’’’’’’’’’’’’’’’’’’’Įø’M’’’’’’’’’’’’’’’’’’’¹’<’’’’’’’’’’’’’’’’’’’Q¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¹’P’’’’’’’’’’’’’’’’’’’ѹ’h’’’’’’’’’’’’’’’’’’’Aŗ’P’’’’’’’’’’’’’’’’’’’”ŗ’S’’’’’’’’’’’’’’’’’’’»’U’’’’’’’’’’’’’’’’’’’a»’d’’’’’’’’’’’’’’’’’’’Ń»’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¼’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’A¼’2’’’’’’’’’’’’’’’’’’’¼’N’’’’’’’’’’’’’’’’’’’Ѽ’O’’’’’’’’’’’’’’’’’’’1½’h’’’’’’’’’’’’’’’’’’’”½’P’’’’’’’’’’’’’’’’’’’¾’S’’’’’’’’’’’’’’’’’’’a¾’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Į¾’/’’’’’’’’’’’’’’’’’’’æ’c’’’’’’’’’’’’’’’’’’’qæ’P’’’’’’’’’’’’’’’’’’’Ńæ’S’’’’’’’’’’’’’’’’’’’1Ą’’’’’’’’’’’’’’’’’’’’ĮĄ’N’’’’’’’’’’’’’’’’’’’Į’N’’’’’’’’’’’’’’’’’’’aĮ’6’’’’’’’’’’’’’’’’’’’”Į’’’’’’’’’’’’’’’’’’’’ĮĮ’N’’’’’’’’’’’’’’’’’’’Ā’3’’’’’’’’’’’’’’’’’’’QĀ’7’’’’’’’’’’’’’’’’’’’‘Ā’#’’’’’’’’’’’’’’’’’’’ĮĀ’Q’’’’’’’’’’’’’’’’’’’!Ć’O’’’’’’’’’’’’’’’’’’’Ć’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’±Ć’O’’’’’’’’’’’’’’’’’’’Ä’O’’’’’’’’’’’’’’’’’’’qÄ’Y’’’’’’’’’’’’’’’’’’’ŃÄ’P’’’’’’’’’’’’’’’’’’’1Å’4’’’’’’’’’’’’’’’’’’’qÅ’Q’’’’’’’’’’’’’’’’’’’ŃÅ’R’’’’’’’’’’’’’’’’’’’1Ę’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’aĘ’=’’’’’’’’’’’’’’’’’’’”Ę’M’’’’’’’’’’’’’’’’’’’ńĘ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĒ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ē’I’’’’’’’’’’’’’’’’’’’ŃĒ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’!Č’(’’’’’’’’’’’’’’’’’’’QČ’S’’’’’’’’’’’’’’’’’’’’’sein. ’’’’’’’’’’’’’’’±Č’V’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’’’ "2.32 DM" ’’’’’’’’’1É’’’’’’’’’’’’’’’’’’’’QÉ’^’’’’’’’’’’’’’’’’’’’’’kommen. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±É’k’’’’’’’’’’’’’’’’’’’!Ź’^’’’’’’’’’’’’’’’’’’’Ź’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’±Ź’'’’’’’’’’’’’’’’’’’’’įŹ’M’’’’’’’’’’’’’’’’’’’1Ė’c’’’’’’’’’’’’’’’’’’’”Ė’A’’’’’’’’’’’’’’’’’’’ńĖ’P’’’’’’’’’’’’’’’’’’’QĢ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’”Ģ’(’’’’’’’’’’’’’’’’’’’ŃĢ’<’’’’’’’’’’’’’’’’’’’Ķ’%’’’’’’’’’’’’’’’’’’’AĶ’R’’’’’’’’’’’’’’’’’’’”Ķ’A’’’’’’’’’’’’’’’’’’’ńĶ’K’’’’’’’’’’’’’’’’’’’AĪ’a’’’’’’’’’’’’’’’’’’’±Ī’+’’’’’’’’’’’’’’’’’’’įĪ’N’’’’’’’’’’’’’’’’’’’1Ļ’s’’’’’’’’’’’’’’’’’’’±Ļ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĻ’,’’’’’’’’’’’’’’’’’’’’’ 0. ’’’’’’’’’’’’’’’’’’ .01 ’’’’’’’’’’’’’’’’’ 1E-17 ’’’’’’’’’’’’’’’ 2.9979D8 ’’’’’’’’’’’’ .3e-102 ’’’’’’’’’’’’’ 100.e+7 ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Š’G’’’’’’’’’’’’’’’’’’’qŠ’-’’’’’’’’’’’’’’’’’’’”Š’"’’’’’’’’’’’’’’’’’’’ŃŠ’1’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’1Ń’$’’’’’’’’’’’’’’’’’’’aŃ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ń’^’’’’’’’’’’’’’’’’’’’ńŃ’I’’’’’’’’’’’’’’’’’’’AŅ’R’’’’’’’’’’’’’’’’’’’”Ņ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŅ’M’’’’’’’’’’’’’’’’’’’AÓ’P’’’’’’’’’’’’’’’’’’’”Ó’H’’’’’’’’’’’’’’’’’’’ńÓ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Variablen ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŌ’P’’’’’’’’’’’’’’’’’’’±Ō’#’’’’’’’’’’’’’’’’’’’įŌ’G’’’’’’’’’’’’’’’’’’’1Õ’7’’’’’’’’’’’’’’’’’’’qÕ’R’’’’’’’’’’’’’’’’’’’ŃÕ’Q’’’’’’’’’’’’’’’’’’’1Ö’-’’’’’’’’’’’’’’’’’’’aÖ’R’’’’’’’’’’’’’’’’’’’’’ tionen). ’’’’’’’’’’ĮÖ’a’’’’’’’’’’’’’’’’’’’1×’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘×’P’’’’’’’’’’’’’’’’’’’ń×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ų’‚’’’’’’’’’’’’’’’’’’’”Ų’"’’’’’’’’’’’’’’’’’’’ŃŲ’K’’’’’’’’’’’’’’’’’’’!Ł’’’’’’’’’’’’’’’’’’’’AŁ’K’’’’’’’’’’’’’’’’’’’‘Ł’O’’’’’’’’’’’’’’’’’’’ńŁ’\’’’’’’’’’’’’’’’’’’’QŚ’P’’’’’’’’’’’’’’’’’’’±Ś’_’’’’’’’’’’’’’’’’’’’!Ū’E’’’’’’’’’’’’’’’’’’’qŪ’N’’’’’’’’’’’’’’’’’’’ĮŪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŪ’P’’’’’’’’’’’’’’’’’’’QÜ’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ü’P’’’’’’’’’’’’’’’’’’’Ż’\’’’’’’’’’’’’’’’’’’’qŻ’J’’’’’’’’’’’’’’’’’’’ĮŻ’0’’’’’’’’’’’’’’’’’’’Ž’^’’’’’’’’’’’’’’’’’’’aŽ’^’’’’’’’’’’’’’’’’’’’ĮŽ’P’’’’’’’’’’’’’’’’’’’!ß’,’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’Qß’S’’’’’’’’’’’’’’’’’’’±ß’P’’’’’’’’’’’’’’’’’’’’’ zugegriffen. ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’Q’’’’’’’’’’’’’’’’’’’qą’R’’’’’’’’’’’’’’’’’’’Ńą’%’’’’’’’’’’’’’’’’’’’į’P’’’’’’’’’’’’’’’’’’’aį’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±į’\’’’’’’’’’’’’’’’’’’’ā’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qā’P’’’’’’’’’’’’’’’’’’’±ā’Q’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qć’J’’’’’’’’’’’’’’’’’’’”ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įć’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ä’M’’’’’’’’’’’’’’’’’’’Qä’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ä’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įä’:’’’’’’’’’’’’’’’’’’’!å’;’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ1’S’’’’’’’’’’’’’’’’’’’22’’’’’’’’’’’’’’’’’’’’R2’#’’’’’’’’’’’’’’’’’’’‚2’,’’’’’’’’’’’’’’’’’’’²2’G’’’’’’’’’’’’’’’’’’’3’6’’’’’’’’’’’’’’’’’’’B3’!’’’’’’’’’’’’’’’’’’’r3’,’’’’’’’’’’’’’’’’’’’¢3’’’’’’’’’’’’’’’’’’’’Ā3’’’’’’’’’’’’’’’’’’’’ā3’)’’’’’’’’’’’’’’’’’’’4’L’’’’’’’’’’’’’’’’’’’b4’’’’’’’’’’’’’’’’’’’’‚4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā4’(’’’’’’’’’’’’’’’’’’’ņ4’’’’’’’’’’’’’’’’’’’’5’P’’’’’’’’’’’’’’’’’’’r5’!’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’¢5’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’6’B’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’R6’’’’’’’’’’’’’’’’’’’’r6’’’’’’’’’’’’’’’’’’’’’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ datatype:’’’’’’’’’’’’Ā6’ ’’’’’’’’’’’’’’’’’’’ņ6’’’’’’’’’’’’’’’’’’’’’’ THEN "I"’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’’’ THEN "R"’’’’’’’’’’’27’’’’’’’’’’’’’’’’’’’’’’ THEN "T"’’’’’’’’’’’R7’’’’’’’’’’’’’’’’’’’’’’ THEN "b"’’’’’’’’’’’r7’4’’’’’’’’’’’’’’’’’’’’’ nil’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ7’=’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’8’/’’’’’’’’’’’’’’’’’’’R8’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ this type:’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’²8’’’’’’’’’’’’’’’’’’’’Ņ8’’’’’’’’’’’’’’’’’’’’ņ8’’’’’’’’’’’’’’’’’’’’9’’’’’’’’’’’’’’’’’’’’29’’’’’’’’’’’’’’’’’’’’R9’0’’’’’’’’’’’’’’’’’’’’9’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ9’<’’’’’’’’’’’’’’’’’’’:’’’’’’’’’’’’’’’’’’’’2:’’’’’’’’’’’’’’’’’’’’R:’O’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²:’’’’’’’’’’’’’’’’’’’’Ņ:’’’’’’’’’’’’’’’’’’’’ā:’’’’’’’’’’’’’’’’’’’’;’ ’’’’’’’’’’’’’’’’’’’2;’5’’’’’’’’’’’’’’’’’’’’’ found .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r;’’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’’²;’’’’’’’’’’’’’’’’’’’’Ņ;’!’’’’’’’’’’’’’’’’’’’<’$’’’’’’’’’’’’’’’’’’’2<’’’’’’’’’’’’’’’’’’’’R<’’’’’’’’’’’’’’’’’’’’r<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’²<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ<’’’’’’’’’’’’’’’’’’’’ņ<’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’’2=’’’’’’’’’’’’’’’’’’’’R=’F’’’’’’’’’’’’’’’’’’’¢=’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ=’’’’’’’’’’’’’’’’’’’’ņ=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’’2>’E’’’’’’’’’’’’’’’’’’’‚>’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ next entry:’’’’’’’’’’²>’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ>’!’’’’’’’’’’’’’’’’’’’?’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2?’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R?’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢?’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ?’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’ņ?’’’’’’’’’’’’’’’’’’’’’’ INT VAR k;’’’’’’’’’@’’’’’’’’’’’’’’’’’’’’2@’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚@’’’’’’’’’’’’’’’’’’’’¢@’L’’’’’’’’’’’’’’’’’’’ņ@’K’’’’’’’’’’’’’’’’’’’BA’U’’’’’’’’’’’’’’’’’’’¢A’K’’’’’’’’’’’’’’’’’’’ņA’K’’’’’’’’’’’’’’’’’’’BB’E’’’’’’’’’’’’’’’’’’’’B’&’’’’’’’’’’’’’’’’’’’ĀB’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ftn pos:’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2C’’’’’’’’’’’’’’’’’’’’RC’’’’’’’’’’’’’’’’’’’’rC’’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’²C’4’’’’’’’’’’’’’’’’’’’ņC’4’’’’’’’’’’’’’’’’’’’2D’’’’’’’’’’’’’’’’’’’’RD’’’’’’’’’’’’’’’’’’’’rD’’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’²D’’’’’’’’’’’’’’’’’’’’ŅD’’’’’’’’’’’’’’’’’’’’ņD’’’’’’’’’’’’’’’’’’’’E’4’’’’’’’’’’’’’’’’’’’RE’’’’’’’’’’’’’’’’’’’’rE’’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’’²E’’’’’’’’’’’’’’’’’’’’ŅE’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņE’’’’’’’’’’’’’’’’’’’’F’’’’’’’’’’’’’’’’’’’’2F’’’’’’’’’’’’’’’’’’’’RF’’’’’’’’’’’’’’’’’’’’rF’’’’’’’’’’’’’’’’’’’’’F’3’’’’’’’’’’’’’’’’’’’ŅF’’’’’’’’’’’’’’’’’’’’ņF’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’2G’’’’’’’’’’’’’’’’’’’’RG’’’’’’’’’’’’’’’’’’’’rG’’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’²G’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņG’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’’2H’’’’’’’’’’’’’’’’’’’’RH’’’’’’’’’’’’’’’’’’’’rH’’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’’²H’’’’’’’’’’’’’’’’’’’’ŅH’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’I’’’’’’’’’’’’’’’’’’’’"I’’’’’’’’’’’’’’’’’’’’BI’’’’’’’’’’’’’’’’’’’’bI’’’’’’’’’’’’’’’’’’’’‚I’’’’’’’’’’’’’’’’’’’’²I’’’’’’’’’’’’’’’’’’’’āI’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’’"J’’’’’’’’’’’’’’’’’’’’BJ’’’’’’’’’’’’’’’’’’’’bJ’’’’’’’’’’’’’’’’’’’’‚J’’’’’’’’’’’’’’’’’’’’¢J’’’’’’’’’’’’’’’’’’’’ĀJ’’’’’’’’’’’’’’’’’’’’āJ’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’’"K’M’’’’’’’’’’’’’’’’’’’rK’!’’’’’’’’’’’’’’’’’’’¢K’!’’’’’’’’’’’’’’’’’’’ŅK’’’’’’’’’’’’’’’’’’’’ņK’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’’2L’’’’’’’’’’’’’’’’’’’’RL’’’’’’’’’’’’’’’’’’’’rL’’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’’²L’’’’’’’’’’’’’’’’’’’’ŅL’’’’’’’’’’’’’’’’’’’’ņL’!’’’’’’’’’’’’’’’’’’’"M’ ’’’’’’’’’’’’’’’’’’’RM’ ’’’’’’’’’’’’’’’’’’’‚M’’’’’’’’’’’’’’’’’’’’²M’ ’’’’’’’’’’’’’’’’’’’āM’ ’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’’2N’’’’’’’’’’’’’’’’’’’’RN’’’’’’’’’’’’’’’’’’’’rN’’’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’’ĀN’M’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’2O’’’’’’’’’’’’’’’’’’’’RO’’’’’’’’’’’’’’’’’’’’rO’’’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’²O’’’’’’’’’’’’’’’’’’’’ŅO’’’’’’’’’’’’’’’’’’’’ņO’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’’2P’’’’’’’’’’’’’’’’’’’’RP’’’’’’’’’’’’’’’’’’’’rP’’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’’ĀP’’’’’’’’’’’’’’’’’’’’ņP’M’’’’’’’’’’’’’’’’’’’BQ’’’’’’’’’’’’’’’’’’’’bQ’’’’’’’’’’’’’’’’’’’’‚Q’’’’’’’’’’’’’’’’’’’’¢Q’’’’’’’’’’’’’’’’’’’’ĀQ’’’’’’’’’’’’’’’’’’’’āQ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’"R’’’’’’’’’’’’’’’’’’’’BR’’’’’’’’’’’’’’’’’’’’bR’’’’’’’’’’’’’’’’’’’’‚R’’’’’’’’’’’’’’’’’’’’¢R’’’’’’’’’’’’’’’’’’’’ĀR’"’’’’’’’’’’’’’’’’’’’ņR’"’’’’’’’’’’’’’’’’’’’"S’ ’’’’’’’’’’’’’’’’’’’RS’ ’’’’’’’’’’’’’’’’’’’‚S’ ’’’’’’’’’’’’’’’’’’’²S’ ’’’’’’’’’’’’’’’’’’’āS’ ’’’’’’’’’’’’’’’’’’’T’ ’’’’’’’’’’’’’’’’’’’BT’’’’’’’’’’’’’’’’’’’’bT’’’’’’’’’’’’’’’’’’’’‚T’N’’’’’’’’’’’’’’’’’’’ŅT’$’’’’’’’’’’’’’’’’’’’U’’’’’’’’’’’’’’’’’’’’"U’’’’’’’’’’’’’’’’’’’’BU’’’’’’’’’’’’’’’’’’’’bU’’’’’’’’’’’’’’’’’’’’‚U’’’’’’’’’’’’’’’’’’’’¢U’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĀU’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āU’L’’’’’’’’’’’’’’’’’’’2V’L’’’’’’’’’’’’’’’’’’’‚V’ ’’’’’’’’’’’’’’’’’’’²V’ ’’’’’’’’’’’’’’’’’’’āV’’’’’’’’’’’’’’’’’’’’W’’’’’’’’’’’’’’’’’’’’"W’’’’’’’’’’’’’’’’’’’’BW’’’’’’’’’’’’’’’’’’’’bW’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’W’N’’’’’’’’’’’’’’’’’’’āW’'’’’’’’’’’’’’’’’’’’’X’'’’’’’’’’’’’’’’’’’’’BX’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’rX’’’’’’’’’’’’’’’’’’’’’X’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ INT VAR type;’’’’’’’’²X’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āX’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Y’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"Y’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BY’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚Y’’’’’’’’’’’’’’’’’’’’¢Y’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĀY’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āY’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2Z’'’’’’’’’’’’’’’’’’’’’bZ’’’’’’’’’’’’’’’’’’’’‚Z’’’’’’’’’’’’’’’’’’’’¢Z’'’’’’’’’’’’’’’’’’’’’ŅZ’’’’’’’’’’’’’’’’’’’’ņZ’’’’’’’’’’’’’’’’’’’’[’M’’’’’’’’’’’’’’’’’’’b[’=’’’’’’’’’’’’’’’’’’’¢[’M’’’’’’’’’’’’’’’’’’’ņ[’[’’’’’’’’’’’’’’’’’’’R\’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’r\’W’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aå’:’’’’’’’’’’’’’’’’’’’”å’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įå’:’’’’’’’’’’’’’’’’’’’!ę’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aę’:’’’’’’’’’’’’’’’’’’’”ę’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įę’:’’’’’’’’’’’’’’’’’’’!ē’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aē’$’’’’’’’’’’’’’’’’’’’‘ē’;’’’’’’’’’’’’’’’’’’’Ńē’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’č’$’’’’’’’’’’’’’’’’’’’1č’:’’’’’’’’’’’’’’’’’’’qč’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”č’:’’’’’’’’’’’’’’’’’’’įč’;’’’’’’’’’’’’’’’’’’’!é’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aé’$’’’’’’’’’’’’’’’’’’’‘é’;’’’’’’’’’’’’’’’’’’’Ńé’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’!ź’P’’’’’’’’’’’’’’’’’’’ź’P’’’’’’’’’’’’’’’’’’’įź’*’’’’’’’’’’’’’’’’’’’ė’N’’’’’’’’’’’’’’’’’’’aė’E’’’’’’’’’’’’’’’’’’’±ė’c’’’’’’’’’’’’’’’’’’’!ģ’’’’’’’’’’’’’’’’’’’’Aģ’;’’’’’’’’’’’’’’’’’’’ģ’E’’’’’’’’’’’’’’’’’’’Ńģ’L’’’’’’’’’’’’’’’’’’’!ķ’M’’’’’’’’’’’’’’’’’’’qķ’Q’’’’’’’’’’’’’’’’’’’’’aus. ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńķ’N’’’’’’’’’’’’’’’’’’’!ī’K’’’’’’’’’’’’’’’’’’’qī’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įī’$’’’’’’’’’’’’’’’’’’’ńī’I’’’’’’’’’’’’’’’’’’’Aļ’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ļ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įļ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!š’’’’’’’’’’’’’’’’’’’’Aš’’’’’’’’’’’’’’’’’’’’aš’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’”š’(’’’’’’’’’’’’’’’’’’’Ńš’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’N’’’’’’’’’’’’’’’’’’’Qń’’’’’’’’’’’’’’’’’’’’qń’L’’’’’’’’’’’’’’’’’’’Įń’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’O’’’’’’’’’’’’’’’’’’’aņ’T’’’’’’’’’’’’’’’’’’’Įņ’M’’’’’’’’’’’’’’’’’’’ó’L’’’’’’’’’’’’’’’’’’’aó’’’’’’’’’’’’’’’’’’’’ó’Q’’’’’’’’’’’’’’’’’’’įó’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ō’U’’’’’’’’’’’’’’’’’’’ō’%’’’’’’’’’’’’’’’’’’’±ō’P’’’’’’’’’’’’’’’’’’’õ’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qõ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qõ’'’’’’’’’’’’’’’’’’’’’”õ’.’’’’’’’’’’’’’’’’’’’Ńõ’Z’’’’’’’’’’’’’’’’’’’1ö’.’’’’’’’’’’’’’’’’’’’aö’O’’’’’’’’’’’’’’’’’’’Įö’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńö’R’’’’’’’’’’’’’’’’’’’Q÷’N’’’’’’’’’’’’’’’’’’’”÷’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń÷’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ų’_’’’’’’’’’’’’’’’’’’’‘ų’/’’’’’’’’’’’’’’’’’’’Ńų’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ł’Z’’’’’’’’’’’’’’’’’’’‘ł’?’’’’’’’’’’’’’’’’’’’įł’?’’’’’’’’’’’’’’’’’’’1ś’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ś’Y’’’’’’’’’’’’’’’’’’’įś’?’’’’’’’’’’’’’’’’’’’1ū’?’’’’’’’’’’’’’’’’’’’ū’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńū’Z’’’’’’’’’’’’’’’’’’’1ü’@’’’’’’’’’’’’’’’’’’’ü’@’’’’’’’’’’’’’’’’’’’Ńü’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ż’[’’’’’’’’’’’’’’’’’’’ż’?’’’’’’’’’’’’’’’’’’’Ńż’?’’’’’’’’’’’’’’’’’’’!ž’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qž’[’’’’’’’’’’’’’’’’’’’Ńž’@’’’’’’’’’’’’’’’’’’’!’’?’’’’’’’’’’’’’’’’’’’q’’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’;’’’’’’’’’’’’’’’’’’’Ā’;’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’B’;’’’’’’’’’’’’’’’’’’’‚’;’’’’’’’’’’’’’’’’’’’Ā’;’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’B’;’’’’’’’’’’’’’’’’’’’‚’;’’’’’’’’’’’’’’’’’’’Ā’;’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’B’;’’’’’’’’’’’’’’’’’’’‚’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’J’’’’’’’’’’’’’’’’’’’’’werden. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’r’w’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’K’’’’’’’’’’’’’’’’’’’‚’J’’’’’’’’’’’’’’’’’’’Ņ’+’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’M’’’’’’’’’’’’’’’’’’’Ņ’.’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’R’L’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’M’’’’’’’’’’’’’’’’’’’B’U’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’¢’E’’’’’’’’’’’’’’’’’’’ņ’H’’’’’’’’’’’’’’’’’’’B ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r ’/’’’’’’’’’’’’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ ’N’’’’’’’’’’’’’’’’’’’" ’(’’’’’’’’’’’’’’’’’’’R ’F’’’’’’’’’’’’’’’’’’’¢ ’$’’’’’’’’’’’’’’’’’’’Ņ ’\’’’’’’’’’’’’’’’’’’’2 ’(’’’’’’’’’’’’’’’’’’’b ’P’’’’’’’’’’’’’’’’’’’Ā ’K’’’’’’’’’’’’’’’’’’’ ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B ’O’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’L’’’’’’’’’’’’’’’’’’’ ’Q’’’’’’’’’’’’’’’’’’’r ’L’’’’’’’’’’’’’’’’’’’Ā ’B’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’ Variablen. ’’’’’’’’r’V’’’’’’’’’’’’’’’’’’’Ņ’N’’’’’’’’’’’’’’’’’’’"’C’’’’’’’’’’’’’’’’’’’r’L’’’’’’’’’’’’’’’’’’’Ā’P’’’’’’’’’’’’’’’’’’’"’"’’’’’’’’’’’’’’’’’’’R’C’’’’’’’’’’’’’’’’’’’¢’R’’’’’’’’’’’’’’’’’’’’T’’’’’’’’’’’’’’’’’’’’’ den. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’K’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’/’’’’’’’’’’’’’’’’’’’ā’I’’’’’’’’’’’’’’’’’’’2’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’r’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’]’’’’’’’’’’’’’’’’’’’b’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’S’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’b’I’’’’’’’’’’’’’’’’’’’²’N’’’’’’’’’’’’’’’’’’’’’ men. ’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’b’+’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’ gehen. ’’’’’’’’’’’’ņ’W’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’S’’’’’’’’’’’’’’’’’’’Ņ’D’’’’’’’’’’’’’’’’’’’"’D’’’’’’’’’’’’’’’’’’’r’K’’’’’’’’’’’’’’’’’’’Ā’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’b’>’’’’’’’’’’’’’’’’’’’¢’9’’’’’’’’’’’’’’’’’’’ā’B’’’’’’’’’’’’’’’’’’’2’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’O’’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’R’Q’’’’’’’’’’’’’’’’’’’²’=’’’’’’’’’’’’’’’’’’’ņ’2’’’’’’’’’’’’’’’’’’’2’O’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’G’’’’’’’’’’’’’’’’’’’’X’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’P’’’’’’’’’’’’’’’’’’’ā’T’’’’’’’’’’’’’’’’’’’B’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’L’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’=’’’’’’’’’’’’’’’’’’’2’R’’’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’#’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R ’L’’’’’’’’’’’’’’’’’’’¢ ’M’’’’’’’’’’’’’’’’’’’ņ ’g’’’’’’’’’’’’’’’’’’’b!’*’’’’’’’’’’’’’’’’’’’’!’J’’’’’’’’’’’’’’’’’’’ā!’O’’’’’’’’’’’’’’’’’’’B"’’’’’’’’’’’’’’’’’’’’’’ Beispiele: ’’’’’’’’’’’’ CALL list ’’’’’’’’’b"’’’’’’’’’’’’’’’’’’’’‚"’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ\’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’]’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"]’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b]’-’’’’’’’’’’’’’’’’’’’’]’’’’’’’’’’’’’’’’’’’’²]’'’’’’’’’’’’’’’’’’’’’ā]’’’’’’’’’’’’’’’’’’’’^’B’’’’’’’’’’’’’’’’’’’R^’6’’’’’’’’’’’’’’’’’’’’^’Z’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ^’’’’’’’’’’’’’’’’’’’’_’’’’’’’’’’’’’’’’’’’’2_’’’’’’’’’’’’’’’’’’’’R_’.’’’’’’’’’’’’’’’’’’’‚_’O’’’’’’’’’’’’’’’’’’’ā_’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`’’’’’’’’’’’’’’’’’’’’"`’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r`’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’`’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ`’-’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’"a’(’’’’’’’’’’’’’’’’’’’Ra’’’’’’’’’’’’’’’’’’’’ra’v’’’’’’’’’’’’’’’’’’’ņa’1’’’’’’’’’’’’’’’’’’’2b’’’’’’’’’’’’’’’’’’’’Rb’6’’’’’’’’’’’’’’’’’’’’b’[’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņb’J’’’’’’’’’’’’’’’’’’’Bc’’’’’’’’’’’’’’’’’’’’bc’.’’’’’’’’’’’’’’’’’’’’c’`’’’’’’’’’’’’’’’’’’’d’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"d’’’’’’’’’’’’’’’’’’’’Bd’1’’’’’’’’’’’’’’’’’’’‚d’p’’’’’’’’’’’’’’’’’’’e’’’’’’’’’’’’’’’’’’’’"e’’’’’’’’’’’’’’’’’’’’Be’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’re’’’’’’’’’’’’’’’’’’’’’e’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņe’’’’’’’’’’’’’’’’’’’’ņe’;’’’’’’’’’’’’’’’’’’’2f’N’’’’’’’’’’’’’’’’’’’‚f’’’’’’’’’’’’’’’’’’’’¢f’’’’’’’’’’’’’’’’’’’’Āf’>’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’g’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"g’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bg’/’’’’’’’’’’’’’’’’’’’¢g’’’’’’’’’’’’’’’’’’’’Āg’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņg’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’h’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Rh’’’’’’’’’’’’’’’’’’’’rh’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²h’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņh’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’i’’’’’’’’’’’’’’’’’’’’"i’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Bi’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bi’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢i’-’’’’’’’’’’’’’’’’’’’Ņi’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ . data :’’’’’’’’’’’ņi’ ’’’’’’’’’’’’’’’’’’’"j’’’’’’’’’’’’’’’’’’’’Bj’ ’’’’’’’’’’’’’’’’’’’rj’’’’’’’’’’’’’’’’’’’’’j’N’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āj’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņj’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2k’#’’’’’’’’’’’’’’’’’’’bk’’’’’’’’’’’’’’’’’’’’‚k’’’’’’’’’’’’’’’’’’’’¢k’9’’’’’’’’’’’’’’’’’’’āk’’’’’’’’’’’’’’’’’’’’l’*’’’’’’’’’’’’’’’’’’’2l’’’’’’’’’’’’’’’’’’’’Rl’’’’’’’’’’’’’’’’’’’’rl’$’’’’’’’’’’’’’’’’’’’¢l’i’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’m’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"m’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bm’#’’’’’’’’’’’’’’’’’’’’m’’’’’’’’’’’’’’’’’’’’²m’’’’’’’’’’’’’’’’’’’’Ņm’9’’’’’’’’’’’’’’’’’’’n’’’’’’’’’’’’’’’’’’’’2n’+’’’’’’’’’’’’’’’’’’’bn’’’’’’’’’’’’’’’’’’’’‚n’’’’’’’’’’’’’’’’’’’’¢n’$’’’’’’’’’’’’’’’’’’’Ņn’j’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Bo’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ro’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’o’#’’’’’’’’’’’’’’’’’’’Āo’’’’’’’’’’’’’’’’’’’’āo’’’’’’’’’’’’’’’’’’’’p’9’’’’’’’’’’’’’’’’’’’Bp’+’’’’’’’’’’’’’’’’’’’rp’+’’’’’’’’’’’’’’’’’’’¢p’’’’’’’’’’’’’’’’’’’’Āp’’’’’’’’’’’’’’’’’’’’āp’$’’’’’’’’’’’’’’’’’’’q’j’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņq’’’’’’’’’’’’’’’’’’’’ņq’2’’’’’’’’’’’’’’’’’’’2r’-’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’br’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²r’N’’’’’’’’’’’’’’’’’’’s’N’’’’’’’’’’’’’’’’’’’Rs’-’’’’’’’’’’’’’’’’’’’‚s’,’’’’’’’’’’’’’’’’’’’²s’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ās’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2t’’’’’’’’’’’’’’’’’’’’bt’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’t’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²t’M’’’’’’’’’’’’’’’’’’’u’’’’’’’’’’’’’’’’’’’’"u’’’’’’’’’’’’’’’’’’’’Bu’I’’’’’’’’’’’’’’’’’’’’u’’’’’’’’’’’’’’’’’’’’’’ init input’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢u’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Āu’’’’’’’’’’’’’’’’’’’’’’ IF is error’’’’’’’’āu’(’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’v’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2v’M’’’’’’’’’’’’’’’’’’’‚v’.’’’’’’’’’’’’’’’’’’’²v’’’’’’’’’’’’’’’’’’’’Ņv’’’’’’’’’’’’’’’’’’’’āv’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’w’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"w’-’’’’’’’’’’’’’’’’’’’’’ IF step > 0’’’’’’’’Rw’’’’’’’’’’’’’’’’’’’’bw’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚w’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢w’$’’’’’’’’’’’’’’’’’’’Ņw’E’’’’’’’’’’’’’’’’’’’’’ next line’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"x’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Bx’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BASIC.Administration’’’’’’’’’’.’’’’’N(***************************************************************************)’N(* *)’N(* Zweite von drei Dateien des EUMEL-BASIC-Systems *)’N(* *)’N(* Autor: Heiko Indenbirken *)’N(* Ųberarbeitet von: Rudolf Ruland und Michael Overdick *)’N(* *)’N(* Stand: 27.10.1987 *)’N(* *)’N(***************************************************************************)’NPACKET basic errors DEFINES basic error, (* Autor: Heiko Indenbirken *)’’N return error, (* Stand: 26.08.1987/rr/mo *)’’. basic warning:’’’’TEXT VAR erste zeile,’’’’’’’’’ message;’’’’’’’’’’’’’LET errorsize = 40;’’’’’’’’’’’.LET ERROR = STRUCT (INT no, TEXT msg);’’’’’’’’>ROW errorsize ERROR CONST error msg :: ROW errorsize ERROR : ’(ERROR:( 1, "NEXT ohne FOR"),’ ERROR:( 2, "Syntaxfehler:"),’. ERROR:( 5, "Fehlerhafter Funktionsaufruf"),’’> ERROR:( 8, "Zeile mit dieser Nummer existiert nicht"),’’’’’’’> ERROR:(10, "Das Feld ist bereits dimensioniert"),’’’’’’’’’’’’ ERROR:(13, "Falscher Typ:"),’ ERROR:(15, "Text zu lang"),’’. ERROR:(18, "Undefinierte 'user function'"),’’. ERROR:(22, "Ausdruck erwartet"),’’’’’’’’’’’’’ ERROR:(26, "FOR ohne NEXT"),’. ERROR:(29, "WHILE ohne WEND"),’’’’’’’’’’’’’’’. ERROR:(30, "WEND ohne WHILE"),’’’’’’’’’’’’’’’. ERROR:(51, "Interner Fehler"),’’’’’’’’’’’’’’’. ERROR:(80, "Fehlerhafte Zeilennummer"),’’’’’’> ERROR:(81, "Falsche Reihenfol’’’’’’’’¢"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā"’W’’’’’’’’’’’’’’’’’’’"#’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B#’U’’’’’’’’’’’’’’’’’’’¢#’T’’’’’’’’’’’’’’’’’’’$’P’’’’’’’’’’’’’’’’’’’b$’E’’’’’’’’’’’’’’’’’’’’’ Beispiele: ’’’’’’’’’’²$’=’’’’’’’’’’’’’’’’’’’ņ$’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’2%’6’’’’’’’’’’’’’’’’’’’r%’F’’’’’’’’’’’’’’’’’’’Ā%’S’’’’’’’’’’’’’’’’’’’’’ ziert). ’’’’’’’’’’"&’K’’’’’’’’’’’’’’’’’’’r&’D’’’’’’’’’’’’’’’’’’’Ā&’6’’’’’’’’’’’’’’’’’’’'’0’’’’’’’’’’’’’’’’’’’B'’G’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’¢'’1’’’’’’’’’’’’’’’’’’’ā'’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’(’P’’’’’’’’’’’’’’’’’’’r(’E’’’’’’’’’’’’’’’’’’’Ā(’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’ā(’K’’’’’’’’’’’’’’’’’’’2)’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r)’K’’’’’’’’’’’’’’’’’’’Ā)’]’’’’’’’’’’’’’’’’’’’"*’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’B*’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’*’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā*’G’’’’’’’’’’’’’’’’’’’2+’P’’’’’’’’’’’’’’’’’’’’+’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā+’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’,’Q’’’’’’’’’’’’’’’’’’’b,’X’’’’’’’’’’’’’’’’’’’Ā,’M’’’’’’’’’’’’’’’’’’’-’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R-’’’’’’’’’’’’’’’’’’’’r-’K’’’’’’’’’’’’’’’’’’’Ā-’$’’’’’’’’’’’’’’’’’’’ņ-’K’’’’’’’’’’’’’’’’’’’B.’]’’’’’’’’’’’’’’’’’’’¢.’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā.’a’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2/’O’’’’’’’’’’’’’’’’’’’’/’3’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’Ņ/’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"0’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R0’P’’’’’’’’’’’’’’’’’’’²0’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Ņ0’3’’’’’’’’’’’’’’’’’’’1’I’’’’’’’’’’’’’’’’’’’b1’[’’’’’’’’’’’’’’’’’’’Ā1’’’’’’’’’’’’’’’’’’’’ā1’]’’’’’’’’’’’’’’’’’’’B2’’’’’’’’’’’’’’’’’’’’b2’D’’’’’’’’’’’’’’’’’’’²2’G’’’’’’’’’’’’’’’’’’’3’P’’’’’’’’’’’’’’’’’’’b3’’’’’’’’’’’’’’’’’’’’‚3’K’’’’’’’’’’’’’’’’’’’Ņ3’M’’’’’’’’’’’’’’’’’’’"4’P’’’’’’’’’’’’’’’’’’’‚4’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā4’O’’’’’’’’’’’’’’’’’’’"5’G’’’’’’’’’’’’’’’’’’’r5’M’’’’’’’’’’’’’’’’’’’Ā5’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ5’L’’’’’’’’’’’’’’’’’’’B6’Z’’’’’’’’’’’’’’’’’’’¢6’O’’’’’’’’’’’’’’’’’’’7’H’’’’’’’’’’’’’’’’’’’R7’J’’’’’’’’’’’’’’’’’’’¢7’I’’’’’’’’’’’’’’’’’’’ņ7’`’’’’’’’’’’’’’’’’’’’b8’R’’’’’’’’’’’’’’’’’’’Ā8’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’9’(’’’’’’’’’’’’’’’’’’’B9’[’’’’’’’’’’’’’’’’’’’¢9’S’’’’’’’’’’’’’’’’’’’:’O’’’’’’’’’’’’’’’’’’’b:’Q’’’’’’’’’’’’’’’’’’’Ā:’I’’’’’’’’’’’’’’’’’’’;’S’’’’’’’’’’’’’’’’’’’r;’L’’’’’’’’’’’’’’’’’’’Ā;’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’<’#’’’’’’’’’’’’’’’’’’’2<’K’’’’’’’’’’’’’’’’’’’‚<’J’’’’’’’’’’’’’’’’’’’Ņ<’I’’’’’’’’’’’’’’’’’’’"=’J’’’’’’’’’’’’’’’’’’’r=’N’’’’’’’’’’’’’’’’’’’Ā=’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’>’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b>’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’>’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ>’L’’’’’’’’’’’’’’’’’’’"?’Y’’’’’’’’’’’’’’’’’’’‚?’R’’’’’’’’’’’’’’’’’’’ā?’’’’’’’’’’’’’’’’’’’’@’_’’’’’’’’’’’’’’’’’’’r@’O’’’’’’’’’’’’’’’’’’’Ņ@’’’’’’’’’’’’’’’’’’’’ņ@’^’’’’’’’’’’’’’’’’’’’RA’R’’’’’’’’’’’’’’’’’’’²A’Y’’’’’’’’’’’’’’’’’’’B’h’’’’’’’’’’’’’’’’’’’‚B’N’’’’’’’’’’’’’’’’’’’ŅB’L’’’’’’’’’’’’’’’’’’’"C’O’’’’’’’’’’’’’’’’’’’‚C’L’’’’’’’’’’’’’’’’’’’ŅC’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2D’R’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²D’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅD’O’’’’’’’’’’’’’’’’’’’2E’'’’’’’’’’’’’’’’’’’’’bE’7’’’’’’’’’’’’’’’’’’’¢E’?’’’’’’’’’’’’’’’’’’’ņE’S’’’’’’’’’’’’’’’’’’’RF’N’’’’’’’’’’’’’’’’’’’¢F’L’’’’’’’’’’’’’’’’’’’ņF’I’’’’’’’’’’’’’’’’’’’BG’(’’’’’’’’’’’’’’’’’’’rG’V’’’’’’’’’’’’’’’’’’’ŅG’N’’’’’’’’’’’’’’’’’’’"H’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RH’O’’’’’’’’’’’’’’’’’’’²H’M’’’’’’’’’’’’’’’’’’’I’R’’’’’’’’’’’’’’’’’’’bI’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚I’4’’’’’’’’’’’’’’’’’’’ĀI’’’’’’’’’’’’’’’’’’’’āI’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"J’Q’’’’’’’’’’’’’’’’’’’‚J’’’’’’’’’’’’’’’’’’’’¢J’’’’’’’’’’’’’’’’’’’’ĀJ’’’’’’’’’’’’’’’’’’’’āJ’<’’’’’’’’’’’’’’’’’’’"K’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bK’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’K’Q’’’’’’’’’’’’’’’’’’’ņK’G’’’’’’’’’’’’’’’’’’’BL’J’’’’’’’’’’’’’’’’’’’’L’K’’’’’’’’’’’’’’’’’’’āL’S’’’’’’’’’’’’’’’’’’’BM’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rM’a’’’’’’’’’’’’’’’’’’’āM’P’’’’’’’’’’’’’’’’’’’BN’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rN’b’’’’’’’’’’’’’’’’’’’āN’H’’’’’’’’’’’’’’’’’’’2O’O’’’’’’’’’’’’’’’’’’’’’ geliefert. ’’’’’’’’’’’O’S’’’’’’’’’’’’’’’’’’’ņO’P’’’’’’’’’’’’’’’’’’’RP’I’’’’’’’’’’’’’’’’’’’¢P’’’’’’’’’’’’’’’’’’’’ĀP’N’’’’’’’’’’’’’’’’’’’Q’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bQ’M’’’’’’’’’’’’’’’’’’’²Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’basic handbuch.1’’’’’’’’’’’’’’>’’N____________________________________________________________________________ ’#on("b")##on ("u")# ’’’’’’’’’’.#center#Betriebssystem E U M E L ’’’’’’’’’’’’’#center#Basic .#center#Lizenzfreie Software der ’’’’’’’’’’’’’N#center#Gesellschaft fŪr Mathematik und Datenverarbeitung mbH, ’’’’’’’’’’’’’’’#center#5205 Sankt Augustin ’’^#center#Die Nutzung der Software ist nur im Schul- und Hochschulbereich fŪr ’’’’’’’’’’’’’’.#center#nichtkommerzielle Zwecke gestattet. ’’>#center#GewŁhrleistung und Haftung werden ausgeschlossen ’’’’’N____________________________________________________________________________ ’#page nr ("%", 1)# ’’’’’’’’’’’NEUMEL-BASIC-Compiler Inhalt % ’’’’’’’’’’’’’’’N1 Einleitung 3 ’’’’’’’’’’’’’’’N2 Installation des BASIC-Compilers 4 ’’’’’’’’’’’’’’’N3 Aufruf und Steuerung des BASIC-Compilers 5 ’’’’’’’’’’’’’’’N4 Umgang mit dem BASIC-Compiler 7 ’’’’’’’’’’’’’’’N4.1 ErlŁuterungen zur Syntax 7 ’’’’’’’’’’’’’’’N4.2 Datentypen und Konstanten 10 ’’’’’’’’’’’’’’N4.3 Variablen und Felder 12 ’’’’’’’’’’’’’’N4.4 Operatoren 14 ’’’’’’’’’’’’’’N4.5 Funktionen 19 ’’’’’’’’’’’’’’N4.6 Typanpassung 22 ’’’’’’’’’’’’’’N4.7 Aufruf von EUMEL-Prozeduren in BASIC-Programmen 23 ’’’’’’’’’’’’’’N5 Steuerung der Bildschirmausgaben 25 ’’’’’’’’’’’’’’N6 Grenzen des Compilers 26 ’’’’’’’’’’’’’’N7 Fehlerbehandlung 28 ’’’’’’’’’’’’’’ge der Zeilennummern"),’’’’’’’’’. ERROR:(82, "Falscher Typ des Operanden:"),’’’. ERROR:(83, "Falscher Typ der Operanden:"),’’’. ERROR:(84, "Falsche Felddimension:"),’’’’’’’’. ERROR:(85, "Rekursive Funktionsdefinition"), . ERROR:(86, "Fehlerhafte Laufvariable:"),’’’’’. ERROR:(87, "Fehlerhafte Bereichsangabe:"),’’’. ERROR:(88, "Fehlerhafte Dimensionierung:"),’’> ERROR:(89, "Parametervariable kommt mehrmals vor"),’’’’’’’’’’ ERROR:(90, "AS ohne NAME"),’’. ERROR:(91, "BASE ohne OPTION"),’’’’’’’’’’’’’’ ERROR:(92, "ELSE ohne IF"),’’ ERROR:(93, "STEP ohne FOR"),’. ERROR:(94, "TAB ohne (L)PRINT"),’’’’’’’’’’’’’ ERROR:(95, "THEN ohne IF"),’’. ERROR:(96, "TO ohne Zusammenhang"),’’’’’’’’’’. ERROR:(97, "USING ohne (L)PRINT"),’’’’’’’’’’’. ERROR:(98, "Unbekannte Funktion,"),’’’’’’’’’’. ERROR:(99, "Unbekannte Prozedur,"),’’’’’’’’’’. ERROR:(100,"Nicht implementiert"),’’’’’’’’’’’ ERROR:(101,"SUB ohne GO"),’’’. ERROR:(102,"GO ohne TO oder SUB"),’’’’’’’’’’’> ERROR:(103,"Accessrecht VAR erwartet, CONST gefunden"),’’’’’’> ERROR:(104,"Funktionsaufruf ohne Zusammenhang"),’’’’’’’’’’’’’> ERROR:(105,"Nach OPTION BASE ist nur 0 oder 1 erlaubt"),’’’’’> ERROR:(106,"Bei SWAP nur gleiche Variablentypen erlaubt"));’’.TEXT PROC errortext (INT CONST no):’’’’’’’’’’’ FOR i FROM 1 UPTO errorsize’ REP IF errormsg [i].no = no’> THEN LEAVE errortext WITH errormsg [i].msg FI’’’’’’’’’’’. "Unbekannter BASIC-Fehler #" + text (no) .’END PROC errortext;’’’’’’’’’’’.PROC basic error (TEXT CONST packet,’’’’’’’’’’. INT CONST error nr,’’’’’’’’’. INT CONST line nr,’’’’’’’’’’. INT CONST statement nr,’’’’’> TEXT CONST position, addition,’’’’’’’’’’’’’’. BOOL CONST leave statement): erste zeile aufbauen;’’’’’’’. einfache fehlermeldung aufbauen; ’’’’’’’’’’’. diese auf terminal ausgeben; ’’’’’’’’’’’’’’’N diese in sysout datei ausgeben wenn noetig; (* F20/rr *)’. fehlermeldung in fehlerdatei ausgeben;’’’’’’N IF leave statement (* DEF/mo *)’. THEN errorstop (101, packet + "-Fehler")’’erste zeile aufbauen:’’’’’’’’’. IF line nr = 0 AND statement nr = 0’’’’’’’’’ THEN erste zeile := "FEHLER". ELSE erste zeile := "FEHLER (Dateizeile ";’’. erste zeile CAT text (line nr);’’’’’’’’. erste zeile CAT ") in Zeile ";’’’’’’’’’. erste zeile CAT text (statement nr);’’’ erste zeile CAT " bei >> ";’ erste zeile CAT position;’’’ erste zeile CAT " << : " .’.einfache fehlermeldung aufbauen:’’’’’’’’’’’’’’ message := " ";’’’’’’’’’’’. message CAT error text (error nr);’’’’’’’’’’ message CAT " " .’’’’’’’’Ndiese auf terminal ausgeben: (* F20/rr *)’ display (""13""10"");’’’’’’’ display (erste zeile);’’’’’’ display (""13""10"");’’’’’’’. display (message + addition);’’’’’’’’’’’’’’’ display (""13""10"") .’’’’’’Ndiese in sysout datei ausgeben wenn noetig : (* F20/rr *) IF sysout <> ""’’’’’’’’’’’’’. THEN putline (erste zeile);’’’’’’’’’’’’’’. putline (message + addition);’’’’’’’ line;’’’’’’’’’’’’’’’.fehlermeldung in fehlerdatei ausgeben:’’’’’’’’ note (erste zeile);’’’’’’’’’ note (message);’’’’’’’’’’’’’ note (addition);’’’’’’’’’’’’END PROC basic error;’’’’’’’’’NPROC basic warning (INT CONST line nr, (* mo *)’’’’’’’’’’’’’. statement nr,’’’. TEXT CONST warning text):’generate warning;’’’’’’’’’’’’’in sysout file;’’’’’’’’’’’’’’’into the notebook.’’’’’’’’’’’’generate warning:’’’’’’’’’’’’’. IF line nr = 0 AND statement nr = 0’’’’’’’’’. THEN erste zeile := "WARNUNG"’’’’’’’’’’’’’’’. ELSE erste zeile := "WARNUNG (Dateizeile ";’. erste zeile CAT text (line nr);’’’’’’’’. erste zeile CAT ") in Zeile ";’’’’’’’’’. erste zeile CAT text (statement nr);’’’ erste zeile CAT ": ";’’’’’’’. erste zeile CAT warning text.’’’’’’’’’’’’’’’ display (""13""10"");’’’’’’’ display (erste zeile);’’’’’’ display (""13""10"").’’’’’’’in sysout file:’’’’’’’’’’’’’’’ IF sysout <> ""’’’’’’’’’’’’’. THEN putline (erste zeile);’’’’’’’’’’’’’’ line;’’’’’’’’’’’’’’’into the notebook:’’’’’’’’’’’’ THEN note (erste zeile);’’ note line’’’’’’’’’’’’END PROC basic warning;’’’’’’’PROC return error:’’’’’’’’’’’’. errorstop (1003, "RETURN ohne GOSUB")’’’’’’’END PROC return error;’’’’’’’’END PACKET basic errors;’’’’’’NPACKET basic types DEFINES symbol of, (* Autor: Heiko Indenbirken *)’’N type of, (* Stand: 07.09.1987/rr/mo *)’’. dim of,’’’’’’’’’’’’. shift, deshift,’’’’. reserved,’’’’’’’’’’. param list,’’’’’’’’. is bool op:’’’’’’’’NLET (* S y m b o l T y p e n *)’N any = 0, const = 1, var = 2, array = 3,’’’’’’’N expr = 4, unused = 5, letter = 6, param = 7,’’’’’’’N res word = 8, operator = 9, eos = 10, del = 11,’’’’’’’> stat no = 12, eol = 13, eop = 14,’’’’’’’’’. user fn = 20; (* DEF/mo *)’’’’’’’’’’’’’’N(* Operatoren *)’>LET less equal = 28, unequal = 29, greater equal = 30;’’’’’’TEXT VAR dummy;’’’’’’’’’’’’’’’.TEXT PROC symbol of (INT CONST n) :’’’’’’’’’’’ THEN ""19"" + symbol of (-n) ELSE SELECT n OF’’’’’’’’’’’’. CASE less equal : "<="’’’’’’’’’’’’’’. CASE unequal : "<>"’’’’’’’’’’’’’’. CASE greater equal : ">="’’’’’’’’’’’’’’. CASE eos : "EOS"’’’’’’’’’’’’’. CASE eol : "EOL"’’’’’’’’’’’’’. CASE eop : "EOF"’’’’’’’’’’’’’. OTHERWISE : character END SELECT’’’’’’’ IF n > 32 AND n < 128’’’’’’’ THEN code (n)’’’’’’’’’’’’’’’ ELIF n >= 128 AND n <= 255’’ THEN res word of (n)’’’’’’’’> ELSE "%" + subtext (text (n+1000), 2) + " " FI .’’’’’’’’’’’END PROC symbol of;’’’’’’’’’’’.TEXT PROC type of (INT CONST n) :’’’’’’’’’’’’’ CASE any : "ANY"’’’’’’’ CASE const : "Konstante"’ CASE var : "Variable"’’ CASE array : "Feld"’’’’’’ CASE expr : "Ausdruck"’’ CASE unused : " -?- "’’’’’ CASE letter : "Buchstabe"  CASE param : "Parameter"’. CASE res word : "reserviertes Wort"’’’’’’’’’ CASE operator : "Operator"’’ CASE eos : "EOS"’’’’’’’. CASE del : "Trennzeichen"’’’’’’’’’’’’’’. CASE stat no : "Zeilennumer"’’’’’’’’’’’’’’’ CASE eol : "EOL"’’’’’’’ CASE eop : "EOF"’’’’’’’N CASE user fn : "'user function'" (* DEF/mo *)’’’’’’’’’’’’. OTHERWISE "?TYPE #" + text (n) ENDSELECT.’’’END PROC type of;’’’’’’’’’’’’’.TEXT PROC dim of (TEXT CONST parameter):’’’’’’ IF parameter = ""’’’’’’’’’’’. ELSE base limits and size FI .’’’’’’’’’’’’’base limits and size:’’’’’’’’’> INT CONST dimension :: (LENGTH parameter DIV 2) - 2;’’’’’’’’> TEXT VAR result :: text (parameter ISUB dimension+1);’’’’’’’ result CAT ": [";’’’’’’’’’’’. FOR i FROM 1 UPTO dimension-1’’’’’’’’’’’’’’’. REP result CAT text (parameter ISUB i);’’’’’ result CAT ", "’’’’’’’’’. result CAT text (parameter ISUB dimension);’ result CAT "] ";’’’’’’’’’’’> result CAT text (parameter ISUB dimension+2);’’’’’’’’’’’’’’’END PROC dim of;’’’’’’’’’’’’’’.TEXT PROC param list (INT CONST first, no):’’’N7.1 Fehler zur Ųbersetzungszeit 28 ’’’’’’’’’’’’’’N7.2 Fehler zur Laufzeit 30 ’’’’’’’’’’’’’’N8 Ųbersicht Ūber die Anweisungen und Funktionen 31 ’’’’’’’’’’’’’’N9 Anpassung von Programmen an den EUMEL-BASIC-Compiler 96 ’’’’’’’’’’’’’’.9.1 Unterschiede zwischen BASIC-Interpretern N und dem EUMEL-BASIC-Compiler 96 ’’’’’’’’’’’’’’N9.2 Abweichungen von ISO 6373-1984 (Minimal-BASIC) 97 ’’’’’’’’’’’’’’.9.3 Anpassung von Microsoft-BASIC Programmen N an den EUMEL-BASIC-Compiler 98 ’’’’’’’’’’’’’’NAnhang A: Reservierte WŚrter 100 ’’’’’’’’’’’’’’NAnhang B: Vom Scanner erkannte Symboltypen 103 ’’’’’’’’’’’’’’NAnhang C: Ųbersicht Ūber die Fehlermeldungen 106 ’’’’’’’’’’’’’’NAnhang D: ELAN-Prozeduren des Compilers 113 ’’’’’’’’’’’’’’#page nr ("%", 3)# ’’’’’’’’’’’NEUMEL-BASIC-Compiler 1. Einleitung % ’’’’’’’’’’’’’1. Einleitung ^BASIC entspricht heute nicht mehr den Vorstellungen von einer modernen ProgramŻ’’’’’’’’’’’’’’’Nmiersprache. Dennoch wurde fŪr das EUMEL-Betriebssystem ein Compiler fŪr BASICNentwickelt. Er soll vor allem dazu dienen, schon bestehende BASIC-Programme -’Ngegebenenfalls nach entsprechender Anpassung - auch unter EUMEL verfŪgbar zu’NDer Compiler ist weitgehend an die ISO-Norm 6373 fŪr Minimal-BASIC angelehnt.’^Die Syntax und Bedeutung der Anweisungen orientiert sich in den meisten FŁllen an’’’’’’’’’’’’’NMicrosoft-BASIC. Anweichungen treten insbesondere an den Stellen auf, an denen>Prinzipien des Betriebssystems EUMEL verletzt wŪrden. ’’’’’’’’NVerglichen mit dem ELAN-Compiler des EUMEL-Systems ist der BASIC-Compiler’’’’’^beim Ųbersetzen recht langsam. Auch aus diesem Grund scheint es nicht sinnvoll,’’’’’’’’’’’’’’’Nden BASIC-Compiler zur Neuentwicklung grŚūerer Programme einzusetzen. ’’’’’’’’NSinn dieses Handbuchs ist es vor allem, Kenntnisse Ūber den Umgang mit dem’’’’NEUMEL-BASIC-Compiler zu vermitteln. Das Handbuch ist auf keinen Fall als EinŻ’^fŪhrung in die Programmiersprache BASIC gedacht, sondern es soll dem Benutzer mit’’’’’’’’’’’’’NBASIC-Erfahrung die Arbeit mit dem EUMEL-BASIC-Compiler ermŚglichen und’’’’’’’^erleichtern. Neben Erfahrung in BASIC setzt dieses Buch an einigen Stellen auch’’’’’’’’’’’’’’’.Grundkenntnisse Ūber das EUMEL-System voraus. >Zur #ib(4)#Notation#ie(4)# in dieser Beschreibung ’’’’’’’’’’’’^Bei der Beschreibung der Anweisungen und Funktionen und auch an anderen Stellen’’’’’’’’’’’’’’’^werden in dieser Beschreibung Syntaxregeln fŪr BASIC-Programme oder Teile davon’’’’’’’’’’’’’’’Nangegeben. Dabei werden folgende Zeichen mit besonderer Bedeutung verwendet: ’[ ] optionale Angabe ’’’N[...] beliebig hŁufige Wiederholung der letzten optionalen Angabe ’’’’’’’’^| alternative Angabe, d.h. entweder die letzte links stehende Angabe oder’’’’’’’’’’’’’N die nŁchste rechts stehende Angabe, aber nicht beide ’’’’’’’’’’’’’’’^< > in spitzen Klammern stehende Begriffe sind entweder definiert (z.B. ) oder werden hinter der Syntaxregel erlŁutert ’’’’’’’’’’’’’’NDie Notation der exportierten ELAN-Prozeduren des Compilers (besonders in AnŻ’NhangD) entspricht der in den EUMEL-HandbŪchern Ūblichen Prozedurkopf-’’’’’’’’’Schreibweise. NEUMEL-BASIC-Compiler 2. Installation des BASIC-Compilers % ’’’’’’’’>2. #ib(3)#Installation des BASIC-Compilers#ie(3)# ’’’’’’’’’’’’NDer EUMEL-BASIC-Compiler wird auf zwei Disketten mit jeweils 360 KByte’’’’’’’’.SpeicherkapazitŁt ausgeliefert. ’’’’’’’’’’’’’’^Auf der Diskette "BASIC.1" befindet sich das #ib(3)#Generatorprogramm#ie(3)#("gen.BASIC") zur .Installation des EUMEL-BASIC-Systems. ’’’’’’’’^Legen Sie diese Diskette in das Laufwerk ihres Rechners ein und geben Sie in der’’’’’’’’’’’’’’^Task, in der das BASIC-System installiert werden soll, folgende Zeile nach 'gib’’’’’’’’’’’’’’’.kommando :' (oder 'maintenance :') ein: ’’’’’’>archive ("BASIC.1"); fetch ("gen.BASIC", archive); run ’’’’’’’NLassen Sie die Diskette 'BASIC.1' im Laufwerk und antworten Sie auf die Frage’^"Archiv "BASIC.1" eingelegt(j/n)?" mit "j". Das Generatorprogramm holt nun einige’’’’’’’’’’’’’^Dateien von der Diskette. Nach Zugriff auf das Archiv erscheint die Meldung "Archiv’’’’’’’’’’’^abgemeldet!" und die Frage "Archiv 'BASIC.2' eingelegt(j/n)?". Legen Sie nun statt’’’’’’’’’’’’^des Archivs 'BASIC.1' das Archiv 'BASIC.2' in das Laufwerk ein und drŪcken Sie bitte’’’’’’’’’’^wiederum "j". Nach weiteren Archivoperationen erscheint dann wieder die Meldung’’’’’’’’’’’’’’’N"Archiv abgemeldet". Sie kŚnnen nun die Diskette "BASIC.2" aus dem Laufwerk’’’NDas Generatorprogramm insertiert nun alle Programme des BASIC-Systems in der’’NTask. Dieser Vorgang nimmt einige Zeit in Anspruch. Zum Abschluū erscheint die.Meldung "BASIC-System installiert". ’’’’’’’’’’NDer EUMEL-BASIC-Compiler steht Ihnen nun in der Task (und in nachfolgend’’’’’’.eingerichteten SŚhnen) zur VerfŪgung. ’’’’’’’’NEUMEL-BASIC-Compiler 3. Aufruf und Steuerung des BASIC-Compilers % ’’’’’N3. #ib(4)#Aufruf und #ib(3)#Steuerung des BASIC-Compilers#ie(3)##ie(4)# ’’’’’’.Ųbersetzen von BASIC-Programmen ’’’’’’’’’’’’’’NEin BASIC-Programm, das vom Compiler Ūbersetzt werden soll, muū sich dazu in’’Neiner EUMEL-Textdatei befinden (Syntax vgl. Kap. 4.). Steht das BASIC-ProgrammNzum Beispiel in der Datei "Programm.17+4", so wird der Compiler mit ’’’’’’’’’’. #ib(3)#basic#ie(3)# ("Programm.17+4") ’’’’.zum Ųbersetzen dieses Programms aufgerufen. ’’NIn einem Vordurchlauf werden die Zeilennummern des Programms auf Richtigkeit’’^ŪberprŪft. Beim eigentlichen Compilerdurchlauf wird das BASIC-Programm dann mit’’’’’’’’’’’’’’’NHilfe des EUMEL-Coders in einen von der EUMEL-0-Maschine ausfŪhrbaren Code’’’’NDas Programm wird mit 'check on' (Zeilennummergenerierung) Ūbersetzt. ’’’’’’’’NEin 'runagain' wie bei ELAN-Programmen ist bei BASIC-Programmen zur Zeit’’’’’’leider nicht mŚglich. ’’’’’’’’.Insertieren von BASIC-Programmen ’’’’’’’’’’’’’NDer BASIC-Compiler kann BASIC-Programme auch insertieren. Das ganze ProŻ’’’’’’Ngramm bildet dabei eine Prozedur, die nach dem Insertieren wie eine 'normale'’.ELAN-Prozedur aufgerufen werden kann. ’’’’’’’’NZum Insertieren wird der Compiler mit einem zusŁtzlichen Text-Parameter aufgeŻ> #ib(3)#basic#ie(3)# ("Programm.17+4", "blackjack") ’’’’’’’^Das Programm wird Ūbersetzt und, falls keine Fehler gefunden wurden, fest eingeŻ’’’’’’’’’’’’’’Ntragen ('insertiert'). Gestartet wird das Programm aber nicht. ’’’’’’’’’’’’’’’^"blackjack" ist nun der Prozedurname, unter dem das BASIC-Programm nach erfolgŻ’’’’’’’’’’’’’’’.reichem Insertieren aufgerufen werden kann. ’’^Bei 'packets' erscheint jetzt der Eintrag 'BASIC.blackjack' in der Liste der insertierten’’’’’^Pakete, und ein 'help ("blackjack")' zeigt, daū eine Prozedur 'blackjack' nun tatsŁchŻ’’’’’’’’^lich in der Task bekannt ist. Die Prozedur 'bulletin' funktioniert fŪr insertierte’’’’’’’’’’’’NBASIC-Programme nicht. Sie ist aber auch nicht nŚtig, da das 'Paket' mit dem’’NBASIC-Programm ohnehin nur eine Prozedur enthŁlt und ihr Name ja schon aus’’’’.dem Namen des Paketes hervorgeht. ’’’’’’’’’’’’Beachten Sie: N - Der Prozedurname muū der Syntax fŪr ELAN-Prozedurnamen entsprechen, darf’’> aber #on ("b")#keine Leerzeichen enthalten. ’’’’’’’’’’’’’’N - Die BASIC-Programme kŚnnen Ūber den Prozedurnamen nur aufgerufen werŻ’’’’’^ den; die Ųbergabe von Parametern ist ebenso wie Wertliefer IF no < first’’’’’’’’’’’’’’’ THEN "keine" ELSE parameter list FI .’’’parameter list:’’’’’’’’’’’’’’’ TEXT VAR result :: "(";’’’’’ FOR i FROM first UPTO no’’’’. REP result CAT dump (dtype (i));’’’’’’’’’’’’ IF i = no’’’’’’’’’’’’’’’ THEN result CAT ")"’’. ELSE result CAT ", " FI’’’’’’’’’’’’’’END PROC param list;’’’’’’’’’’.TEXT PROC shift (TEXT CONST word) :’’’’’’’’’’’ dummy := word;’’’’’’’’’’’’’’. FOR i FROM 1 UPTO length (word)’’’’’’’’’’’’’ REP shift char PER;’’’’’’’’’. INT VAR local letter :: code (dummy SUB i);’> IF 97 <= local letter AND local letter <= 122’’’’’’’’’’’’’’’> THEN replace (dummy, i, code (local letter - 32)) FI .’’’’’END PROC shift;’’’’’’’’’’’’’’’.TEXT PROC deshift (TEXT CONST word) :’’’’’’’’’ dummy := word;’’’’’’’’’’’’’’. FOR i FROM 1 UPTO length (word)’’’’’’’’’’’’’ REP deshift char PER;’’’’’’’. INT VAR local letter :: code (dummy SUB i);’. IF 65 <= local letter AND local letter <= 90> THEN replace (dummy, i, code (local letter + 32)) FI;’’’’’’’END PROC deshift;’’’’’’’’’’’’’N(* Verwaltung der Reservierten BASIC-WŚrter *)’NLET first operator = 249, (* MOD NOT AND OR XOR EQV IMP *)’N first bool op = 250; (* 249 250 251 252 253 254 255 *)’INT VAR index;.ROW 9 TEXT VAR res words :: ROW 9 TEXT :’’’’’’. ""129"as"163"go"167"if"188"on"217"to"252"or",^ ""128"abs"130"asc"131"atn"141"cos"142"cvd"143"cvi"145"def"150"dim"152"end"153"eof"154"erl"155"err"157"exp"159"fix"160"for"161"fre"162"get"172"int"175"len"176"let"178"loc"179"log"191"out"192"pos"194"put"202"rnd"197"rem"204"sgn"205"sin"207"spc"208"sqr"214"tab"215"tan"221"val"227"cls"234"usr"235"sub"249"mod"250"not"251"and"253"xor"254"eqv"255"imp",’’ ""132"base"133"call"134"cdbl"136"chr$"137"cint"144"data"151"else"165"goto"166"hex$"173"kill"177"line"181"lset"182"mid$"183"mkd$"184"mki$"185"name"186"next"187"oct$"189"open"196"read"203"rset"209"step"210"stop"211"str$"213"swap"216"then"219"tron"222"wait"223"wend"228"erm$"230"lpos",’’’¾ ""135"chain"138"clear"139"close"156"error"158"field"164"gosub"169"input"171"instr"174"left$"193"print"218"troff"220"using"224"while"225"width"226"write"231"time$"232"date$"233"timer",’’’’’’ž ""140"common"146"defdbl"147"defint"148"defsng"149"defstr"168"inkey$"170"input$"180"lprint"190"option"199"resume"200"return"201"right$"206"space$"229"csrlin", ""198"restore"212"string$",’’ ""195"randomize");’’’’’’’’’’’>BOOL PROC reserved (TEXT CONST name, INT VAR no, type):’’’’’’’> IF reserve is not possible COR not found within res words’’’> ELSE no := code (this words SUB (index-1));’’’’’’’’’’’’’’’ type := res word or op;reserve is not possible:’’’’’’. INT CONST len :: length (name);’’’’’’’’’’’’’ len < 2 OR len > 9 .’’’’’’’not found within res words:’’’. index := pos (this words, name);’’’’’’’’’’’’ index = 0 . res words [len] .’’’’’’’’’’res word or op:’’’’’’’’’’’’’’’ IF no >= first operator’’’’’ THEN operator’’’’’’’’’’’’’’’ ELSE res word FI .’’’’’’’’’END PROC reserved;’’’’’’’’’’’’.INT PROC reserved (TEXT CONST name):’’’’’’’’’’> IF reserve is not possible COR not found within res words’’’. ELSE code (this words SUB (index-1)) FI .’’reserve is not possible:’’’’’’. INT CONST len :: length (name);’’’’’’’’’’’’’ len < 2 OR len > 9 .’’’’’’’not found within res words:’’’. index := pos (this words, name);’’’’’’’’’’’’ index = 0 . res words [len] .’’’’’’’’’’END PROC reserved;’’’’’’’’’’’’.TEXT PROC res word of (INT CONST no):’’’’’’’’’ FOR i FROM 2 UPTO 9’’’’’’’’’. REP index := pos (res words [i], code (no)); IF index > 0’’’’’’’’’’’’> THEN LEAVE res word of WITH shift (this name) FI’’’’’’’’> subtext (res words [i], index+1, next code) .’’’’’’’’’’’’’’> INT VAR c := pos (res words [i], ""127"", ""255"", index+1); THEN length (res words [i])’ ELSE c-1 FI .’’’’’’’’’’’’’’END PROC res word of;’’’’’’’’’>BOOL PROC is bool op (INT CONST no): (* mo *)’’’’’’ no >= first bool op’’’’’’’’’END PROC is bool op;’’’’’’’’’’END PACKET basic types;’’’’’’’NPACKET basic table handling DEFINES init table, (* Autor: Heiko Indenbirken *)N put name, (* Stand: 13.08.1987/rr/mo *). known, name of,’. remember,’’’’’’’. recognize,’’’’’’. table entries,’’> hash table, next table,’’’’’’’’’N scope compulsory: (* DEF/mo *)’’’’’’’’’LET hash length = 1024, ’’’’’’. hash length minus one = 1023,’’’’’’’’’’’’’ start of name table = 256, table length = 4500;’’’’’’NLET SYMBOL = STRUCT (INT type, ADDRESS adr, DTYPE data, TEXT dim);’’’’’’’’’’’’.LET TABLE = STRUCT (INT entries,’’’’’’’’’’’’’’> ROW hash length INT hash table,’’’’’’’’’’’> ROW table length INT next, ’’’’’’’’’’’’’’’> ROW table length TEXT name table,’’’’’’’’’> ROW table length SYMBOL symbol table);’’’’DATASPACE VAR table space;’’’’BOUND TABLE VAR table;’’’’’’’’INITFLAG VAR tab := FALSE;’’’’>SYMBOL CONST nilsymbol :: SYMBOL:(0, LOC 0, void type, "");’’’NBOOL VAR compulsory with scope :: TRUE; (* DEF/mo *)’’’’’’PROC init table:’’’’’’’’’’’’’’ IF NOT initialized (tab)’’’’. THEN table space := nilspace;’’’’’’’’’’’’’’’ table := table space;’’. table.entries := start of name table;’’’’’’’. FOR i FROM 1 UPTO hash length’’’’’’’’’’’’’’’. REP table.hash table [i] := 0 PER;’’’’’’’’’’N compulsory with scope := TRUE; (* DEF/mo *)’’’’’’END PROC init table;’’’’’’’’’’NPROC put name (TEXT CONST scope, name, INT VAR pointer): (* DEF/mo *)’’’’’’ IF compulsory with scope’’’’. THEN put name (scope + name, pointer)’’’’’ ELIF NOT in table’’’’’’’’’’’. THEN put name (name, pointer)’’’’’’’’’’’’’. hash (scope + name, pointer);’’’’’’’’’’’’’’’. pointer := hash table (pointer);’’’’’’’’’’’’ WHILE not end of chain’’’’’’> REP IF name is found THEN LEAVE in table WITH TRUE FI;’’’’’’. pointer := table. next (pointer);’’’’’’’name is found:. table.name table [pointer] = scope + name.’’not end of chain:’’’’’’’’’’’’’ pointer > 0 .’’’’’’’’’’’’’’END PROC put name;’’’’’’’’’’’’>PROC put name (TEXT CONST name, INT VAR pointer):’’’’’’’’’’’’’ IF no entry in hash table’’’ THEN create a new chain’’’’’. ELSE create a new entry in chain FI;’’’’’’’’ insert name in name table .no entry in hash table:’’’’’’’ INT VAR hash index;’’’’’’’’’ hash (name, hash index); ’’’. table.hash table [hash index] = 0 .’’’’’’’’create a new chain:’’’’’’’’’’’> table.hash table [hash index] := table.entries .’’’’’’’’’’’create a new entry in chain:’’. pointer := table.hash table [hash index];’’’ REP IF name is found’’’’’’’’ THEN LEAVE put name’’’’’ ELIF end of chain’’’’’’’> THEN table.next [pointer] := table.entries;’’’’’’’’’’’’’. LEAVE create a new entry in chain’’. ELSE pointer := next pointer FI’’’’’’’’’name is found:. table.name table [pointer] = name.’’’’’’’’’’> INT CONST next pointer := table.next [pointer];’’’’’’’’’’’’’ next pointer = 0 .’’’’’’’’’insert name in name table:’’’’. IF table.entries >= table length ’’’’’’’’’’’. THEN errorstop ("volle Namenstabelle") FI;’’ pointer := table.entries;’’’. table.symbol table [pointer] := nilsymbol;’’. table.name table [pointer] := name; ’’’’’’’’ table.next [ung nicht mŚglich. ’’’’’’’’’’’’’^ - Jedes Insertieren belegt Speicherplatz im Codebereich der Task. Weil der Coder’’’’’’’’’’’’^ und der Compiler ebenfalls recht viel Code belegen, kann es (vor allem, wenn’’’’’’’’’’’’’’N die BASIC-Programme lang sind) schnell zu einem Code-Ųberlauf kommen’’’’’’^ (Compiler Error 305). Es sollten daher nur die Programme insertiert werden, fŪr’’’’’’’’’’’. die dies wirklich nŚtig ist. ’’’’’’’’’’’’’^ - Achten Sie bei der Wahl des Namens fŪr die gelieferte Prozedur darauf, daū sie’’’’’’’’’’’’^ nicht ungewollt Prozeduren des Betriebssystems Ūberdecken. (Der Aufruf 'baŻ’’’’’’’’’’’’’’’^ sic("tadellos","help")' wŁre z.B. gar nicht tadellos, denn 'help' wŁre nach dem’’’’’’’’’’’ Insertieren Ūberdeckt). ’’^ - Auch beim Insertieren werden die BASIC-Programme mit 'check on' Ūbersetzt. ’’’’’’’’’’’’’’’.Ausgabe der Ūbersetzten Zeilen wŁhrend des’’’’nMit '#ib(3)#basic list#ie(3)# (TRUE)' wird der Compiler so eingestellt, daū beim Ųbersetzen die’’’’’’’’’’’’’’’^aktuelle Programmzeile ausgegeben wird. Diese Ausgabe kann auch mit '#ib(3)#sysout#ie(3)#'’’’’.umgeleitet werden. Zum Beispiel: ’’’’’’’’’’’’’> sysout ("Fehlerprotokoll"); basic ("Programm.17+4") ’’’’’’’^Dies kann beim #ib(3)#Debugging#ie(3)# von BASIC-Programmen eine wertvolle Hilfe sein, da in’’^der Ausgabedatei die Fehler sofort hinter der betreffenden Programmzeile vermerkt’’’’’’’’’’’’’^werden. Das 'sysout' muū in Monitortasks ('gib kommando:') direkt vor dem Aufruf’’’’’’’’’’’’’’^des Compilers gegeben werden, weil der Monitor 'sysout' sonst wieder zurŪcksetzt. ’’’’’’’’’’’’NMit 'basic list (FALSE)' kann die Ausgabe der Programmzeilen beim Ųbersetzen’’wieder ausgeschaltet werden. ’NEUMEL-BASIC-Compiler 4. Umgang mit dem BASIC-Compiler % ’’’’’’’’’’.4. Umgang mit dem BASIC-Compiler ’’’’’’’’’’’’’.4.1. ErlŁuterungen zur #ib(3)#Syntax#ie(3)# ’’NEin zu Ūbersetzendes Programm muū dem BASIC-Compiler in Form einer’’’’’’’’’’’’^#ib(3)#EUMEL-Textdatei#ie(3)# Ūbergeben werden. (Es gelten somit auch die fŪr EUMEL-TextŻ’’’’’^dateien Ūblichen Begrenzungen, z.B. hŚchstens 32000 Zeichen pro Zeile und hŚchŻ’’’’’’’’’’’’’’’.stens 4075 Dateizeilen pro Datei.) ’’’’’’’’’’’NBASIC-Programme setzen sich aus Programmzeilen zusammen; jede Dateizeile der’’^#ib(3)#Programmdatei#ie(3)# bildet eine BASIC-Programmzeile. Die Syntax fŪr ein Programm siehtdamit so aus: .[][...]EOF ’’’’’NDabei bedeutet #ib(3)#EOF (end of file)#ie(3)# das Ende der Programmdatei. ’’’>Eine #ib(3)#Programmzeile#ie(3)# hat folgende Syntax: ’’’’’’’’>[][][:][...][:]EOL ’’’’’’’^Die #ib(3)#Zeilennummer#ie(3)# dient unter anderem als Sprungadresse an den Anfang der ProŻ’’’^grammzeile wŁhrend der Laufzeit des Programms (vgl. 'GOTO' und 'GOSUB'). Sie ist’’’’’’’’’’’’’’^fakultativ (d.h. sie muū nicht geschrieben werden). Durch sparsame Verwendung von’’’’’’’’’’’’’^Zeilennummern (nŁmlich nur da, wo sie benŚtigt werden) kann eine gewisse SteigeŻ’’’’’’’’’’’’’’^rung der #ib(3)#Ųbersichtlichkeit von BASIC-Programmen#ie(3)# erreicht werden. Hat eine ProŻ’’Ngrammzeile keine Zeilennummer, so wird bei Fehlermeldungen (sowohl wŁhrend derNŲbersetzung als auch zur Laufzeit des Programms) die letzte Zeilennummer mit’’angegeben, die davor auftrat. NZeilennummern dŪrfen im Bereich von 1 bis 32767 liegen und mŪssen unbedingt in^aufsteigender Reihenfolge vergeben werden. Zeilennummern dŪrfen keine Leerzeichen’’’’’’’’’’’’’Nenthalten und mŪssen mit einem Leerzeichen abgeschlossen werden. Um spŁtere’’’^ErgŁnzungen zu ermŚglichen, ist eine Numerierung im Abstand zehn empfehlenswert. ’’’’’’’’’’’’’NHier ein Beispiel, wie ein BASIC-Programm in einer EUMEL-Datei aussehen’’’’’’’N...........................Einmaleins............................ ’’’’’’’’’’’’.10 CLS: PRINT "Kleines Einmaleins" ’’’’’’’’’’’ FOR zahl% = 1 TO 10 ’’’’’’’ 'Erzeugung einer Zeile ’’ FOR faktor% = 1 TO 10 ’’’. PRINT TAB (faktor% * 5); ’’’’’’’’’’’’’’. PRINT USING "ŽŽŽ"; faktor% * zahl%; ’’’ NEXT faktor% ’’’’’’’’’’’’ NEXT zahl% NDie Syntax der Anweisungen, die vom EUMEL-BASIC-Compiler Ūbersetzt werden’’’’’>kŚnnen, ist ausfŪhrlich im Kapitel 8 beschrieben. ’’’’’’’’’’’’^Der #ib(3)#Doppelpunkt#ie(3)# dient als Trennzeichen zwischen Anweisungen. Ihm muū nicht’’’’’’Nunbedingt eine Anweisung folgen. Er kann somit als explizites "Ende der’’’’’’’NAnweisung"-Symbol aufgefaūt werden (#ib(3)#EOS, "end of statement"#ie(3)#). ’’n#ib(3)#EOL (end of line)#ie(3)# ist das Ende einer Dateizeile. (Dieses "Zeichen" ist ebenso wie’’’’’’’’’’’’’’’.EOF beim Editieren der Datei nicht sichtbar.) ^Das #ib(3)#Hochkomma#ie(3)# ("'", Code 39) wird vom Compiler ebenfalls als EOL interpretiert.’NAlle dem Hochkomma in der Dateizeile folgenden Zeichen werden Ūberlesen. Dies’>ermŚglicht das Schreiben von Kommentaren ohne Verwendung der’’'REM'-Anweisung. ’’’’’’’’’’’’’^Es sei hier bereits bemerkt, daū sich durch die Realisierung des Ųbersetzers als’’’’’’’’’’’’’’n#on ("b")#Compiler gewisse Unterschiede gegenŪber Interpretern #off ("b")#ergeben (siehe hierzu Kap. 9).’’’’’’^Der wesentliche Unterschied ist, daū der Interpreter dem Programmtext analog zum’’’’’’’’’’’’’’^Programmablauf folgt, der Compiler das Programm aber von vorne bis hinten Zeile fŪr’’’’’’’’’’’^Zeile Ūbersetzt. Dies hat zur Folge, daū z.B. die Dimensionierungen von Feldvariablen’’’’’’’’’n#on ("b")#textuell vor der Verwendung der Variablen stattfinden mŪssen#off ("b")# und nicht, wie bei’’’’’’’’’’NInterpretern, nur im Ablauf des Programms vorher ausgefŪhrt werden mŪssen. ’’’Weitere Schreibregeln ’’’’’’’’>1. #ib(3)#Groū-/Kleinschreibung#ie(3)##off ("b")# ’’’’’’’’’’’’NFŪr den BASIC-Compiler bestehen zwischen kleinen und groūen Buchstaben keinerŻ^lei Unterschiede, es sei denn es handelt sich um Textdenoter (Textkonstanten). ’’’’’’’’’’’’’’’nDaher kŚnnen alle #ib(3)#SchlŪsselwŚrter#ie(3)# und #ib(3)#Variablennamen#ie(3)# mit kleinen oder groūen’’’’’’^Buchstaben geschrieben werden. Aus der Tatsache, daū zwischen groūen und kleinen’’’’’’’’’’’’’’^Buchstaben nicht unterschieden wird, folgt aber bespielsweise auch, daū die VariabŻ’’’’’’’’’’’^lennamen (vgl. 4.3.) 'hallo' und 'HALLO' ein und dieselbe Variable bezeichnen. ’’’’’’’’’’’’’’’>2. #ib(3)#Reservierte WŚrter#ie(3)##off ("b")# ’’’’’’’’’’’’’’’nDer BASIC-Compiler erkennt eine ganze Reihe #on("i")#reservierter WŚrter#off("i")#. Es handelt sich’’’’’’’’’’’^hierbei im wesentlichen um die Namen der Anweisungen und Funktionen. Sie sollten’’’’’’’’’’’’’’^im eigenen Interesse darauf achten, daū sich sowohl vor als auch hinter reservierŻ ’’’’’’’’’’’Žten WŚrtern stets mindestens ein #on ("b")##ib(3)#Leerzeichen#ie(3)##off ("b")# (Blank) befindet. Der #ib(3)#Scanner#ie(3)# (verŻ’’’’’’’’’’’’’Ngleiche AnhangB) erkennt zwar manchmal die reservierten WŚrter auch ohne LeerŻNzeichen, aber unter bestimmten UmstŁnden kann es auch zu erkannten oder - noch>schlimmer - vom Compiler unerkannten Fehlern kommen. ’’’’’’’’Hierzu zwei Beispiele: ’’’’’’’NDie Anweisung 'IF a > b THENPRINT "grŚūer"' fŪhrt beim Compilieren zur FehlerŻ>meldung "Syntaxfehler: THEN oder GOTO erwartet". ’’’’’’’’’’’>Wesentlich gefŁhrlicher ist da schon die Programmzeile ’’’’’’’. "LEThallo = 3 : PRINT hallo", ’’’’’’’’’’’^denn die unerwartete Wirkung ist die Ausgabe von "0" auf dem Bildschirm. Der Wert’’’’’’’’’’’’’^"3" wurde nŁmlich nicht der Variablen mit dem Namen "hallo" zugewiesen, sondern’’’’’’’’’’’’’’’.einer Variablen namens "LEThallo". ’’’’’’’’’’’^3. Bedeutung der #ib(3)#Leerstelle#ie(3)# ("Blank") fŪr den Compiler#off("b")#pointer] := 0; ’ table.entries INCR 1 .’’’’’END PROC put name; ’’’’’’’’’’’.PROC hash (TEXT CONST name, INT VAR index) :’’. FOR j FROM 1 UPTO length (name)’’’’’’’’’’’’’ REP addmult cyclic PER;’’’’’ index INCR 1 .’’’’’’’’’’’’’addmult cyclic :’’’’’’’’’’’’’’ index INCR index ;’’’’’’’’’’. IF index > hash length minus one’’’’’’’’’’’’ THEN wrap around FI;’’’’’’’’N index := (index + code (name SUB j)) MOD hash length minus one .’’’’’’’’’’’. index DECR hash length minus one .’’’’’’’’’ENDPROC hash ;INT PROC table entries:’’’’’’’ table.entries’’’’’’’’’’’’’’’END PROC table entries;’’’’’’’.INT PROC hash table (INT CONST n):’’’’’’’’’’’’ table.hash table [n]’’’’’’’’END PROC hash table;’’’’’’’’’’.INT PROC next table (INT CONST n):’’’’’’’’’’’’ table.next [n]’’’’’’’’’’’’’’END PROC next table;’’’’’’’’’’.TEXT PROC name of (INT CONST index): ’’’’’’’’’ IF index < 0> THEN errorstop ("PROC name of: negativer Index"); ""’’’’’’’’. ELIF index < start of name table’’’’’’’’’’’’ THEN symbol of (index)’’’’’ ELIF index <= table.entries’. THEN table.name table (index) ’’’’’’’’’’’’’’> ELSE errorstop ("PROC name of: Index grŚūer als nametable");END PROC name of; ’’’’’’’’’’’’^PROC recognize (INT CONST symb, type, ADDRESS CONST adr, DTYPE CONST data, TEXT CONST dim):’’’ symbol.type := type;’’’’’’’ symbol.adr := adr;’’’’’’’’ symbol.data := data; ’’’’’’ symbol.dim := dim .’’’’’’.symbol: table.symboltable [symb] .’’’’’’’’’’’END PROC recognize;’’’’’’’’’’’^PROC remember (INT CONST symb, INT VAR type, ADDRESS VAR adr, DTYPE VAR data, TEXT VAR dim):’’> SYMBOL CONST symbol := table.symboltable [symb];’’’’’’’’’’’’ type := symbol.type;’’’’’’’ adr := symbol.adr;’’’’’’’’ data := symbol.data; ’’’’’’ dim := symbol.dim’’’’’’’’’END PROC remember;’’’’’’’’’’’’.BOOL PROC known (INT CONST symb) :’’’’’’’’’’’’. table.symboltable [symb].type > 0’’’’’’’’’’’END PROC known;’’’’’’’’’’’’’’’NPROC scope compulsory (BOOL CONST new state): (* DEF/mo *)’’’’’’’’’’’’’’. compulsory with scope := new state’’’’’’’’’’END PROC scope compulsory;’’’’.END PACKET basic table handling;’’’’’’’’’’’’’’NPACKET basic scanner DEFINES begin scanning, (* Autor: Heiko Indenbirken *)’’N next symbol, (* Stand: 27.10.1987/rr/mo *)’’. next data,’’’’’’’. next statement,’’. define chars,’’’’. scan line,’’’’’’’N scan line no, (* F29/rr *)’N get data types of input vars, (* F25/rr *)’. basic error,’’’’’. basic warning,’’’. basic list,’’’’’’. set scope,’’’’’’’. scanner scope:’’’NLET (* S y m b o l T y p e n *)’> any = 0, const = 1, var = 2, array = 3,’’’’> res word= 8, operator= 9, eos = 10, del =11,’’’’> stat no = 12, user fn = 20; (* DEF/mo *)’’’’’’’’’’NLET (* S y m b o l z e i c h e n *)’. less = 60, greater = 62,’’’N less equal = 28, unequal = 29, greater equal = 30, ’’’’’’’’’’’’’N point = 46, eol = 13, eop = 14,’’’’’’’’’’’’’’N go = 163, gosub = 164, goto = 165,’’’’’’’’’’’’’. sub = 235, to = 217;’’^LET name chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.0123456789!#$%",’’’’> quote = """", open bracket = "(",’’’’’’’’> comma = ",", close bracket = ")",’’’’’’’’ colon = ":",’’’’’’ exponent chars= "dDeE";’’’FILE VAR source file;’’’’’’’’’>TEXT VAR defint chars, defstr chars, record, letter,’’’’’’’’’’. scope, new name; (* DEF/mo *)’’’’REAL VAR r dummy;’’’’’’’’’’’’’>INT VAR act stat no, record no, rec len, scan pos, i dummy;’’’>BOOL VAR eol generated, at line begin, listing := FALSE;’’’’’’>PROC define chars (TEXT CONST begin, end, DTYPE CONST data):’’. FOR i FROM code (begin) UPTO code (end)’’’’’ REP IF data = int type’’’’’’. THEN defint chars CAT code (i) ’’’’’’’ ELIF data = text type’’’. THEN defstr chars CAT code (i) ’’’’’’’END PROC define chars;’’’’’’’’.PROC scanline (TEXT VAR line, INT VAR col):’’’ line := record;’’’’’’’’’’’’’ col := scan pos’’’’’’’’’’’’END PROC scanline;’’’’’’’’’’’’>INT PROC scan line no : record no END PROC scan line no;’’’’’’^PROC get data types of input vars (ROW 100 DTYPE VAR input var data, (* F25/rr *)’’’’’’’’’’’’’N INT VAR number input vars) :’’’’’’’’’’’’’’’ TEXT VAR first var char;’’’’ INT VAR var pos := scan pos; to begin of actual var;’’’’’ REP get next input var;’’’’’. skip brackets if necessary;’’’’’’’’’’’’’N IF var char <> comma THEN LEAVE get data types of input vars FI;’’’’’’’’ skip comma;’’’’’’’’’’’’’. . var char : record SUB var pos’’’’’’’’’’’’’ . to begin of actual var :’’N WHILE pos (name chars, var char) <> 0 REP var pos DECR 1 PER;’’’’’’’’’’’ var pos INCR 1;’ number input vars := 0;’ . get next input var :’’’’’’. first var char := deshift (var char);’’’N WHILE pos (name chars, var char) <> 0 REP var pos INCR 1 PER;’’’’’’’’’’’. var pos DECR 1;’’’’’’’’’’’’’’’. number input vars INCR 1;’’’’’’’’’’’’’’’^ input var data (number input vars) := var datatype (first var char, var char);’’’’’’’’’’> var pos := pos (record, ""33"", ""255"", var pos + 1);’’. . skip brackets if necessary :’’’’’’’’’’’’’’. IF var char = open bracket’’’’’’’’’’’’’. THEN INT VAR bracket counter := 1;’’’> REP count bracket UNTIL bracket counter = 0 PER;N var pos := pos (record, ""33"", ""255"", var pos + 1);’’’’’’’’’’ . count bracket :’’’’’’’N INT CONST open := pos (record, open bracket, var pos + 1),’’’’’’’’N close := pos (record, close bracket, var pos + 1);’’’’’’’’ IF open > 0’’’’’’’’’ THEN IF close > 0. THEN IF open > close’’’’’> THEN close bracket found’’’’’’’’’> ELSE open bracket found’’’’’’’’’ FI;’. ELSE open bracket found’’ FI;’’’’’’’’’ ELSE IF close > 0. THEN close bracket found’> ELSE LEAVE get data types of input vars ’ FI;’’’’’’’’’. . open bracket found :’’’’’’’’’’’’’’. bracket counter INCR 1;’’’’’’’’. var pos := open;’’’’’’’’’’’’’’’. . close bracket found :’’’’’’’’’’’’’. bracket counter DECR 1;’’’’’’’’. var pos := close;’’’’’’’’’’’’’’ . skip comma :’’’’’’’’’’’’’’> var pos := pos (record, ""33"", ""255"", var pos + 1);’’.END PROC get data types of input vars;’’’’’’’’.PROC begin scanning (FILE VAR basic file):’’’’ enable stop; source file := basic file;’’. to first record (source file);’’’’’’’’’’’’’’ col (source file, 1);’’’’’’’ IF eof (source file) ’’’’’’’. THEN errorstop ("Datei ist leer") FI; ’’’’’’ defint chars := "";’’’’’’’’’ defstr chars := ""; ’’’’’’’’> scope := ""; (* DEF/mo *)’’’’’’ act stat no ’’’’’’’’’’’’’’’^Wie schon aus dem vorhergehenden Punkt ersichtlich kann das Fehlen von trennenŻ’’’’’’’’’’’’’’’^den Leerstellen unschŚne Effekte haben, denn der #ib(3)#Scanner#ie(3)# (vgl. AnhangB) des’’’’’^BASIC-Compilers erkennt anhand der Leerstelle (Code 32) beim Durchlauf durch das’’’’’’’’’’’’’’>Programm, daū ein #ib(3)#Symbol#ie(3)# zu Ende ist. ’’’’’’’’’’^Es kommt somit immer dann zu Fehlern, wenn zwei Symbole (z.B. reservierte WŚrter,’’’’’’’’’’’’’^Konstanten, Variablen etc.) nicht durch Leerzeichen getrennt sind, und der Scanner’’’’’’’’’’’’.sie als ein Symbol "versteht". ’’’’’’’’’’’’’’’> "a = 3 : b = 4 : PRINT a b" erzeugt die Ausgabe "34". ’N "a = 3 : b = 4 : PRINT ab" erzeugt hingegen die Ausgabe "0", denn der’NCompiler sieht "ab" als #on ("b")#einen Variablennamen an. #off ("b")# ’’’’’’’>4.2. #ib(3)#Datentypen#ie(3)# und #ib(3)#Konstanten#ie(3)# ’’’NDer EUMEL-BASIC-Compiler unterscheidet grundsŁtzlich zwischen zwei DatenŻ’’’’’Ntypen, nŁmlich zwischen #ib(3)#Texte#ie(3)#n und #ib(3)#Zahlen#ie(3)#. ’’’’’’’.#ib(3)#Datentyp TEXT#ie(3)# #off ("b")# ’’’’’’^Texte dŪrfen alle Zeichen enthalten (Codes 0 bis 255) und bis zu 32000 Zeichen lang’’’’’’’’’’’^Die zugehŚrigen Konstanten werden von #ib(3)#AnfŪhrungszeichen#ie(3)# begrenzt, z.B.: ’’’’’’’’ "Anzahl EintrŁge: " ’’’’’’’’ "General-Musik-Direktor" ’’’^AnfŪhrungszeichen (Code 34) dŪrfen #on("i")#innerhalb#off("i")# von Text-Konstanten nicht vorŻnBei Zahlen unterscheidet der Compiler noch zwischen #ib(3)#INTs#ie(3)# (#ib(3)#Ganzzahlen#ie(3)#) und REALs’’’^(#ib(3)#Gleitkommazahlen#ie(3)#). Diese entsprechen im Hinblick auf den Wertebereich genau den.in ELAN bekannten INTs und REALs. ’’’’’’’’’’’’.#ib(3)#Datentyp INT#ie(3)# #off ("b")# ’’’’’’’NINT-Werte dŪrfen zwischen -32768 und 32767 liegen. INT-Konstanten dŪrfen aber’n#on("i")#nur#off("i")# aus Ziffern und einem optionalen '%'-Zeichen am Ende bestehen. Das bedeutet,’’’’’’’’’’’Ndaū die INT-Konstanten im Bereich von 0 bis 32767 liegen kŚnnen. ’’’’’’’’’’’’’^Ein nachgestelltes '%'-Zeichen kennzeichnet eine Konstante nochmals explizit als’’’’’’’’’’’’’’NINT. (Diese Option wurde aus KompatibilitŁtsgrŪnden implementiert.) ’’’’’’’’’’.#ib(3)#Datentyp REAL#ie(3)# #off ("b")# ’’’’’’>REALs kŚnnen Werte zwischen -9.999999999999*10#u#126#e# und ’’.9.999999999999*10#u#126#e# annehmen. ’’’’’’’’’^Die kleinste positive von Null verschiedene Zahl ist 9.999999999999*10#u#-126#e#. ’’’’’’’’’’’’NDer kleinste REAL-Wert mit x + 1.0 > 1.0 ist gleich 10#u#-12#e#. ’’’’’’’’’’’’’NREAL-Konstanten werden gebildet aus Vorkommastellen, Dezimalpunkt, NachkomŻ’’’nmastellen, Zeichen "E" oder "D" (jeweils auch klein) fŪr den #ib(3)#Exponent#ie(3)#en gefolgt vom’’’’’’’’’’’’’.Vorzeichen und den Ziffern des Exponenten. ’’’NDabei mŪssen nicht fŪr jede REAL-Konstante alle diese Elemente benutzt werden.~Unverzichtbar sind #on("i")#entweder#off("i")# der Dezimalpunkt #on("i")#oder#off("i")# der Exponent. Ebenso mŪssen’’’’’’’’’’’>zumindest entweder Vor- oder Nachkommastellen vorhanden sein. .Beispiele fŪr gŪltige REAL-Konstanten sind: ’’NNicht erlaubt sind dagegen folgende Schreibweisen fŪr REAL-Konstanten: ’’’’’’’. e12 (#ib(3)#Mantisse#ie(3)# fehlt) ’. 100 (ist INT-Konstante) ’’’’’’’’’’’’> . (weder Vor- noch Nachkommastellen) ’’’’’’’’’’’’’ .E-12 (dito) ’’’’’’’’’. 1exp-3 ('exp' nicht erlaubt) ’’’’’’’’’’. -1.99e30 (Mantisse hat Vorzeichen) ’’’’’’^Das letzte Beispiel zeigt, daū auch vor REAL-Konstanten keine #ib(3)#Vorzeichen#ie(3)# erlaubtNsind. Da normalerweise keine REAL-Konstanten, sondern vielmehr numerische’’’’’^AusdrŪcke verlangt werden, kŚnnen durch Voranstellen des Operators '-' (vgl. 4.4.)’’’’’’’’’’’’Nauch #ib(3)#negative Zahlenwerte#ie(3)# leicht erzeugt werden. ’’’’’’’’’’’’’’’NAn REAL-Konstanten darf eines der Zeichen "!" und "Ž" angehŁngt werden. Diese’^Option wurde aus KompatibilitŁtsgrŪnden eingebaut. Wird ein "!" oder "Ž" an eine’’’’’’’’’’’’’’NINT-Konstante angehŁngt, so verwandelt es diese in eine REAL-Konstante. ’’’’’’>Beispiel: 10000! oder 10000Ž entspricht 10000. oder 1E4 ’’’’’’4.3. Variablen und Felder ’’’’^Der BASIC-Compiler stellt fŪr die in 4.2. vorgestellten Datentypen TEXT, INT und’’’’’’’’’’’’’’.REAL auch Variablen zur VerfŪgung. ’’’’’’’’’’’NDie #ib(3)#Variablennamen#ie(3)# mŪssen folgenden Bedingungen genŪgen: ’’’’’’’>- Ein Variablenname muū mit einem Buchstaben beginnen. ’’’’’’’^- Variablennamen dŪrfen ab der zweiten Stelle auūer Buchstaben auch Ziffern, DeziŻ’’’’’’’’’’’’^ malpunkte sowie die Zeichen "!", "Ž", "$" und "%" enthalten. Leerzeichen dŪrfen’’’’’’’’’’’’’. in Variablennamen dagegen nicht vorkommen. ’^- Variablennamen dŪrfen nicht mit FN beginnen (vgl. 4.5. benutzer-definierte FunkŻ’’’’’’’’’’’’n- #ib(3)#Reservierte WŚrter#ie(3)# (siehe Anhang A) dŪrfen kein Variablenname sein. Als Teiltexte’’’’’’’’’’’’’^ dŪrfen reservierte WŚrter aber in Variablennamen enthalten sein (auch am Anfang). ’’’’’’’’’’^Variablennamen dŪrfen beliebig lang sein, und alle Zeichen eines Variablennamens’’’’’’’’’’’’’’sind signifikant. ’’’’’’’’’’’’ŽWelchen Typ eine Variable hat, entscheidet der Compiler nach folgenden #ib(3)#Kriterien#ie(3, " fŪr den Typ einer Variablen")# (in’’’’’’’’’’’’.der Reihenfolge ihrer Beachtung): ’’’’’’’’’’’’N- Ist das letzte Zeichen des Namens ein "!" oder "Ž", so bezeichnet er eine’’’ REAL-Variable. ’’’’’’’’’’’’’N- Ist das letzte Zeichen ein "%", so handelt es sich um eine INT-Variable. ’’’^- Ist das letzte Zeichen des Namens ein "$", so ist die Variable vom Typ TEXT. ’’’’’’’’’’’’’’’^- Liegt das erste Zeichen des Namens im Bereich der mit einer #ib(3)#DEFINT#ie(3)#-Anweisung’’^ (vgl. Kap. 8) festgelegten Buchstaben, so ist die Variable eine INT-Variable. ’’’’’’’’’’’’’’n- Liegt das erste Zeichen im Bereich der mit einer #ib(3)#DEFSTR#ie(3)#-Anweisung (vgl. Kap. 8)’’’’’’’’’’’’’’’N festgelegten Buchstaben, so handelt es sich um eine TEXT-Variable. ’’’’’’’’’N- Wenn keine der obigen Bedingungen erfŪllt ist, dann bezeichnet der Name eine. Variable des Datentyps REAL. ’’’’’’’’’’’’’’’^Variablen, denen noch kein Wert zugewiesen wurde, haben den Inhalt null (bei INT’’’’’’’’’’’’’’>und REAL) beziehungsweise Leertext (bei TEXT). ’’’’’’’’’’’’’’’Felder (#ib(4)#Arrays#ie(4)#) ^Ein Feld (Array) ist eine Ansammlung von mehreren Variablen gleichen Typs. Jedes’’’’’’’’’’’’’’^Feld hat einen Namen. FŪr die #ib(3)#Feldnamen#ie(3)# gelten die gleichen Regeln wie fŪr die’’NNamen von normalen Variablen. Auch die Datentypen werden nach den gleichen’’’’>Kriterien bestimmt wie bei einfachen Variablen. ’’’’’’’’’’’’’’^In einem Feld kŚnnen die Elemente in bis zu 100 #ib(3)#Dimensionen#ie(3)# abgelegt werden. Auf^ein Element eines Feldes wird Ūber den Feldnamen und den Index / die #ib(3)#Indizes#ie(3)# des^Elements zugegriffen. Beim Zugriff auf das Element mŪssen so viele Indizes angeŻ’’’’’’’’’’’’’’.geben werden, wie das Feld Dimensionen hat. ’’^Das Feld 'tabelle' habe zwei Dimensionen. Mit 'tabelle (3, 5)' wird auf das Element’’’’’’’’’’’^mit dem Index 3 in der ersten Dimension und dem Index 5 in der zweiten Dimension’’’’’’’’’’’’’’^Beim ersten Zugriff auf ein Element eines Feldes wird anhand der Zahl der Indizes’’’’’’’’’’’’’^die Anzahl der Dimensionen festgestellt und das Feld so eingerichtet, daū in jeder’’’’’’’’’’’’.Dimension der grŚūte Index zehn ist. ’’’’’’’’’^Soll ein Feld mit anderen grŚūten Indizes eingerichtet werden, so muū hierzu die’’’’’’’’’’’’’’N#ib(3)#DIM#ie(3)#-Anweisung verwendet werden (siehe Kapitel 8). ’’’’’’’’’’’’’’^Der kleinste Index ist voreingestellt auf null, kann aber mit der #ib(3)#OPTIO:= 0;’’’’’’’’’’’. read record (source file, record); ’’’’’’’’’ rec len := length (record);’ scan pos := 0; ’’’’’’’’’’’’’ record no := 1;’’’’’’’’’’’’’ eol generated := FALSE;’’’’’ at line begin := TRUE;’’’’’’ THEN line; putline (record);’’’’ IF sysout <> ""’’’’’’. THEN cout (record no)’’’’’’’’’’’’’’ ELSE cout (record no)’’’’’END PROC begin scanning;’’’’’’PROC next statement:’’’’’’’’’’ IF eof (source file)’’’’’’’’ THEN errorstop (99, "")’’’’’ ELSE eol generated := FALSE; at line begin := TRUE;’ down (source file);’’’’. read record (source file, record); ’’’’. rec len := length (record);’’’’’’’’’’’’ scan pos := 0; ’’’’’’’’ record no INCR 1;’’’’’’ THEN putline (record);’’’’ IF sysout <> ""’’’’’’. THEN cout (record no)’’’’’’’’’’’’’’ ELSE cout (record no)’’’’’END PROC next statement;’’’’’’NPROC next symbol (TEXT VAR name, INT VAR no, type, DTYPE VAR data):’’’’’’’’’’’ enable stop; clear symbol;’’’’’’’’’’’’’’’ IF eol generated’’’’’’’’’’’’ THEN next statement FI;’’’’’ IF eol reached’’’’’’’’’’’’’’ THEN generate eol’’’’’’’’’’’N ELIF at line begin CAND stat no found (* F15/rr *)’ THEN generate stat no’’’’’’’ ELSE generate chars FI .’’’ type := any; data := void type .’’’’’’’’> scan pos := pos (record, ""33"", ""255"", scan pos+1); ’’’’’ scan pos = 0 .’’’’’’’’’’’’’generate eol : IF eof (source file)’’’’’’’’. THEN name := "EOF"; no := eop; type := eos> ELSE name := "EOL"; no := eol; type := eos FI;’’’’’’’’’’’’ eol generated := TRUE .’’’’Nstat no found: (* F15/rr *)’ at line begin := FALSE;’’’’’. pos ("0123456789", act char) <> 0 .’’’’’’’’’Ngenerate stat no: (* F15/rr *)’. INT CONST next scan pos := last number pos;’> name := subtext (record, scan pos, next scan pos);’’’ act stat no := int (name);’’. scan pos := next scan pos;’’’’’’’’’’’’’’’. no := act stat no; type := stat no .’’’’’’Nlast number pos : (* F15/rr *)’> INT CONST high := pos (record, ""058"", ""255"", scan pos),’> low := pos (record, ""032"", ""047"", scan pos);’ IF high > 0’’’’’’’’’’’’’’’ THEN IF low > 0’’’’’’’’. THEN min (high, low) - 1’’’’’’’ ELSE high - 1’’ FI ELIF low > 0 THEN low - 1’’’’’’’’’’’ ELSE LENGTH record’’’’’generate chars:’’’’’’’’’’’’’’’ SELECT code (act char) OF’’’N CASE 32: next symbol (name, no, type, data) (* Space *) N CASE 34: generate text denoter (* " *) N CASE 39: generate eol (* ' *)’N CASE 42, 43, 45, 47, 92, 94, 61: generate operator (* *,+,-,/,\,^,=*)’N CASE 60: generate less op (*<, <=, <> *) N CASE 62: generate greater op (*>, >= *)’N CASE 46: treat point (* . *)’> CASE 48, 49, 50, 51, 52, 53, 54, 55, 56, 57: ’’’’’’’’’’’’’’’N generate numeric const (* 0 - 9 *)’N CASE 58: generate eos (* : *)’N CASE 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,’’’’N 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103,’’’N 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,’’N 118, 119, 120, 121, 122, (* small and large letters *)’ generate res word or id. OTHERWISE generate delimiter END SELECT .’’generate text denoter:’’’’’’’’ get text const (name, data); type := const .’’’’’’’’’’’’generate operator:’’’’’’’’’’’’> name := act char; no := code (name); type := operator .’’generate less op:’’’’’’’’’’’’’ IF next char = "="’’’’’’’’’’> THEN name := "<="; no := less equal; skip char’’’’’’’’’’’’’ ELIF next char = ">"’’’’’’’’> THEN name := "<>"; no := unequal; skip char’’’’’’’’’’’’’. ELSE name := "<"; no := less FI;’’’’’’’’’’’ type := operator .’’’’’’’’’generate greater op:’’’’’’’’’’ IF next char = "="’’’’’’’’’’> THEN name := ">="; no := greater equal; skip char ’’’’’’’’. ELSE name := ">"; no := greater; FI;’’’’’’ type := operator .’’’’’’’’’. IF pos ("0123456789", next char) <> 0’’’’’’’. THEN generate numeric const’’’’’’’’’’’’’’’ ELSE name := ".";’’’’’’’’’ no := point;’’’’’’’’’ type := del’’’’’’’’’’generate numeric const:’’’’’’’. get numeric const (name, data);’’’’’’’’’’’’’ type := const .’’’’’’’’’’’’last name char:’’’’’’’’’’’’’’’ name SUB LENGTH name .’’’’’. name := ":"; no := eos; type := eos .’’’’generate res word or id:’’’’’’ get name chars;’’’’’’’’’’’’’. IF reserved (deshift name, no, type)’’’’’’’’. THEN IF type = res word AND no = go’’’’’’’ THEN treat go’’’’’’ ELSE IF function name’’’’’. THEN data := ftn datatype;’’’’’’’’’. type := user fn’’’’’’’’’’’’’’’N ELSE data := var datatype (deshift (name) SUB 1, last name char);’’. type := var or array’’’’’’’’’’. put name (scope, deshift name, no)’’’. next symbol (new name, no, type, data);’’’’’. IF no = to AND type = res word’’’’’’’’’’’’’’ THEN name CAT new name;’’’ no := goto’’’’’’’’’’’. ELIF no = sub AND type = res word’’’’’’’’’’’ THEN name CAT new name;’’’ no := gosub’’’’’’’’’’. ELSE scan error (102, name, "")’’’’’’’’’’’get name chars:’’’’’’’’’’’’’’’ TEXT VAR deshift name :: "";. INT VAR begin of name :: scan pos;’’’’’’’’’’. FOR scan pos FROM scan pos UPTO rec len’’’’’ WHILE name chars found’’’’’’. REP deshift name CAT deshifted char PER;’’’’ scan pos DECR 1;’’’’’’’’’’’’> name := subtext (record, begin of name, scan pos).’’’’’’’’’’name chars found:’’’’’’’’’’’’’. pos (name chars, act char) > 0 .’’’’’’’’’’’function name:. subtext (deshift name, 1, 2) = "fn" .’’’’’’ IF last name char = "$"’’’’’ THEN text type’’’’’’’’’’’’’’ ELIF last name char = "%"’’’ THEN int type’’’’’’’’’’’’’’’ ELSE real type FI .’’’’’’’’ IF array name’’’’’’’’’’’’’’’ THEN name CAT "()";’’’’’’’’’N deshift name CAT "()"; (* F30/rr *)’’’’’ ELSE var FI .’’’’’’’’’’’’’’ next scan char = "(" .’’’’’deshifted char:’’’’’’’’’’’’’’’ letter := act char;’’’’’’’’’. IF letter >= "A" AND letter <= "Z"’’’’’’’’’’. THEN code (code (letter) + 32)’’’’’’’’’’’’’’ ELSE letter FI .’’’’’’’’’’’generate delimiter:’’’’’’’’’’’> name := act char; no := code (name); type := del .’’’’’’’Nnext scan char: record SUB pos (record, ""33"", ""255"", scan pos+1). ’’’’’’’’.next char: (record SUB scan pos + 1) .’’’’’’’.act char: record SUB scan pos .’’’’’’’’’’’’’’skip char: scan pos INCR 1 .END PROC next symbol;’’’’’’’’’NDTYPE PROC var datatype (TEXT CONST first name char, last name char) :’’’’’’’’> IF last name char = "!" OR last name char = "#"’’’’’’’’’’’’’ THEN real type’’’’’’’’’’’’’’ ELIF last name char = "$"’’’ THEN text type’’’’’’’’’’’’’’ ELIF last name char = "%"’’’ THEN int type’’’’’’’’’’’’’’’. ELIF pos (defint chars, first name char) > 0 THEN int type’’’’’’’’’’’’’’’. ELIF pos (defstr chars, first name char) > 0 THEN text type’’’’’’’’’’’’’’ ELSE real type FI .’’’’’’’’END PROC var dN BASE#ie(3)#-’’>Anweisung (vgl. Kap. 8) auch auf eins eingestellt werden. ’’’’^Die Elemente eines Feldes sind, wie auch die einfachen Variablen, mit den Werten’’’’’’’’’’’’’’^null (INT und REAL) beziehungsweise Leertext (TEXT) vorbesetzt, sofern ihnen noch’’’’’’’’’’’’’nichts zugewiesen wurde. ’’’’’4.4. Operatoren ’’’’’’’’’’’’’’NNachfolgend sind alle Operatoren aufgelistet, die vom EUMEL-BASIC-Compiler’’’’Ūbersetzt werden. ’’’’’’’’’’’’>Arithmetische #ib(4)#Operatoren#ie(4, ", arithmetische")# ’’’’N#ib(3)##ie(3, "+")##ib(3)##ie(3, "-")##ib(3)##ie(3, "*")##ib(3)##ie(3, "/")# ’>#ib(3)##ie(3, "\")##ib(3)##ie(3, "MOD")##ib(3)##ie(3, "^")# ’’N Operand(en) Zweck Ergebnistyp ’’’’’’’’’’’’> + INT positives Vorzeichen INT ’’’’> REAL positives Vorzeichen REAL ’’’> INT, INT INT-Addition INT ’’’’> REAL, REAL REAL-Addition REAL ’’’> - INT negatives Vorzeichen INT ’’’’> REAL negatives Vorzeichen REAL ’’’> INT, INT INT-Subtraktion INT ’’’’> REAL, REAL REAL-Subtraktion REAL ’’’> * INT, INT INT-Multiplikation INT ’’’’> REAL, REAL REAL-Multiplikation REAL ’’’. / (INT, INT) #linefeed (0.5)# ’’’’’’’’’’> REAL-Division REAL ’’’. REAL, REAL #linefeed (1.0)# ’’’’’’’’’’. \ INT, INT #linefeed (0.5)# ’’’’’’’’’’> INT-Division INT ’’’’. (REAL, REAL) #linefeed (1.0)# ’’’’’’’’’’>MOD INT, INT INT-Divisionsrest INT ’’’’> REAL, REAL Divisionsrest nach REAL ’’’> Runden auf Ganzzahl (nicht INT) ’’’’’’’’’. ^ (INT, INT) #linefeed (0.5)# ’’’’’’’’’’> Potenzierung REAL ’’’. REAL, REAL #linefeed (1.0)# ’’’’’’’’’’Hinweis: #off ("b")# ’’’’’’’’’^Wird ein Operator mit numerischen Operanden unterschiedlichen Typs (also INT und’’’’’’’’’’’’’’^REAL) aufgerufen, so wird der INT-Operand nach REAL konvertiert und der Operator’’’’’’’’’’’’’’.mit den beiden REAL-Operanden aufgerufen. ’’’’NSind die Operandtypen in Klammern angegeben, so werden vor AusfŪhrung der OpeŻNration die Operanden zu den nicht eingeklammerten Typen konvertiert. ’’’’’’’’’nDa jede #ib(3)#Konvertierung#ie(3)# Zeit benŚtigt, sollte der Benutzer darauf achten, daū mŚglichst’’’’’’’’’’’wenig konvertiert werden muū. >Hierzu ein (etwas extremes, aber nicht seltenes) Beispiel: ’’’NDer Aufruf a%\b bewirkt zunŁchst eine Konvertierung von a% nach REAL:’’’’’’’’’NCDBL(a%)\b. Intern wird die Berechnung dann aber wieder mit INTs ausgefŪhrt:’’NCINT(CDBL(a%))\CINT(b). Das Ergebnis wird also erst nach drei Konvertierungen’^geliefert. Schreibt man dagegen sofort a%\CINT(b), dann reicht eine Konvertierung’’’’’’’’’’’’’NEs muū auūerdem bei den Operatoren +, - und * fŪr INTs darauf geachtet werden,Ndaū das Ergebnis innerhalb des INT-Wertebereichs liegen muū, da es sonst zu’’’.einem #ib(3)#INT-Ųberlauf#ie(3)# kommt. ’’’’’’Text-Operator #ib(4)#+#ie(4)# .#ib(3)##ie(3, "Operatoren, Text-")# ’’’’’’’’’’NFŪr Text-Manipulationen wird der Operator '+' mit zwei TEXT-Operanden zur’’’’’^VerfŪgung gestellt. Mit '+' werden zwei Texte aneinandergehŁngt (konkateniert). ’’’’’’’’’’’’’’>Vergleichsoperatoren#ib(4)##ie(4, "Operatoren, Vergleichs-")# >Im EUMEL-BASIC gibt es folgende Vergleichsoperatoren: ’’’’’’’’#ib(3)#=#ie(3)# gleich ’’’#ib(3)#<>#ie(3)# ungleich ’#ib(3)#<#ie(3)# kleiner ’’#ib(3)#>#ie(3)# grŚūer ’’’.#ib(3)#<=#ie(3)# kleiner oder gleich ’’’’’’.#ib(3)#>=#ie(3)# grŚūer oder gleich ’’’’’’’NBei den numerischen Datentypen werden mit den Vergleichsoperatoren die ZahlenŻwerte verglichen. ’’’’’’’’’’’’NSollen ein INT und ein REAL verglichen werden, dann wird der INT vorher nach’’>REAL konvertiert und ein REAL-Vergleich vorgenommen. ’’’’’’’’’^Bei Texten dienen die Vergleichsoperatoren zum Vergleich der Zeichencodes. Dies’’’’’’’’’’’’’’’^ermŚglicht zum Beispiel ein alphabetisches Sortieren von WŚrtern, mit der EinschrŁnŻ’’’’’’’’’’Nkung, daū Groū- und Kleinbuchstaben unterschiedliche Zeichencodes haben (verŻ’Ngleiche EUMEL-Zeichensatz-Tabelle im Benutzerhandbuch) und somit verschieden’’eingeordnet werden. ’’’’’’’’’’^Es gilt a$ < b$, wenn die Zeichenkette in a$ codemŁūig vor der Zeichenkette in b$’’’’’’’’’’’’’> steht: "a" < "b" (TRUE) "aa"< "a" (FALSE) ’’’^Die Vergleichsoperatoren liefern, je nachdem ob die Aussage wahr oder falsch ist, die’’’’’’’’’.INT-Werte 0 (falsch) oder -1 (wahr). ’’’’’’’’’^Anhand des Ergebnisses einer Vergleichsoperation kann zum Beispiel der ProgrammŻ’’’’’’’’’’’’’’>ablauf gesteuert werden (siehe Kapitel 8, IF-Anweisung). ’’’’’Logische Operatoren ’’’’’’’’’’.#ib(3)##ie(3, "Operatoren, logische")# ’’’’’’’.Die logischen Operatoren haben zwei Aufgaben: ^1. logische (Boolsche) VerknŪpfung von #ib(3)#Wahrheitswerte#ie(3)#n, die zum Beispiel von’’’’. Vergleichsoperationen geliefert werden und ^2. bitweise AusfŪhrung von logischen VerknŪpfungen auf den internen (ZweierkomŻ’’’’’’’’’’’’’’’. plement-) Darstellungen von INT-Werten. ’’’^Da fŪr beide Aufgaben die gleichen Operatoren benutzt werden, wurden fŪr die WahrŻ’’’’’’’’’’’’Nheitswerte die INT-Werte 0 fŪr falsch (Bitmuster: 0000000000000000) und -1 fŪr.wahr (Bitmuster: 1111111111111111) gewŁhlt. ’’N Operand(en) Zweck insbesondere gilt ’’’’’’’’n#ib(3)#NOT#ie(3)# INT #linefeed (0.5)# NOT0->-1 ’’’’’’’’’’’’’’’> #ib(3)#Negation#ie(3)# ’’’’’’’’’’’’’’’^ (REAL) #linefeed (1.0)# NOT-1->0 ’’’’’’’’’’’’’^#ib(3)#AND#ie(3)# INT, INT #ib(3)#UND-VerknŪpfung#ie(3)# 0AND0->0 ’’’’N 0AND-1->0 ’’’’’’’’’’’’’’’N -1AND0->0 ’’’’’’’’’’’’’’’N -1AND-1->-1 ’’’’’’’’’’’’’^ #ib(3)#OR#ie(3)# INT, INT #ib(3)#ODER-VerknŪpfung#ie(3)# 0OR0->0 ’’’’’N 0OR-1->-1 ’’’’’’’’’’’’’’’N -1OR0->-1 ’’’’’’’’’’’’’’’N -1OR-1->-1 ’’’’’’’’’’’’’’^#ib(3)#XOR#ie(3)# INT, INT #ib(3)#Exklusiv-ODER-VerknŪpfung#ie(3)# 0XOR0->0 ’’’’N 0XOR-1->-1 ’’’’’’’’’’’’’’N -1XOR0->-1 ’’’’’’’’’’’’’’N -1XOR-1->0 ’’’’’’’’’’’’’’^#ib(3)#EQV#ie(3)# INT, INT #ib(3)#Öquivalenz-VerknŪpfung#ie(3)# 0EQV0->-1 ’’’N 0EQV-1->0 ’’’’’’’’’’’’’’’N -1EQV0->0 ’’’’’’’’’’’’’’’N -1EQV-1->-1 ’’’’’’’’’’’’’^#ib(3)#IMP#ie(3)# INT, INT #ib(3)#Implikations-VerknŪpfung#ie(3)# 0IMP0->-1 ’’’N 0IMP-1->-1 ’’’’’’’’’’’’’’N -1IMP0->0 ’’’’’’’’’’’’’’’N -1IMP-1->-1 ’’’’’’’’’’’’’PrioritŁten der Operanden ’’’’NHier die Ųbersicht Ūber alle Oatatype;’’’’’’’’NBOOL PROC next data (TEXT VAR data text, DTYPE VAR data type) : (* F17/rr *)’ data type := void type;’’’’’ IF no more data’’’’’’’’’’’. THEN scan pos := rec len;’’’’’’’’’’’’’ data text := "";’’ FALSE’’’’’’’’’’’’’ ELIF quoted string’’’’’’’’’’ THEN get quoted string; TRUE’’’’’’’’’’’’’’. ELSE get unquoted string;’’’’’’’’’’’’’’ TRUE’’’’’’’’’’’’’’ . no more data :’’’’’’’’’’’’> scan pos := pos (record, ""33"", ""255"", scan pos+1);’’ scan pos = 0’’’’’’’’’’’’ . quoted string :’’’’’’’’’’’. (record SUB scan pos) = quote’’’’’’’’’’’ . get quoted string :’’’’’’’. get text const (data text, data type);’’ . get unquoted string :’’’’’N INT CONST comma or colon pos 1 := position of comma or colon minus one;’^ data text := compress (subtext (record, scan pos, comma or colon pos 1));’’’’’’’’’’’’’’’. scan pos := comma or colon pos 1;’’’’’’. . position of comma or colon minus one :’’’’> INT CONST colon pos := pos (record, colon, scan pos),’’’> comma pos := pos (record, comma, scan pos);’’’ IF colon pos > 0’’’’’’’’ THEN IF comma pos > 0> THEN min (colon pos, comma pos) - 1’’’’’’’’’’. ELSE colon pos - 1’’’’’’’’’’’ FI’’’’’’’’’’’’’’ ELSE IF comma pos > 0. THEN comma pos - 1’’’’’’’’’’’. ELSE LENGTH record’’’’’’’’’’’ FI’’’’’’’’’’’’’’END PROC next data;’’’’’’’’’’’>PROC get numeric const (TEXT VAR value, DTYPE VAR data):’’’’’’ check datatype .’’’’’’’’’’’ IF act char = "-"’’’’’’’’’’’ THEN value := "-";’’’’’’’’’’ scan pos INCR 1’’’’’’’’ ELIF act char = "+"’’’’’’’’’ THEN value := "+";’’’’’’’’’’ scan pos INCR 1’’’’’’’’ ELSE value := "" FI .’’’’’’ get exponent .’’’’’’’’’’’’’. FOR scan pos FROM scan pos UPTO rec len’’’’’ WHILE digit found’’’’’’’’’’’. REP value CAT act char PER .’’’’’’’’’’’’’’’ IF act char = "."’’’’’’’’’’’ THEN value CAT ".";’’’’’’’’’ scan pos INCR 1’’’’’’’’. ELIF pos (exponent chars, act char) > 0’’’’’ THEN value CAT ".0"’’’’’’’’’ ELSE LEAVE get const FI .’’N IF pos (exponent chars, act char) > 0 (* F1/rr *)’’’’’’’’’’’ THEN value CAT "e";’’’’’’’’’ scan pos INCR 1;’’’’’’’ evtl get sign;’’’’’’’’’ get digits’’’’’’’’’’’’’evtl get sign:. IF act char = "+" OR act char = "-"’’’’’’’’’ THEN value CAT act char;’’’’ scan pos INCR 1’’’’’’’’. "0" <= act char AND act char <= "9" .’’’’’’check datatype:’’’’’’’’’’’’’’’ IF act char = "%" ’’’’’’’’’’ THEN IF integer ok (value)’’ THEN data := int type’’N ELSE scan error (2, value, "INT-Konstante nicht korrekt") FI’’’’’’’’’’’. ELIF act char = "!" OR act char = "#"’’’’’’’ THEN IF real ok (value)’’’’’ THEN data := real type’N ELSE scan error (2, value, "REAL-Konstante nicht korrekt") FI’’’’’’’’’’ ELIF integer ok (value)’’’’’. THEN scan pos DECR 1; data := int type’’’’’ ELIF real ok (value)’’’’’’’’ THEN scan pos DECR 1;’’’’’’’ data := real type’’’’’’N ELSE scan error (2, value, "Numerische Konstante nicht korrekt") FI . ’’’’’.act char: record SUB scan pos .’’’’’’’’’’’’’’END PROC get numeric const;’’’>PROC get text const (TEXT VAR value, DTYPE VAR data):’’’’’’’’’. INT CONST quote 1 := scan pos;’’’’’’’’’’’’’’. scan pos := pos (record, """", scan pos+1);’ IF quote 1 < scan pos’’’’’’’> THEN value := subtext (record, quote 1+1, scan pos-1);’’’’’’ data := text type’’’’’’N ELSE scan error (15, subtext (record, quote 1), "("" fehlt)") FI .’’’’’’’’’END PROC get text const;’’’’’’.BOOL PROC integer ok (TEXT VAR zahl):’’’’’’’’’ disable stop;’’’’’’’’’’’’’’’ i dummy := int (zahl);’’’’’’ THEN clear error;’’’’’’’’’’’ ELIF last conversion ok’’’’’ THEN zahl := ""0""0"";’’’’’’. replace (zahl, 1, i dummy);’’’’’’’’’’’’ ELSE FALSE FI .’’’’’’’’’’’’END PROC integer ok;’’’’’’’’’’.BOOL PROC real ok (TEXT VAR zahl):’’’’’’’’’’’’ disable stop;’’’’’’’’’’’’’’’ r dummy := real (zahl);’’’’’ THEN clear error;’’’’’’’’’’’ ELIF last conversion ok’’’’’. THEN zahl := ""0""0""0""0""0""0""0""0"";’’’’. replace (zahl, 1, r dummy);’’’’’’’’’’’’ ELSE FALSE FI .’’’’’’’’’’’’END PROC real ok;’’’’’’’’’’’’’>PROC basic error (INT CONST no, TEXT CONST name, addition):’’’N basic error ("Compiler", no, record no, act stat no, name, addition, TRUE)’’END PROC basic error;’’’’’’’’’^PROC basic error (INT CONST no, TEXT CONST name, addition, BOOL CONST leave statement):’’’’’’’^ basic error ("Compiler", no, record no, act stat no, name, addition, leave statement)’’’’’’’END PROC basic error;’’’’’’’’’>PROC scan error (INT CONST no, TEXT CONST name, addition):’’’’N basic error ("Scanner", no, record no, act stat no, name, addition, TRUE)’’’END PROC scan error;’’’’’’’’’’NPROC basic warning (TEXT CONST warning text): (* mo *)’’’’’’’’’’> basic warning (record no, act stat no, warning text)’’’’’’’’END PROC basic warning;’’’’’’’.PROC basic list (BOOL CONST t):’’’’’’’’’’’’’’’ listing := t ’’’’’’’’’’’’’’’END PROC basic list;’’’’’’’’’’BOOL PROC basic list:’’’’’’’’’END PROC basic list;’’’’’’’’’’NPROC set scope (TEXT CONST new scope): (* DEF/mo *)’’ scope := new scope’’’’’’’’’’END PROC set scope;’’’’’’’’’’’NTEXT PROC scanner scope: (* DEF/mo *)’’END PROC scanner scope;’’’’’’’END PACKET basic scanner;’’’’’NPACKET basic stat no DEFINES init stat no, (* Autor: Heiko Indenbirken *)’’N stat no pos, (* Stand: 27.10.1987/rr/mo *)’’. label pos,’’’’’’’. all stat no:’’’’’TEXT VAR found stat no :: nil;.INT VAR i, akt stat no :: 0, found no :: 0;’’’NPROC init stat no (FILE VAR f, INT VAR error no): (* F21/rr *)’N(*Die Datei 'f' muū im 'modify-Mode' sein. *)’ INT VAR line no;’’’’’’’’’’’’N akt stat no := -1; (* F28/rr *)’ found no := 0;’’’’’’’’’’’’’’ found stat no := nil;’’’’’’’N error no := 0; (* F21/rr *)’ to first record (f);’’’’’’’’ disable stop;’’’’’’’’’’’’’’’ FOR line no FROM 1 UPTO 4000> REP exec (PROC (TEXT CONST, INT CONST) check, f, line no);’’. IF is error THEN check error FI;’’’’’’’’ IF eof (f)’’’’’’’’’’’’’’ THEN LEAVE init stat no’ ELSE down (f) FI’’’’’’’’N. check error : (* F21/rr *)’ IF error code = 100’’’’’’’ THEN clear error;’’’’’’ error no INCR 1;’’. ELSE LEAVE init stat no;’’’’’’’’’’’’’’’END PROC init stat no;’’’’’’’’>PROC check (TEXT CONST record, INT CONST line no):’’’’’’’’’’’’ IF statement no vorhanden’’’. THEN remember statement no FI .’’’’’’’’’’’’Nstatement no vorhanden: (* F15/rr *)’N INT CONST first number pos := pos (record, ""048"", ""057"", 1);’’’’’’’’’’’N first number pos > 0 CAND first number pos = first non blank pos .’’’’’’’’’Nfirst non blank pos : (* F15/rr *)’. pos (record, ""033"", ""255"", 1) .’’’’’’’’remember statement no:’’’’’’’’ get statement no;’’’’’’’’’’’. IF neue nummer ist groesser als vorherige’’’. THEN akt stat no := neue nummer;’’’’’’’’’’’’ cout (neue nummer);’’’’ found nperatoren in der Reihenfolge ihrer AusfŪhrung ’’N Operator PrioritŁt ’’’’’’’’’’’’’’’> ^ Potenzierung 13 ’’’> +, - positives/negatives Vorzeichen 12 ’’’> *, / Multiplikation, REAL-Division 11 ’’’> \ INT-Division 10 ’’’> MOD Divisionsrest- (MOD-) Operation 9 ’’’> +, - Addition, Subtraktion 8 ’’’> =, <>, <, >, <=, >= Vergleichsoperatoren 7 ’’’> NOT Negation 6 ’’’> AND UND-VerknŪpfung 5 ’’’> OR ODER-VerknŪpfung 4 ’’’> XOR Exklusiv-ODER-VerknŪpfung 3 ’’’> EQV Öquivalenz-VerknŪpfung 2 ’’’> IMP Implikations-VerknŪpfung 1 ’’’NDie Reihenfolge der Auswertung von AusdrŪcken kann durch Klammern geŁndert’’’’^Beachten Sie, daū der Operator '=' in BASIC die Funktion eines Vergleichsoperators’’’’’’’’’’’’~und des #ib(3)#Zuweisungsoperators#ie(3)##ib(3)##ie(3, "Operator, Zuweisungs-")# (siehe Kapitel 8, LET-Anweisung) hat. ’’’’’’’4.5. #ib(3)#Funktionen#ie(3)# Standard-Funktionen ’’’’’’’’’’NDer EUMEL-BASIC-Compiler unterstŪtzt eine ganze Reihe von Funktionen. Diese’’’NFunktionen liefern Werte und kŚnnen in AusdrŪcken zusammen mit Konstanten,’’’’.Variablen und Operatoren verwendet werden. ’’’^Viele der eingebauten Funktionen arbeiten mit Argumenten, das heiūt es werden den’’’’’’’’’’’’’Funktionen Werte Ūbergeben. ’’NIn Kapitel 8 dieses Handbuches sind alle Funktionen ausfŪhrlich beschrieben. ’.Beispiele fŪr #ib(3)#Funktionsaufrufe#ie(3)#: N SQR (17) Dieser Ausdruck liefert die Wurzel von 17 als REAL. ’’’N RIGHT$ (text$, 5) Dieser Ausdruck liefert die letzten fŪnf Textzeichen ’’#right#aus 'text$' als TEXT. ’.Benutzer-definierte Funktionen ’’’’’’’’’’’’’’’NNeben der Verwendung der standardmŁūig verfŪgbaren Funktionen besteht fŪr den’^Benutzer die MŚglichkeit, selbst Funktionen innerhalb eines Programms zu definieren. ’’’’’’’’’N#ib(3)#Definition benutzer-definierter Funktionen#ie(3)# #off ("b")# ’’’’’’’’’NHierzu dient die #ib(3)#DEF FN#ie(3)#-Anweisung (vergleiche Kapitel 8). ’’’’’’.Die Syntax der DEF FN-Anweisung lautet: ’’’’’’>DEFFN[([,][...])]= ’’’’’’’’’’’’’’’#right# ’N: Zeichenfolge, die der Syntax fŪr Variablennamen entŻ. sprechen muū. ’’’’’’N FN bilden zusammen den Namen der neuen’’’’’’’’. Funktion. ’’’’’’’’’’^<#ib(3)#Parameter#ie(3)#>: Zeichenfolge, die der Syntax fŪr Variablennamen entŻ’’. sprechen muū. ’’’’’’^: Ausdruck, der Konstanten, Variablen, die Parameter der’’’’’’’’’’’’’’N Funktion und Aufrufe anderer Funktionen enthalten’’’. darf. ’’’’’’’’’’’’’’^- Die benutzer-definierten Funktionen ("user functions") liefern, genau wie die’’’’’’’’’’’’’’’ Standard-Funktionen, Werte. N- Das letzte Zeichen des Funktionsnamens gibt den Typ des Wertes an, den die’’^ Funktion liefert. Soll die Funktion einen TEXT liefern, so muū der Name mit "$"’’’’’’’’’’’’’N enden. Soll ein INT geliefert werden, muū der Name mit "%" enden. FŪr alle’’N anderen Endungen wird eine REAL-liefernde Funktion eingetragen. ’’’’’’’’’’’’^- Die Syntax der Parameternamen entspricht der Syntax fŪr die Namen von einfachen’’’’’’’’’’’’’^- Die Parameter haben nur bei der Definition GŪltigkeit. Hierbei 'Ūberdecken' sie (fŪr’’’’’’’’N diese Zeile) eventuell im BASIC-Programm vorhandene gleichnamige Variablen. N- Jeder Parameter darf in der Parameterliste nur einmal vorkommen. ’’’’’’’’’’’N- Bezeichnet der Funktionsname eine TEXT-liefernde Funktion, so muū auch die’’^ Funktionsdefinition ein Ergebnis vom Typ TEXT liefern. Zwischen INTs und REALs’’’’’’’’’’’’’’. findet eine Typanpassung statt. ’’’’’’’’’’’’N- Eine Funktion darf nicht in ihrer eigenen Definition erscheinen. ’’’’’’’’’’’^- Eine Funktion ist allein durch ihren Namen gekennzeichnet. Generische Funktionen’’’’’’’’’’’’^ (gleicher Name, aber unterschiedliche Parameter) kŚnnen somit nicht definiert werŻ’’’’’’’’’’.Beispiele fŪr gŪltige Funktionsdefinitionen: ’ DEF FNPI = 3.1415927 ’’’’’’’N DEF FNumfang (radius) = 2.0 * FNPI * radius (EnthŁlt Aufruf von FNPI) ’’’N DEF FNhallo$ (dummy$) = "Hallo " + name$ (name$ kommt im ’’’’’’’’’’’’’ #right#BASIC-Programm vor) ’. DEF FNheavyside% (x) = ABS (SGN (x) = 1) ’’’>Beispiele fŪr ungŪltige Funktionsdefinitionen: ’’’’’’’’’’’’’’’N DEF FNfunct (a, b, a) = a ^ 2 + b (a kommt zweimal als Parameter vor) ’’’’’> DEF FNfr (x) = x * FNfr (x - 1) (rekursive Definition) ’’N#ib(3)#Aufruf benutzer-definierter Funktionen#ie(3)# #off ("b")# ’’’’’’’’’’’’’>FN [ ( [, ] [...] ) ] ’’’’’’’’’’’’’^<#ib(3)#Argument#ie(3)#> : Ausdruck, der fŪr den entsprechenden Parameter bei der Evaluation’N (Auswertung) der Funktion eingesetzt werden soll ’’’’’’’’’’’’’’’^- Beim Funktionsaufruf werden die Argumente in der Reihenfolge ihres Auftretens fŪr’’’’’’’’’’’N die Parameter eingesetzt. FŪr TEXT-Parameter mŪssen die Argumente ebenfalls’N TEXTe liefern. Zwischen INTs und REALs findet eine Typanpassung statt. ’’’’’N- Die Anzahl der Argumente muū genau mit der Anzahl der Parameter ŪbereinstimŻ^- FŪr in der Funktionsdefinition vorkommende Variablen wird der zum Zeitpunkt des’’’’’’’’’’’’’. Funktionsaufruf gŪltige Wert eingesetzt. ’’’^- Die Definition der Funktion muū dem ersten Aufruf der Funktion textuell vorausŻ’’’’’’’’’’’’’^- Eine Definition gilt fŪr alle textuell folgenden Aufrufe, bis die Funktion wieder neu’’’’’’’ definiert wird. ’’’’’’’’’’’’^Beispiele fŪr korrekte Funktionsaufrufe (bezogen auf obige Beispiel-Definitionen): ’’’’’’’’’’’N PRINT FNPI / 2.0 (Ausgabe: 1.570796) ’’’’’’’’’’N PRINT FNumfang (20) (Ausgabe: 125.6637) ’’’’’’’’’’N LET name$ = "PurzelbŁr":PRINT FNhallo$ ("") (Ausgabe: Hallo PurzelbŁr) ’’’> PRINT heavyside% (-17.3) (Ausgabe: 0) ’^Beispiele fŪr falsche Funktionsaufrufe (bezogen auf obige Beispiel-Definitionen): ’’’’’’’’’’’’> PRINT FNPI (10) (kein Argument erwartet) > PRINT FNumfang (Argument erwartet) ’’’’’N PRINT FNhallo$ (zahl%) (Falscher Typ des Arguments) ’’’’’’’’’’’’> PRINT FNheavyside (17.4, -12.3) (Zu viele Argumente) ’’’’.4.6. #ib(3)#Typanpassung#ie(3)# ’’’’’’’’’’’’’’^In BASIC wird, im Gegensatz zu ELAN, nicht sehr streng zwischen den numerischen’’’’’’’’’’’’’’’NDatentypen unterschieden, sondern es finden hŁufig automatische Typanpassungen^statt. Zu solchen Typanpassungen kommt es vor allem bei der Zuweisung, bei OperaŻ’’’’’’’’’’’’’>toren und bei Funktionen, aber auch bei einigen Anweisungen. ’>Die automatische Typanpassung hat zwei Nachteile: ’’’’’’’’’’’’^1. Die Typkonvertierung von INT nach REAL und umgekehrt kostet Zeit wŁhrend der’’’’’’’’’’’’’’’ ProgrammausfŪhrung. ’’’’’’’N2. Es kann zu sehr unangenehmen Laufzeitfehlern kommen, wenn eine REAL-’’’’’’’^ INT-#ib(3)#Konvertierung#ie(3)# mit Fehler abbricht, weil der REAL-Wert auūerhalb des’’’’’’ INT-Wertebereichs liegt. ’’^Allgemein gilt also, daū sich der Programmierer auch in BASIC Ūber die Typen der’’’’’’’’’’’’’’^verwendeten Objekte im klaren o INCR 1;’’’’’’’. found stat no CAT mki (neue nummer)’’’’N ELSE basic error ("Stat no", 81, line no, neue nummer, number,’’’’’’’’’’’’’’N "Letzte Zeilennummer davor: " + text (akt stat no), TRUE)’Nget statement no : (* F15/rr *)’ disable stop;’’’’’’’’’’’’’’’N TEXT CONST number := subtext (record, first number pos, last number pos);’’’. INT VAR neue nummer := int (number);’’’’’’’’. IF NOT last conversion ok OR is error’’’’’’’ THEN clear error;’’’’’’’’’’’N basic error ("Stat no", 80, line no, akt stat no, number,’’’’’’’’’’’’’’N "Die Zeilennummer muū im Bereich 0-32767 liegen", TRUE)’’’ enable stop .’’’’’’’’’’’’’’’Nlast number pos : (* F15/rr *)’N INT CONST high := pos (record, ""058"", ""255"", first number pos),’’’’’’’’’N low := pos (record, ""032"", ""047"", first number pos);’’’’’’’’’ IF high > 0’’’’’’’’’’’’’’’ THEN IF low > 0’’’’’’’’. THEN min (high, low) - 1’’’’’’’ ELSE high - 1’’ FI ELIF low > 0 THEN low - 1’’’’’’’’’’’ ELSE LENGTH record’’’’’.neue nummer ist groesser als vorherige:’’’’’’’ neue nummer > akt stat no .END PROC check;’’’’’’’’’’’’’’’.INT PROC stat no pos (INT CONST stat no):’’’’’ FOR i FROM found no DOWNTO 1. REP IF (found stat no ISUB i) = stat no’’’’’. THEN LEAVE stat no pos WITH i FI’’’’’’’’END PROC stat no pos;’’’’’’’’’.INT PROC label pos (INT CONST stat no):’’’’’’’ FOR i FROM found no DOWNTO 1. REP IF (found stat no ISUB i) = stat no’’’’’. THEN LEAVE label pos WITH i FI’’’’’’’’’’N basic error (8, text (stat no), nil); (* F16/rr *)’’END PROC label pos;’’’’’’’’’’’>PROC all stat no (TEXT VAR stat no, INT VAR no):’’’’’’’’’’’’’’ stat no := found stat no;’’’ no := found no’’’’’’’’’END PROC all stat no;’’’’’’’’’END PACKET basic stat no;’’’’’NPACKET basic storage DEFINES init storage, (* Autor: Heiko Indenbirken *)’N next local adr, (* Stand: 12.06.86 *)’. next ref,’’’’’’’’. local adr,’’’’’’’. local storage,’’’. type size,’’’’’’’> quiet type: ’’’’’’’’’’’’’. . LET ref length = 2;’’’’’’’’’’’.INT VAR quiet size, quiet align;’’’’’’’’’’’’’’.ADDRESS VAR loc adr, free loc adr;’’’’’’’’’’’’DTYPE VAR quiet value;’’’’’’’’>identify ("QUIET", quiet size, quiet align, quiet value);’’’’’PROC init storage:’’’’’’’’’’’’ free loc adr := LOC 0;’’’’’’ loc adr := LOC 0;’’’’’’END PROC init storage;’’’’’’’’N(* Verwaltung der lokalen Addressen fŪr Zwischenergebnisse *)’>ADDRESS PROC next local adr (DTYPE CONST type):’’’’’’’’’’’’’’’. INT VAR type len :: type size (type);’’’’’’’ loc adr := free loc adr;’’’’ adjust (loc adr, type len);’. free loc adr := loc adr + type len;’’’’’’’’’END PROC next local adr;’’’’’’ADDRESS PROC next ref:’’’’’’’’ loc adr := free loc adr;’’’’. adjust (loc adr, ref length);’’’’’’’’’’’’’’’. free loc adr := loc adr + ref length;’’’’’’’END PROC next ref;’’’’’’’’’’’’ADDRESS PROC local adr:’’’’’’’END PROC local adr;’’’’’’’’’’’INT PROC local storage:’’’’’’’. int (subtext (dump (free loc adr), 6))’’’’’’END PROC local storage;’’’’’’’.INT PROC type size (DTYPE CONST type):’’’’’’’’. IF type = int type OR type = bool type’’’’’ ELIF type = row type’’’’’’’ ELIF type = real type’’’’’’ ELIF type = text type’’’’’’ ELIF type = quiet value’’’’ THEN quiet size’’’’’’’’’’’’N ELSE errorstop ("Unbekannter DTYPE: " + dump (type)); 0 FI .’’’’’’’’’’’’’END PROC type size;’’’’’’’’’’’DTYPE PROC quiet type:’’’’’’’’END PROC quiet type;’’’’’’’’’’END PACKET basic storage;’’’’’NPACKET basic identify DEFINES (* Autor: Heiko Indenbirken *)’’N (* Stand: 20.08.1987/rr/mo *)’’. identify,’’’’’’’’’’. convert paramfield,. dump ftn,’’’’’’’’’’N is basic function: (* mo *)’’’’’’’’’’’’’NLET ENTRY = STRUCT (TEXT param, INT no, next, OPN opn, DTYPE result);’’’’’’’’’ROW 256 ENTRY VAR ftn table;’’clear ftn table;’’’’’’’’’’’’’’init ftn names;’’’’’’’’’’’’’’’init int operator;’’’’’’’’’’’’init real operator;’’’’’’’’’’’init text operator;’’’’’’’’’’’init predefined funktions;’’’’>PROC dump ftn (INT CONST n, TEXT VAR param, INT VAR no, next,’. OPN VAR opn, DTYPE VAR result):. param := ftn table [n].param;’’’’’’’’’’’’’’’ no := ftn table [n].no;’’ next := ftn table [n].next; opn := ftn table [n].opn;’. result := ftn table [n].result’’’’’’’’’’’’’’’END PROC dump ftn;’’’’’’’’’’’’^PROC identify (INT CONST ftn no, first, params, OPN VAR operation, BOOL VAR found):’’’’’’’’’’’ TEXT VAR param;’’’’’’’’’’’’’. INT VAR pos :: min (ftn no, 256);’’’’’’’’’’’. convert paramfield (first, params, param);’’N REP IF param = ftn table [pos].param AND ftn no = ftn table [pos].no’’’’’’’> THEN declare (params+1, ftn table [pos].result);’’’’’’’’. declare (params+1, 1);’’’’’’’’’’’’’. operation := ftn table [pos].opn;’’ found := TRUE;’ LEAVE identify’’’’’. ELSE pos := ftn table [pos].next FI’’’’’N UNTIL pos <= 0 PER; (* F14/rr *)’’ operation := nop;’’’’’’’’’’’ found := FALSE .’’’’’’’END PROC identify;’’’’’’’’’’’’.PROC next free entry (INT VAR free pos):’’’’’’ FOR free pos FROM 1 UPTO 256^ REP IF ftn table [free pos].next < 0 AND ftn table [free pos].no = 0 (* mo *)’’’’’’’’’’’’’’. THEN LEAVE next free entry FI’’’’’’’’’’’’’> errorstop ("Ųberlauf der Funktionstabelle") .’’’’’’’’’’’’’’END PROC next free entry;’’’’’NPROC convert paramfield (INT CONST first, params, TEXT VAR param):’’’’’’’’’’’’ param := nil;’’’’’’’’’’’’’’’ FOR i FROM first UPTO params. REP param CAT datatype PER .’’’’’’’’’’’’’’’. DTYPE CONST data :: dtype (i);’’’’’’’’’’’’’’ IF data = int type’’’’’’’’’’ ELIF data = real type’’’’’’’ ELIF data = text type’’’’’’’ ELIF data = bool type’’’’’’’> ELSE errorstop ("Falscher DTYPE: " + dump (data));’’’’’’’’’’END PROC convert paramfield;’’>PROC convert paramfield (TEXT CONST params, INT CONST first):’> FOR i FROM first UPTO first+length (params)-1’’’’’’’’’’’’’’’> REP parameter (i, this type, 1, GLOB 0) PER .’’’’’’’’’’’’’’ IF (params SUB i) = "I"’’’’’ THEN int type’’’’’’’’’’’’’’’ ELIF (params SUB i) = "R"’’’ THEN real type’’’’’’’’’’’’’’ ELIF (params SUB i) = "T"’’’ THEN text type’’’’’’’’’’’’’’> ELSE errorstop ("Unbekannter Typ: " + params);’’’’’’’’’’’’’’ undefined type’’’’’’’’’END PROC convert paramfield;’’>PROC init op (INT CONST ftn no, TEXT CONST param, ftn name):’’ IF elan opn found’’’’’’’’’’’ THEN insert new opn in chain^ ELSE errorstop ("PROC " + ftn name + " (" + param + ") nicht gefunden") FI .’’’’’’’’’’’’’’’elan opn found:’’’’’’’’’’’’’’’ OPN VAR opn; BOOL VAR found;’’’’’’’’’’’’’. convert paramfield (param, 1);’’’’’’’’’’’’’’> identify (ftn name, 1, length (param), opn, found);’’’’’’’’’insert new opn in chain:’’’’’’ INT VAR ftn pos :: ftn no;’’ REP IF end of chain found’’’. THEN cat new entry in chain’’’’’’’’’’’’’sein sollte. Auūerdem ist zu beachten, daū bei KonverŻ’’’’’’’’’’>tierungen von REAL nach INT immer gerundet wird. ’’’’’’’’’’’’’NGenaueres zur Typanpassung bei der Zuweisung finden Sie in Kapitel 8 bei der’’LET-Anweisung. ’’’’’’’’’’’’’’’>Ųber Typkonvertierung bei Operatoren informiert Kapitel 4.4. ’^Informationen Ūber die Funktionen betreffenden Typkonvertierungen befinden sich am’’’’’’’’’’’’NAnfang von Kapitel 8 und direkt bei der Beschreibung der jeweiligen Funktionen(ebenfalls in Kapitel 8). ’’’’.4.7. Aufruf von EUMEL-Prozeduren in’’’’’’’’’’’ BASIC-Programmen’’’’’’’’’NDer EUMEL-BASIC-Compiler bietet die MŚglichkeit, insertierte ELAN-Prozeduren’’N(und auch insertierte BASIC-Programme) in BASIC-Programmen aufzurufen. Hierzu’nwerden die beiden Anweisungen #ib(3)#CALL#ie(3)# und #ib(3)#CHAIN#ie(3)# (identisch) sowie die Funktion’’’’’’’.#ib(3)#USR#ie(3)# zur VerfŪgung gestellt. ’’’’NMit der CALL-Anweisung (siehe auch Kapitel 8) kŚnnen Prozeduren aufgerufen’’’’^werden, die keinen Wert liefern und nur die BASIC-Datentypen INT, REAL und/oder’’’’’’’’’’’’’’’TEXT als Parameter benŚtigen.  CALL taskstatus ("PUBLIC") ’ CALL cursor (10, 21) ’’’’’’’ CALL getcursor (x%, y%) ’’’’^Das letzte Beispiel zeigt, daū auch #ib(3)#VAR-Parameter#ie(3)# im ELAN-Sinne Ūbergeben’’’’’’’werden kŚnnen. ’’’’’’’’’’’’’’’^Die Funktion USR dient im Gegensatz zu CALL zum Aufruf von #ib(3)#wertliefernden ProŻ’’’’’’’’’^zeduren#ie(3)#. Die Prozeduren dŪrfen allerdings nur einen der BASIC-Datentypen INT,’’’’’’’’’’^REAL oder TEXT liefern. Es gilt auch bei USR, wie bei CALL, daū die aufgerufenen’’’’’’’’’’’’’’NProzeduren nur Parameter der Typen INT, REAL oder TEXT haben dŪrfen. ’’’’’’’’’> PRINT USR e (Ausgabe: 2.718282) ’> PRINT USR compress (" EUMEL ") (Ausgabe: EUMEL) ’’’’>Wichtige Hinweise zu CALL, CHAIN und USR: #off ("b")# ’’’’’’’’N1. Bei den Parametern finden keinerlei Typkonvertierungen statt (ELAN-’’’’’’’’^ Prozeduren werden ja gerade anhand der Typen ihrer Parameter eindeutig identifiŻ’’’’’’’’’’’N2. Die Prozedurnamen nach CALL, CHAIN und USR dŪrfen keine Leerzeichen entŻ’’’N halten, weil die Prozedur sonst nicht identifiziert werden kann. ’’’’’’’’’’> Beispiel: CALLlernsequenzauftastelegen(...) statt’’’’’’’’> CALLlernsequenzauftastelegen(...) ’’’’’’’’’’’’’’N3. Die Prozedurnamen kŚnnen (nach BASIC-Konvention) auch Groūbuchstaben’’’’’’’ enthalten. > Beispiel: CALLcursor(17,4) ist Łquivalent zu ’’’’’’’’’’’’’. CALLCURSOR(17,4) ’’’’’’’’’’’’’’’^Wie in Kapitel 3 erlŁutert kann ein BASIC-Programm auch insertiert werden. Somit’’’’’’’’’’’’’’NkŚnnen mit der CALL-Anweisung auch andere (vorher insertierte) BASIC-’’’’’’’’’Programme aufgerufen werden. ’NCALL blackjack ('blackjack' sei der Prozedurname, unter dem ein BASIC-’’’> Programm zuvor insertiert wurde.) ’’’’’’’’NDie sonst in einigen BASIC-Dialekten vorhandene MŚglichkeit, Programme oder’’’^#ib(3)#Programmsegmente#ie(3)# nachzuladen, kann so durch Aufrufe von insertierten Programmen’nachgebildet werden. ’’’’’’’’’NEUMEL-BASIC-Compiler 5. Steuerung der Bildschirmausgaben % ’’’’’’’’N5. #ib(4)#Steuerung der #ib(3)#Bildschirmausgaben#ie(3)##ie(4)# ’’’’’’’’’’’’’’NDie Ausgaben von BASIC-Programmen ('PRINT' und 'WRITE') werden im Paket’’’’’’’^'basic output' behandelt. Dieses Paket ermŚglicht unter anderem, daū die Ausgabe’’’’’’’’’’’’’’.auf das Terminal mit der Prozedur ’’’’’’’’’’’’> PROC #ib(3)#basic page#ie(3)# (BOOL CONST status) ’’’^gesteuert werden kŚnnen. Wird dabei 'TRUE' eingestellt, so wartet die Ausgabe bei’’’’’’’’’’’’’^Erreichen der letzten Terminalzeile auf die Eingabe eines Zeichens, bevor sie fortfŁhrt.’’’’’’NDas Eingabezeichen wird nach Ausgabe von ">>" in der rechten unteren Ecke des’>Bildschirms erwartet und wie folgt interpretiert: ’’’’’’’’’’’’#linefeed (1.5)# ’’’’’’’’’’’’’N LŚschen des Bildschirms und Ausgabe der nŁchsten Bildschirmseite ’’’. Ausgabe der nŁchsten Zeile ’’’’’’’’’’N Abbruch des Programms mit der Fehlermeldung "'halt' vom Terminal" ’’’^ 'basic page' wird auf 'FALSE' gesetzt #linefeed (1.0)#und mit der normalen Ausgabe’ weitergemacht ’’’’nAlle anderen Tasten bewirken eine Ausgabe der nŁchste Bildschirmseite (#ib(3)#Scrolling#ie(3)#). ’’’’’’’’’’’’’^Ist 'basic page' auf 'FALSE' gesetzt, so kann durch Eingabe von vor einem ZeiŻ’’’’’’’’’’’’’’’>lenwechsel 'basic page' auf 'TRUE' gesetzt werden. ’’’’’’’’’’’NEUMEL-BASIC-Compiler 6. Grenzen des Compilers % ’’’’’’’’’.6. #ib(3)#Grenzen des Compilers#ie(3)# ’’’’’’’^Es gibt verschiedene Grenzen, die bei der Benutzung des BASIC-Compilers erreicht’’’’’’’’’’’’’’werden kŚnnen. ’’’’’’’’’’’’’’’>Grenzen des #ib(3)#EUMEL-Coder#ie(3)#s #off ("b")# ’’’’’’’’’’’NDa ein BASIC-Programm vom Compiler als eine Prozedur im Coder eingetragen’’’’’^wird, darf der Code fŪr ein BASIC-Programm die #ib(3)#Modulgrenze#ie(3)# von 7500 Byte Code’’’nicht Ūberschreiten. ’’’’’’’’’^Sollte dies doch einmal der Fall sein (#ib(3)#Compiler Error 308#ie(3)#), so gibt es folgende’Abhilfe-MŚglichkeiten: ’’’’’’’N- Zerlegen des BASIC-Programms in mehrere BASIC-Programme, wobei ein’’’’’’’’’’N Programm das andere wŁhrend der AusfŪhrung aufrufen kann (vgl.4.7.). ’’’’’’’^ Bei dieser Methode kŚnnen die Teilprogramme aber nicht mit gemeinsamen VariabŻ’’’’’’’’’’’’’’ len arbeiten. ’’’’’’’’’’’’’’N- Auslagerung von Programmteilen (z.B. Unterprogrammen) in ELAN-Prozeduren,’’’N die insertiert und vom BASIC-Programm aufgerufen werden kŚnnen (vgl.4.7.). ’^ Dieses Verfahren bietet die MŚglichkeit, Variablen zwischen BASIC-Programm und’’’’’’’’’’’’’’> ELAN-Prozedur Ūber die Prozedurschnittstelle auszutauschen. ^Neben der Begrenzung des Codes ist auch die GrŚūe des Datenspeicherbereichs pro’’’’’’’’’’’’’’’NBASIC-Programm begrenzt. Insgesamt dŪrfen die Datenobjekte eines BASIC-’’’’’’’NProgramms nicht mehr als 32 KByte Speicherplatz belegen. Andernfalls kommt es’.zum #ib(3)#Compiler Error 307#ie(3)#. ’’’’’’’’NEine weitere Grenze des EUMEL-Coders stellt die maximal zulŁssige Anzahl der’’^#ib(3)#Labels#ie(3)# (interne Sprungadressen) dar. Es kŚnnen nur hŚchstens 2000 Labels vom’’’’^Coder verwaltet werden. Der BASIC-Compiler vergibt fŪr jede gefundene Zeile mit’’’’’’’’’’’’’’’NZeilennummer ein Label und benŚtigt auch bei Schleifen (FOR-NEXT, WHILE-’’’’’’NWEND), Fallunterscheidungen (IF-Anweisung), Unterprogramm-Aufrufen (GOSUB)’’’’Nund bei der Definition von benutzer-definierten Funktionen (DEF) Labels. ’’’’’nBeim Auftreten des #ib(3)#Compiler Errors 304#ie(3)# (zu viele Label) ist Abhilfe relativ leicht’’’’’’’’’’’’’’^dadurch mŚglich, daū Zeilennummern nur den Zeilen vergeben werden, die tatsŁchlich’’’’’’’’’’’’Nangesprungen werden (d.h. zu denen es GOTOs oder GOSUBs gibt). ’’’’’’’’’’’’’’’.Grenzen des BASIC-Compilers #off ("b")# ’’’’’’^Die interne #ib(3)#Namenstabelle#ie(3)# des BASIC-Compilers kann etwa 4240 EintrŁge aufnehŻ’’’^men. Ein Eintrag in dieser Tabelle wird fŪr jede Variable, fŪr jedes Feld, fŪr jede’’’’’’’’’’’^benutzer-definierte Funktion und fŪr jeden Parameter einer benutzer-definierten’’’’’’’’’’’’’’’^Funktion sowie fŪr jede Konstante erzeugt. Numerische Konstanten erhalten, sofern’’’’’’’’’’’’’Nsie konvertiert werden mŪssen, sogar zwei EintrŁge in der Namenstabelle. ’’’’’^Bei Auftreten des seltenen Fehlers "volle Namenstabelle" kann durch eine Aufteilung’’’’’’’’’’’Ndes BASIC-Programms in Teilprogramme oder eine Auslagerung von UnterprogramŻ’’>men in ELAN-Prozeduren Abhilfe geschaffen werden. ’’’’’’’’’’’’. ELIF free entry in chain found’’’’’’’’’’ THEN cover this entry’’’ ELSE next entry FI’’’’’’ UNTIL ftn pos <= 0 PER .’’’end of chain found:’’’’’’’’’’’ act entry.next = 0 .’’’’’’’cat new entry in chain:’’’’’’’ INT VAR free pos;’’’’’’’’’’’ next free entry (free pos);’ act entry.next := free pos;’N free entry := ENTRY:(param, ftn no, 0, opn, dtype (LENGTH param+1));’’’’’’’’. LEAVE insert new opn in chain .’’’’’’’’’’’’free entry in chain found:’’’’ act entry.next = -1 .’’’’’’’cover this entry:’’’’’’’’’’’’’N act entry := ENTRY:(param, ftn no, 0, opn, dtype (LENGTH param+1));’’’’’’’’’. LEAVE insert new opn in chain .’’’’’’’’’’’’ ftn pos := act entry.next ..act entry: ftn table [ftn pos] .’’’’’’’’’’’’’.free entry: ftn table [free pos] .’’’’’’’’’’’END PROC init op;’’’’’’’’’’’’’NBOOL PROC is basic function (INT CONST ftn no): (* mo *)’’’’’’’’’’’’’’. pos (ftn names, code (ftn no)) <> 0’’’’’’’’’END PROC is basic function;’’’clear ftn table:’’’’’’’’’’’’’’ FOR k FROM 1 UPTO 256’’’’’’’N REP ftn table [k] := ENTRY:(nil, 0,-1, nop, undefined type) PER .’’’’’’’’’’init ftn names:’’’’’’’’’’’’’’’N TEXT CONST ftn names :: "+-*/\^<=>"28""29""30""249""251""252""253""254"" +’’N ""128""130""131""134""136""137""141""143""142"" +’’’^ ""153""154""155""157""159""161""166""168""170""171""172"" +’’’’’’’’’N ""174""175""178""179""182""184""183""187""192"" +’’’N ""201""202""204""205""206""207""208""211""212"" +’’’N ""215""221""228""229""230""231""232""233"";’’’’’’’’’. FOR k FROM 1 UPTO length (ftn names)’’’’’’’’N REP ftn table [ftn pos] := ENTRY:(nil, ftn pos,-1, nop, void type) PER .’’’ code (ftn names SUB k) .’’’init int operator:’’’’’’’’’’’’ init op ( 43, "II", "+");’’’ init op ( 45, "II", "-");’’’ init op ( 42, "II", "*");’’’> init op ( 47, "II", "/"); (* mo *)’’’’’’’’’’> init op ( 92, "II", "DIV"); (* mo *)’’’’’’’’’’ init op ( 94, "II", "^");’’’ init op ( 61, "II", "EQU");’ init op ( 29, "II", "UEQ");’ init op ( 60, "II", "LES");’ init op ( 28, "II", "LEQ");’ init op ( 62, "II", "GRE");’ init op ( 30, "II", "GEQ");’> init op (249, "II", "MOD"); (* mo *)’’’’’’’’’’ init op (251, "II", "AND");’ init op (252, "II", "OR");’’ init op (253, "II", "XOR");’ init op (254, "II", "EQV");’ init op (255, "II", "IMP").’init real operator:’’’’’’’’’’’ init op ( 43, "RR", "+");’’’ init op ( 45, "RR", "-");’’’ init op ( 42, "RR", "*");’’’ init op ( 47, "RR", "/");’’’> init op ( 92, "RR", "DIV"); (* mo *)’’’’’’’’’’’ init op ( 94, "RR", "^");’’’ init op ( 61, "RR", "EQU");’ init op ( 29, "RR", "UEQ");’ init op ( 60, "RR", "LES");’ init op ( 28, "RR", "LEQ");’ init op ( 62, "RR", "GRE");’ init op ( 30, "RR", "GEQ");’> init op (249, "RR", "realmod"). (* mo *)’’’’’’’’’’’init text operator:’’’’’’’’’’’ init op ( 43, "TT", "+");’’’ init op ( 61, "TT", "EQU");’ init op ( 29, "TT", "UEQ");’ init op ( 60, "TT", "LES");’ init op ( 28, "TT", "LEQ");’ init op ( 62, "TT", "GRE");’. init op ( 30, "TT", "GEQ") .’’’’’’’’’’’’’’’init predefined funktions:’’’’ init op (128, "I", "abs");’’ init op (128, "R", "abs");’’ init op (130, "T", "asc");’’. init op (131, "R", "arctan");’’’’’’’’’’’’’’’. init op (131, "I", "arctan");’’’’’’’’’’’’’’’ init op (134, "I", "cdbl");’ init op (134, "R", "cdbl");’ init op (136, "I", "chr");’’ init op (136, "R", "chr");’’ init op (137, "R", "cint");’ init op (137, "I", "cint");’ init op (141, "R", "cos");’’ init op (141, "I", "cos");’’ init op (143, "T", "cvi");’’ init op (142, "T", "cvd");’’N# init op (153, "", "eof");# (* File *)’. init op (154, "", "errorline");’’’’’’’’’’’’’. init op (155, "", "errorcode");’’’’’’’’’’’’’ init op (157, "R", "exp");’’ init op (157, "I", "exp");’’ init op (159, "R", "floor"); init op (159, "I", "floor"); init op (161, "I", "fre");’’ init op (161, "R", "fre");’’ init op (161, "T", "fre");’’ init op (166, "I", "hex");’’ init op (166, "R", "hex");’’. init op (168, "", "incharety");’’’’’’’’’’’’’. init op (170, "I", "inchars");’’’’’’’’’’’’’’. init op (170, "R", "inchars");’’’’’’’’’’’’’’. init op (171, "TT", "instr");’’’’’’’’’’’’’’’. init op (171, "ITT", "instr");’’’’’’’’’’’’’’. init op (171, "RTT", "instr");’’’’’’’’’’’’’’ init op (172, "I", "ent");’’ init op (172, "R", "ent");’’ init op (174, "TI", "left"); init op (174, "TR", "left");. init op (175, "T", "length");’’’’’’’’’’’’’’’N# init op (178, "I", "line no");# (* File *)’ init op (179, "R", "ln");’’’ init op (179, "I", "ln");’’’ init op (182, "TII", "mid"); init op (182, "TI", "mid");’ init op (182, "TRR", "mid"); init op (182, "TR", "mid");’ init op (183, "I", "mkd");’’ init op (183, "R", "mkd");’’ init op (187, "I", "oct");’’ init op (187, "R", "oct");’’ init op (192, "I", "pos");’’ init op (192, "R", "pos");’’. init op (201, "TI", "right");’’’’’’’’’’’’’’’. init op (201, "TR", "right");’’’’’’’’’’’’’’’N init op (202, "", "rnd"); (* F12/rr *)’ init op (202, "I", "rnd");’’ init op (202, "R", "rnd");’’ init op (204, "I", "sign");’ init op (204, "R", "sign");’ init op (205, "R", "sin");’’ init op (205, "I", "sin");’’ init op (206, "I", "space"); init op (206, "R", "space"); init op (207, "I", "space"); init op (207, "R", "space"); init op (208, "R", "sqrt");’ init op (208, "I", "sqrt");’. init op (211, "I", "basictext");’’’’’’’’’’’’. init op (211, "R", "basictext");’’’’’’’’’’’’. init op (212, "IT", "string");’’’’’’’’’’’’’’. init op (212, "RT", "string");’’’’’’’’’’’’’’. init op (212, "II", "string");’’’’’’’’’’’’’’. init op (212, "RR", "string");’’’’’’’’’’’’’’. init op (212, "RI", "string");’’’’’’’’’’’’’’. init op (212, "IR", "string");’’’’’’’’’’’’’’ init op (215, "R", "tan");’’ init op (215, "I", "tan");’’N init op (221, "T", "val"); (* F18/rr *). init op (228, "", "errormessage");’’’’’’’’’’ init op (229, "", "csrlin"); init op (230, "I", "lpos");’ init op (230, "R", "lpos");’ init op (231, "", "time");’’ init op (232, "", "date");’’ init op (233, "", "timer").’END PACKET basic identify;’’’’NPACKET basic data handling (* Autor: R. Ruland *)’’N (* Stand: 23.10.87/mo *)’’. DEFINES init data, ’’’’’’’’’’’’’’. data line, ’’’’’’’’’’’’’’ data, read,’’’’ restore,’’’’’’’ next int,’’’’’’ next real,’’’’’. next text: ’’’’’’’’’’’’’’NLET (* R e s u l t T y p e n *) . stat code = 0, stat char = ""0"",’’’’’’’. data code = 1, data char = ""1"",’’’’’’’. text code = 2, text char = ""2"",’’’’’’’ int overflow = 4,’’’’’’ real overflow = 6;’’’’’’.TEXT VAR data text :: "", number text;’’’’’’’’PROC init data:’’’’’’’’’’’’’’’ data text := ""’’’’’’’’’’’’END PROC init data;’’’’’’’’’’’>PROC init data (TEXT VAR data, INT VAR data pos):’’’’’’’’’’’’’ data := data text;’’’’’ data pos := 1’’’’’’’’’’’’’’END PROC init data;’’’’’’’’’’’NPROC restore (TEXT CONST data,.Sonstige EUMEL-Grenzen #off ("b")# ’’’’’’’’’’’NAuūer den bisher genannten Begrenzungen sei nochmals auf die Begrenzung des’’’N#ib(3)#Codebereichs pro Task#ie(3)# hingewiesen (maximal 256 KByte Code). ’’’’NDa der EUMEL-Coder und der BASIC-Compiler recht viel Code belegen, sollte’’’’’N"vorsichtig" insertiert werden, also nur das, was wirklich benŚtigt wird. ’’’’NAuch die Ūbrigen Grenzen des EUMEL-Systems sind zu beachten (vergleiche hierzuNdie Aufstellung der mŚglichen Compiler Errors im EUMEL-Benutzerhandbuch)! ’’’’NEUMEL-BASIC-Compiler 7. Fehlerbehandlung % ’’’’’’’’’’’.7. #ib(3)#Fehlerbehandlung#ie(3)# ’’’’’’’’’’’’>7.1. #ib(3)#Fehler zur Ųbersetzungszeit#ie(3)# ’’’’’’’’’’’’’’’NEndeckt der BASIC-Compiler bei der Ųbersetzung eines BASIC-Programms Fehler,’’^so werden diese auf dem Bildschirm angezeigt und ins #ib(3)#Notebook#ie(3)# eingetragen. ’’’’’^Nur (syntaktisch) fehlerfreie Programme werden zur AusfŪhrung gebracht beziehungsŻ’’’’’’’’’’’’weise insertiert. ’’’’’’’’’’’’nIm #ib(3)#Vordurchlauf#ie(3)# werden die Zeilennummern auf Richtigkeit ŪberprŪft. Falls bereits’’’’’’’’’’’’’’’^hiebei Fehler festgestellt werden, bricht der Compiler die Ųbersetzung nach dem’’’’’’’’’’’’’’’Vordurchlauf ab. ’’’’’’’’’’’’’^Im #ib(3)#Hauptdurchlauf#ie(3)# wird das Programm Zeile fŪr Zeile auf syntaktische Richtigkeit^ŪberprŪft und gleichzeitig Ūbersetzt. Wird dabei in einer Programmzeile ein Fehler’’’’’’’’’’’’^entdeckt, so wird er angezeigt und die Ųbersetzung des Programms #on("i")#in der nŁchsten’’’’’nProgrammzeile#off("i")# fortgesetzt. Eine Ausnahme von dieser Regel bildet nur die #ib(3)#DEF FN#ie(3)#-’’’’’’NAnweisung, bei der bei gewissen Fehlern die Ųbersetzung fortgesetzt wird. (DerNGrund hierfŪr liegt darin, daū die Folgefehlerzahl besonders bei der DEF FN-’’^Anweisung sehr groū wŁre, wenn beim Auftreten eines Fehlers die Ųbersetzung der’’’’’’’’’’’’’’’NZeile sofort abgebrochen wŪrde. Die Parameter wŪrden dann nŁmlich nicht oder’’^falsch abgelegt, und bei jedem Aufruf der Funktion wŪrde ein Fehler gemeldet.) ’’’’’’’’’’’’’’’^Eine Ųbersicht Ūber alle verwendeten Fehlermeldungen zur Ųbersetzungszeit befindet’’’’’’’’’’’’sich im AnhangC. ’’’’’’’’’’’’’Interne Compilerfehler ’’’’’’’^Neben den "normalen" Fehlern (siehe oben) kann es in seltenen FŁllen mŚglicherŻ’’’’’’’’’’’’’’’.weise auch zu internen Fehlern kommen. ’’’’’’’>Es gibt zwei verschiedene Sorten von internen Fehlern: ’’’’’’’N1. interne Fehler, die das Compilerprogramm selbst feststellt. ’’’’’’’’’’’’’’’^ Solche Fehler bewirken die Meldung "Interner Fehler !" (meist mit nŁherer ErlŁuŻ’’’’’’’’’’’N terung) und die Fortsetzung der Ųbersetzung in der nŁchsten Programmzeile. N2. Fehler, die in anderen Paketen des BASIC-Systems oder des EUMELs (z.B. im’’N EUMEL-Coder) wŁhrend der Ųbersetzungszeit ausgelŚst werden (siehe auch’’’’’. Kapitel 6: "Grenzen des Compilers"). ’’’’’’^ Solche Fehler werden mit "#ib(3)#BASIC-Compiler ERROR#ie(3)#" und eventuell nŁheren’’’’’’’’N Angaben gemeldet. Beim Auftreten eines solchen Fehlers wird die Ųbersetzung. des gesamten Programms abgebrochen. ’’’’’’’^Sollten bei Ihrer Arbeit mit dem EUMEL-BASIC-Compiler interne Fehler auftreten,’’’’’’’’’’’’’’’Ndie nicht auf das Ųberschreiten von Compilergrenzen zurŪckzufŪhren sind, dann’^wŁren wir Ihnen fŪr eine Meldung der Fehler dankbar. Bitte senden Sie eine FehlerŻ’’’’’’’’’’’’beschreibung an: ’’’’’’’’’’’’’> Gesellschaft fŪr Mathematik und Datenverarbeitung ’’’’’’’’’’ Schloū Birlinghoven ’’’’’’’’ Postfach 1240 ’’’’’’’’’’’’’’ 5205 Sankt Augustin 1 ’’’’’’^Die Fehlerbeschreibung sollte nach MŚglichkeit folgende Informationen enthalten: ’’’’’’’’’’’’’- verwendete Hardware ’’’’’’’’- Urlader-Version ’’’’’’’’’’’’- EUMEL-Version ’’’’’’’’’’’’’’>- Programmtext des Programms, das den Fehler auftreten lieū ’’>- genaue Angabe der ausgegebenen Fehlermeldung ’’’’’’’’’’’’’’’.7.2. #ib(3)#Fehler zur Laufzeit#ie(3)# ’’’’’’’^Treten wŁhrend der Laufzeit eines BASIC-Programms Fehler auf, so wird die AusfŪhŻ’’’’’’’’’’’’’Nrung des Programms mit einer entsprechenden Fehlermeldung abgebrochen. ’’’’’’’NDa die meisten Laufzeit-Fehlermeldungen durch Prozeduren des EUMEL-Systems’’’’N(und nicht des BASIC-Systems) erzeugt werden, entsprechen sie oft nicht der’’’^BASIC-Terminologie. (Beispielsweise fŪhrt ein zu groūer Feldindex zu der FehlermelŻ’’’’’’’’’’’.dung "Ueberlauf bei Subskription".) ’’’’’’’’’’nDie bei Laufzeitfehlern gemeldete #ib(3)#Fehlerzeile#ie(3)# bezieht sich nicht (wie bei ELAN-ProŻ’’’’’’’’’’’’’^grammen) auf die Nummer der Dateizeile, sondern auf die letzte der Programmzeile’’’’’’’’’’’’’’.vorangegangene BASIC-Zeilennummer. ’’’’’’’’’’’nFast alle ausgelŚsten Laufzeitfehler erzeugen auch #ib(3)#Fehlercodes#ie(3)#. Dabei liefern Fehler’’’’’’’’’’’’Naus EUMEL-Betriebssystem-Prozeduren die EUMEL-Standard-Fehlercodes (vgl.’’’’’’^Systemhandbuch), zum Beispiel wird beim Fehler "INT-Ueberlauf" der Fehlercode 4’’’’’’’’’’’’’’’^Laufzeitfehler, die in Prozeduren des BASIC-Systems ausgelŚst werden, liefern dageŻ’’’’’’’’’’’^gen den in Microsoft-BASIC Ūblichen Fehlercode plus 1000. So liefert die Meldung’’’’’’’’’’’’’’N"Keine Daten mehr fŪr READ" den Fehlercode 1004 (MS-BASIC: "Out of data",’’’’’Fehlercode 4). ’’’’’’’’’’’’’’’NEs lŁūt sich so anhand des gelieferten Fehlercodes ermitteln, ob der Fehler imNBASIC-System oder an einer anderen Stelle des EUMEL-Systems ausgelŚst wurde. ’NEine Ųbersicht Ūber die innerhalb des BASIC-Systems erzeugten Fehlermeldungen’enthŁlt Anhang C. ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’basic handbuch.2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’-š’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²ņa€ė’’‹ ˆ T’’’’TTŒ M’’’’’ņ’SIC.dok.2’’’’a€’’’’’’’’’’’’‹ ’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’”€’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń€’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’Q’’’’’’’’’’’’’’’’’’’‘’D’’’’’’’’’’’’’’’’’’’ၒQ’’’’’’’’’’’’’’’’’’’A‚’"’’’’’’’’’’’’’’’’’’’q‚’L’’’’’’’’’’’ INT VAR data pos, INT CONST line no):’’’’’’’’’’. INT CONST data length :: LENGTH data;’’’’’’’ data pos := 1;’’’’’’’’’’’’’’ WHILE data pos < data length. REP type := code (data SUB data pos);’’’’’’’ data pos INCR 1;’’’’’’’’ SELECT type OF’’’’’’’’’’N CASE stat code : IF int value (data, data pos) >= line no’> THEN LEAVE restore FI’N CASE data code, text code : data pos INCR int value (data, data pos)’^ OTHERWISE : errorstop (1051, "Fehlerhaften Dateneintrag gefunden: " + text (type))’’’ ENDSELECT;’’’’’’’’’’’’’’^ errorstop (1004, "RESTORE: Keine DATA-Anweisung in oder nach Zeile " + text (line no)’’’’’’’. + " gefunden");’’’’’’’’’’END PROC restore;’’’’’’’’’’’’’>INT PROC next int (TEXT CONST data, INT VAR data pos):’’’’’’’’. number text := next text (data, data pos);’ disable stop;’’’’’’’’’’’’’’. INT VAR result := int (number text);’’’’’’’ IF is error’’’’’’’’’’’’’’N THEN IF error code = int overflow THEN handle overflow FI;’’’’’’’’’’’’> ELIF NOT last conversion ok CAND number text <> "" ’’’’’’’’^ THEN errorstop (1013, "READ: Falscher Datentyp, " + number text + " ist kein INT")’’’’ . handle overflow :’’’’’’’’ clear error;’’’’’’’’’’’ result := result value;. IF cursor x pos <> 1 THEN next line FI;^ basic out ("WARNUNG : INT-Ųberlauf bei READ, gefunden: " + number text);’’’’’’’’’’’’’’’ next line;’’’’’’’’’’’’’ . result value :’’’’’’’N IF (number text SUB 1) = "-" THEN minint ELSE maxint FI’’’’’’’’’’’’END PROC next int;’’’’’’’’’’’’>REAL PROC next real (TEXT CONST data, INT VAR data pos):’’’’’’. number text := next text (data, data pos);’ disable stop;’’’’’’’’’’’’’’. REAL VAR result := val (number text);’’’’’’ IF is error’’’’’’’’’’’’’’~ THEN IF error code = real overflow OR error code = int overflow (* <- wegen Fehler in REAL PROC real (T C) *)’’’’’’’’> THEN handle overflow or underflow’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’> ELIF NOT last conversion ok CAND number text <> "" ’’’’’’’’^ THEN errorstop (1013, "READ: Falscher Datentyp, " + number text + " ist kein REAL")’’’N . handle overflow or underflow : (* F23/rr *) ’’’’ clear error;’’’’’’’’’’’. IF cursor x pos <> 1 THEN next line FI;n basic out ("WARNUNG : " + overflow or underflow + " bei READ, gefunden: " + number text);’’’’’’’’’’’’’’ next line;’’’’’’’’’’’’’ . overflow or underflow :’’> IF is overflow ’’’’’’’’’’’’’~ THEN result := sign * (max real - 0.99999999999994e120); (* <- wegen Fehler in TEXT PROC text (R C) *)’’’’’’’’’’’’’’ "REAL-Ųberlauf" ELSE result := 0.0;’. "REAL-Unterlauf"’’’’’’’’’’’’’’’ . sign :’’’’’’’’’’’’’’’> IF (number text SUB 1) = "-" THEN -1.0 ELSE 1.0 FI’ . is overflow :’’’’’’’’> INT VAR exponent pos := pos (number text, "E"); ’’’N IF exponent pos = 0 THEN exponent pos := pos (number text, "e") FI; IF exponent pos = 0 THEN TRUE’’’’’’’> ELSE (number text SUB (exponent pos + 1)) <> "-"END PROC next real;’’’’’’’’’’’>TEXT PROC next text (TEXT CONST data, INT VAR data pos):’’’’’’> INT CONST len :: int value (data, data pos);’’’’’’’’’’’’’’’ data pos INCR len;’’’’’’’’’. subtext (data, data pos-len, data pos-1)’’’END PROC next text;’’’’’’’’’’’>INT PROC int value (TEXT CONST data, INT VAR data pos):’’’’’’’ data pos INCR 2;’’’’’’’’’’’> subtext (data, data pos-2, data pos-1) ISUB 1’’’’’’’’’’’’’’END PROC int value;’’’’’’’’’’’.PROC data line (INT CONST line no):’’’’’’’’’’’ data text CAT stat char;’’’’ data text CAT mki (line no)’END PROC data line;’’’’’’’’’’’>PROC data (TEXT CONST string, DTYPE VAR data type) :’’’’’’’’’’. data text CAT data + mki (length (string));’ data text CAT string;’’’’’’’. IF data type = void type’’’’’’’’’’’’’’ THEN data char’’’’’. ELIF data type = text type’’’’’’’’’’’’’’ THEN text char’’’’’N ELSE errorstop (1051, "Unbekannter DTYPE: " + dump (data type)); ""END PROC data;>PROC read (TEXT CONST data, INT VAR data pos, INT VAR i):’’’’’. type := code (data SUB data pos);’’’’’’’’’’’ data pos INCR 1;’’’’’’’’’’’’ IF data pos >= LENGTH data> THEN errorstop (1004, "Keine Daten mehr fŪr READ")’’’’’ ELIF type = data code’’’’’’’. THEN i := next int (data, data pos)’’’’ ELIF type = stat code’’’’’’’ THEN data pos INCR 2;’’. read (data, data pos, i)’’’’’’’’’’n ELSE errorstop (1013, "READ: Falscher Datentyp, " + data string (data,data pos) + " ist kein INT")’’’’’END PROC read;>PROC read (TEXT CONST data, INT VAR data pos, REAL VAR r):’’’’. type := code (data SUB data pos);’’’’’’’’’’’ data pos INCR 1;’’’’’’’’’’’’ IF data pos >= LENGTH data> THEN errorstop (1004, "Keine Daten mehr fŪr READ")’’’’’ ELIF type = data code’’’’’’’. THEN r := next real (data, data pos)’’’ ELIF type = stat code’’’’’’’ THEN data pos INCR 2;’’. read (data, data pos, r)’’’’’’’’’’n ELSE errorstop (1013, "READ: Falscher Datentyp, " + data string (data,data pos) + " ist kein REAL")’’’’END PROC read;>PROC read (TEXT CONST data, INT VAR data pos, TEXT VAR t):’’’’. type := code (data SUB data pos);’’’’’’’’’’’ data pos INCR 1;’’’’’’’’’’’’ IF data pos >= LENGTH data> THEN errorstop (1004, "Keine Daten mehr fŪr READ")’’’’’. ELIF type = data code OR type = text code’’’. THEN t := next text (data, data pos)’’’ ELIF type = stat code’’’’’’’ THEN data pos INCR 2;’’. read (data, data pos, t)’’’’’’’’’’n ELSE errorstop (1013, "READ: Falscher Datentyp, " + data string (data,data pos) + " ist kein TEXT")’’’’END PROC read;>TEXT PROC data string (TEXT CONST data, INT VAR data pos):’’’’ IF type = text code’’’’’’’’’> THEN """" + next text (data, data pos) + """"’’’’’’’’’’’’. ELSE "unbekannter DTYPE: " + text (type)’END PROC data string;’’’’’’’’’.END PACKET basic data handling;’’’’’’’’’’’’’’’NPACKET basic odds and ends DEFINES trace, (* Autor: Heiko Indenbirken *)N start basic, (* Stand: 26.10.1987/rr/mo *). end basic,’. loop end,’’. basic stop:N(* Fehlerbehandlung *)’.PROC trace (INT CONST stat no):’’’’’’’’’’’’’’’. basic out ("[" + text (stat no) + "]")’’’’’’END PROC trace;’’’’’’’’’’’’’’’N(*Laufzeitprozeduren *)’PROC start basic:’’’’’’’’’’’’’ set line nr (0);’’’’’’’’’’’’N initialize random (0.1); (* F26/rr *)’’’’’ init output;END PROC start basic;’’’’’’’’’PROC end basic:’’’’’’’’’’’’’’’. THEN switch back to old sysout state’’’’’’END PROC end basic; ’’’’’’’’’’N(* SchleifenŪberprŪfung *)’.BOOL PROC loop end (REAL CONST x, max, step) : IF step > 0.0’’’’’’’’’’’’’’’ THEN x > max ELSE x < max FI’’’’’’’’’’’’’END PROC loop end;’’’’’’’’’’’’.BOOL PROC loop end (INT CONST x, max, step) :’ THEN x > max ELSE x < max FI’’’’’’’’’’’’’END PROC loop end;’’’’’’’’’’’’.PROC basic stop (INT CONST stat no):’’’’’’’’’’N basic out ("STOP beendet das Programm in Zei’’’’’’’’Į‚’Q’’’’’’’’’’’’’’’’’’’!ƒ’O’’’’’’’’’’’’’’’’’’’ƒ’G’’’’’’’’’’’’’’’’’’’у’O’’’’’’’’’’’’’’’’’’’1„’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ф’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’…’<’’’’’’’’’’’’’’’’’’’A…’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’±…’!’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q†’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᆒ=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‡’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‡’I’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’Į‡’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’&’’’’’’’’’’’’’’’’’’’1ˆ’"’’’’’’’’’’’’’’’’’’’aˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ሒ+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‰’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‰’8’’’’’’’’’’’’’’’’’’’‰’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’ቒ!’’’’’’’’’’’’’’’’’’’Š’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ኒ2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‹’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’F’’’’’’’’’’’’’’’’’’’ы’I’’’’’’’’’’’’’’’’’’’!Œ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŒ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŒ’G’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’’Q’M’’’’’’’’’’’’’’’’’’’”’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’K’’’’’’’’’’’’’’’’’’’1Ž’1’’’’’’’’’’’’’’’’’’’qŽ’O’’’’’’’’’’’’’’’’’’’ю’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŽ’$’’’’’’’’’’’’’’’’’’’!’G’’’’’’’’’’’’’’’’’’’q’4’’’’’’’’’’’’’’’’’’’±’1’’’’’’’’’’’’’’’’’’’ń’P’’’’’’’’’’’’’’’’’’’Q’5’’’’’’’’’’’’’’’’’’’‘’L’’’’’’’’’’’’’’’’’’’ᐒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‘’N’’’’’’’’’’’’’’’’’’’”‘’I’’’’’’’’’’’’’’’’’’’ń‘’/’’’’’’’’’’’’’’’’’’’1’’L’’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’ђ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’/’’’’’’’’’’’’’’’’’’’A“’=’’’’’’’’’’’’’’’’’’’“’$’’’’’’’’’’’’’’’’’’’±“’5’’’’’’’’’’’’’’’’’’’ń“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q”’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘”’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į”’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’A•’4’’’’’’’’’’’’’’’’’’’•’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’–’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q–’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į–’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń–’J’’’’’’’’’’’’’’’’’’’A—’#’’’’’’’’’’’’’’’’’’’q—’3’’’’’’’’’’’’’’’’’’’±—’N’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!˜’#’’’’’’’’’’’’’’’’’’’Q˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q˜’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ј’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’™’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A™’L’’’’’’’’’’’’’’’’’’’‘™’L’’’’’’’’’’’’’’’’’’’į™’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’š’"’’’’’’’’’’’’’’’’’’’Aš’-’’’’’’’’’’’’’’’’’’’qš’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”š’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’њ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńš’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!›’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A›’R’’’’’’’’’’’’’’’’’’’”›’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ћ’’’’’’’’’’’’’’’’’’’’ń›’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aœ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”œ’I’’’’’’’’’’’’’’’’’’’ńœ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’!’’’’’’’’’’’’’’’’’’’q’$’’’’’’’’’’’’’’’’’’’”’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѝ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ž’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’až’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ž’S’’’’’’’’’’’’’’’’’’’įž’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŸ’’’’’’’’’’’’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’Ÿ’ ’’’’’’’’’’’’’’’’’’’±Ÿ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’џ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a ’%’’’’’’’’’’’’’’’’’’’‘ ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į ’I’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’I’’’’’’’’’’’’’’’’’’’”’H’’’’’’’’’’’’’’’’’’’Ń”’M’’’’’’’’’’’’’’’’’’’!¢’’’’’’’’’’’’’’’’’’’’A¢’P’’’’’’’’’’’’’’’’’’’”¢’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń¢’)’’’’’’’’’’’’’’’’’’’£’%’’’’’’’’’’’’’’’’’’’1£’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a£’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń£’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¤’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¤’E’’’’’’’’’’’’’’’’’’’‘¤’L’’’’’’’’’’’’’’’’’’’ᤒJ’’’’’’’’’’’’’’’’’’’1„’8’’’’’’’’’’’’’’’’’’’q„’K’’’’’’’’’’’’’’’’’’’Į„’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¦’N’’’’’’’’’’’’’’’’’’’a¦’-’’’’’’’’’’’’’’’’’’’‘¦’H’’’’’’’’’’’’’’’’’’’ᦒO’’’’’’’’’’’’’’’’’’’A§’0’’’’’’’’’’’’’’’’’’’§’L’’’’’’’’’’’’’’’’’’’ѧ’L’’’’’’’’’’’’’’’’’’’!Ø’L’’’’’’’’’’’’’’’’’’’qØ’O’’’’’’’’’’’’’’’’’’’ŃØ’M’’’’’’’’’’’’’’’’’’’!©’=’’’’’’’’’’’’’’’’’’’a©’N’’’’’’’’’’’’’’’’’’’±©’N’’’’’’’’’’’’’’’’’’’Ŗ’M’’’’’’’’’’’’’’’’’’’QŖ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ŗ’J’’’’’’’’’’’’’’’’’’’įŖ’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1«’I’’’’’’’’’’’’’’’’’’’«’L’’’’’’’’’’’’’’’’’’’Ń«’L’’’’’’’’’’’’’’’’’’’!¬’M’’’’’’’’’’’’’’’’’’’q¬’C’’’’’’’’’’’’’’’’’’’Į¬’K’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1­’3’’’’’’’’’’’’’’’’’’’q­’/’’’’’’’’’’’’’’’’’’’±­’0’’’’’’’’’’’’’’’’’’’ń­’’’’’’’’’’’’’’’’’’’’®’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’le " + text (stat no));’’’’’’’’’END PROC basic stop;’’’’’’’’’’END PACKET basic odds and ends’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’P@’’@’’’’’’’’’’’’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’BASIC.Compiler’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŅŠa€ė’’  ė[’’’’ė[ė[ č’ž’’’’a€’’’’’’’’’’’’’’q€’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’‘€’M’’’’’’’’’’’’’’’’’’’ဒM’’’’’’’’’’’’’’’’’’’1’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’с’M’’’’’’’’’’’’’’’’’’’!‚’M’’’’’’’’’’’’’’’’’’’q‚’M’’’’’’’’’’’’’’’’’’’Į‚’M’’’’’’’’’’’’’’’’’’’ƒ’M’’’’’’’’’’’’’’’’’’’aƒ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ƒ’L’’’’’’’’’’’’’’’’’’’„’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’"Š ’’’’’’’’q„’e’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…’E’’’’’’’’’’’’’’’’’’’Q…’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…’M’’’’’’’’’’’’’’’’’’’х’H’’’’’’’’’’’’’’’’’’’!†’I’’’’’’’’’’’’’’’’’’’q†’L’’’’’’’’’’’’’’’’’’’Į†’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń†’M’’’’’’’’’’’’’’’’’’’A‡’?’’’’’’’’’’’’’’’’’’’‘‡’?’’’’’’’’’’’’’’’’’’’ᇒ?’’’’’’’’’’’’’’’’’’’1ˆ’?’’’’’’’’’’’’’’’’’’’ˆ’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ш’M’’’’’’’’’’’’’’’’’’’!‰’L’’’’’’’’’’’’’’’’’’’q‰’L’’’’’’’’’’’’’’’’’’’Į‰’L’’’’’’’’’’’’’’’’’’’Š’L’’’’’’’’’’’’’’’’’’’aŠ’L’’’’’’’’’’’’’’’’’’’±Š’Y’’’’’’’’’’’’’’’’’’’‹’L’’’’’’’’’’’’’’’’’’’a‹’L’’’’’’’’’’’’’’’’’’’±‹’L’’’’’’’’’’’’’’’’’’’Œ’L’’’’’’’’’’’’’’’’’’’QŒ’L’’’’’’’’’’’’’’’’’’’”Œ’L’’’’’’’’’’’’’’’’’’’ńŒ’L’’’’’’’’’’’’’’’’’’’A’L’’’’’’’’’’’’’’’’’’’‘’L’’’’’’’’’’’’’’’’’’’į’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qŽ’G’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’ńŽ’G’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ OPN VAR opn;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’2’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’ѐ’5’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP NAME;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‘’M’’’’’’’’’’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’Į‘’)’’’’’’’’’’’’’’’’’’’ń‘’.’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a’’&’’’’’’’’’’’’’’’’’’’‘’’*’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’“’M’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’‘“’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ѓ’2’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q”’#’’’’’’’’’’’’’’’’’’’””’*’’’’’’’’’’’’’’’’’’’є’’’’’’’’’’’’’’’’’’’’ń”’H’’’’’’’’’’’’’’’’’’’A•’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q•’$’’’’’’’’’’’’’’’’’’’•’/’’’’’’’’’’’’’’’’’’’Į•’’’’’’’’’’’’’’’’’’’’į•’’’’’’’’’’’’’’’’’’’’–’c’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q–’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘–’!’’’’’’’’’’’’’’’’’’’Į–’’’’’’’’’’’’’’’’’’’’į–’’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’!—’’’’’’’’’’’’’’’’’’’’A—’b’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ї’"’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’!˜’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A˜’5’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’”˜’’’’’’’’’’’’’’’’’’’’Į˜’L’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’1™’d’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į™’3’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’!š’’’’’’’’’’’’’’’’’’’’Aš’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aš’4’’’’’’’’’’’’’’’’’’’”š’’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’›’=’’’’’’’’’’’’’’’’’’’A›’’’’’’’’’’’’’’’’’’’’a›’0’’’’’’’’’’’’’’’’’’’”›’’’’’’’’’’’’’’’’’’’’Į›’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į›’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’!œ’’’’’’’’’’’’’’’’’’’’Aœ’"’’’’’’’’’’’’’’’’’’’qœ’#’’’’’’’’’’’’’’’’’’’”œ’’’’’’’’’’’’’’’’’’’’Įœ’%’’’’’’’’’’’’’’’’’’’ńœ’(’’’’’’’’’’’’’’’’’’’!’I’’’’’’’’’’’’’’’’’’’q’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get const:’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’H’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’Qž’’’’’’’’’’’’’’’’’’’’qž’D’’’’’’’’’’’’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’įž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ÿ’D’’’’’’’’’’’’’’’’’’’QŸ’’’’’’’’’’’’’’’’’’’’’’ THEN 6’’’’’’’’’’’’’ ELSE 12’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qŸ’’’’’’’’’’’’’’’’’’’’‘Ÿ’’’’’’’’’’’’’’’’’’’’±Ÿ’’’’’’’’’’’’’’’’’’’’ĮŸ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŸ’’’’’’’’’’’’’’’’’’’’ ’M’’’’’’’’’’’’’’’’’’’a ’3’’’’’’’’’’’’’’’’’’’” ’B’’’’’’’’’’’’’’’’’’’ń ’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’Į”’’’’’’’’’’’’’’’’’’’’į”’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1¢’’’’’’’’’’’’’’’’’’’’Q¢’’’’’’’’’’’’’’’’’’’’q¢’’’’’’’’’’’’’’’’’’’’‘¢’’’’’’’’’’’’’’’’’’’’Į¢’’’’’’’’’’’’’’’’’’’’ń¢’P’’’’’’’’’’’’’’’’’’’Q£’I’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”£’’’’’’’’’’’’’’’’’’’’Į£’’’’’’’’’’’’’’’’’’’’ᣒ ’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’A¤’!’’’’’’’’’’’’’’’’’’’q¤’P’’’’’’’’’’’’’’’’’’’Ѥ’I’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get operator:’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q®’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”®’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į®’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Æ’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QÆ’2’’’’’’’’’’’’’’’’’’’‘Æ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÆ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!°’L’’’’’’’’’’’’’’’’’’’q°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘°’5’’’’’’’’’’’’’’’’’’’Ѱ’?’’’’’’’’’’’’’’’’’’’!±’4’’’’’’’’’’’’’’’’’’’a±’?’’’’’’’’’’’’’’’’’’’±±’4’’’’’’’’’’’’’’’’’’’ń±’?’’’’’’’’’’’’’’’’’’’A²’4’’’’’’’’’’’’’’’’’’’²’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѳ’N’’’’’’’’’’’’’’’’’’’!³’K’’’’’’’’’’’’’’’’’’’q³’N’’’’’’’’’’’’’’’’’’’Į³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į³’Q’’’’’’’’’’’’’’’’’’’A“’Q’’’’’’’’’’’’’’’’’’’”“’N’’’’’’’’’’’’’’’’’’’ń“’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qµ’K’’’’’’’’’’’’’’’’’’’”µ’’’’’’’’’’’’’’’’’’’’Įµ’C’’’’’’’’’’’’’’’’’’’¶’)’’’’’’’’’’’’’’’’’’’A¶’E’’’’’’’’’’’’’’’’’’’‘¶’Q’’’’’’’’’’’’’’’’’’’ń¶’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q·’L’’’’’’’’’’’’’’’’’’’”·’K’’’’’’’’’’’’’’’’’’’ń·’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ø’Q’’’’’’’’’’’’’’’’’’’‘ø’R’’’’’’’’’’’’’’’’’’’ńø’M’’’’’’’’’’’’’’’’’’’A¹’M’’’’’’’’’’’’’’’’’’’‘¹’K’’’’’’’’’’’’’’’’’’’į¹’]’’’’’’’’’’’’’’’’’’’Aŗ’O’’’’’’’’’’’’’’’’’’’”ŗ’’’’’’’’’’’’’’’’’’’’Įŗ’Q’’’’’’’’’’’’’’’’’’’!»’M’’’’’’’’’’’’’’’’’’’q»’V’’’’’’’’’’’’’’’’’’’Ń»’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¼’ ’’’’’’’’’’’’’’’’’’’A¼’#’’’’’’’’’’’’’’’’’’’q¼’/’’’’’’’’’’’’’’’’’’’±¼’2’’’’’’’’’’’’’’’’’’’ń¼’2’’’’’’’’’’’’’’’’’’’1½’B’’’’’’’’’’’’’’’’’’’½’:’’’’’’’’’’’’’’’’’’’Į½’:’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¾’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’f’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń¾’K’’’’’’’’’’’’’’’’’’’Aæ’,’’’’’’’’’’’’’’’’’’’qæ’B’’’’’’’’’’’’’’’’’’’Įæ’+’’’’’’’’’’’’’’’’’’’ńæ’K’’’’’’’’’’’’’’’’’’’AĄ’,’’’’’’’’’’’’’’’’’’’qĄ’N’’’’’’’’’’’’’’’’’’’ĮĄ’H’’’’’’’’’’’’’’’’’’’Į’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĮ’M’’’’’’’’’’’’’’’’’’’±Į’I’’’’’’’’’’’’’’’’’’’Ā’5’’’’’’’’’’’’’’’’’’’AĀ’O’’’’’’’’’’’’’’’’’’’”Ā’P’’’’’’’’’’’’’’’’’’’Ć’H’’’’’’’’’’’’’’’’’’’QĆ’’’’’’’’’’’’’’’’’’’’qĆ’L’’’’’’’’’’’’’’’’’’’ĮĆ’T’’’’’’’’’’’’’’’’’’’!Ä’P’’’’’’’’’’’’’’’’’’’Ä’K’’’’’’’’’’’’’’’’’’’ŃÄ’.’’’’’’’’’’’’’’’’’’’Å’K’’’’’’’’’’’’’’’’’’’QÅ’Q’’’’’’’’’’’’’’’’’’’±Å’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ę’O’’’’’’’’’’’’’’’’’’’aĘ’’’’’’’’’’’’’’’’’’’’Ę’S’’’’’’’’’’’’’’’’’’’įĘ’N’’’’’’’’’’’’’’’’’’’1Ē’ ’’’’’’’’’’’’’’’’’’’aĒ’K’’’’’’’’’’’’’’’’’’’±Ē’'’’’’’’’’’’’’’’’’’’’įĒ’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AČ’Q’’’’’’’’’’’’’’’’’’’”Č’R’’’’’’’’’’’’’’’’’’’É’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1É’O’’’’’’’’’’’’’’’’’’’‘É’P’’’’’’’’’’’’’’’’’’’ńÉ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ź’N’’’’’’’’’’’’’’’’’’’Ź’-’’’’’’’’’’’’’’’’’’’±Ź’L’’’’’’’’’’’’’’’’’’’Ė’N’’’’’’’’’’’’’’’’’’’QĖ’X’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ė’&’’’’’’’’’’’’’’’’’’’įĖ’/’’’’’’’’’’’’’’’’’’’!Ģ’4’’’’’’’’’’’’’’’’’’’aĢ’1’’’’’’’’’’’’’’’’’’’”Ģ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĢ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĢ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ķ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĶ’A’’’’’’’’’’’’’’’’’’’ĮĶ’D’’’’’’’’’’’’’’’’’’’Ī’L’’’’’’’’’’’’’’’’’’’aĪ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ī’N’’’’’’’’’’’’’’’’’’’ńĪ’N’’’’’’’’’’’’’’’’’’’AĻ’O’’’’’’’’’’’’’’’’’’’”Ļ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĻ’S’’’’’’’’’’’’’’’’’’’AŠ’6’’’’’’’’’’’’’’’’’’’Š’K’’’’’’’’’’’’’’’’’’’ŃŠ’K’’’’’’’’’’’’’’’’’’’!Ń’O’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’”Ń’H’’’’’’’’’’’’’’’’’’’ńŃ’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŅ’P’’’’’’’’’’’’’’’’’’’±Ņ’L’’’’’’’’’’’’’’’’’’’Ó’M’’’’’’’’’’’’’’’’’’’QÓ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÓ’P’’’’’’’’’’’’’’’’’’’ŃÓ’Q’’’’’’’’’’’’’’’’’’’1Ō’N’’’’’’’’’’’’’’’’’’’Ō’Q’’’’’’’’’’’’’’’’’’’įŌ’N’’’’’’’’’’’’’’’’’’’1Õ’R’’’’’’’’’’’’’’’’’’’‘Õ’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÕ’3’’’’’’’’’’’’’’’’’’’Ö’6’’’’’’’’’’’’’’’’’’’QÖ’S’’’’’’’’’’’’’’’’’’’±Ö’4’’’’’’’’’’’’’’’’’’’ńÖ’0’’’’’’’’’’’’’’’’’’’1×’Q’’’’’’’’’’’’’’’’’’’‘×’O’’’’’’’’’’’’’’’’’’’ń×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ų’<’’’’’’’’’’’’’’’’’’’QŲ’R’’’’’’’’’’’’’’’’’’’±Ų’R’’’’’’’’’’’’’’’’’’’Ł’J’’’’’’’’’’’’’’’’’’’aŁ’’’’’’’’’’’’’’’’’’’’‘Ł’P’’’’’’’’’’’’’’’’’’’ńŁ’P’’’’’’’’’’’’’’’’’’’QŚ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŚ’3’’’’’’’’’’’’’’’’’’’±Ś’*’’’’’’’’’’’’’’’’’’’įŚ’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ū’O’’’’’’’’’’’’’’’’’’’Ū’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ü’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÜ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ü’I’’’’’’’’’’’’’’’’’’’ŃÜ’9’’’’’’’’’’’’’’’’’’’Ż’M’’’’’’’’’’’’’’’’’’’aŻ’C’’’’’’’’’’’’’’’’’’’±Ż’"’’’’’’’’’’’’’’’’’’’įŻ’K’’’’’’’’’’’’’’’’’’’1Ž’$’’’’’’’’’’’’’’’’’’’aŽ’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ž’)’’’’’’’’’’’’’’’’’’’įŽ’-’’’’’’’’’’’’’’’’’’’ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ß’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aą’R’’’’’’’’’’’’’’’’’’’Įą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įą’T’’’’’’’’’’’’’’’’’’’Aį’’’’’’’’’’’’’’’’’’’’aį’J’’’’’’’’’’’’’’’’’’’±į’J’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ā’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įā’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ć’N’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’±ć’J’’’’’’’’’’’’’’’’’’’ä’J’’’’’’’’’’’’’’’’’’’Qä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qä’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńä’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’å’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1å’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘å’T’’’’’’’’’’’’’’’’’’’ńå’’’’’’’’’’’’’’’’’’’’ę’J’’’’’’’’’’’’’’’’’’’aę’J’’’’’’’’’’’’’’’’’’’±ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńę’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ē’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ē’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ē’J’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’Ń„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’¦’9’’’’’’’’’’’’’’’’’’’Q¦’.’’’’’’’’’’’’’’’’’’’¦’.’’’’’’’’’’’’’’’’’’’±¦’/’’’’’’’’’’’’’’’’’’’ń¦’/’’’’’’’’’’’’’’’’’’’1§’/’’’’’’’’’’’’’’’’’’’q§’.’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ bool op prio:’’’’’’’’”§’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get bracket:’’’’’’’’’±§’/’’’’’’’’’’’’’’’’’’’ń§’’’’’’’’’’’’’’’’’’’’Ø’*’’’’’’’’’’’’’’’’’’’AØ’’’’’’’’’’’’’’’’’’’’aØ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’”Ø’’’’’’’’’’’’’’’’’’’’±Ø’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᨒ’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’!©’’’’’’’’’’’’’’’’’’’’A©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’©’*’’’’’’’’’’’’’’’’’’’±©’’’’’’’’’’’’’’’’’’’’Ń©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń©’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’1Ŗ’’’’’’’’’’’’’’’’’’’’QŖ’!’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’”Ŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮŖ’’’’’’’’’’’’’’’’’’’’įŖ’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’!«’’’’’’’’’’’’’’’’’’’’A«’2’’’’’’’’’’’’’’’’’’’«’2’’’’’’’’’’’’’’’’’’’Į«’1’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’!¬’*’’’’’’’’’’’’’’’’’’’Q¬’H’’’’’’’’’’’’’’’’’’’‚Š’?’’’’’’’’’’’’’’’’’’’ᬒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’!­’’’’’’’’’’’’’’’’’’’’A­’$’’’’’’’’’’’’’’’’’’’q­’’’’’’’’’’’’’’’’’’’’‘­’’’’’’’’’’’’’’’’’’’’±­’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!®’"’’’’’’’’’’’’’’’’’’’Q®’’’’’’’’’’’’’’’’’’’’q®’’’’’’’’’’’’’’’’’’’’‘®’’’’’’’’’’’’’’’’’’’’±®’’’’’’’’’’’’’’’’’’’’Ń®’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’!Æ’’’’’’’’’’’’’’’’’’’’AÆ’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Æ’)’’’’’’’’’’’’’’’’’’’ᯒM’’’’’’’’’’’’’’’’’’’1°’M’’’’’’’’’’’’’’’’’’’°’M’’’’’’’’’’’’’’’’’’’Ѱ’M’’’’’’’’’’’’’’’’’’’!±’’’’’’’’’’’’’’’’’’’’A±’’’’’’’’’’’’’’’’’’’’a±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q±’%’’’’’’’’’’’’’’’’’’’”±’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ѱ’’’’’’’’’’’’’’’’’’’’ń±’’’’’’’’’’’’’’’’’’’’!²’’’’’’’’’’’’’’’’’’’’A²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a²’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’”²’’’’’’’’’’’’’’’’’’’’Į²’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’1³’Š’’’’’’’’’’’’’’’’’’’Į³’%’’’’’’’’’’’’’’’’’’’ń³’f’’’’’’’’’’’’’’’’’’’a“’%’’’’’’’’’’’’’’’’’’’‘“’l’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’µ’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1µ’’’’’’’’’’’’’’’’’’’’Qµ’0’’’’’’’’’’’’’’’’’’’‘µ’-’’’’’’’’’’’’’’’’’’’Įµ’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńµ’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’1¶’’’’’’’’’’’’’’’’’’’’Q¶’’’’’’’’’’’’’’’’’’’’q¶’"’’’’’’’’’’’’’’’’’’’”¶’’’’’’’’’’’’’’’’’’’’Į¶’%’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń¶’’’’’’’’’’’’’’’’’’’’·’3’’’’’’’’’’’’’’’’’’’Q·’5’’’’’’’’’’’’’’’’’’’‘·’Q’’’’’’’’’’’’’’’’’’’ń·’’’’’’’’’’’’’’’’’’’’ø’6’’’’’’’’’’’’’’’’’’’Qø’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’”ø’’’’’’’’’’’’’’’’’’’’Įø’2’’’’’’’’’’’’’’’’’’’¹’2’’’’’’’’’’’’’’’’’’’A¹’0’’’’’’’’’’’’’’’’’’’¹’1’’’’’’’’’’’’’’’’’’’Į¹’’’’’’’’’’’’’’’’’’’’į¹’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ŗ’’’’’’’’’’’’’’’’’’’’Qŗ’/’’’’’’’’’’’’’’’’’’’‘ŗ’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įŗ’’’’’’’’’’’’’’’’’’’’įŗ’3’’’’’’’’’’’’’’’’’’’!»’,’’’’’’’’’’’’’’’’’’’Q»’'’’’’’’’’’’’’’’’’’’’»’&’’’’’’’’’’’’’’’’’’’±»’*’’’’’’’’’’’’’’’’’’’į»’+’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1¼’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q¼’A’’’’’’’’’’’’’’’’’’’”¼’’’’’’’’’’’’’’’’’’’’Į¼’’’’’’’’’’’’’’’’’’’’į¼’+’’’’’’’’’’’’’’’’’’’½’4’’’’’’’’’’’’’’’’’’’Q½’’’’’’’’’’’’’’’’’’’’q½’’’’’’’’’’’’’’’’’’’’”½’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ѽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń½’S’’’’’’’’’’’’’’’’’’’Q¾’’’’’’’’’’’’’’’’’’’’q¾’’’’’’’’’’’’’’’’’’’’‘¾’+’’’’’’’’’’’’’’’’’’’Į¾’'’’’’’’’’’’’’’’’’’’’ń¾’4’’’’’’’’’’’’’’’’’’’1æ’’’’’’’’’’’’’’’’’’’’Qæ’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńæ’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ INT VAR j;’’’’’’’’’!Ą’’’’’’’’’’’’’’’’’’’’AĄ’J’’’’’’’’’’’’’’’’’’’‘Ą’’’’’’’’’’’’’’’’’’’’±Ą’J’’’’’’’’’’’’’’’’’’’Į’F’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ PER’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QĮ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’N’’’’’’’’’’’’’’’’’’’ŃĮ’’’’’’’’’’’’’’’’’’’’ńĮ’/’’’’’’’’’’’’’’’’’’’1Ā’5’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’qĀ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ā’’’’’’’’’’’’’’’’’’’’±Ā’!’’’’’’’’’’’’’’’’’’’įĀ’’’’’’’’’’’’’’’’’’’’Ć’%’’’’’’’’’’’’’’’’’’’’’ IF is usr’’’’’’’’’’1Ć’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’QĆ’’’’’’’’’’’’’’’’’’’’aĆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’”Ć’’’’’’’’’’’’’’’’’’’’±Ć’’’’’’’’’’’’’’’’’’’’ŃĆ’@’’’’’’’’’’’’’’’’’’’!Ä’’’’’’’’’’’’’’’’’’’’AÄ’<’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’”Ä’’’’’’’’’’’’’’’’’’’’ĮÄ’’’’’’’’’’’’’’’’’’’’įÄ’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ INT VAR j;’’’’’’’’’Å’!’’’’’’’’’’’’’’’’’’’AÅ’J’’’’’’’’’’’’’’’’’’’’’ IF is usr’’’’’’’’’’‘Å’’’’’’’’’’’’’’’’’’’’±Å’<’’’’’’’’’’’’’’’’’’’ńÅ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Ę’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AĘ’’’’’’’’’’’’’’’’’’’’aĘ’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’”Ę’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃĘ’’’’’’’’’’’’’’’’’’’’įĘ’L’’’’’’’’’’’’’’’’’’’1Ē’’’’’’’’’’’’’’’’’’’’QĒ’’’’’’’’’’’’’’’’’’’’qĒ’\’’’’’’’’’’’’’’’’’’’ŃĒ’’’’’’’’’’’’’’’’’’’’ńĒ’F’’’’’’’’’’’’’’’’’’’AČ’^’’’’’’’’’’’’’’’’’’’”Č’X’’’’’’’’’’’’’’’’’’’É’;’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AÉ’’’’’’’’’’’’’’’’’’’’aÉ’@’’’’’’’’’’’’’’’’’’’±É’’’’’’’’’’’’’’’’’’’’ĮÉ’#’’’’’’’’’’’’’’’’’’’ńÉ’!’’’’’’’’’’’’’’’’’’’!Ź’^’’’’’’’’’’’’’’’’’’’Ź’G’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃŹ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŹ’H’’’’’’’’’’’’’’’’’’’AĖ’’’’’’’’’’’’’’’’’’’’aĖ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’”Ė’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ė’’’’’’’’’’’’’’’’’’’’ŃĖ’.’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’!Ģ’(’’’’’’’’’’’’’’’’’’’QĢ’’’’’’’’’’’’’’’’’’’’qĢ’(’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Ģ’’’’’’’’’’’’’’’’’’’’ĮĢ’’’’’’’’’’’’’’’’’’’’įĢ’’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’!Ķ’C’’’’’’’’’’’’’’’’’’’qĶ’8’’’’’’’’’’’’’’’’’’’±Ķ’’’’’’’’’’’’’’’’’’’’ĮĶ’’’’’’’’’’’’’’’’’’’’įĶ’’’’’’’’’’’’’’’’’’’’Ī’1’’’’’’’’’’’’’’’’’’’AĪ’=’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’”Ī’0’’’’’’’’’’’’’’’’’’’įĪ’V’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’AĻ’’’’’’’’’’’’’’’’’’’’QĻ’4’’’’’’’’’’’’’’’’’’’‘Ļ’’’’’’’’’’’’’’’’’’’’±Ļ’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’ŃĻ’’’’’’’’’’’’’’’’’’’’ńĻ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’QŠ’.’’’’’’’’’’’’’’’’’’’Š’Y’’’’’’’’’’’’’’’’’’’įŠ’’’’’’’’’’’’’’’’’’’’Ń’Z’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’aŃ’’’’’’’’’’’’’’’’’’’’Ń’&’’’’’’’’’’’’’’’’’’’±Ń’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ skip comma:’’’’’’’’’’ńŃ’0’’’’’’’’’’’’’’’’’’’1Ņ’T’’’’’’’’’’’’’’’’’’’‘Ņ’+’’’’’’’’’’’’’’’’’’’’’’’’’’’č’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1č’P’’’’’’’’’’’’’’’’’’’‘č’’’’’’’’’’’’’’’’’’’’±č’J’’’’’’’’’’’’’’’’’’’é’K’’’’’’’’’’’’’’’’’’’Qé’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qé’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”é’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įé’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ź’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ź’S’’’’’’’’’’’’’’’’’’’‘ź’5’’’’’’’’’’’’’’’’’’’Ńź’I’’’’’’’’’’’’’’’’’’’!ė’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qė’$’’’’’’’’’’’’’’’’’’’”ė’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńė’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ģ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qģ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ģ’P’’’’’’’’’’’’’’’’’’’ķ’2’’’’’’’’’’’’’’’’’’’Aķ’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ķ’#’’’’’’’’’’’’’’’’’’’Įķ’$’’’’’’’’’’’’’’’’’’’ńķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ī’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aī’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ī’N’’’’’’’’’’’’’’’’’’’įī’;’’’’’’’’’’’’’’’’’’’!ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qļ’8’’’’’’’’’’’’’’’’’’’‘ļ’5’’’’’’’’’’’’’’’’’’’Ńļ’5’’’’’’’’’’’’’’’’’’’š’5’’’’’’’’’’’’’’’’’’’Qš’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘š’J’’’’’’’’’’’’’’’’’’’įš’K’’’’’’’’’’’’’’’’’’’1ń’I’’’’’’’’’’’’’’’’’’’ń’F’’’’’’’’’’’’’’’’’’’Ńń’L’’’’’’’’’’’’’’’’’’’!ņ’>’’’’’’’’’’’’’’’’’’’aņ’R’’’’’’’’’’’’’’’’’’’Įņ’Q’’’’’’’’’’’’’’’’’’’!ó’G’’’’’’’’’’’’’’’’’’’qó’%’’’’’’’’’’’’’’’’’’’”ó’Q’’’’’’’’’’’’’’’’’’’ō’J’’’’’’’’’’’’’’’’’’’Qō’N’’’’’’’’’’’’’’’’’’’”ō’Q’’’’’’’’’’’’’’’’’’’õ’P’’’’’’’’’’’’’’’’’’’aõ’P’’’’’’’’’’’’’’’’’’’Įõ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńõ’P’’’’’’’’’’’’’’’’’’’Qö’P’’’’’’’’’’’’’’’’’’’±ö’I’’’’’’’’’’’’’’’’’’’÷’U’’’’’’’’’’’’’’’’’’’a÷’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±÷’G’’’’’’’’’’’’’’’’’’’ų’G’’’’’’’’’’’’’’’’’’’Qų’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ų’!’’’’’’’’’’’’’’’’’’’Ńų’"’’’’’’’’’’’’’’’’’’’ł’;’’’’’’’’’’’’’’’’’’’Ał’)’’’’’’’’’’’’’’’’’’’qł’#’’’’’’’’’’’’’’’’’’’”ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įł’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ś’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aś’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ś’%’’’’’’’’’’’’’’’’’’’Ńś’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ū’@’’’’’’’’’’’’’’’’’’’Qū’G’’’’’’’’’’’’’’’’’’’”ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńū’A’’’’’’’’’’’’’’’’’’’!ü’F’’’’’’’’’’’’’’’’’’’qü’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ü’L’’’’’’’’’’’’’’’’’’’ż’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ż’!’’’’’’’’’’’’’’’’’’’aż’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńż’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ž’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qž’,’’’’’’’’’’’’’’’’’’’ž’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńž’J’’’’’’’’’’’’’’’’’’’!’’M’’’’’’’’’’’’’’’’’’’q’’#’’’’’’’’’’’’’’’’’’’”’’L’’’’’’’’’’’’’’’’’’’ń’’K’’’’’’’’’’’’’’’’’’’B’&’’’’’’’’’’’’’’’’’’’r’W’’’’’’’’’’’’’’’’’’’Ņ’L’’’’’’’’’’’’’’’’’’’"’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’O’’’’’’’’’’’’’’’’’’’²’K’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’b’I’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’6’’’’’’’’’’’’’’’’’’’ņ’7’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’B’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’ā’M’’’’’’’’’’’’’’’’’’’2’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’0’’’’’’’’’’’’’’’’’’’¢’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’P’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’b ’K’’’’’’’’’’’’’’’’’’’² ’N’’’’’’’’’’’’’’’’’’’ ’5’’’’’’’’’’’’’’’’’’’B ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’4’’’’’’’’’’’’’’’’’’’Ņ ’I’’’’’’’’’’’’’’’’’’’" ’M’’’’’’’’’’’’’’’’’’’r ’-’’’’’’’’’’’’’’’’’’’¢ ’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā ’K’’’’’’’’’’’’’’’’’’’2 ’H’’’’’’’’’’’’’’’’’’’‚ ’N’’’’’’’’’’’’’’’’’’’Ņ ’Q’’’’’’’’’’’’’’’’’’’2 ’R’’’’’’’’’’’’’’’’’’’’ ’O’’’’’’’’’’’’’’’’’’’ņ ’C’’’’’’’’’’’’’’’’’’’B’[’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’F’’’’’’’’’’’’’’’’’’’ņ’O’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’U’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’0’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’b’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’K’’’’’’’’’’’’’’’’’’’ņ’N’’’’’’’’’’’’’’’’’’’B’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’Q’’’’’’’’’’’’’’’’’’’ā’R’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’'’’’’’’’’’’’’’’’’’’’ā’#’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’H’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’5’’’’’’’’’’’’’’’’’’’b’4’’’’’’’’’’’’’’’’’’’¢’I’’’’’’’’’’’’’’’’’’’ņ’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’C’’’’’’’’’’’’’’’’’’’‚’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’C’’’’’’’’’’’’’’’’’’’"’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’H’’’’’’’’’’’’’’’’’’’Ā’'’’’’’’’’’’’’’’’’’’’ņ’K’’’’’’’’’’’’’’’’’’’B’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮŅ’F’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ó’’’’’’’’’’’’’’’’’’’’AÓ’(’’’’’’’’’’’’’’’’’’’qÓ’_’’’’’’’’’’’’’’’’’’’įÓ’3’’’’’’’’’’’’’’’’’’’!Ō’H’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’qŌ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ō’’’’’’’’’’’’’’’’’’’’”Ō’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ copy result :’’’’’’’’ŃŌ’E’’’’’’’’’’’’’’’’’’’!Õ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AÕ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aÕ’I’’’’’’’’’’’’’’’’’’’±Õ’'’’’’’’’’’’’’’’’’’’’įÕ’+’’’’’’’’’’’’’’’’’’’Ö’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AÖ’’’’’’’’’’’’’’’’’’’’aÖ’’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’”Ö’’’’’’’’’’’’’’’’’’’’ĮÖ’’’’’’’’’’’’’’’’’’’’įÖ’’’’’’’’’’’’’’’’’’’’×’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q×’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q×’L’’’’’’’’’’’’’’’’’’’Į×’’’’’’’’’’’’’’’’’’’’’’ THEN’’’’’’’’’’’’’’’į×’’’’’’’’’’’’’’’’’’’’Ų’&’’’’’’’’’’’’’’’’’’’1Ų’’’’’’’’’’’’’’’’’’’’QŲ’’’’’’’’’’’’’’’’’’’’qŲ’’’’’’’’’’’’’’’’’’’’‘Ų’’’’’’’’’’’’’’’’’’’’±Ų’k’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ł’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ make real :’’’’’’’’’’AŁ’’’’’’’’’’’’’’’’’’’’aŁ’5’’’’’’’’’’’’’’’’’’’”Ł’A’’’’’’’’’’’’’’’’’’’ńŁ’0’’’’’’’’’’’’’’’’’’’1Ś’!’’’’’’’’’’’’’’’’’’’aŚ’ ’’’’’’’’’’’’’’’’’’’‘Ś’’’’’’’’’’’’’’’’’’’’ĮŚ’k’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ make int :’’’’’’’’’’’1Ū’’’’’’’’’’’’’’’’’’’’QŪ’5’’’’’’’’’’’’’’’’’’’‘Ū’?’’’’’’’’’’’’’’’’’’’įŪ’0’’’’’’’’’’’’’’’’’’’!Ü’!’’’’’’’’’’’’’’’’’’’QÜ’ ’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’”Ü’k’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ż’B’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’”Ż’’’’’’’’’’’’’’’’’’’’ĮŻ’’’’’’’’’’’’’’’’’’’’įŻ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’!Ž’ ’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’Ž’;’’’’’’’’’’’’’’’’’’’ĮŽ’A’’’’’’’’’’’’’’’’’’’ß’;’’’’’’’’’’’’’’’’’’’Qß’A’’’’’’’’’’’’’’’’’’’”ß’;’’’’’’’’’’’’’’’’’’’įß’A’’’’’’’’’’’’’’’’’’’1ą’<’’’’’’’’’’’’’’’’’’’qą’A’’’’’’’’’’’’’’’’’’’Įą’I’’’’’’’’’’’’’’’’’’’į’J’’’’’’’’’’’’’’’’’’’aį’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ new constant:’’’’’’’’‘į’M’’’’’’’’’’’’’’’’’’’įį’M’’’’’’’’’’’’’’’’’’’1ā’M’’’’’’’’’’’’’’’’’’’ā’M’’’’’’’’’’’’’’’’’’’Ńā’=’’’’’’’’’’’’’’’’’’’ć’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ać’’’’’’’’’’’’’’’’’’’’ać’’’’’’’’’’’’’’’’’’’’ć’J’’’’’’’’’’’’’’’’’’’Ńć’’’’’’’’’’’’’’’’’’’’ńć’J’’’’’’’’’’’’’’’’’’’Aä’’’’’’’’’’’’’’’’’’’’aä’G’’’’’’’’’’’’’’’’’’’±ä’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’å’’’’’’’’’’’’’’’’’’’’!å’’’’’’’’’’’’’’’’’’’’Aå’’’’’’’’’’’’’’’’’’’’aå’b’’’’’’’’’’’’’’’’’’’Ńå’’’’’’’’’’’’’’’’’’’’ńå’a’’’’’’’’’’’’’’’’’’’aę’(’’’’’’’’’’’’’’’’’’’‘ę’h’’’’’’’’’’’’’’’’’’’ē’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qē’S’’’’’’’’’’’’’’’’’’’Ńē’’’’’’’’’’’’’’’’’’’’ńē’T’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qč’’’’’’’’’’’’’’’’’’’’qč’5’’’’’’’’’’’’’’’’’’’±č’’’’’’’’’’’’’’’’’’’’Ńč’’’’’’’’’’’’’’’’’’’’ńč’’’’’’’’’’’’’’’’’’’’é’.’’’’’’’’’’’’’’’’’’’Aé’?’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘é’’’’’’’’’’’’’’’’’’’’±é’!’’’’’’’’’’’’’’’’’’’įé’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ź’B’’’’’’’’’’’’’’’’’’’Qź’’’’’’’’’’’’’’’’’’’’qź’’’’’’’’’’’’’’’’’’’’‘ź’’’’’’’’’’’’’’’’’’’’±ź’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńź’>’’’’’’’’’’’’’’’’’’’ė’4’’’’’’’’’’’’’’’’’’’Qė’’’’’’’’’’’’’’’’’’’’aė’w’’’’’’’’’’’’’’’’’’’įė’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ģ’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ģ’’’’’’’’’’’’’’’’’’’’”ģ’’’’’’’’’’’’’’’’’’’’±ģ’’’’’’’’’’’’’’’’’’’’įģ’C’’’’’’’’’’’’’’’’’’’1ķ’"’’’’’’’’’’’’’’’’’’’aķ’’’’’’’’’’’’’’’’’’’’ķ’’’’’’’’’’’’’’’’’’’’”ķ’’’’’’’’’’’’’’’’’’’’Įķ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įķ’’’’’’’’’’’’’’’’’’’’ī’’’’’’’’’’’’’’’’’’’’!ī’’’’’’’’’’’’’’’’’’’’Aī’#’’’’’’’’’’’’’’’’’’’qī’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ī’’’’’’’’’’’’’’’’’’’’Ńī’*’’’’’’’’’’’’’’’’’’’ļ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ļ’’’’’’’’’’’’’’’’’’’’Aļ’*’’’’’’’’’’’’’’’’’’’qļ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ļ’8’’’’’’’’’’’’’’’’’’’Ńļ’2’’’’’’’’’’’’’’’’’’’š’,’’’’’’’’’’’’’’’’’’’Aš’’’’’’’’’’’’’’’’’’’’aš’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’”š’,’’’’’’’’’’’’’’’’’’’Ńš’,’’’’’’’’’’’’’’’’’’’ń’!’’’’’’’’’’’’’’’’’’’1ń’%’’’’’’’’’’’’’’’’’’’ań’,’’’’’’’’’’’’’’’’’’’‘ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ń’’’’’’’’’’’’’’’’’’’’Ńń’.’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ņ’’’’’’’’’’’’’’’’’’’’Aņ’*’’’’’’’’’’’’’’’’’’’qņ’’’’’’’’’’’’’’’’’’’’‘ņ’*’’’’’’’’’’’’’’’’’’’Įņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ó’M’’’’’’’’’’’’’’’’’’’Qó’M’’’’’’’’’’’’’’’’’’’”ó’M’’’’’’’’’’’’’’’’’’’ńó’M’’’’’’’’’’’’’’’’’’’Aō’K’’’’’’’’’’’’’’’’’’’‘ō’"’’’’’’’’’’’’’’’’’’’Įō’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńō’M’’’’’’’’’’’’’’’’’’’Aõ’=’’’’’’’’’’’’’’’’’’’õ’9’’’’’’’’’’’’’’’’’’’Įõ’’’’’’’’’’’’’’’’’’’’įõ’%’’’’’’’’’’’’’’’’’’’ö’-’’’’’’’’’’’’’’’’’’’Aö’,’’’’’’’’’’’’’’’’’’’qö’L’’’’’’’’’’’’’’’’’’’Įö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įö’M’’’’’’’’’’’’’’’’’’’1÷’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q÷’M’’’’’’’’’’’’’’’’’’’”÷’’’’’’’’’’’’’’’’’’’’Į÷’6’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’!ų’’’’’’’’’’’’’’’’’’’’Aų’#’’’’’’’’’’’’’’’’’’’qų’’’’’’’’’’’’’’’’’’’’‘ų’’’’’’’’’’’’’’’’’’’’Įų’!’’’’’’’’’’’’’’’’’’’ńų’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ł’M’’’’’’’’’’’’’’’’’’’qł’’’’’’’’’’’’’’’’’’’’‘ł’%’’’’’’’’’’’’’’’’’’’Įł’!’’’’’’’’’’’’’’’’’’’ńł’’’’’’’’’’’’’’’’’’’’!ś’’’’’’’’’’’’’’’’’’’’Qś’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ś’M’’’’’’’’’’’’’’’’’’’Ńś’’’’’’’’’’’’’’’’’’’’ńś’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ū’M’’’’’’’’’’’’’’’’’’’aū’’’’’’’’’’’’’’’’’’’’ū’6’’’’’’’’’’’’’’’’’’’Įū’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńū’M’’’’’’’’’’’’’’’’’’’Aü’’’’’’’’’’’’’’’’’’’’aü’'’’’’’’’’’’’’’’’’’’’‘ü’"’’’’’’’’’’’’’’’’’’’Įü’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńü’M’’’’’’’’’’’’’’’’’’’Aż’’’’’’’’’’’’’’’’’’’’aż’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ż’M’’’’’’’’’’’’’’’’’’’įż’’’’’’’’’’’’’’’’’’’’ž’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ž’M’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’Įž’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńž’T’’’’’’’’’’’’’’’’’’’Q’’?’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’±’’f’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’M’’’’’’’’’’’’’’’’’’’‚’5’’’’’’’’’’’’’’’’’’’Ā’<’’’’’’’’’’’’’’’’’’’’9’’’’’’’’’’’’’’’’’’’B’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’M’’’’’’’’’’’’’’’’’’’¢’9’’’’’’’’’’’’’’’’’’’ā’1’’’’’’’’’’’’’’’’’’’"’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’M’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’!’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’M’’’’’’’’’’’’’’’’’’’’’ PROC basic:’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’3’’’’’’’’’’’’’’’’’’’²’!’’’’’’’’’’’’’’’’’’’ā’@’’’’’’’’’’’’’’’’’’’2’V’’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’Ņ’&’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’R’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’M’’’’’’’’’’’’’’’’’’’Ņ’O’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’P’’’’’’’’’’’’’’’’’’’²’Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’N’’’’’’’’’’’’’’’’’’’‚’L’’’’’’’’’’’’’’’’’’’Ņ’M’’’’’’’’’’’’’’’’’’’"’L’’’’’’’’’’’’’’’’’’’r’N’’’’’’’’’’’’’’’’’’’Ā’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’R’S’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’J’’’’’’’’’’’’’’’’’’’"’<’’’’’’’’’’’’’’’’’’’b’;’’’’’’’’’’’’’’’’’’’¢’ ’’’’’’’’’’’’’’’’’’’Ņ’P’’’’’’’’’’’’’’’’’’’2 ’R’’’’’’’’’’’’’’’’’’’’ ’!’’’’’’’’’’’’’’’’’’’Ā ’!’’’’’’’’’’’’’’’’’’’ņ ’’’’’’’’’’’’’’’’’’’’!’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b!’L’’’’’’’’’’’’’’’’’’’²!’N’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’""’P’’’’’’’’’’’’’’’’’’’‚"’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²"’M’’’’’’’’’’’’’’’’’’’#’P’’’’’’’’’’’’’’’’’’’b#’K’’’’’’’’’’’’’’’’’’’²#’I’’’’’’’’’’’’’’’’’’’$’K’’’’’’’’’’’’’’’’’’’R$’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r$’N’’’’’’’’’’’’’’’’’’’Ā$’N’’’’’’’’’’’’’’’’’’’%’P’’’’’’’’’’’’’’’’’’’r%’M’’’’’’’’’’’’’’’’’’’Ā%’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā%’3’’’’’’’’’’’’’’’’’’’"&’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b&’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²&’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ&’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"'’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R'’N’’’’’’’’’’’’’’’’’’’¢'’N’’’’’’’’’’’’’’’’’’’ņ'’M’’’’’’’’’’’’’’’’’’’B(’’’’’’’’’’’’’’’’’’’’b(’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²(’9’’’’’’’’’’’’’’’’’’’ņ(’'’’’’’’’’’’’’’’’’’’’")’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R)’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²)’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ)’<’’’’’’’’’’’’’’’’’’’2*’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b*’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’*’O’’’’’’’’’’’’’’’’’’’ņ*’5’’’’’’’’’’’’’’’’’’’2+’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r+’)’’’’’’’’’’’’’’’’’’’¢+’"’’’’’’’’’’’’’’’’’’’Ņ+’;’’’’’’’’’’’’’’’’’’’,’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B,’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b,’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢,’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ,’H’’’’’’’’’’’’’’’’’’’"-’0’’’’’’’’’’’’’’’’’’’b-’O’’’’’’’’’’’’’’’’’’’Ā-’ ’’’’’’’’’’’’’’’’’’’ņ-’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2.’3’’’’’’’’’’’’’’’’’’’r.’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢.’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ.’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ.’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2/’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b/’)’’’’’’’’’’’’’’’’’’’’/’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā/’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’20’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚0’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā0’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ0’N’’’’’’’’’’’’’’’’’’’B1’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b1’)’’’’’’’’’’’’’’’’’’’’1’'’’’’’’’’’’’’’’’’’’’Ā1’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ1’;’’’’’’’’’’’’’’’’’’’22’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r2’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²2’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā2’N’’’’’’’’’’’’’’’’’’’23’I’’’’’’’’’’’’’’’’’’’‚3’’’’’’’’’’’’’’’’’’’’¢3’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā3’)’’’’’’’’’’’’’’’’’’’4’"’’’’’’’’’’’’’’’’’’’B4’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b4’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚4’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā4’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ4’M’’’’’’’’’’’’’’’’’’’B5’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’5’O’’’’’’’’’’’’’’’’’’’ņ5’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’26’8’’’’’’’’’’’’’’’’’’’r6’@’’’’’’’’’’’’’’’’’’’Ā6’’’’’’’’’’’’’’’’’’’’ā6’K’’’’’’’’’’’’’’’’’’’27’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b7’7’’’’’’’’’’’’’’’’’’’¢7’5’’’’’’’’’’’’’’’’’’’ā7’L’’’’’’’’’’’’’’’’’’’28’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚8’8’’’’’’’’’’’’’’’’’’’Ā8’6’’’’’’’’’’’’’’’’’’’9’O’’’’’’’’’’’’’’’’’’’b9’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢9’,’’’’’’’’’’’’’’’’’’’Ņ9’1’’’’’’’’’’’’’’’’’’’:’ ’’’’’’’’’’’’’’’’’’’B:’4’’’’’’’’’’’’’’’’’’’‚:’-’’’’’’’’’’’’’’’’’’’²:’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā:’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’;’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R;’7’’’’’’’’’’’’’’’’’’’’;’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā;’K’’’’’’’’’’’’’’’’’’’<’J’’’’’’’’’’’’’’’’’’’b<’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’<’N’’’’’’’’’’’’’’’’’’’ā<’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"=’J’’’’’’’’’’’’’’’’’’’r=’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢=’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā=’?’’’’’’’’’’’’’’’’’’’2>’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b>’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚>’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢>’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ>’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"?’M’’’’’’’’’’’’’’’’’’’r?’’’’’’’’’’’’’’’’’’’’’?’H’’’’’’’’’’’’’’’’’’’ā?’%’’’’’’’’’’’’’’’’’’’@’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b@’$’’’’’’’’’’’’’’’’’’’’@’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā@’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"A’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bA’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’A’P’’’’’’’’’’’’’’’’’’’ņA’O’’’’’’’’’’’’’’’’’’’RB’ ’’’’’’’’’’’’’’’’’’’‚B’F’’’’’’’’’’’’’’’’’’’ŅB’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C’2’’’’’’’’’’’’’’’’’’’RC’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚C’S’’’’’’’’’’’’’’’’’’’āC’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’D’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BD’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bD’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’D’7’’’’’’’’’’’’’’’’’’’ŅD’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2E’?’’’’’’’’’’’’’’’’’’’‚E’4’’’’’’’’’’’’’’’’’’’ĀE’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’F’K’’’’’’’’’’’’’’’’’’’bF’P’’’’’’’’’’’’’’’’’’’ĀF’D’’’’’’’’’’’’’’’’’’’G’P’’’’’’’’’’’’’’’’’’’rG’Q’’’’’’’’’’’’’’’’’’’ŅG’6’’’’’’’’’’’’’’’’’’’H’K’’’’’’’’’’’’’’’’’’’bH’K’’’’’’’’’’’’’’’’’’’²H’K’’’’’’’’’’’’’’’’’’’I’N’’’’’’’’’’’’’’’’’’’RI’P’’’’’’’’’’’’’’’’’’’²I’P’’’’’’’’’’’’’’’’’’’J’N’’’’’’’’’’’’’’’’’’’bJ’K’’’’’’’’’’’’’’’’’’’²J’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’8’’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’ā’J’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’2’L’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’'’’’’’’’’’’’’’’’’’’’ ’"’’’’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚ ’L’’’’’’’’’’’’’’’’’’’Ņ ’’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’B ’)’’’’’’’’’’’’’’’’’’’r ’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’Ņ ’!’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ store status:’’’’’’’’b ’2’’’’’’’’’’’’’’’’’’’¢ ’-’’’’’’’’’’’’’’’’’’’Ņ ’#’’’’’’’’’’’’’’’’’’’’’ check on .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’%’’’’’’’’’’’’’’’’’’’R ’ ’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’‚ ’ ’’’’’’’’’’’’’’’’’’’’’ IF is error’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’Ņ ’’’’’’’’’’’’’’’’’’’’ņ ’J’’’’’’’’’’’’’’’’’’’B’6’’’’’’’’’’’’’’’’’’’‚’"’’’’’’’’’’’’’’’’’’’²’ ’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’:’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’$’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’b’)’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ normal end:’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’(’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’B’&’’’’’’’’’’’’’’’’’’’r’'’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’9’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ init label;’’’’’’’’’’ init data;’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’A’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’M’’’’’’’’’’’’’’’’’’’Ņ’(’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’#’’’’’’’’’’’’’’’’’’’‚’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’0’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’7’’’’’’’’’’’’’’’’’’’²’5’’’’’’’’’’’’’’’’’’’ņ’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’#’’’’’’’’’’’’’’’’’’’r’%’’’’’’’’’’’’’’’’’’’¢’(’’’’’’’’’’’’’’’’’’’Ņ’"’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’2’$’’’’’’’’’’’’’’’’’’’b’)’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’,’’’’’’’’’’’’’’’’’’’¢’)’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’+’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’0’’’’’’’’’’’’’’’’’’’"’ ’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’+’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’)’’’’’’’’’’’’’’’’’’’r’,’’’’’’’’’’’’’’’’’’’¢’+’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’+’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’b ’+’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ ’’’’’’’’’’’’’’’’’’’’ņ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’2!’’’’’’’’’’’’’’’’’’’’R!’’’’’’’’’’’’’’’’’’’’r!’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’²!’+’’’’’’’’’’’’’’’’’’’ā!’I’’’’’’’’’’’’’’’’’’’2"’’’’’’’’’’’’’’’’’’’’R"’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢"’’’’’’’’’’’’’’’’’’’’²"’+’’’’’’’’’’’’’’’’’’’ā"’’’’’’’’’’’’’’’’’’’’#’L’’’’’’’’’’’’’’’’’’’R#’R’’’’’’’’’’’’’’’’’’’²#’’’’’’’’’’’’’’’’’’’’Ņ#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’$’1’’’’’’’’’’’’’’’’’’’R$’M’’’’’’’’’’’’’’’’’’’¢$’M’’’’’’’’’’’’’’’’’’’ņ$’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’2%’’’’’’’’’’’’’’’’’’’’R%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r%’’’’’’’’’’’’’’’’’’’’’%’%’’’’’’’’’’’’’’’’’’’Ā%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā%’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"&’’’’’’’’’’’’’’’’’’’’B&’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b&’’’’’’’’’’’’’’’’’’’’‚&’’’’’’’’’’’’’’’’’’’’¢&’’’’’’’’’’’’’’’’’’’’Ā&’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā&’M’’’’’’’’’’’’’’’’’’’2'’’’’’’’’’’’’’’’’’’’’R'’’’’’’’’’’’’’’’’’’’’r'’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’²'’%’’’’’’’’’’’’’’’’’’’ā'’’’’’’’’’’’’’’’’’’’’(’%’’’’’’’’’’’’’’’’’’’2(’’’’’’’’’’’’’’’’’’’’R(’"’’’’’’’’’’’’’’’’’’’‚(’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’²(’’’’’’’’’’’’’’’’’’’’Ā(’L’’’’’’’’’’’’’’’’’’’)’L’’’’’’’’’’’’’’’’’’’b)’’’’’’’’’’’’’’’’’’’’‚)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢)’’’’’’’’’’’’’’’’’’’’Ā)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā)’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"*’’’’’’’’’’’’’’’’’’’’B*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b*’M’’’’’’’’’’’’’’’’’’’²*’+’’’’’’’’’’’’’’’’’’’ā*’’’’’’’’’’’’’’’’’’’’+’,’’’’’’’’’’’’’’’’’’’2+’’’’’’’’’’’’’’’’’’’’R+’.’’’’’’’’’’’’’’’’’’’‚+’’’’’’’’’’’’’’’’’’’’¢+’’’’’’’’’’’’’’’’’’’’Ā+’*’’’’’’’’’’’’’’’’’’’ņ+’’’’’’’’’’’’’’’’’’’’’’ noteline;’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’’",’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B,’’’’’’’’’’’’’’’’’’’’b,’’’’’’’’’’’’’’’’’’’’‚,’’’’’’’’’’’’’’’’’’’’¢,’-’’’’’’’’’’’’’’’’’’’Ņ,’>’’’’’’’’’’’’’’’’’’’-’?’’’’’’’’’’’’’’’’’’’b-’6’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā-’+’’’’’’’’’’’’’’’’’’’ņ-’M’’’’’’’’’’’’’’’’’’’B.’M’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’².’%’’’’’’’’’’’’’’’’’’’ā.’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’"/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b/’’’’’’’’’’’’’’’’’’’’‚/’M’’’’’’’’’’’’’’’’’’’Ņ/’’’’’’’’’’’’’’’’’’’’ā/’’’’’’’’’’’’’’’’’’’’0’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’20’$’’’’’’’’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"K’L’’’’’’’’’’’’’’’’’’’rK’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²K’A’’’’’’’’’’’’’’’’’’’L’6’’’’’’’’’’’’’’’’’’’BL’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rL’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢L’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀL’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’M’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RM’K’’’’’’’’’’’’’’’’’’’¢M’M’’’’’’’’’’’’’’’’’’’ņM’S’’’’’’’’’’’’’’’’’’’RN’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢N’%’’’’’’’’’’’’’’’’’’’ŅN’(’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’"O’$’’’’’’’’’’’’’’’’’’’RO’’’’’’’’’’’’’’’’’’’’rO’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²O’B’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"P’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BP’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚P’6’’’’’’’’’’’’’’’’’’’ĀP’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’-’’’’’’’’’’’’’’’’’’’2Q’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bQ’G’’’’’’’’’’’’’’’’’’’²Q’J’’’’’’’’’’’’’’’’’’’R’F’’’’’’’’’’’’’’’’’’’RR’H’’’’’’’’’’’’’’’’’’’¢R’L’’’’’’’’’’’’’’’’’’’ņR’Q’’’’’’’’’’’’’’’’’’’RS’N’’’’’’’’’’’’’’’’’’’¢S’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅS’%’’’’’’’’’’’’’’’’’’’T’-’’’’’’’’’’’’’’’’’’’2T’’’’’’’’’’’’’’’’’’’’RT’,’’’’’’’’’’’’’’’’’’’‚T’’’’’’’’’’’’’’’’’’’’¢T’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āT’<’’’’’’’’’’’’’’’’’’’"U’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BU’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bU’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²U’&’’’’’’’’’’’’’’’’’’’āU’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"V’-’’’’’’’’’’’’’’’’’’’RV’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚V’M’’’’’’’’’’’’’’’’’’’ŅV’>’’’’’’’’’’’’’’’’’’’W’K’’’’’’’’’’’’’’’’’’’bW’*’’’’’’’’’’’’’’’’’’’’W’K’’’’’’’’’’’’’’’’’’’āW’U’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BX’)’’’’’’’’’’’’’’’’’’’rX’*’’’’’’’’’’’’’’’’’’’¢X’&’’’’’’’’’’’’’’’’’’’ŅX’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Y’<’’’’’’’’’’’’’’’’’’’RY’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rY’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Y’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅY’&’’’’’’’’’’’’’’’’’’’Z’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Z’G’’’’’’’’’’’’’’’’’’’‚Z’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Z’L’’’’’’’’’’’’’’’’’’’ņZ’7’’’’’’’’’’’’’’’’’’’2[’R’’’’’’’’’’’’’’’’’’’’[’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ[’L’’’’’’’’’’’’’’’’’’’"\’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R\’)’’’’’’’’’’’’’’’’’’’‚\’%’’’’’’’’’’’’’’’’’’’²\’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā\’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’]’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2]’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b]’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚]’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²]’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ]’*’’’’’’’’’’’’’’’’’’’"^’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R^’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢^’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ^’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ^’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2_’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚_’H’’’’’’’’’’’’’’’’’’’Ņ_’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ_’M’’’’’’’’’’’’’’’’’’’B`’1’’’’’’’’’’’’’’’’’’’‚`’M’’’’’’’’’’’’’’’’’’’Ņ`’;’’’’’’’’’’’’’’’’’’’a’E’’’’’’’’’’’’’’’’’’’ba’B’’’’’’’’’’’’’’’’’’’²a’N’’’’’’’’’’’’’’’’’’’b’N’’’’’’’’’’’’’’’’’’’Rb’H’’’’’’’’’’’’’’’’’’’¢b’O’’’’’’’’’’’’’’’’’’’c’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bc’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rc’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’c’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āc’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āc’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2d’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bd’Q’’’’’’’’’’’’’’’’’’’Ād’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’e’&’’’’’’’’’’’’’’’’’’’2e’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’be’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚e’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢e’I’’’’’’’’’’’’’’’’’’’ņe’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’f’0’’’’’’’’’’’’’’’’’’’Rf’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’f’-’’’’’’’’’’’’’’’’’’’Āf’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’g’L’’’’’’’’’’’’’’’’’’’Rg’E’’’’’’’’’’’’’’’’’’’¢g’K’’’’’’’’’’’’’’’’’’’ņg’O’’’’’’’’’’’’’’’’’’’Rh’I’’’’’’’’’’’’’’’’’’’¢h’L’’’’’’’’’’’’’’’’’’’ņh’G’’’’’’’’’’’’’’’’’’’Bi’6’’’’’’’’’’’’’’’’’’’‚i’M’’’’’’’’’’’’’’’’’’’Ņi’S’’’’’’’’’’’’’’’’’’’2j’M’’’’’’’’’’’’’’’’’’’‚j’L’’’’’’’’’’’’’’’’’’’Ņj’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņj’B’’’’’’’’’’’’’’’’’’’Bk’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rk’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņk’5’’’’’’’’’’’’’’’’’’’l’2’’’’’’’’’’’’’’’’’’’Rl’’’’’’’’’’’’’’’’’’’’rl’(’’’’’’’’’’’’’’’’’’’¢l’’’’’’’’’’’’’’’’’’’’Āl’’’’’’’’’’’’’’’’’’’’āl’(’’’’’’’’’’’’’’’’’’’m’’’’’’’’’’’’’’’’’’’’2m’’’’’’’’’’’’’’’’’’’’Rm’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚m’M’’’’’’’’’’’’’’’’’’’Ņm’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’n’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bn’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bn’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²n’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ān’N’’’’’’’’’’’’’’’’’’’2o’O’’’’’’’’’’’’’’’’’’’’o’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņo’R’’’’’’’’’’’’’’’’’’’2p’K’’’’’’’’’’’’’’’’’’’‚p’J’’’’’’’’’’’’’’’’’’’Ņp’Y’’’’’’’’’’’’’’’’’’’2q’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bq’4’’’’’’’’’’’’’’’’’’’¢q’!’’’’’’’’’’’’’’’’’’’Ņq’3’’’’’’’’’’’’’’’’’’’r’2’’’’’’’’’’’’’’’’’’’Rr’!’’’’’’’’’’’’’’’’’’’‚r’2’’’’’’’’’’’’’’’’’’’Ār’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"s’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2s’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bs’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚s’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ās’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņs’T’’’’’’’’’’’’’’’’’’’Rt’M’’’’’’’’’’’’’’’’’’’¢t’’’’’’’’’’’’’’’’’’’’Āt’F’’’’’’’’’’’’’’’’’’’u’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ru’’’’’’’’’’’’’’’’’’’’ru’%’’’’’’’’’’’’’’’’’’’¢u’!’’’’’’’’’’’’’’’’’’’Ņu’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’v’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2v’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rv’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚v’6’’’’’’’’’’’’’’’’’’’Āv’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"w’:’’’’’’’’’’’’’’’’’’’bw’/’’’’’’’’’’’’’’’’’’’¢w’F’’’’’’’’’’’’’’’’’’’ņw’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2x’G’’’’’’’’’’’’’’’’’’’‚x’O’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b0’’’’’’’’’’’’’’’’’’’’‚0’M’’’’’’’’’’’’’’’’’’’Ņ0’’’’’’’’’’’’’’’’’’’’ņ0’’’’’’’’’’’’’’’’’’’’1’C’’’’’’’’’’’’’’’’’’’b1’’’’’’’’’’’’’’’’’’’’‚1’S’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā1’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’"2’’’’’’’’’’’’’’’’’’’’B2’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r2’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’²2’’’’’’’’’’’’’’’’’’’’ā2’+’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’23’’’’’’’’’’’’’’’’’’’’R3’’’’’’’’’’’’’’’’’’’’r3’Y’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ3’’’’’’’’’’’’’’’’’’’’ņ3’@’’’’’’’’’’’’’’’’’’’B4’’’’’’’’’’’’’’’’’’’’b4’2’’’’’’’’’’’’’’’’’’’¢4’;’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ā4’’’’’’’’’’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’’’"5’2’’’’’’’’’’’’’’’’’’’b5’1’’’’’’’’’’’’’’’’’’’¢5’’’’’’’’’’’’’’’’’’’’Ā5’ ’’’’’’’’’’’’’’’’’’’ņ5’!’’’’’’’’’’’’’’’’’’’"6’!’’’’’’’’’’’’’’’’’’’R6’B’’’’’’’’’’’’’’’’’’’¢6’!’’’’’’’’’’’’’’’’’’’Ņ6’!’’’’’’’’’’’’’’’’’’’7’B’’’’’’’’’’’’’’’’’’’R7’’’’’’’’’’’’’’’’’’’’r7’’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’²7’$’’’’’’’’’’’’’’’’’’’ā7’’’’’’’’’’’’’’’’’’’’8’1’’’’’’’’’’’’’’’’’’’R8’’’’’’’’’’’’’’’’’’’’‚8’!’’’’’’’’’’’’’’’’’’’²8’!’’’’’’’’’’’’’’’’’’’ā8’’’’’’’’’’’’’’’’’’’’9’!’’’’’’’’’’’’’’’’’’’B9’!’’’’’’’’’’’’’’’’’’’r9’ ’’’’’’’’’’’’’’’’’’’¢9’’’’’’’’’’’’’’’’’’’’Ā9’!’’’’’’’’’’’’’’’’’’’ņ9’ ’’’’’’’’’’’’’’’’’’’":’’’’’’’’’’’’’’’’’’’’R:’ ’’’’’’’’’’’’’’’’’’’‚:’B’’’’’’’’’’’’’’’’’’’Ņ:’!’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’’2;’ ’’’’’’’’’’’’’’’’’’’b;’0’’’’’’’’’’’’’’’’’’’¢;’’’’’’’’’’’’’’’’’’’’Ā;’!’’’’’’’’’’’’’’’’’’’ņ;’"’’’’’’’’’’’’’’’’’’’"<’!’’’’’’’’’’’’’’’’’’’R<’!’’’’’’’’’’’’’’’’’’’‚<’%’’’’’’’’’’’’’’’’’’’²<’ ’’’’’’’’’’’’’’’’’’’ā<’’’’’’’’’’’’’’’’’’’’=’$’’’’’’’’’’’’’’’’’’’B=’!’’’’’’’’’’’’’’’’’’’r=’"’’’’’’’’’’’’’’’’’’’¢=’!’’’’’’’’’’’’’’’’’’’Ņ=’1’’’’’’’’’’’’’’’’’’’>’ ’’’’’’’’’’’’’’’’’’’B>’2’’’’’’’’’’’’’’’’’’’‚>’ ’’’’’’’’’’’’’’’’’’’²>’1’’’’’’’’’’’’’’’’’’’ņ>’1’’’’’’’’’’’’’’’’’’’2?’1’’’’’’’’’’’’’’’’’’’r?’!’’’’’’’’’’’’’’’’’’’¢?’ ’’’’’’’’’’’’’’’’’’’Ņ?’1’’’’’’’’’’’’’’’’’’’@’!’’’’’’’’’’’’’’’’’’’B@’1’’’’’’’’’’’’’’’’’’’‚@’!’’’’’’’’’’’’’’’’’’’²@’!’’’’’’’’’’’’’’’’’’’ā@’!’’’’’’’’’’’’’’’’’’’A’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’RA’’’’’’’’’’’’’’’’’’’’rA’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢A’’’’’’’’’’’’’’’’’’’’ĀA’M’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’"B’’’’’’’’’’’’’’’’’’’’BB’’’’’’’’’’’’’’’’’’’’bB’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚B’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’²B’’’’’’’’’’’’’’’’’’’’ŅB’B’’’’’’’’’’’’’’’’’’’"C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BC’’’’’’’’’’’’’’’’’’’’bC’’’’’’’’’’’’’’’’’’’’rC’/’’’’’’’’’’’’’’’’’’’²C’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ apply proc:’’’’’’’’’’āC’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’"D’>’’’’’’’’’’’’’’’’’’’bD’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²D’’’’’’’’’’’’’’’’’’’’ŅD’V’’’’’’’’’’’’’’’’’’’2E’’’’’’’’’’’’’’’’’’’’RE’c’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĀE’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņE’2’’’’’’’’’’’’’’’’’’’2F’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ result found:’’’’’’’’bF’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ result data:’’’’’’’’’’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²F’’’’’’’’’’’’’’’’’’’’ĀF’M’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’"G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BG’’’’’’’’’’’’’’’’’’’’bG’M’’’’’’’’’’’’’’’’’’’²G’’’’’’’’’’’’’’’’’’’’ŅG’’’’’’’’’’’’’’’’’’’’ņG’)’’’’’’’’’’’’’’’’’’’"H’&’’’’’’’’’’’’’’’’’’’RH’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’’²H’’’’’’’’’’’’’’’’’’’’ŅH’’’’’’’’’’’’’’’’’’’’I’/’’’’’’’’’’’’’’’’’’’BI’8’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚I’3’’’’’’’’’’’’’’’’’’’ĀI’M’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’’2J’’’’’’’’’’’’’’’’’’’’RJ’’’’’’’’’’’’’’’’’’’’rJ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’’²J’’’’’’’’’’’’’’’’’’’’ĀJ’’’’’’’’’’’’’’’’’’’’āJ’"’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’’2K’@’’’’’’’’’’’’’’’’’’’‚K’’’’’’’’’’’’’’’’’’’’¢K’V’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’"L’’’’’’’’’’’’’’’’’’’’BL’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’rL’’’’’’’’’’’’’’’’’’’’’L’)’’’’’’’’’’’’’’’’’’’ĀL’H’’’’’’’’’’’’’’’’’’’M’=’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’RM’’’’’’’’’’’’’’’’’’’’rM’$’’’’’’’’’’’’’’’’’’’¢M’’’’’’’’’’’’’’’’’’’’ĀM’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ņM’'’’’’’’’’’’’’’’’’’’’"N’’’’’’’’’’’’’’’’’’’’BN’’’’’’’’’’’’’’’’’’’’bN’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²N’’’’’’’’’’’’’’’’’’’’ŅN’"’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’O’/’’’’’’’’’’’’’’’’’’’’’ THEN REP’’’’’’’’’RO’’’’’’’’’’’’’’’’’’’’rO’’’’’’’’’’’’’’’’’’’’’O’)’’’’’’’’’’’’’’’’’’’ĀO’@’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2P’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’RP’’’’’’’’’’’’’’’’’’’’rP’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’’²P’F’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’"Q’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’BQ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’bQ’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ treat param:’’’’’’’’’¢Q’’’’’’’’’’’’’’’’’’’’ĀQ’!’’’’’’’’’’’’’’’’’’’ņQ’%’’’’’’’’’’’’’’’’’’’"R’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’RR’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’rR’’’’’’’’’’’’’’’’’’’’¢R’’’’’’’’’’’’’’’’’’’’ĀR’9’’’’’’’’’’’’’’’’’’’S’.’’’’’’’’’’’’’’’’’’’2S’9’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ FALSE.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’rS’’’’’’’’’’’’’’’’’’’’’S’’’’’’’’’’’’’’’’’’’’²S’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ŅS’^’’’’’’’’’’’’’’’’’’’2T’G’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚T’’’’’’’’’’’’’’’’’’’’¢T’0’’’’’’’’’’’’’’’’’’’āT’’’’’’’’’’’’’’’’’’’’U’I’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’RU’’’’’’’’’’’’’’’’’’’’rU’’’’’’’’’’’’’’’’’’’’’U’’’’’’’’’’’’’’’’’’’’²U’’’’’’’’’’’’’’’’’’’’ŅU’’’’’’’’’’’’’’’’’’’’ņU’(’’’’’’’’’’’’’’’’’’’"V’M’’’’’’’’’’’’’’’’’’’’’ goret;’’’’’’’’’’’’’rV’’’’’’’’’’’’’’’’’’’’’V’’’’’’’’’’’’’’’’’’’’²V’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŅV’’’’’’’’’’’’’’’’’’’’ņV’’’’’’’’’’’’’’’’’’’’W’’’’’’’’’’’’’’’’’’’’2W’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’RW’’’’’’’’’’’’’’’’’’’’rW’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢W’’’’’’’’’’’’’’’’’’’’ĀW’L’’’’’’’’’’’’’’’’’’’X’’’’’’’’’’’’’’’’’’’’2X’’’’’’’’’’’’’’’’’’’’BX’’’’’’’’’’’’’’’’’’’’rX’1’’’’’’’’’’’’’’’’’’’²X’’’’’’’’’’’’’’’’’’’’ŅX’!’’’’’’’’’’’’’’’’’’’Y’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2Y’:’’’’’’’’’’’’’’’’’’’rY’I’’’’’’’’’’’’’’’’’’’ĀY’Y’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"Z’’’’’’’’’’’’’’’’’’’’BZ’#’’’’’’’’’’’’’’’’’’’rZ’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ data type:’’’’’’’’’’’¢Z’’’’’’’’’’’’’’’’’’’’ĀZ’’’’’’’’’’’’’’’’’’’’āZ’’’’’’’’’’’’’’’’’’’’[’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2[’’’’’’’’’’’’’’’’’’’’R[’O’’’’’’’’’’’’’’’’’’’²[’’’’’’’’’’’’’’’’’’’’Ā[’’’’’’’’’’’’’’’’’’’’ā[’’’’’’’’’’’’’’’’’’’’\’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"\’’’’’’’’’’’’’’’’’’’’B\’’’’’’’’’’’’’’’’’’’’b\’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’\’’’’’’’’’’’’’’’’’’’’¢\’’’’’’’’’’’’’’’’’’’’Ā\’’’’’’’’’’’’’’’’’’’’ā\’/’’’’’’’’’’’’’’’’’’’"]’’’’’’’’’’’’’’’’’’’’B]’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’b]’’’’’’’’’’’’’’’’’’’’’’’’’’’’āx’O’’’’’’’’’’’’’’’’’’’By’P’’’’’’’’’’’’’’’’’’’¢y’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’z’M’’’’’’’’’’’’’’’’’’’Rz’S’’’’’’’’’’’’’’’’’’’²z’S’’’’’’’’’’’’’’’’’’’{’N’’’’’’’’’’’’’’’’’’’b{’P’’’’’’’’’’’’’’’’’’’Ā{’’’’’’’’’’’’’’’’’’’’ā{’O’’’’’’’’’’’’’’’’’’’B|’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢|’M’’’’’’’’’’’’’’’’’’’ņ|’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"}’Q’’’’’’’’’’’’’’’’’’’‚}’B’’’’’’’’’’’’’’’’’’’Ņ}’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"~’H’’’’’’’’’’’’’’’’’’’r~’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā~’’’’’’’’’’’’’’’’’’’’ā~’B’’’’’’’’’’’’’’’’’’’2’9’’’’’’’’’’’’’’’’’’’r’H’’’’’’’’’’’’’’’’’’’Ā’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’€’(’’’’’’’’’’’’’’’’’’’B€’M’’’’’’’’’’’’’’’’’’’’€’J’’’’’’’’’’’’’’’’’’’‒,’’’’’’’’’’’’’’’’’’’’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’(’’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’’ҁ’/’’’’’’’’’’’’’’’’’’’‚’C’’’’’’’’’’’’’’’’’’’b‚’K’’’’’’’’’’’’’’’’’’’²‚’’’’’’’’’’’’’’’’’’’’Ņ‚’P’’’’’’’’’’’’’’’’’’’2ƒ’(’’’’’’’’’’’’’’’’’’’bƒ’Z’’’’’’’’’’’’’’’’’’’ƒ’.’’’’’’’’’’’’’’’’’’’ņƒ’Y’’’’’’’’’’’’’’’’’’’R„’T’’’’’’’’’’’’’’’’’’’²„’*’’’’’’’’’’’’’’’’’’’ā„’R’’’’’’’’’’’’’’’’’’’B…’*’’’’’’’’’’’’’’’’’’’r…’/’’’’’’’’’’’’’’’’’’’²…’Y’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B†’Q’’’’’’’’’’’’’’’’’’’¢†’#’’’’’’’’’’’’’’’’’’’҆’R’’’’’’’’’’’’’’’’’’’2‡’W’’’’’’’’’’’’’’’’’’’’‡’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’҇’O’’’’’’’’’’’’’’’’’’’2ˆ’=’’’’’’’’’’’’’’’’’’’rˆ’G’’’’’’’’’’’’’’’’’’’ˆ’P’’’’’’’’’’’’’’’’’’’"‰’+’’’’’’’’’’’’’’’’’’’R‰’O’’’’’’’’’’’’’’’’’’’²‰’L’’’’’’’’’’’’’’’’’’’Š’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RŠ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Š’>’’’’’’’’’’’’’’’’’’’Ҋ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"‹’>’’’’’’’’’’’’’’’’’’’b‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢‹’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ‹’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Œ’N’’’’’’’’’’’’’’’’’’’rŒ’’’’’’’’’’’’’’’’’’’’’Œ’J’’’’’’’’’’’’’’’’’’’⌒E’’’’’’’’’’’’’’’’’’’2’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’Q’’’’’’’’’’’’’’’’’’’ā’U’’’’’’’’’’’’’’’’’’’BŽ’Q’’’’’’’’’’’’’’’’’’’¢Ž’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņŽ’"’’’’’’’’’’’’’’’’’’’"’"’’’’’’’’’’’’’’’’’’’R’)’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’␒N’’’’’’’’’’’’’’’’’’’2‘’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚‘’L’’’’’’’’’’’’’’’’’’’Ņ‘’G’’’’’’’’’’’’’’’’’’’"’’K’’’’’’’’’’’’’’’’’’’r’’J’’’’’’’’’’’’’’’’’’’Ā’’R’’’’’’’’’’’’’’’’’’’"“’R’’’’’’’’’’’’’’’’’’’‚“’I’’’’’’’’’’’’’’’’’’’Ņ“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ“’H’’’’’’’’’’’’’’’’’’’B”’0’’’’’’’’’’’’’’’’’’’‚”’I’’’’’’’’’’’’’’’’’’’Ņ”’L’’’’’’’’’’’’’’’’’’’"•’L’’’’’’’’’’’’’’’’’’’r•’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā•’H’’’’’’’’’’’’’’’’’’’–’I’’’’’’’’’’’’’’’’’’’b–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚–’N’’’’’’’’’’’’’’’’’’’Ņ–’G’’’’’’’’’’’’’’’’’’’"—’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R—’3’’’’’’’’’’’’’’’’’’’’—’/’’’’’’’’’’’’’’’’’’’Ņ—’0’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’2˜’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚˜’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ҙ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"™’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R™’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’™’I’’’’’’’’’’’’’’’’’’’ā™’Q’’’’’’’’’’’’’’’’’’’Bš’(’’’’’’’’’’’’’’’’’’’rš’M’’’’’’’’’’’’’’’’’’’š’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"›’K’’’’’’’’’’’’’’’’’’’r›’P’’’’’’’’’’’’’’’’’’’Ņ›’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’œ’,’’’’’’’’’’’’’’’’’’’Bœ’/’’’’’’’’’’’’’’’’’’’‚œ’2’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’✒’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’K’’’’’’’’’’’’’’’’’’’"ž’&’’’’’’’’’’’’’’’’’’’Rž’K’’’’’’’’’’’’’’’’’’’¢ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āž’N’’’’’’’’’’’’’’’’’’’Ÿ’H’’’’’’’’’’’’’’’’’’’bŸ’@’’’’’’’’’’’’’’’’’’’²Ÿ’H’’’’’’’’’’’’’’’’’’’ ’K’’’’’’’’’’’’’’’’’’’R ’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ ’ ’’’’’’’’’’’’’’’’’’’Ņ ’’’’’’’’’’’’’’’’’’’’ņ ’ ’’’’’’’’’’’’’’’’’’’"”’ ’’’’’’’’’’’’’’’’’’’R”’*’’’’’’’’’’’’’’’’’’’‚”’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²”’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B¢’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b¢’J’’’’’’’’’’’’’’’’’’’²¢’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’⢒J’’’’’’’’’’’’’’’’’’’2£’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚£’F’’’’’’’’’’’’’’’’’’’Ņ£’F’’’’’’’’’’’’’’’’’’’"¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B¤’0’’’’’’’’’’’’’’’’’’’‚¤’’’’’’’’’’’’’’’’’’’’¢¤’’’’’’’’’’’’’’’’’’’’¤’0’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’"„’6’’’’’’’’’’’’’’’’’’’b„’7’’’’’’’’’’’’’’’’’’’¢„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā„’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¦’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b¦’:’’’’’’’’’’’’’’’’’’’¢¦’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ҧ’O’’’’’’’’’’’’’’’’’’’2§’’’’’’’’’’’’’’’’’’’’R§’D’’’’’’’’’’’’’’’’’’’¢§’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ§’)’’’’’’’’’’’’’’’’’’’"Ø’(’’’’’’’’’’’’’’’’’’’RØ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ø’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅØ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņØ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"©’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R©’P’’’’’’’’’’’’’’’’’’’²©’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā©’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’"Ŗ’L’’’’’’’’’’’’’’’’’’’rŖ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀŖ’’’’’’’’’’’’’’’’’’’’āŖ’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"«’’’’’’’’’’’’’’’’’’’’B«’O’’’’’’’’’’’’’’’’’’’¢«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā«’<’’’’’’’’’’’’’’’’’’’¬’I’’’’’’’’’’’’’’’’’’’R¬’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’¬’"’’’’’’’’’’’’’’’’’’’¬’(’’’’’’’’’’’’’’’’’’’ņ¬’’’’’’’’’’’’’’’’’’’’­’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R­’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚­’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢­’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ­’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2®’L’’’’’’’’’’’’’’’’’’’‚®’M’’’’’’’’’’’’’’’’’’’Ņ®’S’’’’’’’’’’’’’’’’’’’2Æ’G’’’’’’’’’’’’’’’’’’’‚Æ’Q’’’’’’’’’’’’’’’’’’’⯒?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2°’'’’’’’’’’’’’’’’’’’’’b°’&’’’’’’’’’’’‚]’=’’’’’’’’’’’’’’’’’’’Ā]’8’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’^’’’’’’’’’’’’’’’’’’’’"^’’’’’’’’’’’’’’’’’’’’B^’’’’’’’’’’’’’’’’’’’’b^’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚^’!’’’’’’’’’’’’’’’’’’’²^’0’’’’’’’’’’’’’’’’’’’ņ^’!’’’’’’’’’’’’’’’’’’’"_’A’’’’’’’’’’’’’’’’’’’r_’D’’’’’’’’’’’’’’’’’’’Ā_’.’’’’’’’’’’’’’’’’’’’ņ_’F’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B`’4’’’’’’’’’’’’’’’’’’’‚`’’’’’’’’’’’’’’’’’’’’¢`’’’’’’’’’’’’’’’’’’’’Ņ`’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’a’"’’’’’’’’’’’’’’’’’’’Ba’#’’’’’’’’’’’’’’’’’’’ra’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢a’’’’’’’’’’’’’’’’’’’’²a’M’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’b’+’’’’’’’’’’’’’’’’’’’Bb’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bb’’’’’’’’’’’’’’’’’’’’‚b’N’’’’’’’’’’’’’’’’’’’Ņb’’’’’’’’’’’’’’’’’’’’āb’#’’’’’’’’’’’’’’’’’’’c’2’’’’’’’’’’’’’’’’’’’Rc’1’’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²c’’’’’’’’’’’’’’’’’’’’Ņc’N’’’’’’’’’’’’’’’’’’’"d’’’’’’’’’’’’’’’’’’’’2d’’’’’’’’’’’’’’’’’’’’Rd’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’rd’’’’’’’’’’’’’’’’’’’’’d’M’’’’’’’’’’’’’’’’’’’ād’’’’’’’’’’’’’’’’’’’’ņd’’’’’’’’’’’’’’’’’’’’e’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2e’0’’’’’’’’’’’’’’’’’’’re’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢e’’’’’’’’’’’’’’’’’’’’Āe’N’’’’’’’’’’’’’’’’’’’f’#’’’’’’’’’’’’’’’’’’’Bf’’’’’’’’’’’’’’’’’’’’bf’’’’’’’’’’’’’’’’’’’’‚f’’’’’’’’’’’’’’’’’’’’’f’’’’’’’’’’’’’’’’’’’’²f’’’’’’’’’’’’’’’’’’’’Ņf’’’’’’’’’’’’’’’’’’’’ņf’!’’’’’’’’’’’’’’’’’’’"g’’’’’’’’’’’’’’’’’’’’Bg’’’’’’’’’’’’’’’’’’’’bg’P’’’’’’’’’’’’’’’’’’’Āg’P’’’’’’’’’’’’’’’’’’’"h’’’’’’’’’’’’’’’’’’’’Bh’A’’’’’’’’’’’’’’’’’’’’h’P’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņh’’’’’’’’’’’’’’’’’’’’i’,’’’’’’’’’’’’’’’’’’’Bi’’’’’’’’’’’’’’’’’’’’bi’3’’’’’’’’’’’’’’’’’’’¢i’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āi’’’’’’’’’’’’’’’’’’’’j’0’’’’’’’’’’’’’’’’’’’Rj’'’’’’’’’’’’’’’’’’’’’‚j’5’’’’’’’’’’’’’’’’’’’Āj’<’’’’’’’’’’’’’’’’’’’k’’’’’’’’’’’’’’’’’’’’"k’6’’’’’’’’’’’’’’’’’’’bk’L’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²k’’’’’’’’’’’’’’’’’’’’Ņk’,’’’’’’’’’’’’’’’’’’’l’’’’’’’’’’’’’’’’’’’’"l’*’’’’’’’’’’’’’’’’’’’Rl’’’’’’’’’’’’’’’’’’’’rl’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Āl’’’’’’’’’’’’’’’’’’’’Ņl’,’’’’’’’’’’’’’’’’’’’m’’’’’’’’’’’’’’’’’’’’"m’"’’’’’’’’’’’’’’’’’’’Rm’’’’’’’’’’’’’’’’’’’’‚m’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢m’O’’’’’’’’’’’’’’’’’’’n’%’’’’’’’’’’’’’’’’’’’2n’6’’’’’’’’’’’’’’’’’’’rn’!’’’’’’’’’’’’’’’’’’’¢n’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņn’O’’’’’’’’’’’’’’’’’’’2o’5’’’’’’’’’’’’’’’’’’’ro’5’’’’’’’’’’’’’’’’’’’²o’7’’’’’’’’’’’’’’’’’’’ņo’6’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2p’P’’’’’’’’’’’’’’’’’’’’p’’’’’’’’’’’’’’’’’’’’²p’<’’’’’’’’’’’’’’’’’’’ņp’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"q’,’’’’’’’’’’’’’’’’’’’Rq’’’’’’’’’’’’’’’’’’’’rq’,’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢q’’’’’’’’’’’’’’’’’’’’Āq’M’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’"r’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Rr’0’’’’’’’’’’’’’’’’’’’’r’>’’’’’’’’’’’’’’’’’’’Ņr’’’’’’’’’’’’’’’’’’’’ņr’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’"s’M’’’’’’’’’’’’’’’’’’’rs’-’’’’’’’’’’’’’’’’’’’¢s’’’’’’’’’’’’’’’’’’’’Ās’’’’’’’’’’’’’’’’’’’’ās’’’’’’’’’’’’’’’’’’’’t’*’’’’’’’’’’’’’’’’’’’2t’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚t’L’’’’’’’’’’’’’’’’’’’Ņt’O’’’’’’’’’’’’’’’’’’’2u’’’’’’’’’’’’’’’’’’’’Bu’’’’’’’’’’’’’’’’’’’’bu’’’’’’’’’’’’’’’’’’’’‚u’’’’’’’’’’’’’’’’’’’’¢u’’’’’’’’’’’’’’’’’’’’Āu’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āu’’’’’’’’’’’’’’’’’’’’ņu’,’’’’’’’’’’’’’’’’’’’"v’’’’’’’’’’’’’’’’’’’’Bv’3’’’’’’’’’’’’’’’’’’’‚v’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Āv’’’’’’’’’’’’’’’’’’’’āv’0’’’’’’’’’’’’’’’’’’’"w’'’’’’’’’’’’’’’’’’’’’Rw’5’’’’’’’’’’’’’’’’’’’’w’’’’’’’’’’’’’’’’’’’’²w’6’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ņw’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2x’’’’’’’’’’’’’’’’’’’’Rx’"’’’’’’’’’’’’’’’’’’’‚x’0’’’’’’’’’’’’’’’’’’’Āx’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņx’’’’’’’’’’’’’’’’’’’’y’M’’’’’’’’’’’’’’’’’’’by’'’’’’’’’’’’’’’’’’’’’’y’’’’’’’’’’’’’’’’’’’’²y’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āy’’’’’’’’’’’’’’’’’’’’z’N’’’’’’’’’’’’’’’’’’’Rz’’’’’’’’’’’’’’’’’’’’bz’"’’’’’’’’’’’’’’’’’’’’z’’’’’’’’’’’’’’’’’’’’²z’$’’’’’’’’’’’’’’’’’’’āz’0’’’’’’’’’’’’’’’’’’’"{’3’’’’’’’’’’’’’’’’’’’b{’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚{’’’’’’’’’’’’’’’’’’’’’{’N’’’’’’’’’’’’’’’’’’’ā{’’’’’’’’’’’’’’’’’’’’ņ{’’’’’’’’’’’’’’’’’’’’|’"’’’’’’’’’’’’’’’’’’’B|’’’’’’’’’’’’’’’’’’’’b|’’’’’’’’’’’’’’’’’’’’‚|’(’’’’’’’’’’’’’’’’’’’²|’’’’’’’’’’’’’’’’’’’’Ņ|’’’’’’’’’’’’’’’’’’’’}’’’’’’’’’’’’’’’’’’’’"}’’’’’’’’’’’’’’’’’’’’B}’’’’’’’’’’’’’’’’’’’’b}’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’}’0’’’’’’’’’’’’’’’’’’’Ņ}’+’’’’’’’’’’’’’’’’’’’~’3’’’’’’’’’’’’’’’’’’’B~’’’’’’’’’’’’’’’’’’’’b~’1’’’’’’’’’’’’’’’’’’’¢~’/’’’’’’’’’’’’’’’’’’’ā~’A’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’b’2’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’N’’’’’’’’’’’’’’’’’’’2€’’’’’’’’’’’’’’’’’’’’B€’!’’’’’’’’’’’’’’’’’’’r€’’’’’’’’’’’’’’’’’’’’’€’!’’’’’’’’’’’’’’’’’’’Ā€’0’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’M’’’’’’’’’’’’’’’’’’’ҁ’’’’’’’’’’’’’’’’’’’’⁒’’’’’’’’’’’’’’’’’’’‚’"’’’’’’’’’’’’’’’’’’’2‚’’’’’’’’’’’’’’’’’’’’R‚’.’’’’’’’’’’’’’’’’’’’‚‚’%’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²‚’’’’’’’’’’’’’’’’’’’’Ņ‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ‚’’’’’’’’’’’’’’’’’’’’ƒ’M’’’’’’’’’’’’’’’’’’’bƒ’’’’’’’’’’’’’’’’’’’’rƒ’’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’²ƒ’)’’’’’’’’’’’’’’’’’’’⃒8’’’’’’’’’’’’’’’’’’’"„’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B„’’’’’’’’’’’’’’’’’’’’b„’I’’’’’’’’’’’’’’’’’’’²„’’’’’’’’’’’’’’’’’’’’Ā„’’’’’’’’’’’’’’’’’’’’ā„’1’’’’’’’’’’’’’’’’’’’"…’-’’’’’’’’’’’’’’’’’’’R…’:’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²…’’’’’’’’’’’’’’’’’’’’Ņ…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2†’’’’’’’’’’’’’’’’’’’’B†’M’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’²†’5’’’’’’’’’’’’’’’’’’’ņ†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’2‡’N’’’’’’’’’’’’’’’’’’’‚‡’’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’²‡’.’’’’’’’’’’’’’’’’’’’⇒1’’’’’’’’’’’’’’’’’’’"ˆ’0’’’’’’’’’’’’’’’’’’’bˆ’’’’’’’’’’’’’’’’’’’’‚ˆ’#’’’’’’’’’’’’’’’’’’’²ˆ’2’’’’’’’’’’’’’’’’’’’ņˆ’.’’’’’’’’’’’’’’’’’’’"‰’1’’’’’’’’’’’’’’’’’’’b‰’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚‰’’’’’’’’’’’’’’’’’’’’¢‰’M’’’’’’’’’’’’’’’’’’’ņ‰’’’’’’’’’’’’’’’’’’’’’’ goret .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’"Š’I’’’’’’’’’’’’’’’’’’’rŠ’’’’’’’’’’’’’’’’’’’’‚Š’"’’’’’’’’’’’’’’’’’’’²Š’’’’’’’’’’’’’’’’’’’’Ҋ’$’’’’’’’’’’’’’’’’’’’‹’0’’’’’’’’’’’’’’’’’’’B‹’3’’’’’’’’’’’’’’’’’’’‚‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢‹’’’’’’’’’’’’’’’’’’’’Ā‹’M’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’"Œ’>’’’’’’’’’’’’’’’’’’’bŒ’#’’’’’’’’’’’’’’’’’’’’Œ’(’’’’’’’’’’’’’’’’’’’Œ’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’+’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’²°’$’’’’’’’’’’’’’’’’’’’ā°’’’’’’’’’’’’’’’’’’’’±’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B±’B’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ұ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B²’’’’’’’’’’’’’’’’’’’’b²’’’’’’’’’’’’’’’’’’’’‚²’’’’’’’’’’’’’’’’’’’’¢²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ҳ’’’’’’’’’’’’’’’’’’’’ņ²’8’’’’’’’’’’’’’’’’’’’2³’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢³’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’I’’’’’’’’’’’’’’’’’’’R“’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢“’!’’’’’’’’’’’’’’’’’’’Ņ“’$’’’’’’’’’’’’’’’’’’’µ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2µ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bµ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚µ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ҵ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¶’P’’’’’’’’’’’’’’’’’’’b¶’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²¶’%’’’’’’’’’’’’’’’’’’’ā¶’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"·’"’’’’’’’’’’’’’’’’’’’R·’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ·’P’’’’’’’’’’’’’’’’’’’2ø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rø’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²ø’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āø’N’’’’’’’’’’’’’’’’’’’2¹’(’’’’’’’’’’’’’’’’’’’b¹’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢¹’$’’’’’’’’’’’’’’’’’’’ҹ’"’’’’’’’’’’’’’’’’’’’ŗ’&’’’’’’’’’’’’’’’’’’’2ŗ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņŗ’G’’’’’’’’’’’’’’’’’’’"»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b»’G’’’’’’’’’’’’’’’’’’’²»’M’’’’’’’’’’’’’’’’’’’¼’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B¼’F’’’’’’’’’’’’’’’’’’’’¼’L’’’’’’’’’’’’’’’’’’’ā¼’"’’’’’’’’’’’’’’’’’’’½’K’’’’’’’’’’’’’’’’’’’b½’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’½’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ҽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ½’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R¾’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚¾’M’’’’’’’’’’’’’’’’’’’Ҿ’"’’’’’’’’’’’’’’’’’’’æ’O’’’’’’’’’’’’’’’’’’’bæ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢æ’*’’’’’’’’’’’’’’’’’’’Ņæ’,’’’’’’’’’’’’’’’’’’’Ą’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ą’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rĄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ą’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āĄ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Į’%’’’’’’’’’’’’’’’’’’’RĮ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Į’=’’’’’’’’’’’’’’’’’’’āĮ’3’’’’’’’’’’’’’’’’’’’"Ā’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rĀ’8’’’’’’’’’’’’’’’’’’’²Ā’B’’’’’’’’’’’’’’’’’’’Ć’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RĆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rĆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ć’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņĆ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Ä’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bÄ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ä’ ’’’’’’’’’’’’’’’’’’’āÄ’ ’’’’’’’’’’’’’’’’’’’Å’’’’’’’’’’’’’’’’’’’’BÅ’ ’’’’’’’’’’’’’’’’’’’rÅ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Å’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀÅ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņÅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ę’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RĘ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rĘ’I’’’’’’’’’’’’’’’’’’’ĀĘ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ē’!’’’’’’’’’’’’’’’’’’’BĒ’$’’’’’’’’’’’’’’’’’’’rĒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ē’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀĒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āĒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Č’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bČ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Č’M’’’’’’’’’’’’’’’’’’’ŅČ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’É’L’’’’’’’’’’’’’’’’’’’RÉ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚É’+’’’’’’’’’’’’’’’’’’’²É’’’’’’’’’’’’’’’’’’’’ŅÉ’’’’’’’’’’’’’’’’’’’’ņÉ’4’’’’’’’’’’’’’’’’’’’2Ź’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rŹ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ź’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņŹ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ė’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bĖ’8’’’’’’’’’’’’’’’’’’’¢Ė’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āĖ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ģ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bĢ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ģ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀĢ’’’’’’’’’’’’’’’’’’’’āĢ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ķ’L’’’’’’’’’’’’’’’’’’’RĶ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ķ’K’’’’’’’’’’’’’’’’’’’āĶ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ī’K’’’’’’’’’’’’’’’’’’’bĪ’E’’’’’’’’’’’’’’’’’’’²Ī’K’’’’’’’’’’’’’’’’’’’Ļ’N’’’’’’’’’’’’’’’’’’’RĻ’K’’’’’’’’’’’’’’’’’’’¢Ļ’Q’’’’’’’’’’’’’’’’’’’Š’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BŠ’L’’’’’’’’’’’’’’’’’’’’Š’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀŠ’’’’’’’’’’’’’’’’’’’’āŠ’4’’’’’’’’’’’’’’’’’’’"Ń’(’’’’’’’’’’’’’’’’’’’RŃ’’’’’’’’’’’’’’’’’’’’rŃ’’’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’²Ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅŃ’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BŅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ņ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅŅ’"’’’’’’’’’’’’’’’’’’’Ó’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BÓ’F’’’’’’’’’’’Ž’6’’’’’’’’’’’’’’’’’’’RŽ’7’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’²Ž’’’’’’’’’’’’’’’’’’’’ŅŽ’,’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’8’’’’’’’’’’’’’’’’’’’¢’J’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2‘’’’’’’’’’’’’’’’’’’’’R‘’M’’’’’’’’’’’’’’’’’’’¢‘’’’’’’’’’’’’’’’’’’’’²‘’#’’’’’’’’’’’’’’’’’’’ā‘’2’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’b’’N’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’“’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B“’’’’’’’’’’’’’’’’’’’’b“’’’’’’’’’’’’’’’’’’’’‚“’>’’’’’’’’’’’’’’’’’’’Ā“’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ“’’’’’’’’’’’’’’’’’’’’”’$’’’’’’’’’’’’’’’’’’’B”’+’’’’’’’’’’’’’’’’’’’r”’’’’’’’’’’’’’’’’’’’’’”’8’’’’’’’’’’’’’’’’’’’Ņ”’$’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"•’+’’’’’’’’’’’’’’’’’’’R•’M’’’’’’’’’’’’’’’’’’’¢•’M’’’’’’’’’’’’’’’’’’’ņ•’’’’’’’’’’’’’’’’’’’’"–’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b–’’’’’’’’’’’’’’’’’’’’‚–’’’’’’’’’’’’’’’’’’’’¢–’’’’’’’’’’’’’’’’’’’’Ā–’+’’’’’’’’’’’’’’’’’’’ņ–’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’2—’C’’’’’’’’’’’’’’’’’’’‚—’(’’’’’’’’’’’’’’’’’’’²—’-’’’’’’’’’’’’’’’’’’’ā—’7’’’’’’’’’’’’’’’’’’’"˜’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’B˜’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b˜’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚˜’’’’’’’’’’’’’’’’’’’’¢˜’H’’’’’’’’’’’’’’’’’’’ņ˜’=’’’’’’’’’’’’’’’’’’’2™’!’’’’’’’’’’’’’’’’’’’b™’N’’’’’’’’’’’’’’’’’’’²™’.’’’’’’’’’’’’’’’’’’’ā™’+’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’2š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Rš’’’’’’’’’’’’’’’’’’’’bš’’’’’’’’’’’’’’’’’’’’‚š’’’’’’’’’’’’’’’’’’’’¢š’-’’’’’’’’’’’’’’’’’’’Қ’’’’’’’’’’’’’’’’’’’’ņš’.’’’’’’’’’’’’’’’’’’’"›’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B›’’’’’’’’’’’’’’’’’’’’b›’’’’’’’’’’’’’’’’’’’’‚›’’’’’’’’’’’’’’’’’’’’¢›’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ›’*’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’"œ’’’’’’’’’’’’’’’’’’’’Bœ’i’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get loop var:’’’’’’’’²œ’’’’’’’’’’’’’’’’’’’’Ҝ’P’’’’’’’’’’’’’’’’’’’2’J’’’’’’’’’’’’’’’’’’’‚’E’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get step val:’’’’’’’’Ņ’.’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’"ž’1’’’’’’’’’’’’’’’’’’’bž’'’’’’’’’’’’’’’’’’’’’’ž’!’’’’’’’’’’’’’’’’’’’Āž’%’’’’’’’’’’’’’’’’’’’ņž’"’’’’’’’’’’’’’’’’’’’"Ÿ’&’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’RŸ’’’’’’’’’’’’’’’’’’’’bŸ’%’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’²Ÿ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ҟ’’’’’’’’’’’’’’’’’’’’⟒’’’’’’’’’’’’’’’’’’’ ’?’’’’’’’’’’’’’’’’’’’R ’5’’’’’’’’’’’’’’’’’’’’ ’0’’’’’’’’’’’’’’’’’’’Ņ ’’’’’’’’’’’’’’’’’’’’ņ ’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’"”’’’’’’’’’’’’’’’’’’’’B”’?’’’’’’’’’’’’’’’’’’’’”’4’’’’’’’’’’’’’’’’’’’Ņ”’0’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’2¢’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’b¢’,’’’’’’’’’’’’’’’’’’’’¢’:’’’’’’’’’’’’’’’’’’’Ņ¢’4’’’’’’’’’’’’’’’’’’’£’0’’’’’’’’’’’’’’’’’’’R£’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r£’’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’²£’A’’’’’’’’’’’’’’’’’’’¤’6’’’’’’’’’’’’’’’’’’’B¤’0’’’’’’’’’’’’’’’’’’’‚¤’’’’’’’’’’’’’’’’’’’’²¤’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’⤒’’’’’’’’’’’’’’’’’’’„’A’’’’’’’’’’’’’’’’’’’R„’5’’’’’’’’’’’’’’’’’’’’„’0’’’’’’’’’’’’’’’’’’’Ņ„’’’’’’’’’’’’’’’’’’’’¦’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’2¦’,’’’’’’’’’’’’’’’’’’’b¦’;’’’’’’’’’’’’’’’’’’’¢¦’5’’’’’’’’’’’’’’’’’’’⦒0’’’’’’’’’’’’’’’’’’’"§’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R§’’’’’’’’’’’’’’’’’’’’r§’D’’’’’’’’’’’’’’’’’’’§’7’’’’’’’’’’’’’’’’’’’Ø’4’’’’’’’’’’’’’’’’’’’BØ’<’’’’’’’’’’’’’’’’’’’‚Ø’M’’’’’’’’’’’’’’’’’’’ŅØ’’’’’’’’’’’’’’’’’’’’ņØ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’2©’?’’’’’’’’’’’’’’’’’’’‚©’’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’²©’’’’’’’’’’’’’’’’’’’’Ņ©’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’"Ŗ’"’’’’’’’’’’’’’’’’’’’RŖ’’’’’’’’’’’’’’’’’’’’rŖ’-’’’’’’’’’’’’’’’’’’’¢Ŗ’’’’’’’’’’’’’’’’’’’’ĀŖ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’"«’’’’’’’’’’’’’’’’’’’’B«’>’’’’’’’’’’’’’’’’’’’‚«’G’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ«’’’’’’’’’’’’’’’’’’’’ņ«’B’’’’’’’’’’’’’’’’’’’B¬’4’’’’’’’’’’’’’’’’’’’‚¬’+’’’’’’’’’’’’’’’’’’’²¬’%’’’’’’’’’’’’’’’’’’’⬒’’’’’’’’’’’’’’’’’’’­’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2­’’’’’’’’’’’’’’’’’’’’R­’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r­’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’­’M’’’’’’’’’’’’’’’’’’’ā­’M’’’’’’’’’’’’’’’’’’’2®’M’’’’’’’’’’’’’’’’’’’‚®’M’’’’’’’’’’’’’’’’’’’Ņ®’M’’’’’’’’’’’’’’’’’’’"Æ’’’’’’’’’’’’’’’’’’’’RÆ’’’’’’’’’’’’’’’’’’’’bÆ’)’’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’²Æ’D’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’"°’’’’’’’’’’’’’’’’’’’’B°’’’’’’’’’’’’’’’’’’’’b°’!’’’’’’’’’’’’’’’’’’’’°’$’’’’’’’’’’’’’’’’’’’°’!’’’’’’’’’’’’’’’’’’’ņ°’!’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’"±’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r±’’’’’’’’’’’’’’’’’’’’’±’(’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā±’’’’’’’’’’’’’’’’’’’’²’8’’’’’’’’’’’’’’’’’’’B²’:’’’’’’’’’’’’’’’’’’’‚²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢²’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ҳ’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’"³’’’’’’’’’’’’’’’’’’’’B³’#’’’’’’’’’’’’’’’’’’’r³’’’’’’’’’’’’’’’’’’’’’³’.’’’’’’’’’’’’’’’’’’’³’#’’’’’’’’’’’’’’’’’’’ņ³’’’’’’’’’’’’’’’’’’’’“’)’’’’’’’’’’’’’’’’’’’B“’’’’’’’’’’’’’’’’’’’’b“’#’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’²“’!’’’’’’’’’’’’’’’’’’’ā“’1’’’’’’’’’’’’’’’’’’’"µ’’’’’’’’’’’’’’’’’’’’Bµ’#’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’rµ’"’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢µ’0’’’’’’’’’’’’’’’’’’’āµ’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’2¶’(’’’’’’’’’’’’’’’’’’’b¶’’’’’’’’’’’’’’’’’’’’‚¶’6’’’’’’’’’’’’’’’’’’’¶’;’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’"·’’’’’’’’’’’’’’’’’’’’B·’*’’’’’’’’’’’’’’’’’’’r·’’’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²·’’’’’’’’’’’’’’’’’’’’Ņ·’’’’’’’’’’’’’’’’’’’’ņ·’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’2ø’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Rø’*’’’’’’’’’’’’’’’’’’’‚ø’’’’’’’’’’’’’’’’’’’’¢ø’’’’’’’’’’’’’’’’’’’’Āø’’’’’’’’’’’’’’’’’’’’āø’’’’’’’’’’’’’’’’’’’’¹’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2¹’’’’’’’’’’’’’’’’’’’’R¹’’’’’’’’’’’’’’’’’’’’r¹’’’’’’’’’’’’’’’’’’’’’¹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²¹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ҹ’’’’’’’’’’’’’’’’’’’’ņ¹’M’’’’’’’’’’’’’’’’’’’Bŗ’M’’’’’’’’’’’’’’’’’’’’ŗ’1’’’’’’’’’’’’’’’’’’’Ņŗ’’’’’’’’’’’’’’’’’’’’ņŗ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2»’’’’’’’’’’’’’’’’’’’’B»’/’’’’’’’’’’’’’’’’’’’‚»’)’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’²»’#’’’’’’’’’’’’’’’’’’’ā»’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ó’I’’’’’’’’’’’’’’’’’’’āÓ’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ō’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ō’G’’’’’’’’’’’’’’’’’’’ŅŌ’4’’’’’’’’’’’’’’’’’’’Õ’M’’’’’’’’’’’’’’’’’’’bÕ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Õ’F’’’’’’’’’’’’’’’’’’’ņÕ’6’’’’’’’’’’’’’’’’’’’2Ö’O’’’’’’’’’’’’’’’’’’’’Ö’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āÖ’$’’’’’’’’’’’’’’’’’’’×’I’’’’’’’’’’’’’’’’’’’b×’2’’’’’’’’’’’’’’’’’’’¢×’2’’’’’’’’’’’’’’’’’’’ā×’O’’’’’’’’’’’’’’’’’’’BŲ’ ’’’’’’’’’’’’’’’’’’’rŲ’P’’’’’’’’’’’’’’’’’’’ŅŲ’5’’’’’’’’’’’’’’’’’’’Ł’L’’’’’’’’’’’’’’’’’’’bŁ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ł’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅŁ’N’’’’’’’’’’’’’’’’’’’"Ś’I’’’’’’’’’’’’’’’’’’’rŚ’/’’’’’’’’’’’’’’’’’’’²Ś’P’’’’’’’’’’’’’’’’’’’Ū’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŪ’%’’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’ĀŪ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņŪ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BÜ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ü’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ü’N’’’’’’’’’’’’’’’’’’’Ż’K’’’’’’’’’’’’’’’’’’’RŻ’&’’’’’’’’’’’’’’’’’’’‚Ż’R’’’’’’’’’’’’’’’’’’’āŻ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ž’,’’’’’’’’’’’’’’’’’’’bŽ’%’’’’’’’’’’’’’’’’’’’’Ž’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀŽ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"ß’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ß’E’’’’’’’’’’’’’’’’’’’Ņß’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rą’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ą’!’’’’’’’’’’’’’’’’’’’Āą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņą’5’’’’’’’’’’’’’’’’’’’2į’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rį’L’’’’’’’’’’’’’’’’’’’Āį’I’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’2ā’H’’’’’’’’’’’’’’’’’’’‚ā’H’’’’’’’’’’’’’’’’’’’Ņā’T’’’’’’’’’’’’’’’’’’’2ć’M’’’’’’’’’’’’’’’’’’’‚ć’7’’’’’’’’’’’’’’’’’’’Āć’N’’’’’’’’’’’’’’’’’’’ä’K’’’’’’’’’’’’’’’’’’’bä’J’’’’’’’’’’’’’’’’’’’²ä’N’’’’’’’’’’’’’’’’’’’å’O’’’’’’’’’’’’’’’’’’’bå’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’å’G’’’’’’’’’’’’’’’’’’’āå’I’’’’’’’’’’’’’’’’’’’2ę’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ę’%’’’’’’’’’’’’’’’’’’’²ę’2’’’’’’’’’’’’’’’’’’’ņę’=’’’’’’’’’’’’’’’’’’’2ē’’’’’’’’’’’’’’’’’’’’Rē’’’’’’’’’’’’’’’’’’’’rē’5’’’’’’’’’’’’’’’’’’’²ē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņē’Q’’’’’’’’’’’’’’’’’’’2č’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’č’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āč’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āč’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"é’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ré’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’é’L’’’’’’’’’’’’’’’’’’’āé’M’’’’’’’’’’’’’’’’’’’2ź’(’’’’’’’’’’’’’’’’’’’bź’N’’’’’’’’’’’’’’’’’’’²ź’K’’’’’’’’’’’’’’’’’’’ė’G’’’’’’’’’’’’’’’’’’’Rė’’’’’’’’’’’’’’’’’’’’rė’@’’’’’’’’’’’’’’’’’’’Āė’P’’’’’’’’’’’’’’’’’’’"ģ’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bģ’:’’’’’’’’’’’’’’’’’’’¢ģ’)’’’’’’’’’’’’’’’’’’’Ņģ’’’’’’’’’’’’’’’’’’’’ņģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ķ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rķ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āķ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ī’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rī’G’’’’’’’’’’’’’’’’’’’¢ī’J’’’’’’’’’’’’’’’’’’’ņī’J’’’’’’’’’’’’’’’’’’’Bļ’O’’’’’’’’’’’’’’’’’’’¢ļ’;’’’’’’’’’’’’’’’’’’’āļ’J’’’’’’’’’’’’’’’’’’’2š’+’’’’’’’’’’’’’’’’’’’bš’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²š’M’’’’’’’’’’’’’’’’’’’ń’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bń’(’’’’’’’’’’’’’’’’’’’rń’'’’’’’’’’’’’’’’’’’’’¢ń’"’’’’’’’’’’’’’’’’’’’Ņń’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bņ’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’^’’’’’’’’’’’’’#page nr ("%", 31)# ’’’’’’’’’’NEUMEL-BASIC-Compiler 8. Ųbersicht Ūber die Befehle und Funktionen % ’’’’>8. Ųbersicht Ūber die Anweisungen und Funktionen ’’’’’’’’’’’’’^In diesem Kapitel sind alle Anweisungen und Funktionen des vom Compiler ŪbersetzŻ’’’’’’’’’’’’’Nbaren BASIC-Sprachumfangs in alphabetischer Reihenfolge aufgefŪhrt. ’’’’’’’’’’^Auch die Anweisungsbestandteile (z.B. ELSE und TO) sind mit einem Hinweis auf die’’’’’’’’’’’’’.zugehŚrige Anweisung eingeordnet. ’’’’’’’’’’’’NSind bei Funktionen INT- oder REAL-AusdrŪcke als Argumente angegeben, so ist’’^dies als Hinweis auf den Sinn der Funktion zu verstehen. Es kŚnnen auch AusdrŪcke’’’’’’’’’’’’’^des jeweils anderen Datentyps eingesetzt werden. Wird statt eines INT-Ausdrucks’’’’’’’’’’’’’’’Nein REAL-Ausdruck angegeben, so darf dessen Wert aber nur innerhalb des’’’’’’’^Wertebereichs fŪr INTs liegen, da der REAL-Wert bei der AusfŪhrung der Funktion’’’’’’’’’’’’’’’.in einen INT-Wert konvertiert wird. ’’’’’’’’’’Funktion : ABS ’’’’’’’’’’’’’’’NZweck : Berechnung des Betrages (Absolutwertes) einer Zahl ’’’’’’’’’’’’.Syntax : ABS () ’’’’’’’’’>ErklŁrung : Liefert den Betrag des numerischen Ausdrucks. ’’N Das Ergebnis ist vom gleichen Typ wie das Argument. ’’’’’’’’’’’’Beispiel : 10 a = -12.74 . 20 PRINT ABS (a) ’’’’’’’’’’’’’. Ausgabe: 12.74 ’’’’’’’’’’’’’’’Vergleiche : SGN-Funktion ’’’Operator : AND ’’’’’’’’’’’’’’.Siehe Kapitel 4.4. (Operatoren) ’’’’’’’’’’’’’’Anweisungsbestandteil : AS ’’’Siehe NAME-Anweisung ’’’’’’’’’Funktion : ASC ’’’’’’’’’’’’’’’>Zweck : Ermittlung des ASCII-Codes eines Textzeichens ’.Syntax : ASC () ’’’’’’’’’NErklŁrung : Die Funktion liefert den ASCII-Code des ersten Zeichens des’’’’’ TEXT-Ausdrucks. > Der Code wird als INT geliefert. ’’’’’’’’’’’’’’’.Beispiel : 10 a$ = "Guten Tag !" ’’’’’’’’. 20 PRINT ASC (a$) ’’’’’’’’’’’’ Ausgabe: 71 ’>Vergleiche : CHR$-Funktion (KomplementŁrfunktion) ’’’’’’’’’’’Funktion : ATN ’’’’’’’’’’’’’’’.Zweck : Berechnung des Arcustangens ’’’.Syntax : ATN () ’’’’’’’’’>ErklŁrung : Die Funktion liefert den Arcustangens des ’’’’’’> numerischen Ausdrucks in Radiant. ’’’’’’’’’’’’’’Beispiel : 10 LET x = 4 ’. 20 PRINT ATN (x) ’’’’’’’’’’’’’. Ausgabe: 1.325818 ’’’’’’’’’’’’>Vergleiche : TAN-Funktion (KomplementŁrfunktion), SIN, COS ’’Anweisungsbestandteil : BASE ’Siehe OPTION BASE-Anweisung ’’Anweisung : CALL ’’’’’’’’’’’’’>Zweck : Aufruf einer insertierten Prozedur ’’’’’’’’’’’’^Syntax : CALL #right#[ ( [, ] [...] ) ] ’’’’’’’’’’’NErklŁrung : : Folge aus Zeichen, die fŪr Prozeduren im’’’’’’’’N EUMEL-System zugelassen sind (al¼’’’’’’’’’’’’’’’’’’’’"¼’’’’’’’’’’’’’’’’’’’’B¼’’’’’’’’’’’’’’’’’’’’b¼’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²¼’’’’’’’’’’’’’’’’’’’’Ҽ’’’’’’’’’’’’’’’’’’’’ņ¼’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’2½’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R½’’’’’’’’’’’’’’’’’’’’r½’G’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā½’’’’’’’’’’’’’’’’’’’’¾’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2¾’’’’’’’’’’’’’’’’’’’’R¾’’’’’’’’’’’’’’’’’’’’‚¾’’’’’’’’’’’’’’’’’’’’¢¾’’’’’’’’’’’’’’’’’’’’²¾’"’’’’’’’’’’’’’’’’’’’ā¾’’’’’’’’’’’’’’’’’’’’æ’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2æ’’’’’’’’’’’’’’’’’’’’Ræ’!’’’’’’’’’’’’’’’’’’’‚æ’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²æ’’’’’’’’’’’’’’’’’’’’Ņæ’L’’’’’’’’’’’’’’’’’’’"Ą’’’’’’’’’’’’’’’’’’’’BĄ’’’’’’’’’’’’’’’’’’’’bĄ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚Ą’’’’’’’’’’’’’’’’’’’’¢Ą’’’’’’’’’’’’’’’’’’’’ĀĄ’’’’’’’’’’’’’’’’’’’’’’ goret’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āĄ’’’’’’’’’’’’’’’’’’’’ņĄ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’2Į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’label i:’’’’’’’’’’’’’RĮ’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²Į’’’’’’’’’’’’’’’’’’’’ŅĮ’M’’’’’’’’’’’’’’’’’’’"Ā’M’’’’’’’’’’’’’’’’’’’rĀ’N’’’’’’’’’’’’’’’’’’’ĀĀ’M’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’"Ć’-’’’’’’’’’’’’’’’’’’’RĆ’’’’’’’’’’’’’’’’’’’’rĆ’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢Ć’’’’’’’’’’’’’’’’’’’’ĀĆ’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņĆ’’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’2Ä’’’’’’’’’’’’’’’’’’’’RÄ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’rÄ’’’’’’’’’’’’’’’’’’’’’Ä’/’’’’’’’’’’’’’’’’’’’ŅÄ’’’’’’’’’’’’’’’’’’’’ņÄ’#’’’’’’’’’’’’’’’’’’’"Å’’’’’’’’’’’’’’’’’’’’BÅ’2’’’’’’’’’’’’’’’’’’’‚Å’’’’’’’’’’’’’’’’’’’’¢Å’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŅÅ’’’’’’’’’’’’’’’’’’’’ņÅ’’’’’’’’’’’’’’’’’’’’Ę’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BĘ’’’’’’’’’’’’’’’’’’’’bĘ’1’’’’’’’’’’’’’’’’’’’¢Ę’’’’’’’’’’’’’’’’’’’’ĀĘ’.’’’’’’’’’’’’’’’’’’’ņĘ’’’’’’’’’’’’’’’’’’’’Ē’2’’’’’’’’’’’’’’’’’’’RĒ’’’’’’’’’’’’’’’’’’’’rĒ’’’’’’’’’’’’’’’’’’’’’Ē’$’’’’’’’’’’’’’’’’’’’ĀĒ’,’’’’’’’’’’’’’’’’’’’ņĒ’$’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"Č’’’’’’’’’’’’’’’’’’’’BČ’’’’’’’’’’’’’’’’’’’’RČ’’’’’’’’’’’’’’’’’’’’rČ’’’’’’’’’’’’’’’’’’’’¢Č’’’’’’’’’’’’’’’’’’’’ĀČ’.’’’’’’’’’’’’’’’’’’’ņČ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’"É’’’’’’’’’’’’’’’’’’’’2É’’’’’’’’’’’’’’’’’’’’RÉ’#’’’’’’’’’’’’’’’’’’’‚É’’’’’’’’’’’’’’’’’’’’¢É’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get next pos:’’’’’’’’ŅÉ’’’’’’’’’’’’’’’’’’’’āÉ’’’’’’’’’’’’’’’’’’’’Ź’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2Ź’’’’’’’’’’’’’’’’’’’’RŹ’’’’’’’’’’’’’’’’’’’’rŹ’:’’’’’’’’’’’’’’’’’’’²Ź’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŅŹ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņŹ’’’’’’’’’’’’’’’’’’’’Ė’M’’’’’’’’’’’’’’’’’’’bĖ’ ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’ĀĖ’N’’’’’’’’’’’’’’’’’’’Ģ’0’’’’’’’’’’’’’’’’’’’RĢ’-’’’’’’’’’’’’’’’’’’’‚Ģ’’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’²Ģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŅĢ’’’’’’’’’’’’’’’’’’’’ņĢ’)’’’’’’’’’’’’’’’’’’’"Ķ’8’’’’’’’’’’’’’’’’’’’bĶ’<’’’’’’’’’’’’’’’’’’’¢Ķ’’’’’’’’’’’’’’’’’’’’ĀĶ’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’BĪ’*’’’’’’’’’’’’’’’’’’’rĪ’’’’’’’’’’’’’’’’’’’’’Ī’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’2Ļ’M’’’’’’’’’’’’’’’’’’’‚Ļ’’’’’’’’’’’’’’’’’’’’¢Ļ’’’’’’’’’’’’’’’’’’’’ĀĻ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āĻ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BASIC.Compiler^’’’’’’’’’’’N(***************************************************************************)’N(* *)’N(* Dritte von drei Dateien des EUMEL-BASIC-Systems *)’N(* *)’N(* Autor: Heiko Indenbirken *)’N(* Ųberarbeitet von: Rudolf Ruland und Michael Overdick *)’N(* *)’N(* Stand: 27.10.1987 *)’N(* *)’N(***************************************************************************)’NPACKET basic compiler DEFINES basic, (* Autor: Heiko Indenbirken *)’’N basic version: (* Stand: 27.10.1987/rr/mo *)’’PROC basic version :’’’’’’’’’’nputline (""13" "15" BASIC - Compiler Version 1.1 (27.10.1987) "14"");’’’’’’’’’END PROC basic version;’’’’’’’NLET compiler msg = " ******* ENDE DER UEBERSETZUNG *******",’’’’’’’’’. compiler err msg = " Fehler entdeckt";’’’’NLET (* S y m b o l T y p e n *)’N any = 0, const = 1, var = 2, array = 3, denoter = 5,’’’’’’N res word= 8, operator= 9, eos = 10, del =11, stat no = 12,’’’’’N result const = 13, (* F3/rr *)’’. user fn = 20; (* DEF/mo *)’’’’’’’’’’’’NLET (* S y m b o l z e i c h e n *)’N plus = 43, minus = 45, mult = 42,’’’’’’’’’’’’’’’N div = 47, backslash = 92, exponent = 94,’’’’’’’’’’’’’’’N equal = 61, semicolon = 59, comma = 44,’’’’’’’’’’’’’’’N numbersign = 35, open bracket = 40, close bracket = 41,’’’’’’’’’’’’’’’N eol = 13, eop = 14, mod op = 249;’’’’’’’’’’’’’’NLET (* Reservierte Worte *)’N as s = 129, base s = 132, call s = 133, chain s = 135,’’N clear s = 138, close s = 139, common s = 140, data s = 144,’’N def s = 145, defdbl s = 146, defint s = 147, defsng s = 148,’’N defstr s = 149, dim s = 150, else s = 151, end s = 152,’’N eof s = 153, error s = 156, field s = 158, for s = 160,’’^ get s = 162, gosub s = 164, goto s = 165, if s = 167, (* F2/rr *)’’’’’N input s = 169, kill s = 173, let s = 176, line in s = 177,’’N lprint s = 180, lset s = 181, mid s = 182, name s = 185,’’N next s = 186, on s = 188, open s = 189, option s = 190,’’N print s = 193, put s = 194, rand s = 195, read s = 196,’’N rem s = 197, restore s = 198, resume s = 199, return s = 200,’’N rset s = 203, step s = 209, stop s = 210, swap s = 213,’’N tab s = 214, then s = 216, to s = 217, troff s = 218,’’N tron s = 219, using s = 220, wait s = 222, wend s = 223,’’N while s = 224, width s = 225, write s = 226, not = 250,’’N cls s = 227, usr so Buchstaben und - ab der’’’’’N zweiten Stelle - Zahlen), aber keine Leerzeichen. ’’’’’’’’’’’’’N : | ’’’’’’’’’’’’’’’N : Ausdruck (genau des von der Prozedur’’’’’’’> benŚtigten Typs) ’’’’’’’’’’N : Variable (genau des von der Prozedur benŚŻ’> tigten Typs) ’’’’’’’’’’’’’’N Die Prozedur mit dem angegebenen wird mit den’’’> angegebenen Parametern aufgerufen. ’’’’’’’’’’’’’^ Die aufgerufene Prozedur darf keinen Wert liefern (vgl. USR-FunkŻ’’’’’’’’’’’’’’’ tion). ’’’’’’’’’. MŚgliche FehlerfŁlle: ’’’’’’’’’’N - Eine Prozedur mit dem Namen und den anŻ’’’’’’’> gegebenen Parametern gibt es nicht. ’’’’’’’’’’> - Die Prozedur liefert einen Wert. ’’’’’’’’’’’’’^ - Die Prozedur benŚtigt Parametertypen, die in BASIC nicht bekannt’’’’’’’’’’’’’’> sind (z.B. BOOL, FILE, TASK, QUIET). ’’’’’’’’’N - Ein Parameter ist CONST, es wird aber ein VAR-Parameter verŻ’’ langt. ’’’’’’’N Weitere Informationen finden Sie in Kapitel 4.7. ’’’’’’’’’’’’’’’NHinweis : 1. Bei den Parametern wird keine Typkonvertierung vorgenommen. N 2. Der Prozedurname muū (entgegen der ELAN-Gewohnheit) ohne’’’’’> Leerzeichen angegeben werden. ’’’’’’’’’’’’’’’N 3. Statt des Anweisungswortes CALL kann auch CHAIN geschrieben’’N werden. CALL und CHAIN werden im EUMEL-BASIC nicht wie’’’’’’’. in Microsoft-BASIC benutzt. ’>Beispiel : 10 CALL sysout ("Meine Datei") ’’’’’’’’’’’’’’’> 20 PRINT "Dieser Text geht nun in die Datei" ’. 30 CALL sysout ("") ’’’’’’’’’’> 40 PRINT "Wieder auf den Bildschirm" ’’’’’’’’’ ’’’’’’’’’’’’’Vergleiche : USR-Funktion ’’’Funktion : CDBL ’’’’’’’’’’’’’’>Zweck : Konvertierung in den Datentyp REAL ’’’’’’’’’’’’.Syntax : CDBL () ’’’’’’’’NErklŁrung : Das Ergebnis des numerischen Ausdrucks wird als REAL geliefert. .Beispiel : 10 LET a! = 17 ’’’’’’’’’’’’’’’> 20 PRINT USR max (CDBL (a!), 152.3) ’’’’’’’’’’> 30 REM max benŚtigt zwei REALs als Parameter ’Vergleiche : CINT-Funktion ’’Anweisung : CHAIN ’’’’’’’’’’’’NVollkommen identisch mit der CALL-Anweisung (ErklŁrung siehe dort !) ’’’’’’’’’Funktion : CHR$ ’’’’’’’’’’’’’’NZweck : Erzeugung eines Textzeichens mit einem bestimmten ASCII-Code ’’.Syntax : CHR$ () ’’’’’’’’’NErklŁrung : Die Funktion liefert das Zeichen mit dem ASCII-Code, den der’’’’. INT-Ausdruck angibt. ’’’’’’’’’’’> Das Zeichen wird als TEXT geliefert. ’’’’’’’’’’’N Die Leistung der Funktion ist nur fŪr Werte im Bereich 0 bis 255 definiert. ’’’’’.Beispiel : 10 PRINT CHR$ (61) ’’’’’’’’’’’ Ausgabe: = ’’>Vergleiche : ASC-Funktion (KomplementŁrfunktion) ’’’’’’’’’’’’Funktion : CINT ’’’’’’’’’’’’’’>Zweck : Konvertierung in den Datentyp INT ’’’’’’’’’’’’’.Syntax : CINT () ’’’’’’’’NErklŁrung : Das Ergebnis des numerischen Ausdrucks wird als INT geliefert.’’N REALs werden gerundet. Werte auūerhalb des INT-Bereichs fŪhren’’. zu einem INT-Ųberlauf. ’’’’’’’’’.Beispiel : 10 LET a = 17.625 ’’’’’’’’’’’’. 20 PRINT CINT (a); CINT (-a) ’. Ausgabe: 18 -18 ’’’’’’’’’’’’.Vergleiche : CDBL-, FIX-, INT-Funktionen ’’’’Anweisung : CLS ’’’’’’’’’’’’’’.Zweck : LŚschen des Bildschirms ’’’’’’’Syntax : CLS ’’’’’’’’’’’^ErklŁrung : LŚscht den Bildschirm und positioniert den Cursor in die linke obere’’’’’’’’’’’’. Bildschirmecke (Position 1, 1). Beispiel : 10 CLS ’’’’’’’. 20 PRINT "PROGRAMMBEGINN" ’’’’Funktion : COS ’’’’’’’’’’’’’’’>Zweck : Berechnung des Cosinus eines Radiantwertes ’’’’Syntax : COS () NErklŁrung : : REAL-Ausdruck, der den Winkel in Radiant angibt. ’’’’’N Die Funktion liefert den Cosinus des Winkels als REAL. ’’’’’’’’’.Beispiel : 10 PI = 3.141593 ’’’’’’’’’’’’’. 20 PRINT COS (PI/4) ’’’’’’’’’’. Ausgabe: .7071067 ’’’’’’’’’’’.Vergleiche : SIN-, TAN-Funktionen ’’’’’’’’’’’Funktion : CSRLIN ’’’’’’’’’’’’>Zweck : Ermittlung der aktuellen Cursorzeile ’’’’’’’’’’Syntax : CSRLIN ’’’’’’’’^ErklŁrung : Geliefert wird die Nummer der Zeile (als INT), in der sich der Cursor’’’’’’’’’’’^ auf dem Bildschirm befindet. Die oberste Zeile hat die Nummer 1. ’’’’’’’’’’’’’’’Beispiel : 10 CLS ’’’’’’’ 20 PRINT ’’’’’. 30 PRINT CSRLIN ’’’’’’’’’’’’’’ Ausgabe: 2 ’’Vergleiche : POS-Funktion ’’’Funktion : CVD, CVI ’’’’’’’’’’NZweck : Decodierung von in Texten verschlŪsselten Zahlenwerten ’’’’’’’’.Syntax : CVD () ’’’’’’’’’. CVI () ’’’’’’’’’’NErklŁrung : INTs und REALs kŚnnen (mit MKI$ und MKD$) zu Texten codiert’’’’’ werden. ’’’’’’’’N CVD decodiert einen in 8 TEXT-Zeichen codierten REAL-Wert. ’’’’’N CVI decodiert einen in 2 TEXT-Zeichen codierten INT-Wert. ’’’’’’N Es wird beim ersten Zeichen des TEXT-Ausdrucks mit der DekodieŻ’ rung begonnen. ’^ Ist der TEXT zu kurz, so wird mit der Meldung "Ueberlauf bei SubsŻ’’’’’’’’’’’’’’. kription" abgebrochen. ’’’’’’’’’.Beispiel : 10 zahl$ = MKD$ (3.1415) ’’’’’. 20 PRINT CVD (zahl$) ’’’’’’’’’. Ausgabe: 3.1415 ’’’’’’’’’’’’’NVergleiche : MKD$-, MKI$- Funktionen (KomplementŁrfunktionen) ’’’’’’’’’’’’’’’Anweisung : DATA ’’’’’’’’’’’’’.Zweck : Ablegen von Konstanten ’’’’’’’’>Syntax : DATA [] [, []] [...] ’’’’’’’’’’NErklŁrung : : | ’’’’’’’’’N : von AnfŪhrungszeichen umschlossene ZeichenŻ’’N folge, die alle Zeichen auūer AnfŪhrungsŻ’’’’> zeichen enthalten darf ’’’’’’N : Zeichenfolge, die alle Zeichen auūer Komma’’’N und Doppelpunkt enthalten darf ’’’’’’’’’’’’’’N Eine DATA-Anweisung stellt einen Datenspeicher dar, der mit READ. (s.d.) ausgelesen werden kann. ’N In der DATA-Anweisung kŚnnen "quoted strings" oder "unquoŻ’’’’’’^ ted strings" angegeben werden. "quoted strings" kŚnnen spŁter nur’’’’’’’’’’’’’’’> noch als Texte ausgelesen werden. ’’’’’’’’’’’’’’N Bei "unquoted strings" wird der Datentyp in der DATA-Anweisung’’N dagegen nicht festgelegt. Sie kŚnnen also als INTs, REALs oder’’N TEXTe ausgelesen werden. Sollen "unquoted strings" Zahlenwerte’’^ darstellen, so mŪssen sie den in BASIC Ūblichen Schreibregeln fŪr’’’’’’’’’’’’’’’N die numerischen Konstanten des jeweiligen Typs genŪgen. Es sind’> allerdings zusŁtzlich noch Vorzeichen erlaubt. ’N Wenn die nicht angegeben sind, so wird ein "nil-Datum"N abgelegt. Dieses bewirkt bei einem READ mit numerischer Variable = 234, sub = 235; (* mo *)’’’’’’’’LET nil = "",’’’’’’’’’’’’’’’ intern error = 51;’’’’’’’’NLET SYMBOL = STRUCT (TEXT name, INT no, type, ADDRESS adr, DTYPE data);’’’’’’’.ADDRESS CONST niladr :: LOC -4;’’’’’’’’’’’’’’’NSYMBOL CONST nilsymbol :: SYMBOL : (nil, any, any, nil adr, void type);’’’’’’’SYMBOL VAR symb;’’’’’’’’’’’’’’BOOL VAR found;’’’’’’’’’’’’’’’.TEXT OP NAME (SYMBOL CONST val):’’’’’’’’’’’’’’ IF val.type = const’’’’’’’’’ THEN constant value’’’’’’’’’ ELIF val.type = stat no’’’’’ THEN text (val.no)’’’’’’’’’’ ELSE val.name FI .’’’’’’’’’constant value:’’’’’’’’’’’’’’’> IF val.data = int type AND length (val.name) = 2’’’’’’’’’’’’ THEN text (val.name ISUB 1)’> ELIF val.data = real type AND length (val.name) = 8’’’’’’’’’ THEN text (val.name RSUB 1)’ ELSE val.name FI .’’’’’’’’’NPROC careful error (INT CONST no, TEXT CONST name, addition): (* DEF/mo *)’ IF at end of statement’’’’’’. THEN basic error (no, name, addition)’’’’’. ELSE basic error without leaving statementat end of statement:’’’’’’’’’’ symb.type = eos.’’’’’’’’’’’’.basic error without leaving statement:’’’’’’’’. basic error (no, name, addition, FALSE);’’’’ error no INCR 1.’’’’’’’’’’’’END PROC careful error;’’’’’’’N(* P r e c o m p i l e r *)’PROC next symbol:’’’’’’’’’’’’’ symb.adr := niladr;’’’’’’’’’> next symbol (symb.name, symb.no, symb.type, symb.data); ’’’’> IF symb.no = end symbol AND symb.type = res word’’’’’’’’’’’’ THEN symb.no := -symb.no;’ symb.type := eos;’’’’’’END PROC next symbol;’’’’’’’’’.PROC skip (INT CONST symbol, type):’’’’’’’’’’’. IF symb.type = type AND symb.no = symbol’’’’ THEN next symbol’’’’’’’’’’’’N ELSE basic error (2, NAME symb, name of (symbol) + " erwartet") FI .’’’’’’END PROC skip;.PROC get letter (SYMBOL VAR symbol):’’’’’’’’’’> IF symb.type = var AND (LENGTH symb.name) = 1’’’’’’’’’’’’’’’ THEN symbol := symb;’’’’’’’’ next symbol’’’’’’’’’’’’n ELSE basic error (2, NAME symb, "Buchstabe erwartet, " + type of (symb.type) + " gefunden") FI .’’’’’’’’’’’END PROC get letter;’’’’’’’’’’.PROC get var (SYMBOL VAR symbol):’’’’’’’’’’’’’ IF symb.type = var’’’’’’’’’’ THEN variable (symbol)’’’’’’ ELIF symb.type = array’’’’’’ THEN array var (symbol)’’’’’n ELSE basic error (2, NAME symb, "Variable erwartet, " + type of (symb.type) + " gefunden") FI .’’’’’’’’’’’’END PROC get var;’’’’’’’’’’’’’.PROC get expr (SYMBOL VAR symbol):’’’’’’’’’’’’ get expression (symbol, 0)’’END PROC get expr;’’’’’’’’’’’’>PROC get const (SYMBOL VAR symbol, DTYPE CONST data):’’’’’’’’’ IF symb.type = const’’’’’’’’ THEN symbol := symb;’’’’’’’’N declare const (symbol, data); (* F3/rr *)’’ next symbol’’’’’’’’’’’’n ELSE basic error (2, NAME symb, "Konstante erwartet, " + type of (symb.type) + " gefunden") FI .’’’’’’’’’’END PROC get const;’’’’’’’’’’’>PROC get var (SYMBOL VAR symbol, DTYPE CONST data):’’’’’’’’’’’ get var (symbol);’’’’’’’’’’’ convert (symbol, data)’’’’’’END PROC get var;’’’’’’’’’’’’’>PROC get expr (SYMBOL VAR symbol, DTYPE CONST data):’’’’’’’’’’ get expression (symbol, 0);’ convert (symbol, data)’’’’’’END PROC get expr;’’’’’’’’’’’’>PROC get expression (SYMBOL VAR result, INT CONST last prio):’ get single result;’’’’’’’’’’> WHILE symb.type = operator AND higher priority’’’’’’’’’’’’’’ REP get dyadic operand;’’’’’ gen dyadic operation’’’’get single result:’’’’’’’’’’’’ INT VAR prio;’’’’’’’’’’’’’’’ SELECT symb.type OF’’’’’’’’’. CASE var: variable (result)’’’’’’’’’’’’. CASE array: array var (result)’’’’’’’’’’’ CASE const: get const’’’’. CASE operator: get monadic operator’’’’’’’’’. CASE res word: basic function (result)’’’’’’N CASE user fn: user function (result) (* DEF/mo *)’’’’’. OTHERWISE get bracket END SELECT .’’’’’’’’’ result := symb;’’’’’’’’’’’’’N declare const (result, result. data); (* F3/rr *)’’’’’’ next symbol .’’’’’’’’’’’’’’get monadic operator:’’’’’’’’’ get operator;’’’’’’’’’’’’’’’N prio := monadic op prio; (* mo *)’’’’’’’’’’ get monadic operand;’’’’’’’’ generate monadic operator .Nmonadic op prio: (* mo *)’’’’’’’’’’ IF op no = not’’’’’’’’’’’’’’get monadic operand:’’’’’’’’’’ SYMBOL VAR operand;’’’’’’’’’ next symbol;. get expression (operand, prio).’’’’’’’’’’’’’generate monadic operator:’’’’N(* MŚgliche Ops: +, - und NOT *)’> parameter (1, operand.data, const, operand.adr); ’’’’’’’’’’’N parameter (2, operand.data, var, next local adr (operand.data));’’’’’’’’’’’’. parameter (3, void type, const, nil adr);’’’ IF op no = plus’’’’’’’’’’’’’ THEN result := operand’’’’’’ ELIF op no = minus’’’’’’’’’’ THEN generate minus op’’’’’’ ELIF op no = not’’’’’’’’’’’’ THEN generate not op’’’’’’’’N ELSE basic error (2, op name, "Kein monadischer Operator") FI .’’’’’’’’’’’’generate minus op:’’’’’’’’’’’’ IF operand.data = int type’’ THEN apply (1, 2, int minus). ELIF operand.data = real type’’’’’’’’’’’’’’’. THEN apply (1, 2, real minus)’’’’’’’’’’’’’’’^ ELSE basic error (82, op name, NAME operand + " : " + dump (operand.data)) FI;;’’’’’’’’’’’’’N result := SYMBOL:(op name, 0, result const, local adr, operand.data) .’’’’’generate not op:’’’’’’’’’’’’’’ IF operand.data = int type’’. THEN apply (1, 1, int not opn)’’’’’’’’’’’’’’. ELIF operand.data = real type’’’’’’’’’’’’’’’. THEN apply (1, 1, real not opn)’’’’’’’’’’’’’^ ELSE basic error (82, op name, NAME operand + " : " + dump (operand.data)) FI;’’’’’’’’’’’’’’N result := SYMBOL:(op name, 0, result const, local adr, operand.data) .’’’’’ INT CONST op no :: symb.no;’. TEXT CONST op name :: symb.name .’’’’’’’’’’higher priority:’’’’’’’’’’’’’’ get operator;’’’’’’’’’’’’’’’ prio := dyadic op prio;’’’’’ prio > last prio .’’’’’’’’’dyadic op prio:’’’’’’’’’’’’’’’> IF is bool op (op no) THEN bool op prio’’’’’. ELIF op no = plus OR op no = minus THEN 8. ELIF op no = mod op THEN 9> ELIF op no = backslash THEN 10’’’’’’’’’’’’’’’> ELIF op no = mult OR op no = div THEN 11’’’’’’’’’’’’’’’> ELIF op no = exponent THEN 13’’’’’’’’’’’’’’’. ELSE (* relational operator *) 7 256 - op no.> IF symb.type = del AND symb.no = open bracket’’’’’’’’’’’’’’’ THEN next symbol’’’’’’’’’’’’. ELSE basic error (22, NAME symb, "") FI;’’’’ get expression (result, 0);’ skip (close bracket, del) .get dyadic operand:’’’’’’’’’’’ next symbol;. get expression (operand, prio) .’’’’’’’’’’’gen dyadic operation:’’’’’’’’’ convert operands;’’’’’’’’’’’ identify dyadic operator;’’’ generate dyadic operator .’convert operands:’’’’’’’’’’’’’. DTYPE CONST op type :: type of operation;’’’’ convert (result, op type);’’’ convert (operand, op type) .type of operation:’’’’’’’’’’’’ IF is bool op (op no)’’’’’’’ THEN int type’’’’’’’’’’’’’’’. ELIF result.data = operand.data’’’’’’’’’’’’’ THEN result.data’’’’’’’’’’’’ ELSE real type FI .’’’’’’’’identify dyadic operator:’’’’’ BOOL VAR local found;’’’’’’’ OPN VAR local opn;’’’’’’’’’’ DTYPE VAR data;’’’’’’’’’’’’’> parameter (1, result.data, const, result.adr); ’’’’’’’’’’’’> parameter (2, operand.data, const, operand.adr);’’’’’’’’’’’’> identify (op no, 1, 2, local opn, local found);’’’’’’’’’’’’’N die Lieferung des Wertes null und bei einem READ mit TEXT-VariŻ’> able die Lieferung eines Leertextes. ’’’’’’’’’’’N Die DATA-Anweisungen kŚnnen an beliebiger Stelle im Programm’’’’N (vor oder hinter den zugehŚrigen READ-Anweisungen) stehen. ’’’’’N Alle DATA-Anweisungen eines Programms bilden zusammen einen’’’’’N groūen sequentiellen Speicher, auf den mit READ der Reihe nach’’N zugegriffen wird. Intern wird ein sogenannter READ-DATA-Zeiger’’N gefŪhrt, der immer auf das nŁchste auszulesende Element zeigt. ’N Die RESTORE-Anweisung (s.d.) ermŚglicht es, den READ-’’’’’’’’’’’N DATA-Zeiger auf das erste Element einer bestimmten DATA-Zeile’’’ zu setzen. ’’’’’>Beispiel : 2020 PRINT "Stadt", "Land", "Fluū" ’’’’’’’’’’’> 2030 READ stadt$, land$, fluū$ ’’’’’’’’’’’’’’’> 2040 PRINT stadt$, land$, fluū$ ’’’’’’’’’’’’’’ . ’’’’’’’’’’’’> 5000 DATA Paris, Frankreich, Seine ’’’’’’’’’’’.Vergleiche : READ-, RESTORE-Anweisungen ’’’’’Funktion : DATE$ ’’’’’’’’’’’’’>Zweck : Abrufen des aktuellen Tagesdatums ’’’’’’’’’’’’’Syntax : DATE$ ’’’’’’’’’NErklŁrung : Das Tagesdatum wird als Text in der Form TT.MM.JJ geliefert. ’’’>Beispiel : 10 PRINT "Heute ist der " + DATE$ ’’’’’’’’’’’’> Ausgabe (z.B.): Heute ist der 28.08.87 ’’’’’’Vergleiche : TIME$-Funktion ’.Anweisung : DEFDBL, DEFINT, DEFSNG, DEFSTR ’’’NZweck : Definition von Anfangsbuchstaben zur Kennzeichnung bestimmter’’ Variablentypen ’>Syntax : DEFDBL [ - ] ’’’’’’’’’N #right#[, [ - ] ] [...] ’’’’’’’’’’’’’’’> DEFINT [ - ] ’’’’’’’’’’N #right#[, [ - ] ] [...] ’’’’’’’’’’’’’’’> DEFSNG [ - ] ’’’’’’’’’’N #right#[, [ - ] ] [...] ’’’’’’’’’’’’’’’> DEFSTR [ - ] ’’’’’’’’’’N #right#[, [ - ] ] [...] ’’’’’’’’’’’’’’’NErklŁrung : Mit den aufgefŪhrten Anweisungen ist es mŚglich, bestimmte BuchŻN staben festzulegen, die, wenn sie als Anfangsbuchstaben eines’’’N Variablennamens verwendet werden, der Variablen einen bestimmten Typ zuordnen. ’’^ Die Typfestlegung durch Kennzeichnung mit den Zeichen '!', 'Ž', '%'’’’’’’’’’’’’’^ oder '$' hat jedoch Vorrang vor den festgelegten Anfangsbuchstaben.’’’’’’’’’’’’’N Eine genaue ErlŁuterung, nach welchen Kriterien der BASIC-CompiŻ^ ler den Typ einer Variablen feststellt, befindet sich in Kapitel 4.3. ’’’’’’’’’’N Die DEFINT-Anweisung legt Anfangsbuchstaben fŪr INT-Variablen’’’ fest. ’’’’’’’’’’N Mit der DEFSTR-Anweisung werden Anfangsbuchstaben von’’’’’’’’’’’. TEXT-Variablen festgelegt. ’’’’’N Die Anweisungen DEFDBL- und DEFSNG- wurden nur aus KomŻ’’’’’’’’’^ patibilitŁtsgrŪnden implementiert. Sie werden zwar auf syntaktische’’’’’’’’’’’’’^ Richtigkeit ŪberprŪft, aber ansonsten vom Compiler nicht beachtet. ’’’’’’’’’’’’’N Werden bei den Anweisungen ganze Buchstabenbereiche angegeben,’’N so muū der Buchstabe vor dem Bindestrich auch im Alphabet vor’’’> dem Buchstaben hinter dem Bindestrich stehen. ’’^Hinweis : 1. Die oben beschriebenen Anweisungen gelten stets erst fŪr die im’’’’’’’’’’’’’^ weiteren Text neu benutzten (also neu eingerichteten) Variablen. ’’’’’’’’’’’’N 2. Die beschriebenen Anweisungen dŪrfen auch mehr als einmal in’N einem Programm vorkommen. Die Buchstaben, die in der zweiten’N und in den folgenden Anweisungen festgelegt werden, werden’’’^ #on("izusŁtzlich#off("i zu den in der ersten Anweisung festgelegten BuchstaŻ’^ ben als Kennzeichen fŪr den betreffenden Datentyp vom Compiler’’’’’’’’’’’’’’’ vermerkt. ’’’^ 3. Der Compiler ŪberprŪft nicht, ob gleiche Buchstaben als KennzeiŻ’’’’’’’’’’’’’N chen fŪr mehr als einen Variablentyp angegeben werden (siehe’^ Kapitel 4.3.). Der Benutzer ist also selbst dafŪr verantwortlich, daū’’’’’’’’> solche Ųberschneidungen nicht vorkommen. ’’’’.Beispiel : 10 DEFSTR s - z ’’’’’’’’’’’’’’. 20 DEFINT a - h, n ’’’’’’’’’’’> 30 DIM tabelle (17) 'TEXT-Feld ’’’’’’’’’’’’’’’> 40 LET c = 4 'INT-Variable ’’’’’’’’’’’’> 50 LET nummer = 17 'INT-Variable ’’’’’’’’’’’’N 60 LET ueberschrift = "Willkommen" 'TEXT-Variable ’’’’’’’’’’’’> 70 LET reellezahl = 19.563 'REAL-Variable ’’’’> 80 LET ahaŽ = -1.36E17 'REAL-Variable ’’’’ ’’’’’’’’’’’’’Anweisung : DEF FN ’’’’’’’’’’’>Zweck : Definition einer benutzer-definierten Funktion nSyntax : DEF FN [ ( [, ] #right# [...] ) ] = ’’’’’’’’NErklŁrung : : Zeichenfolge, die der Syntax fŪr Variablennamen’’’. entsprechen muū ’’N FN bilden zusammen den Namen der’’’’’’’’’’’’. neuen Funktion ’’’N : Zeichenfolge, die der Syntax fŪr Variablennamen’’’. entsprechen muū ’’N : Ausdruck, der Konstanten, Variablen, dieN Parameter der Funktion und Aufrufe’’’’’’N anderer Funktionen enthalten darf ’’’’’’N Mit der DEF FN-Anweisung wird eine benutzer-definierte Funktion’N ("user function") mit dem Funktionsnamen FN definiert’’’’’> (vergleiche hierzu auch Kapitel 4.5.). ’’’’’’’’’^ Die benutzer-definierte Funktion liefert, genau wie die standardŻ’’’’’’’’’’’’’’’^ mŁūig eingebauten Funktionen, einen Wert, der sich aus der AuswerŻ’’’’’’’’’’’’’’N tung des unter angegebenen Ausdrucks’’’’’’ ergibt. ’’’’’’’’N Das letzte Zeichen des Funktionsnamens gibt den Typ des Wertes’’^ an, den die Funktion liefert. Soll die Funktion einen TEXT liefern, so’’’’’’’’’’^ muū der Name mit "$" enden. Soll ein INT geliefert werden, muū der’’’’’’’’’’’’’’N Name mit "%" enden. FŪr alle anderen Endungen wird eine REAL-’’’. liefernde Funktion eingetragen. N Bezeichnet der Funktionsname eine TEXT-liefernde Funktion, so’’’^ muū auch die Funktionsdefinition ein Ergebnis vom Typ TEXT liefern.’’’’’’’’’’’’’N Zwischen INTs und REALs findet eine Typanpassung statt. ’’’’’’’’^ Die Parameter stehen fŪr die beim Aufruf der Funktion Ūbergebenen’’’’’’’’’’’’’’’ Argumente. ’’’’’^ Sie haben nur bei der Definition GŪltigkeit. Hierbei 'Ūberdecken' sie’’’’’’’’’’’N (fŪr diese Zeile) eventuell im BASIC-Programm vorhandene gleichŻ. namige Variablen. ’’’’’’’’’’’’’’N Die Syntax der Parameternamen entspricht der Syntax der Namen’’’. von einfachen Variablen. ’’’’’’’^ Jeder Parameter  IF NOT local found’’’’’’’’’’. THEN basic error (83, symbol of (op no),’’’’N NAME result + " : " + dump (result.data) + " und " +’’’’’’> NAME operand + " : + dump (operand.data)) ELSE data := dtype (3) FI .generate dyadic operator:’’’’’ declare (3, var);’’’’’’’’’’’. define (3, next local adr (data));’’’’’’’’’’ apply (3, push);’’’’’’’’’’’’ apply (1, 2, local opn);’’’’N result := SYMBOL:(op name, 0, result const, local adr, data) .’’’’’’’’’’’’’END PROC get expression;’’’’’’.PROC variable (SYMBOL VAR symbol):’’’’’’’’’’’’ symbol := symb;’’’’’’’’’’’’ next symbol;’’’’’’’’’’’’’’’ IF known (symbol.no)’’’’’’’ THEN get adr from table’’’’. ELSE declare var (symbol, nil) FI .’’’’’’’get adr from table:’’’’’’’’’’’ TEXT VAR defined dim;’’’’’’’N remember (symbol.no, symbol.type, symbol.adr, symbol.data, defined dim) .’’END PROC variable;’’’’’’’’’’’’.PROC array var (SYMBOL VAR symbol field):’’’’’N(* Aufbau der Dimensionsangaben in der Symboltabelle *)’N(* limit 1 [limit 2]... Basis Elemente *)’N(* jeweils als 2 Byte Integer/Text *)’N(* Die Dimension ist dann DIM/2-2 *)’ ROW 100 SYMBOL VAR indizes;’ TEXT VAR limits;’’’’’’’’’’’’ INT VAR dim;. symbol field := symb; next symbol;’’’’’’’’’. get paramfield (indizes, dim, int type);’’’’ IF known (symbol field.no)’’. THEN check field dim and data’’’’’’’’’’’’’’’ ELSE declare new field FI;’’ generate field index .’’’’’check field dim and data:’’’’’ INT VAR type;’’’’’’’’’’’’’’’ DTYPE VAR data;’’’’’’’’’’’’’N remember (symbol field.no, type, symbol field.adr, data, limits);’’’’’’’’’’’ IF old dim <> dim’’’’’’’’’’’Ž THEN basic error (84, symbol field.name, "Dimensioniert in " + text (old dim) + " Dimensionen, gefundene Anzahl Indizes: " + text (dim))’’’’. ELIF NOT (symbol field.data = data)’’’’’’’’’n THEN basic error (intern error, symbol field.name, dump (data) + " <=> " + dump (symbol field.data))’’’’’’’’. ELIF NOT (symbol field.type = type)’’’’’’’’’n THEN basic error (intern error, symbol field.name, "Feld erwartet, " + type of (type) + " gefunden") FI .’’.old dim: (length (limits) DIV 2) - 2 .’’’’’’’declare new field:’’’’’’’’’’’’> limits := dim * ""10""0"" + mki (array base) +’’’’’’’’’’’’’’. mki ((10 - array base + 1)**dim);’. declare var (symbol field, limits) .’’’’’’’generate field index:’’’’’’’’’ init field subscription;’’’’ FOR j FROM 1 UPTO dim’’’’’’’ REP increase field index;’’’. calc index length and limit;’’’’’’’’’’’’ calculate field pointer;. symbol field.adr := REF pointer’’’’’’’’’init field subscription:’’’’’’> ADDRESS VAR pointer :: next local adr (row type),’’’’’’’’’’’> index adr :: next local adr (int type);’’’’’’’’’^ INT VAR j, elem length :: (limits ISUB (dim+2)) * typesize (symbol field.data),’’’’’’’’’’’’’ elem limit,’’’’’’> elem offset :: 1 - (limits ISUB (dim+1));’’’’’’’’. BOOL CONST base zero := elem offset = 1 .’’increase field index:’’’’’’’’’ IF base zero’’’’’’’’’’’’’’’> THEN parameter (1, int type, const, index.adr);’’’’’’’’’’’’> parameter (2, int type, const, one value);’’’’’’’’’’’’> parameter (3, int type, var, index adr);’’’’’’’’’’’’’’> parameter (4, void type, const, nil adr);’’’’’’’’’’’’’ apply (1, 3, int add);. ELSE index adr := index.adr FI .’’’’’’’’’’index: indizes [j] .’’’’’’’’’calc index length and limit:’’> elem limit := (limits ISUB j) + elem offset;’’’’’’’’’’’’’’’. elem length := elem length DIV elem limit .calculate field pointer:’’’’’’> parameter (1, int type, const, symbol field.adr);’’’’’’’’’’’. parameter (2, int type, const, index adr);’’. parameter (3, int type, elem length);’’’’’’’. parameter (4, int type, elem limit);’’’’’’’’. parameter (5, int type, const, pointer);’’’’. parameter (6, void type, const, nil adr);’’’ apply (1, 5, subscript);’’’’END PROC array var;’’’’’’’’’’’NPROC get paramfield (ROW 100 SYMBOL VAR params list, INT VAR no):’’’’’’’’’’’’’ skip (open bracket, del);’’’ FOR no FROM 1 UPTO 100’’’’’’. REP get expression (params list [no], 0);’’’> IF symb.type = del AND symb.no = close bracket’’’’’’’’’’ THEN next symbol;’’’’’’’. LEAVE get paramfield’’’’’’’’’’’’’’’. ELSE skip (comma, del) FI’’’’’’’’’’’’’’’END PROC get paramfield;’’’’’’^PROC get paramfield (ROW 100 SYMBOL VAR params list, INT VAR no, DTYPE CONST data):’’’’’’’’’’’ skip (open bracket, del);’’’ FOR no FROM 1 UPTO 100’’’’’’. REP get expression (params list [no], 0);’’’. convert (params list [no], data);’’’’’’’> IF symb.type = del AND symb.no = close bracket’’’’’’’’’’ THEN next symbol;’’’’’’’. LEAVE get paramfield’’’’’’’’’’’’’’’. ELSE skip (comma, del) FI’’’’’’’’’’’’’’’END PROC get paramfield;’’’’’’NPROC examine access rights (ROW 100 SYMBOL VAR params list, INT CONST no):’’’’ FOR j FROM 1 UPTO no REP’’’’N IF params list [j].type = const OR params list [j].type = result const’’’’ THEN IF access (j) = 2’’N THEN basic error (103, NAME params list [j], "im " + text (j)’’’’N + ". Eintrag der Parameterliste")’’’’’’’’.END PROC examine access rights;’’’’’’’’’’’’’’’NPROC basic function (SYMBOL VAR ftn): (* Önd. 11.08.87, mo *) init and check function;’’’’> IF symb.type = del AND symb.no = open bracket’’’’’’’’’’’’’’’> THEN get paramfield (params list, number params);’’’’’’’’’ apply function .’’’’’’’’’’’init and check function:’’’’’’. ROW 100 SYMBOL VAR params list;’’’’’’’’’’’’’ INT VAR number params :: 0;’. BOOL CONST is usr :: symb.no = usr;’’’’’’’’’ THEN check proc name’’’’’’ ftn := symb; next symbol .’’’’’’’’’’’’’check proc name:’’’’’’’’’’’’’’ next symbol; IF symb.type = array’’’’’’’’N THEN symb.name := subtext (symb.name, 1, LENGTH symb.name-2)’’’’’’’’’’’’’’ ELIF symb.type <> var’’’’’’’> THEN basic error (2, NAME symb, "Prozedurname erwartet")’’apply function:’’’’’’’’’’’’’’’ OPN VAR ftn local opn;’’’’’’ BOOL VAR ftn found;’’’’’’’’’. INT CONST result :: number params+1;’’’’’’’’. FOR j FROM 1 UPTO number params’’’’’’’’’’’’’N REP parameter (j, params list [j].data, const, params list [j].adr) PER;’’’’ THEN identify proc;’’’’’’’> examine access rights (params list, number params);’’ ELSE identify function’’’’. ftn.adr := next local adr (ftn.data);’’’’’’’ declare (result, var);’’’’’’ define (result, ftn.adr);’’’ apply (result, push);’’’’’’’. apply (1, number params, ftn local opn).’’’’identify proc:N identify (deshift (ftn.name), 1, number params, ftn local opn, ftn found);’’ ftn.data := dtype (result);’ IF NOT ftn found’’’’’’’’’’’’^ THEN basic error (99, ftn.name, "Parameter angegeben: " + param list (1, number params))’’ ELIF ftn.data = void type’’’N THEN basic error (5, ftn.name, "Die Prozedur liefert keinen Wert")’’’’’’’’^ ELIF NOT (ftn.data = int type) AND NOT (ftn.data = real type) AND NOT (ftn.data = text type)^ THEN basic error (5, ftn.name, "Der Typ des Resultats ist nicht erlaubt, gefunden: "’’’’’’> + dump (dtype (result)))’’’identify function:’’’’’’’’’’’’N identify (ftn.no, 1, number params, ftn local opn, ftn found);’’’’’’’’’’’’’’ IF ftn found. THEN ftn.data := dtype (result)’’’’’’’’’’’. ELIF is basidarf in der Parameterliste nur einmal vorkommen. ’’’’’’’’’’’’’’’^ In der Definition dŪrfen auch Aufrufe von zuvor definierten anderen’’’’’’’’’’’’’^ "user functions" erscheinen, nicht aber die zu definierende Funktion’’’’’’’’’’’’. selbst (rekursive Definition). ’^ Die Funktionen sind allein durch ihre Namen gekennzeichnet. GeneŻ’’’’’’’’’’’’’’’^ rische Funktionen (gleicher Name, aber unterschiedliche Parameter)’’’’’’’’’’’’’’> kŚnnen somit nicht definiert werden. ’’’’’’’’’’’NHinweis : 1. Die Definition einer "user function" muū ihrem ersten Aufruf. immer textuell vorausgehen. ’N 2. "user functions" kŚnnen auch mehrfach definiert werden. Der’’N Compiler gibt in einem solchen Fall aber eine Warnung aus, da^ die neue Definition nur fŪr die textuell folgenden Aufrufe gŪltig ist. ’’’’’’.Beispiel : 10 LET pi = 3.1415927 ’’’’’’’’> 20 DEF FNkreisflaeche (radius) ’’’’’’’’’’’’’’’> #right#= 4.0 * pi * radius * radius ’’’’’’’’’’> 1010 PRINT FNkreisflaeche (1.75) ’’’’’’’’’’’’’. Ausgabe: 38.48451 ’’’’’’’’’’’Anweisung : DIM ’’’’’’’’’’’’’’.Zweck : Dimensionierung eines Feldes ’’NSyntax : DIM [, ] [...] ’’’’’’’’’’’’’NErklŁrung : : ( ’’’’’’’’’’’’’N #right#[, ] [...] ) ’’’’’’’’’’N : Name des Feldes (Syntax wie Name von einfachen’’> Variablen, vgl. 4.3.) ’’’’’’’’’’N Mit der DIM-Anweisung wird ein Feld dimensioniert, das heiūt dieN Anzahl seiner Dimensionen sowie der kleinste und grŚūte Index in^ jeder Dimension werden festgelegt und der Speicherplatz fŪr seine’’’’’’’’’’’’’’’> Elemente (siehe 4.3.) wird reserviert. ’’’’’’’’’^ Der kleinste Index in allen Dimensionen richtet sich nach der letzten’’’’’’’’’’’> vorausgegangenen OPTION BASE-Anweisung. ’’’’’’’’N Geht der Dimensionierung die Anweisung OPTION BASE 0 textuell’’’N voraus oder ist keine OPTION BASE-Anweisung vor der DimensioŻ’’’^ nierung vorhanden, so ist der kleinste Index in allen Dimensionen’’’’’’’’’’’’’’’ null. ’’’’’’’’’’N Wenn der Dimensionierung aber eine OPTION BASE 1-Anweisung’’’’’’^ vorausgeht, dann ist der kleinste Index in allen Dimensionen eins. ’’’’’’’’’’’’’^ Der grŚūte Feldindex wird fŪr jede Dimension durch die in Klammern’’’’’’’’’’’’’’N stehenden INT-Konstanten angegeben. Die Anzahl dieser INT-KonŻ’’N stanten bestimmt auch, wie viele Dimensionen das dimensionierte’ Feld hat. ’’’’’’^ Wird auf ein Element einer Feldvariablen zugegriffen, ohne daū die’’’’’’’’’’’’’’^ Feldvariable vorher dimensioniert wurde, dann wird das Feld automaŻ’’’’’’’’’’’’’N tisch dimensioniert, wobei die Anzahl der Dimensionen anhand der^ Anzahl der Indizes beim Aufruf ermittelt wird. Der grŚūte Feldindex’’’’’’’’’’’’’N wird bei dieser automatischen Dimensionierung in jeder Dimension^ auf zehn gesetzt. Der kleinste Index richtet sich nach den vorausgeŻ’’’’’’’’’’’’> gangenen OPTION BASE-Anweisungen (siehe oben). ’> FehlerfŁlle bei der Dimensionierung: ’’’’’’’’’’’> - "Das Feld ist bereits dimensioniert": ’’’’’’’’^ Das Feld wurde bereits explizit, oder automatisch durch den Zugriff’’’’’’’’’’’> auf ein Feldelement dimensioniert . ’’’’’’’’’’> - "Die Obergrenze muū >= 1 sein": ’’’’’’’’’’’’’’^ Es wurde versucht, 0 als grŚūten Index in einer Dimension festzuŻ’’’’’’’’’’’’’^ legen, obwohl mit OPTION BASE der kleinste Index auf eins festŻ’’’’’’’’’’’’’’’ gelegt wurde. > FehlerfŁlle beim Zugriff auf ein Feldelement: ’’^ - "Dimensioniert in ... Dimensionen, gefundene Anzahl Indizes ...": ’’’’’’’’’’’’^ Beim Zugriff wurde eine Anzahl von Indizes gefunden, die nicht mit’’’’’’’’’’’’N der Anzahl der Dimensionen Ūbereinstimmt (Fehler zur ŲberŻ’’’’. setzungszeit). ’’’’’’’’’’’’’’’^ - "Ueberlauf bei Subskription" oder "Unterlauf bei Subskription": ’’’’’’’’’’’’’’^ Der Index ist zu groū beziehungsweise zu klein (Fehler zur LaufŻ’’’’’’’’’’’’’’ zeit). ’’’’’’’>Beispiel : 10 DIM a% (20, 10), text$ (30, 40) ’’’’’’’’’’’. 20 DIM tabelle (5, 7, 25) ’’’’> 30 LET element = matrix (1, 7) ’’’’’’’’’’’’’’’^ Zeile 30 fŪhrt eine automatische Dimensionierung durch, die einem’’’’’’’’’’’’’’’. DIM matrix (10, 10) entspricht. Anweisungsbestandteil : ELSE ’Siehe IF-Anweisung ’’’’’’’’’’’Anweisung : END ’’’’’’’’’’’’’’NZweck : Beenden der ProgrammausfŪhrung eines BASIC-Programms ’’’’’’’’’’Syntax : END ’’’’’’’’’’’NErklŁrung : END beendet die ProgrammausfŪhrung des BASIC-Programms ohne’’’’’> eine Meldung (im Gegensatz zu STOP, s.d.). ’’’’’N END-Anweisungen dŪrfen im Programm an beliebiger Stelle stehen,’N und es darf auch mehr als eine END-Anweisung in einem’’’’’’’’’’’. Programm vorkommen. ’’’’’’’’’’’’N Der Compiler Ūbersetzt ein Programm auch nach Erreichen einer’’’. END-Anweisung weiter. ’’’’’’’’’’N Nach der letzten Anweisung eines Programms muū kein END stehen. .Beispiel : 2020 PRINT "Das war's !" ’’’’’. 2030 REM Hiernach hŚrt's auf ’ 2040 END ’’’’’Vergleiche : STOP-Anweisung ’Anweisungsbestandteil : EOF ’’Siehe INPUT-Anweisung ’’’’’’’’Operator : EQV ’’’’’’’’’’’’’’’.Siehe Kapitel 4.4. (Operatoren) ’’’’’’’’’’’’’’Funktion : ERL ’’’’’’’’’’’’’’’>Zweck : Ermittlung der letzten Fehlerzeile ’’’’’’’’’’’’Syntax : ERL ’’’’’’’’’’’^ErklŁrung : Die Nummer der Zeile, in der der letzte Fehler auftrat, wird als INT’’’’’’’’’’’’ geliefert. ’’’’’^Hinweis : ERL ist realisiert durch Aufruf der Prozedur 'errorline' des BetriebsŻ’’’’’’’’’’ systems. ’’’’’’’N Da die Fehlerbehandlungs-Anweisung ON ERROR nicht zur VerfŪŻ’’’’N gung steht, ist diese Funktion nicht im Ūblichen BASIC-Sinne’’’’ brauchbar. ’’’’’>Vergleiche : ERM$, ERR-Funktionen, ERROR-Anweisung ’’’’’’’’’’Funktion : ERM$ ’’’’’’’’’’’’’’>Zweck : Ermittlung der letzten Fehlermeldung ’’’’’’’’’’Syntax : ERM$ ’’’’’’’’’’NErklŁrung : Die letzte Fehlermeldung wird als TEXT geliefert. ’’’’’’’’’’’’’’NHinweis : ERM$ ist realisiert durch Aufruf der Prozedur 'errormessage' des. Betriebssystems. ’’’’’’’’’’’’’’’N Da die Fehlerbehandlungs-Anweisung ON ERROR nicht zur VerfŪŻ’’’’N gung steht, ist diese Funktion nicht im Ūblichen BASIC-Sinne’’’’ brauchbar. ’’’’’>Vergleiche : ERL-, ERR-Funktionen, ERROR-Anweisung ’’’’’’’’’’Funktion : ERR ’’’’’’’’’’’’’’’>Zweck : Ermittlung des letzten Fehlercodes ’’’’’’’’’’’’Syntax : ERR ’’’’’’’’’’’^ErklŁrung : Der Code des letzten aufgetretenen Fehlers wird als INT geliefert. ’’’’’’’’’’’’’^Hinweis : ERR ist realisiert durch Aufruf der Prozedur 'errorcode' des BetriebsŻ’’’’’’’’’’ c function (ftn.no)’’’’’’’’’’’’’^ THEN basic error (98, ftn.name, "Argument(e) angegeben: " + param list (1, number params))N ELSE basic error (22, ftn.name, "Anweisung(sbestandteil) gefunden")’’’’’’’END PROC basic function;’’’’’’NPROC user function (SYMBOL VAR result): (* DEF/mo *)’’’’’’ check if function defined;’’ get arguments if expected;’’ gosub (user function label); copy result.check if function defined:’’’’. TEXT CONST scope :: name of (symb.no) + "?"; IF NOT known (symb.no)’’’’’’. THEN basic error (18, symb.name, "")’’’’’’ ELIF scanner scope = scope’’. THEN basic error (85, symb.name, "")’’’’’’get arguments if expected:’’’’ INT VAR param counter;’’’’’’ TEXT VAR dim text;’’’’’’’’’’ result := symb;’’’’’’’’’’’’’N remember (symb.no, symb.type, result.adr, result.data, dim text);’’’’’’’’’’’> INT VAR number of params :: LENGTH dim text DIV 2 - 1;’’’’’’ next symbol; IF number of params > 0’’’’’ THEN get all arguments’’’’> ELIF symb.no = open bracket AND symb.type = del’’’’’’’’’’’’’> THEN basic error (5, symb.name, "Kein Argument erwartet")’get all arguments:’’’’’’’’’’’’> IF symb.no <> open bracket OR symb.type <> del’’’’’’’’’’’’’’^ THEN basic error (5, NAME symb, text (number of params) + " Argument(e) erwartet")’’’’’’’’ next symbol;> FOR param counter FROM 2 UPTO number of params REP’’’’’’’’’’ get one argument;’’’’’’’’’ skip comma;’’’’’’’’’’’’’’’ get one argument;’’’’’’’’’’’ skip close bracket.’’’’’’’’’get one argument:’’’’’’’’’’’’’ SYMBOL VAR ftn param;’’’’’’’. ftn param.no := dim text ISUB param counter;^ remember (ftn param.no, ftn param.type, ftn param.adr, ftn param.data, ftn param.name);’’’’’ IF ftn param.type <> var’’’’^ THEN basic error (intern error, name of (ftn param.no), "Parametereintrag fehlerhaft")’’’’ SYMBOL VAR expr res;’’’’’’’’. get expr (expr res, ftn param.data);’’’’’’’’> apply move (ftn param.adr, expr res.adr, ftn param.data).’’’> IF symb.no = close bracket AND symb.type = del’’’’’’’’’’’’’’^ THEN basic error (5, symb.name, text (number of params) + " Argumente erwartet")’’’’’’’’’’. ELIF symb.no <> comma OR symb.type <> del’’’N THEN basic error (2, NAME symb, " , in Argumentenliste erwartet")’’’’’’’’ next symbol.skip close bracket:’’’’’’’’’’’. IF symb.no = comma AND symb.type = del’’’’’’n THEN basic error (5, symb.name, "Nur " + text (number of params) + " Argument(e) erwartet")’’’’’’’’’’’’’’’> ELIF symb.no <> close bracket OR symb.type <> del’’’’’’’’’’’N THEN basic error (2, NAME symb, " ) nach Argumentenliste erwartet")’’’’’’ next symbol.user function label:’’’’’’’’’’. label list [dim text ISUB 1].’’’’’’’’’’’’’’’N apply move (next local adr (result.data), result.adr, result.data);’’’’’’’’’ result.adr := local adr.’’’’END PROC user function;’’’’’’’NPROC apply move (ADDRESS CONST dest adr, source adr, DTYPE CONST datype):’’’’’. parameter (1, datype, var, dest adr);’’’’’’’. parameter (2, datype, const, source adr);’’’. parameter (3, void type, const, nil adr);’’’ IF datype = int type’’’’’’’’ THEN apply (1, 2, int move)’ ELIF datype = real type’’’’’ THEN apply (1, 2, real move) ELIF datype = text type’’’’’ THEN apply (1, 2, text move)N ELSE basic error (2, "=", "Unbekannter Datentyp: " + dump (datype)) FI .’’’END PROC apply move;’’’’’’’’’’NPROC convert (SYMBOL VAR symbol, DTYPE CONST to data): (* F3/rr *)’’ IF to data = from data’’’’ ELIF symbol.type = const’’’’. THEN declare const (symbol, to data)’’’’’’’’ ELIF to data = int type ’’’’ THEN make int’’’’’’’’’’’’’’’ ELIF to data = real type’’’’ THEN make real’’’’’’’’’’’’’’n ELSE basic error (13, NAME symbol, dump (to data) + " erwartet, " + dump (from data) + " gefunden") FI .’’’from data : symbol.data .’’’’ IF symbol.data = int type’> THEN parameter (1, symbol.data, const, symbol.adr);’’’’’’’’’N parameter (2, real type, var, next local adr (real type));’’’’’’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’. apply (1, 1, int to real);’’’’’’’’’’’’’. symbol.adr := local adr;’’’’’’’’’’’’’’. symbol.data := real type’’’’’’’’’’’’’’’n ELSE basic error (13, NAME symbol, dump (to data) + " erwartet, " + dump (from data) + " gefunden") FI .’’’ IF symbol.data = real type> THEN parameter (1, symbol.data, const, symbol.adr);’’’’’’’’’N parameter (2, int type, var, next local adr (int type));’’’’’’’’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’. apply (1, 1, real to int);’’’’’’’’’’’’’. symbol.adr := local adr;’’’’’’’’’’’’’’ symbol.data := int typen ELSE basic error (13, NAME symbol, dump (to data) + " erwartet, " + dump (from data) + " gefunden") FI .’’’END PROC convert;’’’’’’’’’’’’’NPROC declare const (SYMBOL VAR symbol constant, DTYPE CONST data):’’’’’’’’’’’’ convert symb value;’’’’’’’’’ IF new constant’’’’’’’’’’’’’ THEN declare this constant’’ ELSE get table entry FI .’’convert symb value:’’’’’’’’’’’. IF data = symbol constant.data’’’’’’’’’’’’’’. THEN LEAVE convert symb value’’’’’’’’’’’’’’’> ELIF data = int type AND symbol constant.data = real type’’’N THEN symbol constant.name := mki (symbol constant.name RSUB 1);’’’’’’’’’’’’’> ELIF data = real type AND symbol constant.data = int type’’’N THEN symbol constant.name := mkd (symbol constant.name ISUB 1);’’’’’’’’’’’’’> ELIF data = text type AND symbol constant.data = int type’’’N THEN symbol constant.name := text (symbol constant.name ISUB 1)’’’’’’’’’’’’’> ELIF data = text type AND symbol constant.data = real type’’N THEN symbol constant.name := text (symbol constant.name RSUB 1)’’’’’’’’’’’’’N ELSE basic error (13, NAME symbol constant, dump (data) + " erwartet, "’’’’’N + dump (symbol constant.data) + " gefunden") FI;’’’’. symbol constant.data := data .’’’’’’’’’’’’’N(* Konstanten werden wie folgt abgelegt: *)’N(* INT: @ßHL *)’N(* REAL: @ßMMMMMMME *)’N(* TEXT: @ßText *)’> put name ("@ " + symbol constant.name, symbol constant.no);’. NOT known (symbol constant.no) .’’’’’’’’’’’declare this constant:’’’’’’’’ IF data = int type’’’’’’’’’’N THEN allocate denoter (symbol constant.adr, symbol constant.name ISUB 1)’’’’ ELIF data = real type’’’’’’’N THEN allocate denoter (symbol constant.adr, symbol constant.name RSUB 1)’’’’ ELIF data = text type’’’’’’’N THEN allocate denoter (symbol constant.adr, symbol constant.name) FI;’’’’’’’N recognize (symbol constant.no, const, symbol constant.adr, data, nil) .’’’’get table entry:’’’’’’’’’’’’’’ INT VAR table type;’’’’’’’’’ TEXT VAR table dim;’’’’’’’’’n remember (symbol constant.no, table type, symbol constant.adr, symbol constant.data, table dim);’’’’’’’’’’’’ IF table dim <> nil’’’’’’’’’n THEN basic error (intern error, NAME symbol constant, "Dimension in Tabelle ungleich niltext")’’’’’’’’’’’’’. ELIF NOT (symbol constant.data = data)’’’’’’n THEN basic error (intern error, NAME symbol constant, "Falscher DTYPE in Tabelle, erw: " + dump (data)’’’’’’N + ", gef: " + dump (symbol constant.data)) FI .’’’’’’END PROC declare const;’’’’’’’^PROC declare var (SYMBOL VAR symbol var, TEXT CONST dim): (* F4/rr *)’’’’’’’’’’’ allocate variable;’’’’’’’’’’^ recognize (ssystems. ’’’’’’’N Da die Fehlerbehandlungs-Anweisung ON ERROR nicht zur VerfŪŻ’’’’N gung steht, ist diese Funktion nicht im Ūblichen BASIC-Sinne’’’’ brauchbar. ’’’’’>Vergleiche : ERL-, ERM$-Funktionen, ERROR-Anweisung ’’’’’’’’’Anweisung : ERROR ’’’’’’’’’’’’NZweck : AuslŚsen eines Fehlers mit bestimmtem Fehlercode ’’’’’’’’’’’’’’.Syntax : ERROR ’’’’’’’’’’NErklŁrung : Es wird ein Fehler mit dem durch den INT-Ausdruck bestimmten’’’’. Fehlercode ausgelŚst. ’’’’’’’’’’^Hinweis : ERROR ist realisiert durch Aufruf der Prozedur 'errorstop' des BeŻ’’’’’’’’’’’’’’ triebssystems. ’N Da die Fehlerbehandlungs-Anweisung ON ERROR nicht zur VerfŪŻ’’’’N gung steht, ist diese Anweisung nicht im Ūblichen BASIC-Sinne’’’ brauchbar. ’’’’’.Vergleiche : ERL-, ERM$-, ERR-Funktionen ’’’’Funktion : EXP ’’’’’’’’’’’’’’’>Zweck : Berechnung einer Potenz der Eulerschen Zahl ’’’.Syntax : EXP () ’’’’’’’’’^ErklŁrung : Die Funktion liefert e (die Basis des natŪrlichen Logarithmus) potenŻ’’’’’’’’’’’> ziert mit dem Wert des REAL-Ausdrucks. ’’’’’’’’’N Bei zu groūen Werten kommt es zum Fehler 'REAL-Ueberlauf'. ’’’’’N Das Ergebnis der Funktion wird als REAL geliefert. ’’’’’’’’’’’’’.Beispiel : 10 PRINT EXP (10.0) ’’’’’’’’’’. Ausgabe: 22026.47 ’’’’’’’’’’’>Vergleiche : LOG-Funktion (KomplementŁrfunktion) ’’’’’’’’’’’’Funktion : FIX ’’’’’’’’’’’’’’’>Zweck : Ermittlung der Vorkommastellen einer REAL-Zahl .Syntax : FIX () ’’’’’’’’’^ErklŁrung : Die Funktion schneidet die Nachkommastellen ab und liefert nur die’’’’’’’’’’’’’’> Vorkommastellen des REAL-Ausdrucks. ’’’’’’’’’’’’N Die Vorkommastellen werden ebenfalls als REALs geliefert. ’’’’’’.Beispiel : 10 zahl = 1.2345E2 ’’’’’’’’’’’. 20 PRINT FIX (zahl) ’’’’’’’’’’ Ausgabe: 123 .Vergleiche : CINT-, INT-Funktionen ’’’’’’’’’’Anweisung : FOR ’’’’’’’’’’’’’’.Zweck : Beginn einer ZŁhlschleife ’’’’’NSyntax : FOR = #ib(3)#TO#ie(3)# > #right#[ #ib(3)#STEP#ie(3)# ] ’’’. ’’’’’’’’’’’’’’’>ErklŁrung : : INT- oder REAL-Variable ’’’’’’> : numerischer Ausdruck ’’’’’’’’’> : numerischer Ausdruck ’’’’’’’’’> : numerischer Ausdruck ’’’’’’’’’> : Folge von Programmzeilen ’’’’’N Die FOR-Anweisung erlaubt die komfortable Programmierung von’’’’N automatischen ZŁhlschleifen (sogenannten FOR-NEXT-Schleifen).’’’N Gelangt das Programm wŁhrend der AusfŪhrung an eine FOR-AnŻ’’’’’N weisung, so werden zunŁchst die AusdrŪcke ,’’’’’’’’N sowie gegebenenfalls ausgewertet. Der’’> Anfangswert wird dann der Variablen zugewiesen. ^ Wenn der Wert der Variablen grŚūer ist als der Endwert (bzw. kleiner’’’’’’’’’’’’^ als der Endwert bei negativer Schrittweite), dann wird das Programm’’’’’’’’’’’’’N mit der nach dem korrespondierenden NEXT (s.d.) folgenden’’’’’’’. Anweisung fortgesetzt. ’’’’’’’’’^ Ist dies jedoch nicht der Fall, werden die Anweisungen des ausgefŪhrt. Erreicht das Programm nun die zum FOR’’’’N gehŚrige NEXT-Anweisung (gleiche Variable), so wird der Wert der^ Variablen um die Schrittweite erhŚht beziehungsweise erniedrigt (je’’’’’’’’’’’’’^ nach Vorzeichen), und wieder an den Anfang der Schleife verzweigt.’’’’’’’’’’’’’’^ Hier findet dann wieder der Vergleich des Variableninhalts mit dem’’’’’’’’’’’’’’. Endwert statt (siehe oben). ’’’’^ Die Laufvariable darf innerhalb der Schleife in AusdrŪcken vorkomŻ’’’’’’’’’’’’’’^ men. Sie darf sogar verŁndert werden (, was aber zu unŪbersichtliŻ’’’’’’’’’’’’’’N chen Effekten fŪhren kann). Auch eine Schachtelung mehrerer’’’’’^ Schleifen mit der gleichen Laufvariable ist syntaktisch mŚglich, sollte’’’’’’’’’N aber #on("iunter allen UmstŁnden#off("i vermieden werden. ’’’’’’N FOR-NEXT-Schleifen dŪrfen (auch mit WHILE-WEND-Schleifen,’’’’’’’N s.d.) geschachtelt werden. Ųberschneidungen von FOR-NEXT-’’’’’’’N Schleifen und WHILE-WEND-Schleifen sind aber nicht zulŁssig. ’’’.Beispiel : 10 DIM name$ (5) ’’’’’’’’’’’’’. 20 FOR i = 1 TO 5 ’’’’’’’’’’’’> 30 PRINT "Bitte geben Sie den " + STR$ (i) ’’’. #right#+ ". Namen ein:"; ’’’’’. 40 INPUT name$ (i) ’’’’’’’’’’’ 50 NEXT i ’’’’N Es werden die fŪnf Elemente des Feldes 'name$' eingelesen. ’’’’’.Vergleiche : NEXT-, WHILE-, IF-Anweisungen ’’Funktion : FRE ’’’’’’’’’’’’’’’>Zweck : Ermittlung des verfŪgbaren Speicherplatzes ’’’’.Syntax : FRE () ’’’’’’’’’. FRE () ’’’’’’’’’’NErklŁrung : Die Funktion liefert die Anzahl der freien Bytes. ’’’’’’’’’’’’’’N FRE veranlaūt auūerdem ein 'collect heap garbage' (EUMEL-’’’’’’’. Systemprozedur). ’’’’’’’’’’’’’’’N Das Ergebnis der Funktion wird als REAL geliefert. ’’’’’’’’’’’’’N Der Argument-Ausdruck ist ein Dummy-Argument (hat keinen’’’’’’’’> Einfluū auf den gelieferten Wert). ’’’’’’’’’’’’’NHinweis : Bei der EUMEL M+ Version wird ein korrektes Ergebnis geliefert’’. (vgl.'storage info'). ’’’’’’’’’’.Beispiel : 10 PRINT FRE (0) ’’’’’’’’’’’’’. Ausgabe (z.B.): 5324800 ’’’’’Anweisungsbestandteil : GO ’’’Siehe GOSUB und GOTO ’’’’’’’’’Anweisung : GOSUB ’’’’’’’’’’’’.Zweck : Unterprogramm-Aufruf ’’’’’’’’’’.Syntax : GOSUB ’’’’’’’’’’.ErklŁrung : : INT-Konstante ’’N Statt GOSUB darf auch GO #ib(3)#SUB#ie(3)# geschrieben werden. ’N Die ProgrammausfŪhrung wird in der Zeile mit der angegebenen’’’’N Zeilennummer fortgesetzt. Die Zeile mit der Zeilennummer muū im’. Programm existieren. ’’’’’’’’’’’N Wird im weiteren Programmablauf die Anweisung RETURN gefunden,’’N so wird hinter dem letzten abgearbeiteten GOSUB die ProgrammŻ’’’. ausfŪhrung fortgesetzt. ’’’’’’’’^ GOSUB dient zum Aufruf von #on("iUnterprogrammen#off("i, die von mehr als’’’’’’’N einer Stelle im Programm (und auch in anderen Unterprogrammen)’’. aufgerufen werden kŚnnen. ’’’’’’^Hinweis : Es wird empfohlen, Unterprogramme im Programm deutlich als solche’’’’’’’’’’’’’’’N zu kennzeichnen und (durch END, STOP oder GOTO) sicherzustelŻ’’’^ len, daū nur mit GOSUB zu ihnen verzweigt wird, da es sonst leicht’’’’’’’’’’’’’’N zu der (Laufzeit-) Fehlermeldung "RETURN ohne GOSUB" kommen’’’’’ kann. ’’’’’’’’’’>Beispiel : 140 GOSUB 10000 'Zeige Uhrzeit ’’’’’’’’’’’’’’ . ’’’’’’’’’’’’ . ’’’’’’’’’’’’> 370 GOSUB 10000 'Zeige Uhrzeit ’’’’’’’’’’’’’’ 9990 END ’’’’’> 10000 REM Unterprogramm Zeige Uhrzeit ’’’’’’’’> ymbol var.no, symbol var.type, symbol var.adr, symbol var.data, dim) .’’’’’’’’’’allocate variable :’’’’’’’’’’’> symbol var.adr := next local adr (symbol var.data);’’’’’’’’’ IF dim <> nil’’’’’’’’’’’’’’’ THEN INT VAR index;’’’’’’ ADDRESS VAR dummy;’’. FOR index FROM 2 UPTO no of elementsN REP dummy := next local adr (symbol var.data) PER;’’’’’’’’’’’’’’’no of elements:’’’’’’’’’’’’’’’. (dim ISUB (LENGTH dim DIV 2)) .’’’’’’’’’’’’’END PROC declare var;’’’’’’’’’NPROC parameter (INT CONST p, DTYPE CONST d type, INT CONST value):’’’’’’’’’’’’ declare (p, d type);’’’’’’’’ declare (p, denoter);’’’’’’’ define (p, value);’’’’’’’’’’END PROC parameter;’’’’’’’’’’’>PROC apply (INT CONST first, number params, TEXT CONST name):> identify (name, first, number params, opn, found);’’’’’’’’’’ IF NOT found~ THEN errorstop (1051, "PROC " + name + ", Parameter: " + param list (first, number params) + ", nicht gefunden!") FI;’’’’’’’. apply (first, number params, opn)’’’’’’’’’’’END PROC apply;’’’’’’’’’’’’’’’NPROC clear local stack : (* F4/rr *)’’ define local variables;’’’’’ clear index;. define (rep); index incr one;’’’’’’’’’’’’’’’N if local storage less or equal index then goto end;’’’’’’’’’’’. get cell address; ’’’’’’’’’’’’ clear cell;’’’ apply (rep);’’ define (end);’’’’’’’’’’’’’’’ clear cell address;’’’’’’’’’ . define local variables :’’ LABEL VAR rep, end;’’’’’ ADDRESS VAR index;’’’’’’. declare (rep); declare (end);’’’’’’’’’’’> allocate variable (index, type size (int type));’’’’’’’’ . clear index :’’’’’’’’’’’’’. parameter (1, int type, var, index);’’’’ apply (1, 1, clear);’’’’ . index incr one :’’’’’’’’’’. parameter (1, int type, var, index);’’’’ apply (1, 1, incone);’’’> . if local storage less or equal index then goto end :’’’’’’> parameter (1, int type, const, loc storage);’’’’’’’’’’’’. parameter (2, int type, const, index);’’ apply (1, 2, lsequ);’’’’ apply (end, TRUE);’’’’’’ . get cell address :’’’’’’’’. parameter (1, int type, const, LOC 2);’’. parameter (2, int type, const, index);’’. parameter (3, int type, 1);’’’’’’’’’’’’’. parameter (4, int type, 16000);’’’’’’’’’. parameter (5, int type, const, LOC 0);’’ apply (1, 5, subscript); . clear cell :’’’’’’’’’’’’’’. parameter (1, int type, var, REF LOC 0); apply (1, 1, clear);’’’’ . clear cell address :’’’’’’. parameter (1, int type, var, LOC 0);’’’’ apply (1, 1, clear);’’’’. parameter (1, int type, var, LOC 1);’’’’ apply (1, 1, clear);’’’’END PROC clear local stack;’’’N(* M a i n *)’N(* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ *)’N(* C o m p i l e r *)’N(* ***** G l o b a l e V a r i a b l en ***** *)’NINT VAR end symbol :: 0, error no :: 0, act stat no :: 0, array base :: 0;’’’.BOOL VAR basic trace, was warning;’’’’’’’’’’’’.ADDRESS VAR data pos, data text;’’’’’’’’’’’’’’N(* Globale Operationen *)’>OPN VAR basic init, basic frame, basic module, ret, equal op,’> int minus, real minus, int not opn, real not opn,’’’’’ trace op, ln op, push,. int incr, real incr, int add,’’’’’’’’’. int move, real move, text move, test,’. real to int, int to real, subscript,’’N clear, incone, lsequ, (* F4/rr *)’’ basic out text;’’’’’’’N(* Parameter VOID *)’ init ("RTN", 1, 0, ret);’’’’N(* Parameter INT *)’ declare (1, int type);’’’’’’> init ("intnot", 1, 1, int not opn); (* mo *)’’’’’’’’ init ("PP", 1, 1, push);’’’ init ("LN", 1, 1, ln op);’’’. init ("real", 1, 1, int to real);’’’’’’’’’’’ init ("TEST", 1, 1, test);’’. init ("CLEAR", 1, 1, clear); ’’’’’’’’’’’’’’’. init ("INCONE", 1, 1, incone); ’’’’’’’’’’’’’. init ("trace", 1, 1, trace op);’’’’’’’’’’’’’N(* Parameter INT INT *)’ declare (2, int type);’’’’’’. init ("COMPLINT", 1, 2, int minus);’’’’’’’’’. init ("MOVE", 1, 2, int move); ’’’’’’’’’’’’’. init ("INC", 1, 2, int incr);’’’’’’’’’’’’’’’. init ("EQU", 1, 2, equal op);’’’’’’’’’’’’’’’. init ("LSEQU", 1, 2, lsequ); ’’’’’’’’’’’’’’’N(* Parameter INT INT INT *)’ declare (3, int type);’’’’’’ init ("ADD", 1, 3, int add);N(* Paramter REAL *)’ declare (1, real type);’’’’’> init ("realnot", 1, 1, real not opn); (* mo *)’’’’’’’’. init ("cint", 1, 1, real to int);’’’’’’’’’’’N(* Parameter REAL REAL *)’ declare (2, real type);’’’’’. init ("COMPLREAL", 1, 2, real minus);’’’’’’’. init ("FMOVE", 1, 2, real move);’’’’’’’’’’’’. init ("INCR", 1, 2, real incr);’’’’’’’’’’’’’N(* Parameter TEXT *)’ declare (1, text type);’’’’’. init ("basicout", 1, 1, basic out text);’’’’N(* Paramter TEXT TEXT *)’ declare (2, text type);’’’’’. init ("TMOVE", 1, 2, text move);’’’’’’’’’’’’N(* Parameter ADDRESS INT DENOTER DENOTER ADDRESS *)’ declare (3, denoter);’’’’’’’ declare (4, denoter);’’’’’’’. init ("SUBSCRIPT", 1, 5, subscript);’’’’’’’’^PROC init (TEXT CONST name, INT CONST local from, number params, OPN VAR local opn):’’’’’’’’’’N identify (name, local from, number params, local opn, found);’’’’’’’’’’’’’’’ IF NOT foundn THEN errorstop (1051, "PROC init (TC, IC, IC, OPN VAR): OPN fŪr """ + name + """ nicht gefunden") FI’’’’’’’’END PROC init;N(* Runtime Konstanten *)’> ADDRESS VAR true value, false value, niltext value,’’’’’’’’’> zero value, one value, two value, three value,’’> comma value, int one value, real one value,’’’’’N loc storage; (* F4/rr *)’’’’’’’N(* +++++ Globale Variablen +++++ *)’ BOOL VAR proc found;’’’’’’’’. INT VAR deftype, field elems, i, params;’’’’ ROW 100 SYMBOL VAR param;’’’N SYMBOL VAR base size, begin range, end range, expr result, field, filename,’> from, len, image, label, old name, new name,’’’’’> question, size, tab pos, var result;’’’’’’’’’’’’’. TEXT VAR constant, field size, proc name;’’’N(* Label-Verwaltung *)’LET label list size = 4100;’’’>BOUND ROW label list size LABEL VAR label list;’’’’’’’’’’’’’’’DATASPACE VAR label ds;’’’’’’’.INITFLAG VAR label init :: FALSE;’’’’’’’’’’’’’INT VAR last label no;’’’’’’’’N(* ***** I n t e r f a c e P r o z d u r e n ***** *)’ basic (last param)’’’’’’’’’’END PROC basic;’’’’’’’’’’’’’’’.PROC basic (TEXT CONST basic file name):’’’’’’ basic (basic file name, nil)END PROC basic;’’’’’’’’’’’’’’’>PROC basic (TEXT CONST basic file name, prog name):’’’’’’’’’’’. IF NOT exists (basic file name)’’’’’’’’’’’’’N THEN errorstop ("""" + bas 10010 PRINT "Es ist " + TIME$ + " Uhr" ’’’’’’’ 10020 RETURN ’.Vergleiche : RETURN-, ON-, GOTO- Anweisungen Anweisung : GOTO ’’’’’’’’’’’’’>Zweck : Sprung zu einer angegebenen Zeile ’’’’’’’’’’’’’.Syntax : GOTO ’’’’’’’’’’’.ErklŁrung : : INT-Konstante ’’N Statt GOTO darf auch GO #ib(3)#TO#ie(3)# geschrieben werden. ’’’N Die ProgrammausfŪhrung wird in der Zeile mit der angegebenen’’’’N Zeilennummer fortgesetzt. Die Zeile mit der Zeilennummer muū im’. Programm existieren. ’’’’’’’’’’’>Beispiel : 10 INPUT "Monat (1-12)", monat% ’’’’’’’’’’’’’’> 20 IF monat% < 1 OR monat% > 12 THEN GOTO 10 ’.Vergleiche : ON-, IF-, GOSUB- Anweisungen ’’’Funktion : HEX$ ’’’’’’’’’’’’’’NZweck : Erzeugung der hexadezimalen Darstellung einer Zahl als Text ’’’.Syntax : HEX$ () ’’’’’’’’’^ErklŁrung : Die Funktion liefert die hexadezimale (Zweierkomplement-) DarstelŻ’’’’’’’’’’’’’’N lung der Zahl, die sich aus dem INT-Ausdruck ergibt. ’’’’’’’’’’’.Beispiel : 10 PRINT HEX$ (10000) ’’’’’’’’. Ausgabe: 2710 ’’’’’’’’’’’’’’’Vergleiche : OCT$-Funktion ’’Anweisung : IF ’’’’’’’’’’’’’’’>Zweck : Sprung zu einer angegebenen Zeile ’’’’’’’’’’’’’Syntax : IF N #right#[,] #ib(3)#THEN#ie(3)# | ’’’N #right#[ [,] #ib(3)#ELSE#ie(3)# |] > IF [,] GOTO ’’’’’’’’’N #right#[ [,] ELSE |] ’’’’’’’’’’’’’’>ErklŁrung : : numerischer Ausdruck ’’’’’’’’’’N : Eine oder mehrere BASIC-Anweisungen, wobei’’’’’N mehrere wie gewohnt durch ':' zu trennen sind ’. : INT-Konstante ’> Statt GOTO darf auch GO TO geschrieben werden. ’N Anhand der Bedingung wird entschieden, ob die Abarbeitung des’’’N Programms mit dem THEN- oder ELSE-Zweig fortgesetzt werden’’’’’’N soll. Mit dem THEN-Zweig wird das Programm fortgesetzt, wenn die^ Bedingung erfŪllt ist (, d.h. der numerische Ausdruck ungleich null’’’’’’’’’’’’’^ ist). Im anderen Fall (Bedingung nicht erfŪllt, numerischer Ausdruck’’’’’’’’’’’’^ gleich null) wird das Programm mit dem ELSE-Teil fortgesetzt. Ist’’’’’’’’’’’’’’’N kein ELSE-Teil angegeben, so wird die Abarbeitung des’’’’’’’’’’’^ Programmes in der folgenden #on("iZeile#off("i (nicht nach ':') fortgesetzt. ’’’N Sind statt Anweisungen Zeilennummern nach THEN oder ELSE’’’’’’’’^ angegeben, so entspricht dies einem GOTO (s.d.) zu diesen ZeilenŻ’’’’’’’’’’’’’’’ nummern. ’’’’’’’^Hinweis : Auch eine IF-Anweisung muū in #on("ieiner#off("i Programmzeile stehen. ’’’’’’’’’>Beispiel : 10 IF a >= b THEN IF a > b THEN ’’’’’’’’’’’’’’N #right#PRINT "a grŚūer b" ELSE PRINT "a gleich b" ’’’’’’’’’’’’> #right#ELSE PRINT "a kleiner b" ’’’’’’’’’’’’’’N Das Beispiel zeigt, daū bei geschachtelten IF-Anweisungen die’’’N ELSE-Teile immer auf das letzte vorhergehende IF bezogen werden,> fŪr das noch kein ELSE-Teil gefunden wurde. ’’’’.Vergleiche : GOTO-, GOSUB-, ON-Anweisungen ’’Operator : IMP ’’’’’’’’’’’’’’’.Siehe Kapitel 4.4. (Operatoren) ’’’’’’’’’’’’’’Funktion : INKEY$ ’’’’’’’’’’’’>Zweck : Holen eines Zeichens von der Tastatur ’’’’’’’’’Syntax : INKEY$ ’’’’’’’’^ErklŁrung : Die Funktion liefert ein Textzeichen aus dem Tastaturzeichenpuffer.’’’’’’’’’’’’’^ Wurde kein Zeichen eingegeben, so wird ein Leertext (niltext) gelieŻ’’’’’’’’’’’’ fert. ’’’’’’’’’’N Die gelieferten Zeichen erscheinen nicht auf dem Bildschirm. ’’’.Beispiel : 10 REM Schreibmaschine ’’’’’’’. 20 LET a$ = INKEY$ ’’’’’’’’’’’. 30 IF ASC (a$) = 27 THEN STOP  40 PRINT a$; ’ 50 GOTO 20 ’’’N Die eingegebenen Zeichen werden ausgegeben. Abbruch mit ESC. ’’’>Vergleiche : INPUT$-Funktion, INPUT-Anweisung ’’’’’’’’’’’’’’’Anweisung : INPUT ’’’’’’’’’’’’>Zweck : Einlesen von Daten von der Tastatur ’’’’’’’’’’’NSyntax : INPUT [;] [ ,|; ][ #ib(3)#EOF#ie(3)#’’’’’’ ] ’’’’’’> #right# [, ] [...] ’’’’’’’>ErklŁrung : : TEXT-Konstante ’’’’’’’’’> : INT-Konstante ’’’’’’’’’’N : Variable, der der eingelesene Werte’’’’’> zugewiesen werden soll ’N Mit der INPUT-Anweisung werden Daten zur Laufzeit des’’’’’’’’’’’N Programms von der Tastatur in Variablen eingelesen. ’’’’’’’’’’’’N Folgt dem INPUT-Statement ein Semikolon, so wird nach’’’’’’’’’’’N Beendigung der Eingabe kein Zeilenwechsel vorgenommen. ’’’’’’’’’N Fehlt die , so wird "? " als EingabeŻ’’’’’’. aufforderung ausgegeben. ’’’’’’’N Folgt der ein Semikolon, so wird "? " noch zusŁtzlich ausgeŻ’’’N geben. Bei einem Komma wird dieser Standard-Prompt unterŻ’’’’’’’ drŪckt. ’’’’’’’’N Folgt der die Zeichenfolge 'EOF', so wird’N bei Eingabe eines Leertextes zu der nach 'EOF' angegebenen’’’’’’. Zeilennumer verzweigt. ’’’’’’’’’N Sollen mehrere Variablen eingelesen werden, so muū der Benutzer’^ auch entsprechend viele Daten (durch Kommata getrennt) zur VerfŪŻ’’’’’’’’’’’’’’’ gung stellen. ’’^ Wird nichts eingegeben beziehungsweise nur die richtige Anzahl von’’’’’’’’’’’’’’^ Kommata, so wird den entsprechenden Variablen 0, 0.0 bzw. 'niltext'’’’’’’’’’’’’’ zugewiesen. ’’’’N Bei der Eingabe fŪr eine Textvariable kŚnnen alle Zeichen (auūerN Steuerzeichen) eingegeben werden. Beginnt eine Eingabe mit dem’’N AnfŪhrungszeichen oder endet sie damit, dann muū sie auch damit’N enden beziehungsweise beginnen. Diese beiden AnfŪhrungszeichen’’N werden nicht mit zugewiesen. Innerhalb dieser Texteingabe dŪrfen> AnfŪhrungszeichen stehen, aber keine Kommata. ’’N Eingaben fŪr numerische Variablen mŪssen in der fŪr Konstanten’’^ Ūblichen Schreibweise erfolgen. Vorzeichen sind allerdings zusŁtzlich’’’’’’’’’’’ erlaubt. ’’’’’’’N Vor Zuweisung der eingegebenen Werte an die Variablen werden’’’’> Anzahl und Typ(en) und die Anzahl ŪberprŪft. ’’> Dabei kŚnnen folgende FehlerfŁlle auftreten: ’’’. - "falscher Typ": ’’’’’’’’’’’’’’^ Es wurde ein Text statt einer Zahl eingegeben, es wurde ein REAL’’’’’’’’’’’’’’^ statt eines INTs eingegeben oder eine Texteingabe ist fehlerhaft. ’’’’’’’’’’’’. - "zu wenig Daten" ’’’’’’’’’’’’’. - "zu viele Daten" ’’’’’’’’’’’’’ - "Ųberlauf": ’’N Es wurde eine zu groūe (oder zu kleine) Zahl eingegeben. ’’’’’N Kommt es zu einem Fehler, dann wird nach der Meldung "?Eingabe’’N wiederholen ! ()" die Eingabe zum Editierenic file name + """ gibt es nicht")’’’’’’’’’’’’’’^ ELSE FILE VAR basic file :: sequential file (modify, basic file name); (* F5/rr *)’’’’’’’’> headline (basic file, basic file name);’’’’’’’’’’’’’’. last param (basic file name);’’’’’’’’. basic (basic file, prog name)’’’’’’’’END PROC basic;’’’’’’’’’’’’’’’>PROC basic (FILE VAR source file, TEXT CONST prog name):’’’’’’N IF prog name <> nil CAND prog name is not a tag (* F5/rr *)’’N THEN errorstop ("unzulŁssiger Programmname : """ + prog name + """");’’’’N modify (source file); (* F5/rr *)’’ disable stop;’’’’’’’’’’’’’’’ init label table;’’’’’’’’’’’ store status;’’’’’’’’’’’’’’’. coder on (data allocation by coder); ’’’’’’’. compile (source file, progname);’’’’’’’’’’’’ restore status;’’’’’’’’’’’’’ start basic prog . ’’’’’’’’Nprog name is not a tag : (* F5/rr *)’’ LET tag = 1; INT VAR symbol type;’’’’’’’ TEXT VAR symbol name;’’’’’’’ scan (prog name);’’’’’’’’’’’. next symbol (symbol name, symbol type);’’’’’> symbol name <> prog name OR symbol type <> tag .’’’’’’’’’’’’init label table:’’’’’’’’’’’’’. IF NOT initialized (label init)’’’’’’’’’’’’’. THEN label ds := nilspace;’’’’’’’’’’’’’’’. label list := label ds;’’’’’’’’’’’’’’’> INT CONST source line :: line no (source file), ’’’’’’’’’’’’. source col :: col (source file);’. BOOL CONST check status :: check;’’’’’’’’’’’restore status:’’’’’’’’’’’’’’’. to line (source file, source line);’’’’’’’’’. col (source file, source col);’’’’’’’’’’’’’’ IF NOT check status’’’’’’’’’ THEN check off FI .’’’’’’’’start basic prog:’’’’’’’’’’’’’ IF error no > 0 OR is error’ THEN basic error end’’’’’’ ELSE normal end’’’’’’’’’’’ close (source file) .’’’’’’basic error end:’’’’’’’’’’’’’’. coder off (FALSE, FALSE, nop);’’’’’’’’’’’’’’ THEN put error;’’’’’’’’’’’ clear error’’’’’’’’’’N ELSE display (""13""10""10""); (* F20/rr *)’’’’> display (text (error no) + compiler err msg);’’’’’’’’. display (""13""10""10"");’’’’’’’’’’’’. display (compiler msg);’’’’’’’’’’’’’’ display (""13""10""); IF sysout <> ""’’’’’’ THEN line (2);’’’’> put (text (error no) + compiler err msg);’’’’ line (2);’’’’. put (compiler msg);’’’’’’’’’’ line’’’’’’’’’ show file and error .’’’’’’Nshow file and error: (* F20/rr *)’. IF anything noted CAND command dialogue’’’’’. THEN noteedit (source file);’’’’’’’’’’’’’ errorstop (nil) .’’’’’’’’’’’ IF prog name = nil’’’’’’’’’’ THEN run basic proc’’’’’’’’’ ELSE insert basic proc FI;’’ IF warnings AND was warning’ THEN show file and error’’run basic proc:’’’’’’’’’’’’’’’. coder off (FALSE, TRUE, basic frame); ’’’’’’ display (""13""10"") .’’’’’’insert basic proc:’’’’’’’’’’’’. coder off (TRUE, TRUE, basic frame);’’’’’’’’. coder on (data allocation by coder);’’’’’’’’. coder off (FALSE, FALSE, basic init);’’’’’’’ display (""13""10"") .’’’’’’END PROC basic;’’’’’’’’’’’’’’’>PROC compile (FILE VAR source file, TEXT CONST progname):’’’’’ enable stop; init compiler;’’’’’’’’’’’’’’ init basic prog;’’’’’’’’’’’’. begin scanning (source file);’’’’’’’’’’’’’’’ next symbol; get statement group (eop);’’ end compiling .’’’’’’’’’’’’init compiler: end symbol := 0;’’’’’’’’’’’ error no := 0;’’’’’’’’’’’ act stat no := 0;’’’’’’’’’’’ array base := 0;’’’’’’’’’’’ basic trace := FALSE;’’’’’’’ was warning := FALSE;’’’’’’’ init storage;’’’’’’’’’’’’’’’ init table .Ninit label: ’’’’’’’’’’’’’ TEXT VAR local stat no;’’’’’ INT VAR stat nos;’’’’’’’’’’’N init stat no (source file, error no); (* F21/rr *)’. IF error no > 0 THEN LEAVE compile FI;’’’’’’. all stat no (local stat no, stat nos);’’’’’’ FOR i FROM 1 UPTO stat nos’’. REP declare (label list [i]) PER;’’’’’’’’’’’N last label no := stat nos. (* DEF/mo *)’init basic prog:’’’’’’’’’’’’’’ LIB VAR packet;’’’’’’’’’’’’’. declare (basic packet name, packet);’’’’’’’’ define (packet);’’’’’’’’’’’’. parameter (1, void type, const, nil adr);’’’ declare (basic init);’’’’’’’ IF progname = nil’’’’’’’’’’’ THEN declare (basic frame)’’> ELSE declare (progname, 1, 0, basic frame) FI;’’’’’’’’’’’’’’ declare (basic module);’’’’’ declare runtime const;’’’’’’ declare basic init;’’’’’’’’’ declare basic frame;’’’’’’’’ declare basic module .’’’’’basic packet name:’’’’’’’’’’’’ IF progname <> ""’’’’’’’’’’’ THEN "BASIC." + progname’’ ELSE "BASIC"’’’’’’’’’’’’’’declare runtime const:’’’’’’’’> allocate variable (data text, type size (text type));’’’’’’’> allocate variable (data pos, type size (int type));’’’’’’’’’N allocate variable (loc storage, type size (int type)); (* F4/rr *)’’. allocate denoter (true value, 0);’’’’’’’’’’’. allocate denoter (false value, -1);’’’’’’’’’. allocate denoter (niltext value, nil);’’’’’’. allocate denoter (one value, 1);’’’’’’’’’’’’. allocate denoter (two value, 2);’’’’’’’’’’’’. allocate denoter (three value, 3);’’’’’’’’’’. allocate denoter (real one value, 1.0);’’’’’. allocate denoter (comma value, ",");’’’’’’’’ zero value := true value;. int one value := one value .’’’’’’’’’’’’’’’declare basic init:’’’’’’’’’’’ begin module;’’’’’’’’’’’’’’’ define (basic init, 4);’’’’’. parameter (1, text type, var, data text); ’’. parameter (2, int type, var, data pos);’’’’’ apply (1, 2, "initdata");’’’. parameter (1, void type, const, nil adr);’’’ apply (1, 0, ret);’’’’’’’’’’ end module .’’’’’’’’’’’’’’’declare basic frame:’’’’’’’’’’ begin module;’’’’’’’’’’’’’’’ define (basic frame, 4);’’’’ IF prog name = nil’’’’’’’’’’> THEN parameter (1, void type, const, nil adr);’’’’’’’’’’’’’’. apply (1, 0, basic init);’’’’’’’’’’’’’’ declare (1, int type);’’’’’’ declare (1, const);’’’’’’’’’ define (1, 0);’’’’’’’’’’’’’’. parameter (2, void type, const, nil adr);’’’ apply (1, 1, ln op);’’’’’’’’ apply (1, 0, "disablestop"); apply (1, 0, "startbasic");’. parameter (1, int type, var, data pos);’’’’’. parameter (2, int type, const, one value);’’. parameter (3, void type, const, nil adr);’’’ apply (1, 2, int move);’’’’’. parameter (1, void type, const, nil adr);’’’ apply (1, 0, basic module);’ apply (1, 0, "endbasic");’’’. parameter (1, void type, const, nil adr);’’’ apply (1, 0, ret);’’’’’’’’’’ end module .’’’’’’’’’’’’’’’declare basic module:’’’’’’’’’ LABEL VAR start lab;’’’’’’’’ begin module;’’’’’’’’’’’’’’’ define (basic module);’’’’’’ declare (start lab);’’’’’’’’ apply (1, 0, "enablestop");’ gosub (start lab);’’’’’’’’’’. parameter (1, void type, const, nil adr);’’’N apply (1, 0, "returnerror"); (* mo *)’’’’’ define (start lab);’’’’’’’’’N clear local stack . (* F4/rr *)’’end compiling:. parameter (1, void type, const, nil adr);’’’ apply (1, 0, ret); ’’’’’’’’’N define (loc storage, local storage - 1); (* F4/rr *)’’^ set length of local storage (basic module, max (2, local storage)); (* F4/rr *)’’’’’’’’’’’’ IF error no = 0’’’’’’’’’’’’’ THEN end module FI .’’’’’’’END PROC compi angeboten. ’’’’’^Hinweis : Bei Eingabe von 'ESC k' kann die letzte Eingabezeile zum Editieren’’’’’’’’’’’’’’. zurŪckgeholt werden. ’’’’’’’’’’’N Die Eingabe kann mit der Systemprozedur 'sysin' aus einer Datei’^ erfolgen. Aus der Eingabedatei wird fŪr jedes INPUT-Statement eine’’’’’’’’’’’’’’N Zeile eingelesen. Die Ausgabe der Eingabeaufforderung und der’’’N Zeilenwechsel nach der Eingabe werden unterdrŪckt. Sind die’’’’’N Eingabedaten fehlerhaft, so wird das Programm mit 'errorstop'’’’ abgebrochen. ’’’N Wird die Ausgabe mit 'sysout' umgeleitet, so werden die EingabeŻN aufforderung, die Eingabezeichenfolge und der Zeilenwechsel nach^ der Eingabe auf den Bildschirm und in die Ausgabedatei ausgegeben,’’’’’’’’’’’’’’N auch dann, wenn der Text der Eingabe aus einer Datei eingelesen’ wurde. ’’’’’’’’’>Beispiel : 1990 INPUT "Name, Vorname, Alter"; ’’’’’’’’’’’> #right#name$, vorname$, alter% ’’’’’’’’’’’’’’’.Vergleiche : INKEY$-, INPUT$-Funktionen ’’’’’Funktion : INPUT$ ’’’’’’’’’’’’>Zweck : Holen einer Zeichenfolge von der Tastatur ’’’’’.Syntax : INPUT$ () ’’’’’.ErklŁrung : : INT-Ausdruck ’N Die Funktion liefert eine Folge von TextzeichenN aus dem Tastaturzeichenpuffer. EnthŁlt der Puffer nicht alle geŻN wŪnschten Zeichen, so wird auf weitere Zeichen von der Tastatur’ gewartet. ’’’’’’N Die gelieferten Zeichen erscheinen nicht auf dem Bildschirm. ’’’>Beispiel : 10 PRINT "Bitte drei Zeichen eingeben !" ’’’’’. 20 LET a$ = INPUT$ (3) ’’’’’’’. 30 PRINT "Danke schŚn !" ’’’’’>Vergleiche : INKEY$-Funktion, INPUT-Anweisung ’’’’’’’’’’’’’’’Funktion : INSTR ’’’’’’’’’’’’’>Zweck : Suchen einer Zeichenfolge in einer anderen ’’’’>Syntax : INSTR ( [,] , ’’. #right#) ’’’’’’.ErklŁrung : : INT-Ausdruck ’’^ Die Funktion liefert die Position, ab der der TEXT-Ausdruck 2 das’’’’’’’’’’’’’’’> erste Mal im TEXT-Ausdruck 1 vorkommt. ’’’’’’’’’> Die Position wird als INT geliefert. ’’’’’’’’’’’.Beispiel : 10 LET a$ = "hallihallo" ’’’’’. 20 LET b$ = "all" ’’’’’’’’’’’’> 30 PRINT INSTR (a$, b$); INSTR (5, a$, b$) ’’’. Ausgabe: 2 7 ’’’’’’’’’’’’’’Funktion : INT ’’’’’’’’’’’’’’’>Zweck : Ermittlung der nŁchstkleineren ganzen Zahl ’’’’.Syntax : INT () ’’’’’’’’’NErklŁrung : Die Funktion liefert die grŚūte ganze Zahl, fŪr die gilt: ’’’’’’> n kleiner gleich . ’’’’’’’’’’’’’’^ Bei positiven Werten bedeutet das, daū die Nachkommastellen abgeŻ’’’’’’’’’’’’’’’. schnitten werden. ’’’’’’’’’’’’’’> Das Ergebnis wird als REAL geliefert. ’’’’’’’’’’>Beispiel : 10 PRINT INT (11.74); INT (-11.74) ’’’’’’’’’’’. Ausgabe: 11 -12 ’’’’’’’’’’’’.Vergleiche : CINT-, FIX-Funktionen ’’’’’’’’’’Anweisung : KILL ’’’’’’’’’’’’’>Zweck : LŚschen einer Datei in der Task ’’’’’’’’’’’’’’’.Syntax : KILL ’’’’’’’’’’’’’’.ErklŁrung : : TEXT-Ausdruck ’’’’’N Die Datei wird (ohne Nachfrage) gelŚscht. ’’’’’’’’’’.Beispiel : 2110 KILL "Scratchdatei" ’’’’’Funktion : LEFT$ ’’’’’’’’’’’’’NZweck : Erzeugung eines Teiltextes aus einem anderen Text ’’’’’’’’’’’’’>Syntax : LEFT$ (, ) ’’’’’.ErklŁrung : : INT-Ausdruck ’N Die Funktion liefert die ersten Textzeichen des TEXT-Ausdrucks. .Beispiel : 10 LET a$ = "hallihallo" ’’’’’. 20 PRINT LEFT$ (a$, 4) ’’’’’’’. Ausgabe: hall ’’’’’’’’’’’’’’>Vergleiche : MID$-, RIGHT$-Funktionen, LSET-, MID$-, RSET-’’’ Anweisungen ’’’’Funktion : LEN ’’’’’’’’’’’’’’’>Zweck : Ermittlung der LŁnge eines Textes ’’’’’’’’’’’’’.Syntax : LEN () ’’’’’’’’’NErklŁrung : Die Funktion liefert die Anzahl der im TEXT-Ausdruck enthaltenenN Zeichen (also die LŁnge des Textes). Die LŁnge wird als INT’’’’’ geliefert. ’’’’’> Ein Leertext (niltext, "") hat die LŁnge null. ’.Beispiel : 10 LET a$ = "hallihallo" ’’’’’. 20 PRINT LEN (a$) ’’’’’’’’’’’’ Ausgabe: 10 Anweisung : LET ’’’’’’’’’’’’’’>Zweck : Zuweisung eines Wertes an eine Variable ’’’’’’’.Syntax : [LET] = ’NErklŁrung : Die LET-Anweisung ermŚglicht das Zuweisen von Werten an VariabŻ’N len (dazu gehŚren auch die Elemente von Feldern). ’’’’’’’’’’’’’’^ Das SchlŪsselwort LET ist optional, d.h. eine Zuweisung wird auch’’’’’’’’’’’’’’’> ohne dieses SchlŪsselwort erkannt. ’’’’’’’’’’’’’> #on("iZuweisung an TEXT-Variablen:#off("i ’’’’’’N LET = oder ’’’N Die numerische Konstante wird automatisch in einen TEXT umgeŻ’’’. wandelt (vgl. STR$-Funktion) ’’’> #on("iZuweisung an INT-Variablen:#off("i ’’’’’’’> LET = ’’’’’’’’’N Ist der numerische Ausdruck ein REAL-Ausdruck, so wird automaŻ’’N tisch nach INT konvertiert (vgl. CINT-Funktion). ’’’’’’’’’’’’’’’> #on("iZuweisung an REAL-Variablen:#off("i ’’’’’’> LET = ’’’’’’’’^ Ist der numerische Ausdruck ein INT-Ausdruck, so wird automatisch’’’’’’’’’’’’’’’> nach REAL konvertiert (vgl. CDBL-Funktion). ’’’’.Beispiel : 10 LET t$ = "murmel marmel" ’’> 20 LET t$ = 1245.3 'wie "1245.3" ’’’’’’’’’’’’’. 30 LET i% = 852 ’’’’’’’’’’’’’’> 40 LET i% = 12.73 'aufgerundet: 13 ’’’’’’’’’’. 50 LET r = 564 'wie 564. ’. 60 LET r = 157.36 ’’’’’’’’’’’’Anweisung : LINE INPUT ’’’’’’’NZweck : Einlesen einer Eingabe von der Tastatur in eine TEXT-Variable ’>Syntax : LINE INPUT [;] [;] ’’’’’’’. #right# ’’’’’’’’’NErklŁrung : Die LINE INPUT-Anweisung ermŚglicht das Einlesen von Eingaben’’’N in TEXT-Variablen, aber im Gegensatz zu INPUT ohne Beachtung’’’’. von Trennzeichen (z.B. ","). ’’’N Steht direkt nach LINE INPUT ein Semikolon, so wird nach BeendiŻ> gung der Eingabe der Zeilenwechsel unterdrŪckt. N Der eingegebene Text wird (bis auf das CR-Zeichen) der TEXT-’’’’. Variablen zugewiesen. ’’’’’’’’’’>Beispiel : 2110 LINE INPUT "Name: ";name$ ’’’’’’’’’’’’’’’N Der Benutzer kŚnnte nun auch folgendes eingeben: ’’’’’’’’’’’’’’’. Neumann, Alfred E. ’’’’’’’’’’’’’Vergleiche : INPUT-Anweisung Funktion : LOG ’’’’’’’’’’’’’’’NZweck : Berechnung des natŪrlichen Logarithmus einer Zahl ’’’’’’’’’’’’’.Syntax : LOG () ’’’’’’’’’NErklŁrung : Die Funktion liefert den natŪrlichen Logarithmus des Wertes des’ REAL-Ausdrucks. N Bei nicht-positiven Werten kommt es zu einem Fehler in der’’’’’’. EUMEL-Prozedur 'le;’’’’’’’’’’’’’>PROC get statement group (INT CONST new symbol): ’’’’’’’’’’’’’N(* 'get statement group' compiliert das ganze Programm bis zum Auftreten *)’N(* von 'end symbol' *)’ disable stop;’’’’’’’’’’’’’’’ new end symbol;’’’’’’’’’’’’’ get all basic lines;’’’’’’’’ old end symbol .’’’’’’’’’’’new end symbol:’’’’’’’’’’’’’’’. INT CONST old symbol :: end symbol;’’’’’’’’’ end symbol := new symbol .’old end symbol:’’’’’’’’’’’’’’’ end symbol := old symbol .’get all basic lines:’’’’’’’’’’ REP get basic line;’’’’’’’’’ IF is error’’’’’’’’’’’’’ THEN error handling’’’’’ ELIF symb.type = eos’’’’ THEN check this eos FI’’Nerror handling: (* F20/rr *)’ IF error in basic program ’’ THEN error no INCR 1’’’ ELIF end of source file’’’’’ THEN clear error;’’’’’’. LEAVE get all basic lines’’’’’’’’’ ELIF halt from terminal’’’’’. THEN LEAVE get statement group’’’’’’’’’ ELSE error no INCR 1;’’. handle internal error;’’’’’’’’’’’’. LEAVE get statement group’’’’’’’’’ clear error;N scope compulsory (TRUE); (* DEF/mo *)’’N set scope (""); (* DEF/mo *)’’ next statement;’’’’’’’’’’’’’ next symbol .’’’’’’’’’’’’’’error in basic program:’’’’’’’ errorcode = 101.’’’’’’’’’’’’end of source file:’’’’’’’’’’’ errorcode = 99.’’’’’’’’’’’’’halt from terminal:’’’’’’’’’’’ errorcode = 1.’’’’’’’’’’’’’’Nhandle internal error : (* F20/rr *)’. TEXT VAR error :: "BASIC-Compiler ERROR";’’’ IF errorcode <> 0’’’’’’’’’’’. THEN error CAT " #" + text (errorcode) FI;’’ IF errorline > 0’’’’’’’’’’’’. THEN error CAT " at " + text (errorline) FI; error CAT " : ";’’’’’’’’’’’ error CAT errormessage;’’’’’. IF sysout <> "" THEN putline (error) FI;’’’’ note (error);’’’’’’’’’’’’’’’ clear error; errorstop (error).’’’’’’’’’’check this eos:’’’’’’’’’’’’’’’ IF symb.no = eol’’’’’’’’’’’’ THEN next symbol’’’’’’’’’’’’. ELIF symb.no = -new symbol OR symb.no = eop’> THEN LEAVE get all basic lines (* mo *)N ELSE basic error (intern error, NAME symb, "EOL erwartet, " +’’’’’’’’’’’’’’’> type of (symb.type) + " gefunden")’’’’’’’’END PROC get statement group;’.PROC get basic line (INT CONST new symbol):’’’N(*Die Abbruchbedingungen werden neu gesetzt und bei Verlassen der *)’N(*Prozedur zurŪckgesetzt. *)’ disable stop;’’’’’’’’’’’’’’’. INT CONST old symbol :: end symbol;’’’’’’’’’ end symbol := new symbol; ’’ get basic line;’’’’’’’’’’’’’ end symbol := old symbol .’END PROC get basic line;’’’’’’PROC get basic line:’’’’’’’’’’N(* 'get basic line' behandelt genau eine Zeile mit Zeilennummer. *)’ enable stop; IF symb.type = stat no’’’’’’. THEN gen stat no (symb.no) FI;’’’’’’’’’’’’’’. REP get one basic statement PER .’’’’’’’’’’get one basic statement:’’’’’’N(* 'get one basic statement' behandelt genau ein Statement. *)’ IF symb.type = eos’’’’’’’’’’ THEN get end of statement’’’N ELIF symb.type = res word OR symb.type = var OR symb.type = array’’’’’’’’’’’ THEN get one statement’’’’’’^ ELSE basic error (2, NAME symb, type of (symb.type) + " ohne Zusammenhang") FI .’’’’’’’’’’’get end of statement:’’’’’’’’’ IF symb.no = eos’’’’’’’’’’’’ THEN next symbol’’’’’’’’’’’’. ELSE LEAVE get basic line FI .’’’’’’’’’’’’’get one statement:’’’’’’’’’’’’ IF symb.type = res word’’’’’. THEN get res word statement’’’’’’’’’’’’’’’. ELIF symb.type = var OR symb.type = array’’’ THEN let statement’’’’’’’’ skip comma if else expected; IF symb.type <> eos’’’’’’’’’^ THEN basic error (2, NAME symb, "EOS erwartet, " + type of (symb.type) + " gefunden")’’’’’skip comma if else expected:’’N IF end symbol = else s AND symb.type = del AND symb.no = comma’’’’’’’’’’’’’’ THEN next symbol;’’’’’’’’’> IF symb.type <> eos OR symb.no <> -else s’’’’’’’’’’’’> THEN basic error (2, NAME symb, "ELSE erwartet")’’’get res word statement:’’’’’’’ SELECT symb.no OF’’’’’’’’’’’> CASE as s : basic error (90, symb.name, "") ’’’’’’’’’’’’> CASE base s : basic error (91, symb.name, "")’’’’’’’’’’’’’ CASE call s, ’’’’’’’’’’’’. chain s : call statement’’’’’’’’’’’’’’. CASE clear s : not implemented’’’’’’’’’’’’’. CASE close s : not implemented’’’’’’’’’’’’’N CASE cls s : cls statement (* mo *)’’’’’’’’’’’’. CASE common s : not implemented’’’’’’’’’’’’’. CASE data s : data statement ’’’’’’’’’’’’’N CASE def s : def statement (* mo *)’’’’’’’’’’’’ CASE defint s,’’’’’’’’’’’’’’ defdbl s,’’’’’’’’’’’’’’ defsng s,’’’’’’’’’’’’’’. defstr s : def type statement’’’’’’’’’’. CASE dim s : dim statement’’’’’’’’’’’’’’’> CASE else s : basic error (92, symb.name, "")’’’’’’’’’’’’’. CASE end s : end statement’’’’’’’’’’’’’’’. CASE error s : error statement’’’’’’’’’’’’’. CASE field s : not implemented’’’’’’’’’’’’’. CASE for s : for statement’’’’’’’’’’’’’’’. CASE get s : not implemented’’’’’’’’’’’’’. CASE gosub s : gosub statement’’’’’’’’’’’’’. CASE goto s : goto statement’’’’’’’’’’’’’’ CASE if s : if statement. CASE input s : input statement’’’’’’’’’’’’’. CASE kill s : kill statement’’’’’’’’’’’’’’. CASE let s : let statement’’’’’’’’’’’’’’’. CASE line in s: line statement’’’’’’’’’’’’’’N CASE lprint s : lprint statement (* mo *)’’’’’’’’’’’’. CASE l set s : l set statement’’’’’’’’’’’’’. CASE mid s : mid statement’’’’’’’’’’’’’’’. CASE name s : name statement’’’’’’’’’’’’’’> CASE next s : basic error (1, symb.name, "")’’’’’’’’’’’’’’ CASE on s : on statement. CASE open s : not implemented’’’’’’’’’’’’’. CASE option s : option statement’’’’’’’’’’’’. CASE print s : print statement’’’’’’’’’’’’’. CASE put s : not implemented’’’’’’’’’’’’’. CASE rand s : randomize statement’’’’’’’’’. CASE read s : read statement’’’’’’’’’’’’’’. CASE rem s : rem statement’’’’’’’’’’’’’’’. CASE restore s: restore statement ’’’’’’’’’’. CASE resume s : not implemented’’’’’’’’’’’’’. CASE return s : return statement’’’’’’’’’’’’. CASE r set s : r set statement’’’’’’’’’’’’’> CASE step s : basic error (93, symb.name, "")’’’’’’’’’’’’’. CASE stop s : stop statement’’’’’’’’’’’’’’> CASE sub : basic error (101, symb.name, "")’’’’’’’’’’’’. CASE swap s : swap statement’’’’’’’’’’’’’’> CASE tab s : basic error (94, symb.name, "")’’’’’’’’’’’’’> CASE then s : basic error (95, symb.name, "")’’’’’’’’’’’’’> CASE to s : basic error (96, symb.name, "")’’’’’’’’’’’’’. CASE troff s : troff statement’’’’’’’’’’’’’. CASE tron s : tron statement’’’’’’’’’’’’’’> CASE using s : basic error (97, symb.name, "")’’’’’’’’’’’’’. CASE wait s : not implemented’’’’’’’’’’’’’> CASE wend s : basic error (30, symb.name, "")’’’’’’’’’’’’’. CASE while s : while statement’’’’’’’’’’’’’. CASE width s : width statement’’’’’’’’’’’’’. CASE write s : write statement’’’’’’’’’’’’’> OTHERWISE basic error (104, symb.name, "") END SELECT.’’’’’’not implemented:’’’’’’’’’’’’’’. basic error (100, symb.name, "").’’’’’’’’’’’call statement:’’’’’’’’’’’’’’’N(*CALL [()] log2'. ’’’’’’’’’N Das Ergebnis der Funktion wird als REAL geliefert. ’’’’’’’’’’’’’.Beispiel : 10 PRINT LOG (10.0) ’’’’’’’’’’. Ausgabe: 2.302585 ’’’’’’’’’’’>Vergleiche : EXP-Funktion (KomplementŁrfunktion) ’’’’’’’’’’’’Funktion : LPOS ’’’’’’’’’’’’’’>Zweck : Ermittlung der aktuellen Druckspalte ’’’’’’’’’’.Syntax : LPOS () ’’’’’’’’^ErklŁrung : Geliefert wird die Nummer der Spalte (als INT), in die das nŁchste’’’’’’’’’’’’’’^ nŁchste Zeichen mit LPRINT ausgegeben wird. Die Spalte ganz links’’’’’’’’’’’’’’’. hat die Nummer 1. ’’’’’’’’’’’’’’N Der Argument-Ausdruck ist ein Dummy-Argument (hat keinen’’’’’’’’> Einfluū auf den gelieferten Wert). ’’’’’’’’’’’’’>Beispiel : 3010 IF LPOS (0) > 65 THEN LPRINT ’’’’’’’’’’’’. 3020 LPRINT name$ ’’’’’’’’’’’’^ Falls die Druckposition hinter Spalte 65 liegt, wird eine neue DruckŻ’’’’’’’’’’’ zeile begonnen. >Vergleiche : LPRINT-Anweisung, TAB-, POS-Funktion ’’’’’’’’’’’Anweisung : LPRINT ’’’’’’’’’’’.Zweck : Ausgabe in eine Druckdatei ’’’’>Syntax : LPRINT [#ib(3)#USING#ie(3)# ;] ’’’’’’’^ #right#[ #ib(3)#TAB#ie(3)# () | , | ; | ] [...] ’’’’’’’’’’’’’NErklŁrung : : TEXT-Ausdruck fŪr USING (vgl. PRINT) ’’’’’’’’’’’’’’’> : INT-Ausdruck (vgl. PRINT) ’’’’’’’’’’N : TEXT-Ausdruck oder numerischer Ausdruck ’’’’’’’’’’’’N Die LPRINT-Anweisung arbeitet wie PRINT (siehe dort), mit dem’’’^ Unterschied, daū LPRINT die Zeichen nicht auf den Bildschirm, sonŻ’’’’’’’’’’’’’’N dern in eine Datei mit dem Namen "BASIC LPRINT OUTPUT"’’’’’’’’’’^ ausgibt. Diese Datei wird automatisch eingerichtet, falls sie noch’’’’’’’’’’’’’’^ nicht existiert. Ist sie schon vorhanden, so werden die auszugebenŻ’’’’’’’’’’’’’> den Zeichen am Ende der Datei angefŪgt. ’’’’’’’’N Nach oder bei Ablauf des Programms kann die Datei (evtl. nach’’’N vorheriger Aufbereitung durch Textverarbeitungsprogramme) mit’’’N 'print', wie im EUMEL-System Ūblich, an den Drucker geschickt’’’N werden. Der Benutzer ist selbst dafŪr verantwortlich, daū er die^ Druckdatei, sofern die Daten nicht mehr benŚtigt werden, vor einem’’’’’’’’’’’’’’^ neuen Programmlauf leert oder lŚscht. VersŁumt er dies, so bleiben’’’’’’’’’’’’’’N die alten Daten in der Druckdatei, und die neuen Ausgaben werdenN hinten angefŪgt. Das LŚschen der Druckdatei kann zum Beispiel’’’N durch das BASIC-Programm mit der KILL-Anweisung erreicht’’’’’’’’ werden. ’’’’’’’’N Die Art der Ausgabe und die Syntax ist sonst analog zur PRINT-’’> Anweisung (siehe ErlŁuterungen dort). ’’’’’’’’’’NBeispiel : 2110 LPRINT "Dieser Text geht in die Druckdatei" ’’’’’’’’’’’’’> 2120 LPRINT TAB (12); "Datum: " DATE$ ’’’’’’’’. 2130 LPRINT 1, 2, 3 ’’’’’’’’’’.Vergleiche : PRINT-Anweisung, LPOS-Funktion ’Anweisung : LSET ’’’’’’’’’’’’’NZweck : Ersetzen von Zeichen eines Textes von links her ’’’’’’’’’’’’’’’>Syntax : LSET = ’’’’’’’’NErklŁrung : Das Ergebnis des TEXT-Ausdrucks wird, links beginnend, in der’’’N TEXT-Variablen eingesetzt. Es werden hŚchstens so viele Zeichen’^ ersetzt, wie bisher schon in der Variablen vorhanden waren, das heiūt’’’’’’’’’’’N die LŁnge des Textes in der Variablen Łndert sich nicht. ’’’’’’’.Beispiel : 210 LET a$ = "12345" ’’’’’’’’’. 220 LSET a$ = "ABCDEFG" ’’’’’’ 230 PRINT a$, . 240 LSET a$ = "abc" ’’’’’’’’’’ 250 PRINT a$ ’> Ausgabe: ABCDE abcDE ’’’’’’’’’’’’’’NVergleiche : MID$-, RSET-Anweisungen, LEFT$-, MID$-, RIGHT$-FunkŻ’’’’’’’’’’’’ tionen ’’’’’’’’’Anweisung : MID$ ’’’’’’’’’’’’’>Zweck : Ersetzen von Zeichen innnerhalb eines Textes ’’>Syntax : MID$ (, ’’’’’’’’> #right#[, ] ) = .ErklŁrung : : INT-Ausdruck ’. : INT-Ausdruck ’N Das Ergebnis des TEXT-Ausdrucks wird, bei ’’’’’’’N beginnend, in der TEXT-Variablen eingesetzt. Es werden hŚchŻ’’’’N stens LEN Textzeichen ersetzt. Ist keine’’’’’’’’N angegeben, so werden so viele Zeichen des’’’’’’N TEXT-Ausdrucks wie mŚglich in der TEXT-Variablen eingetragen. ’’^ Auūerdem gilt: Es wird nicht Ūber das bisherige Ende des VariablenŻ’’’’’’’’’’’’’N inhalts ersetzt, das heiūt die LŁnge des Textes in der Variablen. Łndert sich nicht. ’’’’’’’’’’’’’.Beispiel : 210 LET a$ = "12345" ’’’’’’’’’. 220 MID$ (a$, 3) = "ABCDEFG" ’ 230 PRINT a$, . 240 MID$ (a$, 2, 1) = "abc" ’’ 250 PRINT a$ ’> Ausgabe: 12ABC 1aABC ’’’’’’’’’’’’>Vergleiche : LEFT$-, MID$-, RIGHT$-Funktionen, LSET-, RSET-’’ Anweisungen ’’’’Funktion : MID$ ’’’’’’’’’’’’’’NZweck : Erzeugung eines Teiltextes aus einem anderen Text ’’’’’’’’’’’’’.Syntax : MID$ (, ’’’’’’’’> #right# [, ]) ’’’.ErklŁrung : : INT-Ausdruck ’. : INT-Ausdruck ’N Die Funktion liefert hŚchstens Textzeichen des’> TEXT-Ausdrucks von Position an. N Wird nicht angegeben, so werden alle Zeichen’’’. ab Startposition geliefert. ’’’’N Werden rechts von keine Zeichen mehr gefunden’’’^ oder ist gleich null, so wird ein Leertext geliefert. ’’’’’’’’’.Beispiel : 10 LET a$ = "hallihallo" ’’’’’. 20 PRINT MID$ (a$, 4, 4), ’’’’. 30 PRINT MID$ (a$, 6) ’’’’’’’’> Ausgabe: liha hallo ’’’’’’’’’’’’’’>Vergleiche : LEFT$-, RIGHT$-Funktionen, LSET-, MID$-, RSET-’’ Anweisungen ’’’’Funktion : MKD$, MKI$ ’’’’’’’’>Zweck : Codierung von Zahlenwerten in Texte ’’’’’’’’’’’.Syntax : MKD$ () ’’’’’’’’. MKI$ () ’’’’’’’’’’NErklŁrung : Mit MKD$ und MKI$ kŚnnen INTs und REALs zu Texten codiert’’’’’’’ werden. ’’’’’’’’N Die Funktion MKD$ liefert einen 8 Zeichen langen TEXT, der den’’> Wert des REAL-Ausdrucks codiert enthŁlt. ’’’’’’’^ Vergleichbar arbeitet MKI$, das einen 2 Zeichen langen TEXT liefert,’’’’’’’’’’’’> der den Wert des INT-Ausdrucks darstellt. ’’’’’’N Mit MKD$ und MKI$ codierte Werte kŚnnen mit CVD und CVI (s.d.)’’. wieder decodiert werden. ’’’’’’’.Beispiel : 10 zahl$ = MKD$ (3.1415) ’’’’’. 20 PRINT CVD (zahl$) ’’’’’’’’’. Ausgabe: 3.1415 ’’’’’’’’’’’’’.Vergleiche : CVD-, CVI-Funktionen ’’’’’’’’’’’Operator : MOD ’’’’’’’’’’’’’’’.Siehe Kapitel 4.4. (Operatoren) ’’’’’’’’’’’’’’Anweisung : NAME ’’’’’’’’’’’’’.Zweck : Umbenennen einer Datei ’’’’’’’’>Syntax : NAME AS ’’’’’’’’’’’’’.ErklŁrung : *)’ next symbol; get proc name;’’’’’’’’’’’’’’ get proc parameter;’’’’’’’’’ apply proc .’’’’’’’’’’’’’’’get proc name: proc name := symb.name;’’’’’ IF symb.type = array’’’’’’’’N THEN proc name := subtext (proc name, 1, LENGTH proc name-2) FI;’’’’’’’’’’’’ next symbol .’’’’’’’’’’’’’’get proc parameter:’’’’’’’’’’’ params := 0;> IF symb.type = del AND symb.no = open bracket’’’’’’’’’’’’’’’. THEN get paramfield (param, params) FI .’’’ OPN VAR proc opn;’’’’’’’’’’’ FOR i FROM 1 UPTO params’’’’> REP parameter (i, param [i].data, const, param [i].adr) PER;N identify (deshift (proc name), 1, params, proc opn, proc found);’’’’’’’’’’’’ IF NOT proc found’’’’’’’’’’’^ THEN basic error (99, proc name, "Parameter angegeben: " + param list (1, params))’’’’’’’’ ELIF result found’’’’’’’’’’’n THEN basic error (5, proc name, "Kein Resultat erlaubt (gefunden: " + dump (result data) + ")")’’’’’’’’’’’. examine access rights (param, params);’’’’’’> parameter (params+1, void type, const, nil adr);’’’’’’’’’’’’. apply (1, params, proc opn) .’’’’’’’’’’’’’’. NOT (result data = void type) .’’’’’’’’’’’’ dtype (params+1) .’’’’’’’’’cls statement:N(*CLS *)’ next symbol; apply (1, 0, "nextpage").’’’data statement:’’’’’’’’’’’’’’’N(*DATA *)’ DTYPE VAR const data;’’’’’’’ data line (act stat no);’’’’. REP IF next data (constant, const data)’’’’’. THEN data (constant, const data)’’’’’’’’> ELSE basic error (2, "EOL", "Daten fehlen !") FI;’’’’’’’ next symbol;’’’’’’’’’’’’ IF symb.type = eos’’’’’’. THEN LEAVE data statement’’’’’’’’’’’’’’’> ELIF symb.type <> del OR symb.no <> comma’’’’’’’’’’’’’’’> THEN basic error (2, NAME symb, " , erwartet") FI’’’’’’>def statement: (* DEF/mo *)’’’’’’’’’’’N(*DEF FN [(parameter list)] = *)’ get function name;’’’’’’’’’’ store label of function;’’’’ get all params;’’’’’’’’’’’’’ get function definition.’’’’get function name:’’’’’’’’’’’’ next symbol; IF symb.type <> user fn’’’’’. THEN treat wrong function name’’’’’’’’’’’’ ELIF LENGTH symb.name <= 2’’N THEN basic error (2, symb.name, "Unerlaubter Funktionsname")’’’’’’’’’’’’’’ ELIF known (symb.no)’’’’’’’’^ THEN basic warning ("Die Funktion """ + symb.name + """ wurde bereits definiert");’’’’’’’’ was warning := TRUE’’ SYMBOL VAR function :: symb;. function.name := name of (function.no).’’’’’treat wrong function name:’’’’. IF symb.type = var OR symb.type = array’’’’’N THEN basic error (2, symb.name, "Funktionsname muū mit FN beginnen")’’’’’’> ELSE basic error (2, NAME symb, "Funktionsname erwartet")’store label of function:’’’’’’. IF last label no < label list size’’’’’’’’’’ THEN last label no INCR 1’. ELSE errorstop ("Zu viele Label")’’’’’’’’’. declare (label list [last label no]);’’’’’’’ TEXT VAR dim text :: "";’’’’ dim text CAT last label no;’N recognize (function.no, user fn, niladr, function.data, dim text).’’’’’’’’’’get all params:’’’’’’’’’’’’’’’. set scope (function.name + "?");’’’’’’’’’’’’ next symbol;> IF symb.type = del AND symb.no = open bracket’’’’’’’’’’’’’’’ try to get a param; try to get del’’’’’. UNTIL symb.no = close bracket OR’’’’’N (symb.type <> del AND symb.type <> var) PER;’’’’’’’’’’’’’’ skip close bracket’’’try to get a param:’’’’’’’’’’’ IF symb.type <> var’’’’’’’ THEN next symbol’’’’’’’’ IF symb.type <> var’’’’’’’N THEN careful error (2, NAME symb, "Parametervariable erwartet");’’’’’’’’ IF symb.type <> del THEN next symbol’ ELSE treat param’’’’’’’’> UNTIL symb.type <> del OR symb.no = close bracket PER.’’’’’’ IF NOT known (symb.no) ’’’’’. THEN declare var (symb, nil);’’’’’’’’’’’’’. ELIF already appeared in param list’’’’’’’’’. THEN careful error (89, symb.name, "");’’’ dim text CAT symb.no.’’’’’’’.already appeared in param list:’’’’’’’’’’’’’’’ INT VAR param counter;’’’’’’> FOR param counter FROM 2 UPTO LENGTH dim text DIV 2 REP’’’’’. IF (dim text ISUB param counter) = symb.no> THEN LEAVE already appeared in param list WITH TRUE’’’’’try to get del:’’’’’’’’’’’’’’’ IF symb.type = var’’’’’’’’’’ THEN next symbol’’’’’’’’’’^ IF symb.type = var OR (symb.type = del CAND (symb.no <> comma AND symb.no <> close bracket))N THEN careful error (2, symb.name, " , in Parameterliste erwartet")’’’’’’’skip close bracket:’’’’’’’’’’’> IF symb.type = del AND symb.no = close bracket’’’’’’’’’’’’’’ THEN next symbol’’’’’’’’’’N ELSE careful error (2, NAME symb, " ) nach Parameterliste erwartet")’’’’’get function definition:’’’’’’ scope compulsory (FALSE);’’’ skip (equal, operator);’’’’’ generate forward jump;’’’’’’ define this label;’’’’’’’’’’. get expr (expr result, function.data);’’’’’’N recognize (function.no, user fn, expr result.adr, function.data, dim text);’ define (behind);’’’’’’’’’’’’ scope compulsory (TRUE);’’’’ set scope ("").’’’’’’’’’’’’’generate forward jump:’’’’’’’’ LABEL VAR behind;’’’’’’’’’’’ declare (behind);’’’’’’’’’’’ apply (behind).’’’’’’’’’’’’’define this label:’’’’’’’’’’’’. define (label list [last label no]).’’’’’’’’def type statement:’’’’’’’’’’’N(*DEFINT/DBL/SNG/STR *)’’ deftype := symb.no;’’’’’’’’’ next symbol;. REP get letter (begin range);’’’’’’’’’’’’’’’> IF symb.type = operator AND symb.no = minus’’’’’’’’’’’’’ THEN next symbol;’’’’’’’. get letter (end range)’’’’’’’’’’’’’. ELSE end range := begin range FI; ’’’’’’> IF name of (begin range.no) > name of (end range.no)’’’’N THEN basic error (87, begin range.name + "-" + end range.name, "") ’’’’’^ ELSE define chars (name of (begin range.no), name of (end range.no), data type) FI;’’’’’ IF symb.type = eos’’’’’’. THEN LEAVE def type statement’’’’’’’’’’’. ELSE skip (comma, del) FI’’’’’’’’’’’’’’’ SELECT deftype OF’’’’’’’’’’’ CASE defint s: int type’’’’’ CASE defstr s: text type’’’’. OTHERWISE real type ENDSELECT .’’’’’’’’’’’’ dim statement:’’’’’’’’’’’’’’’^(*DIM *)’’’’’’’’’’’’’’’ next symbol; REP get field var;’’’’’’’’’’ get field size;’’’’’’’’’ declare field;’’’’’’’’’’ IF symb.type = eos’’’’’’ THEN LEAVE dim statement. ELSE skip (comma, del) FI’’’’’’’’’’’’’’’get field var: IF symb.type = array’’’’’’’’ THEN IF known (symb.no)’’’> THEN basic error (10, symb.name, "")’’’’’’’’’’’’’’’ ELSE field := symb; next symbol’’’ ELIF symb.type = var’’’’’’’’> THEN basic error (2, symb.name, "Dimensionsangabe fehlt")’> ELSE basic error (2, NAME symb, "Feldname erwartet")’’’’’’get field size:’’’’’’’’’’’’’’’ field size := "";’’’’’’’’’’’ field elems := 1;’’’’’’’’’’’ skip (open bracket, del);’’’. REP get const (size, int type);’’’’’’’’’’’’’> INT CONST field limit :: size.name ISUB 1;’’’’’’’’’’’’’’. IF field limit < array base’’’’’’’’’’’’’N THEN basic error (88, NAME size, "Die Obergrenze muū >= " +’’’’’’’’’’’’’N text (array base) + " sein")’’’’’’’’’’. ELSE field size CAT (mki (field limit));N fie: TEXT-Ausdruck ’’’’. : TEXT-Ausdruck ’’’’N NAME benennt die Datei in um. ’’’’’’’’.Beispiel : 10 NAME "KŁufer" AS "Kunden" ’Anweisung : NEXT ’’’’’’’’’’’’’>Zweck : Markierung des Endes einer FOR-Schleife ’’’’’’’NSyntax : NEXT [] [, ] [...] ’’’’’’’’’’’’’’NErklŁrung : NEXT markiert das Ende einer FOR-Schleife (vergleiche FOR-’’’’’’ Anweisung). ’’’’N Wird keine Variable angegeben, so bezieht sich das NEXT auf das’> letzte textuell vorhergehende FOR. ’’’’’’’’’’’’’N Wird eine Laufvariable angegeben, so muū sie mit der im letzten’> FOR verwendeten Laufvariable Ūbereinstimmen. ’’’N Werden mehrere Variablen angegeben, so werden durch die’’’’’’’’’N NEXT-Anweisung mehrere FOR-Schleifen abgeschlossen. ’’’’’’’’’’’’N Beachten Sie, daū FOR-Schleifen sich nicht Ūberschneiden dŪrfen,N sondern nur Schachtelungen zulŁssig sind. Es kommt daher auf dieN Reihenfolge der Variablen bei den NEXT-Anweisungen an. Die’’’’’’^ letzte (innerste) FOR-Schleife muū als erste wieder mit dem zugeŻ’’’’’’’’’’’’’’’> hŚrigen NEXT abgeschlossen werden. ’’’’’’’’’’’’’.Vergleiche : FOR-, WHILE-Anweisungen ’’’’’’’’Operator : NOT ’’’’’’’’’’’’’’’.Siehe Kapitel 4.4. (Operatoren) ’’’’’’’’’’’’’’Funktion : OCT$ ’’’’’’’’’’’’’’NZweck : Erzeugung der oktalen Darstellung einer Zahl als Text ’’’’’’’’’.Syntax : OCT$ () ’’’’’’’’’^ErklŁrung : Die Funktion liefert die oktale (Zweierkomplement-) Darstellung der’’’’’’’’’’’’’> Zahl, die sich aus dem INT-Ausdruck ergibt. ’’’’.Beispiel : 10 PRINT OCT$ (10000) ’’’’’’’’. Ausgabe: 23420 ’’’’’’’’’’’’’’Vergleiche : OCT$-Funktion ’’Anweisung : ON ’’’’’’’’’’’’’’’NZweck : AusfŪhrung eines "berechneten" Sprungs oder Unterprogramm-’’’’’ Aufrufs ’’’’’’’’>Syntax : ON GOTO | GOSUB ’’’’’’’’’’’’’’> #right# [, ] [...] ’.ErklŁrung : : INT-Ausdruck ’> : INT-Konstante ’’’’’’’’’’’’’’’N ON ermŚglicht die Verzweigung des Programms an eine von mehreŻ’’N ren Stellen abhŁngig vom Ergebnis eines INT-Ausdrucks. ’’’’’’’’’N Gelangt das Programm an eine ON-Anweisung, dann wird zunŁchst’’’^ der Wert des INT-Ausdrucks berechnet. Dieses Ergebnis bildet dann’’’’’’’’’’’’’’’N die Nummer n des Sprungziels. Danach wird zur n-ten ZeilenŻ’’’’’N nummer, die nach GOTO beziehungsweise GOSUB steht, verzweigt. ’’N Die maximale Anzahl von Zeilennummern, die nach GOTO oder’’’’’’’> GOSUB angegeben werden dŪrfen, ist 512. ’’’’’’’’N Nimmt einen Wert an, zu dem keine Zeile in der’^ Liste gefunden wird (z.B. Werte kleiner gleich null oder Werte grŚūer’’’’’’’’’’’N als die Anzahl der angegebenen Zeilennummern), so wird das ProŻ’N gramm mit der der ON-Anweisung folgenden Programmzeile fortgeŻ’’ setzt. ’’’’’’’’’N Statt GOTO und GOSUB darf auch GO TO beziehungsweise’’’’’’’’’’’’. GO SUB geschrieben werden. ’’’’’^Hinweis : Die ON-Anweisung muū in #on("ieiner#off("i Programmzeile stehen. ’’’’’’’’’’’’’’’>Beispiel : 260 INPUT "MenŪpunkt 1, 2 oder 3", a ’’’’’’’’’> 270 ON VAL (a) GOTO 300, 400, 500 ’’’’’’’’’’’’ 280 GOTO 260 ’. 300 PRINT "MenŪpunkt 1" ’’’’’’ . ’’’’’’’’’’’’ . ’’’’’’’’’’’’. 400 PRINT "MenŪpunkt 2" ’’’’’’ . ’’’’’’’’’’’’ . ’’’’’’’’’’’’. 500 PRINT "MenŪpunkt 3" ’’’’’’N Entsprechend der Eingabe wird nach 300, 400 oder 500 verzweigt.’> Bei Fehleingaben wird Zeile 280 ausgefŪhrt. ’’’’.Vergleiche : GOSUB-, GOTO-, IF-Anweisungen ’’Anweisung : OPTION BASE ’’’’’’NZweck : Festlegung des kleinsten Wertes fŪr Feldindizes ’’’’’’’’’’’’’’’.Syntax : OPTION BASE 0|1 ’’’’’’’’’’’’’’’NErklŁrung : OPTION BASE legt fest, ob die nachfolgend dimensionierten Felder^ Elemente mit dem Index 0 erhalten, oder ob der niedrigste Index 1’’’’’’’’’’’’’’’> ist. Voreingestellt ist OPTION BASE 0. ’’’’’’’’’^Hinweis : Der niedrigste Feldindex kann fŪr jedes Feld individuell eingestellt’’’’’’’’’’’’N werden. Die OPTION BASE-Anweisung gilt fŪr alle Felder, deren’’’N Dimensionierung ihr textuell nachfolgen. Eine erneute OPTION’’’’^ BASE-Anweisung kann dann die Untergrenze fŪr die #on("iihr#off("i folgenden’’’’’. Dimensionierungen festlegen. ’’’>Beispiel : 10 DIM a (100) 'Indizes 0-100 ’’’’’’’’’’. 20 OPTION BASE 1 ’’’’’’’’’’’’’> 30 b$ (3) = "hallo" 'Indizes 1-10 ’’’’’’’’’’’> 40 DIM a% (5) 'Indizes 1-5 ’’’’’’’’’’’’. 50 OPTION BASE 0 ’’’’’’’’’’’’’> 60 DIM c% (9) 'Indizes 0-9 ’’’’’’’’’’’’> 70 LET d (4) = 12.3 'Indizes 0-10 ’’’’’’’’’’’Vergleiche : DIM-Anweisung ’’Operator : OR .Siehe Kapitel 4.4. (Operatoren) ’’’’’’’’’’’’’’Funktion : POS ’’’’’’’’’’’’’’’>Zweck : Ermittlung der aktuellen Cursorspalte ’’’’’’’’’.Syntax : POS () ’’’’’’’’’^ErklŁrung : Geliefert wird die Nummer der Spalte (als INT), in der sich der Cursor’’’’’’’’’’N auf dem Bildschirm befindet. Die Spalte ganz links hat die NumŻ’ mer 1. ’’’’’’’’’N Der Argument-Ausdruck ist ein Dummy-Argument (hat keinen’’’’’’’’> Einfluū auf den gelieferten Wert). ’’’’’’’’’’’’’Beispiel : 10 CLS ’’’’’’’. 20 PRINT "testtext"; ’’’’’’’’’. 30 PRINT POS (0) ’’’’’’’’’’’’’. Ausgabe: testtext 9 ’’’’’’’’’.Vergleiche : CSRLIN-, LPOS-Funktionen ’’’’’’’Anweisung : PRINT ’’’’’’’’’’’’.Zweck : Ausgabe auf den Bildschirm ’’’’>Syntax : PRINT [#ib(3)#USING#ie(3)# ;] ’’’’’’’’^ #right#[ #ib(3)#TAB#ie(3)# () | , | ; | ] [...] ’’’’’’’’’’’’’>ErklŁrung : : TEXT-Ausdruck fŪr USING (s. u.) ’’’’> : INT-Ausdruck (s. u.) ’’’’’’’’’’’’’’’N : TEXT-Ausdruck oder numerischer Ausdruck, der’’’’’’’’> ausgegeben werden soll. ’’’’’’’’’’’’N PRINT dient der Ausgabe von Zeichen auf dem Bildschirm. ’’’’’’’^ Numerische Werte werden mit sieben signifikanten Ziffer ausgegeŻ’’’’’’’’’’’’’’’^ ben. Bei Exponentendarstellung werden fŪr den Exponent maximal 3’’’’’’’’’’’’’’’^ Ziffern ausgegeben. Hinter allen numerischen Werten und vor posiŻ’’’’’’’’’’’’’’^ tiven numerischen Werten wird jeweils ein Leerzeichen ausgegeben. ’’’’’’’’’’’’’N TAB bewirkt eine Positionierung des Cursors auf die angegebene’^ Spalte (die Spalte ganz links hat die Nummer 1). Ist die Spaltenzahl’’’’’’’’’’’^ grŚūer als die mit WIDTH eingestellte Ausgabebreite, so wird auf die’’’’’’’’’’’N Spalte mit der Nummer Spalte MODULO Ausgabebreite positioniert.^ Eine Spaltennummer kleiner gleich null bewirkt eine entsprechende’’’’’’’’’’’’’’ Warnung. ’’’’’’^ Ist die Spalte ld elems := field elems * (field limit + 1 - array base)’’’’’’’’> IF symb.type = del AND symb.no = close bracket’’’’’’’’’’ THEN next symbol;’’’’’’’. LEAVE get field size’’’’’’’’’’’’’’’. ELSE skip (comma, del) FI’’’’’’’’’’’’’’’declare field:. field size CAT mki (array base);’’’’’’’’’’’’. field size CAT mki (field elems);’’’’’’’’’’’. declare var (field, field size) .’’’’’’’’’’end statement:N(*END *)’ next symbol;. parameter (1, void type, const, nil adr);’’’ apply (1, 0, ret) .’’’’’’’’error statement:’’’’’’’’’’’’’’N(*ERROR *) next symbol;. get expr (expr result, int type);’’’’’’’’’’’> parameter (1, int type, const, expr result.adr);’’’’’’’’’’’’> parameter (2, text type, const, niltext value);’’’’’’’’’’’’’ apply (1, 2, "errorstop") .gosub statement:’’’’’’’’’’’’’’N(*GOSUB *)  next symbol; get const (label, int type); gosub (this label) .’’’’’’’goto statement :’’’’’’’’’’’’’’N(*GOTO *)’ next symbol; get const (label, int type); apply (this label) .’’’’’’’>this label: label list [label pos (label no)] .’’’’’’’’’’’’’’.label no: label.name ISUB 1 .’’’’’’’’’’’’’’’input statement:’’’’’’’’’’’’’’N(*INPUT [;]["Anfrage" ;/,] Variable [, Variable] *) . ROW 100 DTYPE VAR input var data;’’’’’’’’’’’ INT VAR number input vars;’’ LABEL VAR input lab;’’’’’’’’ next symbol; declare (input lab);’’’’’’’’ define (input lab);’’’’’’’’’ get semicolon for cr lf;’’’’. get question and question mark;’’’’’’’’’’’’’ apply (1, 3, "readinput");’’ get input eof;’’’’’’’’’’’’’’^ get data types of input vars (input var data, number input vars); (* F25/rr *)’’’’’’’’’’’’’’^ check data types of input vars; (* F8/F25/rr *)’’’’’’’’’’’’’’ apply (1, 0, "inputok");’’’’N apply (input lab, FALSE); ’’’’’’’’’’’’’^ assign list of input var . (* F8/F25/rr *)’’’’’’’’’’’’’’get semicolon for cr lf:’’’’’’. IF symb.type = del AND symb.no = semicolon’’ THEN next symbol;’’’’’’’’’’’> parameter (1, bool type, const, false value)’’’’’’’’’’’> ELSE parameter (1, bool type, const, true value) FI .’’’’’.get question and question mark:’’’’’’’’’’’’’’’> IF symb.type = const AND symb.data = text type’’’’’’’’’’’’’’. THEN get const (question, text type);’’’’’’’> parameter (2, text type, const, question.adr);’’’’’’’’’> parameter (3, bool type, const, question mark value);’’ next symbol’’’’’’’’’’’’> ELSE parameter (2, text type, const, niltext value);’’’’’’’’N parameter (3, bool type, const, true value); (* F7/rr *)’’question mark value:’’’’’’’’’’. IF symb.type = del AND symb.no = semicolon’’ THEN true value’’’’’’’’’’’’’. ELIF symb.type = del AND symb.no = comma’’’’ THEN false value’’’’’’’’’’’’N ELSE basic error (2, NAME symb, " ; oder , erwartet"); nil adr FI .’’’’’’’get input eof:. IF symb.type = res word AND symb.no = eof s’’ THEN next symbol;’’’’’’’’’’’’. get const (label, int type);’’’’’’’’’’’’. apply (1, 0, "inputeof");’’’’’’’’’’’’’’’ apply (this label, TRUE)^check data types of input vars : (* F8/F25/rr *)’’’’’’’’’’’’’’’. FOR i FROM 1 UPTO number input vars’’’’’’’’’> REP parameter (1, int type, const, input data type);’’’’’’’’. apply (1, 1, "checkinput");’’’’’’’’’’’’’. apply (input lab, FALSE);’’’’’’’’’’’’’’’^input data type : (* F8/F25/rr *)’’’’’’’’’’’’’’’> IF input var data (i) = int type THEN one value’’’’’’’’’> ELIF input var data (i) = real type THEN two value’’’’’’’’’> ELIF input var data (i) = text type THEN three value’’’’’’’> ELSE zero value’’’’’’’’^assign list of input var : (* F8/F25/rr *)’’’’’’’’’’’’’’ REP get var (var result);’’’> parameter (1, var result. data, var, var result. adr);’’. apply (1, 1, "assigninput");’’’’’’’’’’’’. IF symb.type = del AND symb.no = comma’’ THEN next symbol’’’’’’’’. ELSE LEAVE assign list of input var FI’’kill statement:’’’’’’’’’’’’’’’N(*KILL *)’ next symbol;. get expr (filename, text type);’’’’’’’’’’’’’> parameter (1, text type, const, filename.adr);’’’’’’’’’’’’’’> parameter (2, quiet type, const, next local adr (int type)); apply (2, 0, "quiet");’’’’’’ apply (1, 2, "forget") .’’’let statement:N(*[LET] = *)’. IF symb.type = res word AND symb.no = let s’ THEN next symbol FI;’’’’’’’’ get var (var result);’’’’’’’ skip (equal, operator);’’’’’. get expr (expr result, var result.data);’’’’N apply move (var result.adr, expr result.adr, var result.data).’’’’’’’’’’’’’’Nline statement: (* F9/rr *)’’^(*1. LINE INPUT [;][<"prompt string">;] *)’’’’’’’’’’’’’’’ next symbol; skip (input s, res word);’’’ get semicolon;’’’’’’’’’’’’’’ get prompt string;’’’’’’’’’’ apply (1, 3, "readinput");’’ assign string var result .’get semicolon:. IF symb.type = del AND symb.no = semicolon’’ THEN next symbol;’’’’’’’’’’’> parameter (1, bool type, const, false value)’’’’’’’’’’’> ELSE parameter (1, bool type, const, true value) FI .’’’’’get prompt string:’’’’’’’’’’’’> IF symb.type = const AND symb.data = text type’’’’’’’’’’’’’’. THEN get const (question, text type);’’’’’’’> parameter (2, text type, const, question.adr);’’’’’’’’’ skip (semicolon, del);’> ELSE parameter (2, text type, const, niltext value);’’’’’’’’> parameter (3, bool type, const, false value) .’’’’’’’’’’’’’’assign string var result :’’’’. get var (var result, text type);’’’’’’’’’’’’> parameter (1, text type, var, var result.adr);’’’’’’’’’’’’’’. apply (1, 1, "assigninputline") .’’’’’’’’’’’lprint statement:’’’’’’’’’’’’’N(*LPRINT (cf. PRINT) *)’. apply (1, 0, "switchtoprintoutfile");’’’’’’’ print statement;’’’’’’’’’’’’. apply (1, 0, "switchbacktooldsysoutstate").’l set statement:’’’’’’’’’’’’’’N(*LSET = *)  next symbol;. get var (var result, text type);’’’’’’’’’’’’ skip (equal, operator);’’’’’. get expr (expr result, text type);’’’’’’’’’’> parameter (1, text type, var, var result.adr);’’’’’’’’’’’’’’> parameter (2, text type, const, expr result.adr);’’’’’’’’’’’ apply (1, 2, "lset") .’’’’’mid statement:N(*MID$ (, from [,len]) = *)  next symbol; skip (open bracket, del);’’’. get var (var result, text type);’’’’’’’’’’’’ skip (comma, del);’’’’’’’’’’ get expr (from, int type);’’. IF symb.type = del AND symb.no = comma’’’’’’ THEN next symbol;’’’’’’’’’’’. get expr (len, int type)’’’’’’’’’’’’’’’ ELSE len := nilsymbol FI;’’’ skip (close bracket, del);’’ skip (equal, operator);’’’’’. get expr (expr result, text type);’’’’’’’’’’> parameter (1, text type, var, var result.adr);’’’’’’’’’’’’’’. parameter (2, int type, const, from.adr);’’’mit der angegebenen Nummer in der aktuellen Zeile’’’’’’’’’’’’’’’^ bereits Ūberschritten, dann wird auf die nŁchste Zeile positioniert. ’’’’’’’’’’N Ein Semikolon bewirkt, daū der Cursor an der gerade erreichten’. Position bleibt. ’’’’’’’’’’’’’’^ Ein Komma bewirkt die Positionierung auf die nŁchste gŪltige SpalŻ’’’’’’’’’’’’’N te, fŪr deren Nummer gilt: Nummer MODULO 16 ist 1. ’’’’’’’’’’’’N Das Komma dient also der Ausgabe in 16 Zeichen breiten Zonen. ’N Endet die PRINT-Anweisung mit TAB (), einem Komma’’’’’’N oder einem Semikolon, dann wird kein Zeilenvorschub ausgelŚst.  #onbold#USING ’N Der EUMEL-BASIC-Compiler unterstŪtzt auch die PRINT’’’’’’’’’’’’> USING-Anweisung fŪr formatierte Ausgaben. ’’’’’N Der nach dem Wort USING angegebene TEXT-Ausdruck spezifiŻ’’’’’’N ziert das Ausgabeformat fŪr eine PRINT USING-Anweisung. ’’’’’’’. Formatierung von Texten: ’’’’’’N "!": Nur das erste Zeichen einer Zeichenfolge wird ausgegeben ’N "\n Leerzeichen\": Es werden die 2 + n ersten Zeichen einer’’’’. Zeichenfolge ausgegeben ’’N "&": Alle Zeichen einer Zeichenfolge werden ausgegeben ’’’’’’’’. Formatierung von Zahlen: ’’’’’’> "Ž": bezeichnet eine Ziffernposition ’’’’’’’’’’> ".": Position des Dezimalpunkts ’’’’’’’’’’’’’’’N "+": (vor oder nach Zahlen) Ausgabe des Vorzeichens ’’’’’’’’’’’N "-": (nach Zahlen) gegebenenfalls Ausgabe von "-" hinter der’’’ Zahl ’’’’’^ "**": FŪhrende Leerstellen werden mit Sternchen aufgefŪllt; wirkt’’’’’’’’’’’’’’. auūerdem wie "ŽŽ". ’’’’’’^ "$$": Es wird ein Dollarzeichen links vor der formatierten Zahl ausgegeben;’’’’. wirkt auūerdem wie "ŽŽ". ^ "**$": FŪhrende Leerstellen werden mit Sternchen ausgefŪllt und direkt vor’’’’’^ der formatierten Zahl wird ein Dollarzeichen ausgegeben; wirkt’’’’’’’’’’. auūerdem wie "ŽŽŽ". ’’’’^ ",": (vor Dezimalpunkt) Unterteilung der Vorkommastellen in DreierŻ’’’’’’’’’’’’. gruppen mittels Komma ’’’’> "^^^^": Position des Exponenten ’’’’’’’’’’’’’’’^ "_": Ein Zeichen, das einem Unterstreichungsstrich folgt, wird unverŁndert’’’’’. ausgegeben ’’’’’’’’’’’’’’’^ Ist der Format-Ausdruck fehlerhaft, so kommt es zum Fehler "USING-’’’’’’’’’’’’’. Format fehlerhaft". ’’’’’’’’’’’^ Ųberschreitet eine auszugebende Zahl in irgendeiner Hinsicht die im’’’’’’’’’’’’^ Format-Ausdruck fŪr sie vorgesehene Stellenzahl, so wird das Zeichen "%"’’’’’’’> ausgegeben, um den Fehler anzuzeigen. ’’’’’’’’’^Hinweis : 1. PRINT (und PRINT USING) richtet sich bei allen Ausgaben nach’’’’’’’’’’’’’’’> der mit WIDTH eingestellten Ausgabebreite. ’N 2. Alle Ausgaben von PRINT kŚnnen mit der Systemprozedur’’’’’’’^ 'sysout' in eine Datei umgeleitet werden. Dann wird nichts auf’’’’’’’’’’’’’’. das Terminal ausgegeben. ’’’^ 3. Das Verhalten beim Erreichen der letzten Bildschirmzeile kann’’’’’’’’’’’’’’’N mit der Prozedur 'basic page' gesteuert werden. Vergleiche’’N hierzu Kapitel 5, "Steuerung der Bildschirmausgabe". ’’’’’’’>Beispiel : 10 PRINT "hallo", 2 ^ 32 TAB (33) "Ende"; ’’’’> Ausgabe: hallo 4.294967E+09 Ende N Position: 1234567890123456789012345678901234567890 ’’’’’’’’’’’’>Vergleiche : WRITE-, LPRINT-Anweisungen, POS-, CSRLIN-, SPC- Funktionen ’’’’Anweisung : RANDOMIZE ’’’’’’’’NZweck : Festlegung eines Anfangswertes fŪr den Zufallszahlengenerator ’.Syntax : RANDOMIZE [] ’’’NErklŁrung : Mit RANDOMIZE erhŁlt der Zufallszahlengenerator einen bestimmten Startwert. ’’’’’N Ist kein numerischer Ausdruck angegeben, so wird wŁhrend des’’’’N Programmlaufs die Meldung "Startwert des ZufallszahlenŻ’’’’’’’’’N generators ?" ausgegeben und ein Startwert eingelesen. ’’’’’’’’’^ Wird der Zufallszahlengenerator immer mit dem gleichen Wert gestarŻ’’’’’’’’’’’’’^ tet, so liefert er auch immer die gleichen Zufallszahlen. Soll er immer’’’’’’’’’^ verschiedene Werte liefern, so kann er zum Beispiel mit der SystemŻ’’’’’’’’’’’’’N uhr auf zufŁllige Startwerte gesetzt werden (RANDOMIZE TIMER). ’.Beispiel : 10 RANDOMIZE 4711 ’’’’’’’’’’’’. 20 FOR i = 1 TO 5 ’’’’’’’’’’’’. 30 PRINT INT (RND * 10); ’’’’’ 40 NEXT i ’’’’. Ausgabe: 5 6 2 9 6 ’’’’’Vergleiche : RND-Funktion ’’’Anweisung : READ ’’’’’’’’’’’’’>Zweck : Auslesen von Daten aus DATA-Anweisungen ’’’’’’’>Syntax : READ [, ] [...] ’’’’’’’’’’NErklŁrung : : numerische Variable oder TEXT-Variable ’’’’’’’’’’’’’N Die READ-Anweisung liest die nŁchsten Elemente aus der aktuellenN DATA-Anweisung (s.d.) in die angegebenen Variablen ein. ’’’’’’’’N In TEXT-Variablen kŚnnen sowohl "quoted strings" als auch "unŻ’’N quoted strings" (vgl. DATA-Anweisung) eingelesen werden. ’’’’’’’N In numerische Variablen kŚnnen dagegen nur "unquoted strings"’’’N eingelesen werden. Auūerdem mŪssen die Zeichen des "unquoted’’’’^ string" eine gŪltige Darstellung einer numerischen Konstanten (evenŻ’’’’’’’’’’’’^ tuell mit Vorzeichen) sein. Sind diese Bedingungen nicht erfŪllt, so’’’’’’’’’’’’N kommt es bei der AusfŪhrung des Programms zu entsprechenden’’’’’ Fehlern. ’’’’’’’N Eine READ-Anweisung kann Daten aus vorangehenden und nachŻ’’’’’’> folgenden DATA-Anweisungen lesen. ’’’’’’’’’’’’’’N Alle DATA-Anweisungen eines Programms bilden zusammen einen’’’’’N groūen sequentiellen Speicher, auf den mit READ der Reihe nach’’N zugegriffen wird. Intern wird ein sogenannter READ-DATA-Zeiger’’N gefŪhrt, der immer auf das nŁchste auszulesende Element zeigt. ’N Die RESTORE-Anweisung (s.d.) ermŚglicht es, den READ-DATA-’’’’’’N Zeiger auf das erste Element einer bestimmten DATA-Zeile zu’’’’’ setzen. ’’’’’’’’N Sind keine Daten mehr fŪr READ vorhanden, so wird die AusfŪhrungN des Programms mit der Fehlermeldung "Keine Daten mehr fŪr’’’’’’’. READ" abgebrochen. ’’’’’’’’’’’’’>Beispiel : 2020 PRINT "Stadt", "Land", "Fluū" ’’’’’’’’’’’> 2030 READ stadt$, land$, fluū$ ’’’’’’’’’’’’’’’> 2040 PRINT stadt$, land$, fluū$ ’’’’’’’’’’’’’’ . ’’’’’’’’’’’’N 5000 DATA KŚln, Bundesrepublik Deutschland, Rhein ’’’’’’’’’’’’.Vergleiche : DATA-, RESTORE-Anweisungen ’’’’’Anweisung : REM ’’’’’’’’’’’’’’NZweck : ErmŚglicht das EinfŪgen von Kommentaren in ein Programm ’’’’’’’.Syntax : REM ’’’’’’’’’’’’>ErklŁrung : : Beliebige Folge von Zeichen ’’’’N Wird eine REM-Anweisung gefunden, so wird der Rest der ProŻ’’’’’^ grammzeile nicht> parameter (3, text type, const, expr result.adr);’’’’’’’’’’’ IF len.data = int type’’’’’’> THEN parameter (4, int type, const, one value);’’’’’’’’’’’’’> parameter (5, int type, const, len.adr);’’’’’’’’’’’’’’’N parameter (6, text type, var, next local adr (text type));’’’’’’’’’’’’’. apply (3, 3, "subtext");’’’’’’’’’’’’’’’> parameter (3, text type, const, local adr);’’’’’’’’’’’’ apply (1, 3, "replace") .’’name statement:’’’’’’’’’’’’’’’N(*NAME AS *)  next symbol;. get expr (old name, text type);’’’’’’’’’’’’’ skip (as s, res word);’’’’’’. get expr (new name, text type);’’’’’’’’’’’’’> parameter (1, text type, const, old name.adr);’’’’’’’’’’’’’’> parameter (2, text type, const, new name.adr);’’’’’’’’’’’’’’ apply (1, 2, "rename") .’’’option statement:’’’’’’’’’’’’’N(*OPTION BASE 0|1 *)’ next symbol; skip (base s, res word);’’’’. get const (base size, int type);’’’’’’’’’’’’ IF new array base > 1’’’’’’’. THEN basic error (105, NAME base size, ""). ELSE array base := new array base’’’’’’’’’new array base:’’’’’’’’’’’’’’’ base size.name ISUB 1.’’’’’’randomize statement:’’’’’’’’’’N(*RANDOMIZE [] *)’ next symbol; IF symb.type = eos’’’’’’’’’’ THEN apply (1, 0, "initrnd"). ELSE get expr (expr result, real type);’’’’’> parameter (1, real type, const, expr result.adr);’’’’’’ apply (1, 1, "initrnd")read statement:’’’’’’’’’’’’’’’N(*READ *) ’’’’’ next symbol; REP get var (var result);’’’> parameter (1, text type, const, data text);’’’’’’’’’’’’’. parameter (2, int type, var, data pos);’> parameter (3, var result.data, var, var result.adr);’’’’ apply (1, 3, "read");’’’ IF symb.type = eos’’’’’’. THEN LEAVE read statement’’’’’’’’’’’’’’’. ELSE skip (comma, del) FI’’’’’’’’’’’’’’’rem statement:N(*REM *)’ next statement;’’’’’’’’’’’’’> symb := SYMBOL : ("", eol, eos, LOC 0, void type); ’’’’’’’’’ LEAVE get basic line .’’’’’restore statement:’’’’’’’’’’’’N(*RESTORE [] *)  next symbol; IF symb.type = eos’’’’’’’’’’. THEN parameter (1, int type, var, data pos);> parameter (2, int type, const, one value);’’’’’’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’ apply (1, 2, int move);. ELSE get const (label, int type);’’’’’’’’’’’> parameter (1, text type, const, data text);’’’’’’’’’’’’. parameter (2, int type, var, data pos);> parameter (3, int type, const, label.adr);’’’’’’’’’’’’’ apply (1, 3, "restore")return statement :’’’’’’’’’’’’N(*RETURN *)’ next symbol;r set statement:’’’’’’’’’’’’’’N(*RSET = *) ’’’’’ next symbol;. get var (var result, text type);’’’’’’’’’’’’ skip (equal, operator);’’’’’. get expr (expr result, text type);’’’’’’’’’’> parameter (1, text type, var, var result.adr);’’’’’’’’’’’’’’> parameter (2, text type, const, expr result.adr);’’’’’’’’’’’ apply (1, 2, "rset") .’’’’’stop statement: ’’’’’’’’’’’’’’N(*STOP *)’ next symbol;> expr result := SYMBOL: (nil, any, const, nil adr, int type);. expr result.name CAT act stat no;’’’’’’’’’’’. declare const (expr result, int type);’’’’’’> parameter (1, int type, const, expr result.adr);’’’’’’’’’’’’ apply (1, 1, "basicstop");’’. parameter (1, void type, const, nil adr);’’’ apply (1, 0, ret) .’’’’’’’’swap statement:’’’’’’’’’’’’’’’N(*SWAP , *)’’’’’’’’’’’ next symbol; get var (var result);’’’’’’’> parameter (1, var result.data, var, var result.adr);’’’’’’’’> DTYPE CONST first var result data :: var result.data;’’’’’’’ skip (comma, del);’’’’’’’’’’ get var (var result);’’’’’’’. IF first var result data = var result.data’’> THEN parameter (2, var result.data, var, var result.adr);’ apply (1, 2, "swap")’> ELSE basic error (106, var result.name, "gefunden: "’’’’’’N + dump (first var result data) + ", " + dump (var result.data))’’’’troff statement:’’’’’’’’’’’’’’N(*TROFF *)’ next symbol; basic trace := FALSE .’’’’’tron statement:’’’’’’’’’’’’’’’N(*TRON *)’ next symbol; basic trace := TRUE .’’’’’’width statement:’’’’’’’’’’’’’’N(*WIDTH GrŚūe *)’ next symbol;. get expr (expr result, int type);’’’’’’’’’’’> parameter (1, int type, const, expr result.adr);’’’’’’’’’’’’ apply (1, 1, "width") .’’’’write statement:’’’’’’’’’’’’’’N(*WRITE [] *) next symbol; IF symb.type = eos’’’’’’’’’’. THEN apply (1, 0, "nextline")’’’’’’’’’’’’’’’. ELSE write list of expr results FI .’’’’’’’write list of expr results:’’’ REP get expr (expr result);’> parameter (1, expr result.data, const, expr result.adr);. apply (1, 1, "basicwrite");’’’’’’’’’’’’’ IF symb.type = eos’’’’’’. THEN apply (1, 0, "nextline");’’’’’’’’’’. LEAVE write list of expr results’’’ ELSE skip (comma, del);’> parameter (1, text type, const, comma value);’’’’’’. apply (1, 1, "basicout") ’’’’’’’’’’END PROC get basic line;’’’’’’.PROC gen stat no (INT CONST local stat no):’’’N(* Die Zeilennummer wird als Label definiert *)’N(* Die Prozedur 'stat no' wird mit der Statementnummer aufgerufen *)’. act stat no := local stat no;’’’’’’’’’’’’’’’> define (label list [label pos (act stat no)]);’’’’’’’’’’’’’’ declare (1, int type);’’’’’’ declare (1, const);’’’’’’’’’ define (1, act stat no);’’’’. parameter (2, void type, const, nil adr);’’’ apply (1, 1, ln op);’’’’’’’’ IF basic trace’’’’’’’’’’’’’’N THEN expr result := SYMBOL: (nil, any, const, nil adr, int type);’’’’’’’’’’’. expr result.name CAT act stat no;’’’’’’. declare const (expr result, int type);’> parameter (1, int type, const, expr result.adr);’’’’’’’ apply (1, 1, trace op)’ next symbol .’’’’’’’’’’’’’’END PROC gen stat no;’’’’’’’’’PROC for statement:’’’’’’’’’’’N(*FOR = x TO y [STEP z] *)’’’’’’> SYMBOL VAR local var result, init val, limit val, step val;’. LABEL VAR start loop, end loop;’’’’’’’’’’’’’N INT CONST for stat no := act stat no, (* F29/rr *). for scan line no := scan line no;. TEXT CONST for symb name := symb.name;’’’ declare (start loop);’’’’’’’ declare (end loop);’’’’’’’’’ next symbol; get loop var;’’’’’’’’’’’’’’’ skip (equal, operator);’’’’’. get expr (init val, local var result.data);’ skip (to s, res word);’’’’’’. get expr (limit val, local var result.data); get step val;’’’’’’’’’’’’’’’ init loop var;’’’’’’’’’’’’’’ define (start loop);’’’’’’’’ gen check of variable;’’’’’’. get statement group (next s);’’’’’’’’’’’’’’’. IF symb.type = eos AND symb.no = -next s’’’’ weiter beachtet. Die Compilierung wird in der folŻ’’’’’’’’’’’’’. genden Zeile fortgesetzt. ’’’’’’N Es empfielt sich, von Kommentarzeilen mŚglichst oft Gebrauch zu’^ machen, weil sie den Programmtext dokumentieren und strukturieren. ’’’’’’’’’’’’’NHinweis : Nach REM kŚnnen keine weiteren Anweisungen mehr in einer ProŻ’’’^ grammzeile stehen, da sie nicht Ūbersetzt werden. Auch der DoppelŻ’’’’’’’’’’’’’’> punkt wird nach REM nicht beachtet. ’’’’’’’’’’’’.Beispiel : 1000 REM Ausgabe des Feldes ’’> 1010 FOR i = 1 TO feldgroesse% ’’’’’’’’’’’’’’’> 1020 PRINT "Eintrag"; i; feld (i) ’’’’’’’’’’’’ 1030 NEXT i ’’Anweisung : RESTORE ’’’’’’’’’’NZweck : Setzen des READ-DATA-Zeigers auf den Anfang einer angegebeŻ’’’’ nen Zeile ’’’’’’.Syntax : RESTORE [] ’’’’’’.ErklŁrung : : INT-Konstante ’’N Der READ-DATA-Zeiger (vgl. DATA-Anweisung) wird auf die Zeile’’’. gesetzt. ’’’’’’’’N Wird keine Zeilennummer angegeben, so wird fŪr ’’’ 1 eingesetzt. ’’N Existiert die Programmzeile nicht oder ist in ihrN keine DATA-Anweisung vorhanden, so wird der Zeiger auf die’’’’’’N nŁchste textuell folgende DATA-Anweisung gesetzt. ’’’’’’’’’’’’’’N Folgt der angegebenen Zeilennummer im Programm keine DATA-’’’’’’N Anweisung mehr, kommt es zu der Fehlermeldung "RESTORE: Keine’’’N DATA-Anweisung in oder nach Zeile gefunden !" ’’’.Beispiel : 10 READ a, b, c ’’’’’’’’’’’’’’ 20 RESTORE ’’’. 30 READ d, e, f ’’’’’’’’’’’’’’. 40 DATA 2, 3, 5 ’’’’’’’’’’’’’’. 50 PRINT a; b; c; d; e; f ’’’’. Ausgabe: 2 3 5 2 3 5 ’’.Vergleiche : DATA-, READ-Anweisungen ’’’’’’’’Anweisung : RETURN ’’’’’’’’’’’>Zweck : RŪcksprung aus einem Unterprogramm ’’’’’’’’’’’’Syntax : RETURN ’’’’’’’’NErklŁrung : RETURN bewirkt einen RŪcksprung aus dem Unterprogramm hinter’’’’. die aufrufende GOSUB-Anweisung. N Es dŪrfen auch mehrere RETURN-Anweisungen in einem UnterproŻ’’’’N gramm vorkommen, um es an verschiedenen Stellen zu verlassen. ’’N Wird ein RETURN gefunden, ohne daū ein GOSUB durchlaufen’’’’’’’’N wurde, so wird mit der Fehlermeldung "RETURN ohne GOSUB"’’’’’’’’ abgebrochen. ’’’>Beispiel : 140 GOSUB 10000 'Zeige Uhrzeit ’’’’’’’’’’’’’’ . ’’’’’’’’’’’’ . ’’’’’’’’’’’’> 370 GOSUB 10000 'Zeige Uhrzeit ’’’’’’’’’’’’’’ 9990 END ’’’’’> 10000 REM Unterprogramm Zeige Uhrzeit ’’’’’’’’> 10010 PRINT "Es ist " + TIME$ + " Uhr" ’’’’’’’ 10020 RETURN ’.Vergleiche : GOSUB-, ON-Anweisungen ’’’’’’’’’Funktion : RIGHT$ ’’’’’’’’’’’’NZweck : Erzeugung eines Teiltextes aus einem anderen Text ’’’’’’’’’’’’’>Syntax : RIGHT$ (, ) ’’’’.ErklŁrung : : INT-Ausdruck ’^ Die Funktion liefert die letzten Textzeichen des’’’’’’’’’’’’’’’ TEXT-Ausdrucks. N Ist grŚūer gleich der LŁnge des TEXT-’’’’’’’’’’N Ausdrucks, so wird der gesamte Ausdruck geliefert. ’’’’’’’’’’’’’.Beispiel : 10 LET a$ = "hallihallo" ’’’’’. 20 PRINT RIGHT$ (a$, 5) ’’’’’’. Ausgabe: hallo ’’’’’’’’’’’’’NVergleiche : LEFT$-, MID$-Funktionen, LSET-, MID$-, RSET-Anweisungen ’’’’’’’’Funktion : RND ’’’’’’’’’’’’’’’.Zweck : Erzeugung von Zufallszahlen ’’’.Syntax : RND [] ’’’’’’’’’^ErklŁrung : Wird kein Argument angegeben, so wird ein Wert grŚūer null fŪr den’’’’’’’’’’’’’’. Ausdruck angenommen. ’’’’’’’’’’’ RND (x) liefert  fŪr x > 0: ’’’’’N eine neue Zufallszahl. Es gilt immer: 0 <= RND < 1. Der Betrag’’N des Arguments hat keinen Einfluū auf das Ergebnis. ’’’’’’’’’’’’’ fŪr x = 0: ’’’’’> die letzte gelieferte Zufallszahl noch einmal. ’ fŪr x < 0: ’’’’’^ eine neue Zufallszahl. Vorher wird aber RANDOMIZE x (s.d.) ausgeŻ’’’’’’’’’’’’’’’ fŪhrt. ’’’’’’’’’> Die Zufallszahlen werden als REALs geliefert. ’’N Der Zufallszahlengenerator kann mit der RANDOMIZE-Anweisung’’’’’> auf bestimmte Startwerte eingestellt werden. ’’’.Beispiel : 10 FOR i = 1 TO 5 ’’’’’’’’’’’’. 20 PRINT INT (RND * 10) ’’’’’’ 30 NEXT i ’’’’> Ausgabe (z.B.): 7 9 9 5 0 ’’’’’’’’’’’’’’.Vergleiche : RANDOMIZE-Anweisung ’’’’’’’’’’’’Anweisung : RSET ’’’’’’’’’’’’’NZweck : Ersetzen von Zeichen eines Textes von rechts her ’’’’’’’’’’’’’’>Syntax : RSET = ’’’’’’’’NErklŁrung : Das Ergebnis des TEXT-Ausdrucks wird, rechts beginnend, in der’’N TEXT-Variablen eingesetzt. Es werden hŚchstens so viele Zeichen’^ ersetzt, wie bisher schon in der Variablen vorhanden waren, das heiūt’’’’’’’’’’’N die LŁnge des Textes in der Variablen Łndert sich nicht. ’’’’’’’^ Soll ein Text eingesetzt werden, der lŁnger ist als der Text in der’’’’’’’’’’’’’N Variablen, so wird die Variable nicht verŁndert. ’’’’’’’’’’’’’’’.Beispiel : 210 LET a$ = "ABCDEFG" ’’’’’’’. 220 RSET a$ = "12345" ’’’’’’’’ 230 PRINT a$, . 240 RSET a$ = "abc" ’’’’’’’’’’ 250 PRINT a$ ’> Ausgabe: AB12345 AB12abc ’’’’’’’’NVergleiche : LSET-, MID$-Anweisungen, LEFT$-, MID$-, RIGHT$-FunkŻ’’’’’’’’’’’’ tionen ’’’’’’’’’Funktion : SGN ’’’’’’’’’’’’’’’>Zweck : Ermittlung des Vorzeichens einer Zahl ’’’’’’’’’.Syntax : SGN () ’’’’’’’’’ErklŁrung : SGN (x) liefert  fŪr x > 0: 1 ’ fŪr x = 0: 0 ’. fŪr x < 0: -1 . ’’’’’’’’’’’’’’’Beispiel : 10 a = -12.74 > 20 PRINT SGN (a); SGN (-a); SGN (0 * a) ’’’’’’. Ausgabe: -1 1 0 ’’’’’’’’’’’Vergleiche : ABS-Funktion ’’’Funktion : SIN ’’’’’’’’’’’’’’’>Zweck : Berechnung des Sinus eines Radiantwertes ’’’’’’Syntax : SIN () NErklŁrung : : REAL-Ausdruck, der den Winkel in Radiant angibt. ’’’’’N Die Funktion liefert den Sinus des Winkels als REAL. ’’’’’’’’’’’.Beispiel : 10 PI = 3.141593 ’’’’’’’’’’’’’. 20 PRINT SIN (PI/4) ’’’’’’’’’’. Ausgabe: .7071068 ’’’’’’’’’’’.Vergleiche : COS-, TAN-Funktionen ’’’’’’’’’’’Funktion : SPACE$ ’’’’’’’’’’’’NZweck : Erzeugung einer bestimmten Anzahl von Leerzeichen ’’’’’’’’’’’’’.Syntax : SPACE$ () ’’’’’’’^ErklŁrung : Die SPACE$-Funktion liefert einen TEXT, der aus so vielen LeerzeiŻ’’’’’’’’’’’’’’N chen (Code 32) besteht, wie der Wert des INT-Ausdrucks angibt. ’.Beispiel : 10 PRINT "123456789" ’’’’’’’’’> 20 PRINT "^" + SPACE$ (7) + "^" ’’’’’’’’’’’’’’. Ausgabe: 123456789 ’’’’’’’’’’’’. ^ ^ ’’’’’’’’’’’’.Vergleiche : STRING$-Funktion ’’’’’’’’’’’’’’’Funktion : SPC ’’’’’’’’’’’’’’’^Diese Funktion entspricht exakt der SPACE$-Fun THEN next var statement’’’’’ ELSE define (end loop);’’’’’n basic error ("Compiler", 26, for scan line no, for stat no, for symb name, "", TRUE); (* F29/rr *)’’’’’ get var (local var result);’^ IF NOT (local var result.data = int type OR local var result.data = real type)’’’’’’’’’’’’’’N THEN basic error (2, NAME local var result, "INT oder REAL erwartet, "’’’’N + dump (local var result.data) + " gefunden")’’’’’’’’’. IF symb.type = res word AND symb.no = step s THEN next symbol;’’’’’’’’’’’> get expr (step val, local var result.data)’’’’’’’’’’’’’. ELIF local var result.data = int type’’’’’’’. THEN step val.data := int type;’’’’’’’’’’’’’. step val.adr := int one value’’’’’’’’’. ELSE step val.data := real type;’’’’’’’’’’’’. step val.adr := real one value’’’’’’’’init loop var:. IF local var result.data = int type’’’’’’’’’ THEN init int loop’’’’’’’’’’ ELSE init real loop FI .’’’’init int loop: IF limit val.type = var’’’’’N THEN parameter (1, int type, var, next local adr (int type));’’’’’’’’’’’’’’’> parameter (2, int type, const, limit val.adr);’’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’ apply (1, 2, int move);. limit val.adr := local adr;’’’’’’’’’’’’ IF step val.type = var’’’’’’N THEN parameter (1, int type, var, next local adr (int type));’’’’’’’’’’’’’’’> parameter (2, int type, const, step val.adr);’’’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’ apply (1, 2, int move);. step val.adr := local adr;’’’’’’’’’’’’’. IF NOT (init val.no = local var result.no)’’> THEN parameter (1, int type, var, local var result.adr);’’’’> parameter (2, int type, const, init val.adr);’’’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’ apply (1, 2, int move) init real loop:’’’’’’’’’’’’’’’ IF limit val.type = var’’’’’N THEN parameter (1, real type, var, next local adr (real type));’’’’’’’’’’’’’> parameter (2, real type, const, limit val.adr);’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’. apply (1, 2, real move);’’’’’’’’’’’’’’’. limit val.adr := local adr;’’’’’’’’’’’’ IF step val.type = var’’’’’’N THEN parameter (1, real type, var, next local adr (real type));’’’’’’’’’’’’’> parameter (2, real type, const, step val.adr);’’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’. apply (1, 2, real move);’’’’’’’’’’’’’’’. step val.adr := local adr;’’’’’’’’’’’’’. IF NOT (init val.no = local var result.no)’’> THEN parameter (1, real type, var, local var result.adr);’’’> parameter (2, real type, const, init val.adr);’’’’’’’’’> parameter (3, void type, const, nil adr);’’’’’’’’’’’’’’. apply (1, 2, real move) ’’’’’’’’’’’’’’’gen check of variable:’’’’’’’’N parameter (1, local var result.data, const, local var result.adr);’’’’’’’’’’> parameter (2, limit val.data, const, limit val.adr);’’’’’’’> parameter (3, step val.data, const, step val.adr);’’’’’’’’’’> parameter (4, bool type, const, nil adr); apply (4, nop);’’N(* In der nŁchsten Coder-Version ist eine PUSH-Angabe nop nicht nŚtig *)’ apply (1, 3, "loopend");’’’’ apply (end loop, TRUE) .’’’next var statement:’’’’’’’’’’’N(*NEXT [][,...] *)’’’’’’’’’’’’’’’ next symbol; generate loop end;’’’’’’’’’’ IF symb.type <> eos’’’’’’’’’. THEN check next var result FI .’’’’’’’’’’’’check next var result:’’’’’’’’. IF symb.no = local var result.no’’’’’’’’’’’’ THEN next symbol;’’’’’’’’’’’. IF symb.type = del AND symb.no = comma’ THEN next for loop FI’’N ELSE basic error (86, NAME symb, local var result.name + " erwartet") FI .’next for loop: IF end symbol = next s’’’’’’> THEN symb := SYMBOL:("", -next s, eos, nil adr, void type)N ELSE basic error (1, symb.name, "") (* mo *)’’’’’’’generate loop end:’’’’’’’’’’’’N parameter (1, local var result.data, var, local var result.adr);’’’’’’’’’’’’> parameter (2, step val.data, const, step val.adr);’’’’’’’’’’. parameter (3, void type, const, nil adr);’’’. IF local var result.data = int type’’’’’’’’’ THEN apply (1, 2, int incr)’. ELSE apply (1, 2, real incr) FI;’’’’’’’’’’’’ apply (start loop);’’’’’’’’’ define (end loop) .’’’’’’’’END PROC for statement;’’’’’’’NPROC if statement : (* Önd. 11.08.87, mo *)’N(* IF THEN | *)’N(* [ELSE |] *)’N(* IF GOTO *)’N(* [ELSE |] *)’. SYMBOL VAR local expr result;’’’’’’’’’’’’’’’ next symbol;. get expr (local expr result, int type);’’’’’ skip comma if there;’’’’’’’’N IF symb.type = res word AND (symb.no = then s OR symb.no = goto s)’’’’’’’’’’ THEN test expr result;’’’’ IF symb.no = goto s’’ THEN next symbol;’’. if goto statement’’’’’’’’’’’’’. ELIF next symbol is stat no’’’’’’’’’’. THEN if goto statement’’’’’’’’’’’’’. ELSE if then statement’’’’’’’’’’’’’N ELSE basic error (2, NAME symb, "THEN oder GOTO erwartet") FI .’’’’’’’’’’’’skip comma if there:’’’’’’’’’’. IF symb.no = comma AND symb.type = del’’’’’’ THEN next symbol’’’’’’’’’’test expr result:’’’’’’’’’’’’’> parameter (1, int type, const, local expr result.adr);’’’’’’> parameter (2, bool type, var, nil adr); apply (2, nop);’’’’ apply (1, 1, test) .’’’’’’’next symbol is stat no:’’’’’’’ next symbol;. symb.type = const AND symb.data = int type.’if goto statement:’’’’’’’’’’’’ SYMBOL VAR stat label;’’’’’’. get const (stat label, int type);’’’’’’’’’’’ expect else if comma found;’. IF symb.type = res word AND symb.no = else s. THEN apply (this label, FALSE);’’’’’’’’’’’ treat else case’’’’’’. ELIF symb.type <> eos OR symb.no <> eol’’’’’ THEN declare (else label);. apply (this label, FALSE);’’’’’’’’’’’ apply (else label);’’. get basic line (else s);’’’’’’’’’’’’’> IF symb.type = eos AND symb.no = -else s’’’’’’’’’’’’’ THEN else statement. ELSE define (else label)’’’’’’’’’’’. ELSE apply (this label, FALSE)’’’’’’’’’’’’>this label: label list [label pos (label no)] .’’’’’’’’’’’’’’.label no: stat label.name ISUB 1 .’’’’’’’’’’expect else if comma found:’’’. IF symb.type = del AND symb.no = comma’’’’’’ THEN next symbol;’’’’’’’’’> IF symb.no <> else s OR symb.type <> res word’’’’’’’’> THEN basic error (2, NAME symb, "ELSE erwartet")’’’treat else case:’’’’’’’’’’’’’’ IF next symbol is stat no’’’. THEN get const (stat label, int type);’’’’ apply (this label)’’’ ELSE get basic line’’’’’’’if then statement:’’’’’’’’’’’’ LABEL VAR fi label;’’’’’’’’’ declare (else label);’’’’’’’ apply (else label, TRUE);’’’ get basic line (else s);’’’’. IF symb.type = eos AND symb.no = -else s’’’’ THEN declare (fi label);’’’’ apply (fi label);’’’’’’ else statement;’’’’’’’’ define (fi label)’’’’’’. ELSE define (else label) FI .’’’’’’’’’’’’’’else statement:’’’’’’’’’’’’’’’ LABEL VAR else label;’’’’’’’ define (else label); ’’’’’’’ treat else case.’’’’’’’’’’’’END PROC if statement;’’’’’’’’PROC on statement:’’’’’’’’’’’’N(*2. ON Zweck : Berechnung der Quadratwurzel einer Zahl ’’’’’’’.Syntax : SQR () ’’’’’’’’’NErklŁrung : SQR (x) liefert die Quadratwurzel des durch den numerischen AusŻ. druck angegebenen Wertes. ’’’’’’> Das Ergebnis wird als REAL geliefert. ’’’’’’’’’’.Beispiel : 10 PRINT SQR (100); ’’’’’’’’’’. 20 PRINT SQR (2); ’’’’’’’’’’’’. 30 PRINT SQR (17.453) ’’’’’’’’> Ausgabe: 10 1.414214 4.177679 ’’’’’’’’’’’’’Anweisungsbestandteil : STEP ’Siehe FOR-Anweisung ’’’’’’’’’’Anweisung : STOP ’’’’’’’’’’’’’NZweck : Beenden der ProgrammausfŪhrung eines BASIC-Programms mit’’’’’’’ Meldung ’’’’’’’’Syntax : STOP ’’’’’’’’’’NErklŁrung : STOP beendet die ProgrammausfŪhrung des BASIC-Programms. ’’’’’’’N Im Gegensatz zu END (s.d.) erzeugt STOP dabei die Meldung "STOP’> beendet das Programm in Zeile ...". ’’’’’’’’’’’’N STOP-Anweisungen dŪrfen im Programm an beliebiger Stelle’’’’’’’’N stehen, und es darf auch mehr als eine STOP-Anweisung in einem’’. Programm vorkommen. ’’’’’’’’’’’’N Der Compiler Ūbersetzt ein Programm auch nach Erreichen einer’’’. STOP-Anweisung weiter. ’’’’’’’’’>Beispiel : 3220 IF eingabe$ = "Ende" THEN STOP ’’’’’’’’’’Vergleiche : END-Anweisung ’’Funktion : STR$ ’’’’’’’’’’’’’’>Zweck : Konvertierung einer Zahl in einen Text ’’’’’’’’.Syntax : STR$ () ’’’’’’’’NErklŁrung : Die Funktion liefert die Darstellung des Wertes des numerischen’. Ausdrucks als TEXT. ’’’’’’’’’’’’^ Die Zahlen werden so als Text geliefert, wie sie bei einer PRINT-’’’’’’’’’’’’’’’> Anweisung auf dem Bildschirm erscheinen wŪrden. .Beispiel : 10 LET zahl$ = STR$ (1e6) ’’’’. 20 PRINT zahl$; LEN (zahl$) ’’. Ausgabe: 1000000 7 ’’’’’’’’>Vergleiche : VAL-Funktion (KomplementŁrfunktion) ’’’’’’’’’’’’Funktion : STRING$ ’’’’’’’’’’’NZweck : Erzeugung eines Textes mit mehreren gleichen Zeichen ’’’’’’’’’’>Syntax : STRING$ (, |) ’’’’.ErklŁrung : : INT-Ausdruck ’’’’’’’’’N : INT-Ausdruck (Wert im Bereich 0 bis 255) ’’’’’’’’’’’’> Die Funktion liefert mal das Zeichen, ’> - das den ASCII-Code hat oder ’’’’’’’’’’’N - das am Anfang vom Ergebnis des TEXT-Ausdrucks steht. ’’’’’’’’’>Beispiel : 10 LET pfeil$ = STRING$ (10, "=") + ">" ’’’’’’N 20 PRINT pfeil$;" ";STRING$ (5, 35) '35 entspr. Ž ’’’’’’’’’’’’. Ausgabe: ==========> ŽŽŽŽŽ ’Vergleiche : SPACE$-Funktion Anweisungsbestandteil : SUB ’’Siehe GOSUB-Anweisung ’’’’’’’’Anweisung : SWAP ’’’’’’’’’’’’’>Zweck : Tauschen der Inhalte zweier Variablen ’’’’’’’’’.Syntax : SWAP , ’>ErklŁrung : SWAP tauscht die Inhalte der beiden Variablen. ’N Die beiden Variablen mŪssen vom gleichen Typ sein. ’’’’’’’’’’’’’.Beispiel : 3220 LET a = 10 ’’’’’’’’’’’’’’. 3230 LET b = 20 ’’’’’’’’’’’’’’. 3240 SWAP a, b ’’’’’’’’’’’’’’’. 3250 PRINT a; b ’’’’’’’’’’’’’’. Ausgabe: 20 10 ’’’’’’’’’’’’’Anweisungsbestandteil : TAB ’’.Siehe PRINT- und LPRINT-Anweisung ’’’’’’’’’’’’Funktion : TAN ’’’’’’’’’’’’’’’>Zweck : Berechnung des Tangens eines Radiantwertes ’’’’Syntax : TAN () NErklŁrung : : REAL-Ausdruck, der den Winkel in Radiant angibt. ’’’’’N Die Funktion liefert den Tangens des Winkels als REAL. ’’’’’’’’’.Beispiel : 10 PI = 3.141593 ’’’’’’’’’’’’’. 20 PRINT TAN (PI/4) ’’’’’’’’’’ Ausgabe: 1 ’’.Vergleiche : COS-, SIN-Funktionen ’’’’’’’’’’’Anweisungsbestandteil : THEN ’Siehe IF-Anweisung ’’’’’’’’’’’Funktion : TIMER ’’’’’’’’’’’’’>Zweck : Lesen der Systemuhr (CPU-Zeit der Task) ’’’’’’’Syntax : TIMER ’’’’’’’’’NErklŁrung : Die bisher von der Task verbrauchte CPU-Zeit (in Sekunden) wird’. als REAL geliefert. ’’’’’’’’’’’’N TIMER eignet sich auch zum Starten des Zufallszahlengenerators’’. (vgl. RANDOMIZE-Anweisung). ’’’’.Beispiel : 2010 LET starttime = TIMER ’’’ . ’’’’’’’’’’’’ . ’’’’’’’’’’’’> 2620 PRINT "Verbrauchte CPU-Zeit:"; ’’’’’’’’’’> 2630 PRINT TIMER - starttime; "Sekunden" ’’’’’Vergleiche : TIME$-Funktion ’Funktion : TIME$ ’’’’’’’’’’’’’>Zweck : Abrufen der aktuellen Tageszeit ’’’’’’’’’’’’’’’Syntax : TIME$ ’’’’’’’’’NErklŁrung : Die Tageszeit wird als Text in der Form HH.MM.SS geliefert. ’’’’>Beispiel : 10 PRINT "Es ist jetzt "; TIME$; " Uhr" ’’’’’’> Ausgabe (z.B.): Es ist jetzt 10:51:17 Uhr ’’’.Vergleiche : DATE$-, TIMER-Funktionen ’’’’’’’Anweisungsbestandteil : TO ’’’.Siehe FOR- und GOTO-Anweisungen ’’’’’’’’’’’’’’Anweisung : TRON / TROFF ’’’’’>Zweck : Ein- und Ausschalten der TRACE-Funktion ’’’’’’’Syntax : TRON ’’’’’’’’’’ TROFF ’’’’’’’’’’NErklŁrung : Der TRACE-Modus dient der Suche nach logischen Fehlern bei der’’> Entwicklung von BASIC-Programmen. ’’’’’’’’’’’’’’N TRON schaltet den TRACE-Modus fŪr die nachfolgend Ūbersetzten’’’. Programmzeilen ein. ’’’’’’’’’’’’N Ist der TRACE-Modus eingeschaltet, so wird fŪr jede gefundene’’’N Zeilennummer die Ausgabe dieser Zeilennummer in eckigen’’’’’’’’’N Klammern mit in den erzeugten Code aufgenommen. Dies hat dann’’’N wŁhrend des Laufens den Effekt, daū immer bei Abarbeitung der imN TRACE-Modus Ūbersetzten Zeilen die aktuelle Zeilennummer ausŻ’’’^ gegeben wird. Es ist so leicht zu verfolgen, in welcher Reihenfolge’’’’’’’’’’’’’> die Zeilen des Programms ausgefŪhrt werden. ’’’’N TROFF schaltet den TRACE-Modus fŪr die textuell folgenden ProŻ’’. grammzeilen wieder aus. ’’’’’’’’Beispiel : 5220 TRON ’’’’> 5230 REM hier beginnt die kritische ’’’’’’’’’’. 5240 REM Programmstelle ’’’’’’ . ’’’’’’’’’’’’ . ’’’’’’’’’’’’ . ’’’’’’’’’’’’ 5970 TROFF ’’’N Die Zeilen 5230 bis 5970 werden im TRACE-Modus Ūbersetzt. ’’’’’’Anweisungsbestandteil : USING Siehe PRINT-Anweisung ’’’’’’’’Funktion : USR ’’’’’’’’’’’’’’’NZweck : Aufruf einer wertliefernden insertierten Prozedur ’’’’’’’’’’’’’.Syntax : USR ’’’’’’’’’’’’> #right#[ ( [, ] [...] ) ] NErklŁrung : : Folge aus Zeichen, die fŪr Prozeduren im’’’’’’’’N EUMEL-System zugelassen sind (also Buchstaben und - ab der’’’’’N zweiten Stelle - Zahlen), jedoch keine Leerzeichen. ’’’’’’’’’’’N : | ’’’’’’’’’’’’’’’N : Ausdruck (genau des von der Prozedur’’’’’’’> benŚtigten Typs) ’’’’’’’’’’N : Variable (genau des von der Prozedur benŚŻ’> tigten Typs) ’’’’’’’’’’’’’’N Die Prozedur mit dem angegebenen und den’’’’’’’’> ression> GOSUB *)’N(*3. ON GOTO *)’> LABEL VAR before case, after case, return case;’’’’’’’’’’’’’ declare (before case);’’’’’’ declare (after case);’’’’’’’ declare (return case);’’’’’’ next symbol;> IF symb.type = res word AND symb.no = error s’’’’’’’’’’’’’’’. THEN basic error (100, symb.name, "")’’’’’. get expr (expr result, int type);’’’’’’’’’’’ IF on gosub statement’’’’’’’ THEN gosub (before case);’’’ apply (after case)’’’’’ ELIF NOT on goto statement’’N THEN basic error (2, symb.name, "GOTO oder GOSUB erwartet") FI;’’’’’’’’’’’’’ get case stat no;’’’’’’’’’’’ define (before case);’’’’’’’ gen case branches;’’’’’’’’’’ gen return case;’’’’’’’’’’’’ define (after case) .’’’’’’on gosub statement:’’’’’’’’’’’N BOOL CONST gosub found := symb.type = res word AND symb.no = gosub s;’’’’’’’ gosub found .’’’’’’’’’’’’’’on goto statement:’’’’’’’’’’’’. symb.type = res word AND symb.no = goto s.’’get case stat no:’’’’’’’’’’’’’. TEXT VAR case stat no :: nil;’’’’’’’’’’’’’’’ INT VAR case no :: 0;’’’’’’’ next symbol;. REP get const (label, int type);’’’’’’’’’’’’ case no INCR 1;’’’’’’’’’. case stat no CAT label.name;’’’’’’’’’’’’ IF symb.type = eos’’’’’’. THEN LEAVE get case stat no’’’’’’’’’’’’’. ELSE skip (comma, del) FI’’’’’’’’’’’’’’’gen case branches:’’’’’’’’’’’’N computedbranch (expr result.adr, case no + 1, otherwise lab); (* F6/rr *)’’ apply (otherwise lab);’’’’’’ FOR i FROM 1 UPTO case no’’’ REP apply (label i) PER .’’gen return case:’’’’’’’’’’’’’’ IF gosub found’’’’’’’’’’’’’’ THEN define (return case);’’otherwise lab: IF gosub found’’’’’’’’’’’’’’ THEN return case’’’’’’’’’’’’ ELSE after case FI .’’’’’’’> label list [label pos (case stat no ISUB i)] .’’’’’’’’’’’’’END PROC on statement;’’’’’’’’PROC print statement:’’’’’’’’’N(*PRINT [] *)’N(*PRINT USING ; *)’N(*PRINT #, *) N(*PRINT #, USING ; *)’ next symbol;. IF symb.type = del AND symb.no = numbersign’ THEN print file statement’’’. ELSE print display statement FI .’’’’’’’’’’print file statement:’’’’’’’’’. basic error (100, symb.name, "") .’’’’’’’’’print display statement:’’’’’’ get format string;’’’’’’’’’’ print list of expr results;’ reset format string .’’’’’’get format string:’’’’’’’’’’’’> IF symb.type = res word AND symb.no = using s’’’’’’’’’’’’’’’ THEN next symbol;’’’’’’’’’’’. get expr (image, text type);’’’’’’’’’’’ skip (semicolon, del);’> parameter (1, text type, const, image.adr);’’’’’’’’’’’’ apply (1, 1, "using");’. ELSE image := nilsymbol FI .’’’’’’’’’’’’’’’reset format string:’’’’’’’’’’ IF image.type <> any’’’’’’’’. THEN apply (1, 0, "clearusing") FI .’’’’’’’print list of expr results:’’’> REP IF symb.type = res word AND symb.no = tab s’’’’’’’’’’’’’ THEN get tabulation’’’’’. ELIF symb.type = del AND symb.no = comma THEN get next zone’’’’’’> ELIF symb.type = del AND symb.no = semicolon’’’’’’’’’’’’ THEN get next pos’’’’’’’ ELIF symb.type = eos’’’’. THEN apply (1, 0, "nextline");’’’’’’’’’’. LEAVE print list of expr results ’’. ELSE get print expr result FI;’’’’’’’’’’get tabulation:’’’’’’’’’’’’’’’ next symbol; skip (open bracket, del);’’’. get expr (tab pos, int type);’’’’’’’’’’’’’’’ skip (close bracket, del);’’. parameter (1, int type, const, tab pos.adr); apply (1, 1, "tab") .’’’’’’get next zone: next symbol; IF image.type = any’’’’’’’’’. THEN apply (1, 0, "nextzone") FI;’’’’’’’’’’’ IF symb.type = eos’’’’’’’’’’. THEN LEAVE print list of expr results FI .’ next symbol; IF symb.type = eos’’’’’’’’’’. THEN LEAVE print list of expr results FI .’get print expr result:’’’’’’’’ get expr (expr result);’’’’’> parameter (1, expr result.data, const, expr result.adr);’’’’ apply (1, 1, "basicout") .’END PROC print statement;’’’’’PROC while statement:’’’’’’’’’N(*WHILE *)’. LABEL VAR while lab, wend lab;’’’’’’’’’’’’’’. SYMBOL VAR while expr result;’’’’’’’’’’’’’’’N INT CONST while stat no := act stat no, (* F29/rr *)> while scan line no := scan line no;’’’’’’’’’’’’’’. TEXT CONST while symb name := symb.name;’ next symbol; declare (while lab);’’’’’’’’ declare (wend lab);’’’’’’’’’ define (while lab);’’’’’’’’’. get expr (while expr result, int type);’’’’’> parameter (1, int type, const, while expr result.adr);’’’’’’> parameter (2, bool type, const, nil adr); apply (2, nop);’’ apply (1, 1, test);’’’’’’’’’N apply (wend lab, TRUE); (* 'test' vergleicht mit 0 *)’’’’’’’’’’. get statement group (wend s);’’’’’’’’’’’’’’’. IF symb.type = eos AND symb.no = -wend s’’’’ THEN wend statement’’’’’’’’’~ ELSE basic error ("Compiler", 29, while scan line no, while stat no, while symb name, "", TRUE) FI. (* F29/rr *)’’’’’’’’’’’’wend statement:’’’’’’’’’’’’’’’N(*WEND *)’ apply (while lab);’’’’’’’’’’ define (wend lab);’’’’’’’’’’ next symbol .’’’’’’’’’’’’’’END PROC while statement;’’’’’END PACKET basic compiler’’’’’^ 1234567890123 12345678901234N NAME operand + " : " + dump (operand.data))’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööangegebenen Parametern wird aufgerufen. ’’’’’’’’^ Die USR-Funktion liefert nach AusfŪhrung der Prozedur das von der’’’’’’’’’’’’’’’N Prozedur Ūbergebene Ergebnis (Typ INT, REAL oder TEXT). ’’’’’’’’. MŚgliche FehlerfŁlle: ’’’’’’’’’’N - Eine Prozedur mit dem Namen und den angeŻ’’’’’> gebenen Parametern gibt es nicht. ’’’’’’’’’’’’> - Die Prozedur liefert keinen Wert. ’’’’’’’’’’’’^ - Die Prozedur liefert einen Typ, der in BASIC unbekannt ist (zum’’’’’’’’’’’’’’’. Beispiel BOOL). ’’’’’’’’’’’’’’^ - Die Prozedur benŚtigt Parametertypen, die in BASIC nicht bekannt’’’’’’’’’’’’’’> sind (z.B. BOOL, FILE, TASK, QUIET). ’’’’’’’’’N - Ein Parameter ist CONST, es wird aber ein VAR-Parameter verŻ’’ langt. ’’’’’’’N Weitere Informationen finden Sie in Kapitel 4.7. ’’’’’’’’’’’’’’’NHinweis : 1. Bei den Parametern wird keine Typkonvertierung vorgenommen. N 2. Der Prozedurname muū (entgegen der ELAN-Gewohnheit) ohne’’’’’> Leerzeichen angegeben werden. ’’’’’’’’’’’’’’’^ 3. USR ist die einzige Funktion, bei der das Argument (nŁmlich der’’’’’’’’’’’’’’N Prozeduraufruf) nicht in Klammern stehen darf. ’’’’’’’’’’’’’’.Beispiel : 10 LET euler = USR e ’’’’’’’’’. 20 PRINT euler ’’’’’’’’’’’’’’’. Ausgabe: 2.718282 ’’’’’’’’’’’.Vergleiche : CALL-, CHAIN-Anweisungen ’’’’’’’Funktion : VAL ’’’’’’’’’’’’’’’>Zweck : Konvertierung eines Texts in eine Zahl ’’’’’’’’.Syntax : VAL () ’’’’’’’’’NErklŁrung : Die Funktion liefert den Wert der Zahl, deren Darstellung in demN Ūbergebenen TEXT-Ausdruck enthalten ist. FŪhrende Leerstellen’’’. werden dabei Ūberlesen. ’’’’’’’’^ Sobald ein nicht wandelbares Zeichen festgestellt wird, wird der bis’’’’’’’’’’’’N dahin ermittelte Wert (am Anfang null) geliefert. ’’’’’’’’’’’’’’.Beispiel : 10 LET zahl$ = "-1.256E-63" ’’. 20 PRINT VAL (zahl$) ’’’’’’’’’. Ausgabe: -1.256E-63 ’’’’’’’’>Vergleiche : STR$-Funktion (KomplementŁrfunktion) ’’’’’’’’’’’Anweisung : WEND ’’’’’’’’’’’’’>Zweck : Markierung des Endes einer WHILE-Schleife ’’’’’Syntax : WEND ’’’’’’’’’’NErklŁrung : WEND markiert das Ende einer WHILE-Schleife (vergleiche’’’’’’’’’. WHILE-Anweisung). ’’’’’’’’’’’’’’.Vergleiche : WHILE-, FOR-Anweisungen ’’’’’’’’Anweisung : WHILE ’’’’’’’’’’’’>Zweck : Beginn einer abweisenden Schleife ’’’’’’’’’’’’’.Syntax : WHILE ’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’>ErklŁrung : : numerischer Ausdruck ’’’’’’’’’> : Folge von Programmzeilen ’’’’’N Die WHILE-Anweisung erlaubt die komfortable Programmierung von’’N abweisenden Schleifen (sogenannten WHILE-WEND-Schleifen) in’’’’’ BASIC. ’’’’’’’’’N Gelangt das Programm wŁhrend der AusfŪhrung an eine WHILE-’’’’’’N Anweisung, so wird zunŁchst der Bedingungs-Ausdruck ausgeŻ’’’’’’^ wertet. Ist die Bedingung nicht erfŪllt (falsch, Wert gleich null), so’’’’’’’’’’N wird das Programm mit der nŁchsten Anweisung hinter der korresŻ’> pondierenden WEND-Anweisung fortgesetzt. ’’’’’’’N Ist die Bedingung dagegen erfŪllt (wahr, Wert ungleich null), soN werden die Anweisungen des Schleifenrumpfs abgearbeitet. Beim’’’N Erreichen der WEND-Anweisung springt das Programm wieder zur’’’’N WHILE-Anweisung zurŪck, die Bedingung wird erneut ŪberprŪft und,^ je nach Ergebnis, wird der Schleifenrumpf oder die Anweisung nach’’’’’’’’’’’’’’’. WEND ausgefŪhrt. ’’’’’’’’’’’’’’’N WHILE-WEND-Schleifen dŪrfen (auch mit FOR-NEXT-Schleifen,’’’’’’’N s.d.) geschachtelt werden. Ųberschneidungen von WHILE-WEND-’’’’’N Schleifen und FOR-NEXT-Schleifen sind jedoch nicht zulŁssig. ’’’.Beispiel : 10 LET weiter$ = "j" ’’’’’’’’’> 20 WHILE LEFT$ (weiter$, 1) = "j" ’’’’’’’’’’’’> 30 REM Hier beginnt das eigentliche Programm ’ . ’’’’’’’’’’’’ . ’’’’’’’’’’’’> 1650 INPUT "Weiter ? (j/n)", weiter$ ’’’’’’’’’ 1660 WEND ’’’’^ Das eigentliche Programm wird so lange ausgefŪhrt, bis der Benutzer’’’’’’’’’’’’’^ etwas anderes als "j" an der ersten Stelle von 'weiter$' eingibt. ’’’’’’’’’’’’’’.Vergleiche : FOR-, IF-Anweisungen ’’’’’’’’’’’Anweisung : WIDTH ’’’’’’’’’’’’>Zweck : Einstellung der Bildschirmbreite ’’’’’’’’’’’’’’.Syntax : WIDTH ’’’’’>ErklŁrung : : INT-Ausdruck ’’’’’’’’’N Mit der WIDTH-Anweisung wird festgelegt, wie viele Zeichen pro’’N Zeile bei Ausgaben auf den Bildschirm oder in Dateien pro Zeile’. ausgegeben werden sollen. ’’’’’’N Soll fŪr die Druckdatei eine andere Anzahl von Zeichen pro ZeileN gelten als fŪr den Bildschirm, dann muū vor jeder Sequenz von’’’N LPRINT-Anweisungen die gewŪnschte Anzahl mit WIDTH eingeŻ’’’’’’’ stellt werden. ’N WIDTH gilt auch fŪr Ausgaben in 'sysout'-Dateien. ’’’’’’’’’’’’’’^ Insbesondere bei der Ausgabe in Dateien kann ein Wert von mehr als’’’’’’’’’’’’’’> 80 Zeichen pro Zeile sinnvoll sein. ’’’’’’’’’’’’>Beispiel : 10 REM es sollen nur 45 Zeichen pro Zeile ’’’’. 20 REM ausgegeben werden ’’’’’ 30 WIDTH 45 ’’ ’’’’’’’’’’’’’>Vergleiche : PRINT-, LPRINT-, WRITE-Anweisungen ’’’’’’’’’’’’’Anweisung : WRITE ’’’’’’’’’’’’NZweck : Ausgabe von Zahlen und Texten auf dem Bildschirm ’’’’’’’’’’’’’’>Syntax : WRITE [] [, ] [...] ’’’’’’’NErklŁrung : : numerischer Ausdruck oder TEXT-Ausdruck ’’’’’’’’’’’’N Die WRITE-Anweisung erlaubt die Ausgabe von Daten auf dem’’’’’’’N Bildschirm. Die angegebenen AusdrŪcke werden ausgewertet und’’’’N ausgegeben. Dabei werden numerische Werte im gleichen Format’’’’^ wie bei der PRINT-Anweisung (s.d.) ausgegeben, mit der EinschrŁnŻ’’’’’’’’’’’’’’’> kung, daū den Zahlen keine Leerstelle folgt. ’’’N Die Ergebnisse von Text-AusdrŪcken werden von AnfŪhrungszeiŻ’’’’. chen umschlossen ausgegeben. ’’’N Alle Einzelausgaben werden durch Kommata voneinander getrennt. ’N Nach Ausgabe aller angegebenen AusdrŪcke wird der Cursor an den’> Anfang der nŁchsten Zeile positioniert. ’’’’’’’’.Beispiel : 10 LET a = 10.7: b = 20 ’’’’’’. 20 LET c$ = "Testtext" ’’’’’’’. 30 WRITE a, b, c$ ’’’’’’’’’’’’. Ausgabe: 10.7, 20,"Testtext" >Vergleiche : PRINT-, LPRINT-, WIDTH-Anweisungen ’’’’’’’’’’’’’Operator : XOR ’’’’’’’’’’’’’’’.Siehe Kapitel 4.4. (Operatoren) ’’’’’’’’’’’’’’basic handbuch.2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’basic handbuch.3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Zü’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńa€ė’’¼¹`’’’’``½M’’’’įš’SIC.dok.3’’’’a€’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’”€’U’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’'’’’’’’’’’’’’’’’’’’’q’!’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’D’’’’’’’’’’’’’’’’’’’‚’R’’’’’’’’’’’’’’’’’’’a‚’C’’’’’’’’’’’’’’’’’’’±‚’Q’’’’’’’’’’’’’’’’’’’ƒ’M’’’’’’’’’’’’’’’’’’’aƒ’b’’’’’’’’’’’’’’’’’’’у’Q’’’’’’’’’’’’’’’’’’’1„’=’’’’’’’’’’’’’’’’’’’q„’O’’’’’’’’’’’’’’’’’’’ф’A’’’’’’’’’’’’’’’’’’’!…’P’’’’’’’’’’’’’’’’’’’…’N’’’’’’’’’’’’’’’’’’’х’O’’’’’’’’’’’’’’’’’’’1†’L’’’’’’’’’’’’’’’’’’’†’-’’’’’’’’’’’’’’’’’’’±†’B’’’’’’’’’’’’’’’’’’’‡’(’’’’’’’’’’’’’’’’’’’1‡’I’’’’’’’’’’’’’’’’’’’’’ stehen. ’’’’’’’’’’’‡’I’’’’’’’’’’’’’’’’’’’ч’M’’’’’’’’’’’’’’’’’’’’’ hen. ’’’’’’’’’’’’’’!ˆ’J’’’’’’’’’’’’’’’’’’’qˆ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ˆ’E’’’’’’’’’’’’’’’’’’’ńˆ’E’’’’’’’’’’’’’’’’’’’A‰’L’’’’’’’’’’’’’’’’’’’‘‰’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ቒ#’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Š’E’’’’’’’’’’’’’’’’’’’Š’ ’’’’’’’’’’’’’’’’’’’±Š’M’’’’’’’’’’’’’’’’’’’‹’O’’’’’’’’’’’’’’’’’’’a‹’J’’’’’’’’’’’’’’’’’’’±‹’;’’’’’’’’’’’’’’’’’’’ń‹’M’’’’’’’’’’’’’’’’’’’AŒ’H’’’’’’’’’’’’’’’’’’’‘Œ’O’’’’’’’’’’’’’’’’’’’ńŒ’L’’’’’’’’’’’’’’’’’’’A’ ’’’’’’’’’’’’’’’’’’’q’G’’’’’’’’’’’’’’’’’’’Į’D’’’’’’’’’’’’’’’’’’’Ž’P’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’Ž’M’’’’’’’’’’’’’’’’’’’ю’S’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’N’’’’’’’’’’’’’’’’’’’”’T’’’’’’’’’’’’’’’’’’’’’ mentation! ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’1’ ’’’’’’’’’’’’’’’’’’’’’ Compiler’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’I’’’’’’’’’’’’’’’’’’’±’O’’’’’’’’’’’’’’’’’’’‘’N’’’’’’’’’’’’’’’’’’’’’ chen werden. ’’’’’’’’a‘’,’’’’’’’’’’’’’’’’’’’‘‘’K’’’’’’’’’’’’’’’’’’’į‘’F’’’’’’’’’’’’’’’’’’’’’ nommen. ’’’’’’’’’’’1’’O’’’’’’’’’’’’’’’’’’’‘’’;’’’’’’’’’’’’’’’’’’’ђ’4’’’’’’’’’’’’’’’’’’’“’M’’’’’’’’’’’’’’’’’’’a“’I’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’ѓ’M’’’’’’’’’’’’’’’’’’’!”’/’’’’’’’’’’’’’’’’’’’a”’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘”’N’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’!•’’’’’’’’’’’’’’’’’’’’’’ - LSET, RSET ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A•’7’’’’’’’’’’’’’’’’’’’•’.’’’’’’’’’’’’’’’’’’’±•’/’’’’’’’’’’’’’’’’’’’ń•’5’’’’’’’’’’’’’’’’’’’1–’K’’’’’’’’’’’’’’’’’’’’’ Programm) ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’–’J’’’’’’’’’’’’’’’’’’’і’E’’’’’’’’’’’’’’’’’’’!—’!’’’’’’’’’’’’’’’’’’’Q—’H’’’’’’’’’’’’’’’’’’’’’ ab. ’’’’’’’’’’’’’’”—’#’’’’’’’’’’’’’’’’’’’ї’F’’’’’’’’’’’’’’’’’’’!˜’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q˜’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”˜’;’’’’’’’’’’’’’’’’’’’ᘒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’™’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q™’+’’’’’’’’’’’’’’’’’’’™’G’’’’’’’’’’’’’’’’’’’љ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’!š’’’’’’’’’’’’’’’’’’’’Aš’)’’’’’’’’’’’’’’’’’’’qš’’’’’’’’’’’’’’’’’’’’‘š’’’’’’’’’’’’’’’’’’’’±š’)’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’!›’’’’’’’’’’’’’’’’’’’’A›’’’’’’’’’’’’’’’’’’’’a›’’’’’’’’’’’’’’’’’’’’›’'’’’’’’’’’’’’’’’’’’’±›’'’’’’’’’’’’’’’’’’’’’į›’’’’’’’’’’’’’’’’’’’’œ’'’’’’’’’’’’’’’’’’’’’1œ’'’’’’’’’’’’’’’’’’’’’aœ’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’”œ’’’’’’’’’’’’’’’’’’’’Įœ’’’’’’’’’’’’’’’’’’’’ᜒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’į’)’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’1ž’)’’’’’’’’’’’’’’’’’’’až’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’įž’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’!Ÿ’’’’’’’’’’’’’’’’’’’’AŸ’’’’’’’’’’’’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’Ÿ’'’’’’’’’’’’’’’’’’’’’±Ÿ’)’’’’’’’’’’’’’’’’’’’្’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’! ’’’’’’’’’’’’’’’’’’’’A ’’’’’’’’’’’’’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’Į ’’’’’’’’’’’’’’’’’’’’į ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’””’)’’’’’’’’’’’’’’’’’’’Ń”’'’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’!¢’’’’’’’’’’’’’’’’’’’’A¢’’’’’’’’’’’’’’’’’’’’a¢’’’’’’’’’’’’’’’’’’’’¢’&’’’’’’’’’’’’’’’’’’’±¢’’’’’’’’’’’’’’’’’’’’Ń¢’’’’’’’’’’’’’’’’’’’’ń¢’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’Q£’’’’’’’’’’’’’’’’’’’’q£’’’’’’’’’’’’’’’’’’’’‘£’’’’’’’’’’’’’’’’’’’’±£’'’’’’’’’’’’’’’’’’’’’ᣒ’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’!¤’'’’’’’’’’’’’’’’’’’’’Q¤’’’’’’’’’’’’’’’’’’’’q¤’’’’’’’’’’’’’’’’’’’’‘¤’'’’’’’’’’’’’’’’’’’’’Į¤’’’’’’’’’’’’’’’’’’’’ᤒ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’'’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’Ń„’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’1¦’’’’’’’’’’’’’’’’’’’’Q¦’’’’’’’’’’’’’’’’’’’’q¦’’’’’’’’’’’’’’’’’’’’‘¦’)’’’’’’’’’’’’’’’’’’’Į¦’’’’’’’’’’’’’’’’’’’’ᦒ’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’!§’)’’’’’’’’’’’’’’’’’’’Q§’’’’’’’’’’’’’’’’’’’’q§’)’’’’’’’’’’’’’’’’’’’”§’’’’’’’’’’’’’’’’’’’’Į§’)’’’’’’’’’’’’’’’’’’’ń§’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’1Ø’)’’’’’’’’’’’’’’’’’’’aØ’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’”Ø’)’’’’’’’’’’’’’’’’’’’ŃØ’’’’’’’’’’’’’’’’’’’’ńØ’’’’’’’’’’’’’’’’’’’’©’'’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’A©’’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’”©’’’’’’’’’’’’’’’’’’’’Į©’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’į©’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ŗ’;’’’’’’’’’’’’’’’’’’’’’ typen#ie(3)#’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŖ’J’’’’’’’’’’’’’’’’’’’ĮŖ’L’’’’’’’’’’’’’’’’’’’«’`’’’’’’’’’’’’’’’’’’’«’O’’’’’’’’’’’’’’’’’’’į«’O’’’’’’’’’’’’’’’’’’’A¬’L’’’’’’’’’’’’’’’’’’’‘¬’S’’’’’’’’’’’’’’’’’’’ń¬’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1­’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Q­’'’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’­’'’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’±­’5’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’ń­’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Operatoren ’’’’’’’’’’!®’’’’’’’’’’’’’’’’’’’’A®’’’’’’’’’’’’’’’’’’’’a®’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’®’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±®’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Ń®’>’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Æ’a’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Æ’0’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’ĮÆ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÆ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’°’.’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’A°’W’’’’’’’’’’’’’’’’’’’”°’\’’’’’’’’’’’’’’’’’’’±’B’’’’’’’’’’’’’’’’’’’Q±’X’’’’’’’’’’’’’’’’’’’±±’1’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’ń±’>’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’1²’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Variablen ’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’a²’'’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’‘²’b’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’³’<’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’A³’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q³’’’’’’’’’’’’’’’’’’’’‘³’@’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’į³’S’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’A“’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Ń“’D’’’’’’’’’’’’’’’’’’’!µ’;’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’aµ’;’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’”µ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѵ’'’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’!¶’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¶’’’’’’’’’’’’’’’’’’’’q¶’,’’’’’’’’’’’’’’’’’’’”¶’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’Ѷ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’!·’’’’’’’’’’’’’’’’’’’’A·’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’·’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Trennzeichen ’’’’’’’’±·’N’’’’’’’’’’’’’’’’’’’ø’U’’’’’’’’’’’’’’’’’’’aø’(’’’’’’’’’’’’’’’’’’’‘ø’O’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’ńø’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¹’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¹’2’’’’’’’’’’’’’’’’’’’±¹’’’’’’’’’’’’’’’’’’’’ѹ’P’’’’’’’’’’’’’’’’’’’1ŗ’’’’’’’’’’’’’’’’’’’’Qŗ’O’’’’’’’’’’’’’’’’’’’±ŗ’S’’’’’’’’’’’’’’’’’’’»’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a»’"’’’’’’’’’’’’’’’’’’’‘»’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į»’>’’’’’’’’’’’’’’’’’’’¼’J’’’’’’’’’’’’’’’’’’’Q¼’J’’’’’’’’’’’’’’’’’’’’’ Ausdruck). ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¼’'’’’’’’’’’’’’’’’’’’’Ѽ’I’’’’’’’’’’’’’’’’’’’!½’L’’’’’’’’’’’’’’’’’’’’’wird. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q½’&’’’’’’’’’’’’’’’’’’’”½’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į½’A’’’’’’’’’’’’’’’’’’’1¾’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’8’’’’’’’’’’’’’’’’’’’Į¾’M’’’’’’’’’’’’’’’’’’’æ’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qæ’"’’’’’’’’’’’’’’’’’’’æ’I’’’’’’’’’’’’’’’’’’’Ńæ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ą’!’’’’’’’’’’’’’’’’’’’1Ą’K’’’’’’’’’’’’’’’’’’’Ą’R’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĄ’#’’’’’’’’’’’’’’’’’’’Į’J’’’’’’’’’’’’’’’’’’’aĮ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Į’;’’’’’’’’’’’’’’’’’’’ŃĮ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ā’"’’’’’’’’’’’’’’’’’’’QĀ’Q’’’’’’’’’’’’’’’’’’’±Ā’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĀ’0’’’’’’’’’’’’’’’’’’’!Ć’I’’’’’’’’’’’’’’’’’’’qĆ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĆ’0’’’’’’’’’’’’’’’’’’’Ä’J’’’’’’’’’’’’’’’’’’’QÄ’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ä’0’’’’’’’’’’’’’’’’’’’įÄ’G’’’’’’’’’’’’’’’’’’’1Å’L’’’’’’’’’’’’’’’’’’’Å’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÅ’Q’’’’’’’’’’’’’’’’’’’1Ę’L’’’’’’’’’’’’’’’’’’’Ę’L’’’’’’’’’’’’’’’’’’’’’ stellt war. ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĘ’.’’’’’’’’’’’’’’’’’’’Ē’Q’’’’’’’’’’’’’’’’’’’aĒ’R’’’’’’’’’’’’’’’’’’’’’wurden. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĒ’.’’’’’’’’’’’’’’’’’’’ńĒ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Č’2’’’’’’’’’’’’’’’’’’’qČ’#’’’’’’’’’’’’’’’’’’’”Č’P’’’’’’’’’’’’’’’’’’’É’9’’’’’’’’’’’’’’’’’’’AÉ’N’’’’’’’’’’’’’’’’’’’‘É’.’’’’’’’’’’’’’’’’’’’ĮÉ’’’’’’’’’’’’’’’’’’’’įÉ’T’’’’’’’’’’’’’’’’’’’AŹ’&’’’’’’’’’’’’’’’’’’’qŹ’’’’’’’’’’’’’’’’’’’’‘Ź’M’’’’’’’’’’’’’’’’’’’įŹ’-’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’AĖ’R’’’’’’’’’’’’’’’’’’’”Ė’)’’’’’’’’’’’’’’’’’’’ŃĖ’)’’’’’’’’’’’’’’’’’’’Ģ’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĢ’7’’’’’’’’’’’’’’’’’’’‘Ģ’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĢ’)’’’’’’’’’’’’’’’’’’’Ķ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĶ’%’’’’’’’’’’’’’’’’’’’‘Ķ’M’’’’’’’’’’’’’’’’’’’įĶ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ī’?’’’’’’’’’’’’’’’’’’’aĪ’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ī’#’’’’’’’’’’’’’’’’’’’ŃĪ’J’’’’’’’’’’’’’’’’’’’!Ļ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĻ’)’’’’’’’’’’’’’’’’’’’‘Ļ’O’’’’’’’’’’’’’’’’’’’ńĻ’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’:’’’’’’’’’’’’’’’’’’’Š’R’’’’’’’’’’’’’’’’’’’įŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń’3’’’’’’’’’’’’’’’’’’’AŃ’T’’’’’’’’’’’’’’’’’’’”Ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŃ’#’’’’’’’’’’’’’’’’’’’ńŃ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ņ’!’’’’’’’’’’’’’’’’’’’QŅ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’<’’’’’’’’’’’’’’’’’’’ĮŅ’O’’’’’’’’’’’’’’’’’’’!Ó’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÓ’'’’’’’’’’’’’’’’’’’’’”Ó’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įÓ’"’’’’’’’’’’’’’’’’’’’Ō’I’’’’’’’’’’’’’’’’’’’aŌ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ō’*’’’’’’’’’’’’’’’’’’’ĮŌ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Õ’"’’’’’’’’’’’’’’’’’’’1Õ’M’’’’’’’’’’’’’’’’’’’Õ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Õ’E’’’’’’’’’’’’’’’’’’’Ö’R’’’’’’’’’’’’’’’’’’’aÖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ö’C’’’’’’’’’’’’’’’’’’’ŃÖ’N’’’’’’’’’’’’’’’’’’’’’ den werden. ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!×’2’’’’’’’’’’’’’’’’’’’a×’Q’’’’’’’’’’’’’’’’’’’Į×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į×’)’’’’’’’’’’’’’’’’’’’Ų’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŲ’%’’’’’’’’’’’’’’’’’’’Ų’J’’’’’’’’’’’’’’’’’’’ŃŲ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ł’%’’’’’’’’’’’’’’’’’’’QŁ’L’’’’’’’’’’’’’’’’’’’”Ł’-’’’’’’’’’’’’’’’’’’’’’ ’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’ŃŁ’=’’’’’’’’’’’’’’’’’’’Ś’N’’’’’’’’’’’’’’’’’’’aŚ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ś’.’’’’’’’’’’’’’’’’’’’ĮŚ’’’’’’’’’’’’’’’’’’’’įŚ’K’’’’’’’’’’’’’’’’’’’1Ū’Q’’’’’’’’’’’’’’’’’’’‘Ū’P’’’’’’’’’’’’’’’’’’’ńŪ’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AÜ’*’’’’’’’’’’’’’’’’’’’qÜ’7’’’’’’’’’’’’’’’’’’’±Ü’G’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ż’*’’’’’’’’’’’’’’’’’’’AŻ’P’’’’’’’’’’’’’’’’’’’”Ż’’’’’’’’’’’’’’’’’’’’ĮŻ’O’’’’’’’’’’’’’’’’’’’!Ž’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŽ’*’’’’’’’’’’’’’’’’’’’”Ž’V’’’’’’’’’’’’’’’’’’’ß’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aß’*’’’’’’’’’’’’’’’’’’’‘ß’A’’’’’’’’’’’’’’’’’’’įß’K’’’’’’’’’’’’’’’’’’’1ą’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qą’*’’’’’’’’’’’’’’’’’’’”ą’B’’’’’’’’’’’’’’’’’’’ńą’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aį’*’’’’’’’’’’’’’’’’’’’qį’?’’’’’’’’’’’’’’’’’’’Įį’J’’’’’’’’’’’’’’’’’’’ā’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qā’*’’’’’’’’’’’’’’’’’’’ā’A’’’’’’’’’’’’’’’’’’’Ńā’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć’*’’’’’’’’’’’’’’’’’’’1ć’O’’’’’’’’’’’’’’’’’’’‘ć’N’’’’’’’’’’’’’’’’’’’įć’J’’’’’’’’’’’’’’’’’’’1ä’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aä’*’’’’’’’’’’’’’’’’’’’‘ä’P’’’’’’’’’’’’’’’’’’’ńä’O’’’’’’’’’’’’’’’’’’’Qå’K’’’’’’’’’’’’’’’’’’’”å’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńå’<’’’’’’’’’’’’’’’’’’’ę’0’’’’’’’’’’’’’’’’’’’Qę’M’’’’’’’’’’’’’’’’’’’”ę’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńę’*’’’’’’’’’’’’’’’’’’’ē’S’’’’’’’’’’’’’’’’’’’aē’U’’’’’’’’’’’’’’’’’’’Įē’O’’’’’’’’’’’’’’’’’’’!č’.’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’Qč’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”č’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńč’H’’’’’’’’’’’’’’’’’’’!é’I’’’’’’’’’’’’’’’’’’’qé’P’’’’’’’’’’’’’’’’’’’Ńé’4’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ź’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qź’H’’’’’’’’’’’’’’’’’’’”ź’I’’’’’’’’’’’’’’’’’’’ńź’N’’’’’’’’’’’’’’’’’’’Aė’L’’’’’’’’’’’’’’’’’’’’’ tiert). ’’’’’’’’’’‘ė’M’’’’’’’’’’’’’’’’’’’įė’S’’’’’’’’’’’’’’’’’’’Aģ’Q’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ģ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńģ’J’’’’’’’’’’’’’’’’’’’Aķ’T’’’’’’’’’’’’’’’’’’’”ķ’T’’’’’’’’’’’’’’’’’’’’’ 3.). ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ī’I’’’’’’’’’’’’’’’’’’’Qī’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ī’J’’’’’’’’’’’’’’’’’’’ļ’N’’’’’’’’’’’’’’’’’’’Qļ’N’’’’’’’’’’’’’’’’’’’”ļ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įļ’H’’’’’’’’’’’’’’’’’’’1š’O’’’’’’’’’’’’’’’’’’’‘š’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#page nr ("%",97)# ’’’’’’’’’’’^EUMEL-BASIC-Compiler 9. Anpassung von Programmen an den EUMEL-BASIC-Compiler % ’’’’’’’’’>9. Anpassung von Programmen an den EUMEL-BASIC-Compiler ’’’’’’.9.1. Unterschiede zwischen BASIC-InterŻ’’’’’’’. pretern und dem EUMEL-BASIC-’’’’’’’’’’’’’ Compiler NBei der Anpassung von Programmen fŪr BASIC-Interpreter an den EUMEL-’’’’’’’’’’^BASIC-Compiler gibt es einige Besonderheiten zu beachten, die auf den unterschiedŻ’’’’’’’’’’’’Nlichen Arbeitsweisen von Compilern gegenŪber Interpretern beruhen. ’’’’’’’’’’’^Bei Interpretern fŁllt die Ųbersetzung und AusfŪhrung des Quellprogramms zeitlich’’’’’’’’’’’’’Nzusammen (genau genommen gibt es ja gar keine Ųbersetzung, sondern das QuellŻ’nprogramm wird #on("i")#interpretiert#off("i")#). Dies hat zur Folge, daū auch nicht zur AusfŪhrung’’’’’’’’’’’’^bestimmte Anweisungen (z.B. Dimensionierungen, Typfestlegungen etc.) erst wŁhrend’’’’’’’’’’’’’>der AusfŪhrung des Programms erkannt und ausgewertet werden. ’^Bei Compilern hingegen muū deutlich zwischen der Ųbersetzungszeit (Compiletime)’’’’’’’’’’’’’’’Nund der Laufzeit (Runtime) eines Programms unterschieden werden. ’’’’’’’’’’’’’^Der wesentliche Unterschied zwischen Compilern und Interpretern liegt nun in der’’’’’’’’’’’’’’NReihenfolge der Kenntnisnahme von den Anweisungen. WŁhrend der Interpreter von^den Anweisungen in der Reihenfolge ihres Auftretens entlang des Programmablaufs’’’’’’’’’’’’’’’NKenntnis nimmt, werden die Anweisungen vom Compiler in der Reihenfolge ihres’’.textuellen Auftretens zur Kenntnis genommen. ’NDa es sich bei dem EUMEL-BASIC-Compiler um einen One-Pass-Compiler’’’’’’’’’’’’.handelt, ist es zwingend notwendig, daū ’’’’’’N- DIM-Anweisungen vor dem ersten Zugriff auf das zu dimensionierende Feld’’’’’N- OPTION BASE-Anweisungen vor den betreffenden Dimensionierungen stehen. ’’’’’N- DEF FN-Anweisungen vor dem ersten Aufruf der zu definierenden Funktion steŻ’N- DEFINT- beziehungsweise DEFSTR-Anweisungen vor der ersten Verwendung der’’’’. betreffenden Variablen erscheinen. ’’’’’’’’’NEinige Interpreter lassen sogar den Abschluū von FOR-NEXT- und WHILE-’’’’’’’’’NWEND-Schleifen an mehreren Stellen im Programm zu (z.B. mehrere NEXT-’’’’’’’’’NAnweisungen zu einer FOR-Anweisung). Auch solche "Kunstgriffe" gestattet der’’NEUMEL-BASIC-Compiler (aus den oben geschilderten GrŪnden) nicht. ’’’’’’’’’’’’’.9.2. Abweichungen von ISO 6373-1984’’’’’’’’’’’ (Minimal-BASIC)’’’’’’’’’’NDer EUMEL-BASIC-Compiler weicht in folgenden Punkten von der ISO-Norm’’’’’’’’’.6373-1984 fŪr Minimal-BASIC ab: ’’’’’’’’’’’’’’N- Treten bei der Auswertung von numerischen AusdrŪcken ŲberlŁufe auf, so wird’^ nicht, wie im Standard vorgesehen, eine Warnung ausgegeben und mit bestimmten’’’’’’’’’’’’’’’N HŚchstwerten weitergerechnet, sondern die AusfŪhrung des BASIC-Programms’’’’> wird mit einer entsprechenden Fehlermeldung abgebrochen. ’’’N- Nimmt die Sprungziel-Nummer bei der ON-Anweisung einen fehlerhaften Wert an’N (Nummer < 1 oder Nummer > Anzahl Sprungziele), dann wird nicht, wie im’’’’’’^ Standard empfohlen, mit einer Fehlermeldung abgebrochen, sondern es wird (wie’’’’’’’’’’’’’’’N auch in Microsoft-BASIC Ūblich) das Programm mit der der ON-Anweisung folŻ’’. genden Anweisung fortgesetzt. ’’’’’’’’’’’’’’N- Bei der DATA-Anweisung mŪssen nicht unbedingt Zeichenfolgen angegeben’’’’’’’N werden. Werden sie weggelassen, dann wird bei AusfŪhrung der READ-’’’’’’’’’’^ Anweisung null beziehungsweise Leertext geliefert (vergleiche Kapitel 8, DATA-’’’’’’’’’’’’’’ Anweisung). N- Bei den Eingaben fŪr eine INPUT-Anweisung kŚnnen ebenfalls die Daten weggeŻ’^ lassen werden. Auch hier wird null beziehungsweise Leertext geliefert (vergleiche’’’’’’’’’’’ Kapitel 8, INPUT-Anweisung) NDie Erweiterungen gegenŪber ISO 6373 sollen hier nicht im einzelnen aufgefŪhrt^werden. Bitte vergleichen Sie in ZweifelsfŁllen die Normungsschrift mit dieser DokuŻ’’’’’’’’’’.9.3. Anpassung von Microsoft-BASIC ProŻ’’’’’’’. grammen an den EUMEL-BASIC-’’’’’’’’’’’’’’NBei der Entwicklung des EUMEL-BASIC-Compilers wurde zwar auf ŲbereinstimŻ’’’’’^mung mit Microsoft-BASIC Wert gelegt, von einer echten KompatibilitŁt kann aber’’’’’’’’’’’’’’’Naufgrund einer ganzen Reihe fehlender Anweisungen und Funktionen nicht gesproŻ.GegenŪber Microsoft-BASIC fehlen vor allem: ’’N- alle "Direkt-Kommandos" (RUN, LIST, LOAD, SAVE, MERGE usw.). Die Aufgaben’’’N dieser Anweisungen werden voöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööön den Prozeduren des EUMEL-Systems ŪberŻ’’’’’’’’^- im weiteren Sinne "hardware-nahe" oder an Maschinensprache orientierte AnweiŻ’’’’’’’’’’’’’’’> sungen und Funktionen (CALL, PEEK, POKE, USR, WAIT usw.) ’’’>- die ERROR-Handling Anweisungen (ON ERROR, RESUME) ’’’’’’’’’’N- die Dateiverarbeitungs-Anweisungen und -Funktion (INPUTŽ, PRINTŽ u.a.; die ’N INPUT- und PRINT-Anweisungen wurden aber auf Zusammenarbeit mit 'sysin'’’’’’ und 'sysout' abgestimmt.) ’’N- die Single-Precision-Variablen (Single- und Double-Precision-Variablen werŻ’> den beide auf den Datentyp REAL abgebildet.) ’’’’’’’’’’’’’’’.- die hexadezimalen und oktalen Konstanten ’’’NAnweisungen und Funktionen, die sich abweichend vom Microsoft-Standard verhalŻten, sind vor allem: ’’’’’’’’’- CALL, CHAIN, USR ’’’’’’’’’’’- ERROR, ERR, ERL ’’’’’’’’’’’’>Wichtige Erweiterungen gegenŪber Microsoft-BASIC sind: ’’’’’’’.- MŚglichkeit des Aufrufs von ELAN-Prozeduren >- Maximale Anzahl von Zeichen pro Zeile: 32000 ’’’’’’’’’’’’’’’>- Maximale Anzahl von Zeichen pro TEXT-Objekt: 32000 ’’’’’’’’’N- OPTION BASE wirkt auf einzelne Felder (und nicht unbedingt auf ein ganzes’’’NHinweis zur Verwendung von MS-BASIC-Programmen im EUMEL-System#off ("b")# ’’’’NSollen Microsoft-BASIC-Programme in das EUMEL-Systemm Ūbernommen werŻ’’’’’’’’’.den, so ist dabei so vorzugehen: ’’’’’’’’’’’’’N1. Speichern Sie das Programm von MS-BASIC aus mit der ASCII-SAVE-Option’’’’’’. Beispiel: SAVE "PROGRAMM.BAS",A ’’’’’’’’’’’N2. Lesen Sie das Programm mittels "DOSDAT" (Programm zum Lesen von MS-’’’’’’’’. DOS-Dateien) im "file ascii"-Modus ein: ’’’N reserve ("file ascii", /"DOS"); fetch ("PROGRAMM.BAS", /"DOS") ’’’’’’’’’’’’>Danach steht ihnen das BASIC-Program in der EUMEL-Textdatei’’’"PROGRAMM.BAS" zur VerfŪgung. NEUMEL-BASIC-Compiler Anhang A: Reservierte WŚrter % ’’’’’’’’’’.Anhang A: #ib(4)#Reservierte WŚrter#ie(4)# ’’’NDieser Anhang enthŁlt eine Ųbersicht Ūber alle vom EUMEL-BASIC-Compiler’’’’’’’.erkannten reservierten WŚrter. ’’’’’’’’’’’’’’’ABS Funktion ’’AND Operator ’’.AS Anweisungsbestandteil ’’’’’ASC Funktion ’’ATN Funktion ’’.BASE Anweisungsbestandteil ’’’’’CALL Anweisung ’CDBL Funktion ’’CHAIN Anweisung ’CHR$ Funktion ’’CINT Funktion ’’.CLEAR nicht implementiert ’’’’’’’.CLOSE nicht implementiert ’’’’’’’CLS Anweisung ’.COMMON nicht implementiert ’’’’’’’.FIELD nicht implementiert ’’’’’’’COS Funktion ’’CSRLIN Funktion ’’CVD Funktion ’’CVI Funktion ’’DATA Anweisung ’DATE$ Funktion ’’DEF Anweisung ’DEFDBL Anweisung ’DEFINT Anweisung ’DEFSNG Anweisung ’DEFSTR Anweisung ’DIM Anweisung ’.ELSE Anweisungsbestandteil ’’’’’END Anweisung ’.EOF Anweisungsbestandteil ’’’’’EQV Operator ’’ERL Funktion ’’ERM$ Funktion ’’ERR Funktion ’’ERROR Anweisung ’EXP Funktion ’’FIX Funktion ’’FOR Anweisung ’FRE Funktion ’’.GET nicht implementiert ’’’’’’’.GO Anweisungsbestandteil ’’’’’GOSUB Anweisung ’GOTO Anweisung ’HEX$ Funktion ’’IF Anweisung ’IMP Operator ’’INKEY$ Funktion ’’INPUT Anweisung ’INPUT$ Funktion ’’INSTR Funktion ’’INT Funktion ’’KILL Anweisung ’LEFT$ Funktion ’’LEN Funktion ’’LET Anweisung ’.LINE Anweisungsbestandteil ’’’’’.LOC nicht implementiert ’’’’’’’LOG Funktion ’’LPOS Funktion ’’LPRINT Anweisung ’LSET Anweisung ’.MID$ Anweisung/Funktion ’’’’’’’’MKD$ Funktion ’’MKI$ Funktion ’’MOD Operator ’’NAME Anweisung ’NEXT Anweisung ’NOT Operator ’’OCT$ Funktion ’’ON Anweisung ’.OPEN nicht implementiert ’’’’’’’OPTION Anweisung ’OR Operator ’’.OUT nicht implementiert ’’’’’’’POS Funktion ’’PRINT Anweisung ’.PUT nicht implementiert ’’’’’’’RANDOMIZE Anweisung ’READ Anweisung ’REM Anweisung ’RESTORE Anweisung ’.RESUME nicht implementiert ’’’’’’’RETURN Anweisung ’RIGHT$ Funktion ’’RND Funktion ’’RSET Anweisung ’SGN Funktion ’’SIN Funktion ’’SPACE$ Funktion ’’SPC Funktion ’’SQR Funktion ’’.STEP Anweisungsbestandteil ’’’’’STOP Anweisung ’STR$ Funktion ’’STRING$ Funktion ’’.SUB Anweisungsbestandteil ’’’’’SWAP Anweisung ’.TAB Anweisungsbestandteil ’’’’’TAN Funktion ’’.THEN Anweisungsbestandteil ’’’’’TIME$ Funktion ’’TIMER Funktion ’’.TO Anweisungsbestandteil ’’’’’TROFF Anweisung ’TRON Anweisung ’.USING Anweisungsbestandteil ’’’’’USR Funktion ’’VAL Funktion ’’.WAIT nicht implementiert ’’’’’’’WEND Anweisung ’WHILE Anweisung ’WIDTH Anweisung ’WRITE Anweisung ’XOR Operator ’’NEUMEL-BASIC-Compiler Anhang B: Vom Scanner erkannte Symboltypen % ’’’>Anhang B: Vom #ib(3)#Scanner#ie(3)# erkannte #ib(3)#SymbolŻ’’’N Der Scanner (ein Paket des EUMEL-BASIC-Systems) hat die Aufgabe, den ProŻ’’’’Ngrammtext Zeichen fŪr Zeichen durchzugehen und auszulesen ('scannen'). Dabei’’nwerden die Zeichen immer zu logischen Gruppen, sogenannten #on("i")#Symbolen#off("i")# zusammenŻ’’’’’’’’’’’’’’^gefaūt. Diese Symbole werden dann dem eigentlichen Compilerprogramm geliefert. ’’’’’’’’’’’’’’’^Der Scanner entscheidet nach recht komplizierten Regeln, welche Zeichen aus der’’’’’’’’’’’’’’’NQuelldatei zu einem Symbol zusammengefaūt werden. Dennoch soll in diesem AnŻ’’^hang der Begriff des Symbols etwas nŁher erklŁrt werden, da der Anwender (vor allem’’’’’’’’’’’>bei den Fehlermeldungen) mit Symboltypen konfrontiert wird. ’’Reservierte WŚrter ’’’’’’’’’’’.Anfangszeichen:#off ("b")# Buchstaben ’’’’’’’.Folgezeichen:#off ("b")# Buchstaben ’’’’’’’>Beispiele:#off ("b")# PRINT, VAL, TAB, SUB, TO ’’’’’’’’’.Vergleiche:#off ("b")# Anhang A ’’’’’’’’’+ - * / \ ^ MOD ’’’’’’’’NOT AND OR XOR EQV IMP ’’< > = <= >= <> ’’’’’’’.Vergleiche:#off ("b")# Kapitel 4.4. ’’’’’numerische Konstanten ’’’’’’’’>Anfangszeichen:#off ("b")# Ziffern 0 bis 9, Dezimalpunkt '.' nFolgezeichen:#off ("b")# zusŁtzlich: 'd', 'D', 'e' oder 'E', am Schluū auch '%', '!' oder 'Ž' ’’’’’’’’’’’’’>Beispiele:#off ("b")# 1.0, 1.256d123, 12! ’’’’’’’’’’’’’’.Vergleiche:#off ("b")# Kapitel 4.2. ’’’’’TEXT-Konstanteöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööön ’’’’’’’’’’’’’’.Anfangszeichen:#off ("b")# AnfŪhrungszeichen ^Folgezeichen:#off ("b")# Alle Zeichen, sogar Doppelpunkte, Apostrophe und SteuerzeiŻ’’’’’’’^ chen. AnfŪhrungszeichen dŪrfen #on("i")#innerhalb#off("i")# von’’N TEXT-Konstanten nicht vorkommen. Eine’’’’’’’’’’’’^ TEXT-Konstante #on("i")#muū#off("i")# aber mit einem AnfŪhŻ’’’’’’> rungszeichen enden. ’’’’’’’’’’’’’>Beispiele:#off ("b")# "tadellos", "!?': alles mŚgliche" .Vergleiche:#off ("b")# Kapitel 4.2. ’’’’’.Anfangszeichen:#off ("b")# Buchstaben ’’’’’’’nFolgezeichen:#off ("b")# zusŁtzlich: Punkt '.', Ziffern 0 bis 9, Zeichen '$', '%', '!' und 'Ž' ’’’’’’’’’’’’>Beispiele:#off ("b")# zeiger, A$, Zahl!, n%, varŽ4.3% ’’.Vergleiche:#off ("b")# Kapitel 4.3. ’’’’’Felder/Feldelemente ’’’’’’’’’’Nwie Variablen, jedoch gefolgt von '(', den Indexangaben und ')' ’’’’’’’’’’’’’’^Beispiele:#off ("b")# zeiger (3), A$ (pointer), Zahl! (7), n% (a, b, c + d) ’’’’’’’’’’’.Vergleiche:#off ("b")# Kapitel 4.3. ’’’’’.Benutzer-definierte Funktionen ’’’’’’’’’’’’’’’.Anfangszeichen:#off ("b")# FN ’’’’’’’’’’’’’’’NFolgezeichen:#off ("b")# Buchstaben, Punkt '.', Ziffern 0 bis 9, ’’’’’’’’’’> Zeichen '$', '%', '!' und 'Ž' ’’’>Beispiele:#off ("b")# FNfunct, FNgauss%, FNf!4.5.6dŽ ’’’.Vergleiche:#off ("b")# Kapitel 4.5. ’’’’’.EOS (End of Statement, Anweisungsende) ’’’’’’’Doppelpunkt ':' ’’’’’’’’’’’’’’.Vergleiche:#off ("b")# Kapitel 4.1. ’’’’’EOL (End of Line, Zeilenende) .Apostrophzeichen ' oder Ende der Dateizeile ’’.EOL bedeutet gleichzeitig auch EOS ’’’’’’’’’’’.Vergleiche:#off ("b")# Kapitel 4.1. ’’’’’EOF (End of File, Dateiende) ’Ende der Quelldatei ’’’’’’’’’’>EOF bedeutet gleichzeitig auch EOL (und somit auch EOS) ’’’’’’.Vergleiche:#off ("b")# Kapitel 4.1. ’’’’’NAlle bisher nicht genannten Zeichen werden vom Scanner als Trennzeichen behanŻ^delt. In BASIC benŚtigte Trennzeichen sind das Komma (','), das Semikolon (';') sowie’’’’’’’’’.die beiden runden Klammern '(' und ')'. ’’’’’’^Zeichen mit Codes kleiner als 32 (Steuerzeichen) werden vom Scanner Ūberlesen. ’’’’’’’’’’’’’’’NEUMEL-BASIC-Compiler Anhang C: Ųbersicht Ūber die Fehlermeldungen % ’’.Anhang C: Ųbersicht Ūber die Fehlermeldungen ’>Ųbersicht Ūber die verwendeten Fehlermeldungen zur’’’’’’’’’’’’Ųbersetzungszeit’’’’’’’’’’’’’’^Diese Ųbersicht enthŁlt alle zur Ųbersetzungszeit mŚglichen Fehler, mit Ausnahme’’’’’’’’’’’’’’der internen Fehler. ’’’’’’’’’^Die ErlŁuterungen geben die Ūblichen Ursachen fŪr die Fehlermeldung an. Es wird’’’’’’’’’’’’’’’^empfohlen, sich im Falle eines Fehlers auūerdem in Kapitel 8 Ūber die genaue Syntax’’’’’’’’’’’Nder betreffenden Anweisung beziehungsweise Funktion zu informieren. ’’’’’’’’’’.#on ("b")#AS ohne NAME#off ("b")# ’’’’’’’’’’’’.AS darf nur in NAME-Anweisungen vorkommen. ’’’>#on ("b")#Accessrecht VAR erwartet, CONST gefunden#off ("b")# NBeim Aufruf einer ELAN-Prozedur (CALL, CHAIN oder USR) wurde ein VAR-ParaŻ’’’’Nmeter verlangt. Angegeben wurde aber ein CONST-Parameter (zum Beispiel ein’’’’.#on ("b")#Ausdruck erwartet#off ("b")# ’’’’’’’NEs wurde ein numerischer oder TEXT-Ausdruck erwartet. Diese Fehlermeldung’’’’’Nerscheint zum Beispiel, wenn nach einem Operator kein Ausdruck mehr gefunden’’.#on ("b")#BASE ohne OPTION#off ("b")# ’’’’’’’’>BASE darf nur in OPTION BASE-Anweisungen vorkommen. ’’’’’’’’’’N#on ("b")#Bei SWAP nur gleiche Variablentypen erlaubt#off ("b")# ’’’’’’’’’’’’’NMit SWAP kŚnnen nur Variablen von genau dem gleichen Typ bearbeitet werden. ’’>#on ("b")#Das Feld ist bereits dimensioniert#off ("b")# ’’’’’’NDiese Fehlermeldung erscheint bei DIM-Anweisungen, wenn das Feld vorher schon’>explizit oder automatisch dimensioniert wurde. ’’’’’’’’’’’’’’’.#on ("b")#ELSE ohne IF#off ("b")# ’’’’’’’’’’’’NELSE darf nur in IF-Anweisungen vorkommen. ELSE muū in der gleichen Zeile’’’’’.stehen wie die zugehŚrige IF-Anweisung. ’’’’’’.#on ("b")#Falsche Felddimension: ’’’’’’’’’’’’’NDimensioniert in ... Dimensionen, gefundene Anzahl Indizes: ...#off ("b")# ’’’^Beim Zugriff auf ein Feldelement wurden zu viele oder zu wenig Indizes angegeben. ’’’’’’’’’’’’.#on ("b")#FOR ohne NEXT#off ("b")# ’’’’’’’’’’’NDiese Fehlermeldung erscheint, wenn am Programmende fŪr eine FOR-Anweisung’’’’.kein korrespondierendes NEXT gefunden wurde. ’>#on ("b")#Falsche Reihenfolge der Zeilennummern#off ("b")# ’’’NDie Zeilennummern wurden nicht in aufsteigender Reihenfolge angegeben. ’’’’’’’.#on ("b")#Falscher Typ#off ("b")# ’’’’’’’’’’’’^Es wurde ein anderer Datentyp erwartet als angegeben, und es konnte keine automaŻ’’’’’’’’’’’’’.tische Konvertierung vorgenommen werden. ’’’’’>#on ("b")#Falscher Typ der Operanden#off ("b")# ’’’’’’’’’’’’’’NBei einem dyadischen Operator wurden Operanden angegeben, fŪr deren Typen’’’’’Ndieser Operator nicht definiert ist (vergleiche Kapitel 4.4.). ’’’’’’’’’’’’’’’>#on ("b")#Falscher Typ des Operanden#off ("b")# ’’’’’’’’’’’’’’NBei einem monadischen Operator wurde ein Operand angegeben, fŪr dessen Typ’’’’Ndieser Operator nicht definiert ist (vergleiche Kapitel 4.4.). ’’’’’’’’’’’’’’’>#on ("b")#Fehlerhafte Bereichsangabe#off ("b")# ’’’’’’’’’’’’’’NDiese Fehlermeldung kann bei den Anweisungen DEFDBL, DEFINT, DEFSNG und’’’’’’’NDEFSTR auftreten, wenn bei einer Bereichsangabe der Buchstabe vor dem BindeŻ’’Nstrich im Alphabet nach dem Buchstaben hinter dem Bindestrich steht. ’’’’’’’’’^#on ("b")#Fehlerhafte Dimensionierung: Die Obergrenze muū >= 1 sein#off ("b")# ’’’’’’’’’’’’’NEs wurde versucht, ein Feld mit dem grŚūten Index null in einer Dimension zu’’Ndimensionieren, obwohl die Index-Untergrenze mit OPTION BASE auf eins eingeŻ’’.#on ("b")#Fehlerhafte Laufvariable#off ("b")# ^Nach einer NEXT-Anweisung wurde eine Laufvariable gefunden, die nicht zur letzten’’’’’’’’’’’’’^anhŁngigen FOR-Anweisung gehŚrt. Der Fehler tritt auf, wenn Schleifen geschachtelt’’’’’’’’’’’’.#on ("b")#Fehlerhafte Zeilennummer#off ("b")# >Die Zeilennumer entspricht nicht der Syntax fŪr Zeilennumern. >#on ("b")#Fehlerhafter Funktionsaufruf#off ("b")# ’’’’’’’’’’’’.- Die Prozedur liefert keinen Wert ’’’’’’’’’’’^ Es wurde versucht, eine Prozedur mit USR aufzurufen, die keinen Wert liefert. ’’’’’’’’’’’’’’>- Der Typ des Resultats ist nicht erlaubt, gefunden: ... ’’’’’N Es wurde versucht, eine Prozedur mit USR aufzurufen, die ein Objekt liefert,. dessen Datentyp in BASIC nicht bekannt ist. - Kein Argument erwartet ’’’’’^ Es wurde versucht, eine benutzer-definierte Funktion, die ohne Parameter definiert’’’’’’’’’’. wurde, mit Argument(en) aufzurufen. ’’’’’’’’- ... Argument(e) erwartet ’’’N Die Anzahl der angegebenen Argumente ist kleiner als die Anzahl der bei der’. Funktionsdefinition angegebenen Parameter. ’.- Nur ... Argument(e) erwartet ’’’’’’’’’’’’’’’^ Die Anzahl der angegebenen Argumente ist grŚūer als die Anzahl der bei der FunkŻ’’’’’’’’’’’’. tionsdefinition angegebenen Parameter. ’’’’’.- Kein Resultat erlaubt (gefunden: ...) ’’’’’N Bei CALL oder CHAIN wurde versucht, eine wertliefernde Prozedur aufzurufen. >#on ("b")#Funktionsaufruf ohne Zusammenhang#off ("b")# ’’’’’’’NEs wurde ein Funktionsaufruf angegeben, wo eine Anweisung erwartet wurde. ’’’’.#on ("b")#GO ohne TO oder SUB#off ("b")# ’’’’’NDas reservierte Wort GO kann nur in GO SUB oder GO TO auftreten. ’’’’’’’’’’’’’.#on ("b")#Interner Fehler#off ("b")# ’’’’’’’’’NBei der Ųbersetzung wurde innerhalb des Compilerprogramms ein interner Fehler’.ausgelŚst. (vergleiche Kapitelöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö 7.1.) ’’’’’’’’’N#on ("b")#Nach OPTION BASE ist nur 0 oder 1 erlaubt#off ("b")# ’’’’’’’’’’’’’’’>Es wurde versucht, eine Zahl > 1 nach OPTION BASE anzugeben. ’.#on ("b")#NEXT ohne FOR#off ("b")# ’’’’’’’’’’’NEs wurde eine NEXT-Anweisung gefunden, die keiner FOR-Anweisung zuzuordnen’’’’>ist, da keine "offenen" FOR-Schleifen mehr anhŁngig sind. ’’’’.#on ("b")#Nicht implementiert#off ("b")# ’’’’’^Einige reservierte WŚrter werden vom BASIC-Compiler erkannt, obwohl die zugehŚŻ’’’’’’’’’’’’’’’Nrigen Anweisungen oder Funktionen nicht implementiert sind (vgl. Anhang A). ’’>#on ("b")#Parametervariable kommt mehrmals vor#off ("b")# ’’’’^Bei der Definition einer "user function" kommt ein Parameter in der Parameterliste’’’’’’’’’’’’mehr als einmal vor. ’’’’’’’’’>#on ("b")#Rekursive Funktionsdefinition#off ("b")# ’’’’’’’’’’’^Es wurde versucht, in der Definition einer "user function" die zu definierende FunkŻ’’’’’’’’’’tion aufzurufen. ’’’’’’’’’’’’’.#on ("b")#STEP ohne FOR#off ("b")# ’’’’’’’’’’’.STEP darf nur in FOR-Anweisungen vorkommen. ’’.#on ("b")#SUB ohne GO#off ("b")# ’’’’’’’’’’’’’.SUB darf nur in GOSUB vorkommen. ’’’’’’’’’’’’’>#on ("b")#Syntaxfehler: #off ("b")# ’’^Wenn dieser Fehler erscheint, wurde vom Compiler eine Angabe gefunden, die nach’’’’’’’’’’’’’’’Nden Syntaxregeln dort nicht erwartet wurde oder fehlerhaft ist. ’’’’’’’’’’’’’’.#on ("b")#TAB ohne (L)PRINT#off ("b")# ’’’’’’’>TAB darf nur in PRINT- und LPRINT-Anweisungen vorkommen. ’’’’’.#on ("b")#THEN ohne IF#off ("b")# ’’’’’’’’’’’’NTHEN darf nur in IF-Anweisungen vorkommen. THEN muū in der gleichen Zeile’’’’’.stehen wie die zugehŚrige IF-Anweisung. ’’’’’’.#on ("b")#TO ohne Zusammenhang#off ("b")# ’’’’>TO darf nur in FOR-Anweisungen oder in GO TO vorkommen. ’’’’’’.#on ("b")#Text zu lang#off ("b")# ’’’’’’’’’’’’NDieser Fehler erscheint, wenn ein AnfŪhrungszeichen fehlt beziehungsweise ein’.AnfŪhrungszeichen zu viel gefunden wird. ’’’’’N#on ("b")#Unbekannte Funktion, Argument(e) angegeben: ...#off ("b")# ’’’’’’’’’^Es wurde versucht, eine Funktion mit einem Argument aufzurufen, fŪr dessen Typ die’’’’’’’’’’’’Funktion nicht definiert ist. N#on ("b")#Unbekannte Prozedur, Parameter angegeben: ...#off ("b")# ’’’’’’’’’’’NDie angegebene Prozedur konnte mit den angegebenen Parametertypen nicht gefunŻ>#on ("b")#Undefinierte 'user function'#off ("b")# ’’’’’’’’’’’’^Es wurde versucht, eine benutzer-definierte Funktion aufzurufen, die (noch) nicht’’’’’’’’’’’’’definiert wurde. ’’’’’’’’’’’’’.#on ("b")#USING ohne (L)PRINT#off ("b")# ’’’’’>USING darf nur in PRINT- und LPRINT-Anweisungen vorkommen. ’’’.#on ("b")#WEND ohne WHILE#off ("b")# ’’’’’’’’’NEs wurde eine WEND-Anweisung gefunden, die keiner WHILE-Anweisung zuzuordŻ’’’’Nnen ist, da keine "offenen" WHILE-Schleifen mehr anhŁngig sind. ’’’’’’’’’’’’’’.#on ("b")#WHILE ohne WEND#off ("b")# ’’’’’’’’’NDiese Fehlermeldung erscheint, wenn am Programmende fŪr eine WHILE-Anweisung’’.kein korrespondierendes WEND gefunden wurde. ’>#on ("b")#Zeile mit dieser Nummer existiert nicht#off ("b")# ’NEs wurde versucht, mit GOTO oder GOSUB zu einer Zeilennumer zu verzweigen, die.im Programm nicht angegeben wurde. ’’’’’’’’’’’.Ųbersicht Ūber die innerhalb des BASIC-SystemsausgelŚsten Laufzeitfehler’’’’NDie meisten Laufzeitfehler werden auch bei BASIC-Programmen im EUMEL-System’’’^erzeugt (vergleiche Kapitel 7.2.). Einige werden aber innerhalb des BASIC-Systems’’’’’’’’’’’’’^erzeugt. Die nachfolgende Ųbersicht enthŁlt die innerhalb des BASIC-Systems ausŻ’’’’’’’’’’’’’’NgelŚsten Fehler mit Angabe des gelieferten Fehlercodes und der Fehlermeldung. .#on ("b")#Fehlercode:#off ("b")# 1003 ’’’’>#on ("b")#Fehlermeldung:#off ("b")# RETURN ohne GOSUB ’’’’’’’NEine RETURN-Anweisung wurde gefunden, obwohl keine GOSUB-Anweisung mehr’’’’’’’anhŁngig war. .#on ("b")#Fehlercode:#off ("b")# 1004 ’’’’^#on ("b")#Fehlermeldung:#off ("b")# RESTORE: Keine DATA-Anweisung in oder nach ’’’’’’’’’’’’’’#right#Zeile ... gefunden ’’’’^Eine RESTORE-Anweisung konnte nicht ausgefŪhrt werden, weil in oder nach der in’’’’’’’’’’’’’’’Nder Anweisung angegebenen Zeilennummer keine DATA-Anweisung mehr steht. ’’’’’’.#on ("b")#Fehlercode:#off ("b")# 1005 ’’’’^#on ("b")#Fehlermeldung:#off ("b")# bei ^: negative Basis, gebrochener Exponent: ... ’’’’’’’’^Es wurde versucht, eine negative Zahl mit einer gebrochenen Zahl zu potenzieren. ’’’’’’’’’’’’’.#on ("b")#Fehlercode:#off ("b")# 1005 ’’’’N#on ("b")#Fehlermeldung:#off ("b")# USING: kein Format gefunden ’’’’’’’’’’’’’NBei einer PRINT USING-Anweisung wurde kein Format fŪr die Ausgabe angegeben’’’>oder die Formatzeichenkette enthŁlt keine Formatzeichen. ’’’’’.#on ("b")#Fehlercode:#off ("b")# 1005 ’’’’N#on ("b")#Fehlermeldung:#off ("b")# USING-Format fehlerhaft: ... ’’’’’’’’’’’’NBei einer PRINT USING-Anweisung wurde ein fehlerhaftes Format angegeben. ’’’’’.#on ("b")#Fehlercode:#off ("b")# 1004 ’’’’N#on ("b")#Fehlermeldung:#off ("b")# Keine Daten mehr fŪr READ ’’’’’’’’’’’’’’’NEs stehen keine Daten mehr fŪr die READ-Anweisung zur VerfŪgung; der READ-’’’’>DATA-Zeiger zeigt hinter das Ende der letzten DATA-Anweisung. .#on ("b")#Fehlercode:#off ("b")# 1005 ’’’’N#on ("b")#Fehlermeldung:#off ("b")# WIDTH: negative Angabe: ... ’’’’’’’’’’’’’.Nach WIDTH wurde eine negative Zahl gefunden. .#on ("b")#Fehlercode:#off ("b")# 1013 ’’’’^#on ("b")#Fehlermeldung:#off ("b")# READ: Falscher Datentyp, ... ist kein INT ’’’’’’’’’’’’’’’NEiner INT-Variablen konnte kein Wert zugewiesen werden, da das aktuelle ObjektNaus der DATA-Liste keine gŪltige Darstellung eines INT-Wertes war oder ein’’’’."quoted string" gefunden wurde. ’’’’’’’’’’’’’’.#on ("b")#Fehlercode:#off ("b")# 1013 ’’’’^#on ("b")#Fehlermeldung:#off ("b")# READ: Falscher Datentyp, ... ist kein REAL ’’’’’’’’’’’’’’^Einer REAL-Variablen konnte kein Wert zugewiesen werden, da das aktuelle Objekt’’’’’’’’’’’’’’’Naus der DATA-Liste keine gŪltige Darstellung eines REAL-Wertes war oder ein’’’."quoted string" gefunden wurde. ’’’’’’’’’’’’’’>#on ("b")#Fehlercode:#off ("b")# 1051 (interner Fehler) ’’>#on ("b")#Fehlermeldung:#off ("b")# variierend ’’’’’’’’’’’’’’NBei der AusfŪhrung des Programms trat in einer Prozedur des BASIC-Systems ein’.interner Fehler auf. (Vergleiche Kapitel 7.) ’.#on ("b")#Fehlercode:#off ("b")# 1080 ’’’’^#on ("b")#Fehlermeldung:#off ("b")# INPUT-Fehler ( Fehlerart ) : > Eingabezeile < ’’’’’’’’’’’^Bei einer INPUT-Anweisung, die auf eine mit 'sysin' eingestellte Datei wirken sollte,’’’’’’’’’^kam es zu einem Fehler der angegebenen Fehlerart. Nach dem Doppelpunkt wird die’’’’’’’’’’’’’’’.Eingabezeile aus der Eingabedatei ausgegeben. NEUMEL-BASIC-Compiler Anhang D: ELAN-Prozeduren des Compilers % ’’’’.Anhang D: ELAN-Prozeduren des Compilers ’’’’’’N #on ("b")#PROC #ib(3)#basic#ie(3)# (TEXT CONST dateiname)#off ("b")# ’’’’’’N Das in der Datei 'dateiname' enthaltene BASIC-Programm wird dem BASIC-’’’’’^ Compiler zur Ųbersetzung Ūbergeben. Werden keine Fehler gefunden, so wird das’’’’’’’’’’’’’’> Programm direkt nach der Ųbersetzung ausgefŪhrt. ’’’’’’’’’’> basic ("Mein liebstes BASIC-Programm")#off ("b")# ’’’’’N #on ("b")#PROC basic (TEXT CONST dateiname, prozedurname)#off ("b")# ’’’’’’N Das in der Datei 'dateiname' enthaltene BASIC-Programm wird dem BASIC-’’’’’N Compiler zur Ųbersetzung Ūbergeben. Werden keine Fehler gefunden, dann wirdN das Programm unter dem Namen 'prozedurname' dauerhaft eingetragen (inserŻ’’N Das Programm wird nicht ausgefŪhrt. Beachten Sie, daū der Prozedurname den’^ Vorschriften fŪr ELAN-Prozeöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööödurnamen entsprechen muū und auūerdem #on ("b")#keine’’’’’’’’’’’^ Leerzeichen#off ("b")# enthalten darf. (Zur Namenswahl siehe auch Kapitel 3.) ’’’’’’’’’’’’’N basic ("Mein liebstes BASIC-Programm", "liebstesprogramm")#off ("b")# ’N #on ("b")#PROC #ib(3)#basic list#ie(3)# (BOOL CONST status)#off ("b")# ’’’’^ Mit der Prozedur 'basic list' kann eingestellt werden, ob die gerade vom Compiler’’’’’’’’’’^ Ūbersetzten Programmzeilen angezeigt werden sollen oder nicht (vergleiche Kapitel’’’’’’’’’’N basic list (TRUE)#off ("b")#: Die Ūbersetzten Zeile werden angezeigt ’’’’’^ basic list (FALSE)#off ("b")#: Die Ūbersetzten Zeile werden nicht angezeigt ’’’’’’’’’’’’’’’N #on ("b")#PROC #ib(3)#basic page#ie(3)# (BOOL CONST status)#off ("b")# ’’’’N Mit der Prozedur 'basic page' kann eingestellt werden, wie die Ausgaben vonN BASIC-Programmen behandelt werden, wenn der Bildschirm voll ist (vergleiche> Kapitel 5, Steuerung der Bildschirmausgaben). ’’’’’’’’’’’’’N basic page (TRUE): Beim Erreichen des Bildschirmendes wird auf einen’’’’’’^ Tastendruck gewartet (vgl. Kap. 5.) ’’’’’’’’’’’’’’’N basic page (FALSE): Beim Erreichen des Bildschirmendes wird 'gescrollt'. ’’basic handbuch.3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’basic handbuch.index’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’)ą’’’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!¹a€ė’’źēl’’’’llėM’’’’¹’SIC.Index’’’’a€’<’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’Į€’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’7’’’’’’’’’’’’’’’’’’’a’7’’’’’’’’’’’’’’’’’’’”’7’’’’’’’’’’’’’’’’’’’ၒ7’’’’’’’’’’’’’’’’’’’!‚’7’’’’’’’’’’’’’’’’’’’a‚’7’’’’’’’’’’’’’’’’’’’”‚’7’’’’’’’’’’’’’’’’’’’į‚’7’’’’’’’’’’’’’’’’’’’!ƒ’7’’’’’’’’’’’’’’’’’’’aƒ’7’’’’’’’’’’’’’’’’’’’”ƒ’7’’’’’’’’’’’’’’’’’’’გ7’’’’’’’’’’’’’’’’’’’!„’7’’’’’’’’’’’’’’’’’’’a„’7’’’’’’’’’’’’’’’’’’’”„’7’’’’’’’’’’’’’’’’’’’į„’7’’’’’’’’’’’’’’’’’’’!…’7’’’’’’’’’’’’’’’’’’’a…’7’’’’’’’’’’’’’’’’’’’”…’7’’’’’’’’’’’’’’’’’’’į…’7’’’’’’’’’’’’’’’’’’’!†’7’’’’’’’’’’’’’’’’’’’a†’7’’’’’’’’’’’’’’’’’’’”†’7’’’’’’’’’’’’’’’’’’’ᆒ6’’’’’’’’’’’’’’’’’’’!‡’;’’’’’’’’’’’’’’’’’’’a‡’7’’’’’’’’’’’’’’’’’’’”‡’;’’’’’’’’’’’’’’’’’’’ᇒ<’’’’’’’’’’’’’’’’’’’!ˆ’<’’’’’’’’’’’’’’’’’’’aˆ’7’’’’’’’’’’’’’’’’’’’”ˆ’;’’’’’’’’’’’’’’’’’’’ሒ7’’’’’’’’’’’’’’’’’’’!‰’;’’’’’’’’’’’’’’’’’’’a‰’7’’’’’’’’’’’’’’’’’’’”‰’7’’’’’’’’’’’’’’’’’’’ቒ7’’’’’’’’’’’’’’’’’’’!Š’7’’’’’’’’’’’’’’’’’’’aŠ’7’’’’’’’’’’’’’’’’’’’”Š’7’’’’’’’’’’’’’’’’’’’ኒ7’’’’’’’’’’’’’’’’’’’!‹’7’’’’’’’’’’’’’’’’’’’a‹’7’’’’’’’’’’’’’’’’’’’”‹’7’’’’’’’’’’’’’’’’’’’į‹’7’’’’’’’’’’’’’’’’’’’!Œ’7’’’’’’’’’’’’’’’’’’’aŒ’7’’’’’’’’’’’’’’’’’’’”Œ’7’’’’’’’’’’’’’’’’’’’ጒ7’’’’’’’’’’’’’’’’’’’!’7’’’’’’’’’’’’’’’’’’’a’6’’’’’’’’’’’’’’’’’’’”’7’’’’’’’’’’’’’’’’’’’į’?’’’’’’’’’’’’’’’’’’’1Ž’7’’’’’’’’’’’’’’’’’’’qŽ’7’’’’’’’’’’’’’’’’’’’±Ž’7’’’’’’’’’’’’’’’’’’’ńŽ’;’’’’’’’’’’’’’’’’’’’1’7’’’’’’’’’’’’’’’’’’’q’6’’’’’’’’’’’’’’’’’’’±’7’’’’’’’’’’’’’’’’’’’ń’7’’’’’’’’’’’’’’’’’’’1’7’’’’’’’’’’’’’’’’’’’q’;’’’’’’’’’’’’’’’’’’’±’;’’’’’’’’’’’’’’’’’’’ń’;’’’’’’’’’’’’’’’’’’’1‘’7’’’’’’’’’’’’’’’’’’’q‘’7’’’’’’’’’’’’’’’’’’’±‘’7’’’’’’’’’’’’’’’’’’’ń‘’7’’’’’’’’’’’’’’’’’’’1’’7’’’’’’’’’’’’’’’’’’’q’’7’’’’’’’’’’’’’’’’’’’±’’6’’’’’’’’’’’’’’’’’’’ń’’7’’’’’’’’’’’’’’’’’’’1“’7’’’’’’’’’’’’’’’’’’’q“’7’’’’’’’’’’’’’’’’’’’±“’7’’’’’’’’’’’’’’’’’’’ń“’7’’’’’’’’’’’’’’’’’’’1”’7’’’’’’’’’’’’’’’’’’’q”’<’’’’’’’’’’’’’’’’’’’±”’<’’’’’’’’’’’’’’’’’’’ń”’7’’’’’’’’’’’’’’’’’’’1•’8’’’’’’’’’’’’’’’’’’’q•’7’’’’’’’’’’’’’’’’’’’±•’7’’’’’’’’’’’’’’’’’’’ń•’7’’’’’’’’’’’’’’’’’’’1–’7’’’’’’’’’’’’’’’’’’’q–’7’’’’’’’’’’’’’’’’’’’±–’7’’’’’’’’’’’’’’’’’’’ń–’7’’’’’’’’’’’’’’’’’’’1—’6’’’’’’’’’’’’’’’’’’’q—’7’’’’’’’’’’’’’’’’’’’±—’7’’’’’’’’’’’’’’’’’’’ń—’7’’’’’’’’’’’’’’’’’’’1˜’7’’’’’’’’’’’’’’’’’’’q˜’6’’’’’’’’’’’’’’’’’’’±˜’7’’’’’’’’’’’’’’’’’’’ń˜’7’’’’’’’’’’’’’’’’’’’1™’6’’’’’’’’’’’’’’’’’’’q™’7’’’’’’’’’’’’’’’’’’’±™’7’’’’’’’’’’’’’’’’’’’ń™’7’’’’’’’’’’’’’’’’’’’1š’7’’’’’’’’’’’’’’’’’’’qš’7’’’’’’’’’’’’’’’’’’’±š’7’’’’’’’’’’’’’’’’’’’ńš’7’’’’’’’’’’’’’’’’’’’1›’6’’’’’’’’’’’’’’’’’’’q›’6’’’’’’’’’’’’’’’’’’’±›’7’’’’’’’’’’’’’’’’’’’ń›’7’’’’’’’’’’’’’’’’’’’1œ’7’’’’’’’’’’’’’’’’’’’qœ’7’’’’’’’’’’’’’’’’’’’±œ’7’’’’’’’’’’’’’’’’’’’ńœ’7’’’’’’’’’’’’’’’’’’’1’7’’’’’’’’’’’’’’’’’’’q’;’’’’’’’’’’’’’’’’’’’±’7’’’’’’’’’’’’’’’’’’’ń’7’’’’’’’’’’’’’’’’’’’1ž’6’’’’’’’’’’’’’’’’’’’qž’7’’’’’’’’’’’’’’’’’’’±ž’7’’’’’’’’’’’’’’’’’’’ńž’7’’’’’’’’’’’’’’’’’’’1Ÿ’7’’’’’’’’’’’’’’’’’’’qŸ’7’’’’’’’’’’’’’’’’’’’±Ÿ’7’’’’’’’’’’’’’’’’’’’ńŸ’7’’’’’’’’’’’’’’’’’’’1 ’7’’’’’’’’’’’’’’’’’’’q ’7’’’’’’’’’’’’’’’’’’’± ’7’’’’’’’’’’’’’’’’’’’ń ’;’’’’’’’’’’’’’’’’’’’1”’7’’’’’’’’’’’’’’’’’’’q”’7’’’’’’’’’’’’’’’’’’’±”’7’’’’’’’’’’’’’’’’’’’ń”’7’’’’’’’’’’’’’’’’’’’1¢’7’’’’’’’’’’’’’’’’’’’q¢’7’’’’’’’’’’’’’’’’’’’±¢’7’’’’’’’’’’’’’’’’’’’ń¢’;’’’’’’’’’’’’’’’’’’’1£’7’’’’’’’’’’’’’’’’’’’q£’6’’’’’’’’’’’’’’’’’’’±£’7’’’’’’’’’’’’’’’’’’’ń£’8’’’’’’’’’’’’’’’’’’’1¤’7’’’’’’’’’’’’’’’’’’’q¤’7’’’’’’’’’’’’’’’’’’’±¤’7’’’’’’’’’’’’’’’’’’’ń¤’8’’’’’’’’’’’’’’’’’’’1„’7’’’’’’’’’’’’’’’’’’’q„’7’’’’’’’’’’’’’’’’’’’±„’7’’’’’’’’’’’’’’’’’’’ń„’7’’’’’’’’’’’’’’’’’’’1¦’7’’’’’’’’’’’’’’’’’’’q¦’;’’’’’’’’’’’’’’’’’’’±¦’7’’’’’’’’’’’’’’’’’’’ń¦’7’’’’’’’’’’’’’’’’’’’1§’7’’’’’’’’’’’’’’’’’’’q§’7’’’’’’’’’’’’’’’’’’’±§’7’’’’’’’’’’’’’’’’’’’ń§’6’’’’’’’’’’’’’’’’’’’1Ø’7’’’’’’’’’’’’’’’’’’’qØ’6’’’’’’’’’’’’’’’’’’’±Ø’7’’’’’’’’’’’’’’’’’’’ńØ’7’’’’’’’’’’’’’’’’’’’1©’7’’’’’’’’’’’’’’’’’’’q©’D’’’’’’’’’’’’’’’’’’’Į©’7’’’’’’’’’’’’’’’’’’’Ŗ’7’’’’’’’’’’’’’’’’’’’AŖ’7’’’’’’’’’’’’’’’’’’’Ŗ’7’’’’’’’’’’’’’’’’’’’ĮŖ’7’’’’’’’’’’’’’’’’’’’«’;’’’’’’’’’’’’’’’’’’’A«’6’’’’’’’’’’’’’’’’’’’«’7’’’’’’’’’’’’’’’’’’’Į«’7’’’’’’’’’’’’’’’’’’’¬’7’’’’’’’’’’’’’’’’’’’A¬’7’’’’’’’’’’’’’’’’’’’¬’7’’’’’’’’’’’’’’’’’’’Į¬’7’’’’’’’’’’’’’’’’’’’­’7’’’’’’’’’’’’’’’’’’’A­’7’’’’’’’’’’’’’’’’’’’­’7’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’Į­’6’’’’’’’’’’’’’’’’’’’®’7’’’’’’’’’’’’’’’’’’’A®’7’’’’’’’’’’’’’’’’’’’®’7’’’’’’’’’’’’’’’’’’’Į®’7’’’’’’’’’’’’’’’’’’’Æ’7’’’’’’’’’’’’’’’’’’’AÆ’6’’’’’’’’’’’’’’’’’’’Æ’8’’’’’’’’’’’’’’’’’’’ĮÆ’6’’’’’’’’’’’’’’’’’’’°’6’’’’’’’’’’’’’’’’’’’A°’;’’’’’’’’’’’’’’’’’’’°’7’’’’’’’’’’’’’’’’’’’Į°’7’’’’’’’’’’’’’’’’’’’±’8’’’’’’’’’’’’’’’’’’’A±’7’’’’’’’’’’’’’’’’’’’±’7’’’’’’’’’’’’’’’’’’’Į±’7’’’’’’’’’’’’’’’’’’’²’7’’’’’’’’’’’’’’’’’’’A²’;’’’’’’’’’’’’’’’’’’’²’8’’’’’’’’’’’’’’’’’’’Į²’7’’’’’’’’’’’’’’’’’’’³’7’’’’’’’’’’’’’’’’’’’A³’7’’’’’’’’’’’’’’’’’’’³’;’’’’’’’’’’’’’’’’’’’Į³’;’’’’’’’’’’’’’’’’’’’“’6’’’’’’’’’’’’’’’’’’’A“’6’’’’’’’’’’’’’’’’’’’“’7’’’’’’’’’’’’’’’’’’’Į“’<’’’’’’’’’’’’’’’’’’’µ’:’’’’’’’’’’’’’’’’’’’Aµ’7’’’’’’’’’’’’’’’’’’’µ’7’’’’’’’’’’’’’’’’’’’Įµ’7’’’’’’’’’’’’’’’’’’’¶’7’’’’’’’’’’’’’’’’’’’A¶’7’’’’’’’’’’’’’’’’’’’¶’6’’’’’’’’’’’’’’’’’’’Į¶’7’’’’’’’’’’’’’’’’’’’·’7’’’’’’’’’’’’’’’’’’’A·’7’’’’’’’’’’’’’’’’’’’·’7’’’’’’’’’’’’’’’’’’’Į·’7’’’’’’’’’’’’’’’’’’’ø’7’’’’’’’’’’’’’’’’’’’Aø’7’’’’’’’’’’’’’’’’’’’ø’6’’’’’’’’’’’’’’’’’’’Įø’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>’’#page nr ("%",115)# ’’’’’’’’’’>EUMEL-BASIC-Compiler Stichwortverzeichnis % Stichwortverzeichnis ’’’’’’’’’>>= 15 ’’’’’’’>\ 14 ’’’’’’’>- 14 ’’’’’’’>+ 14 ’’’’’’’>+ 15 ’’’’’’’><= 15 ’’’’’’’>* 14 ’’’’’’’>/ 14 ’’’’’’’>= 15 ’’’’’’’>> 15 ’’’’’’’>< 15 ’’’’’’’><> 15 ’’’’’’’>^ 14 ’’’’’’’>ABS 31 ’’’’’’’>AND 16 ’’’’’’’>AnfŪhrungszeichen 10 ’’’’’’’>Argument 21 ’’’’’’’>Arithmetische Operatoren 14 ’’’’’’’>Arrays 13 ’’’’’’’>ASC 32 ’’’’’’’>ATN 32 ’’’’’’’>Öquivalenz-VerknŪpfung 17 ’’’’’’’>Aufruf benutzer-definierter Funktionen 21 ’’’’’’’>Aufruf und Steuerung des BASIC-Compilers 5 ’’’’’’’’>basic 5, 113 ’’’>BASIC-Compiler ERROR 28 ’’’’’’’>basic list 6, 113 ’’’>basic page 25, 114 ’’>benutzer-definierte Funktionen 19, 104 ’’>Bildschirmausgaben 25 ’’’’’’’>CALL 23, 33 ’’’>CDBL 35 ’’’’’’’>CHAIN 23, 35 ’’’>CHR$ 35 ’’’’’’’>CINT 36 ’’’’’’’>CLS 36 ’’’’’’’>Codebereichs pro Task 27 ’’’’’’’>Compiler Error 304 26 ’’’’’’’>Compiler Error 307 26 ’’’’’’’>Compiler Error 308 26 ’’’’’’’>COS 37 ’’’’’’’>CSRLIN 37 ’’’’’’’>CVD, CVI 38 ’’’’’’’>DATA 38 ’’’’’’’>DATE$ 40 ’’’’’’’>Datentypen 10 ’’’’’’’>Datentyp INT 10 ’’’’’’’>Datentyp REAL 10 ’’’’’’’>Datentyp TEXT 10 ’’’’’’’>Debugging 6 ’’’’’’’’>DEFDBL, DEFINT, DEFSNG, DEFSTR 40 ’’’’’’’NDEF FN 19, 28, 42 ’’’’’’’’’’’’’’’>Definition benutzer-definierter Funktionen 19 ’’’’’’’>DEFINT 12 ’’’’’’’>DEFSTR 12 ’’’’’’’>DIM 13, 43 ’’’>Dimensionen 13 ’’’’’’’>Doppelpunkt 8 ’’’’’’’’>ELSE 54 ’’’’’’’>END 45 ’’’’’’’>EOF 56 ’’’’’’’>EOF (End of File, Dateiende) 7, 105 ’’’>EOL (End of Line, Zeilenende) 8, 105 ’’’>EOS (End of Statement, Anweisungsende) 8, 105 ’’’>EQV 17 ’’’’’’’>ERL 46 ’’’’’’’>ERM$ 47 ’’’’’’’>ERR 47 ’’’’’’’>ERROR 48 ’’’’’’’>EUMEL-Coder 26 ’’’’’’’>EUMEL-Textdatei 7 ’’’’’’’’>Exklusiv-ODER-VerknŪpfung 17 ’’’’’’’>EXP 49 ’’’’’’’>Exponent 10 ’’’’’’’>Fehlerbehandlung 28 ’’’’’’’>Fehlercodes 30 ’’’’’’’>Fehlerzeile 30 ’’’’’’’>Fehler zur Laufzeit 30, 111 ’’>Fehler zur Ųbersetzungszeit 28, 106 ’’>Felder (Arrays) 13 ’’’’’’’>Felder/Feldelemente 104 ’’’’’’>Feldnamen 13 ’’’’’’’>FIX 49 ’’’’’’’>FOR 50 ’’’’’’’>FRE 51 ’’’’’’’>Funktionen 19 ’’’’’’’>Funktionsaufrufe 19 ’’’’’’’>Ganzzahlen 10 ’’’’’’’>Generatorprogramm 4 ’’’’’’’’>Gleitkommazahlen 10 ’’’’’’’>GOSUB 52 ’’’’’’’>GOTO öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö 53 ’’’’’’’>Grenzen des Compilers 26 ’’’’’’’>Groū-/Kleinschreibung 9 ’’’’’’’’>Hauptdurchlauf 28 ’’’’’’’>HEX$ 54 ’’’’’’’>Hochkomma 8 ’’’’’’’’>IF 54 ’’’’’’’>IMP 17 ’’’’’’’>Implikations-VerknŪpfung 17 ’’’’’’’>Indizes 13 ’’’’’’’>INKEY$ 56 ’’’’’’’>INPUT$ 58 ’’’’’’’>INPUT 56 ’’’’’’’>Insertieren von BASIC-Programmen 5 ’’’’’’’’>Installation des BASIC-Compilers 4 ’’’’’’’’>INSTR 59 ’’’’’’’>INT 59 ’’’’’’’>Interne Compilerfehler 28 ’’’’’’’>INTs 10 ’’’’’’’>INT-Ųberlauf 15 ’’’’’’’>KILL 60 ’’’’’’’>Konstanten 10 ’’’’’’’>Konvertierung 15, 22 ’’’>Kriterien fŪr den Typ einer Variablen 12 ’’’’’’’>Labels 26 ’’’’’’’>Leerzeichen 9 ’’’’’’’’>LEFT$ 60 ’’’’’’’>LEN 61 ’’’’’’’>LET 61 ’’’’’’’>LINE INPUT 62 ’’’’’’’>LOG 63 ’’’’’’’>Logische Operatoren 16 ’’’’’’’>LPOS 63 ’’’’’’’>LPRINT 64 ’’’’’’’>LSET 65 ’’’’’’’>Mantisse 11 ’’’’’’’>MID$ 65, 66 ’’’>MKD$, MKI$ 67 ’’’’’’’>MOD 14 ’’’’’’’>Modulgrenze 26 ’’’’’’’>NAME 68 ’’’’’’’>Namenstabelle 27 ’’’’’’’>Negation 16 ’’’’’’’>negative Zahlenwerte 11 ’’’’’’’>NEXT 50, 68 ’’’>NOT 16 ’’’’’’’>Notation 3 ’’’’’’’’>Notebook 28 ’’’’’’’>numerische Konstanten 103 ’’’’’’>OCT$ 69 ’’’’’’’>ODER-VerknŪpfung 17 ’’’’’’’>ON 69 ’’’’’’’>Operatoren 103 ’’’’’’>Operatoren, arithmetische 14 ’’’’’’’>Operatoren, logische 16 ’’’’’’’>Operatoren, Text- 15 ’’’’’’’>Operatoren, Vergleichs- 15 ’’’’’’’>Operator, Zuweisungs- 18 ’’’’’’’>OPTION BASE 13, 71 ’’’>OR 17 ’’’’’’’>Parameter 19 ’’’’’’’>POS 72 ’’’’’’’>PRINT 72 ’’’’’’’>PrioritŁten der Operanden 18 ’’’’’’’>Programmdatei 7 ’’’’’’’’>Programmsegmente 24 ’’’’’’’>Programmzeile 7 ’’’’’’’’>RANDOMIZE 75 ’’’’’’’>READ 75 ’’’’’’’>REM 77 ’’’’’’’NReservierte WŚrter 9, 12, 100, 103 ’’’’’’’’’’>RESTORE 77 ’’’’’’’>RETURN 78 ’’’’’’’>RIGHT$ 79 ’’’’’’’>RND 80 ’’’’’’’>RSET 81 ’’’’’’’>Scanner 9, 103 ’’’>SchlŪsselwŚrter 9 ’’’’’’’’>Scrolling 25 ’’’’’’’>SGN 81 ’’’’’’’>SIN 82 ’’’’’’’>SPACE$ 82 ’’’’’’’>SPC 83 ’’’’’’’>SQR 83 ’’’’’’’>Standard-Funktionen 19 ’’’’’’’>STEP 50 ’’’’’’’>Steuerung der Bildschirmausgaben 25 ’’’’’’’>Steuerung des BASIC-Compilers 5 ’’’’’’’’>STOP 84 ’’’’’’’>STR$ 84 ’’’’’’’>STRING$ 85 ’’’’’’’>SUB 52 ’’’’’’’>SWAP 86 ’’’’’’’>Symbol 9 ’’’’’’’’>Symboltypen 103 ’’’’’’>Syntax 7 ’’’’’’’’>sysout 6 ’’’’’’’’>TAB 64, 72 ’’’>TAN 86 ’’’’’’’>Texte 10 ’’’’’’’>TEXT-Konstanten 104 ’’’’’’>Text-Operator + 15 ’’’’’’’>THEN 54 ’’’’’’’>TIME$ 88 ’’’’’’’>TIMER 87 ’’’’’’’>TO 50, 53 ’’’>Trennzeichen 105 ’’’’’’>TRON / TROFF 88 ’’’’’’’>Typanpassung 22 ’’’’’’’>UND-VerknŪpfung 16 ’’’’’’’>USING 64, 72 ’’’>USR 23, 90 ’’’>Ųbersetzen von BASIC-Programmen 5 ’’’’’’’’>Ųbersichtlichkeit von BASIC-Programmen 7 ’’’’’’’’>VAL 91 ’’’’’’’>Variablen 12, 104 ’’>Variablennamen 9, 12 ’’’’>VAR-Parameter 23 ’’’’’’’>Vergleichsoperatoren 15 ’’’’’’’>Vordurchlauf 28 ’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö>Vorzeichen 11 ’’’’’’’>Wahrheitswerte 16 ’’’’’’’>Weitere Schreibregeln 9 ’’’’’’’’>WEND 92 ’’’’’’’>wertliefernden Prozeduren 23 ’’’’’’’>WHILE 92 ’’’’’’’>WIDTH 93 ’’’’’’’>WRITE 94 ’’’’’’’>XOR 17 ’’’’’’’>Zahlen 10 ’’’’’’’>Zeilennummer 7 ’’’’’’’’>Zuweisungsoperator 18 ’’’’’’’basic handbuch.index’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’eumel coder 1.8.1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’jü’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’c0a€ė’’  ė[ ’’’’ė[ ė[  č’ž’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’€’L’’’’’’’’’’’’’’’’’’’р’#’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’a‚’%’’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’ń‚’’’’’’’’’’’’’’’’’’’’ƒ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’aƒ’%’’’’’’’’’’’’’’’’’’’‘ƒ’E’’’’’’’’’’’’’’’’’’’გA’’’’’’’’’’’’’’’’’’’1„’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’,’’’’’’’’’’’’’’’’’’’Į„’)’’’’’’’’’’’’’’’’’’’ń„’/’’’’’’’’’’’’’’’’’’’1…’"’’’’’’’’’’’’’’’’’’’a…’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’!†’’’’’’’’’’’’’’’’’’’’A†’’’’’’’’’’’’’’’’’’’’a†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’ ’’’’’’’’’’’’’’’’’’’±†’"’’’’’’’’’’’’’’’’’’’ᆒ"’’’’’’’’’’’’’’’’’’’‡’)’’’’’’’’’’’’’’’’’’’A‡’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‡’’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ˆ’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aˆ’L’’’’’’’’’’’’’’’’’’’‘ˆ’M’’’’’’’’’’’’’’’’’’’ሒM’’’’’’’’’’’’’’’’’’’1‰’M’’’’’’’’’’’’’’’’’’’‰’M’’’’’’’’’’’’’’’’’’’щ’M’’’’’’’’’’’’’’’’’’’!Š’M’’’’’’’’’’’’’’’’’’’qŠ’M’’’’’’’’’’’’’’’’’’’ĮŠ’M’’’’’’’’’’’’’’’’’’’‹’M’’’’’’’’’’’’’’’’’’’a‹’M’’’’’’’’’’’’’’’’’’’±‹’M’’’’’’’’’’’’’’’’’’’Œ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’QŒ’M’’’’’’’’’’’’’’’’’’’”Œ’M’’’’’’’’’’’’’’’’’’’ńŒ’M’’’’’’’’’’’’’’’’’’’A’M’’’’’’’’’’’’’’’’’’’‘’M’’’’’’’’’’’’’’’’’’’į’M’’’’’’’’’’’’’’’’’’’1Ž’M’’’’’’’’’’’’’’’’’’’Ž’M’’’’’’’’’’’’’’’’’’’ю’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’%’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’ ’’’’’’’’’’’’’’’’’’’Į’(’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’%’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’?’’’’’’’’’’’’’’’’’’’A‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a‘’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‘’$’’’’’’’’’’’’’’’’’’’ё’’’’’’’’’’’’’’’’’’’’ń‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’’ ENDPROC int;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’’%’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’į’’+’’’’’’’’’’’’’’’’’’’“’B’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘“’%’’’’’’’’’’’’’’’’’’’Į“’ ’’’’’’’’’’’’’’’’’’’ń“’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’1”’/’’’’’’’’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’ ’’’’’’’’’’’’’’’’’’’Į”’2’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’•’:’’’’’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’A•’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a•’$’’’’’’’’’’’’’’’’’’’‘•’1’’’’’’’’’’’’’’’’’’’ѕ’+’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!–’’’’’’’’’’’’’’’’’’’’A–’C’’’’’’’’’’’’’’’’’’’‘–’E’’’’’’’’’’’’’’’’’’’į–’/’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!—’’’’’’’’’’’’’’’’’’’’1—’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a—’’’’’’’’’’’’’’’’’’’’—’.’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ї’’’’’’’’’’’’’’’’’’’’ń—’S’’’’’’’’’’’’’’’’’’’’’ ENDPROC text;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q˜’&’’’’’’’’’’’’’’’’’’’˜’#’’’’’’’’’’’’’’’’’’’±˜’8’’’’’’’’’’’’’’’’’’’ń˜’7’’’’’’’’’’’’’’’’’’’1™’"’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q™’’’’’’’’’’’’’’’’’’’’‘™’’’’’’’’’’’’’’’’’’’’±™’’’’’’’’’’’’’’’’’’’’љ’’’’’’’’’’’’’’’’’’’’ń™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’1š’’’’’’’’’’’’’’’’’’’’Qš’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aš’ ’’’’’’’’’’’’’’’’’’’‘š’’’’’’’’’’’’’’’’’’’’’’ ENDPROC cout;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±š’#’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’’’ ENDOP :=;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!›’%’’’’’’’’’’’’’’’’’’’Q›’’’’’’’’’’’’’’’’’’’’q›’’’’’’’’’’’’’’’’’’’’’’ ENDOP INCR;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘›’%’’’’’’’’’’’’’’’’’’’Į›’’’’’’’’’’’’’’’’’’’’į›’’’’’’’’’’’’’’’’’’’’’’ ENDOP DECR;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’!œ’’’’’’’’’’’’’’’’’’’’’’ENDOP =;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aœ’’’’’’’’’’’’’’’’’’’’qœ’’’’’’’’’’’’’’’’’’’’’’ ENDOP <=;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘œ’’’’’’’’’’’’’’’’’’’’±œ’’’’’’’’’’’’’’’’’’’’ќ’’’’’’’’’’’’’’’’’’’’’’ENDOP <;’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńœ’#’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’I’’’’’’’’’’’’’’’’’’’ž’,’’’’’’’’’’’’’’’’’’’Až’-’’’’’’’’’’’’’’’’’’’qž’+’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įž’:’’’’’’’’’’’’’’’’’’’Ÿ’-’’’’’’’’’’’’’’’’’’’1Ÿ’,’’’’’’’’’’’’’’’’’’’aŸ’'’’’’’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’’’ ENDOP DSUB;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ÿ’’’’’’’’’’’’’’’’’’’’±Ÿ’’’’’’’’’’’’’’’’’’’’’’ ENDOP + ;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’џ’’’’’’’’’’’’’’’’’’’’ńŸ’’’’’’’’’’’’’’’’’’’’’’ ENDOP - ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’+’’’’’’’’’’’’’’’’’’’A ’’’’’’’’’’’’’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q ’+’’’’’’’’’’’’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’Į ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń ’/’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q”’/’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń”’/’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’1¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¢’’’’’’’’’’’’’’’’’’’’a¢’’’’’’’’’’’’’’’’’’’’’’ ENDOP DIV ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’”¢’’’’’’’’’’’’’’’’’’’’’’ ENDOP MOD ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į¢’’’’’’’’’’’’’’’’’’’’ᢒ%’’’’’’’’’’’’’’’’’’’£’&’’’’’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’’’ ENDOP AND ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A£’’’’’’’’’’’’’’’’’’’’a£’$’’’’’’’’’’’’’’’’’’’‘£’%’’’’’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’’’ ENDOP OR ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į£’’’’’’’’’’’’’’’’’’’’ᣒ%’’’’’’’’’’’’’’’’’’’¤’&’’’’’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’’’ ENDOP XOR ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¤’@’’’’’’’’’’’’’’’’’’’‘¤’’’’’’’’’’’’’’’’’’’’±¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѥ’H’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!¦’’’’’’’’’’’’’’’’’’’’A¦’’’’’’’’’’’’’’’’’’’’’’ ENDOP * ; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’a¦’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᦒC’’’’’’’’’’’’’’’’’’’1§’C’’’’’’’’’’’’’’’’’’’§’6’’’’’’’’’’’’’’’’’’’Į§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’Ø’M’’’’’’’’’’’’’’’’’’’aØ’M’’’’’’’’’’’’’’’’’’’±Ø’M’’’’’’’’’’’’’’’’’’’©’M’’’’’’’’’’’’’’’’’’’Q©’M’’’’’’’’’’’’’’’’’’’”©’M’’’’’’’’’’’’’’’’’’’ń©’M’’’’’’’’’’’’’’’’’’’AŖ’M’’’’’’’’’’’’’’’’’’’‘Ŗ’M’’’’’’’’’’’’’’’’’’’įŖ’M’’’’’’’’’’’’’’’’’’’1«’M’’’’’’’’’’’’’’’’’’’«’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń«’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!¬’*’’’’’’’’’’’’’’’’’’’Q¬’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¬’*’’’’’’’’’’’’’’’’’’’±¬’*’’’’’’’’’’’’’’’’’’’ᬒ*’’’’’’’’’’’’’’’’’’’­’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A­’J’’’’’’’’’’’’’’’’’’’‘­’*’’’’’’’’’’’’’’’’’’’Į­’*’’’’’’’’’’’’’’’’’’’ń­’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!®’0’’’’’’’’’’’’’’’’’’’a®’0’’’’’’’’’’’’’’’’’’’”®’0’’’’’’’’’’’’’’’’’’’į®’0’’’’’’’’’’’’’’’’’’’!Æ’0’’’’’’’’’’’’’’’’’’’aÆ’0’’’’’’’’’’’’’’’’’’’”Æ’0’’’’’’’’’’’’’’’’’’’ᯒ0’’’’’’’’’’’’’’’’’’’!°’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a°’0’’’’’’’’’’’’’’’’’’’”°’0’’’’’’’’’’’’’’’’’’’į°’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1±’0’’’’’’’’’’’’’’’’’’’q±’0’’’’’’’’’’’’’’’’’’’±±’0’’’’’’’’’’’’’’’’’’’ń±’0’’’’’’’’’’’’’’’’’’’1²’0’’’’’’’’’’’’’’’’’’’q²’0’’’’’’’’’’’’’’’’’’’±²’0’’’’’’’’’’’’’’’’’’’ń²’0’’’’’’’’’’’’’’’’’’’1³’0’’’’’’’’’’’’’’’’’’’q³’0’’’’’’’’’’’’’’’’’’’±³’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń³’1’’’’’’’’’’’’’’’’’’’1“’0’’’’’’’’’’’’’’’’’’’q“’0’’’’’’’’’’’’’’’’’’’±“’3’’’’’’’’’’’’’’’’’’’ń“’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1µ’/’’’’’’’’’’’’’’’’’’’qµ’0’’’’’’’’’’’’’’’’’’’±µ’0’’’’’’’’’’’’’’’’’’’ńµ’0’’’’’’’’’’’’’’’’’’’1¶’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¶’0’’’’’’’’’’’’’’’’’’’±¶’0’’’’’’’’’’’’’’’’’’’ń¶’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1·’1’’’’’’’’’’’’’’’’’’’q·’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±·’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń·’1’’’’’’’’’’’’’’’’’’’1ø’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qø’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ø’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńø’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¹’0’’’’’’’’’’’’’’’’’’’a¹’5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”¹’1’’’’’’’’’’’’’’’’’’’į¹’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’!ŗ’’’’’’’’’’’’’’’’’’’’Aŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŗ’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ŗ’’’’’’’’’’’’’’’’’’’’Įŗ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’!»’’’’’’’’’’’’’’’’’’’’A»’?’’’’’’’’’’’’’’’’’’’‘»’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń»’B’’’’’’’’’’’’’’’’’’’A¼’’’’’’’’’’’’’’’’’’’’a¼’’’’’’’’’’’’’’’’’’’’¼’A’’’’’’’’’’’’’’’’’’’Ѽ’(’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’!½’(’’’’’’’’’’’’’’’’’’’Q½’8’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’‘½’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±½’’’’’’’’’’’’’’’’’’’’ѽ’"’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’!¾’’’’’’’’’’’’’’’’’’’’A¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¾’I’’’’’’’’’’’’’’’’’’’±¾’’’’’’’’’’’’’’’’’’’’Ѿ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń¾’=’’’’’’’’’’’’’’’’’’’1æ’H’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’‘æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”æ’’’’’’’’’’’’’’’’’’’’Įæ’’’’’’’’’’’’’’’’’’’’įæ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ą’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AĄ’0’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’”Ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮĄ’’’’’’’’’’’’’’’’’’’’įĄ’"’’’’’’’’’’’’’’’’’’’Į’B’’’’’’’’’’’’’’’’’’’aĮ’F’’’’’’’’’’’’’’’’’’’±Į’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įĮ’’’’’’’’’’’’’’’’’’’’Ā’>’’’’’’’’’’’’’’’’’’’AĀ’A’’’’’’’’’’’’’’’’’’’‘Ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ā’K’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’!Ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AĆ’I’’’’’’’’’’’’’’’’’’’‘Ć’’’’’’’’’’’’’’’’’’’’±Ć’’’’’’’’’’’’’’’’’’’’ŃĆ’+’’’’’’’’’’’’’’’’’’’Ä’.’’’’’’’’’’’’’’’’’’’1Ä’2’’’’’’’’’’’’’’’’’’’qÄ’)’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’”Ä’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮÄ’4’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’Å’’’’’’’’’’’’’’’’’’’’!Å’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QÅ’’’’’’’’’’’’’’’’’’’’qÅ’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Å’’’’’’’’’’’’’’’’’’’’ĮÅ’#’’’’’’’’’’’’’’’’’’’ńÅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ę’E’’’’’’’’’’’’’’’’’’’aĘ’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ę’.’’’’’’’’’’’’’’’’’’’’’ hash ;’’’’’’’’’’ŃĘ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’hash :’’’’’’’’’’’’’’’ńĘ’’’’’’’’’’’’’’’’’’’’Ē’5’’’’’’’’’’’’’’’’’’’QĒ’’’’’’’’’’’’’’’’’’’’’’ ENDREP .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qĒ’’’’’’’’’’’’’’’’’’’’‘Ē’’’’’’’’’’’’’’’’’’’’ĮĒ’;’’’’’’’’’’’’’’’’’’’Č’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ wrap around :’’’’’’’’QČ’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’”Č’’’’’’’’’’’’’’’’’’’’ĮČ’’’’’’’’’’’’’’’’’’’’įČ’#’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’1É’+’’’’’’’’’’’’’’’’’’’aÉ’!’’’’’’’’’’’’’’’’’’’‘É’!’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮÉ’’’’’’’’’’’’’’’’’’’’įÉ’:’’’’’’’’’’’’’’’’’’’!Ź’8’’’’’’’’’’’’’’’’’’’aŹ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ź’1’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’ĮŹ’’’’’’’’’’’’’’’’’’’’įŹ’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ė’’’’’’’’’’’’’’’’’’’’AĖ’1’’’’’’’’’’’’’’’’’’’Ė’!’’’’’’’’’’’’’’’’’’’±Ė’?’’’’’’’’’’’’’’’’’’’Ģ’A’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’QĢ’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’”Ģ’!’’’’’’’’’’’’’’’’’’’ŃĢ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńĢ’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’Ķ’'’’’’’’’’’’’’’’’’’’’AĶ’'’’’’’’’’’’’’’’’’’’’qĶ’-’’’’’’’’’’’’’’’’’’’”Ķ’1’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’įĶ’’’’’’’’’’’’’’’’’’’’’’ PER’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ī’$’’’’’’’’’’’’’’’’’’’QĪ’#’’’’’’’’’’’’’’’’’’’Ī’=’’’’’’’’’’’’’’’’’’’ĮĪ’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńĪ’(’’’’’’’’’’’’’’’’’’’!Ļ’#’’’’’’’’’’’’’’’’’’’QĻ’J’’’’’’’’’’’’’’’’’’’”Ļ’4’’’’’’’’’’’’’’’’’’’įĻ’9’’’’’’’’’’’’’’’’’’’!Š’G’’’’’’’’’’’’’’’’’’’qŠ’;’’’’’’’’’’’’’’’’’’’±Š’H’’’’’’’’’’’’’’’’’’’Ń’G’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QŃ’’’’’’’’’’’’’’’’’’’’qŃ’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ń’’’’’’’’’’’’’’’’’’’’ŃŃ’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’1Ņ’8’’’’’’’’’’’’’’’’’’’qŅ’6’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ņ’’’’’’’’’’’’’’’’’’’’ŃŅ’4’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ó’6’’’’’’’’’’’’’’’’’’’qÓ’’’’’’’’’’’’’’’’’’’’‘Ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ó’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńÓ’$’’’’’’’’’’’’’’’’’’’!Ō’’’’’’’’’’’’’’’’’’’’AŌ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aŌ’&’’’’’’’’’’’’’’’’’’’‘Ō’’’’’’’’’’’’’’’’’’’’±Ō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’ŃŌ’M’’’’’’’’’’’’’’’’’’’!Õ’M’’’’’’’’’’’’’’’’’’’qÕ’M’’’’’’’’’’’’’’’’’’’ĮÕ’M’’’’’’’’’’’’’’’’’’’Ö’M’’’’’’’’’’’’’’’’’’’aÖ’M’’’’’’’’’’’’’’’’’’’±Ö’M’’’’’’’’’’’’’’’’’’’×’M’’’’’’’’’’’’’’’’’’’Q×’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”×’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į×’!’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’1Ų’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŲ’ ’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’”Ų’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŲ’!’’’’’’’’’’’’’’’’’’’ńŲ’’’’’’’’’’’’’’’’’’’’Ł’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŁ’’’’’’’’’’’’’’’’’’’’qŁ’’’’’’’’’’’’’’’’’’’’‘Ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ł’5’’’’’’’’’’’’’’’’’’’ńŁ’5’’’’’’’’’’’’’’’’’’’1Ś’5’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’qŚ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ś’’’’’’’’’’’’’’’’’’’’±Ś’ ’’’’’’’’’’’’’’’’’’’įŚ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ū’<’’’’’’’’’’’’’’’’’’’aŪ’’’’’’’’’’’’’’’’’’’’’’ ENDOP := ; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ū’%’’’’’’’’’’’’’’’’’’’±Ū’"’’’’’’’’’’’’’’’’’’’įŪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’1Ü’’’’’’’’’’’’’’’’’’’’QÜ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC goret : ’’’’’’’’qÜ’’’’’’’’’’’’’’’’’’’’‘Ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ü’%’’’’’’’’’’’’’’’’’’’įÜ’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ż’&’’’’’’’’’’’’’’’’’’’QŻ’’’’’’’’’’’’’’’’’’’’qŻ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ż’M’’’’’’’’’’’’’’’’’’’įŻ’"’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’qŽ’M’’’’’’’’’’’’’’’’’’’ĮŽ’M’’’’’’’’’’’’’’’’’’’ß’M’’’’’’’’’’’’’’’’’’’aß’M’’’’’’’’’’’’’’’’’’’±ß’M’’’’’’’’’’’’’’’’’’’ą’M’’’’’’’’’’’’’’’’’’’Qą’M’’’’’’’’’’’’’’’’’’’”ą’M’’’’’’’’’’’’’’’’’’’ńą’M’’’’’’’’’’’’’’’’’’’Aį’M’’’’’’’’’’’’’’’’’’’‘į’M’’’’’’’’’’’’’’’’’’’įį’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ā’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aā’!’’’’’’’’’’’’’’’’’’’‘ā’!’’’’’’’’’’’’’’’’’’’Įā’!’’’’’’’’’’’’’’’’’’’ńā’!’’’’’’’’’’’’’’’’’’’!ć’!’’’’’’’’’’’’’’’’’’’Qć’ ’’’’’’’’’’’’’’’’’’’ć’ ’’’’’’’’’’’’’’’’’’’±ć’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įć’ ’’’’’’’’’’’’’’’’’’’ä’%’’’’’’’’’’’’’’’’’’’Aä’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qä’1’’’’’’’’’’’’’’’’’’’±ä’9’’’’’’’’’’’’’’’’’’’ńä’8’’’’’’’’’’’’’’’’’’’1å’6’’’’’’’’’’’’’’’’’’’qå’2’’’’’’’’’’’’’’’’’’’±å’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įå’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ę’)’’’’’’’’’’’’’’’’’’’Qę’’’’’’’’’’’’’’’’’’’’’’ ENDOP := ; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qę’,’’’’’’’’’’’’’’’’’’’”ę’"’’’’’’’’’’’’’’’’’’’Ńę’)’’’’’’’’’’’’’’’’’’’ē’7’’’’’’’’’’’’’’’’’’’Aē’8’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’ē’’’’’’’’’’’’’’’’’’’’’’ ENDOP GLOB ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ē’+’’’’’’’’’’’’’’’’’’’Ńē’ ’’’’’’’’’’’’’’’’’’’č’?’’’’’’’’’’’’’’’’’’’Qč’’’’’’’’’’’’’’’’’’’’’’ ENDOP LOC ; ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qč’&’’’’’’’’’’’’’’’’’’’”č’)’’’’’’’’’’’’’’’’’’’Ńč’F’’’’’’’’’’’’’’’’’’’!é’J’’’’’’’’’’’’’’’’’’’qé’I’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’Įé’’’’’’’’’’’’’’’’’’’’’’ ENDOP REF ; ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įé’/’’’’’’’’’’’’’’’’’’’!ź’0’’’’’’’’’’’’’’’’’’’aź’?’’’’’’’’’’’’’’’’’’’±ź’%’’’’’’’’’’’’’’’’’’’įź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ė’’’’’’’’’’’’’’’’’’’’!ė’!’’’’’’’’’’’’’’’’’’’’’ ENDOP DEREF ;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qė’#’’’’’’’’’’’’’’’’’’’ė’)’’’’’’’’’’’’’’’’’’’±ė’’’’’’’’’’’’’’’’’’’’įė’’’’’’’’’’’’’’’’’’’’ģ’:’’’’’’’’’’’’’’’’’’’Aģ’<’’’’’’’’’’’’’’’’’’’ģ’)’’’’’’’’’’’’’’’’’’’±ģ’*’’’’’’’’’’’’’’’’’’’įģ’’’’’’’’’’’’’’’’’’’’ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ķ’’’’’’’’’’’’’’’’’’’’Aķ’D’’’’’’’’’’’’’’’’’’’‘ķ’&’’’’’’’’’’’’’’’’’’’Įķ’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńķ’’’’’’’’’’’’’’’’’’’’ī’.’’’’’’’’’’’’’’’’’’’Aī’+’’’’’’’’’’’’’’’’’’’’’ ENDOP REPR ; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qī’4’’’’’’’’’’’’’’’’’’’±ī’'’’’’’’’’’’’’’’’’’’’įī’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ļ’*’’’’’’’’’’’’’’’’’’’1ļ’!’’’’’’’’’’’’’’’’’’’aļ’$’’’’’’’’’’’’’’’’’’’‘ļ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ļ’"’’’’’’’’’’’’’’’’’’’įļ’’’’’’’’’’’’’’’’’’’’š’*’’’’’’’’’’’’’’’’’’’1š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qš’’’’’’’’’’’’’’’’’’’’š’)’’’’’’’’’’’’’’’’’’’’’ ENDOP = ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±š’(’’’’’’’’’’’’’’’’’’’įš’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ń’+’’’’’’’’’’’’’’’’’’’Qń’’’’’’’’’’’’’’’’’’’’qń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ń’*’’’’’’’’’’’’’’’’’’’Įń’’’’’’’’’’’’’’’’’’’’įń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’6’’’’’’’’’’’’’’’’’’’Aņ’*’’’’’’’’’’’’’’’’’’’qņ’’’’’’’’’’’’’’’’’’’’”ņ’ ’’’’’’’’’’’’’’’’’’’Ńņ’’’’’’’’’’’’’’’’’’’’ó’9’’’’’’’’’’’’’’’’’’’Aó’’’’’’’’’’’’’’’’’’’’aó’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ inc global : ’’’’’’’’ó’$’’’’’’’’’’’’’’’’’’’±ó’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ inc local : ’’’’’’’’’ō’$’’’’’’’’’’’’’’’’’’’1ō’2’’’’’’’’’’’’’’’’’’’qō’.’’’’’’’’’’’’’’’’’’’”ō’(’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’ ENDOP + ; ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńō’9’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’õ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qõ’’’’’’’’’’’’’’’’’’’’qõ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘õ’’’’’’’’’’’’’’’’’’’’±õ’*’’’’’’’’’’’’’’’’’’’įõ’=’’’’’’’’’’’’’’’’’’’!ö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aö’&’’’’’’’’’’’’’’’’’’’qö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’kind : ’’’’’’’’’’’’’’”ö’’’’’’’’’’’’’’’’’’’’Įö’)’’’’’’’’’’’’’’’’’’’ńö’(’’’’’’’’’’’’’’’’’’’!÷’+’’’’’’’’’’’’’’’’’’’Q÷’,’’’’’’’’’’’’’’’’’’’÷’-’’’’’’’’’’’’’’’’’’’±÷’,’’’’’’’’’’’’’’’’’’’į÷’&’’’’’’’’’’’’’’’’’’’ų’/’’’’’’’’’’’’’’’’’’’Qų’’’’’’’’’’’’’’’’’’’’aų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’qų’M’’’’’’’’’’’’’’’’’’’Įų’M’’’’’’’’’’’’’’’’’’’ł’M’’’’’’’’’’’’’’’’’’’ał’M’’’’’’’’’’’’’’’’’’’±ł’M’’’’’’’’’’’’’’’’’’’ś’M’’’’’’’’’’’’’’’’’’’Qś’M’’’’’’’’’’’’’’’’’’’”ś’L’’’’’’’’’’’’’’’’’’’ńś’M’’’’’’’’’’’’’’’’’’’Aū’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ū’%’’’’’’’’’’’’’’’’’’’įū’’’’’’’’’’’’’’’’’’’’’’ ENDOP := ; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’1ü’’’’’’’’’’’’’’’’’’’’’’ ENDOP = ; ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qü’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ü’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńü’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aż’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ż’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įż’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Až’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ž’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įž’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń’’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’)’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’A’’’’’’’’’’’’’’’’’’’Ā’,’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’'’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ pt type :’’’’’’’’’’’’Ā’7’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’Ņ’+’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’2’+’’’’’’’’’’’’’’’’’’’b’+’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’F’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’Ņ’=’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’R’@’’’’’’’’’’’’’’’’’’’¢’>’’’’’’’’’’’’’’’’’’’ā’C’’’’’’’’’’’’’’’’’’’2’8’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ type pos : ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚’%’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’D’’’’’’’’’’’’’’’’’’’"’K’’’’’’’’’’’’’’’’’’’r’O’’’’’’’’’’’’’’’’’’’Ņ’A’’’’’’’’’’’’’’’’’’’" ’A’’’’’’’’’’’’’’’’’’’r ’A’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ not found :’’’’’’’’’’ā ’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’R ’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’ā ’M’’’’’’’’’’’’’’’’’’’2 ’M’’’’’’’’’’’’’’’’’’’‚ ’M’’’’’’’’’’’’’’’’’’’Ņ ’M’’’’’’’’’’’’’’’’’’’" ’M’’’’’’’’’’’’’’’’’’’r ’M’’’’’’’’’’’’’’’’’’’Ā ’M’’’’’’’’’’’’’’’’’’’ ’M’’’’’’’’’’’’’’’’’’’b ’M’’’’’’’’’’’’’’’’’’’² ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’=’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’"’’’’’’’’’’’’’’’’’’’ā’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’3’’’’’’’’’’’’’’’’’’’r’+’’’’’’’’’’’’’’’’’’’¢’3’’’’’’’’’’’’’’’’’’’ā’#’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’FI ;’’’’’’’’’’’’’’’’’R’=’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’&’’’’’’’’’’’’’’’’’’’"’A’’’’’’’’’’’’’’’’’’’r’%’’’’’’’’’’’’’’’’’’’¢’%’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’B’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ opn ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’)’’’’’’’’’’’’’’’’’’’b’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ nop code’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ENDOP := ; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’*’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’=’’’’’’’’’’’’’’’’’’’ā’-’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’9’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’Ņ’M’’’’’’’’’’’’’’’’’’’"’M’’’’’’’’’’’’’’’’’’’r’M’’’’’’’’’’’’’’’’’’’Ā’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’b’M’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’R’M’’’’’’’’’’’’’’’’’’’¢’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’8’’’’’’’’’’’’’’’’’’’2’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’!’’’’’’’’’’’’’’’’’’’¢’3’’’’’’’’’’’’’’’’’’’ā’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’Ā’5’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enter type :’’’’’’’’’ā’8’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’,’’’’’’’’’’’’’’’’’’’r’ ’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’Ņ’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’7’’’’’’’’’’’’’’’’’’’b’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’*’’’’’’’’’’’’’’’’’’’b’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Ā’#’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’1’’’’’’’’’’’’’’’’’’’R ’ ’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’;’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"!’6’’’’’’’’’’’’’’’’’’’b!’8’’’’’’’’’’’’’’’’’’’¢!’ ’’’’’’’’’’’’’’’’’’’Ņ!’’’’’’’’’’’’’’’’’’’’ņ!’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’2"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enter type : ’’’’’’’’R"’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’¢"’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ"’’’’’’’’’’’’’’’’’’’’ņ"’9’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2#’’’’’’’’’’’’’’’’’’’’R#’:’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²#’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā#’2’’’’’’’’’’’’’’’’’’’"$’ ’’’’’’’’’’’’’’’’’’’R$’ ’’’’’’’’’’’’’’’’’’’‚$’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢$’(’’’’’’’’’’’’’’’’’’’Ņ$’ ’’’’’’’’’’’’’’’’’’’%’ ’’’’’’’’’’’’’’’’’’’2%’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R%’'’’’’’’’’’’’’’’’’’’’‚%’ ’’’’’’’’’’’’’’’’’’’²%’"’’’’’’’’’’’’’’’’’’’ā%’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’&’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B&’"’’’’’’’’’’’’’’’’’’’r&’’’’’’’’’’’’’’’’’’’’¢&’@’’’’’’’’’’’’’’’’’’’ņ&’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’2'’%’’’’’’’’’’’’’’’’’’’b'’"’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²'’’’’’’’’’’’’’’’’’’’’Ņ'’1’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’’’’’2(’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R(’!’’’’’’’’’’’’’’’’’’’‚(’%’’’’’’’’’’’’’’’’’’’²(’0’’’’’’’’’’’’’’’’’’’ņ(’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’)’$’’’’’’’’’’’’’’’’’’’B)’’’’’’’’’’’’’’’’’’’’b)’’’’’’’’’’’’’’’’’’’’’’ index’’’’’’’’’’’’‚)’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢)’’’’’’’’’’’’’’’’’’’’Ņ)’;’’’’’’’’’’’’’’’’’’’*’4’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’R*’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r*’2’’’’’’’’’’’’’’’’’’’²*’'’’’’’’’’’’’’’’’’’’’ā*’L’’’’’’’’’’’’’’’’’’’2+’L’’’’’’’’’’’’’’’’’’’‚+’'’’’’’’’’’’’’’’’’’’’²+’%’’’’’’’’’’’’’’’’’’’ā+’(’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’’2,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’R,’M’’’’’’’’’’’’’’’’’’’¢,’M’’’’’’’’’’’’’’’’’’’ņ,’M’’’’’’’’’’’’’’’’’’’B-’M’’’’’’’’’’’’’’’’’’’’-’M’’’’’’’’’’’’’’’’’’’ā-’M’’’’’’’’’’’’’’’’’’’2.’M’’’’’’’’’’’’’’’’’’’‚.’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ.’H’’’’’’’’’’’’’’’’’’’B/’’’’’’’’’’’’’’’’’’’’b/’*’’’’’’’’’’’’’’’’’’’’/’ ’’’’’’’’’’’’’’’’’’’Ā/’"’’’’’’’’’’’’’’’’’’’ņ/’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"0’’’’’’’’’’’’’’’’’’’’B0’2’’’’’’’’’’’’’’’’’’’‚0’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā0’#’’’’’’’’’’’’’’’’’’’ņ0’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’21’3’’’’’’’’’’’’’’’’’’’r1’?’’’’’’’’’’’’’’’’’’’Ā1’’’’’’’’’’’’’’’’’’’’ā1’/’’’’’’’’’’’’’’’’’’’"2’A’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r2’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²2’&’’’’’’’’’’’’’’’’’’’ā2’1’’’’’’’’’’’’’’’’’’’"3’4’’’’’’’’’’’’’’’’’’’b3’*’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’²3’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ3’’’’’’’’’’’’’’’’’’’’4’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B4’’’’’’’’’’’’’’’’’’’’R4’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢4’’’’’’’’’’’’’’’’’’’’Ā4’-’’’’’’’’’’’’’’’’’’’ņ4’7’’’’’’’’’’’’’’’’’’’25’’’’’’’’’’’’’’’’’’’’R5’’’’’’’’’’’’’’’’’’’’r5’’’’’’’’’’’’’’’’’’’’’’ FALSE .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’’’²5’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā5’’’’’’’’’’’’’’’’’’’’6’9’’’’’’’’’’’’’’’’’’’B6’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b6’=’’’’’’’’’’’’’’’’’’’¢6’’’’’’’’’’’’’’’’’’’’Ņ6’%’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’"7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B7’’’’’’’’’’’’’’’’’’’’b7’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’²7’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’"8’#’’’’’’’’’’’’’’’’’’’R8’=’’’’’’’’’’’’’’’’’’’’8’)’’’’’’’’’’’’’’’’’’’Ā8’,’’’’’’’’’’’’’’’’’’’ņ8’0’’’’’’’’’’’’’’’’’’’29’’’’’’’’’’’’’’’’’’’’R9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r9’’’’’’’’’’’’’’’’’’’’’9’A’’’’’’’’’’’’’’’’’’’ā9’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’is row :’’’’’’’’’’’’’":’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R:’’’’’’’’’’’’’’’’’’’’r:’A’’’’’’’’’’’’’’’’’’’Ā:’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ is struct :’’’’’’’’’’ņ:’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’";’’’’’’’’’’’’’’’’’’’’B;’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚;’’’’’’’’’’’’’’’’’’’’¢;’’’’’’’’’’’’’’’’’’’’Ā;’’’’’’’’’’’’’’’’’’’’ā;’(’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ pt row size :’’’’’’’’2<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R<’’’’’’’’’’’’’’’’’’’’r<’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢<’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’Ā<’’’’’’’’’’’’’’’’’’’’ā<’’’’’’’’’’’’’’’’’’’’=’(’’’’’’’’’’’’’’’’’’’2=’C’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’‚=’,’’’’’’’’’’’’’’’’’’’²=’D’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’’’’ FALSE .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’">’’’’’’’’’’’’’’’’’’’’B>’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚>’’’’’’’’’’’’’’’’’’’’’>’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā>’’’’’’’’’’’’’’’’’’’’ā>’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’?’’’’’’’’’’’’’’’’’’’’2?’A’’’’’’’’’’’’’’’’’’’‚?’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²?’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ?’’’’’’’’’’’’’’’’’’’’@’ ’’’’’’’’’’’’’’’’’’’B@’ ’’’’’’’’’’’’’’’’’’’r@’2’’’’’’’’’’’’’’’’’’’²@’’’’’’’’’’’’’’’’’’’’Ņ@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ@’’’’’’’’’’’’’’’’’’’’A’-’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’BA’’’’’’’’’’’’’’’’’’’’bA’$’’’’’’’’’’’’’’’’’’’’A’F’’’’’’’’’’’’’’’’’’’āA’)’’’’’’’’’’’’’’’’’’’B’,’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’BB’,’’’’’’’’’’’’’’’’’’’rB’%’’’’’’’’’’’’’’’’’’’¢B’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āB’’’’’’’’’’’’’’’’’’’’C’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BC’’’’’’’’’’’’’’’’’’’’bC’’’’’’’’’’’’’’’’’’’’‚C’/’’’’’’’’’’’’’’’’’’’ĀC’’’’’’’’’’’’’’’’’’’’āC’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"D’’’’’’’’’’’’’’’’’’’’BD’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚D’’’’’’’’’’’’’’’’’’’’¢D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ restore :’’’’’’’’’’’’ŅD’’’’’’’’’’’’’’’’’’’’ņD’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2E’=’’’’’’’’’’’’’’’’’’’rE’I’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĀE’’’’’’’’’’’’’’’’’’’’āE’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’F’M’’’’’’’’’’’’’’’’’’’bF’M’’’’’’’’’’’’’’’’’’’²F’M’’’’’’’’’’’’’’’’’’’G’M’’’’’’’’’’’’’’’’’’’RG’M’’’’’’’’’’’’’’’’’’’¢G’M’’’’’’’’’’’’’’’’’’’ņG’L’’’’’’’’’’’’’’’’’’’BH’M’’’’’’’’’’’’’’’’’’’’H’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āH’/’’’’’’’’’’’’’’’’’’’"I’+’’’’’’’’’’’’’’’’’’’RI’2’’’’’’’’’’’’’’’’’’’’I’,’’’’’’’’’’’’’’’’’’’ĀI’+’’’’’’’’’’’’’’’’’’’ņI’0’’’’’’’’’’’’’’’’’’’2J’+’’’’’’’’’’’’’’’’’’’bJ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’’²J’B’’’’’’’’’’’’’’’’’’’K’B’’’’’’’’’’’’’’’’’’’RK’B’’’’’’’’’’’’’’’’’’’¢K’B’’’’’’’’’’’’’’’’’’’ņK’B’’’’’’’’’’’’’’’’’’’BL’B’’’’’’’’’’’’’’’’’’’’L’B’’’’’’’’’’’’’’’’’’’āL’B’’’’’’’’’’’’’’’’’’’2M’’’’’’’’’’’’’’’’’’’’RM’C’’’’’’’’’’’’’’’’’’’¢M’C’’’’’’’’’’’’’’’’’’’ņM’C’’’’’’’’’’’’’’’’’’’BN’C’’’’’’’’’’’’’’’’’’’’N’C’’’’’’’’’’’’’’’’’’’āN’C’’’’’’’’’’’’’’’’’’’2O’B’’’’’’’’’’’’’’’’’’’‚O’B’’’’’’’’’’’’’’’’’’’ŅO’B’’’’’’’’’’’’’’’’’’’"P’C’’’’’’’’’’’’’’’’’’’rP’C’’’’’’’’’’’’’’’’’’’ĀP’B’’’’’’’’’’’’’’’’’’’Q’C’’’’’’’’’’’’’’’’’’’bQ’B’’’’’’’’’’’’’’’’’’’²Q’B’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’"R’C’’’’’’’’’’’’’’’’’’’rR’’’’’’’’’’’’’’’’’’’’’R’D’’’’’’’’’’’’’’’’’’’āR’B’’’’’’’’’’’’’’’’’’’2S’B’’’’’’’’’’’’’’’’’’’‚S’B’’’’’’’’’’’’’’’’’’’ŅS’B’’’’’’’’’’’’’’’’’’’"T’B’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’rT’C’’’’’’’’’’’’’’’’’’’ĀT’C’’’’’’’’’’’’’’’’’’’U’’’’’’’’’’’’’’’’’’’’2U’B’’’’’’’’’’’’’’’’’’’‚U’B’’’’’’’’’’’’’’’’’’’ŅU’B’’’’’’’’’’’’’’’’’’’"V’B’’’’’’’’’’’’’’’’’’’rV’B’’’’’’’’’’’’’’’’’’’ĀV’B’’’’’’’’’’’’’’’’’’’W’B’’’’’’’’’’’’’’’’’’’bW’’’’’’’’’’’’’’’’’’’’‚W’’’’’’’’’’’’’’’’’’’’¢W’’’’’’’’’’’’’’’’’’’’ĀW’’’’’’’’’’’’’’’’’’’’āW’’’’’’’’’’’’’’’’’’’’X’’’’’’’’’’’’’’’’’’’’"X’’’’’’’’’’’’’’’’’’’’BX’B’’’’’’’’’’’’’’’’’’’’X’B’’’’’’’’’’’’’’’’’’’āX’B’’’’’’’’’’’’’’’’’’’2Y’B’’’’’’’’’’’’’’’’’’’‚Y’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŅY’)’’’’’’’’’’’’’’’’’’’Z’(’’’’’’’’’’’’’’’’’’’2Z’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bZ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Z’#’’’’’’’’’’’’’’’’’’’ĀZ’’’’’’’’’’’’’’’’’’’’ņZ’'’’’’’’’’’’’’’’’’’’’"[’ ’’’’’’’’’’’’’’’’’’’R[’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r[’M’’’’’’’’’’’’’’’’’’’Ā[’’’’’’’’’’’’’’’’’’’’ā[’0’’’’’’’’’’’’’’’’’’’"\’’’’’’’’’’’’’’’’’’’’B\’’’’’’’’’’’’’’’’’’’’b\’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚\’,’’’’’’’’’’’’’’’’’’’²\’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ\’’’’’’’’’’’’’’’’’’’’]’’’’’’’’’’’’’’’’’’’’2]’$’’’’’’’’’’’’’’’’’’’b]’2’’’’’’’’’’’’’’’’’’’¢]’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ]’’’’’’’’’’’’’’’’’’’’ņ]’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B^’’’’’’’’’’’’’’’’’’’’b^’)’’’’’’’’’’’’’’’’’’’’^’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²^’0’’’’’’’’’’’’’’’’’’’ņ^’’’’’’’’’’’’’’’’’’’’_’=’’’’’’’’’’’’’’’’’’’R_’’’’’’’’’’’’’’’’’’’’r_’;’’’’’’’’’’’’’’’’’’’²_’%’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’ā_’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`’?’’’’’’’’’’’’’’’’’’’R`’’’’’’’’’’’’’’’’’’’’r`’’’’’’’’’’’’’’’’’’’’¢`’H’’’’’’’’’’’’’’’’’’’ņ`’1’’’’’’’’’’’’’’’’’’’’’ ENDSELECT’’’’’’’’2a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ra’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚a’’’’’’’’’’’’’’’’’’’’¢a’9’’’’’’’’’’’’’’’’’’’āa’D’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’2b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rb’@’’’’’’’’’’’’’’’’’’’¢b’/’’’’’’’’’’’’’’’’’’’āb’*’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’2c’(’’’’’’’’’’’’’’’’’’’bc’’’’’’’’’’’’’’’’’’’’‚c’*’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’²c’=’’’’’’’’’’’’’’’’’’’ņc’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"d’2’’’’’’’’’’’’’’’’’’’bd’’’’’’’’’’’’’’’’’’’’‚d’1’’’’’’’’’’’’’’’’’’’Ād’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ād’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’e’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Re’K’’’’’’’’’’’’’’’’’’’¢e’(’’’’’’’’’’’’’’’’’’’Ņe’’’’’’’’’’’’’’’’’’’’ņe’’’’’’’’’’’’’’’’’’’’f’5’’’’’’’’’’’’’’’’’’’Rf’/’’’’’’’’’’’’’’’’’’’’f’-’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āf’’’’’’’’’’’’’’’’’’’’āf’’’’’’’’’’’’’’’’’’’’g’’’’’’’’’’’’’’’’’’’’"g’’’’’’’’’’’’’’’’’’’’Rg’!’’’’’’’’’’’’’’’’’’’‚g’’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’’’’’¢g’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņg’’’’’’’’’’’’’’’’’’’’h’)’’’’’’’’’’’’’’’’’’’2h’-’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bh’’’’’’’’’’’’’’’’’’’’‚h’,’’’’’’’’’’’’’’’’’’’²h’’’’’’’’’’’’’’’’’’’’āh’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’i’’’’’’’’’’’’’’’’’’’’"i’+’’’’’’’’’’’’’’’’’’’Ri’1’’’’’’’’’’’’’’’’’’’’i’’’’’’’’’’’’’’’’’’’’’’ PER . ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²i’’’’’’’’’’’’’’’’’’’’āi’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’j’(’’’’’’’’’’’’’’’’’’’2j’3’’’’’’’’’’’’’’’’’’’rj’#’’’’’’’’’’’’’’’’’’’¢j’’’’’’’’’’’’’’’’’’’’Āj’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’āj’*’’’’’’’’’’’’’’’’’’’k’ ’’’’’’’’’’’’’’’’’’’Bk’*’’’’’’’’’’’’’’’’’’’rk’>’’’’’’’’’’’’’’’’’’’²k’"’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’ PER . ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āk’’’’’’’’’’’’’’’’’’’’l’(’’’’’’’’’’’’’’’’’’’2l’(’’’’’’’’’’’’’’’’’’’bl’-’’’’’’’’’’’’’’’’’’’’l’*’’’’’’’’’’’’’’’’’’’Āl’6’’’’’’’’’’’’’’’’’’’m’(’’’’’’’’’’’’’’’’’’’2m’D’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚m’#’’’’’’’’’’’’’’’’’’’²m’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņm’’’’’’’’’’’’’’’’’’’’ņm’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2n’’’’’’’’’’’’’’’’’’’’Rn’’’’’’’’’’’’’’’’’’’’rn’"’’’’’’’’’’’’’’’’’’’¢n’(’’’’’’’’’’’’’’’’’’’Ņn’!’’’’’’’’’’’’’’’’’’’o’’’’’’’’’’’’’’’’’’’’"o’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ get result : ’’’’’’’’Bo’&’’’’’’’’’’’’’’’’’’’ro’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢o’’’’’’’’’’’’’’’’’’’’Āo’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ result type :’’’’’’’’āo’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ eumel0 : ’’’’’’’’’’’’p’8’’’’’’’’’’’’’’’’’’’Rp’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rp’’’’’’’’’’’’’’’’’’’’¢p’!’’’’’’’’’’’’’’’’’’’Ņp’-’’’’’’’’’’’’’’’’’’’q’2’’’’’’’’’’’’’’’’’’’Bq’6’’’’’’’’’’’’’’’’’’’‚q’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²q’’’’’’’’’’’’’’’’’’’’Ņq’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’"r’’’’’’’’’’’’’’’’’’’’Br’@’’’’’’’’’’’’’’’’’’’’r’B’’’’’’’’’’’’’’’’’’’ār’=’’’’’’’’’’’’’’’’’’’"s’=’’’’’’’’’’’’’’’’’’’bs’J’’’’’’’’’’’’’’’’’’’²s’C’’’’’’’’’’’’’’’’’’’t’K’’’’’’’’’’’’’’’’’’’Rt’D’’’’’’’’’’’’’’’’’’’¢t’D’’’’’’’’’’’’’’’’’’’ņt’C’’’’’’’’’’’’’’’’’’’Bu’D’’’’’’’’’’’’’’’’’’’’u’C’’’’’’’’’’’’’’’’’’’āu’C’’’’’’’’’’’’’’’’’’’2v’$’’’’’’’’’’’’’’’’’’’bv’>’’’’’’’’’’’’’’’’’’’¢v’%’’’’’’’’’’’’’’’’’’’Ņv’D’’’’’’’’’’’’’’’’’’’"w’M’’’’’’’’’’’’’’’’’’’rw’*’’’’’’’’’’’’’’’’’’’¢w’3’’’’’’’’’’’’’’’’’’’āw’2’’’’’’’’’’’’’’’’’’’"x’C’’’’’’’’’’’’’’’’’’’rx’=’’’’’’’’’’’’’’’’’’’²x’B’’’’’’’’’’’’’’’’’’’y’C’’’’’’’’’’’’’’’’’’’Ry’D’’’’’’’’’’’’’’’’’’’¢y’+’’’’’’’’’’’’’’’’’’’Ņy’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ no params : ’’’’’’’’’ņy’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’z’’’’’’’’’’’’’’’’’’’’2z’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bz’’’’’’’’’’’’’’’’’’’’‚z’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢z’’’’’’’’’’’’’’’’’’’’Āz’5’’’’’’’’’’’’’’’’’’’{’’’’’’’’’’’’’’’’’’’’"{’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B{’%’’’’’’’’’’’’’’’’’’’r{’N’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā{’’’’’’’’’’’’’’’’’’’’ā{’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’|’'’’’’’’’’’’’’’’’’’’’B|’-’’’’’’’’’’’’’’’’’’’r|’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢|’’’’’’’’’’’’’’’’’’’’Ā|’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ|’’’’’’’’’’’’’’’’’’’’"}’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R}’’’’’’’’’’’’’’’’’’’’‚}’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²}’’’’’’’’’’’’’’’’’’’’Ņ}’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’~’’’’’’’’’’’’’’’’’’’’2~’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b~’’’’’’’’’’’’’’’’’’’’’~’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā~’’’’’’’’’’’’’’’’’’’’ā~’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’2’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b’!’’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"€’’’’’’’’’’’’’’’’’’’’R€’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢€’’’’’’’’’’’’’’’’’’’’Ā€’6’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’9’’’’’’’’’’’’’’’’’’’²’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’ ’’’’’’’’’’’’’’’’’’’"‚’D’’’’’’’’’’’’’’’’’’’r‚’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢‚’’’’’’’’’’’’’’’’’’’’Ā‚’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ‚’’’’’’’’’’’’’’’’’’’’"ƒ’*’’’’’’’’’’’’’’’’’’’Rƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rƒ’K’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’ƒ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’$’’’’’’’’’’’’’’’’’’’2„’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’„’D’’’’’’’’’’’’’’’’’’’ā„’&’’’’’’’’’’’’’’’’’’’…’>’’’’’’’’’’’’’’’’’’’R…’-’’’’’’’’’’’’’’’’’’’‚…’’’’’’’’’’’’’’’’’’’’¢…’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā…’(’’’’’’’’’’’’’’’’’’’ņ…’D’’’’’’’’’’’’’’’’’’’B†’?’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ENDPROC p2 ;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’†’K’’’’’’’’’’’’’’’’’’’→%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’2‡’)’’’’’’’’’’’’’’’’’’’b‡’A’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’’’’’’’ TRUE .’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²‡’’’’’’’’’’’’’’’’’’’’҇’>’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2ˆ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bˆ’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²ˆ’<’’’’’’’’’’’’’’’’’’’ņˆ’>’’’’’’’’’’’’’’’’’’’2‰’’’’’’’’’’’’’’’’’’’’R‰’6’’’’’’’’’’’’’’’’’’’’‰’)’’’’’’’’’’’’’’’’’’’‰’)’’’’’’’’’’’’’’’’’’’ņ‰’’’’’’’’’’’’’’’’’’’’Š’3’’’’’’’’’’’’’’’’’’’RŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rŠ’’’’’’’’’’’’’’’’’’’’’Š’A’’’’’’’’’’’’’’’’’’’⊒’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’"‹’#’’’’’’’’’’’’’’’’’’’R‹’%’’’’’’’’’’’’’’’’’’’‚‹’-’’’’’’’’’’’’’’’’’’’²‹’?’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"Œ’’’’’’’’’’’’’’’’’’’’BŒ’ ’’’’’’’’’’’’’’’’’’’rŒ’ ’’’’’’’’’’’’’’’’’’’¢Œ’,’’’’’’’’’’’’’’’’’’’Ҍ’8’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’r’$’’’’’’’’’’’’’’’’’’’¢’G’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’2Ž’0’’’’’’’’’’’’’’’’’’’rŽ’,’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢Ž’’’’’’’’’’’’’’’’’’’’ĀŽ’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’=’’’’’’’’’’’’’’’’’’’b’A’’’’’’’’’’’’’’’’’’’²’B’’’’’’’’’’’’’’’’’’’’I’’’’’’’’’’’’’’’’’’’R’E’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’‘’@’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b‘’’’’’’’’’’’’’’’’’’’’r‘’@’’’’’’’’’’’’’’’’’’’Ā‘’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’"’’’’’’’’’’’’’’’’’’’b’’8’’’’’’’’’’’’’’’’’’’¢’’$’’’’’’’’’’’’’’’’’’’Ņ’’%’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’“’>’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B“’’’’’’’’’’’’’’’’’’’’b“’0’’’’’’’’’’’’’’’’’’’¢“’$’’’’’’’’’’’’’’’’’’’Ņ“’*’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B”’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r”’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ first addr : ’’’’’’’’²”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ left type :’’’’’’’’’’Ņ”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ”’’’’’’’’’’’’’’’’’’’’•’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ third addr : ’’’’’’’’2•’2’’’’’’’’’’’’’’’’’’’r•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’•’H’’’’’’’’’’’’’’’’’’’ā•’’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’"–’-’’’’’’’’’’’’’’’’’’’R–’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚–’’’’’’’’’’’’’’’’’’’’’–’+’’’’’’’’’’’’’’’’’’’Ā–’+’’’’’’’’’’’’’’’’’’’ņ–’’’’’’’’’’’’’’’’’’’’’’ PER . ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ push code : ’’’’’’’’’"—’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ param addr :’’’’’’’’’R—’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚—’’’’’’’’’’’’’’’’’’’’¢—’’’’’’’’’’’’’’’’’’’’Ā—’G’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’2˜’9’’’’’’’’’’’’’’’’’’’r˜’E’’’’’’’’’’’’’’’’’’’˜’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ˜’4’’’’’’’’’’’’’’’’’’’2™’8’’’’’’’’’’’’’’’’’’’r™’1’’’’’’’’’’’’’’’’’’’²™’5’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ™’’’’’’’’’’’’’’’’’’’’š’)’’’’’’’’’’’’’’’’’’’Bš’’’’’’’’’’’’’’’’’’’’bš’?’’’’’’’’’’’’’’’’’’’²š’?’’’’’’’’’’’’’’’’’’’›’?’’’’’’’’’’’’’’’’’’’R›’@’’’’’’’’’’’’’’’’’’’¢›’:’’’’’’’’’’’’’’’’’’’ā›’>’’’’’’’’’’’’’’’’’’’"œ’J’’’’’’’’’’’’’’’’’’’rœ’A’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’✒’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’B’F’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’>’’’’’’’’’’’’’’’’’’’ņ’7’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’2ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rž’D’’’’’’’’’’’’’’’’’’’¢ž’!’’’’’’’’’’’’’’’’’’’Ņž’/’’’’’’’’’’’’’’’’’’’Ÿ’4’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RŸ’’’’’’’’’’’’’’’’’’’’rŸ’#’’’’’’’’’’’’’’’’’’’¢Ÿ’’’’’’’’’’’’’’’’’’’’Ÿ’C’’’’’’’’’’’’’’’’’’’ ’C’’’’’’’’’’’’’’’’’’’b ’C’’’’’’’’’’’’’’’’’’’² ’H’’’’’’’’’’’’’’’’’’’”’J’’’’’’’’’’’’’’’’’’’R”’I’’’’’’’’’’’’’’’’’’’¢”’D’’’’’’’’’’’’’’’’’’’ņ”’K’’’’’’’’’’’’’’’’’’’B¢’D’’’’’’’’’’’’’’’’’’’’¢’I’’’’’’’’’’’’’’’’’’’⢒H’’’’’’’’’’’’’’’’’’’2£’I’’’’’’’’’’’’’’’’’’’‚£’I’’’’’’’’’’’’’’’’’’’Ņ£’K’’’’’’’’’’’’’’’’’’’"¤’H’’’’’’’’’’’’’’’’’’’r¤’C’’’’’’’’’’’’’’’’’’’¤’D’’’’’’’’’’’’’’’’’’’„’D’’’’’’’’’’’’’’’’’’’b„’A’’’’’’’’’’’’’’’’’’’²„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ„’’’’’’’’’’’’’’’’’’’’ņ„’)’’’’’’’’’’’’’’’’’’’"¦’#’’’’’’’’’’’’’’’’’’’R¦’,’’’’’’’’’’’’’’’’’’’‚¦’*’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’²¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ҧ’6’’’’’’’’’’’’’’’’’’’§’B’’’’’’’’’’’’’’’’’’’b§’%’’’’’’’’’’’’’’’’’’’’§’D’’’’’’’’’’’’’’’’’’’ā§’O’’’’’’’’’’’’’’’’’’’BØ’$’’’’’’’’’’’’’’’’’’’rØ’3’’’’’’’’’’’’’’’’’’’²Ø’5’’’’’’’’’’’’’’’’’’’ņØ’8’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2©’’’’’’’’’’’’’’’’’’’’R©’(’’’’’’’’’’’’’’’’’’’‚©’@’’’’’’’’’’’’’’’’’’’Ņ©’*’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’"Ŗ’)’’’’’’’’’’’’’’’’’’’RŖ’"’’’’’’’’’’’’’’’’’’’‚Ŗ’9’’’’’’’’’’’’’’’’’’’ĀŖ’*’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņŖ’’’’’’’’’’’’’’’’’’’’«’)’’’’’’’’’’’’’’’’’’’B«’’’’’’’’’’’’’’’’’’’’b«’G’’’’’’’’’’’’’’’’’’’²«’8’’’’’’’’’’’’’’’’’’’ņ«’6’’’’’’’’’’’’’’’’’’’2¬’’’’’’’’’’’’’’’’’’’’B¬’*’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r¬’’’’’’’’’’’’’’’’’’’’’¬’#’’’’’’’’’’’’’’’’’’’¬’2’’’’’’’’’’’’’’’’’’’­’)’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2­’’’’’’’’’’’’’’’’’’’’R­’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢­’’’’’’’’’’’’’’’’’’’’Ā­’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’2®’<’’’’’’’’’’’’’’’’’’’r®’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā®’’’’’’’’’’’’’’’’’’’’ā®’%’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’2Æ’+’’’’’’’’’’’’’’’’’’’bÆ’+’’’’’’’’’’’’’’’’’’’’Æ’-’’’’’’’’’’’’’’’’’’’ĀÆ’-’’’’’’’’’’’’’’’’’’’ņÆ’.’’’’’’’’’’’’’’’’’’’"°’-’’’’’’’’’’’’’’’’’’’R°’-’’’’’’’’’’’’’’’’’’’‚°’,’’’’’’’’’’’’’’’’’’’²°’,’’’’’’’’’’’’’’’’’’’ā°’0’’’’’’’’’’’’’’’’’’’"±’0’’’’’’’’’’’’’’’’’’’b±’1’’’’’’’’’’’’’’’’’’’¢±’N’’’’’’’’’’’’’’’’’’’ņ±’@’’’’’’’’’’’’’’’’’’’B²’A’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²²’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R³’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢³’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ³’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B“’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’“’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā“’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2µ’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚µ’’’’’’’’’’’’’’’’’’’’¢µ’&’’’’’’’’’’’’’’’’’’’ҵ’'’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’¶’'’’’’’’’’’’’’’’’’’’’B¶’(’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r¶’’’’’’’’’’’’’’’’’’’’’¶’'’’’’’’’’’’’’’’’’’’’¶’(’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ comp code : ’’’’’’’’’ņ¶’’’’’’’’’’’’’’’’’’’’·’M’’’’’’’’’’’’’’’’’’’b·’M’’’’’’’’’’’’’’’’’’’²·’M’’’’’’’’’’’’’’’’’’’ø’/’’’’’’’’’’’’’’’’’’’Bø’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bø’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’²ø’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¹’3’’’’’’’’’’’’’’’’’’’R¹’#’’’’’’’’’’’’’’’’’’’‚¹’*’’’’’’’’’’’’’’’’’’’²¹’$’’’’’’’’’’’’’’’’’’’ā¹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŗ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2ŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Rŗ’’’’’’’’’’’’’’’’’’’’rŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’²ŗ’2’’’’’’’’’’’’’’’’’’’ņŗ’&’’’’’’’’’’’’’’’’’’’"»’,’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’R»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r»’’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’²»’*’’’’’’’’’’’’’’’’’’’ā»’’’’’’’’’’’’’’’’’’’’¼’ ’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’2¼’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R¼’'’’’’’’’’’’’’’’’’’’’‚¼’L’’’’’’’’’’’’’’’’’’’Ҽ’I’’’’’’’’’’’’’’’’’’’"½’5’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’b½’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚½’’’’’’’’’’’’’’’’’’’’¢½’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā½’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’"¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B¾’/’’’’’’’’’’’’’’’’’’’‚¾’’’’’’’’’’’’’’’’’’’’¢¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’1’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’"æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bæ’)’’’’’’’’’’’’’’’’’’’ræ’’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²æ’B’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’"Ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BĄ’2’’’’’’’’’’’’’’’’’’’‚Ą’’’’’’’’’’’’’’’’’’’’¢Ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀĄ’-’’’’’’’’’’’’’’’’’’’ņĄ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2Į’’’’’’’’’’’’’’’’’’’’bĮ’’’’’’’’’’’’’’’’’’’’‚Į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Į’%’’’’’’’’’’’’’’’’’’’ŅĮ’’’’’’’’’’’’’’’’’’’’ņĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’#’’’’’’’’’’’’’’’’’’’BĀ’’’’’’’’’’’’’’’’’’’’bĀ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ā’*’’’’’’’’’’’’’’’’’’’²Ā’’’’’’’’’’’’’’’’’’’’ŅĀ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņĀ’*’’’’’’’’’’’’’’’’’’’"Ć’’’’’’’’’’’’’’’’’’’’BĆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bĆ’,’’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’²Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅĆ’)’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’"Ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BÄ’)’’’’’’’’’’’’’’’’’’’rÄ’’’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ä’’’’’’’’’’’’’’’’’’’’ŅÄ’’’’’’’’’’’’’’’’’’’’’’ ENDPROC s0 ; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņÄ’$’’’’’’’’’’’’’’’’’’’"Å’’’’’’’’’’’’’’’’’’’’’’ ENDPROC s1 ; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BÅ’-’’’’’’’’’’’’’’’’’’’rÅ’’’’’’’’’’’’’’’’’’’’’’ ENDPROC s2 ; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Å’3’’’’’’’’’’’’’’’’’’’ŅÅ’’’’’’’’’’’’’’’’’’’’’’ ENDPROC s3 ; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņÅ’$’’’’’’’’’’’’’’’’’’’"Ę’’’’’’’’’’’’’’’’’’’’’’ ENDPROC t1 ; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BĘ’,’’’’’’’’’’’’’’’’’’’rĘ’’’’’’’’’’’’’’’’’’’’’’ ENDPROC t2 ; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’’Ę’M’’’’’’’’’’’’’’’’’’’āĘ’M’’’’’’’’’’’’’’’’’’’2Ē’M’’’’’’’’’’’’’’’’’’’‚Ē’M’’’’’’’’’’’’’’’’’’’ŅĒ’M’’’’’’’’’’’’’’’’’’’"Č’M’’’’’’’’’’’’’’’’’’’rČ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĀČ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āČ’+’’’’’’’’’’’’’’’’’’’É’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’BÉ’’’’’’’’’’’’’’’’’’’’bÉ’,’’’’’’’’’’’’’’’’’’’’É’3’’’’’’’’’’’’’’’’’’’ŅÉ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ź’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2Ź’’’’’’’’’’’’’’’’’’’’bŹ’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Ź’(’’’’’’’’’’’’’’’’’’’ŅŹ’9’’’’’’’’’’’’’’’’’’’Ė’&’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’BĖ’)’’’’’’’’’’’’’’’’’’’rĖ’-’’’’’’’’’’’’’’’’’’’¢Ė’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀĖ’<’’’’’’’’’’’’’’’’’’’Ģ’:’’’’’’’’’’’’’’’’’’’BĢ’&’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’rĢ’%’’’’’’’’’’’’’’’’’’’¢Ģ’’’’’’’’’’’’’’’’’’’’ĀĢ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āĢ’;’’’’’’’’’’’’’’’’’’’"Ķ’:’’’’’’’’’’’’’’’’’’’bĶ’&’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’’Ķ’'’’’’’’’’’’’’’’’’’’’ĀĶ’'’’’’’’’’’’’’’’’’’’’ņĶ’’’’’’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2Ī’<’’’’’’’’’’’’’’’’’’’rĪ’:’’’’’’’’’’’’’’’’’’’²Ī’&’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’āĪ’(’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’2Ļ’’’’’’’’’’’’’’’’’’’’RĻ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rĻ’<’’’’’’’’’’’’’’’’’’’²Ļ’:’’’’’’’’’’’’’’’’’’’ņĻ’&’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’"Š’E’’’’’’’’’’’’’’’’’’’rŠ’’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’²Š’’’’’’’’’’’’’’’’’’’’ŅŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņŠ’’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2Ń’’’’’’’’’’’’’’’’’’’’RŃ’’’’’’’’’’’’’’’’’’’’rŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ń’<’’’’’’’’’’’’’’’’’’’ŅŃ’:’’’’’’’’’’’’’’’’’’’Ņ’&’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’BŅ’/’’’’’’’’’’’’’’’’’’’‚Ņ’’’’’’’’’’’’’’’’’’’’¢Ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĀŅ’D’’’’’’’’’’’’’’’’’’’Ó’,’’’’’’’’’’’’’’’’’’’BÓ’,’’’’’’’’’’’’’’’’’’’rÓ’*’’’’’’’’’’’’’’’’’’’¢Ó’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āÓ’(’’’’’’’’’’’’’’’’’’’Ō’(’’’’’’’’’’’’’’’’’’’BŌ’J’’’’’’’’’’’’’’’’’’’’Ō’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĀŌ’4’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’"Õ’-’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’RÕ’&’’’’’’’’’’’’’’’’’’’‚Õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Õ’5’’’’’’’’’’’’’’’’’’’āÕ’’’’’’’’’’’’’’’’’’’’Ö’-’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’2Ö’+’’’’’’’’’’’’’’’’’’’bÖ’.’’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²Ö’5’’’’’’’’’’’’’’’’’’’ņÖ’’’’’’’’’’’’’’’’’’’’×’-’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’B×’'’’’’’’’’’’’’’’’’’’’r×’!’’’’’’’’’’’’’’’’’’’¢×’ ’’’’’’’’’’’’’’’’’’’Ņ×’@’’’’’’’’’’’’’’’’’’’"Ų’’’’’’’’’’’’’’’’’’’’’’ PER ’’’’’’’’’’’’’BŲ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŲ’5’’’’’’’’’’’’’’’’’’’¢Ų’C’’’’’’’’’’’’’’’’’’’ņŲ’;’’’’’’’’’’’’’’’’’’’’’ FI ; ’’’’’’’’’’’’2Ł’!’’’’’’’’’’’’’’’’’’’bŁ’*’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’²Ł’’’’’’’’’’’’’’’’’’’’ŅŁ’8’’’’’’’’’’’’’’’’’’’Ś’@’’’’’’’’’’’’’’’’’’’bŚ’’’’’’’’’’’’’’’’’’’’’’ PER ; ’’’’’’’’’’’‚Ś’’’’’’’’’’’’’’’’’’’’¢Ś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀŚ’5’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’"Ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BŪ’+’’’’’’’’’’’’’’’’’’’rŪ’’’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ū’,’’’’’’’’’’’’’’’’’’’āŪ’’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2Ü’>’’’’’’’’’’’’’’’’’’’rÜ’’’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀÜ’6’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’"Ż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’BŻ’M’’’’’’’’’’’’’’’’’’’’Ż’M’’’’’’’’’’’’’’’’’’’āŻ’M’’’’’’’’’’’’’’’’’’’2Ž’M’’’’’’’’’’’’’’’’’’’‚Ž’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŅŽ’5’’’’’’’’’’’’’’’’’’’ß’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Bß’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ß’'’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Āß’’’’’’’’’’’’’’’’’’’’Ņß’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"ą’’’’’’’’’’’’’’’’’’’’Bą’’’’’’’’’’’’’’’’’’’’bą’5’’’’’’’’’’’’’’’’’’’¢ą’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņą’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2į’)’’’’’’’’’’’’’’’’’’’bį’’’’’’’’’’’’’’’’’’’’‚į’;’’’’’’’’’’’’’’’’’’’Āį’?’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’2ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rā’#’’’’’’’’’’’’’’’’’’’‚ā’’’’’’’’’’’’’’’’’’’’¢ā’"’’’’’’’’’’’’’’’’’’’Ņā’’’’’’’’’’’’’’’’’’’’’’*)’’’’’’’’’’’’’’’’’’’ņā’M’’’’’’’’’’’’’’’’’’’Bć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Rć’$’’’’’’’’’’’’’’’’’’’‚ć’’’’’’’’’’’’’’’’’’’’¢ć’#’’’’’’’’’’’’’’’’’’’Ņć’;’’’’’’’’’’’’’’’’’’’ä’<’’’’’’’’’’’’’’’’’’’Rä’<’’’’’’’’’’’’’’’’’’’’ä’<’’’’’’’’’’’’’’’’’’’Ņä’A’’’’’’’’’’’’’’’’’’’"å’<’’’’’’’’’’’’’’’’’’’bå’>’’’’’’’’’’’’’’’’’’’¢å’0’’’’’’’’’’’’’’’’’’’āå’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’2ę’=’’’’’’’’’’’’’’’’’’’rę’.’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢ę’!’’’’’’’’’’’’’’’’’’’Ņę’2’’’’’’’’’’’’’’’’’’’ē’,’’’’’’’’’’’’’’’’’’’Bē’9’’’’’’’’’’’’’’’’’’’‚ē’;’’’’’’’’’’’’’’’’’’’Āē’<’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’č’’’’’’’’’’’’’’’’’’’’"č’/’’’’’’’’’’’’’’’’’’’bč’%’’’’’’’’’’’’’’’’’’’’č’2’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņč’’’’’’’’’’’’’’’’’’’’ņč’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get name :’’’’’’’’’’’2é’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚é’’’’’’’’’’’’’’’’’’’’¢é’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņé’ ’’’’’’’’’’’’’’’’’’’ź’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2ź’’’’’’’’’’’’’’’’’’’’Rź’’’’’’’’’’’’’’’’’’’’rź’’’’’’’’’’’’’’’’’’’’¢ź’<’’’’’’’’’’’’’’’’’’’āź’’’’’’’’’’’’’’’’’’’’ė’+’’’’’’’’’’’’’’’’’’’2ė’’’’’’’’’’’’’’’’’’’’Rė’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rė’’’’’’’’’’’’’’’’’’’’’ė’(’’’’’’’’’’’’’’’’’’’Āė’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āė’"’’’’’’’’’’’’’’’’’’’ģ’’’’’’’’’’’’’’’’’’’’2ģ’’’’’’’’’’’’’’’’’’’’Rģ’’’’’’’’’’’’’’’’’’’’rģ’’’’’’’’’’’’’’’’’’’’’ģ’,’’’’’’’’’’’’’’’’’’’Āģ’'’’’’’’’’’’’’’’’’’’’ņģ’'’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ prep help :’’’’’’’’’’"ķ’*’’’’’’’’’’’’’’’’’’’Rķ’’’’’’’’’’’’’’’’’’’’rķ’(’’’’’’’’’’’’’’’’’’’¢ķ’%’’’’’’’’’’’’’’’’’’’Ņķ’)’’’’’’’’’’’’’’’’’’’ī’%’’’’’’’’’’’’’’’’’’’2ī’0’’’’’’’’’’’’’’’’’’’rī’’’’’’’’’’’’’’’’’’’’’ī’)’’’’’’’’’’’’’’’’’’’Āī’%’’’’’’’’’’’’’’’’’’’ņī’0’’’’’’’’’’’’’’’’’’’2ļ’’’’’’’’’’’’’’’’’’’’Rļ’7’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ļ’’’’’’’’’’’’’’’’’’’’²ļ’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’āļ’’’’’’’’’’’’’’’’’’’’š’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Bš’’’’’’’’’’’’’’’’’’’’bš’’’’’’’’’’’’’’’’’’’’‚š’’’’’’’’’’’’’’’’’’’’¢š’9’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ display :’’’’’’’’’’’’āš’’’’’’’’’’’’’’’’’’’’ń’-’’’’’’’’’’’’’’’’’’’2ń’2’’’’’’’’’’’’’’’’’’’rń’/’’’’’’’’’’’’’’’’’’’²ń’’’’’’’’’’’’’’’’’’’’āń’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2ņ’!’’’’’’’’’’’’’’’’’’’bņ’:’’’’’’’’’’’’’’’’’’’¢ņ’.’’’’’’’’’’’’’’’’’’’Ņņ’'’’’’’’’’’’’’’’’’’’’ó’)’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2ó’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’Ró’$’’’’’’’’’’’’’’’’’’’‚ó’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²ó’’’’’’’’’’’’’’’’’’’’Ņó’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ new packet :’’’’’’’’’ō’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Bō’’’’’’’’’’’’’’’’’’’’bō’0’’’’’’’’’’’’’’’’’’’¢ō’+’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’Ņō’6’’’’’’’’’’’’’’’’’’’õ’’’’’’’’’’’’’’’’’’’’2õ’-’’’’’’’’’’’’’’’’’’’bõ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚õ’.’’’’’’’’’’’’’’’’’’’²õ’$’’’’’’’’’’’’’’’’’’’āõ’#’’’’’’’’’’’’’’’’’’’ö’=’’’’’’’’’’’’’’’’’’’Rö’=’’’’’’’’’’’’’’’’’’’’ö’)’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ matching :’’’’’’’’’’’Āö’0’’’’’’’’’’’’’’’’’’’÷’’’’’’’’’’’’’’’’’’’’"÷’F’’’’’’’’’’’’’’’’’’’r÷’’’’’’’’’’’’’’’’’’’’’÷’’’’’’’’’’’’’’’’’’’’²÷’’’’’’’’’’’’’’’’’’’’Ņ÷’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ÷’’’’’’’’’’’’’’’’’’’’ų’<’’’’’’’’’’’’’’’’’’’Rų’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bų’’’’’’’’’’’’’’’’’’’’‚ų’’’’’’’’’’’’’’’’’’’’¢ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Āų’’’’’’’’’’’’’’’’’’’’āų’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’"ł’&’’’’’’’’’’’’’’’’’’’Rł’’’’’’’’’’’’’’’’’’’’rł’!’’’’’’’’’’’’’’’’’’’¢ł’(’’’’’’’’’’’’’’’’’’’Ņł’ ’’’’’’’’’’’’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’"ś’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Bś’0’’’’’’’’’’’’’’’’’’’‚ś’’’’’’’’’’’’’’’’’’’’²ś’’’’’’’’’’’’’’’’’’’’Ņś’2’’’’’’’’’’’’’’’’’’’ū’’’’’’’’’’’’’’’’’’’’2ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Rū’’’’’’’’’’’’’’’’’’’’rū’4’’’’’’’’’’’’’’’’’’’²ū’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ put result :’’’’’’’’’āū’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’2ü’8’’’’’’’’’’’’’’’’’’’rü’2’’’’’’’’’’’’’’’’’’’²ü’@’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"ż’’’’’’’’’’’’’’’’’’’’Bż’!’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’rż’"’’’’’’’’’’’’’’’’’’’¢ż’#’’’’’’’’’’’’’’’’’’’Ņż’’’’’’’’’’’’’’’’’’’’ņż’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’2ž’’’’’’’’’’’’’’’’’’’’Rž’:’’’’’’’’’’’’’’’’’’’’ž’4’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’Ņž’%’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’b’’%’’’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’Ņ’’*’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’3’)’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’ƒ’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’ó’,’’’’’’’’’’’’’’’’’’’#’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’c’'’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’s’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’ó’+’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’#’&’’’’’’’’’’’’’’’’’’’S’(’’’’’’’’’’’’’’’’’’’ƒ’H’’’’’’’’’’’’’’’’’’’Ó’B’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ ENDREP .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’S’4’’’’’’’’’’’’’’’’’’’“’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ return : ’’’’’’’’’’’’Ó’3’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’c’2’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’3’(’’’’’’’’’’’’’’’’’’’c’6’’’’’’’’’’’’’’’’’’’£’7’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’ ENDREP .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ true return :’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’S’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’“’B’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’c’=’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’# ’0’’’’’’’’’’’’’’’’’’’c ’,’’’’’’’’’’’’’’’’’’’“ ’@’’’’’’’’’’’’’’’’’’’ć ’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’# ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’C ’,’’’’’’’’’’’’’’’’’’’s ’<’’’’’’’’’’’’’’’’’’’³ ’’’’’’’’’’’’’’’’’’’’Ó ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ó ’’’’’’’’’’’’’’’’’’’’ ’$’’’’’’’’’’’’’’’’’’’C ’’’’’’’’’’’’’’’’’’’’c ’’’’’’’’’’’’’’’’’’’’ƒ ’’’’’’’’’’’’’’’’’’’’£ ’ ’’’’’’’’’’’’’’’’’’’Ó ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ó ’"’’’’’’’’’’’’’’’’’’’# ’>’’’’’’’’’’’’’’’’’’’c ’3’’’’’’’’’’’’’’’’’’’£ ’8’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’ć ’"’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3 ’’’’’’’’’’’’’’’’’’’’S ’’’’’’’’’’’’’’’’’’’’s ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“ ’(’’’’’’’’’’’’’’’’’’’Ć ’’’’’’’’’’’’’’’’’’’’ć ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’C’ ’’’’’’’’’’’’’’’’’’’s’%’’’’’’’’’’’’’’’’’’’£’C’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’3’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’³’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’C’,’’’’’’’’’’’’’’’’’’’s’.’’’’’’’’’’’’’’’’’’’£’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’ó’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’1’’’’’’’’’’’’’’’’’’’s’.’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’£’'’’’’’’’’’’’’’’’’’’’Ó’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’c’.’’’’’’’’’’’’’’’’’’’“’$’’’’’’’’’’’’’’’’’’’Ć’>’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’S’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’Ó’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#’A’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’s’3’’’’’’’’’’’’’’’’’’’³’0’’’’’’’’’’’’’’’’’’’ó’?’’’’’’’’’’’’’’’’’’’C’:’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’£’&’’’’’’’’’’’’’’’’’’’’’ FALSE .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’ó’:’’’’’’’’’’’’’’’’’’’3’9’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’³’.’’’’’’’’’’’’’’’’’’’ć’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’5’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’“’%’’’’’’’’’’’’’’’’’’’Ć’0’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’c’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ no params :’’’’’’’’’’“’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’3’$’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’Ć’+’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’’ ENDREP ’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’ƒ’+’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’S’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’s’%’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’Ć’"’’’’’’’’’’’’’’’’’’’ó’;’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’c’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’³’,’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’3’+’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’c’%’’’’’’’’’’’’’’’’’’’“’%’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’c’M’’’’’’’’’’’’’’’’’’’³’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’S’M’’’’’’’’’’’’’’’’’’’£’M’’’’’’’’’’’’’’’’’’’ó’M’’’’’’’’’’’’’’’’’’’C ’M’’’’’’’’’’’’’’’’’’’“ ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć ’#’’’’’’’’’’’’’’’’’’’!’#’’’’’’’’’’’’’’’’’’’C!’$’’’’’’’’’’’’’’’’’’’s!’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’£!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ć!’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ó!’"’’’’’’’’’’’’’’’’’’’#"’’’’’’’’’’’’’’’’’’’’C"’’’’’’’’’’’’’’’’’’’’c"’:’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’£"’’’’’’’’’’’’’’’’’’’’Ć"’’’’’’’’’’’’’’’’’’’’’’ END PROC run;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC run :’’’’’’’’’’’ć"’’’’’’’’’’’’’’’’’’’’’’ ENDPROC run ;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’##’’’’’’’’’’’’’’’’’’’’C#’D’’’’’’’’’’’’’’’’’’’“#’7’’’’’’’’’’’’’’’’’’’Ó#’1’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’3$’%’’’’’’’’’’’’’’’’’’’c$’’’’’’’’’’’’’’’’’’’’ƒ$’’’’’’’’’’’’’’’’’’’’£$’:’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’ć$’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’#%’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC insert :’’’’’’’’C%’’’’’’’’’’’’’’’’’’’’c%’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ%’@’’’’’’’’’’’’’’’’’’’Ó%’:’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’3&’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’S&’’’’’’’’’’’’’’’’’’’’s&’’’’’’’’’’’’’’’’’’’’“&’9’’’’’’’’’’’’’’’’’’’Ó&’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’'’(’’’’’’’’’’’’’’’’’’’C'’'’’’’’’’’’’’’’’’’’’’s'’’’’’’’’’’’’’’’’’’’’“'’"’’’’’’’’’’’’’’’’’’’Ć'’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ć'’’’’’’’’’’’’’’’’’’’’’’ IF is error’’’’’’’’(’’’’’’’’’’’’’’’’’’’’#(’’’’’’’’’’’’’’’’’’’’C(’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’c(’’’’’’’’’’’’’’’’’’’’ƒ(’?’’’’’’’’’’’’’’’’’’’Ó(’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’’’’(*’’’’’’’’’’’’’’’’’’’#)’5’’’’’’’’’’’’’’’’’’’c)’’’’’’’’’’’’’’’’’’’’’’ IF online’’’’’’’’’’ƒ)’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’£)’Q’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’#*’’’’’’’’’’’’’’’’’’’’C*’#’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’s*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’“*’$’’’’’’’’’’’’’’’’’’’Ć*’’’’’’’’’’’’’’’’’’’’’’ IF online’’’’’’’’’’ć*’’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’’#+’9’’’’’’’’’’’’’’’’’’’c+’’’’’’’’’’’’’’’’’’’’ƒ+’’’’’’’’’’’’’’’’’’’’£+’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’Ć+’’’’’’’’’’’’’’’’’’’’’’*)’’’’’’’’’’’’’’’’’’’ć+’"’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’’3,’"’’’’’’’’’’’’’’’’’’’c,’’’’’’’’’’’’’’’’’’’’ƒ,’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“,’’’’’’’’’’’’’’’’’’’’³,’’’’’’’’’’’’’’’’’’’’Ó,’’’’’’’’’’’’’’’’’’’’ó,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’’ list option’’’’’’’’3-’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’C-’’’’’’’’’’’’’’’’’’’’c-’’’’’’’’’’’’’’’’’’’’ƒ-’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’£-’’’’’’’’’’’’’’’’’’’’Ć-’’’’’’’’’’’’’’’’’’’’ć-’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’#.’’’’’’’’’’’’’’’’’’’’3.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’S.’&’’’’’’’’’’’’’’’’’’’ƒ.’’’’’’’’’’’’’’’’’’’’£.’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ć.’’’’’’’’’’’’’’’’’’’’ć.’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#/’’’’’’’’’’’’’’’’’’’’C/’’’’’’’’’’’’’’’’’’’’c/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒ/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’£/’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó/’’’’’’’’’’’’’’’’’’’’’’ DTYPE VAR d ;’’’’’’’’ó/’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’C0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’eumel coder 1.8.1’’’’’’’’’’’’’NPACKET eumel coder (* Autor: U. Bartling *) ’’. DEFINES coder on, coder off,’’’’’’’’’’’> declare, define, apply, identify,’’’’’’’’’’’’’’ :=, =,’’’’’’’’’ dump,’’’’’’’’’’ LIB,’’’’’’’’’’’ LABEL,’’’’’’’’’ gosub, goret,’’. computed branch,’’’’’’’’’’’’’’’. complement condition code,’’’’’ ADDRESS ,’’’’’’. GLOB, LOC, REF, DEREF,’’’’’’’’’ ref length,’’’’ +, ’’’’’’’’’’’’ adjust,’’’’’’’’ get base,’’’’’’. is global, is local, is ref,’’’ DTYPE, ’’’’’’’’. type class, type name,’’’’’’’’’N void type, int type, real type, text type, bool type, ’’’’’’’’’N bool result type, dataspace type, undefined type, ’’’’’’’’’’’’’> row type, struct type, proc type, end type,’’’’ OPN, ’’’’’’’’’’. set length of local storage, ’’. begin module, end module, ’’’’’> is proc, is eumel 0 instruction,’’’’’’’’’’’’’’’. address, operation,’’’’’’’’’’’’ nop, ’’’’’’’’’’ mnemonic, ’’’’’ parameter,’’’’’ next param,’’’’ NEXTPARAM, ’’’’ access , ’’’’’’ dtype , ’’’’’’’ param address,’ same type ,’’’’. reserve storage, ’’’’’’’’’’’’’’. allocate denoter , ’’’’’’’’’’’’. allocate variable, ’’’’’’’’’’’’. data allocation by coder ,’’’’’. data allocation by user,’’’’’’’. run, run again, ’’’’’’’’’’’’’’’ insert,’’’’’’’’ prot, prot off,. check, check on, check off,’’’’. help, bulletin, packets,’’’’’’’N(**************************************************************************)’’N(* *) ’N(* E U M E L - C O D E R *) ’N(* *) ’N(* *) ’N(* Zur Beschreibung des Coders siehe *) ’N(* U.Bartling, J. Liedtke: EUMEL-Coder-Interface *) ’N(* *) ’N(* Stand der Dokumentation : 29.10.1986 *) ’N(* Stand der Implementation : 03.09.1986 *) ’N(* *) ’N(* *) ’N(**************************************************************************) ’N(**************************************************************************) ’N(* *) ’N(* 0. Datentyp DINT 03.09.1987 *) ’N(* *) ’N(* Definition des Datentyps *) ’N(* arithmetischer Operationen *) ’N(* und Konvertierungsprozeduren *) ’N(* *) ’N(**************************************************************************) ’ DINT,’’’’’’’’’’. -, *, DIV, MOD, <, <=,’’’’’’’’’ AND, OR, XOR,’’. dput, dget, dmov,’’’’’’’’’’’’’’. ddec1, dinc1, dinc, ddec,’’’’’’ dadd, dsub,’’’’ dequ, dlseq,’’’ INCR, DECR,’’’’ put, get, cout,. text, real, int, dint,’’’’’’’’’ replace, DSUB :.TYPE DINT = STRUCT (INT low, high) ; ’’’’’’’’’NREAL VAR real value ; (* auch fuer Ausrichtung ! *)’’’’’’’’’’’’’’’TEXT VAR convertion buffer ;’’DINT CONST dint0 :: dint(0) ;’DINT VAR result :: dint 0 ;’’.DINT PROC dint (INT CONST number) : ’’’’’’’’’’ EXTERNAL 144’’’’’’’’’’’’’’ENDPROC dint ; ’’’’’’’’’’’’’’’INT PROC int (DINT CONST i) :  EXTERNAL 143’’’’’’’’’’’’’’.REAL PROC real (DINT CONST number) : ’’’’’’’’’> real value := 65536.0 * real (number.high) ; ’’’’’’’’’’’’’ IF number.low >= 0 ’’’’’. THEN real value INCR real (number.low) ’’’N ELSE real value INCR (real (number.low AND maxint) + 32768.0) ’’’’’’’’’’’’ real valueENDPROC real ; ’’’’’’’’’’’’’’’.DINT PROC dint (REAL CONST number) : ’’’’’’’’’. real value := abs (number) ;’’’’’’’’’’’’’’> REAL CONST low := real value MOD 65536.0 ; ’’’’’’’’’’’’’’’> result.high := int(real value / 65536.0) ; ’’’’’’’’’’’’’’’ IF low < 32768.0 ’’’’’’’. THEN result.low := int (low)’’’’’’’’’’’’’’> ELSE result.low := int (low-32768.0) OR minint’’’’’’’’’’’’> IF number < 0.0 THEN dsub (dint0, result, result) FI ;’’’’ENDPROC dint ; ’’’’’’’’’’’’’’’.TEXT PROC text (DINT CONST number) :’’’’’’’’’’> IF number.high = 0 THEN convert low part only’’’’’’’’’’’’’. ELSE convert number ’’’ convertion buffer .’’’’’’’convert low part only : ’’’’’’N IF number.low >= 0 THEN convertion buffer := text (number.low) ’’’’’’’’’’’N ELSE convertion buffer := text (real of low) ;’’’’’’’’’> erase decimal point’’’’’’’’’’’’’’’real of low : . real (number.low AND maxint) + 32768.0 .’’convert number : ’’’’’’’’’’’’’. convertion buffer := text (real(number)) ; erase decimal point .’’’’’erase decimal point :’’’’’’’’’^ convertion buffer := subtext (convertion buffer, 1, LENGTH convertion buffer-2)’’’’’’’’’’’.DINT PROC dint (TEXT CONST dint txt) :’’’’’’’’. convertion buffer := dint txt ;’’’’’’’’’’’> INT CONST dot pos :: pos (convertion buffer, ".") ; ’’’’’’> IF dot pos = 0 THEN convertion buffer CAT ".0" FI ;’’’’’’’. dint (real(convertion buffer))’’’’’’’’’’’’ENDPROC dint ;PROC get (DINT VAR dest) : ’’’ REAL VAR number ;’’’’’’’’’ get (number) ;’’’’’’’’’’’’ dest := dint (number)’’’’’ENDPROC get ; .PROC put (DINT CONST number) : ’’’’’’’’’’’’’’’ put (text (number));’’’’’’ENDPROC put ; .PROC cout (DINT CONST number) : ’’’’’’’’’’’’’’ EXTERNAL 61’’’’’’’’’’’’’’’.OP := (DINT VAR a, DINT CONST b) : ’’’’’’’’’’’# INLINE ; #’’’’’’’’’’’’’’ dmov (b, a); ’’’’’’’’’’’’’.OP INCR (DINT VAR a, DINT CONST b) : ’’’’’’’’’# INLINE ; #’’’’’’’’’’’’’’ dinc (b, a); ’’’’’’’’’’’’’.OP DECR (DINT VAR a, DINT CONST b) : ’’’’’’’’’# INLINE ; #’’’’’’’’’’’’’’ ddec (b, a); ’’’’’’’’’’’’’BOOL OP = (DINT CONST a, b) :  EXTERNAL 137 ’’’’’’’’’’’’’.BOOL OP <= (DINT CONST a, b) : ’’’’’’’’’’’’’’’ EXTERNAL 138 ’’’’’’’’’’’’’BOOL OP < (DINT CONST a, b) :’# INLINE ; #’’’’’’’’’’’’’’ NOT (b <= a)’’’’’’’’’’’’’’.BOOL PROC dequ (DINT CONST a, b) : ’’’’’’’’’’’ EXTERNAL 137 ’’’’’’’’’’’’’ENDPROC dequ ;.BOOL PROC dlseq (DINT CONST a, b) : ’’’’’’’’’’ EXTERNAL 138 ’’’’’’’’’’’’’ENDPROC dlseq ;’’’’’’’’’’’’’’’NPROC replace (TEXT VAR text, INT CONST index of dint, DINT CONööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööST value) :’’’’’. INT VAR subscript := index of dint * 2 ;’’. replace (text, subscript - 1,value.low); ’. replace (text, subscript, value.high); ’’’ENDPROC replace;’’’’’’’’’’’’’’>DINT OP DSUB (TEXT CONST text, INT CONST index of dint) : ’’’’. INT VAR subscript := index of dint * 2 ;’. result.low := text ISUB subscript - 1; ’’. result.high := text ISUB subscript;’’’’’’’DINT OP + (DINT CONST a, b) :’ EXTERNAL 135 ’’’’’’’’’’’’’DINT OP - (DINT CONST a, b) :’ EXTERNAL 136 ’’’’’’’’’’’’’.PROC dadd (DINT CONST a, b, DINT VAR res) :’’’ EXTERNAL 135 ’’’’’’’’’’’’’ENDPROC dadd ;.PROC dsub (DINT CONST a, b, DINT VAR res) :’’’ EXTERNAL 136’’’’’’’’’’’’’’ENDPROC dsub ;>PROC dinc (DINT CONST source, DINT VAR dest) : ’’’’’’’’’’’’’’’ EXTERNAL 133 ’’’’’’’’’’’’’ENDPROC dinc ; ’’’’’’’’’’’’’’’>PROC ddec (DINT CONST source, DINT VAR dest) : ’’’’’’’’’’’’’’’ EXTERNAL 134 ’’’’’’’’’’’’’ENDPROC ddec ; ’’’’’’’’’’’’’’’>PROC dmov (DINT CONST source, DINT VAR dest) : ’’’’’’’’’’’’’’’ EXTERNAL 130 ’’’’’’’’’’’’’ENDPROC dmov; DINT OP DIV (DINT CONST a,b) : EXTERNAL 152’’’’’’’’’’’’’’DINT OP MOD (DINT CONST a,b) : EXTERNAL 153’’’’’’’’’’’’’’DINT OP AND (DINT CONST a,b) :. result.low := a.low AND b.low ;’’’’’’’’’. result.high := a.high AND b.high ;’’’’’’’’DINT OP OR (DINT CONST a,b) :’. result.low := a.low OR b.low ;’’’’’’’’’’. result.high := a.high OR b.high ;’’’’’’’’’DINT OP XOR (DINT CONST a,b) :. result.low := a.low XOR b.low ;’’’’’’’’’. result.high := a.high XOR b.high ;’’’’’’’’NPROC dput (ROW 32000 DINT VAR array, DINT CONST index, value) : ’’’’’’’’’’’’’’ EXTERNAL 139 ’’’’’’’’’’’’’ENDPROC dput ; ’’’’’’’’’’’’’’’NPROC dget (ROW 32000 DINT VAR array, DINT CONST index, DINT VAR dest) : ’’’’’’ EXTERNAL 140 ’’’’’’’’’’’’’ENDPROC dget ; ’’’’’’’’’’’’’’’PROC dinc1 (DINT VAR dest) : ’ EXTERNAL 131 ’’’’’’’’’’’’’ENDPROC dinc1 ; ’’’’’’’’’’’’’’PROC ddec1 (DINT VAR dest) :’’ EXTERNAL 132 ’’’’’’’’’’’’’ENDPROC ddec1 ; ’’’’’’’’’’’’’’DINT OP * (DINT CONST a,b) :’’ EXTERNAL 151’’’’’’’’’’’’’’> (***** Globale Variable *****) ’’’’’’’’’’’’TEXT VAR object name;’’’’’’’’’FILE VAR bulletin file; ’’’’’’NINT VAR memory management mode, global address offset, packet base,’’’’’’’’’’’N hash table pointer, nt link, permanent pointer, param link,’’’’’’’’’’’> packet link, index, mode, field pointer, word,’’’’’’’’. number of errors := 0 ;’’’’’’’’’’’’’’’BOOL VAR found, end of params;N(**************************************************************************) ’N(* *) ’N(* 1. Interface zum ELAN-Compiler 13.11.1986 *) ’N(* 1.8.1 *) ’N(* *) ’N(* Beschreibung der Tabellen (-groessen), *) ’N(* internen Vercodung von Typen *) ’N(* und Kennungen . *) ’N(* Initialisieren und Beenden des Compilers, *) ’N(* Lesen aus und Schreiben in Namens- bzw. Permanent-Tabelle *) ’N(* *) ’N(**************************************************************************) ’NTYPE LIB = STRUCT (TEXT name, INT nt link, pt link, ADDRESS base) ;’’’’’’’’’’’.LET begin of hash table = 0 ,’’’’. end of hash table = 1023 ,’’’’. begin of permanent table = 22784 ,’’’’. before first pt entry = 22784 ,’’’’. first permanent entry = 22785 ,’’’’. end of permanent table = 32767 , ’’’N wordlength = 1 , (* compile u n d run time *)’’’’. two word length = 2 ,’’’’. three word length = 3 ,’’’’. four word length = 4 ,’’’’> permanent param const = 10000 ,’’’’’’’’’’’’’’> permanent param var = 20000 ,’’’’’’’’’’’’’’> permanent proc op = 30000 ,’’’’’’’’’’’’’’> permanent type = 30000 ,’’’’’’’’’’’’’’> permanent row = 10 ,’’’’’’’’’’’’’’> permanent struct = 11 ,’’’’’’’’’’’’’’> permanent param proc = 12 ,’’’’’’’’’’’’’’> permanent param proc end marker = 0 ,’’’’’’’’’’’’’’> permanent type field = 0 ,’’’’’’’’’’’’’’> ptt limit = 10000 ,’’’’’’’’’’’’’’> begin of pt minus ptt limit = 12784 ,’’’’’’’’’’’’’’N begin of pt minus ptt limit 1 = 12785 , (* plus wordlength *)’’’’’’’’> void id = 0 ,’’’’’’’’’’’’’’> int id = 1 ,’’’’’’’’’’’’’’> real id = 2 ,’’’’’’’’’’’’’’> string id = 3 ,’’’’’’’’’’’’’’> bool id = 5 ,’’’’’’’’’’’’’’> bool result id = 6 ,’’’’’’’’’’’’’’> dataspace id = 7 ,’’’’’’’’’’’’’’> undefined id = 9 ,’’’’’’’’’’’’’’> row id = 10 ,’’’’’’’’’’’’’’> struct id = 11 ,’’’’’’’’’’’’’’> end id = 0 ,’’’’’’’’’’’’’’> const = 1 , ’’’’’’’’’’’’’> var = 2 ,’’’’’’’’’’’’’’> proc id = 3 ,’’’’’’’’’’’’’’>(* denoter = 5 , *)’’’’’’’’’’’> bold = 2 ,’’’’’’’’’’’’’’> ins = TRUE ,’’’’’’’’’’’’’’’> no ins = FALSE ,’’’’’’’’’’’’’’> no lst = FALSE ,’’’’’’’’’’’’’’> sermon = TRUE ,’’’’’’’’’’’’’’> no sermon = FALSE ,’’’’’’’’’’’’’’> run again mode = 0 ,’’’’’’’’’’’’’’> compile file mode = 1 ,’’’’’’’’’’’’’’> prep coder mode = 5 , ’’’’’’’’’’’’’> warning message = 2 , ’’’’’’’’’’’’’> error message = 4 ,’’’’’’’’’’’’’’> point line = "..............." ;’’>INT CONST permanent packet := -2 ,’’’’’’’’’’’’’> permanent end := -3 ;’’’’’’’’’’’’’>BOOL VAR coder active := FALSE ; ’’’’’’’’’’’’’>INT VAR run again mod nr := 0 ;’’’’’’’’’’’’’’. (***** Start/Ende *****)’>LET coder not active = "CODER not active" ,’’’’’’’’’’’’’’> illegal define packet = "illegal define packet" ;’’’’’’’’’>PROC coder on (INT CONST data allocation mode) : ’’’’’’’’’’’’’ mark coder on ; ’’’’’’’’’’ init opn section ; ’’’’’’’ init compiler ;’’’’’’’’’’’ init memory management .’’mark coder on :’’’’’’’’’’’’’’’ coder active := TRUE .’’’’init memory management :’’’’’’> memory management mode := data allocation mode .’’’’’’’’’’init compiler :’’’’’’’’’’’’’’’ no do again ;’’’’’’’’’’’’’N elan (prep coder mode, bulletin file, "", run again mod nr,’’’’’’’’’’’’’’’> no ins, no lst, check option, no sermon)’’’’’’’’’’’’ENDPROC coder on;’’’’’’’’’’’’’NPROC coder offöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö (BOOL CONST insert, sermon, OPN CONST start proc) :’’’’’’’’’’’’ IF coder active ’’’’’’’’’’ THEN mark coder off ; ’N end coder (insert, sermon, start mod nr if no insert)’’’’’’’’’’’’’. ELSE errorstop (coder not active)’’’’’’start mod nr if no insert :’’’. IF insert THEN run again mod nr := 0’’’’’’> ELSE run again mod nr := start proc.mod nr’’’’’’ run again mod nr .’’’’’’’’mark coder off :’’’’’’’’’’’’’’. reset memory management mode ;’’’’’’’’’’’’ init opn section ;’’’’’’’’ coder active := FALSE’’’’’ENDPROC coder off ; ’’’’’’’’’’NPROC end coder (BOOL CONST insert wanted, sermon wanted, INT CONST mod) :’’’’’ EXTERNAL 10021’’’’’’’’’’’’ENDPROC end coder ; ’’’’’’’’’’>PROC elan (INT CONST mode, FILE VAR source, TEXT CONST line, ’N INT VAR start module number, BOOL CONST ins, lst, rtc, ser) :’’’’’’ EXTERNAL 256ENDPROC elan ;PROC unsigned arithmetic : ’’’ EXTERNAL 92 ’’’’’’’’’’’’’’ENDPROC unsigned arithmetic ;’> (***** Paket-Rahmen *****)’’’’’’’’’’’>PROC declare (TEXT CONST name, LIB VAR packet) :’’’’’’’’’’’’’’ packet.name := name’’’’’’’ENDPROC declare ;’’’’’’’’’’’’’PROC define (LIB VAR packet) :. check if definition possible ;’’’’’’’’’’’’N declare object (packet.name, packet.nt link, packet.pt link) ;’’’’’’’’’’’’N open packet (packet.nt link, global address offset, packet base) ;’’’’’’’’. set to actual base (packet) .’’’’’’’’’’’’’check if definition possible :> IF NOT coder active THEN errorstop (coder not active) FI ;N IF module open THEN errorstop (illegal define packet) FI’’’’’’’’’’’’’ENDPROC define ;’’’’’’’’’’’’’’NPROC open packet (INT CONST nt link of packet name, INT VAR offset, base) :’’’ EXTERNAL 10032 ’’’’’’’’’’’ENDPROC open packet ;’’’’’’’’’NPROC identify (TEXT CONST name, LIB VAR packet, BOOL VAR packet exists) :’’’’’ to packet (name) ;’’’’’’’ packet exists := found ;’. IF found THEN packet.name := name ;’’’. packet.nt link := nt link ;> packet.pt link := packet link ;’’’’’’’’’’’’. get pbas (packet.base)’’’’’ENDPROC identify ;’’’’’’’’’’’’> (***** Hash/Namenstabelle *****) ’’’’’’’’’’next hash entry :’’’’’’’’’’’’’. hash table pointer INCR wordlength .’’’’’end of hash table reached :’’’. hash table pointer > end of hash table .’yet another nt entry :’’’’’’’’. nt link := cdb int (nt link) ;’’’’’’’’’’’ nt link <> 0 . ;’’’’’’’’’NPROC declare object (TEXT CONST name, INT VAR nt link, pt pointer) : ’’’’’’’’’ EXTERNAL 10031’’’’’’’’’’’’ENDPROC declare object ; ’’’’’.PROC to object (TEXT CONST searched object) :  search nt entry .’’’’’’’’ hash code := 0 ;’’’’’’’’’> FOR index FROM 1 UPTO LENGTH searched object REP’’’’’’’’’ addmult cyclic’’’’’’’addmult cyclic :’’’’’’’’’’’’’’. hash code INCR hash code ;’’’’’’’’’’’’’’’> IF hash code > end of hash table THEN wrap around FI ;’’’N hash code := (hash code + code (searched object SUB index)) MOD 1024 .’’’. hash code DECR end of hash table .’’’’’’’hash code : nt link .’’’’’’’’’search nt entry :’’’’’’’’’’’’’ found := FALSE ;’’’’’’’’’. WHILE yet another nt entry REP’’’’’’’’’’’ read current entry ;. IF object name = searched object ’’’. THEN found := TRUE ;’’’’’’’’’’’’’. LEAVE to object’’’’’’’’’’’’’read current entry :’’’’’’’’’’> permanent pointer := cdb int (nt link + wordlength) ;’’’’> object name := cdb text (nt link + two word length)’’’’’’ENDPROC to object ;’’’’’’’’’’’> (***** Permanent Tabelle *****) ’’’’’’’’’’’’’next procedure :’’’’’’’’’’’’’’> permanent pointer := cdb int (permanent pointer) . ;’’’’’PROC next pt param :’’’’’’’’’’> mode := cdb int (param link) MOD ptt limit ;’’’’’’’’’’’’’. param link INCR wordlength ;’’’’’’’’’’’’’N IF mode = permanent row THEN skip over permanent row ’’’’’’’’’’’’’’’N ELIF mode = permanent struct THEN skip over permanent struct’’’’’’’’’’’’’. set end marker if end of list .’’’’’’’’’’skip over permanent row :’’’’’. param link INCR wordlength ;’’’’’’’’’’’’’ next pt param .’’’’’’’’’’skip over permanent struct :’’. mode := cdb int (param link) ;’’’’’’’. IF mode = permanent type field’’’’’’’. THEN param link INCR wordlength ;’> LEAVE skip over permanent struct’’’’’’’’’’’’’ next pt param’’’’’’’’ENDPROC next pt param ;’’’’’’’.PROC set end marker if end of list :’’’’’’’’’’. mode := cdb int (param link) ;’’’’’’’’’’’> end of params := mode >= permanent proc op OR mode <= 0 ’.ENDPROC set end marker if end of list ;’’’’’’’.PROC get type and mode (INT VAR type) : ’’’’’’. mode := cdb int (param link) ;’’’’’’’’’’’N IF mode < 0 THEN type := 2769 + (32767 + mode) ;’’’’> mode := 0’’’’’’’’’’> ELIF mode = permanent param proc THEN translate type’’’’’N ELSE type := mode MOD ptt limit ;’’’’’’’> mode DECR type ;’’’N translate type if necessary ;’’’’’’N translate mode if necessary ’’’’’’’translate type if necessary :’> IF permanent row or struct THEN translate type FI .’’’’’’translate type :’’’’’’’’’’’’’’> type := param link - begin of pt minus ptt limit .’’’’’’’translate mode if necessary : > IF mode = permanent param const THEN mode := const’’’’’’> ELIF mode = permanent param var THEN mode := var’’’’’’’’permanent row or struct :’’’’’> type = permanent row OR type = permanent struct’’’’’’’’’’ENDPROC get type and mode ;’’’>PROC put next permanent (INT CONST permanent value) : ’’’’’’’’ EXTERNAL 10020’’’’’’’’’’’’ENDPROC put next permanent ; ’> (***** Allgemeine Zugriffsprozeduren *****) ’.INT PROC cdb int (INT CONST index) :’’’’’’’’’’ EXTERNAL 116’’’’’’’’’’’’’’’ENDPROC cdb int ;’’’’’’’’’’’’’.TEXT PROC cdb text (INT CONST index) :’’’’’’’’ EXTERNAL 117’’’’’’’’’’’’’’’ENDPROC cdb text ;’’’’’’’’’’’’N(**************************************************************************) ’N(* *) ’N(* 2. Spruenge und Marken 07.10.1986 *) ’N(* *) ’N(* Definition des Datentyps LABEL *) ’N(* *) ’N(* Deklaration, Definition und Applikation von Marken *) ’N(* *) ’N(**************************************************************************) ’TYPE LABEL = INT ; ’’’’’’’’’’’BOOL VAR invers :: FALSE ; ’’’.PROC declare (LABEL VAR label) : ’’’’’’’’’’’’’ CONCR (label) := 0’’’’’’’’ENDPROC declare ; ’’’’’’’’’’’’.PROC define (LABEL VAR label) : ’’’’’’’’’’’’’’ EXTERNAL 10085’’’’’’’’’’’’ENDPROC define ; ’’’’’’’’’’’’’.PROC complement condition code : ’’’’’’’’’’’’’ invers := NOT invers’’’’’’.ENDPROC complement condition code ; ’’’’’’’’’’.PROC apply (LABEL VAR label) : ’’’’’’’’’’’’’’’ EXTERNAL 10151’’’’’’’’’’’’ENDPROC apply ; ’’’’’’’’’’’’’’>PROC apply (LABEL VAR label, BOOL CONST condition) : ’’’’’’’’’> IF conditiööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööon xor invers THEN branch true (label) ’’’’’’’’’> ELSE branch false (label)’’’’’’’’’ invers := FALSE .’’’’’’’’’condition xor invers : ’’’’’’’. IF condition THEN NOT invers’’’’’’’’’’’’’’ ELSE invers’’ENDPROC apply ; ’’’’’’’’’’’’’’>OP := (LABEL VAR global label, local label) : (* EQUATE ! *)’’ EXTERNAL 10014 ’’’’’’’’’’’.TEXT PROC dump (LABEL CONST label) : ’’’’’’’’’. "LAB " + text (CONCR (label)) ’’’’’’’’’’’’ENDPROC dump ; ’’’’’’’’’’’’’’’.PROC gosub (LABEL VAR label) : ’’’’’’’’’’’’’’’ EXTERNAL 10015 ’’’’’’’’’’’ENDPROC gosub ; ’’’’’’’’’’’’’’ s0 (q goret code) ’’’’’’’’ENDPROC goret ; ’’’’’’’’’’’’’’.PROC branch true (LABEL VAR label) : ’’’’’’’’’ EXTERNAL 10028’’’’’’’’’’’’ENDPROC branch true ; ’’’’’’’’.PROC branch false (LABEL VAR label) : ’’’’’’’’ EXTERNAL 10029’’’’’’’’’’’’ENDPROC branch false ; ’’’’’’’NPROC computed branch (ADDRESS CONST switch, INT CONST limit, LABEL VAR out) :’. s1 (q esc case, REPR switch) ;’’’’’’’’’’’’ s0 (limit) ; ’’’’’’’’’’’’’ branch false (out)’’’’’’’’ENDPROC computed branch ;’’’’’N(**************************************************************************) ’N(* *) ’N(* 3. Datenaddressen 13.11.1986 *) ’N(* *) ’N(* Definition des Datentyps ADDRESS *) ’N(* *) ’N(* Aufbau von Datenaddressen (Vercodung) *) ’N(* Fortschalten und Ausrichten von Adressen *) ’N(* Behandlung von Paketbasis-Adressen *) ’N(* Bereitstellen der Fehlermeldung "address overflow" (Coder-intern) *) ’N(* *) ’N(**************************************************************************) ’.TYPE ADDRESS = STRUCT (INT kind, value) ; ’’’’.LET global = 0 , ’’’’’’’’’’’’’. local = 1 , ’’’’’’’’’’’’’. ref mask = 2 , ’’’’’’’’’’’’’. global ref = 2 , ’’’’’’’’’’’’’. local ref = 3 , ’’’’’’’’’’’’’. module nr = 4 ,’’’’’’’’’’’’’’. immediate value = 5 ,’’’’’’’’’’’’’’. p base = 6 ,’’’’’’’’’’’’’’. eumel0 stack offset = 4 ,’’’’’’’’’’’’’’. local address limit = 16 384 ,’’’’’’’’’. global address zero = 0 ,’’’’’’’’’’’’’’> illegal ref operation = "REF not allowed" , ’’’’’’’’’’’’’> deref on non ref = "DEREF on non-ref address" ,’’’’’> global ref not allowed = "GLOBAL REF not allowed" , ’’’’’’> unknown kind = "Unknown address kind" , ’’’’’’’’> address overflow = "Address Overflow" , ’’’’’’’’’’’’. illegal plus operation = "+ not allowed" ;ADDRESS VAR result addr;’’’’’’INT CONST ref length :: 2 ;’’’.OP := (ADDRESS VAR l, ADDRESS CONST r) : ’’’’’ CONCR (l) := CONCR (r) ’’’.ADDRESS OP GLOB (INT CONST address level) : ’’. result addr.kind := global ; ’’’’’’’’’’’’. result addr.value := address level ; ’’’’’> IF memory management mode = data allocation by user’’’’’’’> THEN result addr.value INCR global address offset’’’’’’ result addr’’’’’’’’’’’’’’’.ADDRESS OP LOC (INT CONST address level) : ’’’. result addr.kind := local ;’’’’’’’’’’’’’’N result addr.value := address level + eumel0 stack offset ; ’’’’’’’’’’’’’’’ result addr’’’’’’’’’’’’’’’.ADDRESS OP REF (ADDRESS CONST addr) : ’’’’’’’’. CONCR (result addr) := CONCR (addr) ;’’’’’N IF result addr.kind = local THEN result addr.kind INCR ref mask’’’’’’’’N ELIF result addr.kind = global THEN errorstop (global ref not allowed)’’’’N ELSE errorstop (illegal ref operation)’’’’’ result addr ’’’’’’’’’’’’’’>ADDRESS OP DEREF (ADDRESS CONST ref address) : ’’’’’’’’’’’’’’’> CONCR (result addr) := CONCR (ref address) ;’’’’’’’’’’’’’’N IF is not local ref THEN errorstop (deref on non ref) FI ; ’’’’’’’’’’’’’’’. result addr.kind DECR ref mask ; ’’’’’’’’’ result addr .’’’’’’’’’’’’’is not local ref :’’’’’’’’’’’’. result addr.kind <> local ref’’’’’’’’’’’’’.INT OP REPR (ADDRESS CONST addr) : ’’’’’’’’’’’. CONCR (result addr) := CONCR (addr) ;’’’’’. SELECT result addr.kind OF ’’’’’’’’’’’’’’’ CASE global :’’’’’> CASE local : set bit (result addr.value, 15) ’’’’> CASE global ref : errorstop (global ref not allowed)’’. CASE local ref : prep local ref ’’’’’. OTHERWISE errorstop (unknown kind)’’’’ ENDSELECT ; ’’’’’’’’’’’’’’ result addr.value .’’’’’’’prep local ref : ’’’’’’’’’’’’’N IF address limit exceeded THEN errorstop (address overflow) FI ;’’’’’’’’’’. set bit (result addr.value, 14) ; ’’’’’’’’. set bit (result addr.value, 15) .’’’’’’’’’address limit exceeded :’’’’’’. result addr.value < eumel0 stack offset OR. result addr.value > local address limit’’’>PROC get base (LIB CONST packet, ADDRESS VAR base) :’’’’’’’’’’. CONCR (base) := CONCR (packet.base)’’’’’’’ENDPROC get base ;’’’’’’’’’’’’.PROC set to actual base (LIB VAR packet) :’’’’. packet.base.kind := p base ;’’’’’’’’’’’’’. packet.base.value := packet base’’’’’’’’’’ENDPROC set to actual base ;’’.PROC get pbas (ADDRESS VAR base) :’’’’’’’’’’’’ base.kind := p base ;’’’’. base.value := cdbint (packet link + 2)’’’’ENDPROC get pbas ;’’’’’’’’’’’’.BOOL OP = (ADDRESS CONST l,r) :’’’’’’’’’’’’’’’. l.kind = r.kind AND l.value = r.value’’’’’.BOOL PROC is ref (ADDRESS CONST addr) : ’’’’’’ addr.kind = local ref’’’’’ENDPROC is ref ; ’’’’’’’’’’’’’.BOOL PROC is global (ADDRESS CONST addr) : ’’’ addr.kind = global ’’’’’’’ENDPROC is global ; ’’’’’’’’’’.BOOL PROC is local (ADDRESS CONST addr) : ’’’’ addr.kind = local ’’’’’’’’ENDPROC is local ; ’’’’’’’’’’’>ADDRESS OP + (ADDRESS CONST addr, INT CONST offset) : ’’’’’’’’. CONCR (result addr) := CONCR (addr) ; ’’’’. SELECT result addr.kind OF ’’’’’’’’’’’’’’’. CASE global : inc global’’’’’’’’’’’’’’. CASE local : inc local’’’’’’’’’’’’’’’> OTHERWISE errorstop (illegal plus operation) ’’’’’ ENDSELECT ; ’’’’’’’’’’’’’’ result addr .’’’’’’’’’’’’’. result addr.value INCR offset ; ’’’’’’’’’’N IF result addr.value < 0 THEN errorstop (address overflow) FI .’’’’’’’’’’’. result addr.value INCR offset ; ’’’’’’’’’’> IF result addr.value < eumel 0 stack offset OR’’’’’’’’’’’’. result addr.value > local address limit. THEN errorstop (address overflow)’’’’’’>PROC adjust (ADDRESS VAR addr, INT CONST adjust length) :’’’’’> IF is local or global THEN adjust to length FI . ’’’’’’’’’is local or global :’’’’’’’’’’ addr.kind <= local .’’’’’’adjust to length :’’’’’’’’’’’’. mode := addr.value MOD adjust length ;’’’’> IF mode <> 0 THEN addr.value INCR (adjust length-mode) FI’ENDPROC adjust ;’’’’’’’’’’’’’’.TEXT PROC dump (ADDRESS CONST addr) : ’’’’’’’’. kind + text (addr.value) . ’’’’’’’’’’’’’’’ SELECT addr.kind OF ’’’’’’. CASE global : "GLOBAL " ’’’’’. CASE local : "LOCAL " ’’’’’’. CASE immediate value : "IMMEDIATE "’’’. CASE module nr : "PARAM PROC "’’. CASE global ref : "GLOBAL REF " ’. CASE local ref : "LOCAL REF " ’’. CASE p base :öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö "PBAS "’’’’’’’’> OTHERWISE "undef. Addr: " ’’’’’’’’’’’’’’’ ENDSELECT ENDPROC dump; N(**************************************************************************) ’N(* *) ’N(* 4. Datentypen Teil I 08.09.1986 *) ’N(* *) ’N(* Definition des Datentyps DTYPE *) ’N(* *) ’N(* Interne Repraesentation der primitiven Datentypen *) ’N(* Identifikation von DTYPEs *)’’N(* *) ’N(**************************************************************************) ’TYPE DTYPE = INT ; ’’’’’’’’’’’.OP := (DTYPE VAR l, DTYPE CONST r) : ’’’’’’’’’ CONCR (l) := CONCR (r) ’’’.BOOL OP = (DTYPE CONST l, r) : ’’’’’’’’’’’’’’’ CONCR (l) = CONCR (r)’’’’’NDTYPE PROC void type : DTYPE :(void id) ENDPROC void type ; ’’’’’’’’’’NDTYPE PROC int type : DTYPE :(int id) ENDPROC int type ; ’’’’’’’’’’’NDTYPE PROC real type : DTYPE :(real id) ENDPROC real type ; ’’’’’’’’’’NDTYPE PROC text type : DTYPE :(string id) ENDPROC text type ; ’’’’’’’’’’NDTYPE PROC bool type : DTYPE :(bool id) ENDPROC bool type ; ’’’’’’’’’’^DTYPE PROC bool result type : DTYPE :(bool result id) ENDPROC bool result type; ’’’’’’’’’’’’’NDTYPE PROC dataspace type : DTYPE :(dataspace id) ENDPROC dataspace type ; ’’’NDTYPE PROC undefined type : DTYPE :(undefined id) ENDPROC undefined type ; ’’’NDTYPE PROC row type : DTYPE :(row id) ENDPROC row type ; ’’’’’’’’’’’’NDTYPE PROC struct type : DTYPE :(struct id) ENDPROC struct type ; ’’’’’’’’’NDTYPE PROC proc type : DTYPE :(permanent param proc) ENDPROC proc type ; ’’’NDTYPE PROC end type : DTYPE :(end id) ENDPROC end type ; ’’’’’’’’’’’’.INT PROC type class (DTYPE CONST type) : ’’’’’ SELECT type id OF ’’’’’’’’N CASE int id, real id, bool id, bool result id, string id,’’’’’’’’’’’’’. dataspace id, undefined id : 1 ’’ CASE void id : 0 ’’’ CASE row id : 3 ’’’ CASE struct id : 4 ’’’. CASE permanent param proc : 5 ’’’’’’’ OTHERWISE pt type  ENDSELECT . ’’’’’’’’’’’’’’> IF type id > ptt limit THEN permanent row or struct’’’’’’’. ELSE abstract type’abstract type : 2 .’’’’’’’’’’’permanent row or struct :’’’’’ unsigned arithmetic ;’’’’’> mode := cdbint (type link into pt) MOD ptt limit ; ’’’’’’’. IF mode = struct id THEN 4’’’. ELIF mode = row id THEN 3’’’. ELIF mode = permanent param proc THEN 5’’’. ELSE 2’’’type link into pt :’’’’’’’’’’’. type id + begin of pt minus ptt limit .’’’type id : CONCR (type)’’’’’’’’ENDPROC type class ; ’’’’’’’’’NPROC identify (TEXT CONST name,INT VAR size, align, DTYPE VAR type) : ’’’’’’’’ SELECT type pos OF ’’’’’’’> CASE 1 : size := 0; align := 0; type id := void id> CASE 6 : size := 1; align := 1; type id := int id’> CASE 10 : size := 4; align := 4; type id := real idN CASE 15 : size := 8; align := 4; type id := string id’’’’’’’’’’’’’’> CASE 20 : size := 1; align := 1; type id := bool idN CASE 25 : size := 1; align := 1; type id := dataspace id’’’’’’’’’’’> OTHERWISE search for type in permanent table ’’’’’’ ENDSELECT . ’’’’’’’’’’’’’’ enclose in delimiters ;’’’N pos (".VOID.INT.REAL.TEXT.BOOL.DATASPACE.", object name) . ’’’’’’’’’’’’’’’enclose in delimiters :’’’’’’’ object name := "." ;’’’’’’ object name CAT name ;’’’’ object name CAT "." .’’’’’.search for type in permanent table : ’’’’’’’’’ to object (name) ;’’’’’’’’N IF not found THEN size := 0; align := 0; type id := undefined id’’’’’’’’’’N ELSE size := cdbint (permanent pointer + two wordlength) ;’’’^ type id := permanent pointer - begin of permanent table ;’’’’’’’’’’’’’’’N IF size < two wordlength THEN align := 1’’’’’’’’’’’’’N ELIF size < four wordlength THEN align := 2’’’’’’’’’’’’’N ELSE align := 4’’’’’’’’’’’’’ FI’’’’’’. NOT found OR invalid entry .’’’’’’’’’’’’’’invalid entry :’’’’’’’’’’’’’’’ permanent pointer = 0 OR’’N cdb int (permanent pointer + wordlength) <> permanent type .’’’’’’’’’’’’’’type id : CONCR (type)’’’’’’’’ENDPROC identify ; ’’’’’’’’’’’N(**************************************************************************) ’N(* *) ’N(* 5. Operationen Teil I 30.09.1986 *) ’N(* *) ’N(* Definition des Datentyps OPN *) ’N(* Primitive Operationen (:= etc.) *) ’N(* Initialisieren mit den externen Namen der EUMEL-0-Codes *) ’N(* Bereitstellen dee Fehlermeldung 'proc op expected' (coder-intern) *) ’N(* *) ’N(**************************************************************************) ’>TYPE OPN = STRUCT (INT kind, mod nr, top of stack) ;’’’’’’’’’’LET proc op = 0 ,’’’’’’’’’’ param proc = 1 ,’’’’’’’’’’ eumel 0 = 2 , ’’’’’’’’’ nil = 3 , ’’’’’’’’’> param proc at non ref = "PARAM PROC at non-ref address" ,’. proc op expected = "PROC expected" ;’OPN VAR eumel0 opn;’’’’’’’’’’’eumel0 opn.kind := eumel0 ;’’’eumel0 opn.top of stack := 0 ;eumel0 opn.mod nr := q pp ;’’’.OPN CONST pp :: eumel0 opn ,’’’’’’’’’’’’. nop code :: OPN :(nil, 0, 0) ;’’’’’’IF NOT exists ("eumel0 codes")> THEN IF yes ("Archive 'eumel coder' eingelegt")’’’’’’’’’’’. THEN archive ("eumel coder") ;’’’> fetch ("eumel0 codes", archive) ;’’’’’’’’’’’. release (archive)’’’’’’’’’’’> ELSE errorstop ("""eumel0 codes"" gibt es nicht")>BOUND THESAURUS VAR initial opcodes :: old ("eumel0 codes") ;’>THESAURUS VAR eumel 0 opcodes :: initial opcodes ; ’’’’’’’’’’’forget ("eumel0 codes") ;’’’’’.ADDRESS PROC address (OPN CONST opn) :’’’’’’’’N IF opn.kind <> proc op THEN errorstop (proc op expected) FI ;’’’’’’’’’’’’’. result addr.kind := module nr ; ’’’’’’’’’. result addr.value := opn.mod nr ;’’’’’’’’’ result addr’’’’’’’’’’’’’’’ENDPROC address ;’’’’’’’’’’’’’.OPN PROC operation (ADDRESS CONST addr) : ’’’’N IF addr.kind <> local ref THEN errorstop (param proc at non ref) FI ; ’’’’ OPN VAR opn ;’’’’’’’’’’’’’ opn.kind := param proc ; ’ opn.mod nr :=addr.value ;  opn.top of stack := 0 ; ’’ENDPROC operation ; ’’’’’’’’’’.TEXT PROC mnemonic (OPN CONST op code) : ’’’’’. name (eumel 0 opcodes, op code.mod nr)’’’’ENDPROC mnemonic ;’’’’’’’’’’’’OPN PROC nop : ’’’’’’’’’’’’’’’ENDPROC nop ; .OP := (OPN VAR r, OPN CONST l) : ’’’’’’’’’’’’’ CONCR (r) := CONCR (l) ’’’.BOOL PROC is proc (OPN CONST operation) : ’’’’ operation.kind = proc op’’ENDPROC is proc ; ’’’’’’’’’’’’>BOOL PROC is eumel 0 instruction (TEXT CONST op code name) : ’. link (eumel 0 opcodes, op ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööcode name) <> 0’.ENDPROC is eumel 0 instruction ; ’’’’’’’’’’’’’>BOOL PROC is eumel 0 instruction (OPN CONST operation) : ’’’’’ operation.kind = eumel0’’’.ENDPROC is eumel 0 instruction ; ’’’’’’’’’’’’’N(**************************************************************************) ’N(* *) ’N(* 6. Parameterfeld 10.04.1986 *) ’N(* *) ’N(* Bereitstellen des Parameterfeldes *) ’N(* Schreiben und Lesen von Eintraegen im Parameterfeld *) ’N(* Fortschalten von Zeigern in das Parameterfeld *) ’N(* Bereitstellen der Konstanten 'size of param field' (Coder-intern) *) ’N(* *) ’N(**************************************************************************) ’>LET PARAMDESCRIPTOR = STRUCT (DTYPE type, INT access, ’’’’’’> ADDRESS addr, OPN push opn) , ’’. size of param field = 100 ,’’’’’’’’’’’’’> param field exceeded = "Param Field Overflow",’’’’’’’’’’’> param nr out of range = "Illegal Param Number" ;’’’’’’’’’’>ROW size of param field PARAMDESCRIPTOR VAR param field ;’’’’’. (***** Schreiben *****) .PROC test param pos (INT CONST param nr) : ’’’> IF param nr < 1 OR param nr > size of param field’’’’’’’’’. THEN errorstop (param nr out of range)’ENDPROC test param pos ; ’’’’’>PROC declare (INT CONST param nr, DTYPE CONST type) : ’’’’’’’’. test param pos (param nr) ; ’’’’’’’’’’’’’’ enter type . ’’’’’’’’’’’’’> CONCR (param field [param nr].type) := CONCR (type) ’’’’’’ENDPROC declare ; ’’’’’’’’’’’’.PROC declare (INT CONST param nr, access) : ’’. test param pos (param nr) ; ’’’’’’’’’’’’’’ enter access . ’’’’’’’’’’’enter access :. param field [param nr].access := access ’’ENDPROC declare ; ’’’’’’’’’’’’>PROC define (INT CONST param nr, ADDRESS CONST addr) : ’’’’’’’. test param pos (param nr) ; ’’’’’’’’’’’’’’ enter address . ’’’’’’’’’’enter address :’’’’’’’’’’’’’’’> CONCR (param field [param nr].addr) := CONCR (addr) ’’’’’’ENDPROC define ; ’’’’’’’’’’’’’.PROC define (INT CONST param nr, value) : ’’’’. result addr.kind := immediate value ;’’’’. result addr.value := value ;’’’’’’’’’’’’’’. define (param nr, result addr) ’’’’’’’’’’’ENDPROC define ; ’’’’’’’’’’’’’>PROC apply (INT CONST param nr, OPN CONST opn) : ’’’’’’’’’’’’’. test param pos (param nr) ; ’’’’’’’’’’’’’’ enter push opn . ’’’’’’’’’enter push opn : ’’’’’’’’’’’’’> CONCR (param field [param nr].push opn) := CONCR (opn) ’’’ENDPROC apply ; ’’’’’’’’’’’’’’>PROC parameter (INT CONST param nr, DTYPE CONST type, ’’’’’’’’> INT CONST access, ADDRESS CONST addr) : ’’’’’’. test param pos (param nr) ; ’’’’’’’’’’’’’’ enter type ; ’’’’’’’’’’’’’ enter access ; ’’’’’’’’’’’ enter address ; ’’’’’’’’’’ enter pp as default . ’’’’> CONCR (param field [param nr].type) := CONCR (type) .’’’’’enter access :. param field [param nr].access := access .’enter address :’’’’’’’’’’’’’’’> CONCR (param field [param nr].addr) := CONCR (addr) .’’’’’enter pp as default :’’’’’’’’’> CONCR (param field [param nr].push opn) := CONCR (pp) ’’’’ENDPROC parameter ; ’’’’’’’’’’. (***** Lesen *****) ’’’>ADDRESS PROC param address (INT CONST param nr) : ’’’’’’’’’’’’. test param pos (param nr) ; ’’’’’’’’’’’’’’. param field [param nr].addr ’’’’’’’’’’’’’’ENDPROC param address ; ’’’’’’.DTYPE PROC dtype (INT CONST param nr) : ’’’’’’. test param pos (param nr) ; ’’’’’’’’’’’’’’. param field [param nr].type ’’’’’’’’’’’’’’ENDPROC dtype ; ’’’’’’’’’’’’’’.INT PROC access (INT CONST param nr) : ’’’’’’’. test param pos (param nr) ; ’’’’’’’’’’’’’’. param field [param nr].access ’’’’’’’’’’’’ENDPROC access ; ’’’’’’’’’’’’’> (***** Fortschalten *****) ’’’’’’’’’’’’’.OP NEXTPARAM (INT VAR param nr) : ’’’’’’’’’’’’. test param pos (param nr) ; ’’’’’’’’’’’’’’’N INT CONST class :: type class (param field [param nr].type) ;’’’’’’’’’’’’’’ param nr INCR 1 ;’’’’’’’’’’ SELECT class OF’’’’’’’’’’’’. CASE 3 : NEXTPARAM param nr’’’’’’’’’. CASE 4,5 : read until end ’’’’’’’’’’’’ ENDSELECT .’’’’’’’’’’’’’’’read until end : ’’’’’’’’’’’’’> WHILE NOT end marker read or end of field REP’’’’’’’’’’’’’ NEXTPARAM param nr ’’’ param nr INCR 1 .’’’’’’’’’.end marker read or end of field :’’’’’’’’’’’’’. param nr > size of param field OR’’’’’’’’’> CONCR (param field [param nr].type) = end id’’’’’’’’’’’’’’ENDOP NEXTPARAM ; ’’’’’’’’’’’’.INT PROC next param (INT CONST p) : ’’’’’’’’’’ INT VAR index := p ; ’’’’’ NEXTPARAM index ; ’’’’’’’’ENDPROC next param ; ’’’’’’’’’.TEXT PROC dump (INT CONST p) : ’’’’’’’’’’’’’’’> IF p > 0 AND p <= 100 THEN dump entry (param field (p)) ’’’> ELSE param nr out of range ’’’’’’’’’’ENDPROC dump ; ’’’’’’’’’’’’’’’>TEXT PROC dump entry (PARAMDESCRIPTOR CONST id) : ’’’’’’’’’’’’.(* object name := dump (id.type) ; *)’’’’’’’N object name := "TYPE " ; (* siehe *)’’N object name CAT dump (id.type) ; (* TEXT PROC dump (DTYPE d) *)’’. object name CAT text (id.access) ; ’’’’’’’. object name CAT dump (id.addr) ; ’’’’’’’’’. object name CAT dump (id.push opn) ;’’’’’’ object name’’’’’’’’’’’’’’’ENDPROC dump entry ; ’’’’’’’’’N(**************************************************************************) ’N(* *) ’N(* 7. Datentypen Teil II 08.09.1986 *) ’N(* *) ’N(* Deklaration neuer Datentypen *) ’N(* Vergleich von DTYPEs im Parameterfeld und in der Permanent-Tabelle *) ’N(* *) ’N(**************************************************************************) ’DTYPE VAR pt type ;’’’’’’’’’’’NPROC declare (TEXT CONST name, INT CONST size, align, DTYPE VAR type) : ’’’’’’ entry into name table ; ’’. put next permanent (permanent type) ; ’’’’. put next permanent (size) ; ’’’’’’’’’’’’’’. put next permanent (nt link) ;’’’’’’’’’’’’. mark no offsets of text elements . ’’’’’’’entry into name table : ’’’’’’> declare object (name, nt link, CONCR (type)) ;’’’’’’’’’’’’> CONCR (type) DECR begin of permanent table .’’’’’’’’’’’’’’.mark no offsets of text elements : ’’’’’’’’’’’ put next permanent (0) ’’’ENDPROC declare ; ’’’’’’’’’’’’>BOOL PROC same type (INT CONST param 1, param 2) : ’’’’’’’’’’’N INT CONST left type :: CONCR (param field [param 1].type) ;’’’’’’’’’’’’’’’ IF left type = right type’> THEN same fine structure if there is one’’’’’’’’’’’’’’’N ELSE left type = undefined id OR right type = undefined id’’’’’’’’’’’’’>right type : CONCR (param field [param 2].type) . ’’’’’’’’’’’’.same fine structure if there is one : ’’’’’’’’> IF left type = row id THEN compare row ’’’’’’’’’’’’’> ELIF left is struct or proc THEN compare struct ’’’’’’’’’’. ELSE TRUE ’’’’left is struct or proc :’’’’’’> left type = struct id OR left type = proc id .’’’’’’’’’’’’compare row : öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö> equal sizes AND same type (param1 + 1, param2 + 1) . ’’’’’equal sizes : N param field [param1+1].access = param field [param2+1].access .’’’’’’’’’’’compare struct : ’’’’’’’’’’’’’. INT VAR p1 :: param1+1, p2 :: param2+1 ; ’> WHILE same type (p1, p2) AND NOT end type found REP’’’’’’’ NEXTPARAM p1 ;’’’’’’’’’ NEXTPARAM p2’’’’’’’’’’’ UNTIL end of field PER ;’’end type found :’’’’’’’’’’’’’’. CONCR (param field [p1].type) = end id .’’end of field : ’’’’’’’’’’’’’’’> p1 > size of param field OR p2 > size of param field ’’’’’ENDPROC same type ;’’’’’’’’’’’>BOOL PROC same type (INT CONST param nr, DTYPE CONST type) : ’. field pointer := param nr ;’’’’’’’’’’’’’’’. CONCR (pt type) := CONCR (type) ;’’’’’’’’’ equal types ’’’’’’’’’’’’’’ENDPROC same type ;’’’’’’’’’’’BOOL PROC equal types :’’’’’’’. identical types OR one type is undefined .one type is undefined :’’’’’’’N type of actual field = undefined id OR CONCR(pt type) = undefined id .’’’’identical types :’’’’’’’’’’’’’. SELECT type class (pt type) OF ’’’’’’’’’’’> CASE 0, 1, 2 : type of actual field = CONCR (pt type)’. CASE 3 : perhaps equal rows’’’’’. CASE 4 : perhaps equal structs’’> CASE 5 : perhaps equal param procs’’’’’’’’’’’’’’ OTHERWISE FALSE’’ ENDSELECT .’’’’’’’’’’’’’’’perhaps equal rows :’’’’’’’’’’N param link := CONCR (pt type) + begin of pt minus ptt limit ;’’’’’’’’’’’’’> is row AND equal row sizes AND equal row types . ’’’’’’’’’. type of actual field = row id .’’’’’’’’’’’perhaps equal structs : ’’’’’’N param link := CONCR (pt type) + begin of pt minus ptt limit ;’’’’’’’’’’’’’. is struct AND same type fields . ’’’’’’’’’. type of actual field = struct id .’’’’’’’’equal row sizes :’’’’’’’’’’’’’> pt row size = row size within param field . ’’’’’’’’’’’’’’equal row types :’’’’’’’’’’’’’ field pointer INCR 1 ;’’’’ param link INCR 2 ;’’’’’’’. get type and mode (CONCR(pt type)) ;’’’’’’ equal types .’’’’’’’’’’’’’ cdb int (param link + 1) .row size within param field :’. param field [field pointer + 1].access .’’same type fields :’’’’’’’’’’’’ field pointer INCR 1 ; param link INCR 1 ;’’’. IF type of actual field = end id’’’’’’N THEN LEAVE same type fields WITH pt struct end reached’’’’’’’’’’’. get type and mode (CONCR(pt type)) ;’’N IF NOT equal types THEN LEAVE same type fields WITH FALSE FI’’’’’’’’’’ UNTIL end of field PER ;’’pt struct end reached : ’’’’’’> cdbint (param link) = permanent type field . ’’’’’’’’’’’’’end of field :. field pointer > size of param field .’’’’’type of actual field :’’’’’’’’. CONCR (param field [field pointer].type) .perhaps equal param procs :’’’N param link := CONCR (pt type) + begin of pt minus ptt limit ;’’’’’’’’’’’’’. is proc AND same param list . ’’’’’’’’’’’’>is proc : cdbint (param link) = permanent param proc .’’’’’’’’same param list :’’’’’’’’’’’’’. param link INCR wordlength ;’’’’’’’’’’’’’’. DTYPE VAR proc result type ;’’’’’’’’’’’’’’> get type and mode (CONCR (proc result type)) ;’’’’’’’’’’’’ compare param list ;’’’’’’ check results .’’’’’’’’’’’compare param list :’’’’’’’’’’. INT VAR last param := field pointer + 1 ;’ field pointer INCR 1 ;. param link INCR wordlength ;’’’’’’’’’’N IF pt param list exhausted THEN LEAVE compare param list FI ; ’’’’’’’’. IF type of actual field = end id ’’’’’. THEN LEAVE equal types WITH FALSE’’. get type and mode (CONCR(pt type)) ;’’. last param := field pointer ;’’’’’’’’’> UNTIL NOT equal types OR end of field PER .’’’’’’’’’’’’’’’check results : ’’’’’’’’’’’’’’> pt param list exhausted AND equal result types .’’’’’’’’’’equal result types :’’’’’’’’’’ save param link ;’’’’’’’’’> IF same type (last param, proc result type)’’’’’’’’’’’’’’’ THEN restore ;’’’’’’’’’ TRUE’’’’’’’’’’’’’’ ELSE FALSE’’’’’’’’’’’’’pt param list exhausted :’’’’’> cdbint (param link) = permanent param proc end marker .’’’save param link :’’’’’’’’’’’’’. INT CONST p :: param link .’’’’’’’’’’’’’’’ field pointer INCR 1 ;’’’’ param link := p’’’’’’’’’’’ENDPROC equal types ;’’’’’’’’’>BOOL PROC is not void bool or undefined (DTYPE CONST dtype) :’N type <> void id AND type <> bool result id AND type <> undefined id .’’’’’type : CONCR (dtype)’’’’’’’’’’.ENDPROC is not void bool or undefined ;’’’’’’’N(**************************************************************************) ’N(* *) ’N(* 8. Operationen Teil II 08.09.1986 *) ’N(* *) ’N(* Definition der Opcodes *) ’N(* Deklaration, Definition, Identifikation und Applikation *) ’N(* Eroeffnen und Schliessen eines Moduls *)’’N(* *) ’N(**************************************************************************) ’>LET module not opened = "Module not opened" , ’’’’’’’’’’’’’’’. define missing = "DEFINE missing" ,’’’> wrong nr of params = "Wrong Nr. of Params:" , ’’’’’’’’’’’’. illegal kind = "Opcode expected" ,’’. nested module = "Nested Modules" ,’’’> no mod nr = "Param Proc expected" ,’’’’’’’’’’’’’’. no immediate value = "Value expected" ,’’’. type error = "Type Error" ,’’’’’’’ q ln = 1 ,’’N q move = 2 , q move code = 2 048 ,’’’’’’’’’’’’N q inc1 = 3 , q inc1 code = 3 072 ,’’’’’’’’’’’’N q dec1 = 4 , q dec1 code = 4 096 ,’’’’’’’’’’’’N q inc = 5 , q inc code = 5 120 ,’’’’’’’’’’’’N q dec = 6 , q dec code = 6 144 ,’’’’’’’’’’’’N q add = 7 , q add code = 7 168 ,’’’’’’’’’’’’N q sub = 8 , q sub code = 8 192 ,’’’’’’’’’’’’N q clear = 9 , q clear code = 9 216 ,’’’’’’’’’’’’ q test = 10 , ’N q equ = 11 , q equ code = 11 264 , ’’’’’’’’’’’N q lsequ = 12 , q lsequ code = 12 288 , ’’’’’’’’’’’N q fmove = 13 , q fmove code = 13 312 , ’’’’’’’’’’’N q fadd = 14 , q fadd code = 14 336 , ’’’’’’’’’’’N q fsub = 15 , q fsub code = 15 360 , ’’’’’’’’’’’N q fmult = 16 , q fmult code = 16 384 , ’’’’’’’’’’’N q fdiv = 17 , q fdiv code = 17 408 ,’’’’’’’’’’’’N q flsequ = 18 , q flsequ code = 18 432 ,’’’’’’’’’’’’N q tmove = 19 , q tmove code = 19 456 ,’’’’’’’’’’’’N q tequ = 20 , q tequ code = 20 480 , ’’’’’’’’’’’N q accds = 21 , q access ds code = 22 528 , ’’’’’’’’’’’N q ref = 22 , q ref code = 23 552 ,’’’’’’’’’’’’N q subscript = 23 , q subscript code = 24 576 , ’’’’’’’’’’’N q select = 24 , q select code = 25 600 ,’’’’’’’’’’’’N q ppv = 25 , q ppv code = 26 624 ,’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö q pp = 26 , ’N q make false = 27 , (* q make false code = 65 513 *)’’’’’’’’’’’ q movex = 28 ,’’N(* q longa subs q longa subs code = 65 376 *) ’’’’’’’’’’N q return = 29 , q return code = 32 512 ,’’’’’’’’’’’’N q true return = 30 , q true return code = 32 513 ,’’’’’’’’’’’’N q false return = 31 , q false return code = 32 514 ,’’’’’’’’’’’’N q goret code = 32 519 ,’’’’’’’’’’’’N q esc mult = 32 , q esc mult code = 32 553 ,’’’’’’’’’’’’N q esc div = 33 , q esc div code = 32 554 , ’’’’’’’’’’’N q esc mod = 34 , q esc mod code = 32 555 , ’’’’’’’’’’’ q pproc = 35 , ’N q compl int = 36 , q compl int code = 32 551 ,’’’’’’’’’’’’N q compl real = 37 , q compl real code = 32 550 ,’’’’’’’’’’’’N q alias ds = 38 , q alias ds code = 32 546 ,’’’’’’’’’’’’N q movim = 39 , q esc movim code = 32 547 ,’’’’’’’’’’’’N q fequ = 40 , q fequ code = 32 548 ,’’’’’’’’’’’’N q tlsequ = 41 , q tlsequ code = 32 549 ,’’’’’’’’’’’’N(* q case = 42 , *) q esc case = 32 544 ,’’’’’’’’’’’’ q plus = 43 ,’’ q minus = 44 ,’’ q mult = 45 ,’’ q int div = 46 ,’’ q real div = 47 ,’’ q equal = 48 ,’’ q lessequal = 49 ,’’N q ulseq = 50 , q ulseq code = 21 504 ,’’’’’’’’’’’’N q pdadd = 51 , q pdadd code = 32 653 ,’’’’’’’’’’’’N q ppsub = 52 , q ppsub code = 32 654 ,’’’’’’’’’’’’N q dimov = 53 , q dimov code = 32 655 ,’’’’’’’’’’’’N q idmov = 54 , q idmov code = 32 656 ;’’’’’’’’’’’’.INT CONST q make false code :: - 1 022 , ’’’’’. q longa subs code :: - 159 ,’’’’’’. q penter code :: - 511 ;’’’’’’. (***** Deklaration *****) ’.PROC declare (OPN VAR operation) : ’’’’’’’’’’’. operation.kind := proc op ;’’’’’’’’’’’’’’’. get module nr (operation.mod nr) ; ’’’’’’’. operation.top of stack := 0 ’’’’’’’’’’’’’’ENDPROC declare ; ’’’’’’’’’’’’NPROC declare (TEXT CONST name, INT CONST first, params, OPN VAR operation) : ’ declare (operation) ;’’’’’> entry into name and pt table if necessary ; ’’’’’’’’’’’’’’ enter params ; ’’’’’’’’’’’ enter result ; ’’’’’’’’’’’ enter module number . ’’’’.entry into name and pt table if necessary : ’’> declare object (name, nt link, permanent pointer) . ’’’’’’enter params : ’’’’’’’’’’’’’’’ field pointer := first ;’’. FOR index FROM 1 UPTO params REP’’’’’’’’’’> enter param (param field [field pointer]) ;’’’’’’’’’’’’. NEXTPARAM field pointer ’’’’’’’’’’’’’’’enter result : ’’’’’’’’’’’’’’’N enter param (param field[field pointer].type, permanent proc op) .’’’’’’’’enter module number : ’’’’’’’’. put next permanent (operation.mod nr)’’’’’ENDPROC declare ; ’’’’’’’’’’’’>PROC enter param (PARAMDESCRIPTOR CONST param) :’’’’’’’’’’’’’’ IF param.access = const > THEN enter param (param.type, permanent param const)’ ELIF param.access = var ’’> THEN enter param (param.type, permanent param var)’’’. ELSE errorstop ("Unknown Access")’’’’’’’’’ENDPROC enter param ;’’’’’’’’’NPROC enter param (DTYPE CONST type, INT CONST permanent mode) :’’’’’’’’’’’’’’’ unsigned arithmetic ;’’’’’. SELECT type class (type) OF’’’’’’’’’’’’’’’N CASE 0, 1, 2 : put next permanent (CONCR(type) + permanent mode)’’’’’’> OTHERWISE errorstop ("Illegal Type")’’’’’’’’’’’’’ENDPROC enter param ;’’’’’’’’’. (***** Definition *****) ’PROC define (OPN VAR opn) : ’’> IF NOT module open THEN errorstop (module not opened)’’’’’N ELSE proc head (opn.mod nr, opn.top of stack)’’’’’’’’’’ENDPROC define ; ’’’’’’’’’’’’’NPROC set length of local storage (OPN VAR opn, INT CONST size) :’’’’’’’’’’’’’’> IF size < 0 OR size > local address limit’’’’’’’’’’’’’’’. THEN errorstop (address overflow)’’’’ ELIF opn.top of stack = 0’. THEN errorstop (define missing)’’’’’’ ELIF opn.kind <> proc op’’. THEN errorstop (proc op expected)’’’’> set length (opn.top of stack, size + eumel0 stack offset)’.ENDPROC set length of local storage ; ’’’’’’’’>PROC define (OPN VAR operation, INT CONST size) : ’’’’’’’’’’’’ define (operation) ; ’’’’’> set length of local storage (operation, size)’’’’’’’’’’’’’ENDPROC define ; ’’’’’’’’’’’’’. (***** Identifikation *****) >INT VAR counter, result index, result type repr;’’’’’’’’’’’’’’NPROC identify (TEXT CONST name, INT CONST first, params, OPN VAR operation,’’’. BOOL VAR object exists) :’’’’’’ find result entry ; ’’’’’’ to object (name) ;’’’’’’’’> IF found THEN first fit and leave if found FI ; ’’’’’’’’’> IF eumel0 THEN identify eumel0 instruction ’’’’’’’’’’’’’’’. ELSE yield undefined operation ’find result entry : ’’’’’’’’’’ result index := first; ’’’ counter := 0 ;’’’’’’’’’’’’. WHILE counter < params REP ’’’’’’’’’’’’’’’. NEXTPARAM result index ; ’’’’’’’’’’’’’ counter INCR 1’’’’’’’’. check on param field exceeded .’’’’’’’’’’’.check on param field exceeded :’’’’’’’’’’’’’’’. IF result index > size of param field’’’’’. THEN errorstop (param field exceeded) ’yield undefined operation :’’’. declare (result index, undefined type) ;’’. apply (result index, nop) ;’’’’’’’’’’’’’’’ object exists := FALSE .’’first fit and leave if found :. WHILE yet another procedure exists REP ’’’> check one procedure and leave if match ; ’’’’’’’’’’’’’ next procedure ’’’’’’’.yet another procedure exists : ’’’’’’’’’’’’’’’ permanent pointer <> 0 . ’.check one procedure and leave if match: ’’’’’’> param link := permanent pointer + wordlength ; ’’’’’’’’’’’. set end marker if end of list ;’’’’’’’’’’’ counter := params ; ’’’’’’ field pointer := first ;’’. IF end of params AND counter = 0 ’’’’. THEN procedure found’’’’’’’’’’’’’’. ELIF end of params OR counter = 0 ’’’’> THEN LEAVE check one procedure and leave if match . ELSE check next param ’’’’’’’’’’’’check next param : ’’’’’’’’’’’. get type and mode (CONCR(pt type)) ;’’’’’’. IF same types THEN set param mode ; ’’’’’’. field pointer INCR 1 ;’. param link INCR 1 ;’’’’> set end marker if end of list ;’’’’’’’’. counter DECR 1 ; ’’’’’’N ELSE LEAVE check one procedure and leave if match ’’’’’’’’’’.same types : (* inline version ! *)’’’’’’’’’’’ equal types .’’’’’’’’’’’’’set param mode : ’’’’’’’’’’’’’> param field [field pointer].access := mode . ’’’’’’’’’’’’’procedure found : ’’’’’’’’’’’’ get result ; ’’’’’’’’’’’’’. operation.kind := proc op ; ’’’’’’’’’’’’. operation.mod nr := module number ; ’’’’’’. operation.top of stack := 0 ;’’’’’’’’’’’’’ object exists := TRUE ;’’’ LEAVE identify . ’’’’’’’’’. get type and mode (result type) ; ’’’’’’’’. declare (result index, mode) .’’’’’’’’’’’’module number :’’’’’’’’’’’’’’’ cdbint (param link + 1) . . CONCR (param field [resultöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö index].type) .’> eumel0 opn.mod nr := link (eumel 0 opcodes, name) ; ’’’’’’ eumel0 opn.mod nr <> 0 .’’.identify eumel 0 instruction : ’’’’’’’’’’’’’’’. init result type with void ; ’’’’’’’’’’’’’. CONCR (operation) := CONCR (eumel0 opn) ;’> object exists := check params and set result ;’’’’’’’’’’’’> declare (result index, DTYPE:(result type repr)) ;’’’’’’’’. declare (result index, const) .’’’’’’’’’’’init result type with void :’’. result type repr := void id . ’’’’’’’’’’’’check params and set result :’ SELECT operation.mod nr OFN CASE q return, q false return, q true return : no params ’’’’’’’’’’’’’’N CASE q inc1, q dec1 : one int param yielding void ’’’’’’’’’’’’> CASE q pproc, q pp, q ln : one param yielding void’> CASE q test : one param yielding bool’N CASE q clear, q ppv : one int or bool param yielding void ’’’’N CASE q make false : one bool param yielding void ’’’’’’’’’’’N CASE q move : two int or bool params yielding void ’’’N CASE q compl int, q inc, q dec : two int params yielding void’’’’’’’’’’N CASE q compl real, q fmove : two real params yielding void ’’’’’’’’’’N CASE q equ, q lsequ, q ulseq : two int params yielding bool ’’’’’’’’’’’N CASE q fequ, q flsequ : two real params yielding bool ’’’’’’’’’’N CASE q tequ, q tlsequ : two text params yielding bool’’’’’’’’’’’N CASE q tmove : two text params yielding void’’’’’’’’’’’. CASE q accds, q ref, q movim,’’’’’’’’’’> q dimov, q idmov : two params yielding void. CASE q add, q sub, q esc mult,’’’’’’’’’N q esc div, q esc mod : three int params yielding void’’’’’’’’’’N CASE q fadd, q fsub, q fmult, q fdiv : three real params yielding void’. CASE q select, q movex, q alias ds,’’’’> q pdadd, q ppsub : three params ’’’’’’’’’’’> CASE q subscript : five params ’’’’’’’’’’’’N CASE q plus, q mult : two intreals yielding intreal’’’’’’’’’’’> CASE q minus : monadic or dyadic minus’N CASE q int div : two int params yielding int ’’’’’’’’’’’’N CASE q real div : two real params yielding real’’’’’’’’’’’N CASE q equal, q lessequal : two intrealtexts yielding bool’’’’’’’’’’. OTHERWISE FALSE’’’ ENDSELECT .’’’’’’’’’’’’’’’ params = 0 . ’’’’’’’’’’’’’one int param yielding void : . p1 void (int type, first, params) .’’’’’’’one param yielding void :’’’’’ params = 1 . ’’’’’’’’’’’’’one param yielding bool :’’’’’> IF params = 1 THEN result type repr := bool id ; ’’’’’’’’’ TRUE ’’ ELSE FALSE’’.one int or bool param yielding void :’’’’’’’’’N p1 void (int type, first, params) OR p1 void (bool type, first, params) . one bool param yielding void :. p1 void (bool type, first, params) . ’’’’’.two int or bool params yielding void : ’’’’’’’. p2 (int type, first, params, void id) OR’. p2 (bool type, first, params, void id) .’’two int params yielding void :. p2 (int type, first, params, void id) .’’’.two real params yielding void :’’’’’’’’’’’’’’’. p2 (real type, first, params, void id) .’’.two text params yielding void :’’’’’’’’’’’’’’’. p2 (text type, first, params, void id) .’’two int params yielding bool :. p2 (int type, first, params, bool id) .’’’.two real params yielding bool :’’’’’’’’’’’’’’’. p2 (real type, first, params, bool id) .’’.two text params yielding bool :’’’’’’’’’’’’’’’. p2 (text type, first, params, bool id) .’’two params yielding void :’’’’ params = 2 . ’’’’’’’’’’’’’.three int params yielding void :’’’’’’’’’’’’’’. p3 void (int type, first, params) .’’’’’’’.three real params yielding void :’’’’’’’’’’’’’. p3 void (real type, first, params) .’’’’’’three params : params = 3 .’’’’’’’’’’’’’’five params :  params = 5 . ’’’’’’’’’’’’’.two intreals yielding intreal :’’’’’’’’’’’’’’’N two int params yielding int OR two real params yielding real .’’’’’’’’’’’’monadic or dyadic minus :’’’’’> IF params = 2 THEN two intreals yielding intreal’’’’’’’’. ELIF params = 1 THEN monadic minus’’’’’’’’ ELSE FALSEmonadic minus :’’’’’’’’’’’’’’’> result type repr := CONCR (param field[first].type) ;’’’’’> result type repr = int id OR result type repr = real id .’.two intrealtexts yielding bool :’’’’’’’’’’’’’’N two int params yielding bool OR two real params yielding bool OR’’’’’’’’’’. two text params yielding bool .’’’’’’’’’’’two int params yielding int :’. p2 (int type, first, params, int id) .’’’’.two real params yielding real :’’’’’’’’’’’’’’’. p2 (real type, first, params, real id)’’’’ENDPROC identify ; ’’’’’’’’’’’NBOOL PROC p1 void (DTYPE CONST requested type, INT CONST first, param nr) :’’’> param nr = 1 AND param type is requested plain type . ’’’’.param type is requested plain type :’’’’’’’’’’> CONCR (param field [first].type) = CONCR (requested type) ENDPROC p1 void ;’’’’’’’’’’’’’NBOOL PROC p2 (DTYPE CONST requested type, INT CONST first, param nr,’’’’’’’’’’. INT CONST result type) :’’’’’’’’> IF param nr = 2 AND param types equal requested plain type. THEN result type repr := result type ;’ TRUE’’’’’’’’’’’’’’ ELSE FALSE’’’’’’’’’’’’’.param types equal requested plain type :’’’’’’N CONCR (param field [first] .type) = CONCR (requested type) AND ’’’’’’’’’’N CONCR (param field [first+1].type) = CONCR (requested type)’’’’’’’’’’’’’’’NBOOL PROC p3 void (DTYPE CONST requested type, INT CONST first, param nr) :’’’. param nr = 3 AND param types ok .’’’’’’’’’param types ok :’’’’’’’’’’’’’’. FOR index FROM first UPTO first+2 REP’’’’’N IF different param types THEN LEAVE p3 void WITH FALSE FI ’’’’’’’’’’’’’different param types :’’’’’’’> CONCR (param field [index].type) <> CONCR (requested type)ENDPROC p3 void; ’’’’’’’’’’’’’. (***** Applikation *****) ’NINT VAR address representation, left repr, right repr, result repr;’’’’’’’’’’’>PROC apply (INT CONST first, nr of params, OPN CONST opn) : ’’> IF NOT module open THEN errorstop (module not opened) FI ; SELECT opn.kind OF ’’’’’’’> CASE eumel 0 : generate eumel0 instruction ’’’’’’’’. CASE proc op : call operation ’’’’’. CASE param proc : call param proc’’’’’ CASE nil :’’’’’> OTHERWISE errorstop (illegal kind) ’’’’’’’’’’’ ENDSELECT .’’’’’’’’’’’’’’’call operation :’’’’’’’’’’’’’’N push params if necessary (first, nr of params, opn.mod nr) ; ’’’’’’’’’’’’’ call (opn.mod nr) .’’’’’’’call param proc : ’’’’’’’’’’’’. result addr.kind := local ref ;’’’’’’’’’’’. result addr.value := opn.mod nr ;’’’’’’’’’. INT CONST module nr := REPR result addr ;’N push params if necessary (first, nr of params, module nr) ;’’’’’’’’’’’’’’’ call param (module nr) .’’generate eumel0 instruction : . SELECT real nr of params OF ’’’’’’’’’’’’’’. CASE 0 : p0 instruction ’’’’’’’’’’’’’’. CASE 1 : apply p1 (opn, first addr) ’’> CASE 2 : apply p2 (opn, first addr, second addr)’’’’’’^ CASE 3 : apply p3 (opn, left type, first addr, second addr, third addr) ’’’’’’’’’’’’’’. CASE 5 : subscript operation’’’’’’’’’’N OTHERWISE errorstop (wrong nr of params + text (nr of params)) ’’’’’’’ ENDSELECT öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. ’’’’’’’’’’’’’’real nr of params :’’’’’’’’’’’> IF operator denotation THEN nr of params + 1’’’’’’’’’’’’’’. ELSE nr of params’’operator denotation :’’’’’’’’’> opn.mod nr >= q plus AND opn.mod nr < q ulseq .’’’’’’’’’’’p0 instruction :’’’’’’’’’’’’’’> IF opn.mod nr = q return THEN s0 (q return code) ’N ELIF opn.mod nr = q true return THEN s0 (q true return code)’’’’’’’’’’’’’N ELIF opn.mod nr = q false return THEN s0 (q false return code)’’’’’’’’’’’’N ELSE errorstop (wrong nr of params +’’’’’N mnemonic (opn)) ’’’’’’’’’subscript operation :’’’’’’’’’. IF opn.mod nr = q subscript ’’’’’’’’’’’’’’ THEN subscription’’’’’’N ELSE errorstop (wrong nr of params + text (nr of params))’’’’’’’’’’’’’’subscription :N ADDRESS CONST element length :: param field [first+2].addr ,’’’’’’’’’’’’’’N limit :: param field [first+3].addr ;’’’’’’’’’’’’’’ check on immediates ;’’’’’. IF element length.value < 1024’’’’’’’’’’’’> THEN s0 (q subscript code + element length.value)’’’’’’. ELSE s0 (q longa subs code) ;’’’’’’’’’’. s0 (element length.value)’’’’’’’’’> s3 (limit.value - 1, subs index, base addr, subs result) .check on immediates :’’’’’’’’’> IF element length.kind <> immediate value OR’’’’’’’’’’’’’’. limit.kind <> immediate value’’’’’’’’’’. THEN errorstop (no immediate value)’’’’>subs index : REPR param field [first+1].addr .’’’’’’’’’’’’’’’.base addr : REPR param field [first].addr .’>subs result : REPR param field [first+4].addr .’’’’’’’’’’’’’’’ param field [first].addr . param field [first].type .second addr : . param field [nextparam (first)].addr .’’’’> param field [nextparam(nextparam(first))].addr’’’’’’’’’’’’ENDPROC apply ;’’’’’’’’’’’’’’’NPROC push params if necessary (INT CONST first, nr of params, mod nr) : ’’’’’’ init param push (mod nr) ; field pointer := first ;’’. IF nr of params > 0 THEN push params FI ;’. push result if there is one .’’’’’’’’’’’’’push params : . FOR index FROM 1 UPTO nr of params REP ’’’. apply p1 (push code, param addr) ; ’’’. NEXTPARAM field pointer’’’’’’’’’’’’’’’. param field [field pointer].push opn . ’’’. param field [field pointer].addr . ’’’’’’’push result if there is one :  IF push result necessary ’N THEN push result address (REPR param field [field pointer].addr)’’’’’’’push result necessary :’’’’’’’> param field [field pointer].push opn.kind <> nil AND ’’’’’N is not void bool or undefined (param field [field pointer].type) ’’’’’’’’’.ENDPROC push params if necessary ;’’’’’’’’’’’’>PROC apply p1 (OPN CONST opn, ADDRESS CONST addr) : ’’’’’’’’’’> IF opn.mod nr = q ln THEN generate line number ’’’’’’> ELIF opn.mod nr = q pproc THEN push module nr’’’’’’’’’’’’’> ELSE gen p1 instruction’’’’’’’’’gen p1 instruction : ’’’’’’’’’. address representation := REPR addr ;’’’’’ SELECT opn.mod nr OF ’’’’’N CASE q inc1 : t1 (q inc1 code, address representation)’’’’’’’’’’’’’’’N CASE q dec1 : t1 (q dec1 code, address representation)’’’’’’’’’’’’’’’N CASE q clear : t1 (q clear code,address representation)’’’’’’’’’’’’’’’N CASE q test : test bool object (address representation)’’’’’’’’’’’’’’> CASE q pp : push param (address representation)’’’’> CASE q ppv : s1 (q ppv code, address representation)N CASE q make false : s1 (q make false code, address representation)’’’’N OTHERWISE errorstop (wrong nr of params + mnemonic (opn))’’’’’’’’’’’’’ ENDSELECT .’’’’’’’’’’’’’’’generate line number :’’’’’’’’> IF addr.kind = immediate value THEN mark line (addr.value)N ELSE errorstop (no immediate value)’’’’’’’’push module nr : ’’’’’’’’’’’’’> IF addr.kind = module nr THEN push param proc (addr.value)> ELSE errorstop (no mod nr)’’’’’’’ENDPROC apply p1; ’’’’’’’’’’’’NPROC apply p2 (OPN CONST opn, ADDRESS CONST left addr, right addr): ’’’’’’’’’’. left repr := REPR left addr ;’’’’’’’’’’’’’> IF opn.mod nr = q movim THEN move immediate’’’’’’’’’’’’’’’> ELSE gen p2 instruction ’’’’’’’’’’gen p2 instruction : ’’’’’’’’’. right repr := REPR right addr ;’’’’’’’’’’’ SELECT opn.mod nr OF ’’’’’N CASE q move : t2 (q move code, right repr, left repr)’’’’’’’’’’’N CASE q inc : t2 (q inc code, right repr, left repr) ’’’’’’’’’’’N CASE q dec : t2 (q dec code, right repr, left repr) ’’’’’’’’’’’N CASE q equ : compare (q equ code, left repr, right repr) ’’’’’’N CASE q lsequ : compare (q lsequ code, left repr, right repr) ’’’’N CASE q ulseq : compare (q ulseq code, left repr, right repr)’’’’’N CASE q fmove : t2 (q fmove code, right repr, left repr)’’’’’’’’’’N CASE q flsequ : compare (q flsequ code, left repr, right repr) ’’’N CASE q tmove : t2 (q tmove code, right repr, left repr)’’’’’’’’’’N CASE q tequ : compare (q tequ code, left repr, right repr) ’’’’’N CASE q compl int : s2 (q compl int code, left repr, right repr)’’’’’’N CASE q compl real : s2 (q compl real code, left repr, right repr)’’’’’N CASE q fequ : compare (q fequ code, left repr, right repr) ’’’’’N CASE q tlsequ : compare (q tlsequ code, left repr, right repr) ’’’N CASE q accds : t2 (q access ds code, left repr, right repr)’’’’’’N CASE q ref : t2 (q ref code, left repr, right repr) ’’’’’’’’’’’N CASE q dimov : s2 (q dimov code, left repr, right repr)’’’’’’’’’’N CASE q idmov : s2 (q idmov code, left repr, right repr)’’’’’’’’’’N OTHERWISE errorstop (wrong nr of params + mnemonic (opn))’’’’’’’’’’’’’ ENDSELECT .’’’’’’’’’’’’’’’move immediate :’’’’’’’’’’’’’’. IF right addr.kind = immediate value ’’’’’. THEN s0 (q esc movim code) ;’’’’’’’’’’’. s1 (right addr.value, left repr)’’. ELSE errorstop (no immediate value)’’’’ENDPROC apply p2; ’’’’’’’’’’’’>PROC apply p3 (OPN CONST opn, DTYPE CONST left dtype, ’’’’’’’’N ADDRESS CONST left addr, right addr, result addr ):’’’’’’’’’’’’. result repr := REPR result addr ;’’’’’’’’’N IF opn.mod nr = q pdadd THEN select with dint; LEAVE apply p3’’’’’’’’’’^ ELIF opn.mod nr = q select THEN gen select instruction; LEAVE apply p3 FI ;’’’’’’’’’’’’’’’. left repr := REPR left addr ; ’’’’’’’’’’> IF opn.mod nr = q movex THEN gen long move’’’’’’’’’’’> ELIF opn.mod nr = q alias ds THEN alias dataspace’’’’’’’’’> ELSE gen p3 instruction’’’’’’gen long move :’’’’’’’’’’’’’’’. IF right addr.kind = immediate value’’’’’’N THEN long move (left repr, result repr, right addr.value)’’’’’’’’’’’’’’. ELSE errorstop (no immediate value)’’’’alias dataspace :’’’’’’’’’’’’’. IF right addr.value = immediate value’’’’’. THEN s0 (q alias ds code) ;’’’’’’’’’’’’> s2 (right addr.value, result repr, left repr)’’’’’. ELSE errorstop (no immediate value)’’’’gen select instruction :’’’’’’. IF right addr.kind = immediate value ’’’’’ THEN IF different basesN THEN access external (left addr.value, right addr.value)’’’’’’’> ELSE t1 (q select code, REPR left addr) ;’’’’’’> öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö s1 (right addr.value, result repr)’’’’’’’’ FI. ELSE errorstop (no immediate value)’’’’select with dint :’’’’’’’’’’’’. right repr := REPR right addr ;’’’’’’’’’’’> IF different bases THEN access external packet’’’’’’’’’’’’. ELSE simple access’’’’’different bases :’’’’’’’’’’’’’N left addr.kind = p base AND left addr.value <> packet base .’’’’’’’’’’’’’’simple access :’’’’’’’’’’’’’’’N s3 (q pdadd code, REPR left addr, right repr, result repr) .’’’’’’’’’’’’’’access external packet :’’’’’’> access external (left addr.value, global address zero) ;’’N s3 (q pdadd code, REPR REF result addr, right repr, result repr) .’’’’’’’’gen p3 instruction :’’’’’’’’’’. right repr := REPR right addr ; ’’’’’’’’’ SELECT opn.mod nr OF ’’’’’. CASE q add : int add’’’. CASE q sub : int sub’’’. CASE q fadd : real add ’. CASE q fsub : real sub ’. CASE q fmult : real mult . CASE q fdiv, q real div : real div ’. CASE q esc mult : int mult ’. CASE q esc div, q int div : int div ’’. CASE q esc mod : int mod ’’> CASE q plus : int real add’’’’’’’’’’’’’’> CASE q minus : int real sub’’’’’’’’’’’’’’> CASE q mult : int real mult’’’’’’’’’’’’’N CASE q equal, q lessequal : compare (comp code, left repr, right repr)N CASE q ppsub : distance between two objects’’’’’’’’’’’’’’N OTHERWISE errorstop (wrong nr of params + mnemonic (opn))’’’’’’’’’’’’’ ENDSELECT . ’’’’’’’’’’’’’’Nint add : compute (q add code, left repr, right repr, result repr) . ’’’’’’’Nint sub : compute (q sub code, left repr, right repr, result repr) . ’’’’’’’Nreal add : compute (q fadd code, left repr, right repr, result repr) . ’’’’’’Nreal sub : compute (q fsub code, left repr, right repr, result repr) . ’’’’’’Nreal mult : compute (q fmult code, left repr, right repr, result repr) . ’’’’’Nreal div : compute (q fdiv code, left repr, right repr, result repr) . ’’’’’’Nint mult : s3 (q esc mult code, left repr, right repr, result repr) . ’’’’’’’Nint div : s3 (q esc div code, left repr, right repr, result repr) . ’’’’’’’’Nint mod : s3 (q esc mod code, left repr, right repr, result repr) .’’’’’’’’’int real add : ’’’’’’’’’’’’’’’. IF left type = int id THEN int add’’’’’’’’. ELSE real add’’’’’’’int real sub :. IF left type = int id THEN int sub ’’’’’’’. ELSE real sub’’’’’’int real mult :’’’’’’’’’’’’’’’. IF left type = int id THEN int mult’’’’’’’. ELSE real mult’’’’’’ SELECT left type OF’’’’’’’N CASE int id : IF opn.mod nr = q equal THEN q equ ELSE q lsequ FI ’N CASE real id : IF opn.mod nr = q equal THEN q fequ ELSE q flsequ FI’N CASE string id : IF opn.mod nr = q equal THEN q tequ ELSE q tlsequ FI’> OTHERWISE errorstop (type error); q equ’’’’’’’’’’’’’’’ ENDSELECT .’’’’’’’’’’’’’’’.left type : CONCR (left dtype) .’’’’’’’’’’’’’’distance between two objects :> s3 (q ppsub code, left repr, right repr, result repr)’’’’’ENDPROC apply p3; ’’’’’’’’’’’’>PROC access external (INT CONST old base, offset) :’’’’’’’’’’’. s0 (q penter code + old base) ;’’’’’’’’’’’. t2 (q ref code, offset, result repr) ;’’’’. s0 (q penter code + packet base)’’’’’’’’’’ENDPROC access external ;’’’’’. (***** Modul *****) ’’’’BOOL VAR module open ;’’’’’’’’.init opn section : ’’’’’’’’’’ module open := FALSE .;’’’PROC begin module : ’’’’’’’’’’> IF module open THEN errorstop (nested module) ’’’’’’’’’’’’. ELSE begin modul ; ’’’’’’’’. module open := TRUE ’’ENDPROC begin module ; ’’’’’’’PROC end module : ’’’’’’’’’’’’ IF NOT module open’’’’’’’’. THEN errorstop (module not opened) ’’’’ ELSE end modul ;’’’’’’’. module open := FALSE’’’’’’’’’’’’’’ENDPROC end module ; ’’’’’’’’’.TEXT PROC dump (OPN CONST operation) : ’’’’’’’N IF operation.kind = proc op THEN " PROC" + text (operation.mod nr, 5) ’’N ELIF operation.kind = eumel 0 THEN " EUMEL0: " + mnemonic (operation)’’’’’> ELSE " undef. Opn" ’’’’’’’’’ENDPROC dump ; ’’’’’’’’’’’’’’’PROC begin modul :’’’’’’’’’’’’ EXTERNAL 10073’’’’’’’’’’’’ENDPROC begin modul ; ’’’’’’’’PROC end modul :’’’’’’’’’’’’’’ EXTERNAL 10011’’’’’’’’’’’’ENDPROC end modul ; ’’’’’’’’’’>PROC proc head (INT VAR mod nr, top of stack) :’’’’’’’’’’’’’’’ EXTERNAL 10012’’’’’’’’’’’’ENDPROC proc head ; ’’’’’’’’’’>PROC set length (INT CONST top of stack, size) : ’’’’’’’’’’’’’ EXTERNAL 10013’’’’’’’’’’’’ENDPROC set length ; ’’’’’’’’’.PROC get module nr (INT VAR module nr) : ’’’’’ EXTERNAL 10016’’’’’’’’’’’’ENDPROC get module nr ; ’’’’’’NPROC compute (INT CONST op code, l addr, r addr, result address) :’’’’’’’’’’’’ EXTERNAL 10017’’’’’’’’’’’’ENDPROC compute ; ’’’’’’’’’’’’>PROC compare (INT CONST op code, l addr, r addr) :’’’’’’’’’’’’ EXTERNAL 10018’’’’’’’’’’’’ENDPROC compare ; ’’’’’’’’’’’’.PROC long move (INT CONST to, from, length) :’ EXTERNAL 10019’’’’’’’’’’’’ENDPROC long move ;’’’’’’’’’’’.PROC call (INT CONST mod nr) : ’’’’’’’’’’’’’’’ EXTERNAL 10022’’’’’’’’’’’’ENDPROC call ; ’’’’’’’’’’’’’’’.PROC call param (INT CONST mod nr) : ’’’’’’’’’ EXTERNAL 10023’’’’’’’’’’’’ENDPROC call param ; ’’’’’’’’’.PROC push param (INT CONST addr) : ’’’’’’’’’’’ EXTERNAL 10024’’’’’’’’’’’’ENDPROC push param ; ’’’’’’’’’.PROC push param proc (INT CONST mod nr) : ’’’’ EXTERNAL 10025’’’’’’’’’’’’ENDPROC push param proc ; ’’’’.PROC init param push (INT CONST mod nr) : ’’’’ EXTERNAL 10026’’’’’’’’’’’’ENDPROC init param push ; ’’’’.PROC push result address (INT CONST addr) : ’’ EXTERNAL 10027’’’’’’’’’’’’ENDPROC push result address ; .PROC test bool object (INT CONST addr) : ’’’’’ EXTERNAL 10192’’’’’’’’’’’’ENDPROC test bool object ; ’’’.PROC mark line (INT CONST line number) : ’’’’’ EXTERNAL 10030’’’’’’’’’’’’ENDPROC mark line ; ’’’’’’’’’’PROC s0 (INT CONST op code) :  EXTERNAL 10038’’’’’’’’’’’’.PROC s1 (INT CONST op code, addr) : ’’’’’’’’’’ EXTERNAL 10039’’’’’’’’’’’’.PROC s2 (INT CONST op code , addr1, addr2) : ’ EXTERNAL 10040’’’’’’’’’’’’>PROC s3 (INT CONST op code, addr1, addr2, addr3) : ’’’’’’’’’’’ EXTERNAL 10041’’’’’’’’’’’’.PROC t1 (INT CONST op code, addr) : ’’’’’’’’’’ EXTERNAL 10042’’’’’’’’’’’’.PROC t2 (INT CONST op code, addr1, addr2) : ’’ EXTERNAL 10043’’’’’’’’’’’’N(**************************************************************************) ’N(* *) ’N(* 9. Speicherverwaltung 03.06.1986 *) ’N(* *) ’N(* Ablage der Paketdaten *) ’N(* *) ’N(**************************************************************************) ’INT VAR address value;’’’’’’’’.INT CONST data allocation by coder := 1 , ’’’. data allocation by user := 2 ; ’’’LET not initialized = 0 ,. wrong mm mode = "Wrong MM Mode" ,’’> define on non global = "Define for GLOB only" ,’’’’’’’’’’’. text too long = "TEXT too long" ;’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö.TEXT VAR const buffer :: point line ;’’’’’’’’’..reset memory management mode :’’’’’’’’’’’’’’’> memory management mode := not initialized . ;’’’’’’’’’’’’.PROC reserve storage (INT CONST size) : ’’’’’’> IF memory management mode <> data allocation by user ’’’’’. THEN errorstop (wrong mm mode) ’’’’’’’’. allocate var (address value, size) ; ’’’’’. memory management mode := not initialized’ENDPROC reserve storage ; ’’’’>PROC allocate variable (ADDRESS VAR addr, INT CONST size) : ’’> IF memory management mode <> data allocation by coder ’’’’. THEN errorstop (wrong mm mode) ’’’’’’’’. allocate var (addr.value, size) ;’’’’’’’’’ addr.kind := global’’’’’’’ENDPROC allocate variable ; ’’>PROC allocate denoter (ADDRESS VAR addr, INT CONST value) :’’’> IF memory management mode <> data allocation by coder ’’’’. THEN errorstop (wrong mm mode) ’’’’’’’’. allocate int denoter (addr.value) ;’’’’’’’. put data word (value, addr.value) ;’’’’’’’ addr.kind := global’’’’’’’ENDPROC allocate denoter ; ’’’>PROC allocate denoter (ADDRESS VAR addr, REAL CONST value) :’’> IF memory management mode <> data allocation by coder ’’’’. THEN errorstop (wrong mm mode) ’’’’’’’’. allocate real denoter (addr.value) ;’’’’’’ addr.kind := global ;’’’’’ define (addr, value)’’’’’’ENDPROC allocate denoter ; ’’’>PROC allocate denoter (ADDRESS VAR addr, TEXT CONST value) :’’> IF memory management mode <> data allocation by coder ’’’’. THEN errorstop (wrong mm mode) ’’’’’’’’N allocate text denoter (addr.value, (LENGTH value+1) DIV 2 + 2) ; ’’’’’’’’’ addr.kind := global ;’’’’’ skip heaplink; ’’’’’’’’’’’ define (addr, value) ; ’’’ reset heaplink .’’’’’’’’’’skip heaplink : ’’’’’’’’’’’’’’ addr.value INCR 1 .’’’’’’’reset heaplink :’’’’’’’’’’’’’’ addr.value DECR 1’’’’’’’’’ENDPROC allocate denoter ; ’’’>PROC allocate denoter (ADDRESS VAR addr, DINT CONST value) :’’> IF memory management mode <> data allocation by coder ’’’’. THEN errorstop (wrong mm mode) ’’’’’’’’> allocate dint denoter (addr.value, value) ;’’’’’’’’’’’’’’’ addr.kind := global’’’’’’’ENDPROC allocate denoter ;’’’’NPROC allocate dint denoter (INT VAR addr offset, DINT CONST value) :’’’’’’’’’’. adjust to an even address if necessary ;’’. put data word (value.low, addr offset) ;’’. allocate int denoter (address value) ;’’’’> put data word (value.high, address value) .’’’’’’’’’’’’’’’.adjust to an even address if necessary :’’’’’’. allocate int denoter (addr offset) ;’’’’’’N IF (addr offset AND 1) <> 0 THEN allocate int denoter (addr offset) FI’’’’.ENDPROC allocate dint denoter ; ’’’’’’’’’’’’’’>PROC define (ADDRESS CONST addr, INT CONST value) : ’’’’’’’’’’ IF addr.kind <> global ’’’. THEN errorstop (define on non global) ’. put data word (value, addr.value) ’’’’’’’’ENDPROC define ; ’’’’’’’’’’’’’>PROC define (ADDRESS CONST addr, DINT CONST value) : ’’’’’’’’’ IF addr.kind <> global’’’’. THEN errorstop (define on non global) ’. put data word (value.low , addr.value);’’’. put data word (value.high, addr.value + 1)ENDPROC define ;’’’’’’’’’’’’’’>PROC define (ADDRESS CONST addr, REAL CONST value) : ’’’’’’’’’ IF addr.kind <> global ’’’. THEN errorstop (define on non global) ’. replace (const buffer, 1, value) ; ’’’’’’’. address value := addr.value ;’’’’’’’’’’’’’. FOR index FROM 1 UPTO 4 REP ’’’’’’’’’’’’’’N put data word (const buffer ISUB index, address value) ;’’’’’’’’’’’’’’ address value INCR 1’’ENDPROC define ; ’’’’’’’’’’’’’>PROC define (ADDRESS CONST addr, TEXT CONST value) : ’’’’’’’’’N IF addr.kind <> global THEN errorstop (define on non global) ’’’’’’’’’’’> ELIF LENGTH value > 255 THEN errorstop (text too long)’’’. address value := addr.value ;’’’’’’’’’’’’’. const buffer := code (LENGTH value) ; ’’’’ const buffer CAT value ; ’ const buffer CAT ""0"" ;’’> FOR index FROM 1 UPTO LENGTH const buffer DIV 2 REP ’’’’’’N put data word (const buffer ISUB index, address value) ;’’’’’’’’’’’’’’ address value INCR 1’’ const buffer := point lineENDPROC define ; ’’’’’’’’’’’’’>PROC allocate var (INT VAR addr, INT CONST length) : ’’’’’’’’’ EXTERNAL 10033’’’’’’’’’’’’ENDPROC allocate var ; ’’’’’’’.PROC allocate int denoter (INT VAR addr) : ’’’ EXTERNAL 10034’’’’’’’’’’’’ENDPROC allocate int denoter ;.PROC allocate real denoter (INT VAR addr) : ’’ EXTERNAL 10035 ’’’’’’’’’’’.ENDPROC allocate real denoter ;’’’’’’’’’’’’’’’>PROC allocate text denoter (INT VAR addr, INT CONST length) :  EXTERNAL 10036 ’’’’’’’’’’’.ENDPROC allocate text denoter ;’’’’’’’’’’’’’’’>PROC put data word (INT CONST value, INT CONST addr) :’’’’’’’’ EXTERNAL 10037’’’’’’’’’’’’ENDPROC put data word ; ’’’’’’N(**************************************************************************) ’N(* *) ’N(* 10. Inspector 28.10.1987 *) ’N(* *) ’N(**************************************************************************) ’>INT VAR line number, pattern length, begin of packet,’’’’’’’’’. last packet entry, indentation;’’’’’’’NTEXT VAR bulletin name, type and mode, pattern, buffer, dummy name;’’’’’’’’’’’.DATASPACE VAR bulletin ds :: nilspace ;’’’’’’’.packet name :N cdb text (cdb int(packet link + wordlength) + two word length) .’’’’’’’’’.packet entry :’’’’’’’’’’’’’’’ permanent pointer = 0 OR’> cdbint (permanent pointer) = permanent packet OR’’’’’’’’’N cdbint (permanent pointer + wordlength) = permanent packet .’’’’’’’’’’’’’.within editor :’’’’’’’’’’’’’’ aktueller editor > 0 . ;’.TEXT PROC type name (DTYPE CONST type) : ’’’’’ type and mode := "" ; ’’’’> IF CONCR (type) = void id THEN type and mode CAT "VOID"’’’N ELSE name of type (CONCR (type)) ’’’’’’’’’’’’’’’ type and mode’’’’’’’’’’’’’ENDPROC type name ; ’’’’’’’’’’.TEXT PROC dump (DTYPE CONST type) :’’’’’’’’’’’(* type and mode := "TYPE " ;. name of type (CONCR (type)) ; ’’’’’’’’’’’’ type and mode’’’’’’’’’’’’’N type name (type) (* aus KompatibilitŁtsgrŪnden zum 1.9.2 Coder / rr *)’ENDPROC dump ;.PROC name of type (INT CONST type) :’’’’’’’’’’ SELECT type OF’’’’. CASE void id :’’’’’’’’’’’> CASE int id : type and mode CAT "INT"’’’> CASE real id : type and mode CAT "REAL"’’> CASE string id : type and mode CAT "TEXT"’’> CASE bool id, bool result id : type and mode CAT "BOOL"’’N CASE dataspace id : type and mode CAT "DATASPACE"’’’’’’’’’’’’’> CASE row id : type and mode CAT "ROW "’’> CASE struct id : type and mode CAT "STRUCT"> OTHERWISE : complex type’’’’’’’’’’’’’’ ENDSELECT .’’’’’’’complex type : unsigned arithmetic ;’’’’> IF type > ptt limit THEN perhaps permanent struct or row’. ELSE get complex type.perhaps permanent struct or row :’’’’’’’’’’’’’> index := type + begin of pt minus ptt limit ;’’’’’’’’’’’’. mode := cdb int (index) MOD ptt limit ;’’> IF mode = permanent row THEN get permanent row ’’’’’> ELIF mode = permanent struct THEN get permanent struct’’’> ELSE type and mode CAT "-"’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööget complex type :’’’’’’’’’’’’> index := type + begin of permanent table ;’’’’’’’’’’’’’’’. IF is complex type THEN get name’’’’’’’’’> ELSE type and mode CAT "-"’’’’’’’’’’’’is complex type :’’’’’’’’’’’’’> permanent type definition mode = permanent type .’’’’’’’’N type and mode CAT cdb text (link to type name + two word length) .’’’’’’’link to type name :’’’’’’’’’’’. cdb int (index + three word length) .’’’’.permanent type definition mode :’’’’’’’’’’’’’’. cdb int (index + wordlength) .’’’’’’’’’’’get permanent row :’’’’’’’’’’’ INT VAR t; ’’’’’’’’’’’’’’. type and mode CAT "ROW " ;’’’’’’’’’’’’’’’> type and mode CAT text (cdb int (index + wordlength)) ;’’ type and mode CAT " " ;’’. param link := index + two wordlength ;’’’ get type and mode (t) ;’’ name of type (t) .’’’’’’’get permanent struct :’’’’’’’’. type and mode CAT "STRUCT ( ... )" ’’’’’’ENDPROC name of type ;’’’’’’’’.PROC help (TEXT CONST proc name) :’’’’’’’’’’’’ prep bulletin ;’’’’’’’’’’ prep help ;’’’’’’’’’’’’’’ scan (object name) ;’’’’’ next symbol (pattern) ;’’. packet link := end of permanent table ;’’. IF function = 0 THEN standard help’’’’’’’. ELSE asterisk help’’’’’’’. object name := compress (proc name) ;’’’’ INT VAR function :: 0 ;’’. INT CONST l :: LENGTH object name ;’’’’’’. IF l > 1 AND object name <> "**"’’’’’’’’’. THEN IF (object name SUB l) = "*"’’’’’. THEN function INCR 2 ;’’’’’’’’’> delete char (object name, l)’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’. IF (object name SUB 1) = "*"’’’’’. THEN function INCR 1 ;’’’’’’’’’> delete char (object name, 1)’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’> IF another asterisk THEN wrong function FI’’’’’’’another asterisk :’’’’’’’’’’’’. pos (object name, "*") <> 0 .’’’’’’’’’’’’wrong function :’’’’’’’’’’’’’’> errorstop ("unzulaessige Sternfunktion") .’’’’’’’’’’’’’’’standard help :’’’’’’’’’’’’’’’ to object (pattern) ;’’’’ IF found THEN display’’’’> ELSE error stop ("unbekannt: " + proc name)’’’’’ IF NOT packet entry’’’’’’. THEN WHILE permanent pointer <> 0 REP’> put name of packet if necessary ;’’’’’’’’’’’’> put specifications (pattern) ;’’’’’’’’’’’’’’’. next procedure’’’’’’’’’’’’’’’ ENDREP ;’’’’’’’’’. show bulletin file’’’’’’’’’’’’’’’.put name of packet if necessary :’’’’’’’’’’’’’> IF new packet THEN packet link := permanent pointer ;’’’’. find begin of packet ;. writeline (2) ;’’’’’’’. write packet name’’’’’find begin of packet :’’’’’’’’. packet link DECR wordlength’’’’’’’’’’. UNTIL begin of packet found PER .’’’’’’’’begin of packet found :’’’’’’’> cdb int (packet link) = permanent packet .’’’’’’’’’’’’’’’. permanent pointer < packet link .’’’’’’’’asterisk help :’’’’’’’’’’’’’’’> hash table pointer := begin of hash table ;’’’’’’’’’’’’’’. pattern length := LENGTH pattern - 1 ;’’’> list all objects in current hash table chain ;’’’’’’’’ next hash entry’’’’’’’. UNTIL end of hash table reached ENDREP ;’ show bulletin file .’’’’’.list all objects in current hash table chain :. nt link := hash table pointer ;’’’’’’’’’’. WHILE yet another nt entry REP’’’’’’’’’’’> permanent pointer := cdb int (nt link + wordlength) ;’> object name := cdb text (nt link + two word length) ;’. IF matching THEN into bulletin FI’’’’’> INT CONST p :: pos (object name, pattern) ;’’’’’’’’’’’’’’ SELECT function OF’’’’’’’N CASE 1 : p <> 0 AND p = LENGTH object name - pattern length’’’’’’’’ CASE 2 : p = 1’’’’’ CASE 3 : p <> 0’’’’ OTHERWISE FALSE’’’’’ ENDSELECT .’’’’’’’’’’’’’’into bulletin :’’’’’’’’’’’’’’’> object names into bulletin (BOOL PROC not end of chain)’’ENDPROC help ;BOOL PROC not end of chain :’’ permanent pointer <> 0 ’’ENDPROC not end of chain ;’’’’PROC write packet name :’’’’’’ indentation := 0 ;’’’’’’’ write line ;’’’’’’’’’’’’’. write bulletin line ("PACKET ") ;’’’’’’’’ indentation := 7 ;’’’’’’’. object name := packet name ;’’’’’’’’’’’’’. write bulletin line (object name) ;’’’’’’. write bulletin line (":") ;’’’’’’’’’’’’’’ writeline (2)’’’’’’’’’’’’ENDPROC write packet name ;’’’>PROC put specifications (TEXT CONST proc name) :’’’’’’’’’’’’’’. put obj name (proc name) ;’’’’’’’’’’’’’’’ to first param ;’’’’’’’’’> IF NOT end of params THEN put param list FI ;’’’’’’’’’’’’ put result ;’’’’’’’’’’’’’ writeline .’’’’’’’’’’’’’’to first param :’’’’’’’’’’’’’’> param link := permanent pointer + word length ;’’’’’’’’’’. set end marker if end of list .’’’’’’’’’’ INT VAR type;’’’’’’’’’’’’. get type and mode (type) ;’’’’’’’’’’’’’’’> IF type <> void id THEN type and mode := " --> " ;’’’’’’> name of type (type) ;’’’’’’’’’’’’N write bulletin line (type and mode)’’’’’’’’’’’’’’ENDPROC put specifications ;’’PROC put param list : ’’’’’’’’. write bulletin line (" (") ;’’’’’’’’’’’’’. INT VAR type, param mode;’’’’’’’’’’’’. get type and mode (type) ;’’’’’’’’’’’ param mode := mode ;’ put type and mode ;’’ maybe param proc ;’’’ next pt param ;’’’’’’> IF end of params THEN write bulletin line (")") ;’’’’> LEAVE put param list ’’’’’’’’’’. write bulletin line (", ") ;’’’’’’’’’put type and mode :’’’’’’’’’’’ type and mode := "" ;’’’’ name of type (type) ;’’’’. type and mode CAT name of mode ;’’’’’’’’’. write bulletin line (type and mode) .’’’’name of mode :. IF param mode = const THEN " CONST"’’’’. ELIF param mode = var THEN " VAR"’’’’’’. ELSE " PROC"’’’’’maybe param proc :’’’’’’’’’’’’N IF mode = permanent param proc THEN put virtual params FI .’’’’’’’’’’’’’’put virtual params :’’’’’’’’’’. skip over result type if complex type ;’’> IF NOT end of virtual params THEN put param list FI.’’’’’.skip over result type if complex type :’’’’’’’ next pt param .’’’’’’’’’’end of virtual params :’’’’’’’ end of params’’’’’’’’’’’’’ENDPROC put param list ;’’’’’’.PROC to packet (TEXT CONST packet name) :’’’’’. to object ( packet name) ;’’’’’’’’’’’’’’’> IF found THEN find start of packet objects FI .’’’’’’’’’’find start of packet objects : last packet entry := 0 ;’. packet link := before first pt entry ;’’’. packet link INCR wordlength ;’’’’’’’’. word := cdb int (packet link) ;’’’’’’N IF word < 0 THEN IF word = permanent packet THEN packet found’’’’’’N ELIF word = permanent end THEN return’’’’’’’’’’’’ FI’’packet found :> IF cdb int (packet link + wordlength) = nt link’’’’’’’’’’> THEN last packet entry := packet link FI .’’’’’’’’’’’’> IF last packet entry <> 0 THEN found := TRUE ;’’’’’’’’’’’N packet link := last packet entry’’’’’’’’’’> ELSE found := FALSE’’’’’’’’’’’’ LEAVE to packet’’’’’’’’’’ENDPROC to packet ;’’’’’’’’’’’PROC next packet :’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. packet link INCR wordlength ;’’’’’’’’. word := cdb int (packet link) ;’’’’’’> IF word = permanent packet THEN true return’’’’’’’’> ELIF end of permanents THEN false return’’’’’’’ found := TRUE ;’’’’’’’’’’ LEAVE next packet .’’’’’’false return : found := FALSE ;’’’’’’’’’ LEAVE next packet .’’’’’’end of permanents :’’’’’’’’’’’N word = permanent end OR packet link > end of permanent table ’’’’’’’’’’’’ENDPROC next packet ;’’’’’’’’’PROC prep bulletin :’’’’’’’’’’ forget (bulletin ds) ;’’’ bulletin ds := nilspace ;> bulletin file := sequential file (output, bulletin ds) ;’ line number := 0 ;’’’’’’’ buffer := ""’’’’’’’’’’’’’ENDPROC prep bulletin ;’’’’’’’PROC show bulletin file :’’’’’> IF within editor THEN ueberschrift neu FI ;’’’’’’’’’’’’’’. DATASPACE VAR local ds :: bulletin ds ;’’N FILE VAR local file :: sequential file (modify, local ds) ;’’’’’’’’’’’’’’ show (local file) ;’’’’’’ forget (local ds)’’’’’’’’ENDPROC show bulletin file ;’’.PROC write bulletin line (TEXT CONST line) :’’> IF LENGTH buffer + LENGTH line > 75 THEN writeline FI ;’’ buffer CAT line’’’’’’’’’’ENDPROC write bulletin line ;’PROC writeline :’’’’’’’’’’’’’. write (bulletin file, buffer) ;’’’’’’’’’’ line (bulletin file) ;’’’ line number INCR 1 ;’’’’’ cout (line number) ;’’’’’. buffer := indentation * " "’’’’’’’’’’’’’’ENDPROC writeline ;’’’’’’’’’’’.PROC writeline (INT CONST times) :’’’’’’’’’’’’> IF LENGTH compress(buffer) <> 0 THEN index := times - 1 ;> writeline’’’’’’’’’’’> ELSE index := times’’’’’’. line (bulletin file, index) ;’’’’’’’’’’’’ line number INCR index;’’ indentation := 0 ;’’’’’’’ cout (line number)’’’’’’’ENDPROC writeline ;’’’’’’’’’’’.PROC bulletin (TEXT CONST packet name) :’’’’’’ prep bulletin ;’’’’’’’’’’ scan (packet name) ;’’’’’ next symbol (pattern) ;’’ to packet (pattern) ;’’’’. IF found THEN list packet ;’’’’’’’’’’’’’’. show bulletin file’’’’’’’’’N ELSE error stop (packet name + " ist kein Paketname")’’’’’’’’’’’ENDPROC bulletin ;’’’’’’’’’’’’PROC list packet :’’’’’’’’’’’’> begin of packet := packet link + word length ;’’’’’’’’’’’ write packet name ; ’’’’’ find end of packet ;’’’’’> run through nametab and list all packet objects .’’’’’’’’find end of packet :’’’’’’’’’’. last packet entry := begin of packet ;’’’. last packet entry INCR wordlength ;’’. word := cdb int (last packet entry) ;. UNTIL end of packet entries PER .’’’’’’’’end of packet entries :’’’’’’’> word = permanent packet OR word = permanent end .’’’’’’’’>run through nametab and list all packet objects :’’’’’’’’’’’’’. hashtable pointer := begin of hashtable ;. nt link := hashtable pointer ;’’’’’’’> list objects of current packet in this chain ;’’’’’’’ next hash entry’’’’’’. UNTIL end of hashtable reached ENDREP .’’.list objects of current packet in this chain :. WHILE yet another nt entry REP ’’’’’’’’’’> permanent pointer := cdb int (nt link + wordlength) ;. put objects of this name’’’’’’’’’’’’’put objects of this name :’’’’> IF there is an entry THEN into bulletin FI .’’’’’’’’’’’’’’there is an entry :’’’’’’’’’’’ NOT packet entry AND’’’’’’N there is at least one object of this name in the current packet .’’’’’’’’’Nthere is at least one object of this name in the current packet :’’’’’’’’’’’’’> IF permanent pointer >= begin of packet AND’’’’’’’’’’’> permanent pointer < last packet entry’’’’’’’’’’’’’’N THEN LEAVE there is at least one object of this name’’’’’’’’’’’’’’’> in the current packet WITH TRUE FI ;’’’’ next procedure’’’’’’’’. UNTIL permanent pointer = 0 PER ;’’’’’’’’into bulletin :’’’’’’’’’’’’’’’> object name := cdb text (nt link + two word length) ;’’’’> object names into bulletin (BOOL PROC within packet)’’’’’ENDPROC list packet ;’’’’’’’’’BOOL PROC within packet :’’’’’. permanent pointer >= begin of packet AND . permanent pointer < last packet entry’’’’ENDPROC within packet ;’’’’’’’>PROC object names into bulletin (BOOL PROC link ok) :’’’’’’’’’ scan (object name) ;’’’’’. next symbol (dummy name, mode) ;’’’’’’’’’> IF type definition THEN put type definition’’’’’’’’’’’’’’> ELSE put object definitions’’’’’’’’’’’type definition :’’’’’’’’’’’’’. mode = bold AND no params .’’’’’’’’’’’’’’N cdb int (permanent pointer + word length) >= permanent type .’’’’’’’’’’’’put type definition :’’’’’’’’’. put obj name (object name) ;’’’’’’’’’’’’’. write bulletin line ("TYPE ") ;’’’’’’’’’’ writeline (1) .’’’’’’’’’’put object definitions :’’’’’’ WHILE link ok REP’’’’’’’’. put specifications (object name) ;’’’ next procedure’’’’’’’.ENDPROC object names into bulletin ;’’’’’’’’’’PROC bulletin :’’’’’’’’’’’’’’’ prep bulletin ;’’’’’’’’’’. packet link := first permanent entry ;’’’ list packet ;’’’’’’’’ write line (4) ;’’’’’ next packet’’’’’’’’’’ UNTIL NOT found PER ;’’’’ show bulletin file’’’’’’’ENDPROC bulletin ;’’’’’’’’’’’’.PROC put obj name (TEXT CONST name) :’’’’’’’’’ buffer := " " ;’’’’’. bulletin name := point line ;’’’’’’’’’’’’> change (bulletin name, 1, end of line or name, name) ;’’’. buffer CAT bulletin name ;’’’’’’’’’’’’’’’. indentation := LENGTH buffer + 1 .’’’’’’’end of line or name :’’’’’’’’’. min (LENGTH name, LENGTH bulletin name)’’ENDPROC put obj name ;’’’’’’’’PROC packets : prep bulletin ;’’’’’’’’’’. packet link := first permanent entry ;’’’. object name := packet name ;’’’’’’’’’. put obj name (object name) ;’’’’’’’’’ write line ;’’’’’’’’’ next packet ’’’’’’’’’ UNTIL NOT found PER ;’’’’ show bulletin file’’’’’’’ENDPROC packets ;’’’’’’’’’’’’’N(**************************************************************************) ’N(* *) ’N(* 11. ELAN Run-Interface 04.08.1986 *) ’N(* *) ’N(* Uebersetzen von ELAN-Programmen *) ’N(* Bereitstellen der Ausgabeprozeduren fuer den ELAN-Compiler *) ’N(* *) ’N(**************************************************************************) ’.BOOL VAR list option := FALSE ,’’’’’’’’’’’. check option := TRUE ,’’’’’’’’’’’. warning option := FALSE , ’’’’’’’’’’. listing enabled := FALSE ;’’’’’’’’’’’FILE VAR listing file ;’’’’’’’.TEXT VAR listing file name := "" ;’’’’’’’’’’’’.PROC run (TEXT CONST file name) : ’’’’’’’’’’’’ enable stop ;’’’’’’’’’’’’’’’ IF NOT exists (file name)’’’> THEN errorstop ("""" + file name + """ gibt es nicht")’’’’ last param (file name) ;’’’’ run elan (file name, no ins) run (last param)’’’’’’’’’’’’PROC run again :’’’’’’’’’’’’’’ IF run again mod nr <> 0’’’’N THEN elan (run again mode, bulletin file, "", run again mod nr, ’’’’’’’’’’> no ins, no lst, check option, no sermon)’’’’’’’> ELSE errorstop ("'run again' nicht moeglicööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööh")’’’’’’’’’’’’’ENDPROC run again ;’’’’’’’’’’’.PROC insert (TEXT CONST file name) : ’’’’’’’’’ enable stop ;’’’’’’’’’’’’’’’ IF NOT exists (file name)’’’> THEN errorstop ("""" + file name + """ gibt es nicht")’’’’ last param (file name) ;’’’’ run elan (file name, ins)’’’ENDPROC insert ;’’’’’’’’’’’’’’ insert (last param)’’’’’’’’’ENDPROC insert ;’’’’’’’’’’’’’’NPROC run elan (TEXT CONST file name, BOOL CONST insert option) :’’’’’’’’’’’’’’> FILE VAR source := sequential file (modify, file name) ;’’’’ IF listing enabled’’’’’’’’’’ THEN open listing file’’’’ disable stop ;’’’’’’’’’’’’’’ no do again ;’’’’’’’’’’’’’’’> elan (compile file mode, source, "" , run again mod nr,’’’’’> insert option, list option, check option, sermon) ;’’’. IF anything noted AND command dialogue’’’’’’. THEN ignore halt during compiling ;’’’’’’’ note edit (source) ;’. last param (file name) ; ’’’’’’’’’’’’ errorstop ("")’’’’’’’ignore halt during compiling : THEN put error ;’’’’’’’’’’ clear error ;’’’’’’’’ pause (5)’’’’’’’’’’’’open listing file :’’’’’’’’’’’N listing file := sequential file (output, listing file name) ;’’’’’’’’’’’’’’’. max line length (listing file, 130)’’’’’’’’’ENDPROC run elan ;’’’’’’’’’’’’>PROC out text (TEXT CONST text, INT CONST out type) :’’’’’’’’’ INTERNAL 257 ; ’’’’’’’’’’’’’ THEN out (text)’’’’’’’’’’’^ IF out type = error message OR (warning option AND out type = warning message) ’’’’’’’’’’’’’ THEN note (text) ; ’’’’’’’ IF listing enabled’’’’’’’’’’. THEN write (listing file, text)’’’’’’’’’’’ENDPROC out text ;’’’’’’’’’’’’.PROC out line (INT CONST out type) :’’’’’’’’’’ INTERNAL 258 ; ’’’’’’’’’’’’’ THEN out (""13""10"")’’’’’ IF out type = error message’> OR (warning option AND out type = warning message)’’’’’ THEN note line’’’’’’’’’’’’ ELIF listing enabled’’’’’’’’ THEN line (listing file)’’ENDPROC out line ;’’’’’’’’’’’’.PROC prot (TEXT CONST file name) :’’’’’’’’’’’’ list option := TRUE ;’’’’’’’. listing file name := file name ;’’’’’’’’’’’’ listing enabled := TRUE’’’’’ENDPROC prot ;PROC prot off :’’’’’’’’’’’’’’’ list option := FALSE ;’’’’’’ listing enabled := FALSE’’’’ENDPROC prot off ;’’’’’’’’’’’’BOOL PROC prot :’’’’’’’’’’’’’’ENDPROC prot ;PROC check on :’’’’’’’’’’’’’’’ check option := TRUE’’’’’’’’ENDPROC check on ;’’’’’’’’’’’’PROC check off :’’’’’’’’’’’’’’ check option := FALSE’’’’’’’ENDPROC check off ;’’’’’’’’’’’BOOL PROC check :’’’’’’’’’’’’’ check optionENDPROC check ;’’’’’’’’’’’’’’’.PROC warnings on : ’’’’’’’’ warning option := TRUE ’’ENDPROC warnings on ; ’’’’’PROC warnings off : ’’’’’’’’’’ warning option := FALSE ’’’’ENDPROC warnings off ; ’’’’’’’BOOL PROC warnings : ’’’’’’’’’ warning option ’’’’’’’’’’’’’ENDPROC warnings ; ’’’’’’’’’’’ENDPACKET eumel coder ; ’’’’’.PACKET dint2 DEFINES dint type :’’’’’’’’’’’’’’INT VAR dummy ;’’’’’’’’’’’’’’’.identify ("DINT", dummy, dummy, d) ; ’’’’’’’’’DTYPE CONST dint type := d’’’’ENDPACKET dint2 ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ eumel0 codes’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ą ’’ ’›LNMOVE’’’’’’’’žLNMOVEINCONEDECONEINCDECADDSUB CLEAR TEST EQU LSEQU FMOVEFADDFSUBFMULTFDIVFLSEQUTMOVETEQUACCDSREFSUBSCRIPTSELECTPPVPPMAKEFALSEMOVEXRTNTRUERTNFALSERTN INTMULT!INTDIV"INTMOD#PPROC$COMPLINT%COMPLREAL&ALIASDS'MOVEIM(FEQU)TLSEQU*CASE++,--*.DIV//0=1<=2ULSEQU3PDADD4PDSUB5DIMOV6IDMOV7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ gen.BASIC’’’’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ Į’’’’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‹a€ė’’QO#Ų’’’’ZRZ #Ų#Ų\M’ž’’’’’’ gen.BASIC’’’’RR’’’’’’’’’’’’’’’’[[Q’’’’’’’’’’’’’’’’’’a€’L’’’’’’’’’’’’’’’’’’’±€’L’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’Q’L’’’’’’’’’’’’’’’’’’’”’L’’’’’’’’’’’’’’’’’’’ń’L’’’’’’’’’’’’’’’’’’’A‚’L’’’’’’’’’’’’’’’’’’’‘‚’L’’’’’’’’’’’’’’’’’’’į‚’L’’’’’’’’’’’’’’’’’’’1ƒ’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒ’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’Įƒ’>’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’L’’’’’’’’’’’’’’’’’’’’’ set status;’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’ ’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’$’’’’’’’’’’’’’’’’’’’1…’J’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’ show end .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’’’ page;’’’’’’’’’’’’’’±…’K’’’’’’’’’’’’’’’’’’’’’ line .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ set status:’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’!†’$’’’’’’’’’’’’’’’’’’’Q†’4’’’’’’’’’’’’’’’’’’’’’ check off;’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’±†’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’ń†’A’’’’’’’’’’’’’’’’’’’A‡’A’’’’’’’’’’’’’’’’’’’‘‡’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ show end:’’’’’’’’’’’’’’ line (2);’’’’’’’’’’Į‡’F’’’’’’’’’’’’’’’’’’’’’ line .’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’;’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’±ˆ’’’’’’’’’’’’’’’’’’’’ш’’’’’’’’’’’’’’’’’’’’ńˆ’&’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!‰’’’’’’’’’’’’’’’’’’’’’’ line;’’’’’’’’’’’’’’A‰’-’’’’’’’’’’’’’’’’’’’q‰’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’щ’(’’’’’’’’’’’’’’’’’’’Š’*’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’’’’’ END OP &;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qŠ’8’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ኒ’’’’’’’’’’’’’’’’’’’’’ result’’’’’’’’’’’’’’’ END OP &;’’’’Z’’’’’’’’’’’’’’’’SS’’’’’’’’’’’’’’’’TT’’’’’’’’’’’’’’’’UU’’’’’’’’’’’’’’’’VV’’’’’’’’’’’’’’’’WW’’’’’’’’’’’’’’’’XX’’’’’’’’’’’’’’’’YY’’’’’’’’’’’’’’’’ZZ’’’’’’’’’’’’’’’’[’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(**************************************************************************)’’N(* *)’’N(* Generatorprogramm zur Installation des EUMEL-BASIC-Systems *)’’N(* *)’’N(* Autor: Heiko Indenbirken *)’’N(* Ųberarbeitet von: Michael Overdick *)’’N(* *)’’N(* Stand: 27.08.1987 *)’’N(* *)’’N(**************************************************************************)’’.LET coder name = "eumel coder 1.8.1";’’’’’’’’’show headline;>from archive ("BASIC.1", (coder name & "eumel0 codes") - all);from archive ("BASIC.2",’’’’’’N ("BASIC.Runtime" & "BASIC.Administration" & "BASIC.Compiler") - all);’’insert ("eumel coder 1.8.1");’insert ("BASIC.Runtime");’’’’’.insert ("BASIC.Administration");’’’’’’’’’’’’’’insert ("BASIC.Compiler");’’’’.forget (coder name & "BASIC.Runtime"’’’’’’’’’’N & "BASIC.Administration" & "BASIC.Compiler" & "gen.BASIC");’’’’restore status;’’’’’’’’’’’’’’’show headline:N putline (" "15"Einrichten des EUMEL-BASIC-Systems "14"");’’’ BOOL VAR old check := check,. old warnings := warnings,’’’’’’’’’’> old command dialogue := command dialogue;’’’’’’’’’’ warnings off;’’’’’’’’’’’’’’’ command dialogue (FALSE).’’’restore status:’’’’’’’’’’’’’’’N IF old check THEN do ("check on") ELSE do ("check off") FI;’’’’’’’’’’’’’N IF old warnings THEN warnings on FI;’’’’’’’’’’’’’. command dialogue (old command dialogue).’’’’N putline (" "15"BASIC-System installiert "14"");’’’’’’’’>PROC from archive (TEXT CONST name, THESAURUS CONST files):’’’ IF highest entry (files) > 0 THEN ask for archive;’’’’’’’ archive (name);’’’’’’’’ fetch (files, archive); release (archive);’’’’’. putline ("Archiv abgemeldet !")’’’’’’’’ask for archive:’’’’’’’’’’’’’’. IF no ("Archiv """ + name + """ eingelegt")’> THEN errorstop ("Archive nicht bereit") FI .’’’’’’’’’’’’’’’END PROC from archive;’’’’’’’’.THESAURUS OP & (TEXT CONST left, right):’’’’’’. THESAURUS VAR result := empty thesaurus;’’’’ insert (result, left);’’’’’’ insert (result, right);’’’’’>THESAURUS OP & (THESAURUS CONST left, TEXT CONST right):’’’’’’. THESAURUS VAR result := left;’’’’’’’’’’’’’’’ insert (result, right);’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ BASIC.Runtime’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ų’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’.a€ė’’%"ė[’’’’ė[ė[&M’ż’’’’’’ BASIC.Runtime’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’a€’M’’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’Q’M’’’’’’’’’’’’’’’’’’’”’M’’’’’’’’’’’’’’’’’’’ń’M’’’’’’’’’’’’’’’’’’’A‚’M’’’’’’’’’’’’’’’’’’’‘‚’M’’’’’’’’’’’’’’’’’’’į‚’M’’’’’’’’’’’’’’’’’’’1ƒ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒ’L’’’’’’’’’’’’’’’’’’’у’L’’’’’’’’’’’’’’’’’’’!„’"’’’’’’’’’’’’’’’’’’’Q„’"’’’’’’’’’’’’’’’’’’’„’!’’’’’’’’’’’’’’’’’’’±„’-’’’’’’’’’’’’’’’’’’’į„’-’’’’’’’’’’’’’’’’’’’…’&’’’’’’’’’’’’’’’’’’’A…’*’’’’’’’’’’’’’’’’’’’q…’'’’’’’’’’’’’’’’’’’’’”…’$’’’’’’’’’’’’’’’’’’’х’'’’’’’’’’’’’’’’’’’’’†’)’’’’’’’’’’’’’’’’’’’1†’&’’’’’’’’’’’’’’’’’’’a†’+’’’’’’’’’’’’’’’’’’’‘†’*’’’’’’’’’’’’’’’’’’’Į†’%’’’’’’’’’’’’’’’’’’’ń†’/’’’’’’’’’’’’’’’’’’’1‡’(’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööĮ‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᇒM’’’’’’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’’’ IF a=b’’’’’’’’’’’’’’’ THEN true’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’’’ END OP EQU;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’’’ IF a=b’’’’’’’’’’’’’’’ THEN false’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’’’ END OP UEQ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ˆ’’’’’’’’’’’’’’’’’’’’’’ IF ab’’’’’’’’’’’’’’’ THEN true’’’’’’’’’’A‰’’’’’’’’’’’’’’’’’’’’’’ END OP GRE;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a‰’’’’’’’’’’’’’’’’’’’’’’ IF a>=b’’’’’’’’’’’’’’ THEN true’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’’’ END OP GEQ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”‰’M’’’’’’’’’’’’’’’’’’’ń‰’’’’’’’’’’’’’’’’’’’’’’ IF a=b’’’’’’’’’’’’’’’ THEN true’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ END OP EQU;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’’’ IF a=b’’’’’’’’’’’’’’’ THEN false’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’’’ END OP UEQ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’’’ IF ab’’’’’’’’’’’’’’’ THEN true’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ END OP GRE;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’’’ IF a>=b’’’’’’’’’’’’’’ THEN true’’’’’’’’’’A‹’’’’’’’’’’’’’’’’’’’’’’ END OP GEQ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a‹’M’’’’’’’’’’’’’’’’’’’±‹’’’’’’’’’’’’’’’’’’’’’’ IF a=b’’’’’’’’’’’’’’’ THEN true’’’’’’’’’’ы’’’’’’’’’’’’’’’’’’’’’’ END OP EQU;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’’’ IF a=b’’’’’’’’’’’’’’’ THEN false’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ END OP UEQ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Œ’’’’’’’’’’’’’’’’’’’’’’ IF ab’’’’’’’’’’’’’’’ THEN true’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’’’ END OP GRE;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’ IF a>=b’’’’’’’’’’’’’’ THEN true’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP GEQ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’M’’’’’’’’’’’’’’’’’’’q’4’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’э’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’4’’’’’’’’’’’’’’’’’’’’’ a XOR -1’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’’’ END OP EQV;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’’’’’’’’’’’’’’’’’’’’’’ END OP IMP;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ю’#’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’ѐ’;’’’’’’’’’’’’’’’’’’’‘’6’’’’’’’’’’’’’’’’’’’Q‘’:’’’’’’’’’’’’’’’’’’’‘‘’>’’’’’’’’’’’’’’’’’’’ё’I’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’A’’(’’’’’’’’’’’’’’’’’’’q’’)’’’’’’’’’’’’’’’’’’’”’’+’’’’’’’’’’’’’’’’’’’ђ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END OP ^;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!“’’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’’’ END OP ^;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a“’4’’’’’’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’’’ END OP /;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į“’4’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ END OP DIV;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!”’4’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±”’M’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’!•’!’’’’’’’’’’’’’’’’’’’Q•’’’’’’’’’’’’’’’’’’’’q•’’’’’’’’’’’’’’’’’’’’‘•’’’’’’’’’’’’’’’’’’’’±•’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į•’’’’’’’’’’’’’’’’’’’’į•’ ’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’1–’’’’’’’’’’’’’’’’’’’’Q–’’’’’’’’’’’’’’’’’’’’q–’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’”–’!’’’’’’’’’’’’’’’’’’’і’’’’’’’’’’’’’’’’’’’’ń–’’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’1—’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A—’M’’’’’’’’’’’’’’’’’’’‘—’’’’’’’’’’’’’’’’’’’’’’ v ISUB 1’’’’’’’’’’’’’ END PROC cvi;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’’’ v RSUB 1’’’’’’’’’’’’’ END PROC cvd;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ї’.’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’!˜’’’’’’’’’’’’’’’’’’’’’’ END PROC mki;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A˜’’’’’’’’’’’’’’’’’’’’a˜’’’’’’’’’’’’’’’’’’’’’’ i text’’’’’’’’’’’’’’’ END PROC mki;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’”˜’’’’’’’’’’’’’’’’’’’’’’ END PROC mkd;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į˜’’’’’’’’’’’’’’’’’’’’ᘒ’’’’’’’’’’’’’’’’’’’’’ r text’’’’’’’’’’’’’’’ END PROC mkd;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’™’M’’’’’’’’’’’’’’’’’’’Q™’-’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’”™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į™’-’’’’’’’’’’’’’’’’’’’ń™’7’’’’’’’’’’’’’’’’’’’1š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qš’2’’’’’’’’’’’’’’’’’’’‘š’’’’’’’’’’’’’’’’’’’’±š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įš’1’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’!›’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1›’3’’’’’’’’’’’’’’’’’’’q›’’’’’’’’’’’’’’’’’’’’‘›’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±›’2’’’’’’’’’’’’’’’’’’’ń›’(’’’’’’’’’’’’’’’’’’’!œ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aœ’3’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’’’ END PROC mid;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”œ’2’’’’’’’’’’’’’’’’’’’ᜒ’’’’’’’’’’’’’’’’’’’’’ END PROC mid;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’A’*’’’’’’’’’’’’’’’’’’’’’ END PROC mid;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q’:’’’’’’’’’’’’’’’’’’’±’'’’’’’’’’’’’’’’’’’’’’’ END PROC mid;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’#’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qž’-’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įž’-’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ÿ’"’’’’’’’’’’’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’qŸ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ÿ’.’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’-’’’’’’’’’’’’’’’’’’’1 ’’’’’’’’’’’’’’’’’’’’Q ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q ’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į ’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC val;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±”’ ’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’’’ END PROC asc;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ code (n)’’’’’’’’’’’’’ END PROC chr;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!¢’’’’’’’’’’’’’’’’’’’’A¢’’’’’’’’’’’’’’’’’’’’’’ END PROC chr;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a¢’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ END PROC hex;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö”¢’’’’’’’’’’’’’’’’’’’’Į¢’’’’’’’’’’’’’’’’’’’’ᢒ’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ low byte:’’’’’’’’’’’’!£’P’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ high byte:’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’’’ THEN ""’’’’’’’’’’’’”£’-’’’’’’’’’’’’’’’’’’’Ń£’,’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC hex;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’!¤’’’’’’’’’’’’’’’’’’’’’’ END PROC oct;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¤’’’’’’’’’’’’’’’’’’’’a¤’!’’’’’’’’’’’’’’’’’’’‘¤’’’’’’’’’’’’’’’’’’’’’’ IF x < 0’’’’’’’’’’’±¤’’’’’’’’’’’’’’’’’’’’Ѥ’<’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’7’’’’’’’’’’’’’’’’’’’Ń„’’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC oct;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń„’%’’’’’’’’’’’’’’’’’’’!¦’’’’’’’’’’’’’’’’’’’’A¦’’’’’’’’’’’’’’’’’’’’a¦’"’’’’’’’’’’’’’’’’’’’‘¦’’’’’’’’’’’’’’’’’’’’±¦’K’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!§’!’’’’’’’’’’’’’’’’’’’Q§’’’’’’’’’’’’’’’’’’’’q§’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘§’ ’’’’’’’’’’’’’’’’’’’Į§’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’į§’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’!Ø’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ buffer’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AØ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aØ’M’’’’’’’’’’’’’’’’’’’±Ø’’’’’’’’’’’’’’’’’’’’’’ real (r)’’’’’’’’’’’’’ END PROC ent;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃØ’’’’’’’’’’’’’’’’’’’’ńØ’’’’’’’’’’’’’’’’’’’’!©’’’’’’’’’’’’’’’’’’’’A©’’’’’’’’’’’’’’’’’’’’’’ END PROC ent;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’’’ real (r)’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘©’’’’’’’’’’’’’’’’’’’’’’ r’’’’’’’’’’’’’’’’’’±©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į©’’’’’’’’’’’’’’’’’’’’’’ r’’’’’’’’’’’’’’’’’’į©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń©’’’’’’’’’’’’’’’’’’’’’’ IF r >= 0.0’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’1Ŗ’’’’’’’’’’’’’’’’’’’’QŖ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aŖ’’’’’’’’’’’’’’’’’’’’‘Ŗ’’’’’’’’’’’’’’’’’’’’±Ŗ’’’’’’’’’’’’’’’’’’’’’’ END PROC rnd;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃŖ’’’’’’’’’’’’’’’’’’’’’’ IF x > 0.0’’’’’’’’’ńŖ’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’1«’’’’’’’’’’’’’’’’’’’’A«’’’’’’’’’’’’’’’’’’’’a«’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’”«’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC rnd;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į«’’’’’’’’’’’’’’’’’’’’’’ rnd (1.0)’’’’’’’’’’’’ END PROC rnd;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń«’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’!¬’ ’’’’’’’’’’’’’’’’’’’Q¬’<’’’’’’’’’’’’’’’’’’’‘¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ѭ’!’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’!­’’’’’’’’’’’’’’’’’’’’A­’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a­’’’’’’’’’’’’’’’’’’’’’’ END PROC fre;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’­’!’’’’’’’’’’’’’’’’’’’’’ fre ("")’’’’’’’’’’’’’ END PROC fre;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±­’ ’’’’’’’’’’’’’’’’’’’’’ fre ("")’’’’’’’’’’’’’ END PROC fre;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į­’M’’’’’’’’’’’’’’’’’’’1®’,’’’’’’’’’’’’’’’’’’’a®’’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”®’=’’’’’’’’’’’’’’’’’’’į®’&’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Æ’<’’’’’’’’’’’’’’’’’’’qÆ’’’’’’’’’’’’’’’’’’’’‘Æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Æ’!’’’’’’’’’’’’’’’’’’’ᯒ’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!°’ ’’’’’’’’’’’’’’’’’’’’’ len * " "’’’’’’’’’’Q°’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q°’?’’’’’’’’’’’’’’’’’’’Į°’B’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!±’’’’’’’’’’’’’’’’’’’’’’ clock (0)’’’’’’’’’’A±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a±’’’’’’’’’’’’’’’’’’’’‘±’’’’’’’’’’’’’’’’’’’’±±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ѱ’’’’’’’’’’’’’’’’’’’’ń±’’’’’’’’’’’’’’’’’’’’’’ END PROC cos;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’1²’’’’’’’’’’’’’’’’’’’’’’ END PROC sin;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q²’’’’’’’’’’’’’’’’’’’’q²’’’’’’’’’’’’’’’’’’’’’’ END PROC tan;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘²’’’’’’’’’’’’’’’’’’’’±²’’’’’’’’’’’’’’’’’’’’’’ END PROC exp;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ѳ’’’’’’’’’’’’’’’’’’’’ń²’’’’’’’’’’’’’’’’’’’’’’ END PROC ln;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’’’ real (x)’’’’’’’’’’’1³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q³’’’’’’’’’’’’’’’’’’’’q³’’’’’’’’’’’’’’’’’’’’‘³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į³’L’’’’’’’’’’’’’’’’’’’“’L’’’’’’’’’’’’’’’’’’’a“’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’Ń“’’’’’’’’’’’’’’’’’’’’ń“’’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’1µ’’’’’’’’’’’’’’’’’’’’Qµ’’’’’’’’’’’’’’’’’’’’qµ’’’’’’’’’’’’’’’’’’’’‘µ’’’’’’’’’’’’’’’’’’’’±µ’’’’’’’’’’’’’’’’’’’’ѵ’’’’’’’’’’’’’’’’’’’’ńµ’’’’’’’’’’’’’’’’’’’’!¶’’’’’’’’’’’’’’’’’’’’A¶’’’’’’’’’’’’’’’’’’’’a¶’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¶’$’’’’’’’’’’’’’’’’’’’±¶’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į¶’6’’’’’’’’’’’’’’’’’’’!·’’’’’’’’’’’’’’’’’’’’A·’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a·’’’’’’’’’’’’’’’’’’’’‘·’’’’’’’’’’’’’’’’’’’’±·’’’’’’’’’’’’’’’’’’’’Ń·’’’’’’’’’’’’’’’’’’’’ń·’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ø’’’’’’’’’’’’’’’’’’’’Qø’’’’’’’’’’’’’’’’’’’’qø’’’’’’’’’’’’’’’’’’’’‘ø’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ø’’’’’’’’’’’’’’’’’’’’Ńø’’’’’’’’’’’’’’’’’’’’ńø’’’’’’’’’’’’’’’’’’’’’’ THEN ""’’’’’’’’’’’’¹’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¹’’’’’’’’’’’’’’’’’’’’a¹’*’’’’’’’’’’’’’’’’’’’‘¹’’’’’’’’’’’’’’’’’’’’±¹’’’’’’’’’’’’’’’’’’’’ѹ’"’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’!ŗ’,’’’’’’’’’’’’’’’’’’’Qŗ’&’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’”ŗ’’’’’’’’’’’’’’’’’’’’Įŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŗ’’’’’’’’’’’’’’’’’’’’ńŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’1»’'’’’’’’’’’’’’’’’’’’’a»’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±»’’’’’’’’’’’’’’’’’’’’Ń»’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’1¼’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q¼’'’’’’’’’’’’’’’’’’’’’”¼’*’’’’’’’’’’’’’’’’’’’Ѽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń¼’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’1½’’’’’’’’’’’’’’’’’’’’Q½’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’”½’>’’’’’’’’’’’’’’’’’’’į½’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¾’)’’’’’’’’’’’’’’’’’’’A¾’’’’’’’’’’’’’’’’’’’’a¾’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ using text:’’’’’’’’’’”¾’’’’’’’’’’’’’’’’’’’’Į¾’’’’’’’’’’’’’’’’’’’’į¾’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’’’ result .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!æ’’’’’’’’’’’’’’’’’’’’1æ’!’’’’’’’’’’’’’’’’’’’aæ’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’”æ’’’’’’’’’’’’’’’’’’’’Įæ’’’’’’’’’’’’’’’’’’’’’’ THEN string’’’’’’’’ńæ’N’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AĄ’’’’’’’’’’’’’’’’’’’’aĄ’’’’’’’’’’’’’’’’’’’’Ą’;’’’’’’’’’’’’’’’’’’’ĮĄ’’’’’’’’’’’’’’’’’’’’įĄ’@’’’’’’’’’’’’’’’’’’’1Į’’’’’’’’’’’’’’’’’’’’QĮ’’’’’’’’’’’’’’’’’’’’qĮ’?’’’’’’’’’’’’’’’’’’’’’ "" .’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’ĮĮ’$’’’’’’’’’’’’’’’’’’’ńĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’(’’’’’’’’’’’’’’’’’’’AĀ’’’’’’’’’’’’’’’’’’’’aĀ’!’’’’’’’’’’’’’’’’’’’‘Ā’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’sign:’’’’’’’’’’’’’’’’ĮĀ’’’’’’’’’’’’’’’’’’’’’’ THEN " "’’’’’’’’’’’įĀ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ć’)’’’’’’’’’’’’’’’’’’’QĆ’’’’’’’’’’’’’’’’’’’’qĆ’’’’’’’’’’’’’’’’’’’’‘Ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ normal text:’’’’’’’’’±Ć’M’’’’’’’’’’’’’’’’’’’Ä’M’’’’’’’’’’’’’’’’’’’QÄ’M’’’’’’’’’’’’’’’’’’’”Ä’’’’’’’’’’’’’’’’’’’’ĮÄ’I’’’’’’’’’’’’’’’’’’’Å’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QÅ’’’’’’’’’’’’’’’’’’’’qÅ’’’’’’’’’’’’’’’’’’’’‘Å’J’’’’’’’’’’’’’’’’’’’įÅ’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’1Ę’"’’’’’’’’’’’’’’’’’’’’’ result .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aĘ’’’’’’’’’’’’’’’’’’’’‘Ę’$’’’’’’’’’’’’’’’’’’’ĮĘ’ ’’’’’’’’’’’’’’’’’’’ńĘ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ē’’’’’’’’’’’’’’’’’’’’AĒ’’’’’’’’’’’’’’’’’’’’aĒ’’’’’’’’’’’’’’’’’’’’Ē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Ē’’’’’’’’’’’’’’’’’’’’ĮĒ’’’’’’’’’’’’’’’’’’’’įĒ’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ IF exp < 0’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’1Č’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QČ’’’’’’’’’’’’’’’’’’’’qČ’"’’’’’’’’’’’’’’’’’’’”Č’’’’’’’’’’’’’’’’’’’’ĮČ’"’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńČ’’’’’’’’’’’’’’’’’’’’É’2’’’’’’’’’’’’’’’’’’’QÉ’%’’’’’’’’’’’’’’’’’’’É’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮÉ’’’’’’’’’’’’’’’’’’’’įÉ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ using text:’’’’’’’’’’1Ź’’’’’’’’’’’’’’’’’’’’QŹ’/’’’’’’’’’’’’’’’’’’’‘Ź’’’’’’’’’’’’’’’’’’’’’’ result .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ subformat:’’’’’’’’’’’±Ź’4’’’’’’’’’’’’’’’’’’’ńŹ’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ė’’’’’’’’’’’’’’’’’’’’AĖ’;’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’”Ė’5’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’įĖ’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ģ’’’’’’’’’’’’’’’’’’’’AĢ’)’’’’’’’’’’’’’’’’’’’qĢ’0’’’’’’’’’’’’’’’’’’’±Ģ’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ķ’%’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’QĶ’#’’’’’’’’’’’’’’’’’’’Ķ’$’’’’’’’’’’’’’’’’’’’±Ķ’’’’’’’’’’’’’’’’’’’’ŃĶ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńĶ’?’’’’’’’’’’’’’’’’’’’AĪ’’’’’’’’’’’’’’’’’’’’aĪ’H’’’’’’’’’’’’’’’’’’’±Ī’’’’’’’’’’’’’’’’’’’’ŃĪ’’’’’’’’’’’’’’’’’’’’ńĪ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’!Ļ’"’’’’’’’’’’’’’’’’’’’QĻ’ ’’’’’’’’’’’’’’’’’’’Ļ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Ļ’’’’’’’’’’’’’’’’’’’’ŃĻ’0’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’qŠ’T’’’’’’’’’’’’’’’’’’’ŃŠ’’’’’’’’’’’’’’’’’’’’ńŠ’E’’’’’’’’’’’’’’’’’’’AŃ’’’’’’’’’’’’’’’’’’’’aŃ’D’’’’’’’’’’’’’’’’’’’±Ń’Z’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’!Ņ’’’’’’’’’’’’’’’’’’’’AŅ’-’’’’’’’’’’’’’’’’’’’qŅ’’’’’’’’’’’’’’’’’’’’‘Ņ’-’’’’’’’’’’’’’’’’’’’ĮŅ’’’’’’’’’’’’’’’’’’’’įŅ’>’’’’’’’’’’’’’’’’’’’!Ó’’’’’’’’’’’’’’’’’’’’AÓ’.’’’’’’’’’’’’’’’’’’’qÓ’’’’’’’’’’’’’’’’’’’’‘Ó’-’’’’’’’’’’’’’’’’’’’ĮÓ’’’’’’’’’’’’’’’’’’’’įÓ’.’’’’’’’’’’’’’’’’’’’Ō’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŌ’7’’’’’’’’’’’’’’’’’’’”Ō’2’’’’’’’’’’’’’’’’’’’įŌ’1’’’’’’’’’’’’’’’’’’’!Õ’D’’’’’’’’’’’’’’’’’’’qÕ’=’’’’’’’’’’’’’’’’’’’±Õ’?’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ö’6’’’’’’’’’’’’’’’’’’’AÖ’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ö’:’’’’’’’’’’’’’’’’’’’ĮÖ’9’’’’’’’’’’’’’’’’’’’×’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A×’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a×’W’’’’’’’’’’’’’’’’’’’Į×’!’’’’’’’’’’’’’’’’’’’ń×’-’’’’’’’’’’’’’’’’’’’!Ų’’’’’’’’’’’’’’’’’’’’AŲ’C’’’’’’’’’’’’’’’’’’’‘Ų’’’’’’’’’’’’’’’’’’’’±Ų’;’’’’’’’’’’’’’’’’’’’ńŲ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’1Ł’’’’’’’’’’’’’’’’’’’’QŁ’’’’’’’’’’’’’’’’’’’’qŁ’!’’’’’’’’’’’’’’’’’’’”Ł’’’’’’’’’’’’’’’’’’’’ĮŁ’’’’’’’’’’’’’’’’’’’’įŁ’+’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ mantissa:’’’’’’’’’’’’Ś’ ’’’’’’’’’’’’’’’’’’’AŚ’’’’’’’’’’’’’’’’’’’’aŚ’8’’’’’’’’’’’’’’’’’’’”Ś’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ exponent:’’’’’’’’’’’’ńŚ’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ū’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŪ’<’’’’’’’’’’’’’’’’’’’Ū’7’’’’’’’’’’’’’’’’’’’ĮŪ’-’’’’’’’’’’’’’’’’’’’ńŪ’’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’!Ü’’’’’’’’’’’’’’’’’’’’AÜ’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qÜ’’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’”Ü’-’’’’’’’’’’’’’’’’’’’ŃÜ’#’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ calc digits:’’’’’’’’’!Ż’’’’’’’’’’’’’’’’’’’’AŻ’’’’’’’’’’’’’’’’’’’’aŻ’2’’’’’’’’’’’’’’’’’’’”Ż’2’’’’’’’’’’’’’’’’’’’įŻ’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŽ’’’’’’’’’’’’’’’’’’’’ß’ ’’’’’’’’’’’’’’’’’’’Aß’+’’’’’’’’’’’’’’’’’’’qß’&’’’’’’’’’’’’’’’’’’’”ß’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ß’’’’’’’’’’’’’’’’’’’’Ńß’’’’’’’’’’’’’’’’’’’’ńß’P’’’’’’’’’’’’’’’’’’’Qą’’’’’’’’’’’’’’’’’’’’qą’Q’’’’’’’’’’’’’’’’’’’Ńą’’’’’’’’’’’’’’’’’’’’ńą’G’’’’’’’’’’’’’’’’’’’Aį’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘į’9’’’’’’’’’’’’’’’’’’’Ńį’8’’’’’’’’’’’’’’’’’’’ā’6’’’’’’’’’’’’’’’’’’’Qā’4’’’’’’’’’’’’’’’’’’’‘ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ā’*’’’’’’’’’’’’’’’’’’’įā’.’’’’’’’’’’’’’’’’’’’’’ IF n < 0’’’’’’’’’’’ć’!’’’’’’’’’’’’’’’’’’’Ać’%’’’’’’’’’’’’’’’’’’’qć’"’’’’’’’’’’’’’’’’’’’’’ l result .’’’’’’’’”ć’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įć’H’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’1ä’ ’’’’’’’’’’’’’’’’’’’aä’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ä’'’’’’’’’’’’’’’’’’’’’±ä’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńä’E’’’’’’’’’’’’’’’’’’’!å’!’’’’’’’’’’’’’’’’’’’Qå’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘å’$’’’’’’’’’’’’’’’’’’’Įå’'’’’’’’’’’’’’’’’’’’’ńå’’’’’’’’’’’’’’’’’’’’ę’?’’’’’’’’’’’’’’’’’’’aę’!’’’’’’’’’’’’’’’’’’’‘ę’’’’’’’’’’’’’’’’’’’’±ę’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ first char:’’’’’’’’’’ē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aē’0’’’’’’’’’’’’’’’’’’’ē’’’’’’’’’’’’’’’’’’’’”ē’’’’’’’’’’’’’’’’’’’’Įē’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’č’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1č’J’’’’’’’’’’’’’’’’’’’č’J’’’’’’’’’’’’’’’’’’’Ńč’’’’’’’’’’’’’’’’’’’’ńč’ ’’’’’’’’’’’’’’’’’’’!é’ ’’’’’’’’’’’’’’’’’’’Qé’’’’’’’’’’’’’’’’’’’’qé’’’’’’’’’’’’’’’’’’’’‘é’’’’’’’’’’’’’’’’’’’’±é’’’’’’’’’’’’’’’’’’’’Ńé’’’’’’’’’’’’’’’’’’’’ńé’’’’’’’’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’1ź’’’’’’’’’’’’’’’’’’’’Qź’’’’’’’’’’’’’’’’’’’’qź’’’’’’’’’’’’’’’’’’’’‘ź’'’’’’’’’’’’’’’’’’’’’Įź’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ė’N’’’’’’’’’’’’’’’’’’’Qė’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ė’2’’’’’’’’’’’’’’’’’’’Įė’%’’’’’’’’’’’’’’’’’’’ńė’ ’’’’’’’’’’’’’’’’’’’!ģ’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qģ’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įģ’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ķ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aķ’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööQķ’F’’’’’’’’’’’’’’’’’’’”ķ’’’’’’’’’’’’’’’’’’’’±ķ’’’’’’’’’’’’’’’’’’’’Ńķ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ī’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ī’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aī’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ī’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ī’’’’’’’’’’’’’’’’’’’’±ī’’’’’’’’’’’’’’’’’’’’Ńī’’’’’’’’’’’’’’’’’’’’ńī’’’’’’’’’’’’’’’’’’’’ļ’’’’’’’’’’’’’’’’’’’’1ļ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qļ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qļ’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńļ’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1š’T’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘š’P’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńš’P’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qń’^’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get cursor;’’’’’’’’Ńń’’’’’’’’’’’’’’’’’’’’ńń’’’’’’’’’’’’’’’’’’’’ņ’&’’’’’’’’’’’’’’’’’’’Aņ’’’’’’’’’’’’’’’’’’’’aņ’ ’’’’’’’’’’’’’’’’’’’‘ņ’3’’’’’’’’’’’’’’’’’’’Ńņ’ ’’’’’’’’’’’’’’’’’’’ó’%’’’’’’’’’’’’’’’’’’’1ó’.’’’’’’’’’’’’’’’’’’’aó’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’”ó’4’’’’’’’’’’’’’’’’’’’įó’#’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’ō’’’’’’’’’’’’’’’’’’’’1ō’’’’’’’’’’’’’’’’’’’’Qō’’’’’’’’’’’’’’’’’’’’qō’#’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ō’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńō’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńō’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get cursor;’’’’’’’’’’ IF n <= 0’’’’’’’’õ’%’’’’’’’’’’’’’’’’’’’Aõ’’’’’’’’’’’’’’’’’’’’aõ’%’’’’’’’’’’’’’’’’’’’‘õ’’’’’’’’’’’’’’’’’’’’±õ’’’’’’’’’’’’’’’’’’’’Ńõ’’’’’’’’’’’’’’’’’’’’ńõ’’’’’’’’’’’’’’’’’’’’ö’!’’’’’’’’’’’’’’’’’’’Aö’+’’’’’’’’’’’’’’’’’’’qö’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ö’’’’’’’’’’’’’’’’’’’’Ńö’)’’’’’’’’’’’’’’’’’’’÷’,’’’’’’’’’’’’’’’’’’’1÷’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC tab;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q÷’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get cursor;’’’’’’’’q÷’+’’’’’’’’’’’’’’’’’’’”÷’’’’’’’’’’’’’’’’’’’’Į÷’’’’’’’’’’’’’’’’’’’’į÷’’’’’’’’’’’’’’’’’’’’ų’!’’’’’’’’’’’’’’’’’’’1ų’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aų’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńų’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’1ł’’’’’’’’’’’’’’’’’’’’Qł’=’’’’’’’’’’’’’’’’’’’‘ł’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ł’’’’’’’’’’’’’’’’’’’’Ńł’’’’’’’’’’’’’’’’’’’’ńł’%’’’’’’’’’’’’’’’’’’’!ś’’’’’’’’’’’’’’’’’’’’Aś’’’’’’’’’’’’’’’’’’’’aś’%’’’’’’’’’’’’’’’’’’’‘ś’,’’’’’’’’’’’’’’’’’’’Įś’’’’’’’’’’’’’’’’’’’’įś’’’’’’’’’’’’’’’’’’’’ū’’’’’’’’’’’’’’’’’’’’1ū’’’’’’’’’’’’’’’’’’’’Qū’!’’’’’’’’’’’’’’’’’’’ū’)’’’’’’’’’’’’’’’’’’’±ū’&’’’’’’’’’’’’’’’’’’’įū’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’!ü’’’’’’’’’’’’’’’’’’’’Aü’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aü’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’”ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ . warte :’’’’’’’’’’Įü’"’’’’’’’’’’’’’’’’’’’ńü’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’1ż’’’’’’’’’’’’’’’’’’’’Qż’’’’’’’’’’’’’’’’’’’’qż’’’’’’’’’’’’’’’’’’’’‘ż’)’’’’’’’’’’’’’’’’’’’Įż’’’’’’’’’’’’’’’’’’’’įż’$’’’’’’’’’’’’’’’’’’’ž’!’’’’’’’’’’’’’’’’’’’Až’’’’’’’’’’’’’’’’’’’’až’)’’’’’’’’’’’’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’±ž’!’’’’’’’’’’’’’’’’’’’įž’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’Q’’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’ ELSE line’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC pos;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END PROC pos;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get cursor;’’’’’’’’’’ x cursor’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get cursor;’’’’’’’’’’ y cursor’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’*’’’’’’’’’’’’’’’’’’’"’-’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ l pos (0)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’H’’’’’’’’’’’’’’’’’’’Ņ’!’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’B’6’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ check sysout:’’’’’’’’"’’’’’’’’’’’’’’’’’’’’R’ ’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’@’’’’’’’’’’’’’’’’’’’‚’/’’’’’’’’’’’’’’’’’’’Ā’"’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’ ’1’’’’’’’’’’’’’’’’’’’R ’1’’’’’’’’’’’’’’’’’’’’ ’%’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’ņ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’’’FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’M’’’’’’’’’’’’’’’’’’’ā ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’R ’!’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’!’’’’’’’’’’’’’’’’’’’ņ ’’’’’’’’’’’’’’’’’’’’ ’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B ’'’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööör ’’’’’’’’’’’’’’’’’’’’’ ’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā ’1’’’’’’’’’’’’’’’’’’’’’.;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’-’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’-’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’>’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’Ā’=’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’b’ ’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’Ņ’E’’’’’’’’’’’’’’’’’’’"’K’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’#’’’’’’’’’’’’’’’’’’’ā’4’’’’’’’’’’’’’’’’’’’"’6’’’’’’’’’’’’’’’’’’’b’6’’’’’’’’’’’’’’’’’’’¢’0’’’’’’’’’’’’’’’’’’’ā’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’"’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’2’O’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’ ’’’’’’’’’’’’’’’’’’’ā’4’’’’’’’’’’’’’’’’’’’"’4’’’’’’’’’’’’’’’’’’’b’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’ PER;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ next line;’’’’’’’’’r’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ END SELECT;’’’’’’’’ā’A’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’%’’’’’’’’’’’’’’’’’’’ā’2’’’’’’’’’’’’’’’’’’’"’8’’’’’’’’’’’’’’’’’’’b’"’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’'’’’’’’’’’’’’’’’’’’’¢’3’’’’’’’’’’’’’’’’’’’ā’:’’’’’’’’’’’’’’’’’’’"’h’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’Ā’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’E’’’’’’’’’’’’’’’’’’’²’.’’’’’’’’’’’’’’’’’’’ā’*’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B ’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā ’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’2!’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚!’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²!’’’’’’’’’’’’’’’’’’’’Ņ!’(’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’""’I’’’’’’’’’’’’’’’’’’’r"’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā"’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B#’I’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#’(’’’’’’’’’’’’’’’’’’’Ā#’’’’’’’’’’’’’’’’’’’’ņ#’.’’’’’’’’’’’’’’’’’’’"$’(’’’’’’’’’’’’’’’’’’’R$’#’’’’’’’’’’’’’’’’’’’‚$’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²$’’’’’’’’’’’’’’’’’’’’Ņ$’a’’’’’’’’’’’’’’’’’’’B%’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r%’’’’’’’’’’’’’’’’’’’’’%’R’’’’’’’’’’’’’’’’’’’ņ%’’’’’’’’’’’’’’’’’’’’&’N’’’’’’’’’’’’’’’’’’’b&’6’’’’’’’’’’’’’’’’’’’¢&’+’’’’’’’’’’’’’’’’’’’Ņ&’Y’’’’’’’’’’’’’’’’’’’2'’Q’’’’’’’’’’’’’’’’’’’’'’%’’’’’’’’’’’’’’’’’’’Ā'’@’’’’’’’’’’’’’’’’’’’(’;’’’’’’’’’’’’’’’’’’’R(’5’’’’’’’’’’’’’’’’’’’’(’.’’’’’’’’’’’’’’’’’’’Ā(’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā(’’’’’’’’’’’’’’’’’’’’)’G’’’’’’’’’’’’’’’’’’’R)’’’’’’’’’’’’’’’’’’’’r)’I’’’’’’’’’’’’’’’’’’’Ā)’6’’’’’’’’’’’’’’’’’’’*’X’’’’’’’’’’’’’’’’’’’b*’*’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ*’(’’’’’’’’’’’’’’’’’’’+’-’’’’’’’’’’’’’’’’’’’2+’’’’’’’’’’’’’’’’’’’’R+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’+’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņ+’M’’’’’’’’’’’’’’’’’’’B,’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā,’’’’’’’’’’’’’’’’’’’’ā,’K’’’’’’’’’’’’’’’’’’’2-’L’’’’’’’’’’’’’’’’’’’‚-’’’’’’’’’’’’’’’’’’’’¢-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(***************************************************************************)’N(* *)’N(* Erste von drei Dateien des EUMEL-BASIC-Systems *)’N(* *)’N(* Autor: Heiko Indenbirken *)’N(* Ųberarbeitet von: Rudolf Ruland und Michael Overdick *)’N(* *)’N(* Stand: 27.10.1987 *)’N(* *)’N(***************************************************************************)’NPACKET basic std DEFINES EQU, UEQ, (* Autor: Heiko Indenbirken *)’’N LES, LEQ, (* Stand: 23.10.1987/rr/mo *)’’. GRE, GEQ,’’’’’’’’’’’’. EQV, IMP,’’’’’’’’’’’’. ^, swap,’’’’’’’’’’’’’. val, asc, cdbl, chr,’. cint, cvi, cvd, fre,’. hex, inchars,’’’’’’’’. instr, ent, left,’’’’. mid, mki, mkd,’’’’’’’. oct, right,’’’’’’’’’’. rnd, init rnd,’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. space, string, ’’’’’. l set, r set,’’’’’’’’. int not, real not,’’’. /, DIV, real mod,’’’’. time, timer,’’’’’’’’’> arctan, cos, sin, tan,’’’’’’’’’’’’’’’. exp, ln, floor,’’’’’’ sqrt:INT CONST true := -1,’’’’’’’’’ false := 0;’’’’’’’’’LET real overflow = 6;’’’’’’’’N(*BASIC-Integervergleiche *)’INT OP EQU (INT CONST a, b):’’ ELSE false FI’’’’’’’’’’’’’’’INT OP UEQ (INT CONST a, b):’’ ELSE true FIINT OP LES (INT CONST a, b):’’ ELSE false FI’’’’’’’’’’’’’’’INT OP LEQ (INT CONST a, b):’’ ELSE false FI’’’’’’’’’’’’’’’INT OP GRE (INT CONST a, b):’’ ELSE false FI’’’’’’’’’’’’’’’INT OP GEQ (INT CONST a, b):’’ ELSE false FI’’’’’’’’’’’’’’’N(*BASIC-Realvergleiche *)’INT OP EQU (REAL CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’INT OP UEQ (REAL CONST a, b):’ ELSE true FIINT OP LES (REAL CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’INT OP LEQ (REAL CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’INT OP GRE (REAL CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’INT OP GEQ (REAL CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’N(*BASIC-Tesxtvergleiche *)’INT OP EQU (TEXT CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’INT OP UEQ (TEXT CONST a, b):’ ELSE true FIINT OP LES (TEXT CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’INT OP LEQ (TEXT CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’INT OP GRE (TEXT CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’INT OP GEQ (TEXT CONST a, b):’ ELSE false FI’’’’’’’’’’’’’’’N(*BASIC INTEGER / BOOL Operatoren *)’>REAL PROC real not (REAL CONST a): (* mo *)’’’’’’’’’’ real (int (a) XOR -1)’’’’’’’END PROC real not;’’’’’’’’’’’’>INT PROC int not (INT CONST a): (* mo *)’’’’’’’’’’END PROC int not;’’’’’’’’’’’’’INT OP EQV (INT CONST l, r):’’ int not (l XOR r)’’’’’’’’’’’INT OP IMP (INT CONST l, r):’’ (l EQV r) OR r’’’’’’’’’’’’’’.LET smallest significant = 5.0e-12;’’’’’’’’’’’NREAL OP ^ (REAL CONST x, y): (* F22/rr *)’’’’ IF x > 0.0 THEN x ** y’’’’’’’’’’’’ ELIF x = 0.0 THEN IF y > 0.0’’’’’’ THEN 0.0’’’’’ ELIF y = 0.0’’’’’’ THEN 1.0’’’’’> ELSE errorstop (real overflow, "");’’’’’’’’’’ max real FIN ELSE REAL VAR floor y := floor (y + round value); ’’’’’’’’’’> IF (abs (y - floor y) > smallest significant)’’’> COR (floor y = 0.0 AND y <> 0.0)’’’’’’’’> THEN errorstop (1005, "bei " + text (x) +’’’’> " ^ " + text (y, 19) +N " : neg. Basis, gebr. Exponent");’’’’’ 0.0’’’’’. ELIF (floor y MOD 2.0) = 0.0’’’’’’. THEN (-x) ** floor y’’’’’. ELSE - ( (-x) ** floor y )’’’ FI> round value : IF y >= 0.0 THEN 0.5 ELSE -0.5 FI .’’’’’’’’’’’REAL OP ^ (INT CONST x, y):’’’ real (x) ** y’’’’’’’’’’’’’’’>REAL OP / (INT CONST l, r): (* mo *)’’’’’’’’’’ real (l) / real (r)’’’’’’’’’>INT OP DIV (REAL CONST l, r): (* mo *)’’’’’’’’’’ cint (l) DIV cint (r)’’’’’’’>REAL PROC real mod (REAL CONST l, r): (* mo *)’’’’’’’’’’. round (l, 0) MOD round (r, 0)’’’’’’’’’’’’’’’END PROC real mod;’’’’’’’’’’’’N(* Basic Arithmetik *)’REAL VAR r swap;’’’’’’’’’’’’’’.PROC swap (REAL VAR left, right):’’’’’’’’’’’’’ r swap := left;’’’’’’’’’’’’’ left := right;’’’’’’’’’’’’’’ right := r swap’’’’’’’’’’’’’END PROC swap;INT VAR i swap;’’’’’’’’’’’’’’’.PROC swap (INT VAR left, right):’’’’’’’’’’’’’’ i swap := left;’’’’’’’’’’’’’ left := right;’’’’’’’’’’’’’’ right := i swap’’’’’’’’’’’’’END PROC swap;TEXT VAR t swap;’’’’’’’’’’’’’’.PROC swap (TEXT VAR left, right):’’’’’’’’’’’’’ t swap := left;’’’’’’’’’’’’’ left := right;’’’’’’’’’’’’’’ right := t swap’’’’’’’’’’’’’END PROC swap;N(*Internkonvertierungen *)’INT PROC cvi (TEXT CONST v):’’REAL PROC cvd (TEXT CONST v):’.TEXT VAR i text :: 2*""0"", r text :: 8*""0"";TEXT PROC mki (REAL CONST x):’ mki (cint (x))’’’’’’’’’’’’’’TEXT PROC mki (INT CONST i):’’ replace (i text, 1, i);’’’’’TEXT PROC mkd (INT CONST i):’’ mkd (real (i))’’’’’’’’’’’’’’TEXT PROC mkd (REAL CONST r):’ replace (r text, 1, r);’’’’’N(*Textoperationen *)’.PROC l set (TEXT VAR left, TEXT CONST right):’ replace (left, 1, right)’’’’END PROC l set;’’’’’’’’’’’’’’’.PROC r set (TEXT VAR left, TEXT CONST right):’> replace (left, length (left)-length (right)+1, right)’’’’’’’END PROC r set;’’’’’’’’’’’’’’’>TEXT PROC left (TEXT CONST string, REAL CONST no):’’’’’’’’’’’’ left (string, cint (no))’’’’END PROC left;>TEXT PROC left (TEXT CONST string, INT CONST no):’’’’’’’’’’’’’ subtext (string, 1, no)’’’’’END PROC left;>TEXT PROC right (TEXT CONST string, REAL CONST no):’’’’’’’’’’’ right (string, cint (no))’’’END PROC right;’’’’’’’’’’’’’’’>TEXT PROC right (TEXT CONST string, INT CONST no):’’’’’’’’’’’’. subtext (string, length (string)-no+1)’’’’’’END PROC right;’’’’’’’’’’’’’’’>TEXT PROC mid (TEXT CONST source, REAL CONST from):’’’’’’’’’’’ mid (source, cint (from))’’’>TEXT PROC mid (TEXT CONST source, INT CONST from):’’’’’’’’’’’’ subtext (source, from)’’’’’’>TEXT PROC mid (TEXT CONST source, REAL CONST from, length):’’’. mid (source, cint (from), cint (length))’’’’>TEXT PROC mid (TEXT CONST source, INT CONST from, length):’’’’. subtext (source, from, from+length-1)’’’’’’’.TEXT PROC string (REAL CONST x, y):’’’’’’’’’’’ string (cint (x), cint (y))’END PROC string;’’’’’’’’’’’’’’.TEXT PROC string (INT CONST x, REAL CONST y):’ string (x, cint (y))’’’’’’’’END PROC string;’’’’’’’’’’’’’’.TEXT PROC string (REAL CONST x, INT CONST y):’ string (cint (x), y)’’’’’’’’END PROC string;’’’’’’’’’’’’’’.TEXT PROC string (INT CONST i, j):’’’’’’’’’’’’ i * code (j)END PROC string;’’’’’’’’’’’’’’.TEXT PROC string (REAL CONST i, TEXT CONST x): string (cint (i), x)’’’’’’’’END PROC string;’’’’’’’’’’’’’’.TEXT PROC string (INT CONST i, TEXT CONST x):’ i * (x SUB 1)’’’’’’’’’’’’’’’END PROC string;’’’’’’’’’’’’’’N(*Konvertierungen *)’’NREAL PROC val (TEXT CONST text) : (* F18/rr *)’’ TEXT VAR buffer := text;’’’’ change (buffer, "d", "e");’’ change (buffer, "D", "e");’’ change (buffer, "E", "e");’’ real (buffer)’’’’’’’’’’’’’’’.REAL PROC asc (TEXT CONST text):’’’’’’’’’’’’’’ real (code (text SUB 1))’’’’TEXT PROC chr (INT CONST n):’’TEXT PROC chr (REAL CONST n):’ code (cint (n))’’’’’’’’’’’’’TEXT PROC hex (REAL CONST x):’ hex (cint (x))’’’’’’’’’’’’’’TEXT PROC hex (INT CONST x):’’ TEXT VAR value :: "12";’’’’’ replace (value, 1, x);’’’’’’ high byte + low byte .’’’’’^ hexdigit (code (value SUB 1) DIV 16) + hexdigit (code (value SUB 1) MOD 16) .’’’’’’’’’’’’’’ IF (value SUB 2) = ""0""’’’’. ELSE hexdigit (code (value SUB 2) DIV 16) +’. hexdigit (code (value SUB 2) MOD 16) ’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööTEXT PROC oct (REAL CONST x):’ oct (cint (x))’’’’’’’’’’’’’’TEXT PROC oct (INT CONST x):’’. INT VAR number :: x AND maxint;’’’’’’’’’’’’’ generate oct number;’’’’’’’’ THEN "1" + oct number’’’’’> ELSE subtext (oct number, pos (oct number, "1", "7", 1))’’generate oct number:’’’’’’’’’’ TEXT VAR oct number :: "";’’ INT VAR digit;’’’’’’’’’’’’’’ FOR digit FROM 1 UPTO 5 REP’> oct number := hexdigit (number MOD 8) + oct number;’’’’’’’ number := number DIV 8’’’’.TEXT PROC hexdigit (INT CONST digit):’’’’’’’’’ IF 0 <= digit AND digit <= 9 THEN code (digit + 48)’’’’’’. ELIF 10 <= digit AND digit <= 15’’’’’’’’’’’’ THEN code (digit + 55)’’’’’’N ELSE errorstop (1051, "Hexziffer auūerhalb des gŪltigen Bereichs"); "" FI’’’END PROC hexdigit;’’’’’’’’’’’’.TEXT PROC inchars (REAL CONST n):’’’’’’’’’’’’’ inchars (cint (n))’’’’’’’’’’END PROC inchars;’’’’’’’’’’’’’.TEXT PROC inchars (INT CONST n):’’’’’’’’’’’’’’ TEXT VAR buffer :: "", char; FOR i FROM 1 UPTO n’’’’’’’’’ REP inchar (char);’’’’’’’’’’ buffer CAT char’’’’’’’’’END PROC inchars;’’’’’’’’’’’’’N(*Mathematische Prozeduren *)’REAL PROC ent (INT CONST r):’’REAL PROC ent (REAL CONST r):’. IF r >= 0.0 OR frac (r) = 0.0’’’’’’’’’’’’’’’ THEN floor (r)’’’’’’’’’’’’’’ ELSE floor (r-1.0) FI’’’’’’’REAL PROC cdbl (INT CONST r):’END PROC cdbl;REAL PROC cdbl (REAL CONST r):END PROC cdbl;INT PROC cint (INT CONST r):’’END PROC cint;INT PROC cint (REAL CONST r):’ THEN int (r+0.5)’’’’’’’’’’’’ ELSE int (r-0.5) FI’’’’’’’’’END PROC cint;.REAL VAR last rnd :: rnd (1.0);’’’’’’’’’’’’’’’REAL PROC rnd (INT CONST x):’’ rnd (real (x))’’’’’’’’’’’’’’REAL PROC rnd (REAL CONST x):’ THEN last rnd := random;’’’’ last rnd’’’’’’’’’’’’’’’ ELIF x = 0.0 THEN last rnd’’’’’’’’’’’’’’’ ELSE init rnd (x);’’’’’’’’’’ last rnd := random;’’’’ last rnd’’’’’’’’’’’’’’’REAL PROC rnd:.PROC init rnd (REAL CONST init value) :’’’’’’’ REAL VAR init := init value;. IF init <= -1.0 OR 1.0 <= init’’’’’’’’’’’’’’> THEN set exp (- decimal exponent (init) - 1, init) FI; ’’ initialize random (init) ’’’END PROC init rnd;’’’’’’’’’’’’.REAL PROC fre (TEXT CONST dummy):’’’’’’’’’’’’’ INT VAR f, u;’’’’’’’’’’’’’’’ collect heap garbage;’’’’’’’ storage (f, u);’’’’’’’’’’’’’ real (f - u) * 1024.0’’’’’’’.REAL PROC fre (REAL CONST dummy):’’’’’’’’’’’’’.REAL PROC fre (INT CONST dummy):’’’’’’’’’’’’’’N(*Inputroutinenen *)’.INT PROC instr (TEXT CONST source, pattern):’’ pos (source, pattern)’’’’’’’END PROC instr;’’’’’’’’’’’’’’’>INT PROC instr (REAL CONST from, TEXT CONST source, pattern):’. instr (cint (from), source, pattern)’’’’’’’’END PROC instr;’’’’’’’’’’’’’’’>INT PROC instr (INT CONST from, TEXT CONST source, pattern):’’ pos (source, pattern, from)’END PROC instr;’’’’’’’’’’’’’’’.TEXT PROC space (REAL CONST len):’’’’’’’’’’’’’ space (cint (len))’’’’’’’’’’END PROC space;’’’’’’’’’’’’’’’.TEXT PROC space (INT CONST len):’’’’’’’’’’’’’’END PROC space;’’’’’’’’’’’’’’’NTEXT PROC time: (* mo *)’’’’’’’’’’’’’’’N subtext (time (clock (1) MOD day), 1, 8) (* hh:mm:ss *)’’’’’’’’’’’’END PROC time;REAL PROC timer:’’’’’’’’’’’’’’END PROC timer;’’’’’’’’’’’’’’’.REAL PROC arctan (INT CONST x):’’’’’’’’’’’’’’’ arctan (real (x))’’’’’’’’’’’END PROC arctan;’’’’’’’’’’’’’’REAL PROC cos (INT CONST x):’’ cos (real (x))’’’’’’’’’’’’’’REAL PROC sin (INT CONST x):’’ sin (real (x))’’’’’’’’’’’’’’REAL PROC tan (INT CONST x):’’ tan (real (x))’’’’’’’’’’’’’’REAL PROC exp (INT CONST x):’’ exp (real (x))’’’’’’’’’’’’’’REAL PROC ln (INT CONST x):’’’ ln (real (x))’’’’’’’’’’’’’’’REAL PROC floor (INT CONST x):END PROC floor;’’’’’’’’’’’’’’’REAL PROC sqrt (INT CONST x):’ sqrt (real (x))’’’’’’’’’’’’’END PROC sqrt;END PACKET basic std;’’’’’’’’’NPACKET basic using DEFINES using, (* Autor: Heiko Indenbirken *)’’N clear using, (* Stand: 05.08.1987/rr/mo *)’’. basic text:’’’’’’’’LET exclamation point = "!",’’ backslash = "\",’’ comercial and = "&",’’ numbersign = "#",’’ plus = "+",’’ minus = "-",’’ asterisk dollar = "**$", asterisk = "**",’ dollarsign = "$$",’ comma = ",",’’ point = ".",’’. caret = "^^^^",’’’’’’’’’’’’’’’ underscore = "_",’’ blank = " ",’’ nil = "",’’’. number format chars = "#+-*$.^",’’’’’’’’’’. format chars = "!\&#+-$*.";’’’’’’’’>TEXT VAR result, using format :: "", pre format :: "";’’’’’’’’INT VAR using pos :: 0;’’’’’’’BOOL VAR image used :: FALSE;’.PROC using (TEXT CONST format):’’’’’’’’’’’’’’’ using format := format;’’’’’ using pos := 0;’’’’’’’’’’’’’ result := "";’’’’’’’’’’’’’’’ image used := TRUE’’’’’’’’’’END PROC using;’’’’’’’’’’’’’’’PROC clear using:’’’’’’’’’’’’’ using format := "";’’’’’’’’’ image used := FALSE’’’’’’’’’END PROC clear using;’’’’’’’’’TEXT PROC next format:’’’’’’’’ pre format := "";’’’’’’’’’’’ IF using pos = 0’’’’’’’’’’’’. ELSE search rest of format FI .’’’’’’’’’’’’search rest of format:’’’’’’’’. WHILE using pos <= length (using format)’’’’ REP IF at underscore’’’’’’’’ THEN using pos INCR 1;’’. pre format CAT akt char’’’’’’’’’’’’ ELIF at format char’’’’’. THEN LEAVE next format WITH pre format’’. ELSE pre format CAT akt char FI;’’’’’’’’ using pos INCR 1’’’’’’’’ using pos := 0;’’’’’’’’’’’’’ pre format .’’’’’’’’’’’’’’’at underscore: akt char = underscore .’’’’at format char:’’’’’’’’’’’’’’’. pos (format chars, akt char) > 0 CAND’’’’’’’ evtl double asterisk CAND’’’. evtl point with numbersign .’’’’’’’’’’’’’’’evtl double asterisk:’’’’’’’’’> akt char <> asterisk COR next char = asterisk .’’’’’’’’’’’’evtl point with numbersign:’’’> akt char <> point COR next char = numbersign .’’’’’’’’’’’’’.akt char: using format SUB using pos .’’’’’’’.next char: using format SUB using pos+1 .’’’’END PROC next format;’’’’’’’’’PROC init (TEXT VAR l result): IF using pos = 0’’’’’’’’’’’’ THEN using pos := 1;’’’’’’’’. l result := next format;’’’’’’’’’’’’’’’ IF using pos = 0’’’’’’’> THEN errorstop (1005, "USING: kein Format gefunden") FI ELSE l result := "" FI’’’’’’END PROC init;.TEXT PROC basic text (TEXT CONST string):’’’’’ IF image used’’’’’’’’’’’’’’’ THEN using text’’’’’’’’’’’’’ ELSE string FI .’’’’’’’’’’’ init (result);’’’’’’’’’’’’’’ result CAT format string;’’’ using pos INCR 1;’’’’’’’’’’’ result CAT next format;’’’’’format string:. IF akt char = exclamation point’’’’’’’’’’’’’ THEN string SUB 1’’’’’’’’’’’ ELIF akt char = backslash’’’ THEN given length string’’’’. ELIF akt char = comercial and’’’’’’’’’’’’’’’N ELSE errorstop (1005, "USING-Format fehlerhaft: " + using format); "" FI .given length string:’’’’’’’’’’ INT VAR len :: 2;’’’’’’’’’’’> FOR using pos FROM using pos+1 UPTO length (using format)’’’ REP IF akt char = "\"’’’’’’’N THEN LEAVE given length string WITH text (string, len) FI;’’’’’’’’’’’’’’ len INCR 1’’’’’’’’’’’’’’ UNTIL akt char <> " "PER;’’’N errorstop (1005, "USING-Format fehlerhaft: " + using format);’’’’’’’’’’’’’’’.akt char: using format SUB using pos’’’’’’’’’’END PROC basicöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö text;’’’’’’’’’’.TEXT PROC basic text (INT CONST number):’’’’’’ IF image used’’’’’’’’’’’’’’’. THEN basic text (real (number))’’’’’’’’’’’’’. ELSE sign + text (number) FI .’’’’’’’’’’’’’ IF number >= 0’’’’’’’’’’’’’’ ELSE "" FI .’’’’’’’’’’’’’’’END PROC basic text;’’’’’’’’’’.TEXT PROC basic text (REAL CONST number):’’’’’ IF image used’’’’’’’’’’’’’’’ THEN using text’’’’’’’’’’’’’ ELSE normal text FI .’’’’’’N(* Bei Real Zahlen werden maximal 7 signifikante Stellen ausgegeben, *)’N(* fŪhrende und nachfolgende Nullen werden unterdrŪckt, *)’N(* der Dezimalpunkt wird im Normalformat unterdrŪckt *)’ calculate sign;’’’’’’’’’’’’’N REAL VAR mantissa := round (abs (number), 6-decimal exponent (number));’’’’’> INT CONST exp :: decimal exponent (mantissa);’’’’’’’’’’’’’’’ IF mantissa = 0.0’’’’’’’’’’’ THEN result := " 0"’’’’’’’’’N ELIF exp > 6 OR exp < -7 OR (exp < 0 AND more than 7 signifikant digits)’’’’ THEN scientific notation’’’’ ELIF exp < 0 THEN short negative notation. ELSE short positive notation FI;’’’’’’’’’’’’.more than 7 signifikant digits:’’’’’’’’’’’’’’’. REAL VAR signifikant := mantissa;’’’’’’’’’’. set exp (7+exp, signifikant);’’’’’’’’’’’’’’. frac (signifikant) <> 0.0 .’’’’’’’’’’’’’’’calculate sign:’’’’’’’’’’’’’’’ IF number >= 0.0’’’’’’’’’’’’ THEN result := " "’’’’’’’’’’ ELSE result := "-" FI .’’’’scientific notation:’’’’’’’’’’ set exp (0, mantissa);’’’’’’. result CAT non zero (text (mantissa, 8, 6)); THEN result CAT "E-"’’’’’’’’ ELSE result CAT "E+" FI;’’’’ IF abs (exp) > 9’’’’’’’’’’’’. THEN result CAT text (abs (exp))’’’’’’’’’’’’ ELSE result CAT "0";’’’’’’’’. result CAT text (abs (exp))’’’’’’’’’’’’short positive notation:’’’’’’> result CAT non zero (text (mantissa, 8, 6-exp));’’’’’’’’’’’’. IF (result SUB LENGTH result) = "."’’’’’’’’’> THEN delete char (result, LENGTH result) FI .’’’’’’’’’’’’’’short negative notation:’’’’’’N result CAT non zero (subtext (text (abs (mantissa), 9, 7), 2)).(* F13/rr *)’ init (result);’’’’’’’’’’’’’’> result CAT format number (subformat, number);’’’’’’’’’’’’’’’ result CAT next format;’’’’’> INT VAR from :: using pos, to :: last format char;’’’’’’’’’’. subtext (using format, from, to) .’’’’’’’’’last format char:’’’’’’’’’’’’’> FOR using pos FROM using pos+1 UPTO length (using format)’’’ REP IF non format char’’’’’’> THEN LEAVE last format char WITH using pos-1 FI’’’’’’’’’ using pos := 0;’’’’’’’’’’’’’ length (using format) .’’’’non format char:’’’’’’’’’’’’’’. IF (using format SUB using pos) = comma’’’’’> THEN (using format SUB (using pos+1)) <> point’’’’’’’’’’’’’’N ELSE pos (numberformat chars, using format SUB using pos) = 0 FI .’’’’’’’’END PROC basic text;’’’’’’’’’’.TEXT PROC non zero (TEXT CONST text):’’’’’’’’’. FOR i FROM length (text) DOWNTO 2’’’’’’’’’’’. REP UNTIL (text SUB i) <> "0" PER;’’’’’’’’’’ subtext (text, 1, i)’’’’’’’’END PROC non zero;’’’’’’’’’’’’NTEXT PROC format number (TEXT CONST format, REAL CONST number):’’’’’’’’’’’’’’’ IF no digit char’’’’’’’’’’’’N THEN errorstop (1005, "USING-Format fehlerhaft: " + using format); ""’’’’’’ ELIF exponent found’’’’’’’’’ THEN exponent format’’’’’’’’ ELSE normal format FI .’’’’no digit char:. pos (format, numbersign) = 0 AND’’’’’’’’’’’’. pos (format, asterisk) = 0 AND’’’’’’’’’’’’’’. pos (format, dollarsign) = 0 .’’’’’’’’’’’’’exponent found:’’’’’’’’’’’’’’’> INT CONST exponent pos := pos (format, caret);’’’’’’’’’’’’’’ exponent pos > 0 .’’’’’’’’’exponent format:’’’’’’’’’’’’’’ IF leading plus’’’’’’’’’’’’’^ THEN plus or minus + exponent field (subtext (format, 2), number, exponent pos-1) ’’’’’’’’’’ ELIF trailing plus’’’’’’’’’’N THEN exponent field (format, number, exponent pos) + plus or minus ’’’’’’’’’ ELIF trailing minus’’’’’’’’’N THEN exponent field (format, number, exponent pos) + nil or minus ’’’’’’’’’’^ ELSE blank or minus + exponent field (subtext (format, 2), number, exponent pos-1) FI .’’’’normal format: IF leading numbersign’’’’’’’. THEN number field (format, number, "", " ")’ ELIF leading point’’’’’’’’’’. THEN number field (format, number, "", " ")’ ELIF leading plus ’’’’’’’’’’> THEN number field (format, abs (number), plus or minus, " ") ELIF leading asterisk dollar. THEN number field (format, number, "$", "*") ELIF leading asterisk ’’’’’’. THEN number field (format, number, "", "*")’ ELIF leading dollarsign’’’’’. THEN number field (format, number, "$", " ")N ELSE errorstop (1005, "USING-Format fehlerhaft: " + using format); "" FI . >leading numbersign: (format SUB 1) = numbersign .’’’’’’’>leading point: (format SUB 1) = point .’’’’’’’’’’’’>leading plus: (format SUB 1) = plus .’’’’’’’’’’’’’Nleading asterisk dollar: subtext (format, 1, 3) = asterisk dollar .’’’’’’’’’’>leading asterisk: subtext (format, 1, 2) = asterisk .’Nleading dollarsign: subtext (format, 1, 2) = dollarsign .’’’’’’’’’’’’’’’>trailing minus: (format SUB LENGTH format) = minus .’’’’’’’’>trailing plus: (format SUB LENGTH format) = plus .’’’’’’’’’’>plus or minus: IF number < 0.0 THEN minus ELSE plus FI .’’’’>nil or minus: IF number < 0.0 THEN minus ELSE nil FI .’’’’’>blank or minus: IF number < 0.0 THEN minus ELSE blank FI .’’’’END PROC format number;’’’’’’’^TEXT PROC exponent field (TEXT CONST format, REAL CONST value, INT CONST exponent pos):’’’’’’’. REAL VAR number := abs (value);’’’’’’’’’’’’’. INT CONST point pos := pos (format, point);’ calc leading and trailing;’’N INT CONST new exponent :: decimal exponent (value) - leading + 1;’’’’’’’’’’’ IF abs (new exponent) >= 100> THEN "%" + mantissa + "E" + null text (new exponent, 4)’’’ ELSE mantissa + exponent’’calc leading and trailing:’’’’ INT VAR leading, trailing;’’ IF point pos = 0’’’’’’’’’’’’. THEN leading := exponent pos-1;’’’’’’’’’’’’’ trailing := 0’’’’’’’’’’ ELSE leading := point pos-1;. trailing := exponent pos-point pos-1’’’. set exp (leading - 1, number);’’’’’’’’’’’’’’ IF point pos = 0’’’’’’’’’’’’> THEN subtext (text (number, leading+1, 0), 1, leading)’’’’’’N ELSE subtext (text (number, leading+trailing+2, trailing), 2) FI .’’’’’’’’’. "E" + null text (new exponent, 3) .’’’’’’’’END PROC exponent field;’’’’’’>TEXT PROC number field (TEXT CONST format, REAL CONST value,’’> TEXT CONST pretext, lead char):’’’’’’’. INT CONST point pos :: pos (format, point);’ calc fraction;’’’’’’’’’’’’’’ calc digits; calc commata if necessary;’’. fill with lead chars and sign .’’’’’’’’’’’’calc fraction: INT VAR fraction :: 0, i;’’’. FOR i FROM point pos+1 UPTO length (format)’. WHILE (format SUB i) = numbersign’’’’’’’’’’’ REP fraction INCR 1 PER .’’ TEXT VAR valuetext;’’’’’’’’’ IF point pos = 0’’’’’’’’’’’’> THEN valuetext := digits (abs (value), 0, TRUE);’’’’’’’’’’’’> delete char (valuetext, length (valuetext))’’’’’’’’’’’’N ELSE valuetext := digits (abs (value), fraction, point pos <> 1) FI .’’’’’’calc commata if necessary:’’’’ IF comma before point’’’’’’’ THEN insert commata FI .’’’comma before point:’’’’’’’’’’’> point pos > 0 CAND (format SUB point pos-1) = comma .’’’’’insert commata:’’’’’’’’’’’’’’’. i := pos (valuetext, point)-3;’’’’’’’’’’’’’’. WHILE i > 1 CAND (valuetext SUB i) <> " "’’’. REP insert char (valuetext, ",", i);’’’’’’’’ i DECR 3fill with lead chars and sign: IF trailing minus’’’’’’’’’’’^ THEN fillby öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö(pretext + valuetext, length (format)-1, lead char) + nil or minus’’’’’’’’’’’’’’ ELIF trailing plus’’’’’’’’’’^ THEN fillby (pretext + valuetext, length (format)-1, lead char) + plus or minus’’’’’’’’’’’’’ ELIF value < 0.0’’’’’’’’’’’’N THEN fillby (pretext + minus + valuetext, length (format), lead char)’’’’’’’N ELSE fillby (pretext + valuetext, length (format), lead char) FI .’’’’’’’’’>plus or minus: IF value < 0.0 THEN minus ELSE plus FI .’’’’’>nil or minus: IF value < 0.0 THEN minus ELSE nil FI .’’’’’’>trailing minus: (format SUB LENGTH format) = minus .’’’’’’’’>trailing plus: (format SUB LENGTH format) = plus .’’’’’’’’’’END PROC numberfield;’’’’’’’’’.TEXT PROC null text (INT CONST n, digits):’’’’. TEXT VAR l result := text (abs (n), digits);. THEN replace (l result, 1, "-")’’’’’’’’’’’’’. ELSE replace (l result, 1, "+") FI;’’’’’’’’’. change all (l result, " ", "0");’’’’’’’’’’’’END PROC null text;’’’’’’’’’’’NTEXT PROC fillby (TEXT CONST source, INT CONST format, TEXT CONST with):’’’’’’ IF differenz >= 0’’’’’’’’’’’. THEN differenz * with + source’’’’’’’’’’’’’’ ELSE "%" + source FI .’’’’’.differenz: format - length (source) .’’’’’’’END PROC fillby;’’’’’’’’’’’’’’NTEXT PROC digits (REAL CONST value, INT CONST frac, BOOL CONST null):’’’’’’’’’. IF decimal exponent (value) < 0’’’’’’’’’’’’’> THEN TEXT VAR l result := text (value, frac+2, frac);’’’’’’’. IF null AND first char <> "0"’’’’’’’’’’. THEN replace (l result, 1, "0");’’’’’’’ l result’’’’’’’’’’N ELIF (NOT null AND first char = "0") OR first char = " "’’’’’’’’’’’’’’’. THEN subtext (l result, 2)’’’’’’’’’’’’’ ELSE l result FI’’’’’’’N ELSE text (value, decimal exponent (value)+frac+2, frac) FI .’’’’’’’’’’’’’’ (l result SUB 1) .’’’’’’’’’END PROC digits;’’’’’’’’’’’’’’>TEXT PROC right (TEXT CONST msg, INT CONST len):’’’’’’’’’’’’’’ IF length (msg) >= len’’’’’’ THEN subtext (msg, 1, len)’’. ELSE (len - length (msg)) * " " + msg FI’’’’END PROC right;’’’’’’’’’’’’’’’END PACKET basic using;’’’’’’’NPACKET basic output (* Autor: R. Ruland *)’’’’N (* Stand: 28.08.1987/rr/mo *)’’’’ DEFINES basic page,’’’’. width, ’’’’’’’’’’’’’’. init output, ’’’’’’’’’’’’’’ basic out,’’’’’ basic write,’’’ tab,’’’’’’’’’’’ next zone,’’’’’ next line,’’’’’ next page,’’’’’ cursor x pos,’’ pos,’’’’’’’’’’’ csrlin,’’’’’’’’ l pos,’’’’’’’’’. switch to printout file,’’’’’’’> switch back to old sysout state:’’’’’’’’’’’’’’’NLET zone width = 16; (* sd.ddddddEsdddb (s = sign, d = digit, b = blank) *).LET printfile name = "BASIC LPRINT OUTPUT";’’’>INT VAR screen width, x cursor, y cursor, line no;’’’’’’’’’’’’.BOOL VAR paging := FALSE, first time,’’’’’’’’’. in lprint; (* mo *)’’’’’’’’’’’’’’NTEXT VAR buffer, output line, last sysout file, old sysout, char;’’’’’’’’’’’’’.PROC basic page (BOOL CONST status):’’’’’’’’’’ paging := status’’’’’’’’’’’’END PROC basic page;’’’’’’’’’’>BOOL PROC basic page: paging END PROC basic page;’’’’’’’’’’’PROC width (INT CONST max):’’’ IF max < 0N THEN errorstop (1005, "WIDTH: negatives Angabe: " + text (max))’’’’’’’’ ELIF max = 0 THEN screen width := 1’. ELSE screen width := max’’’’’’’’’’’’’’’ last sysout file := "";’’’’’END PROC width;’’’’’’’’’’’’’’’>INT PROC width : screen width END PROC width;’’’’’’’’’’’’’’’PROC init output:’’’’’’’’’’’’’ clear using; width (max (1, x size));’’’’ line no := 1;’’’’’’’’’’ output line := "";’’’’’’’’’ first time := TRUE;’’’’’’’ in lprint := FALSE’’’’’’’’’’END PROC init output;’’’’’’’’’^PROC basic out (INT CONST i): bas out (basic text (i) + " ") END PROC basic out;’’’’’’’’’’^PROC basic out (REAL CONST r): bas out (basic text (r) + " ") END PROC basic out;’’’’’’’’’’^PROC basic out (TEXT CONST t): bas out (basic text (t)) END PROC basic out;’’’’’’’’’’^PROC basic write (INT CONST i): bas out (basic text (i)) END PROC basic write;’’’’’’’’’’’’’’^PROC basic write (REAL CONST r): bas out (basic text (r)) END PROC basic write;’’’’’’’’’’’’’’^PROC basic write (TEXT CONST t): bas out (basic text ("""" + t + """")) END PROC basic write;PROC bas out (TEXT CONST msg): IF length (msg) > free’’’’’’ THEN IF first time’’’’’’’. THEN first time := FALSE;’’’’’’’’ next line;’’. bas out (msg);’’’’’’’’’’’’’’> ELSE buffer := subtext (msg, 1, free);’’’’’’’’’’’. IF sysout = ""’’’’’’’’’’’’’’. THEN out (buffer)’’’’’’’’’. ELSE sysout write (buffer) FI;’’’’’’’’’ next line;’’> buffer := subtext (msg, free + 1);’’’’’’’’’’. bas out (buffer);’’’’’’’’’’’ ELSE first time := TRUE;’ IF sysout = ""’’’’’’ THEN out (msg)’’’’. ELSE sysout write (msg)’’’’’’’’’’’. . free : screen width - x cursor + 1’’’’’’’’END PROC bas out;’’’’’’’’’’’’’PROC tab (INT CONST n):’’’’’’’. THEN tab position out of range’’’’’’’’’ ELIF n > screen width’’’’’’’. THEN tab (n MOD screen width);’’’’’’’’’ ELIF x cursor > n’’’’’’’’’’’ THEN next line;’’’’’’’’ tab (n);’’’’’’’’’’ ELIF sysout = ""’’’’’’’’’’’’. THEN cursor (n, y cursor);’’’’’’’’’’’’’. ELSE buffer := (n - x cursor) * " ";’’’. sysout write (buffer)’’’’’’’’’’’’’. . tab position out of range :’’’’’’’’’’’’’’’. IF x cursor <> 1 THEN next line FI;’’’’’. write ("WARNUNG : TAB-Position <= 0");’’ next line;’’’’’’’’’’’’’’PROC next zone:’’’’’’’’’’’’’’’. IF x cursor > screen width - zone width’’’ THEN next line;’’’’’’’’ ELIF sysout = ""’’’’’’’’’’’’ THEN free TIMESOUT " ";. ELSE buffer := free * " ";’’’’’’’’’’’’’. sysout write (buffer)’’’’’’’’’’’’’N . free : ((x cursor - 1) DIV zone width + 1) * zone width - x cursor + 1’’’’END PROC next zone;’’’’’’’’’’’PROC next line :’’’’’’’’’’’’’’ IF sysout = ""’’’’’’’’’’’’’’ THEN next line on screen’ ELSE line;’’’’’’’’’’’’’’’> write (""); (* generates new record *)’ output line := "";’’ . next line on screen:’’’’’’ line no INCR 1;’’’’’’’’’. IF paging CAND line no > y size’’’’’’’’’ THEN IF in last line’’ THEN warte;’’’’. ELSE out (""13""10"");’’’’’’’’’. line no := y cursor + 1;’’ FI;’’’’’’’’’’’’’’ ELIF NOT paging’’’’’’’’’. THEN char := incharety;’’’’’’’’’’’’’’’ IF char <> ""’’’’. THEN IF char = "+"’’’’’’’’’’’’’. THEN paging := TRUE’’’’’. ELSE type (char)’’’’’’’’ FI’’’’’’’’ FI;’’’’’’’’’’’’’’ out (""13""10"")’ ELSE out (""13""10"")’ . in last line :’’’’’’’’’’’’ get cursor;’’’’’’’’’’’’’ y cursor = y size’’’’’’’. cursor (x size - 2, y size);’’’’’’’’’’’’ out (">>");’’’’’’’’’’’’’ inchar (char);’’’’’’’’’’ IF char = ""13""’’’’’’ THEN next page’’’’’ ELIF char = ""10""’’’’’’. THEN out (""8""8" "13""10"") ’’’’’ ELIF char = ""27""’’’’’’. THEN clear editor bööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööuffer;’’’’’’’’’’. errorstop (1, "")’’’’’’’’’’’’’ ELIF char = "-"’’’’’’’’’. THEN out (""8""8" "13""10"");’’’’’ line no := 1;’. paging := FALSE;’’’’’’’’’’’’’. ELSE out (""8""8" "13""10"");’’’’’ line no := 1;’ . clear editor buffer:’’. REP UNTIL get charety = "" PER;’’’’’END PROC next line;’’’’’’’’’’’PROC next page:’’’’’’’’’’’’’’’ IF sysout = ""’’’’’’’’’’’’’’ THEN out (""1""4"")’’’’’’’ clear using; line no := 1;’’’’’’’’’’’ output line := "";’’’’’’’’’’END PROC next page;’’’’’’’’’’’>INT PROC pos (REAL CONST dummy): (* mo *)’’’’’’’’’’’ cursor x pos>INT PROC pos (INT CONST dummy): (* mo *)’’’’’’’’’’’ cursor x posINT PROC cursor x pos :’’’’’’’END PROC cursor x pos;’’’’’’’’>INT PROC csrlin: (* mo *)’’’’’’’’END PROC csrlin;’’’’’’’’’’’’’’PROC get cursor :’’’’’’’’’’’’’ IF sysout = ""’’’’’’’’’’’’’’. THEN get cursor (x cursor, y cursor);’’’’. ELSE x cursor := LENGTH output line + 1;’END PROC get cursor;’’’’’’’’’’>INT PROC l pos (REAL CONST dummy): (* mo *)’END PROC l pos;’’’’’’’’’’’’’’’>INT PROC l pos (INT CONST dummy): (* mo *)’. INT VAR lprint position :: 1;’’’’’’’’’’’’’’’ IF exists (printfile name)’’ THEN disable stop;’’’’’’’’N FILE VAR printfile :: sequential file (modify, printfile name);’’’’’’. IF lines (printfile) > 0’’’’’’’’’’’’’> THEN to line (printfile, lines (printfile));’’’’’’’> lprint position := len (printfile) + 1’’’’’’’’ output (printfile)’’’ lprint position’’’’’’’’’’’’’END PROC l pos;’’’’’’’’’’’’’’’>PROC switch to printout file: (* mo *)’’ in lprint := TRUE;’’’’’’’’’’ old sysout := sysout;’’’’’’’. careful sysout (printfile name);’’’’’’’’’’’’.END PROC switch to printout file;’’’’’’’’’’’’’>PROC switch back to old sysout state: (* mo *)’’ IF in lprint. THEN careful sysout (old sysout);’’’’’’’’’ in lprint := FALSE’’’.END PROC switch back to old sysout state;’’’’’.PROC sysout write (TEXT CONST string):’’’’’’’’ check sysout;’’’’’’’’’’’’’’’ write (string);’’’’’’’’’’’’’ output line CAT string.’’’’’. IF sysout <> last sysout file’’’’’’’’’’’’’’’. THEN careful sysout (sysout)’’’’’’’’’’’’’’END PROC sysout write;’’’’’’’’NPROC careful sysout (TEXT CONST new sysout): (* mo *)’’’’’’’’IF new sysout <> ""’’’’’’’’’’’ THEN disable stop;’’’’’’’’’’N FILE VAR outfile :: sequential file (modify, new sysout);’’’’’’’’’’’’’’> max line length (outfile, screen width);’’’’’’’’’’’’’’’. last sysout file := sysout;’’’’’’’’’’’’ IF lines (outfile) > 0’> THEN to line (outfile, lines (outfile));’’’’’’’’’’’’’> read record (outfile, output line);’’’’’’’’’’’’’. delete record (outfile)’’’’’’’’’. ELSE output line := ""’’’’’’’’’’’’’’’ sysout (new sysout);’’’ write (output line);’’’ ELSE sysout ("")’’’’’’’’’’’’END PROC careful sysout;’’’’’’END PACKET basic output;’’’’’’NPACKET basic input (* Autor: R. Ruland *)’N (* Stand: 27.10.1987/rr/mo *)’ DEFINES init input,’’’’. read input, ’’’’’’’’’’’’’ check input,’’’ assign input,’’. assign input line,’’’’’’’’’’’’’ input ok,’’’’’’. input eof: ’’’’’’’’’LET comma = ",",’’ quote = """",’ wrong type = 1,’’’’ insufficient data = 2,’’’’ too much data = 3,’’’’ overflow = 4,’’’’ int overflow = 4,’’’’ real overflow = 6;’’’’.INT VAR input line pos, input error no;’’’’’’’BOOL VAR on terminal;’’’’’’’’’NTEXT VAR input line :: "", previous input line := "", input value;’’’’’’’’’’’’>. first quote found : (input value SUB 1) = quote’’’’’’’’’’’’’PROC init input :’’’’’’’’’’’’’ input error no := 0;’’’ input line pos := 0;’’’ input line := "";’’ previous input line := "";’’END PROC init input;’’’’’’’’’’NPROC read input (BOOL CONST cr lf, TEXT CONST msg, BOOL CONST question mark):’. on terminal := sysout <> "" AND sysin = "";’ check input error;’’’’’’’’’’ out string (msg);’’’’’’’’’’’. IF question mark THEN out string ("? ") FI;’ IF sysin <> ""’’’’’’’’’’’’’’. THEN getline (input line);’’’’’’’’’’’’’’’ ELSE editget input line;’ out string (input line);’’’’ IF crlf THEN out line FI;’’’ input line pos := 0;’’’’’’’’ input error no := 0;’’’’’’’’ . check input error :’’’’’’’ IF input error no = 0’’’. THEN input line := "";’’’’’’’’’’’’’’’ ELSE IF sysin = ""’’’> THEN BOOL CONST old basic page := basic page;. basic page (FALSE);’’’’’> IF cursor x pos <> 1 THEN next line FI;’^ basic out ("?Eingabe wiederholen ! (" + error text + ")");’’’’’’’’’’’’’’. next line;’’’’’’’’’’’’’’> basic page (old basic page);’’’’’’’’’’’’N ELSE errorstop (1080,"INPUT-Fehler (" + error text +’’’’’’’’’N ") : >" + input line + "<");’’’ FI;’’’’’’’’’’’’’ . error text :’’’’’’’’’. SELECT input error no OF’’’’’’’’’’’> CASE wrong type : "falscher Typ"’’’’’’’’’’> CASE insufficient data : "zu wenig Daten"’’’’’’’’> CASE too much data : "zu viele Daten"’’’’’’’’> CASE overflow : "Ųberlauf"’’’’’’’’’’’’’’. OTHERWISE : ""’’’’’’ END SELECT’’’’’’’’’ . editget input line :’’’’’’ TEXT VAR exit char;’’’’’ INT VAR x, y;’’’’’’’’’’’ get cursor (x, y);’’’’’’ REP IF width - x < 1’’’’. THEN out (""13""10"");’’’’’’’’’’’’. get cursor (x, y)’’’’’’’’’’’’^ editget (input line, max text length, width - x, "", "k", exit char);’’’’’’’’’’’’’’’ cursor (x, y);’’’’’’. IF exit char = ""27"k"’’’’’’’’’’’’’’> THEN input line := previous input line;’’’’’’’’’’> ELSE previous input line := input line;’’’’’’’’’’. LEAVE editget input line;’’’END PROC read input;’’’’’’’’’’.PROC out string (TEXT CONST string) :’’’’’’’’’ basic out (string);’’’’’’’’’. IF on terminal THEN out (string) FI;’’’’’’’’END PROC out string;’’’’’’’’’’PROC out line :’’’’’’’’’’’’’’’. IF on terminal THEN out (""13""10"") FI;’’’’END PROC out line;’’’’’’’’’’’’.BOOL PROC check input (INT CONST type) :’’’’’’ get next input value;’’’’’’’. input value := compress (input value);’’’’’’ set conversion (TRUE);’’’’’’ SELECT type OF’’’’’’’’’’’’’’ CASE 1 : check int input’’ CASE 2 : check real input’ CASE 3 : check text input’N IF NOT last conversion ok THEN input error no := wrong type FI;’’’’’’’’’’’’’ input error no = 0’’’’’’’’’’ . check int input :’’’’’’’’’ IF input value <> ""’’’’ THEN disable stop;’’’. INT VAR help int value;’’’’’’’’’> help int value := int (input value);’’’’’’’’’’’’> IF is error CAND error code = int overflow’’’’’’. THEN clear error;’’’’’’’’’’’’> input error no := overflow;’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööenable stop;’’’’ . check real input :’’’’’’’’ IF input value <> ""’’’’ THEN disable stop;’’’. REAL VAR help real value;’’’’’’’> help real value := val (input value);’’’’’’’’’’’> IF is error CAND (error code = real overflow’’’’n OR error code = int overflow) (* <-- Aufgrund eines Fehlers in 'real' *)’’’’’’. THEN clear error;’’’’’’’’’’’’> input error no := overflow;’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’ enable stop;’’’’ . check text input :’’’’’’’’N (* IF input value = "" THEN input error no := wrong type FI; *)’’’’’’’’’. IF NOT is quoted string CAND quote found. THEN input error no := wrong type’’’’ . is quoted string :’’’’> first quote found CAND last quote found’’’’’’’’’’’’’ . last quote found :> (input value SUB LENGTH input value) = quote’’’’ . quote found :’’’’’’’’’. pos (input value, quote) > 0’’’’’’’’END PROC check input;’’’’’’’’’.PROC assign input (INT VAR int value) :’’’’’’’ get next input value;’’’’’’’. int value := int (input value);’’’’’’’’’’’’’END PROC assign input;’’’’’’’’.PROC assign input (REAL VAR real value) :’’’’’ get next input value;’’’’’’’. real value := val (input value);’’’’’’’’’’’’END PROC assign input;’’’’’’’’.PROC assign input (TEXT VAR string value) :’’’ get next input value;’’’’’’’. input value := compress (input value);’’’’’’ IF first quote found’’’’’’’’N THEN string value := subtext (input value, 2, LENGTH input value -1)’’’’’. ELSE string value := input value’’’’’’’’’END PROC assign input;’’’’’’’’>PROC assign input line (TEXT VAR string line) :’’’’’’’’’’’’’’’ string line := input line;’’END PROC assign input line;’’’NPROC get next input value : (* F27/rr *)’’’’’. IF input line pos > LENGTH input line ’’’’’’. THEN input value := "";’’’’’’’’’’’’’’’. input error no := insufficient data;. ELSE IF next non blank char = quote’’’’’’. THEN get quoted string’’’’’’’’’’’. ELSE get unquoted string’’’’’’’’’ . next non blank char :’’’’’n INT CONST next non blank char pos := pos (input line, ""33"", ""255"", input line pos + 1);’’’’’’’’’’’’’. input line SUB next non blank char pos’’ . get quoted string :’’’’’’’^ INT CONST quote pos := pos (input line, quote, next non blank char pos + 1);’’’’’’’’’’’’ IF quote pos = 0’’’’’’’’N THEN input value := subtext (input line, next non blank char pos);> input line pos := LENGTH input line + 1;’’’’’’’’. input error no := wrong type;’’’^ ELSE input value := subtext (input line, next non blank char pos, quote pos);’’’’’^ input line pos := pos (input line, ""33"", ""255"", quote pos + 1);’’’’’’’’’’’’’. IF input line pos = 0’’’’’’’’’N THEN input line pos := LENGTH input line + 1;’’’’’’’’’’’’’’> ELIF (input line SUB input line pos) <> comma’’’> THEN input error no := wrong type;’’’’’’’’’. input line pos DECR 1; FI;’’’’’’’’’’’’’ . get unquoted string :’’’’’N INT VAR comma pos := pos (input line, comma, input line pos + 1);’’’’’’’ IF comma pos = 0’’’’’’’’N THEN input value := subtext (input line, input line pos + 1);’’’’’> input line pos := LENGTH input line + 1;’’’’’’’’^ ELSE input value := subtext (input line, input line pos + 1, comma pos - 1);’’’’’’. input line pos := comma pos;’’’’END PROC get next input value;BOOL PROC input ok:’’’’’’’’’’’. IF input line pos <= LENGTH input line’’’’’’. THEN input error no := too much data FI;’ input line pos := 0;’’’’’’’’ input error no = 0’’’’’’’’’’END PROC input ok;’’’’’’’’’’’’>BOOL PROC input eof: input line = "" END PROC input eof;’’’’END PACKET basic input; ’’’’’’NPACKET basic std using io (* Autor: R. Ruland *)’N (* Stand: 26.10.87/rr/mo *)’ DEFINES init rnd:’’’’’’PROC init rnd: REAL VAR init;’’’’’’’’’’’’’’N REP read input (TRUE, "Startwert des Zufallszahlengenerators ? ", FALSE);’’’N UNTIL check input (2) CAND input ok PER; (* F24/rr *)’’ assign input (init);’’’’’’’’ init rnd (init);’’’’’’’’’’’’END PROC init rnd;’’’’’’’’’’’’END PACKET basic std using io;ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’23.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’BASIC.Administration’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Öü’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bxa€ė’’`]ė[’’’’ė[ė[ač’ž’’’’a€’’’’’’’’’’’’’’€’)’’’’’’’’’’’`’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’Q’M’’’’’’’’’’’’’’’’’’’”’M’’’’’’’’’’’’’’’’’’’ń’M’’’’’’’’’’’’’’’’’’’A‚’M’’’’’’’’’’’’’’’’’’’‘‚’M’’’’’’’’’’’’’’’’’’’į‚’M’’’’’’’’’’’’’’’’’’’1ƒ’M’’’’’’’’’’’’’’’’’’’ƒ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’у’L’’’’’’’’’’’’’’’’’’’!„’L’’’’’’’’’’’’’’’’’’’q„’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1…’=’’’’’’’’’’’’’’’’’’’q…’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’±…’,’’’’’’’’’’’’’’’’’’’į…’7’’’’’’’’’’’’’’’’’’’!†’2’’’’’’’’’’’’’’’’’’’a†’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’”†’,’’’’’’’’’’’’’’’’’’’ц’!’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’Q‡’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’±‡’(’’’’’’’’’’’’’’’’’’’ᇒ5’’’’’’’’’’’’’’’’’’’!ˆ’+’’’’’’’’’’’’’’’’’’’Qˆ’+’’’’’’’’’’’’’’’’’’’ˆ’&’’’’’’’’’’’’’’’’’’’±ˆ’.’’’’’’’’’’’’’’’’’’’ሒ)’’’’’’’’’’’’’’’’’’’‰’+’’’’’’’’’’’’’’’’’’’A‰’,’’’’’’’’’’’’’’’’’’’q‰’4’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’щ’ ’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’AŠ’!’’’’’’’’’’’’’’’’’’’qŠ’’’’’’’’’’’’’’’’’’’’‘Š’$’’’’’’’’’’’’’’’’’’’ĮŠ’#’’’’’’’’’’’’’’’’’’’ńŠ’$’’’’’’’’’’’’’’’’’’’!‹’$’’’’’’’’’’’’’’’’’’’Q‹’#’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’”‹’#’’’’’’’’’’’’’’’’’’’ы’8’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’Œ’1’’’’’’’’’’’’’’’’’’’QŒ’9’’’’’’’’’’’’’’’’’’’‘Œ’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ь’#’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’3’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’э’$’’’’’’’’’’’’’’’’’’’Ž’%’’’’’’’’’’’’’’’’’’’1Ž’$’’’’’’’’’’’’’’’’’’’aŽ’)’’’’’’’’’’’’’’’’’’’‘Ž’0’’’’’’’’’’’’’’’’’’’ю’.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’#’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’я’(’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’Q’,’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’%’’’’’’’’’’’’’’’’’’’ѐ’’’’’’’’’’’’’’’’’’’’ń’,’’’’’’’’’’’’’’’’’’’!‘’&’’’’’’’’’’’’’’’’’’’Q‘’%’’’’’’’’’’’’’’’’’’’‘’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‘’’’’’’’’’’’’’’’’’’’’ё’’’’’’’’’’’’’’’’’’’’ń‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’a’’$’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’M’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’!“’’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±“’N’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’!”’ ’’’’’’’’’’’’’’’’’’’Q”’'’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’””’&’’’’’’’’’’’’’’’’’’’є’’’’’’’’’’’’’’’’’’’’’’ note line;’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’’’ note line .’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1•’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q•’A’’’’’’’’’’’’’’’’’’’”•’+’’’’’’’’’’’’’’’’’’’ѕ’-’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’’’ on screen;’’’’’’’’’’’!–’’’’’’’’’’’’’’’’’’’’A–’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a–’’’’’’’’’’’’’’’’’’’’–’%’’’’’’’’’’’’’’’’’’’±–’’’’’’’’’’’’’’’’’’’’į–’-’’’’’’’’’’’’’’’’’’’—’&’’’’’’’’’’’’’’’’’’’A—’%’’’’’’’’’’’’’’’’’’’q—’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’”—’’’’’’’’’’’’’’’’’’’’Į—’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ on screen:’’’’’’’’’’’ń—’’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’1˜’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q˜’’’’’’’’’’’’’’’’’’’’q˜’’’’’’’’’’’’’’’’’’’’‘˜’ ’’’’’’’’’’’’’’’’’’’Į˜’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᘒ’’’’’’’’’’’’’’’’’’’’’ IF warnings’’’’’’’’™’’’’’’’’’’’’’’’’’’’’!™’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’™’'’’’’’’’’’’’’’’’’’’’±™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’љ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń™’L’’’’’’’’’’’’’’’’’’’Aš’L’’’’’’’’’’’’’’’’’’’‘š’"’’’’’’’’’’’’’’’’’’’Įš’*’’’’’’’’’’’’’’’’’’’ńš’$’’’’’’’’’’’’’’’’’’’!›’&’’’’’’’’’’’’’’’’’’’Q›’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’›’M’’’’’’’’’’’’’’’’’’’ћ’G’’’’’’’’’’’’’’’’’’’!œ’G’’’’’’’’’’’’’’’’’’’qœ’G’’’’’’’’’’’’’’’’’’’Įœ’5’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’1’M’’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’#’’’’’’’’’’’’’’’’’’’’’ IF n < 0’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’Qž’ ’’’’’’’’’’’’’’’’’’’ž’ ’’’’’’’’’’’’’’’’’’’±ž’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įž’!’’’’’’’’’’’’’’’’’’’Ÿ’!’’’’’’’’’’’’’’’’’’’AŸ’!’’’’’’’’’’’’’’’’’’’qŸ’'’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ character :’’’’’’’’’’”Ÿ’’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’! ’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’!’’’’’’’’’’’’’’’’’’’’’ SELECT n OF’’’’’’’’± ’’’’’’’’’’’’’’’’’’’’Ń ’’’’’’’’’’’’’’’’’’’’ń ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’%’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’!¢’ ’’’’’’’’’’’’’’’’’’’Q¢’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’”¢’’’’’’’’’’’’’’’’’’’’Į¢’B’’’’’’’’’’’’’’’’’’’£’+’’’’’’’’’’’’’’’’’’’A£’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a£’(’’’’’’’’’’’’’’’’’’’‘£’’’’’’’’’’’’’’’’’’’’’’ THEN ""’’’’’’’’’’’’±£’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᣒ’’’’’’’’’’’’’’’’’’’¤’6’’’’’’’’’’’’’’’’’’’A¤’7’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’”¤’’’’’’’’’’’’’’’’’’’’Ѥ’)’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’!„’-’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’q„’/’’’’’’’’’’’’’’’’’’’’’ result .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń„’+’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’!¦’’’’’’’’’’’’’’’’’’’’1¦’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q¦’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’q¦’’’’’’’’’’’’’’’’’’’’‘¦’’’’’’’’’’’’’’’’’’’’±¦’"’’’’’’’’’’’’’’’’’’’ᦒ’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’!§’ ’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ result .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q§’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q§’#’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’”§’’’’’’’’’’’’’’’’’’’’Į§’!’’’’’’’’’’’’’’’’’’’ń§’’’’’’’’’’’’’’’’’’’’’’ dummy .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ shift char:’’’’’’’’’’Ø’-’’’’’’’’’’’’’’’’’’’AØ’/’’’’’’’’’’’’’’’’’’’Ø’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮØ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᨒ%’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’1©’!’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’’’ dummy .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ deshift char:’’’’’’’’©’-’’’’’’’’’’’’’’’’’’’±©’.’’’’’’’’’’’’’’’’’’’į©’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŖ’M’’’’’’’’’’’’’’’’’’’‘Ŗ’M’’’’’’’’’’’’’’’’’’’įŖ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1«’’’’’’’’’’’’’’’’’’’’A«’(’’’’’’’’’’’’’’’’’’’’’("",’’’’’’’’’’’’’’’’’q«’.’’’’’’’’’’’’’’’’’’’”«’\’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’!®’ø’’’’’’’’’’’’’’’’’’’į®’ž’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’’’ "",’’’’’’’’’’’’’’’’’”Æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮÆ’7’’’’’’’’’’’’’’’’’’’°’;’’’’’’’’’’’’’’’’’’’’’ THEN FALSE’’’’’’’’’A°’/’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’’’ TRUE’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”°’’’’’’’’’’’’’’’’’’’’Į°’!’’’’’’’’’’’’’’’’’’’ń°’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’1±’"’’’’’’’’’’’’’’’’’’’a±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ this words:’’’’’’’’’’q±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘±’’’’’’’’’’’’’’’’’’’’±±’’’’’’’’’’’’’’’’’’’’ѱ’’’’’’’’’’’’’’’’’’’’ń±’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1²’$’’’’’’’’’’’’’’’’’’’a²’;’’’’’’’’’’’’’’’’’’’’’ THEN 0’’’’’’’’’’’’’”²’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ѳ’’’’’’’’’’’’’’’’’’’’ń²’!’’’’’’’’’’’’’’’’’’’!³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A³’’’’’’’’’’’’’’’’’’’’a³’"’’’’’’’’’’’’’’’’’’’‘³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ this words:’’’’’’’’’’”³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į³’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į³’%’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’1“’.’’’’’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’“’6’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ "" .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ this name:’’’’’’’’’’’Į“’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ next code:’’’’’’’’’’’µ’>’’’’’’’’’’’’’’’’’’’’’ IF c = 0’’’’’’’’’’’Aµ’’’’’’’’’’’’’’’’’’’’aµ’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”µ’8’’’’’’’’’’’’’’’’’’’įµ’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!¶’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¶’N’’’’’’’’’’’’’’’’’’’‘¶’N’’’’’’’’’’’’’’’’’’’į¶’-’’’’’’’’’’’’’’’’’’’·’'’’’’’’’’’’’’’’’’’’’A·’(’’’’’’’’’’’’’’’’’’’q·’,’’’’’’’’’’’’’’’’’’’”·’5’’’’’’’’’’’’’’’’’’’į·’E’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ø’’’’’’’’’’’’’’’’’’’’Qø’!’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’”ø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įø’B’’’’’’’’’’’’’’’’’’’¹’ ’’’’’’’’’’’’’’’’’’’A¹’3’’’’’’’’’’’’’’’’’’’¹’/’’’’’’’’’’’’’’’’’’’Į¹’5’’’’’’’’’’’’’’’’’’’ŗ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aŗ’’’’’’’’’’’’’’’’’’’’aŗ’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’”ŗ’;’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’įŗ’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1»’’’’’’’’’’’’’’’’’’’’Q»’’’’’’’’’’’’’’’’’’’’q»’’’’’’’’’’’’’’’’’’’’”»’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Į»’'’’’’’’’’’’’’’’’’’’’ń»’’’’’’’’’’’’’’’’’’’’!¼’$’’’’’’’’’’’’’’’’’’’Q¼’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”¼’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į¼’H’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’1½’)’’’’’’’’’’’’’’’’’’’a½’’’’’’’’’’’’’’’’’’’’½’!’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ in table:’’’’’’’’’’’’±½’’’’’’’’’’’’’’’’’’’’į½’"’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’1¾’8’’’’’’’’’’’’’’’’’’’q¾’'’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ FALSE .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”¾’’’’’’’’’’’’’’’’’’’’±¾’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į¾’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!æ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aæ’1’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’”æ’’’’’’’’’’’’’’’’’’’’Įæ’&’’’’’’’’’’’’’’’’’’’ńæ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’1Ą’’’’’’’’’’’’’’’’’’’’QĄ’’’’’’’’’’’’’’’’’’’’qĄ’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Ą’’’’’’’’’’’’’’’’’’’’ĮĄ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’!Į’+’’’’’’’’’’’’’’’’’’’QĮ’’’’’’’’’’’’’’’’’’’’qĮ’’’’’’’’’’’’’’’’’’’’‘Į’’’’’’’’’’’’’’’’’’’’±Į’1’’’’’’’’’’’’’’’’’’’ńĮ’,’’’’’’’’’’’’’’’’’’’!Ā’%’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĀ’’’’’’’’’’’’’’’’’’’’aĀ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ end of chain:’’’’’’’’‘Ā’1’’’’’’’’’’’’’’’’’’’ŃĀ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńĀ’’’’’’’’’’’’’’’’’’’’Ć’#’’’’’’’’’’’’’’’’’’’AĆ’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qĆ’’’’’’’’’’’’’’’’’’’’‘Ć’,’’’’’’’’’’’’’’’’’’’ĮĆ’&’’’’’’’’’’’’’’’’’’’ńĆ’’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ä’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QÄ’,’’’’’’’’’’’’’’’’’’’’’ INT VAR j;’’’’’’’’’’’ index := 0;’’’’’’’’Ä’!’’’’’’’’’’’’’’’’’’’±Ä’’’’’’’’’’’’’’’’’’’’ŃÄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÄ’’’’’’’’’’’’’’’’’’’’Å’’’’’’’’’’’’’’’’’’’’1Å’"’’’’’’’’’’’’’’’’’’’aÅ’’’’’’’’’’’’’’’’’’’’Å’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ wrap around:’’’’’’’’’ŃÅ’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’1Ę’’’’’’’’’’’’’’’’’’’’QĘ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qĘ’"’’’’’’’’’’’’’’’’’’’”Ę’’’’’’’’’’’’’’’’’’’’ĮĘ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įĘ’"’’’’’’’’’’’’’’’’’’’Ē’’’’’’’’’’’’’’’’’’’’1Ē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QĒ’%’’’’’’’’’’’’’’’’’’’Ē’’’’’’’’’’’’’’’’’’’’‘Ē’6’’’’’’’’’’’’’’’’’’’ŃĒ’"’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’!Č’’’’’’’’’’’’’’’’’’’’AČ’ ’’’’’’’’’’’’’’’’’’’qČ’>’’’’’’’’’’’’’’’’’’’’’ ""’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃČ’[’’’’’’’’’’’’’’’’’’’1É’’’’’’’’’’’’’’’’’’’’QÉ’’’’’’’’’’’’’’’’’’’’qÉ’’’’’’’’’’’’’’’’’’’’‘É’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±É’#’’’’’’’’’’’’’’’’’’’įÉ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ź’\’’’’’’’’’’’’’’’’’’’aŹ’2’’’’’’’’’’’’’’’’’’’”Ź’’’’’’’’’’’’’’’’’’’’ĮŹ’’’’’’’’’’’’’’’’’’’’įŹ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’!Ė’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AĖ’"’’’’’’’’’’’’’’’’’’’qĖ’#’’’’’’’’’’’’’’’’’’’”Ė’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮĖ’@’’’’’’’’’’’’’’’’’’’Ģ’$’’’’’’’’’’’’’’’’’’’AĢ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aĢ’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ģ’L’’’’’’’’’’’’’’’’’’’įĢ’L’’’’’’’’’’’’’’’’’’’1Ķ’'’’’’’’’’’’’’’’’’’’’aĶ’,’’’’’’’’’’’’’’’’’’’‘Ķ’*’’’’’’’’’’’’’’’’’’’ĮĶ’'’’’’’’’’’’’’’’’’’’’ńĶ’M’’’’’’’’’’’’’’’’’’’AĪ’M’’’’’’’’’’’’’’’’’’’‘Ī’)’’’’’’’’’’’’’’’’’’’ĮĪ’+’’’’’’’’’’’’’’’’’’’ńĪ’(’’’’’’’’’’’’’’’’’’’!Ļ’'’’’’’’’’’’’’’’’’’’’QĻ’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ļ’M’’’’’’’’’’’’’’’’’’’ŃĻ’:’’’’’’’’’’’’’’’’’’’Š’:’’’’’’’’’’’’’’’’’’’QŠ’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Š’M’’’’’’’’’’’’’’’’’’’įŠ’+’’’’’’’’’’’’’’’’’’’Ń’A’’’’’’’’’’’’’’’’’’’aŃ’@’’’’’’’’’’’’’’’’’’’±Ń’A’’’’’’’’’’’’’’’’’’’Ņ’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ņ’Z’’’’’’’’’’’’’’’’’’’‘Ņ’6’’’’’’’’’’’’’’’’’’’ŃŅ’6’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’1Ó’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QÓ’’’’’’’’’’’’’’’’’’’’qÓ’4’’’’’’’’’’’’’’’’’’’±Ó’*’’’’’’’’’’’’’’’’’’’įÓ’’’’’’’’’’’’’’’’’’’’Ō’;’’’’’’’’’’’’’’’’’’’AŌ’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ō’<’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’ĮŌ’)’’’’’’’’’’’’’’’’’’’ńŌ’’’’’’’’’’’’’’’’’’’’Õ’'’’’’’’’’’’’’’’’’’’’AÕ’’’’’’’’’’’’’’’’’’’’aÕ’'’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Õ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±Õ’+’’’’’’’’’’’’’’’’’’’įÕ’’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’!Ö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AÖ’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ö’Q’’’’’’’’’’’’’’’’’’’įÖ’?’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1×’’’’’’’’’’’’’’’’’’’’Q×’’’’’’’’’’’’’’’’’’’’q×’’’’’’’’’’’’’’’’’’’’‘×’’’’’’’’’’’’’’’’’’’’±×’!’’’’’’’’’’’’’’’’’’’į×’F’’’’’’’’’’’’’’’’’’’1Ų’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŲ’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’”Ų’C’’’’’’’’’’’’’’’’’’’ńŲ’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ł’’’’’’’’’’’’’’’’’’’’QŁ’+’’’’’’’’’’’’’’’’’’’Ł’C’’’’’’’’’’’’’’’’’’’ŃŁ’’’’’’’’’’’’’’’’’’’’Ś’’’’’’’’’’’’’’’’’’’’1Ś’T’’’’’’’’’’’’’’’’’’’‘Ś’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃŚ’ ’’’’’’’’’’’’’’’’’’’Ū’!’’’’’’’’’’’’’’’’’’’1Ū’+’’’’’’’’’’’’’’’’’’’aŪ’>’’’’’’’’’’’’’’’’’’’”Ū’D’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŪ’’’’’’’’’’’’’’’’’’’’Ü’F’’’’’’’’’’’’’’’’’’’aÜ’F’’’’’’’’’’’’’’’’’’’±Ü’’’’’’’’’’’’’’’’’’’’ŃÜ’’’’’’’’’’’’’’’’’’’’ńÜ’)’’’’’’’’’’’’’’’’’’’!Ż’5’’’’’’’’’’’’’’’’’’’aŻ’5’’’’’’’’’’’’’’’’’’’”Ż’’’’’’’’’’’’’’’’’’’’ĮŻ’,’’’’’’’’’’’’’’’’’’’ńŻ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’1Ž’-’’’’’’’’’’’’’’’’’’’aŽ’=’’’’’’’’’’’’’’’’’’’”Ž’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮŽ’ ’’’’’’’’’’’’’’’’’’’ńŽ’&’’’’’’’’’’’’’’’’’’’!ß’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qß’!’’’’’’’’’’’’’’’’’’’ß’&’’’’’’’’’’’’’’’’’’’±ß’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įß’’’’’’’’’’’’’’’’’’’’ą’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aą’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qą’*’’’’’’’’’’’’’’’’’’’”ą’’’’’’’’’’’’’’’’’’’’±ą’’’’’’’’’’’’’’’’’’’’Ńą’ ’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’!į’’’’’’’’’’’’’’’’’’’’Aį’(’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’qį’’’’’’’’’’’’’’’’’’’’‘į’’’’’’’’’’’’’’’’’’’’±į’8’’’’’’’’’’’’’’’’’’’ńį’’’’’’’’’’’’’’’’’’’’ā’%’’’’’’’’’’’’’’’’’’’Aā’’’’’’’’’’’’’’’’’’’’aā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’”ā’’’’’’’’’’’’’’’’’’’’Įā’’’’’’’’’’’’’’’’’’’’’’ IF listing’’’’’’’’’įā’’’’’’’’’’’’’’’’’’’’ńā’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’1ć’ ’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’ać’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ć’’’’’’’’’’’’’’’’’’’’Įć’’’’’’’’’’’’’’’’’’’’įć’’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’!ä’’’’’’’’’’’’’’’’’’’’Aä’’’’’’’’’’’’’’’’’’’’aä’*’’’’’’’’’’’’’’’’’’’‘ä’"’’’’’’’’’’’’’’’’’’’Įä’’’’’’’’’’’’’’’’’’’’įä’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ IF listing’’’’’’’’’å’’’’’’’’’’’’’’’’’’’’!å’’’’’’’’’’’’’’’’’’’’Aå’ ’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’qå’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’‘å’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±å’C’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’ę’’’’’’’’’’’’’’’’’’’’1ę’’’’’’’’’’’’’’’’’’’’Qę’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qę’’’’’’’’’’’’’’’’’’’’‘ę’’’’’’’’’’’’’’’’’’’’±ę’M’’’’’’’’’’’’’’’’’’’ē’’’’’’’’’’’’’’’’’’’’!ē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ clear symbol:’’’’’’’’’’ name := "";’’’’’’’’’’ no := 0;’’’’’’’’’Aē’’’’’’’’’’’’’’’’’’’’Qē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ eol reached:’’’’’’’’’qē’9’’’’’’’’’’’’’’’’’’’±ē’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńē’’’’’’’’’’’’’’’’’’’’įē’’’’’’’’’’’’’’’’’’’’č’.’’’’’’’’’’’’’’’’’’’1č’2’’’’’’’’’’’’’’’’’’’qč’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘č’M’’’’’’’’’’’’’’’’’’’įč’’’’’’’’’’’’’’’’’’’’é’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1é’M’’’’’’’’’’’’’’’’’’’é’-’’’’’’’’’’’’’’’’’’’±é’;’’’’’’’’’’’’’’’’’’’ńé’’’’’’’’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’Aź’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qź’M’’’’’’’’’’’’’’’’’’’Įź’=’’’’’’’’’’’’’’’’’’’ė’=’’’’’’’’’’’’’’’’’’’Aė’’’’’’’’’’’’’’’’’’’’aė’’’’’’’’’’’’’’’’’’’’ė’'’’’’’’’’’’’’’’’’’’’±ė’’’’’’’’’’’’’’’’’’’’Ńė’’’’’’’’’’’’’’’’’’’’įė’’’’’’’’’’’’’’’’’’’’ńė’’’’’’’’’’’’’’’’’’’’ģ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ģ’’’’’’’’’’’’’’’’’’’’Qģ’’’’’’’’’’’’’’’’’’’’qģ’N’’’’’’’’’’’’’’’’’’’Įģ’N’’’’’’’’’’’’’’’’’’’ķ’M’’’’’’’’’’’’’’’’’’’aķ’M’’’’’’’’’’’’’’’’’’’±ķ’N’’’’’’’’’’’’’’’’’’’ī’M’’’’’’’’’’’’’’’’’’’Qī’M’’’’’’’’’’’’’’’’’’’”ī’/’’’’’’’’’’’’’’’’’’’įī’M’’’’’’’’’’’’’’’’’’’1ļ’M’’’’’’’’’’’’’’’’’’’ļ’J’’’’’’’’’’’’’’’’’’’Ńļ’K’’’’’’’’’’’’’’’’’’’!š’L’’’’’’’’’’’’’’’’’’’qš’M’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’įš’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’1ń’’’’’’’’’’’’’’’’’’’’Qń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qń’’’’’’’’’’’’’’’’’’’’‘ń’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńń’’’’’’’’’’’’’’’’’’’’ńń’’’’’’’’’’’’’’’’’’’’ņ’1’’’’’’’’’’’’’’’’’’’Qņ’’’’’’’’’’’’’’’’’’’’qņ’1’’’’’’’’’’’’’’’’’’’±ņ’#’’’’’’’’’’’’’’’’’’’įņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’!ó’’’’’’’’’’’’’’’’’’’’Aó’6’’’’’’’’’’’’’’’’’’’ó’(’’’’’’’’’’’’’’’’’’’±ó’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ treat point:’’’’’’’’’Ńó’'’’’’’’’’’’’’’’’’’’’ō’’’’’’’’’’’’’’’’’’’’1ō’’’’’’’’’’’’’’’’’’’’Qō’’’’’’’’’’’’’’’’’’’’qō’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ō’’’’’’’’’’’’’’’’’’’’±ō’!’’’’’’’’’’’’’’’’’’’įō’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’õ’’’’’’’’’’’’’’’’’’’’!õ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ generate eos:’’’’’’’’Aõ’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qõ’’’’’’’’’’’’’’’’’’’’‘õ’’’’’’’’’’’’’’’’’’’’±õ’&’’’’’’’’’’’’’’’’’’’įõ’'’’’’’’’’’’’’’’’’’’’ö’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’1ö’’’’’’’’’’’’’’’’’’’’Qö’%’’’’’’’’’’’’’’’’’’’ö’’’’’’’’’’’’’’’’’’’’±ö’L’’’’’’’’’’’’’’’’’’’÷’$’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’1÷’+’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ treat go:’’’’’’’’’’’’a÷’)’’’’’’’’’’’’’’’’’’’‘÷’ ’’’’’’’’’’’’’’’’’’’Į÷’’’’’’’’’’’’’’’’’’’’į÷’’’’’’’’’’’’’’’’’’’’ų’#’’’’’’’’’’’’’’’’’’’1ų’’’’’’’’’’’’’’’’’’’’Qų’’’’’’’’’’’’’’’’’’’’qų’#’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ų’’’’’’’’’’’’’’’’’’’’Įų’’’’’’’’’’’’’’’’’’’’įų’$’’’’’’’’’’’’’’’’’’’ł’)’’’’’’’’’’’’’’’’’’’Ał’’’’’’’’’’’’’’’’’’’’ał’*’’’’’’’’’’’’’’’’’’’‘ł’’’’’’’’’’’’’’’’’’’’±ł’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńł’’’’’’’’’’’’’’’’’’’’ś’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aś’’’’’’’’’’’’’’’’’’’’Qś’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ftn datatype:’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’”ś’’’’’’’’’’’’’’’’’’’’Įś’’’’’’’’’’’’’’’’’’’’įś’’’’’’’’’’’’’’’’’’’’ū’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ var or array:’’’’’’’’!ū’’’’’’’’’’’’’’’’’’’’Aū’’’’’’’’’’’’’’’’’’’’aū’I’’’’’’’’’’’’’’’’’’’’’ array’’’’’’’’’±ū’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ array name:’’’’’’’’’’Ńū’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńū’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’1ü’$’’’’’’’’’’’’’’’’’’’aü’ ’’’’’’’’’’’’’’’’’’’‘ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ü’’’’’’’’’’’’’’’’’’’’Ńü’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’F’’’’’’’’’’’’’’’’’’’aż’'’’’’’’’’’’’’’’’’’’’‘ż’ ’’’’’’’’’’’’’’’’’’’Įż’’’’’’’’’’’’’’’’’’’’įż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Qž’1’’’’’’’’’’’’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’±ž’’’’’’’’’’’’’’’’’’’’Ńž’’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’.’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’!’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’ ’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’<’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’R’O’’’’’’’’’’’’’’’’’’’²’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ā’*’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’R’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’4’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’#’’’’’’’’’’’’’’’’’’’²’#’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’8’’’’’’’’’’’’’’’’’’’’’ get sign;’’’’’’’’’’’’ get const;’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get sign:’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get const:’’’’’’’’’’’’’ get digits;’’’’’’’’’’ get point;’’’’’’’’’’’ get digits;’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get digits:’’’’’’’’’’‚’)’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get point:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ get eöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö