!Ö"æy/Ox/GÅ*æ^#V#"æÕÅëN#F#^#V{/oz/g## ÑÍ€å:Ô=2ÔÊ@DMÃ*èé Í ÍÉá"Sá##N#Fáx±Êt^ÅåÍáÁ# Ã`*Sé}/o|/g#ÉD|ܬë|¨G|ܬ¯„Ê—¯‚ë}!7?Ò¢ë)ë·Â›xÐ|/g}/o#É!9ë*Á s#rÉÃS+~G+¶+¶+Ê Sx·òPS~·ÊPS~æÂPS~æÊ4Szå!…C¾áúPS++++~·ÊPSÍ.>0Í.>.Í.!5ò%>†ò+Í6 !~·ÃÍV ÃA!ͼ!D6!AÍ™ÍÊ!4ÊX!DÍ£ÃF!46!D~·Ê{!D>0†Í.!45ÊšÍÊÃe!<5!C~·Âu+~·Âu+~·Âu!<wÃuåÍÊ!D~þúÆ*Å+~Æþ:úÅ>0w¬>1w!<~ÆwáÃþ!D6!A=ͼ!AÍ™!AÍ™!A=ÍÅ!AÍ™É>EÍ.!<~·ú>+Ã/-Í.~Ö ú%wÃ>0€Í.~Æ0å*Åw#"ÅáÉx§ÊB!p!~!§úR¯wÃ[w!Í­!~§Âp+Â`!¯wÉ!Í™~§ú‚#5Ãp!Í£!~§ð!Í­ɯ~wÈ#Ú¯~wÈ+ä~/ÆwÈ#~/Îñ~È#ü¯ŽwÈ#ÃÆ¯žwÈ#ÃÑ6È#ÃÛE Í ÍÉåÕÅõ_ÍñÁÑáÉ»@æM¢°eþÿò#QÍbPáÑÉÍÆLÍiá"ÁÑx±Â-z³Ê;! 6#6#p#q#s! 6#Â@!ÅÕå~wÒs! |/g}/oE!Žw+Âi¯ÂxáÑ ÂRÁ+ÂO !¯>2 Ž +:=™*&}æoå*å*éÍÄ!Ð-Éz¬òÎz·ð7Éz¼À{½ÉñÚ/R͉VÍ—LÚ)RõÍKÖá"èÁÑë"Ô}!ÖÑs#r#=Âø if ch = carraige_return then -- treat carraige returns as white space ch := ' '; end if; end next_character; procedure next_ch is begin next_character; if ch = eof then fatal(0); end if; end next_ch; function digit(ch : character) return boolean is begin return ch >= '0' and then ch <= '9'; end digit; function letter(ch : character) return boolean is begin return upper(ch) >= 'A' and then upper(ch) <= 'Z'; end letter; function letter_or_digit(ch : character) return boolean is begin return letter(ch) or else digit(ch); end letter_or_digit; function hex(ch : character) return boolean is begin return upper(ch) >= 'A' and then upper(ch) <= 'F'; end hex; begin -- scanner old := token; skip_spaces: while ch = ' ' or else ch = tab or else ch = line_feed loop next_character; end loop skip_spaces; if letter(upper(ch)) then k := 1; id := " "; while letter_or_dig