ėžJVC KT2pŠų ŠķSYĄ2ÄĄ6V#6Ą1õŸĄĶ}ó<ŹcĄĶ}ó!"­Ą!?ŸĄ'Ķ}óĆXĄĶyęžžĀjĄ:ÄĄ§Ź"@yĄ Ķ}óĶ}ó²Boot error Press any key for retry $MSXDOS SYSų’’@`€’Æ Ą ąš’’Oš’€ š’ą!š’#@’o’’’’’’’Ļ-š’/š’’ų’’@`€’Æ Ą ąš’’Oš’€ š’ą!š’#@’o’’’’’’’Ļ-š’/š’’AUTOEXECBASļ”X ;EDIT ™ f"MEMMON Š ŗCOLORS eD 8 3DDES tQ 'FIGREK š SNAKE3 .¢F " ICP3  %ĪBUBBLE P†X 'ĢSHELL c†X (¾ALFSRT †X )ĢNUMSRT ¤†X *µSRTTIM ŗ†X +jMLVB01 ē†X .OMLVB02 ķ†X 0å4 BAT„B,1ß’€ ’ō:Å: (:Ÿ:Ģė:†A$()(€ ō2€ īA€(‹ N1ļ Ś Љ€2Ģ•:Ÿ:Ų(%ņ’’(A$(N1)))ō,:‘A$(N1):Ų,:‘"wordt geladen en gestart." €<‚ Nļ Ł ’’(A$(N1))Ļ€=‹ ’ƒ(A$(N1),N,)ļ"'" Ś Nļ’’(A$(N1)): ‰ ?>‹ ’ƒ(A$(N1),N,)šī" " Ś F$ļF$ń’ƒ(A$(N1),N,)?ƒ NFŠ’(F$,)óDō:ę PRINTROUTINE ******************NžŒ čV‡A$m‹A$ļ"*P"ŚŠ:‰‹A$ļ"*L"Ś‘:‰&‹A$ļ"*S"ŚŽ¦0‹A$ļ"*C"ŚCļ:‰¼:‹A$ļ"*N"ŚCļ:‰܁D‹’’(A$)š)ŚB$ļA$:A$ļ"":‰všN‚ Nļ( Ł  Ü ņ.‚X ‹ ’ƒ(A$,N,)ļ" " Ś B$(A$,Nņ):A$ļ’‚(A$,’’(A$)ņN):Nļ6‚bƒ NE‚l‹čīŚŠq‚v‹CŚŲ((ņ’’(B$))ō,č:‘B$:‹A$ļ""Ś:”D‰‚€‘B$:‹A$ļ""Ś:”D“‚ŠŲ,:‘"DRUK SPATIEBALK VOOR VERVOLG";ɂ”‹ģšī" "Ś”:”Ÿ:Žń‚ī:ę MENU **************************’‚ųŒ  :Nļ ƒłŸ: *Vƒ ‡ A$(N):‹A$(N)šī"OP=OP"Ś‘ä"## &";N,A$(N):NļNń:‹NļŚŠ:*:”:”`ƒ‰  ‡ƒ‘:‘"Nummer programma (0=opnieuw)";ʃ… N1:‹ N1š ÷ N1īļN Ś ‘"Onmogelijke keuze!":‚Nļ Ł Ü:ƒN:‰īЃ Žéƒ*Ÿ:‘"MENU MCM-C5":‘:Ž„č:ę TEKSTEN **********************V„ņ„ *C,MSX COMPUTER MAGAZINE PROGAMMA'S,*L,DISKETTE MCM-D5,*L,*L,*N5…ü„ "We mogen zo langzaam maar zeker wel zeggen dat MSX - en natuurlijk MSX Computer Magazine - volwassen geworden is. Met de introduktie van MSX2 komen allerlei nieuwe mogelijkheden binnen bereik van de 'home'-computer.†ż„ "Daarover kunt u heel wat lezen in het bij deze diskette behorende nummer van MSX Computer Magazine. We zijn trots dat we u met deze diskette meteen het eerste MSX2 programma kunnen aanbieden, COLORS.҆ž„ *P,"Op deze diskette vindt u, zoals u gewend bent, weer alle programma's uit ons nummer 6. Met weer wat extra's, in de vorm van het SNAKE3-programmaatje, dat door een van onze lezers werd ingezonden.“‡„ "De meeste programma's op deze diskette zijn geschreven door onze lezers. Sommige waren winnaars in de Sony/MSX Computer Magazine programmeerwedstrijd, die nu jammer genoeg afgelopen is.hˆ „ "Maar de nieuwe wedstrijd, die door de MSX Werkgroep Nederland georganiseerd is, levert ook veel mooi materiaal op. Op deze diskette treft u het programma EDIT aan, de hoofdprijswinnaar van de eerste ronde.ķˆ„ *P,"Zo kan iedereen profiteren van ons initiatief dat tot doel heeft om meer programma's voor MSX onder de mensen te brengen."U‰$„ *L,"Voor de inzenders zit er natuurlijk een aardigheidje aan vast, als we hun programma opnemen."ó‰.„ *L,"Heeft u trouwens uw inzending voor de nieuwe programmeerwedstrijd al verstuurd? Deze keer georganiseerd door de voltallige MSX Werkgroep Nederland!*Š3„ *L,"Het inzend-adres vindt u in het tijdschrift.͊B„ *P,"Onze programma's en de wedstrijd inzendingen hebben we natuurlijk zo goed mogelijk gecontroleerd op fouten, maar helemaal garanderen kunnen we ze niet."a‹L„ *L,"Mocht u een foutje ontdekken, stuur ons dan aub even een briefje. We zullen dan in ons volgende nummer deze fout proberen te verbeteren."ŒV„ *P,*C,OPBOUW,*N,*L,"De programma's op deze diskette zijn op twee manieren te laden. Op het laatste scherm verschijnt een menu, waaruit u kunt kiezen welk programma u wilt runnen."|Œ`„ "Dit programma zal dan automatisch worden opgezocht en gestart, zodat u ermee kunt werken.̌j„ *L,"Maar u kunt natuurlijk ook het gewenste programma rechtstreeks laden.Mt„ *P,"Voor sommige programma's, zoals 'FIGREK', of 'EDIT' zou het handig kunnen zijn om ze op een eigen cassette te zetten."Ō~„ *L,"Met de in MSX COMPUTER MAGAZINE meegeniete cassette-hoesjes bouwt u dan een keurige programma-bibliotheek (op cassette) op."ūˆ„ *P,*C,GEBRUIKSAANWIJZINGEN,*N,*L”Ž’„ "De meeste programma's op deze diskette worden uitgebreid beschreven in MCM COMPUTER MAGAZINE nummer 6. Daar vindt u ook de gebruiksaanwijzingen."üŽœ„ *L,"Mocht u dit nummer willen nabestellen bij de uitgever, dan kan dat natuurlijk. Het adres is:";”„ *L,MSX Computer Magazine,Postbus 1392,1000 BJ Amsterdam½¦„ *P,"Voor zover de programma's echter niet in het blad beschreven staan vindt u op de volgende schermen korte aaanwijzingen.Y°„ *P,*C,SNAKE3,*N,*L,"Mede naar aanleiding van het SNELLI programmaatje uit ons vorige nummer zond E. Wolters ons een klein spel-programmaatje, SNAKE3.—ŗ„ *L,"De spelregels zijn in het programma zelf opgenomen.W‘ā„ *P,*C,SORTEREN,*N,*L,"Onder de namen BUBBLE, SHELL, ALFSRT, NUMSRT en SRTTIM treft u de verschillende voorbeeld-programmaatjes uit het eerste deel van de kursus 'Sorteren in Basic' aan.ʑģ„ *P,*C,MACHINE-TAAL,*N,*L,"De beide ML-voorbeelden staan ook op de disk, onder de namen MLVB01 en MLVB02.Ÿ’ „ *P,*C,KORT EN KRACHTIG,*N,*L,"Hoewel in het blad nummer 6 wel werd aangekondigd dat er een aantal Kort & Krachtig-listingkjes opgenomen zouden worden, hebben we die op het laatste moment moeten laten vervallen.ī’„*L,"In het volgende nummer kunt u echter Kort & Krachtig weer verwachten.·“<„ *P,*C,PROBLEEMPJES?,*N,*L,"Mocht u problemen ondervinden met het laden van een of meer van de programma's op deze diskette, dan zou het kunnen zijn dat er leesproblemen aan ten grondslag liggen.”F„ "Probeer in zo'n geval eerst eens of het helpen wil als u de computer opnieuw aanzet.Œ”Z„ *L,"Als de moeilijkheden blijvend zijn, stuurt u dan de diskette, met een beschrijving van de problemen, naar:",*L«”d„ *P,MCM Programma Service¾”n„ POSTBUS 5142הx„ 1007 AC AMSTERDAM#•‚„ *L,"waarna wij uw diskette zullen omruilen voor een ander exemplaar."–Œ„ *L,"Telefonische vragen over de Programma Service kunt u kwijt op 020-852635. Spreek uw probleem in op de telefoon-beantwoorder, wij bellen u zo gauw mogelijk terug. Tenminste, als u niet vergeet er uw telefoonnummer bij te vermelden! ––„ *P,*SG– :ę PROGRAMMA'S ******************Ņ–Ŗ„ EDIT ' Hoofdprijs; handige tool,MEMMON ' Bekijk uw geheugen,COLORS ' Ons eerste MSX2 programma!,3DDES ' Drie-dimensionaal tekenen2—“„ FIGREK ' Educatieve software,SNAKE3 ' Voor de spelers!,ICP3 ' Invoer Controle Programma”—¾„ BUBBLE ' Het BUBBLE-sort algoritme,SHELL ' Het SHELL-sort programma,ALFSRT ' Alfanumeriek testprogrammaē—Č„ NUMSRT ' Numeriek testprogramma,SRTTIM ' Sorteren nader bekeken-˜Ņ„ MLVB01 ' Het eerste ML-voorbeeld,MLVB02 ' De Basic-versie ervan9˜ę„ OP=OP pause PLAATS UW FLOPPIES copy c:*.* a: del a:c4.bat copy c:*.* b: del b:c4.bat copy c:*.* d: del d:c4.bat c:c4 ƒ,Ų ,,:‘ K$;" ... EEN OGENBLIKJE";:‚ Iļ Ł K:‡ P$:ƒ I;ƒ6• ¦ ‰ @:° P$ ‚ … AS 1:“:Š P$ˆƒ@Ų ,:‘ "DIT PROGRAMMA STAAT NIET OP FLOPPIE!";:Į "M3000S1T255L64CDEFG"žƒJ‚ Iļ Ł č:ƒ I:ЦƒTŸ:”EN GEEF RETURN WANNEER GEREED"š‚Į "t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå’ €  EDIT€4€ een van de prijswinnaars inV€( de programmeerwedstrijd vanm€2 de MSX werkgroeps€<‰€F GEPUBLICEERD IN„€P MSX COMPUTER MAGAZINE«€ZŌ€d Inzender: J.G.F.L. Schoeber, SteylŚ€nx:ę INITIALISATIE *****************&‚Å :½ ,:  ':Ģ ė:’ ±6: ~NŒ:ę KEUZE-MENU ********************t–Ÿ:Ų ,:‘"**** KEUZE-MENU ****"-‚ Ų ,:‘"1 Laden ascii-bestand":Ų ,:‘"2 Tekst bekijken":Ų ,:‘"3 Tekst zoeken":Ų ,:‘"4 Tekst zoeken en vervangen":Ų , :‘"5 Regel editten":Ų , :‘"6 Saven nieuwe tekst"‡‚ŖŲ ,:‘"7 Tekst via toetsenbord":Ų ,:‘"8 Tekst op printer":Ų ,:‘"9 Stoppen"ʂ“ P:• ’”(I$) ‰ ,,,Ģ,Š,”,,,L,j:‰ “:ę CLEAREN EN DIMENSIONEREN ******“ƒČŸ:‘"Geheugen reserveren en dimensioneren":‘:‘"Om efficient met het geheugen om te","kunnen springen is het gewenst om aan","te geven hoe groot het bestand is.","(D.w.z. het aantal Kilo-Bytes.)"–„Ņ‘"Bij kleine bestanden zullen er geen","problemen optreden, maar bij grote","files kan er een 'Out of memory'","fout plaatsvinden. Ook is het van","belang om T$(i) efficient te dimen-","sioneren. D.w.z. het aantal regels"`…Ü‘"in het bestand. Het DIM-statement","legt namelijk een beperking op aan","het aantal regels. Mocht het bestand","niet in een keer in het geheugen","passen, dan kunt u meer regels","dimensioneren."’…ę‘"Dan kunt u echter wel minder geheugen","'CLEARen'. Ook kunt u het bestand","opsplitsen in ascii-deelbestanden,"," die u dan afzonderlijk bewerkt.": dO†šŸ:CLļ°6:Ų ,:‘"Hoe groot is het bestand in Kbytes?","Naar schatting: ";CL¢†śŲ ,:‘"Hou ook rekening met eventueel in te","voegen nieuwe regels/records";ֆŲ ,:… CL:‹ CLī(’()ń’("")ņ¼) Ś ¦ H :” ŽA‡Nļ–:Ų ,:‘"Hoeveel regels (met CR-afsluiting)","telt het bestand?":‘"Naar schatting: ";N:Ų , :… Nz‡• ¦ ‰  :‹ Nóī(’()ņ¼) Ś ¦ H :” † T$(N):OPļN:Ž¢‡":ę LADEN *************************ę‡, ‚: Č:’ CL: ~: :IO$ļ"Laden:": ’::ęcass of disc ˆ6BS$ļ"TEKST": ŗ::ęnaam bestandHˆ@° DV$ ‚ … AS #:‚ Iļ Ł N:‹ ’«() Ś OPļIņ:¤ N,OP:‰ T[ˆJÆ … #,T$(I):ƒdˆT“ #߈^Ÿ:‘"De eerste tekst-regel luidt:":‘:‘ T$():Ų , :‘"De laatste regel ( nr.";N;") luidt:":‘:‘ T$(N): d:‹ OPī Ś –­‰hŸ:‘"LET OP!":‘:‘"De tekst-file is te lang om in 1 keer","te verwerken. U kunt het bestand het","beste splitsen in ascii-deelbestanden","en die apart verwerken.":‘:‘"Daarna zult u de deelbestanden weer"Šr‘"moeten 'mergen'.":‘:‘"Mogelijk kunt u ook meer regels","dimensioneren. Dat zult u zelf moeten","bekijken."Ɋ|‘:‘"Het eerste deel van het bestand is","al geladen. Dit kunt u nu bewerken.":‘:‘"Beschikbare geheugenruimte:":‘"FRE(basic)=";’():‘"FRE(string)=";’(""): d:‰ –ńІ:ę BESTAND BEKIJKEN **************,‹‹ Nļ Ś – :” Ÿ:‘"Bestand bekijken.": Ī::ęvan/totg‹šŸ:Ų  ,:‘"1 Scrollen":Ų  , :‘"2 Regel voor regel"Œ‹¤ P:Ÿ:• ’”(I$) ‰ ®,ø:‰ ¤“‹®‚ IļN1 Ł N2:‘ T$(I):ƒ:‘: d:‰ –ꋸ‚ IļN1 Ł N2:‘"Regel:";I:‘:‘ T$(I): d:Ÿ:ƒ:‰ –ŒĀ:ę TEKST ZOEKEN ******************ŒĢVVļCŒÖ:ę ZOEK- EN VERVANG-TEKST ********ٌą‹ Nļ Ś – :” Ÿ:ZT$ļ"":Ų ,:‘"Geef zoek-tekst (max. 254 tekens!)":Ų ,:‘"Let op hoofdletters/kleine letters!":Ų ,:Æ … ZT$:‹ ZT$ļ"" Ś ZT$ļ" " ź‹ VVī Ś Ų , :‘"Geef vervangende tekst":Ų ,:Æ … VT$ :” VT$ļ""Hō:ę ZOEKEN ************************qžZTļ:VTļ:LEļ’’(ZT$):Ÿ: Ī:Ÿ: n†‚ IļN1 Ł N2:POļŸPOļå(POń,T$(I),ZT$)°‹ POļ Ś D’&‘"Regel:";I:‘:‘ T$(I): :‹ VVļ ÷ (T$()ļ"" ö VT$šī"") Ś  d :”  2 Ž0Ÿ: nŽ:‰ ŽDƒ IEŽN:ę RESUME ZOEK & VERVANG *********{ŽXŸ:‘"Zoektekst:";ZT$:‹ VVī Ś ‘"Vervangtekst:";VT$׎bŲ , :‹ VVī Ś ‘"Zoektekst";ZT;"maal gevonden" :” ‘"Zoektekst in";ZT;"regels gevonden" l‹ VVī Ś Ų ,:‘"Zoektekst";VT;"maal vervangen"v d:‰ –D€:ę ZOEK EN VERVANG ***************ZŠVVļ:VT$ļ"":‰ ą‚”:ę REGEL EDITTEN *****************Až‹ Nļ Ś – :” Ģ," -1":Ģ," +1":Ģ,"wyzig":Ģ,"spring":Ģ," menu":Ģ,"invoeg":Ģ,"verwyd":Ģ,"wissen":Ģ,"":Ģ ,"":‚ Iļ Ł :Ģ(I) •:ƒ:Ģ •:T$()ļ"Regel 0 behoort niet tot het bestand!"kØ• Ģ  ī, ,*,f,z,Ž,Ą,Ž“²:ę SPRING NAAR REGEL *************Ԑ¼Ÿ:…"Welke regel (nummer):";N1:‹ N1īN Ś N1ļN :” ‹ N1š Ś N1ļņĘŸ:‘"Regel:";N1:‘:‘ T$(N1)‘Š‹ VWļ Ś  Ą:Ž::ęmeer regels wissen+‘ŚI$ļģ:‰ŚS‘ä:ę -1 ****************************m‘īN1ļN1ņ:‹ N1š Ś N1ļw‘ųŽ ĘŸ‘:ę +1 ****************************¹‘ N1ļN1ń:‹ N1īN Ś N1ļNƑŽ Ęė‘ :ę WYZIGEN ***********************/’*‹ N1ļ Ś Ž Ę :” Ų , :‘"Wijzigen: (dan )":VT$ļT$(N1)d’4Ų , :‘ ’–();"J":Ų , :‘ VT$;:Ų , :Æ … VT$ƒ>‹ ’’(VT$)īü Ś Ų ,:‘"PAS OP LENGTE! AKKOORD (J/N)?"; :” Ų  ,:‘"AKKOORD (J/N)?";“H Z:‹ I$ļ"n" ÷ I$ļ"N" Ś * :” ‹ I$šī"j" ö I$šī"J" Ś H“RT$(N1)ļVT$:Ž Ę?“\:ę SPRING ************************I“fŽ ¼q“p:ę TERUG NAAR MENU ***************Ŗ“zVT$ļ"":POļ:N1ļ:‚ Iļ Ł :Ģ I,"":Ģ(I) ė:ƒ:Ģ ė:Ž –Ņ“„:ę INVOEGEN **********************K”ŽŲ , :‘"NA bovenstaande regel wordt een","nieuwe regel ingevoegd: AKKOORD (J/N)?": Z:‹ I$šī"j" ö I$šī"J" Ś Ž Ę¶”˜‹ NńīOP Ś Ų ,:‘"Er zijn niet genoeg regels gedimen-","sioneerd om te kunnen invoegen!": d:Ž Ęp•¢NļNń:‚ IļN Ł N1ń Ü ņ:¤ T$(I),T$(Iņ):ƒ:Ų , :‘’–();"J":Ų , :‘"Geef de tekst voor de regel die u","wilt invoegen: (max.254 tekens)":Ų ,:Æ … T$(N1ń):N1ļN1ń:‹ N1īN Ś N1ļNz•¬Ž Ę¢•¶:ę VERWYDEREN ********************(–Ą‹ N1ļ Ś Ž Ę :” Ų , :‘"Bovenstaande regel wordt verwijderd":‘"AKKOORD (J/N)?": Z:‹ I$šī"J" ö I$šī"j" Ś ‹ VWļ Ś Ž :” Ž Ę–ŹT$(N1)ļ"":‚ IļN1 Ł Nņ:¤ T$(I),T$(Iń):ƒ:NļNņ:‹ VWļ Ś N1ļN1ņ:N2ļN2ņ:Ž :” Ž Ę§–Ō:ę WISSEN MEERDERE REGELS ********ų–ŽVWļ:Ÿ:‘"Regels verwijderen:": Ī:N1ļN1ņ:Ų  ,:‘"AKKOORD (J/N)?";: Z—č‹ I$šī"J" ö I$šī"j" Ś VWļ:Ž ĘN—ņN1ļN1ń:‹ N1šļN2 Ś  Ę:‰ ņ :” VWļ:Ž Ęu—ü:ę SAVEN ************************ń—‹ Nļ Ś – :” IO$ļ"Saven:": ’: ŗ:Ÿ:‘"Bestand saven.": Ī:° DV$ ‚ œ³ AS #: ‚ IļN1 Ł N2:‘ #,T$(I):ƒ:“ #:‰ –˜:ę TEKST VIA TOETSENBORD ********G˜ ‚: Č:’ CL: ~: :N1ļ:T$()ļ""˜˜$N1ļN1ń:‹ N1īN Ś Ÿ:‘"De gedimensioneerde regels zijn op!": d:NļN1ņ:‰ –C™.Ÿ:‘"Regel:";N1ņ;:‘:‘ T$(N1ņ):Ų , :‘"Geef tekst voor regel:";N1:‘"(max. 254 tekens!)":Ų  ,:‘"*** =einde invoer";:Ų ,:Æ … T$(N1):‹ T$(N1)ļ"***" Ś NļN1ņ:‰ –M™8‰ $t™B:ę TEKST OP PRINTER *************é™L‹ Nļ Ś – :” Ÿ:‘"Bestand uitdraaien op printer:": Ī:‘:‘"Maak printer gereed en druk daarna op","< RETURN >"&šV Z:‹ I$šī ’–( ) Ś V :” ‚ IļN1 Ł N2: T$(I):ƒ:‰ –Mš`:ę STOPPEN **********************ŠšjŸ:Ģ,"list ":Ģ,"run"ń’–( ):‘"De groetjes!":• ¦ ‰ :±št:ę INITIALISATIE ****************՚~¬ AņZ:•   Œ: •:• ¦ ‰  :Žüšˆ:ę CASSETTE OF DISC *************=›’Ÿ:Ų ,:‘ IO$:Ų  ,:‘"1 CASSETTE":Ų  , :‘"2 DISC-DRIVE"{›œ P:‹ I$ļ"1" Ś DV$ļ"CAS:" :” ‹ I$ļ"2" Ś DV$ļ"A:" :” œ›¦ŽØ›°:ę NAAM VAN BESTAND *************œŗŸ:Ų ,:‘ IO$:Ų  ,:‘"Naam ASCII-bestand:":Ų ,:‘ BS$:Ų  ,:… BS$: n:DV$ļDV$ńBS$:Ž/œÄ:ę VAN / TOT ********************YœĪN1ļ:N2ļN:‘"Bestand telt";N;"regels."«œŲŲ , :‘"Vanaf welke regel: ";N1:Ų , :… N1:‹ N1š Ś N1ļ :” ‹ N1īN Ś N1ļNżœāŲ ,:‘"Tot en met regel: ";N2:Ų ,:… N2:‹ N2īN Ś N2ļN :” ‹ N2š Ś N1ļģŽ*ö:ę VERVANGEN EN TELLERS *********NZTļZTń:‹ VVļ Ś POļ’’(T$(I)):Žė ‹ ’’(T$(I))ń’’(VT$)ņ’’(ZT$)ī’ Ś Ų , :‘"De regel zou na vervanging langer dan","255 tekens worden!":‘"Vervanging is daardoor niet mogelijk":T$()ļ"":Ž5žT$()(T$(I),POņ):T$()ļT$()ńVT$ń’‚(T$(I),’’(T$(I))ņLEņ’’(T$()))yžŲ ,:‘"Vervangen door:":‘:‘ T$():Ų  ,:‘"AKKOORD (J/N)?";:Ž ž(:ę ANTWOORD VERVANG-VRAAG *******Ŗž2 Zųž<‹ I$ļ"n" ÷ I$ļ"N" Ś Ž :” ‹ I$ļ"j" ÷ I$ļ"J" Ś T$(I)ļT$():VTļVTń:Ž :” 2ŸF:ę MEDEDELINGEN / INKEY *********AŸPŲ  ,:‘"< Maak uw keuze >";]ŸZI$ļģ:‹ I$ļ"" Ś Z :” އŸdŲ ,:‘"< Druk een toets >";: Z:ެŸnŲ  ,:‘"< MOMENTJE >";:Ų ,:ŽÓŸxŲ  ,:‘"AKKOORD (J/N)?";: Z:ŽU ‚‹ Nī Ś Ÿ:Ų ,:‘"Het aanwezige bestand gaat verloren!": x:‹ I$šī"J" ö I$šī"j" Ś Ž – :” „ T$:Ž :” Ž::ębestand aanwezig?_ ŒŽ –† –:ę ERROR AFHANDELNG *************Õ  ‹ āļ5 Ś Ÿ:‘"Bestand niet op deze disc gevonden!":‘:·:DV$ļ"A:": d:§ 6d”Ŗ‹ āļH Ś Ÿ:‘"Te weinig geheugen!":‘:‘"Vrije string-ruimte:";’("");"bytes.":‘"Vrije basic-ruimte: ";’();"bytes.":‘:N2ļ’…((’()ņ¼)ō)5¢“‹ āļH Ś ‘"Deze geheugen-ruimte is bijvoorbeeld","voldoende voor ongeveer";N2;"regels","of records, die dan gemiddeld elk":‘’…(’("")ōN2);"tekens kunnen bevatten.":‘:‘:‘"Probeer opnieuw te initialiseren!"T¢¾‹ āļH Ś  d: š:§ d¢ČŸ:• ¦ ‰  pause PLAATS UW FLOPPIES copy c:*.* a: del a:c4.bat copy c:*.* b: del b:c4.bat copy c:*.* d: del d:c4.bat c:c4 ƒ,Ų ,,:‘ K$;" ... EEN OGENBLIKJE";:‚ Iļ Ł K:‡ P$:ƒ I;ƒ6• ¦ ‰ @:° P$ ‚ … AS 1:“:Š P$ˆƒ@Ų ,:‘ "DIT PROGRAMMA STAAT NIET OP FLOPPIE!";:Į "M3000S1T255L64CDEFG"žƒJ‚ Iļ Ł č:ƒ I:ЦƒTŸ:”EN GEEF RETURN WANNEER GEREED"š‚Į "t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:’€  MCM MEMMON€4€ MSX Computer Magazine:€(c€2:ę INITIALISATIE ******************m€<’ ōw€F „€PŸ: ‘ T1$€ZISļµ€d:ę TOON GEHEUGEN *****************Ā€nŸ: ‘ T1$Հx‚ IļIS Ł ISń倂I2ļ(IņIS)ūņ€ŒI3ļ’—(I)–‹ I2ļ Ś Ų ,čń: ‘ ’›(I);V Ų ńóI2,č: ‘ ’‚("00"ń’›(I3),);: ‹ I3ī Ś Ų ńI2,č: ‘ ’–(I3);^Ŗƒ I†“:ę COMMANDO-PARSER ***************ē¾Ų ,: … A$: Ų ,čņ: ‘ ’™(&);: Ų : ‹ å("sSQq=+-_1234567890ABCDEF",’(A$,)) Ś Ņ :” ¾‚Č:ę COMMANDO-UITVOERING ***********N‚Ņ‹ å("sS",’(A$,)) Ś A$(A$,, ): ISļ’”("&H"ńA$): ‰ nw‚Ü‹ å("=+",’(A$,)) Ś ISļISń€: ‰ n ‚ę‹ å("-_",’(A$,)) Ś ISļISņ€: ‰ nɂš‹ å("qQ",’(A$,)) Ś Ÿ:   %: Ģ •: <ƒś‹ å("0123456789ABCDEF",’(A$,)) Ś I9ļ’”("&H"ń’(A$,)): ‚ Iļ Ł : ˜ I9ńI,’”("&H"ń’ƒ(A$,ńIó,)): ƒ I: ‰ ndƒ:ęINITIALISATIE ******************lƒ¬ I‰ƒT1$ļ"MCM MEMORY MONITOR"¤ƒ"T2$ļ" SECTOR NUMMER:"²ƒ,  (: Ģ ėøƒ6ŽNEER GEREED"š‚Į "t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:’€  COLORS€0€ MSX Computer Magazine6€(O€2 ALLEEN VOOR MSX-2!U€<q€F ”::ę initialisatieŠ€P:ę ****************£€Z:ę * teken scherm *¼€d:ę ****************Ź€n‚ Xļ Ł Ś€x ‚ Yļ Ł ‚ Æ ((Xņ)ód,(Yņ)ó2)ņ(Xód,Yó2),Xń(Yņ)ó,BF3Œ Ć ((Xņ)ódń,(Yņ)ó2ń)S– ‘ #, "PALET:"Xń(Yņ)ów  Ć ((Xņ)ódń,(Yņ)ó2ń)Ŗ ‘ #, "R G B"²“ Ć ((Xņ)ódń,(Yņ)ó2ń)š¾ ‘ #, KW(Xń(Yņ)ó,);KW(Xń(Yņ)ó,);KW(Xń(Yņ)ó,)śČ ƒ Y‚Ņƒ X‚ÜXļ: Yļ&‚ę:ę **************=‚š:ę * kies kleur *T‚ś:ę **************o‚Ć (, ): ‘ #, ’™(F)Ђà (,Ŗ): ‘ #, ’™(2)—‚Ć (, )Ă"‘ #, "KIES KLEUR M.B.V. CURSOR-TOETSEN"т,Ć (,Ŗ)ż‚6‘ #, "TOETS VOOR RGB FUNKTIE"!ƒ@³ Ē ,((Xņ)ó2ń,(Yņ)ó2ń#).ƒJA$ļ…$()LƒT‹ A$ļ’–() ö Xš Ś XļXńjƒ^‹ A$ļ’–() ö Xī Ś XļXņˆƒh‹ A$ļ’–() ö Yī Ś YļYņ¦ƒr‹ A$ļ’–() ö Yš Ś YļYń̃|‹ A$ļ’–( ) Ś KLļXń(Yņ)ó: ‰ ®փ†‰ @óƒ:ę ********************„š:ę * KIES RGB WAARDES *-„¤:ę ********************G„®Ć (, ):‘ #, ’™(2)a„øĆ (,Ŗ):‘ #, ’™(2)n„ĀĆ (, )»„Ģ‘ #, "KIES R, G OF B MET CRSR LINKS/RECHTS, STEL WAARDE IN MET OP/NEER"ȄÖĆ (,Ŗ)ó„ą‘ #, "TOETS VOOR KLEURKEUZE"ü„źKWļ&…ō³ Ē ,((Xņ)ó2ņńKWó ,(Yņ)ó2ń)3…žA$ļ…$()T…‹ A$ļ’–() ö KWš Ś KWļKWńu…‹ A$ļ’–() ö KWī Ś KWļKWņ«…‹ A$ļ’–() ö KW(KL,KW)š Ś KW(KL,KW)ļKW(KL,KW)ńį…&‹ A$ļ’–() ö KW(KL,KW)ī Ś KW(KL,KW)ļKW(KL,KW)ņ÷…0‹ A$ļ’–( ) Ś †:½ļ(KL,KW(KL,),KW(KL,),KW(KL,))C†DĆ ((Xņ)ódńóKWņ,(Yņ)ó2ń)Q†N‘ #, " "w†XĆ ((Xņ)ódńóKWņ,(Yņ)ó2ń)‰†b‘#,KW(KL,KW)“†l‰ ō¬†v:ę*****************ņ€:ę* initialisatie *ކŠ:ę*****************ꆔÅ ī†ž¬ K‡Ø° "GRP:" ‚ œ³ AS #‡²† KW(,)‡¼Œ /‡Ę‚ N1ļ Ł @‡Š ‚ N2ļ Ł T‡Ś ‡ KW(N1,N2)_‡ä ƒ N2h‡īƒ N1•‡ų:ę data standaard palet-RGB komponentenõ‡„ 0,0,0,1,6,1,3,7,3,1,1,7,2,3,7,5,1,1,2,6,7,7,1,1,7,3,3,6,6,1,6,6,4,1,4,1,6,2,5,5,5,5,7,7,7ˆ :ę definieer spriteˆŒ ˜&ˆ ‚ Nļ Ł 1ˆ* ‡ A$Mˆ4 B$ļB$ń’–(’”("&B"ńA$))Uˆ>ƒ NbˆHĒ$()ļB$lˆRB$ļ""zˆ\‚ Nļ Ł Œˆf B$ļB$ń’–(N)”ˆpƒ N£ˆz½ Ē$()ļB$©ˆ„޾ˆŽ:ę spritehandje͈˜„ 00000001܈¢„ 00000010눬„ 00000100śˆ¶„ 00011110 ‰Ą„ 00111111‰Ź„ 01111110'‰Ō„ 111111106‰Ž„ 01111100ndƒ:ęINITIALISATIE ******************lƒ¬ I‰ƒT1$ļ"MCM MEMORY MONITOR"¤ƒ"T2$ļ" SECTOR NUMMER:"²ƒ,  (: Ģ ėøƒ6ŽNEER GEREED"š‚Į "t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå’€  3D-DES€6€ EEN VAN DE PRIJSWINNAARS INX€( de programmeerwedstrijd vant€2 MSX Computer Magazineƒ€< nummer 4‰€F³€P Inzender: H. van Leeuwen, Rotterdam¹€Zā€d:ę***** 3-D DESIGNER FOR MSX ******ź€n:ęx:ę==== hans van leeuwen juni/85====‚:ę#ŒĢ ė/–Å ,,Y ‘"********** 3-D DESIGNER **********"_Ŗ‘Ё“‘"Duplicatie van een vlakke doorsnede"±¾‘"tot een symmetrisch 3-d object."ہȑ"Beweeg kruis met de cursortoetsen."‚Ņ‘"Leg hoekpunten vast met m(emory)"-‚Ü‘"en een getal tussen 0 en 9 (dit is"U‚ę‘"1/10 van de symmetrische diepte).}‚š‘"Eerste punt van nieuw object met"š‚ś‘"n(ew) i.p.v.m(emory)." ‚‘Ä‚‘" Na het ontwerp verder met"ģ‚‘"c(ontinue).De doorsnede wordt nu"ƒ"‘"doorberekend tot een 3-d object.";ƒ,‘"Het (de) object(en) manipuleren"eƒ6‘"met x,y of z (rotaties),k(leiner),"Žƒ@‘"g(roter) en cursortoetsen; h(oek)"·ƒJ‘"wisselt teken van de rotatiehoek."ćƒT‘" Stereopaar: breng beeld eerst naar"’ƒ^‘"rechts en druk s in."„h‘"F1= manipulatie-menu.""„r‘D„|‘" + start met spatiebalk +"[„†A$ļģ:‹ A$ļ"" Ś †s„¬ X,Y,I,N,D,F,M,H,P•„šPIļA1AY:Dļ :Sļ(:Hļ:Fļō°„¤† XX(d),YY(d),ZZ(d)Ļ„®† PX%(d),PY%(d),BRK%(d)ᄸCļPIō“:TļHóC÷„ĀCT(T):STļ’‰(T)…ĢXļ}:Yļ`…ÖÅ :½ ,,=…ą:ę grid *R…ź‚ YGļ Ł ¾ Ü  g…ō‚ XGļ Ł ś Ü  u…žĀ (XG,YG)…ƒ XG,YG¤… ° :Iļ :ęread sprite*»…Æ(,)ņ(w,),,BFĻ…&³ Ē,(Xņ,»ņY)ė…0° "GRP:" AS #:¾"BM0,0"†:‘ #,"m(em n(ew c(ont"†D• Ģ  Z ,†N‚ Jļ Ł  :Ģ(J)•:ƒ4†X:ę[†b:ę********************** GETPOINTc†l:ęu†vA$ļģ:RIļ’¢()ކ€‹ RIļ ö A$ļ"" Ś vŸ†Š‹ RIļ Ś ä°†”‹ RIļ Ś  Į†ž‹ RIļ Ś 4҆Ø‹ RIļ Ś \冲‹ A$ļ"m" Ś „ų†¼‹ A$ļ"n" Ś ‡Ę‹ A$ļ"c" Ś MļIņ:‰ ‡Š‰ vE‡Ś:ę pointleft *O‡äXļXņc‡ī³ Ē,(Xņ,»ņY)m‡ų‰ v•‡:ę pointright*Ÿ‡ XļXń³‡³ Ē,(Xņ,»ņY)½‡ ‰ vå‡*:ę pointup *ļ‡4YļYńˆ>³ Ē,(Xņ,»ņY) ˆH‰ v5ˆR:ę poindown *?ˆ\YļYņSˆf³ Ē,(Xņ,»ņY)]ˆp‰ v…ˆz:ę fill array*£ˆ„XX(I)ļX:YY(I)ļY:BRK%(I)ļ戎Æ (Xņ,æņY)ņ(Xń,æņY)׈˜Æ (X,¼ņY)ņ(X,ĀņY)鈢‹ Iī Ś   ‰¬Æ(,æ)ņ(W,¹),,BF$‰¶¾"bm0,185":‘ #,"depth?(0-9)".‰Ą ~H‰ŹÆ (,æ)ņ(W,¹),,BFg‰Ō‚ Jļ Ł P Ü  :Ā (J,¾):ƒq‰ŽIļIńЉč‹ Iī2 Ś MļIņ:‰ ”‰ņ‰ v¼‰ü:ę new object*͉‹ Iļ Ś vė‰XX(I)ļX:YY(I)ļY:BRK%(I)ļŠÆ (Xņ,æņY)ņ(Xń,æņY)Š$Æ (X,¼ņY)ņ(X,ĀņY)8Š.Æ(,æ)ņ(W,¹),,BFZŠ8¾"bm0,185":‘ #,"depth?(0-9)"dŠB ~~ŠLÆ (,æ)ņ(W,¹),,BFŠV‚ Jļ Ł P Ü  :Ā (J,¾):ƒ§Š`IļIńĄŠj‹ Iī2 Ś MļIņ:‰ ʊt‰ vńŠ~:ę get depth*‹ˆA$ļģ:‹ A$ļ"" Ś ˆ!‹’‹ A$ļ"0" Ś ZZ(I)ļ:Ž<‹œ‹ A$ļ"1" Ś ZZ(I)ļņ :ŽW‹¦‹ A$ļ"2" Ś ZZ(I)ļņ:Žr‹°‹ A$ļ"3" Ś ZZ(I)ļņ:Ž‹ŗ‹ A$ļ"4" Ś ZZ(I)ļņ(:ŽØ‹Ä‹ A$ļ"5" Ś ZZ(I)ļņ2:ŽĆ‹Ī‹ A$ļ"6" Ś ZZ(I)ļņ<:ŽŽ‹Ų‹ A$ļ"7" Ś ZZ(I)ļņF:Žł‹ā‹ A$ļ"8" Ś ZZ(I)ļņP:ŽŒģ‹ A$ļ"9" Ś ZZ(I)ļņZ:ŽŒö‰ ˆGŒ:ę line *OkrŒ Æ(XX(Iņ),æņYY(Iņ))ņ(XX(I),æņYY(I))xŒŽŸŒ:ę viewpoint *µŒ(XKļXX():XGļXX()ˌ2YKļYY():YGļYY()ٌ<‚ Iļ Ł MóŒF‹ XX(I)šXK Ś XKļXX(I) P‹ XX(I)īXG Ś XGļXX(I)'Z‹ YY(I)šYK Ś YKļYY(I)Ad‹ YY(I)īYG Ś YGļYY(I)Inƒ IgxX0ļ(XKńXG)ō:Y0ļ(YKńYG)ō’‚:ę duplicate*1390 Œ‚ Iļ Ł M³–XX(I)ļXX(I)ņX0ō XX(MńI)ļXX(I)ŲŖYY(I)ļYY(I)ņY0ź“YY(MńI)ļYY(I)ż¾ZZ(MńI)ļņZZ(I)ŽČBRK%(MńI)ļBRK%(I)ŽŅƒ I0ŽÜNļóM:FLļ: t =Žę½ ,,PŽš³ Ē,(ō,ō)^Žś• Ģ  P iŽĢ() •qŽ:ę—Ž:ę***********************PICTUREŸŽ":ę®Ž,‹ FLļ Ś Ÿ¾Ž6‚ Iļ Ł MņāŽ@‹ BRK%(I)ļ ö BRK%(Iń)ļ Ś TJÆ (PX%(I),æņPY%(I))ņ(PX%(Iń),æņPY%(Iń))Tƒ I,^‚ IļMń Ł NņPh‹ BRK%(I)ļ ö BRK%(Iń)ļ Ś |€rÆ (PX%(I),æņPY%(I))ņ(PX%(Iń),æņPY%(Iń))ˆ|ƒ I–†‚ Iļ Ł MŏÆ(PX%(I),æņPY%(I))ņ(PX%(IńM),æņPY%(IńM))Ķšƒ I菤‹ FLļ Ś X0ļX0ńF:FLļš®:ęø:ę******************** MANIPULATEĀ:ę1ĢA$ļģ:RIļ’¢()JÖ‹ RIļ ö A$ļ"" Ś Ģbą‹ RIļ ÷ RIļ Ś Šzź‹ RIļ ÷ RIļ Ś D–ō‹ A$ļ"k" ÷ A$ļ"g" Ś Š©ž‹ A$ļ"x" Ś ¼‹ A$ļ"y" Ś fϐ‹ A$ļ"z" Ś ¶õ‹ A$ļ"h" Ś TļņT:STļ’‰(T):CT(T)‘&‹ A$ļ"s" Ś  ‘0‰ Ģ9‘::ę up/down *S‘D‹ RIļ Ś PļD :” PļņD0a‘N‚ Iļ Ł Ns‘XYY(I)ļYY(I)ńP“‘bPY%(I)ļYY(I)óFō(FńZZ(I))ńY0›‘lƒ I„‘v‰ ,Ė‘€:ę left/right*䑊‹ RIļ Ś PļD :” PļņDó‘”‚ Iļ  Ł N’žXX(I)ļXX(I)ńP%’ØPX%(I)ļXX(I)óFō(FńZZ(I))ńX0-’²ƒ I7’¼‰ ,]’Ę:ę forw/backw *x’Š‹ A$ļ"g" Ś PļņS :” PļS†’Ś‚ Iļ Ł N˜’äZZ(I)ļZZ(I)ńP ’īƒ IŖ’ų t “’‰ ,Ś’ :ę x-as *č’‚ Iļ Ł Nõ’ YWļYY(I)“*YY(I)ļCTóYWņSTóZZ(I)'“4ZZ(I)ļCTóZZ(I)ńSTóYW/“>ƒ I9“H t C“R‰ ,i“\:ę y-as *w“f‚ Iļ Ł N„“pXWļXX(I)“zXX(I)ļCTóXWņSTóZZ(I)¶“„ZZ(I)ļCTóZZ(I)ńSTóXW¾“Žƒ Iȓ˜ t Ņ“¢‰ ,ų“¬:ę z-as *”¶‚ Iļ Ł N”ĄXWļXX(I),”ŹXX(I)ļCTóXWņSTóYY(I)E”ŌYY(I)ļCTóYY(I)ńSTóXWM”Žƒ IW”č t a”ņ‰ ,‡”ü:ę stereo*Ÿ” X0ļX0ņF:CH(óC)®” SHļ’‰(óC)¼” ‚ Iļ Ł Nɔ$ XWļXX(I)ā”. XX(I)ļCHóXWņSHóZZ(I)ū”8 ZZ(I)ļCHóZZ(I)ńSHóXW•B ƒ I •L FLļ•V  t •` ‰ ,F•j :ę project*T•t ‚ Iļ Ł Nt•~ PX%(I)ļXX(I)óFō(FńZZ(I))ńX0”•ˆ PY%(I)ļYY(I)óFō(FńZZ(I))ńY0œ•’ ƒ I¢•œ ŽĒ•¦ :ę sprite*֕° „ 00010000啺 „ 00010000ō•Ä „ 00010000–Ī „ 11111110–Ų „ 00010000!–ā „ 000100000–ģ „ 00010000?–ö „ 00000000I– S$ļ""W– ‚ Iļ Ł `– ‡ B$z– S$ļS$ń’–(’”("&b"ńB$))‚–( ƒ I–2 Ē$()ļS$•–< Žŗ–F :ę key(1)*—P Æ(,)ņ(’,),,BF:¾"BM0,0":‘ #,"x,y,z,g(rtr,k(lnr,s(tereo,h(oek":Ž%—Z Ž :ęsecure other keys*6‰Ž„ 01111100ndƒ:ęINITIALISATIE ******************lƒ¬ I‰ƒT1$ļ"MCM MEMORY MONITOR"¤ƒ"T2$ļ" SECTOR NUMMER:"²ƒ,  (: Ģ ėøƒ6ŽNEER GEREED"š‚Į "t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:’€  FIGREK€*€ GEPUBLICEERD INF€( MSX COMPUTER MAGAZINEL€2s€< Inzender: D. Kloosterman, Putteny€F¢€P:ę WELKOMST-SCHERM ****************ƀZ½  ,,¹€dÅ ,Ź€n° "GRP:"AS 1׀xĆ (,)ꀂ‘ #,"fig"÷€Œ‚ WAļ Ł ō–ƒ WA  Ć (‚,)Ŗ‘ #,"uur"7“¼ (},U),,,,,AR¾¼ (',U),,,,,AnČ¼ (Ņ,U),, ,,,AŅ‚ WAļ Ł ōˆÜƒ WA–ęĆ (,Œ)©š‘ #,"rekenen"śĮ "V15L16O3ABO4C#DE"ЁĆ (™,F)ꁑ #,’–();’–(A)ōĆ (D,F) ‚"‘ #,’–();’–(A)‚,“‚6Ģ ė6‚@ œ::ę inlezen sprites^‚J:ę START-SCHERM ******************l‚T½ , , t‚^Å ‚hŲ  ,Ž‚r‘ "HALLO!"™‚|Ų , Ƃ†‘ "Hoe heet je:";ŗ‚Ų ,тš‘ "DRUK OP RETURN"Ż‚¤Ų , 邮Æ … NA$Ÿż‚Ā‘ "KIES:"ƒĢ‘ƒÖ‘ "1=SAMEN tot tien""ƒą‘?ƒź‘ "2=PER GETAL tot tien"Eƒō‘Kƒž‘jƒ‘ "DRUK OP DE 1 OF DE 2 ";wƒC$ļ…$()„ƒCļ’”(C$)šƒ&‹ Cš ÷ Cī Ś „ƒ0Ų , ²ƒ:‘ "KIES"øƒD‘ĖƒN‘ "1=OPTELLEN"уX‘åƒb‘ "2=AFTREKKEN"ėƒl‘„v‘ "3=DOOR ELKAAR"„€‘ „Š‘,„”‘ "DRUK OP DE 1, 2 OF 3 ";9„žB$ļ…$()F„ØBļ’”(B$)\„²‹ Bš ÷ Bī Ś žb„¼Ÿm„ĘŲ ,„„Š‘ "DRUK OP RETURN"„ŚŲ , Ŗ„ä… "HOEVEEL SOMMEN:";ZZƄī‹ ZZī ÷ ZZš Ś ¼Ė„ųZļфŸÜ„ ½ ,,é„R(ņĖ)… :ę START HOOFDPROGRAMMA **********#…*• C  Ü,9…4CLļ’…(’ˆ()ó ń)O…>CRļ’…(’ˆ()ó ń)a…H‹ CRļCL Ś >s…RSļ’…(’ˆ()ó)Œ…\‹ Dļ Ś Ž :” Œ  š…f‚ Iļ Ł D¦…p ‡ X,Y½…z ³ Ē I,(X,Y),CL,SŅ„ƒ IՅŽ‹ Eļ Ś Ź߅˜Œ Ŗń…¢‚ IļDń Ł DńEż…¬ ‡ X,Y†¶ ³ Ē I,(X,Y),CR,S†Ąƒ I2†Ź• B  ^,ą,D<†ŌZļZńM†Ž‹ ZšZZ Ś t†č:ę EINDE-SCHERM *****************|†ņÅ ˆ†ü½ ,,’†Ų ,¤†‘ "NAAM:";NA$®†Ų ,ӆ$‘ "GOED IN 1 KEER:";G;"som(men)"ن.‘ō†8‘ "GOED IN 2 KEER:";GF’†BŲ  ,‡L‘ "FOUT:";FF‡VŲ ,1‡`‘ "NOG EEN KEER?"<‡jŲ ,Q‡t‘ "DRUK J OF N";^‡~H$ļ…$()Їˆ‹ H$ļ"J" ÷ H$ļ"j" Ś Gļ:GFļ:FFļ:‰ øµ‡’‹ H$ļ"N" ÷ H$ļ"n" Ś ½ ,,:Å :Ģ •:Ü‡œ:ę INLEZEN SPRITES **************ꇦŒ ō‡°‚ Sļ Ł ˆŗ ‚ Iļ Ł ˆÄ ‡ A$(ˆĪ Aļ’”("&H"ńA$)AˆŲ Ę É()ńSó ńI,AKˆā ƒ ISˆģƒ SYˆöŽ€ˆ:ę DATA VOOR SPRITES ************’ˆ :ę gezicht 1ųˆ„ 00,00,00,03,07,0F,19,19,1F,1E,1F,0C,07,03,01,03,00,00,00,C0,E0,F0,98,98,F8,78,F8,30,E0,C0,80,C0‰:ę spookjen‰(„ 00,02,03,02,03,07,07,05,05,05,05,01,01,01,11,1F,00,20,E0,20,60,F0,F0,D0,D0,D0,D0,C0,C0,C0,C4,7C{‰2:ę poesį‰<„ 00,00,30,20,20,3F,3F,0F,0F,0F,0F,0A,0A,0A,0A,00,08,1E,1D,1F,1A,FC,FE,FC,FC,FC,FC,14,14,14,14,00ī‰F:ę boomTŠP„ 03,0F,2F,7F,3F,3F,37,71,61,21,01,01,01,03,0F,3F,E0,F4,FE,FF,FC,FE,FE,D7,DB,C2,C2,C0,C0,E0,FC,FEaŠZ:ę bootNJd„ 00,00,00,00,00,00,07,05,05,07,07,7F,3B,1F,0F,07,00,08,10,60,60,60,F0,50,50,F0,F0,FF,BB,FE,FE,FCԊn:ę huis:‹x„ 01,02,05,0B,16,2E,5F,3F,3F,3C,24,24,24,24,3C,3C,C0,A0,D0,E8,74,7A,FD,FE,FE,7E,42,42,C2,42,42,7EL‹‚:ę gezicht 2²‹Œ„ 3F,3F,C3,C3,C3,C3,FF,FF,37,38,0F,0F,30,30,40,00,FC,FC,C3,C3,C3,C3,FF,FF,EC,1C,F0,F0,0C,0C,02,00׋–:ę data voor sprite-koordinatenŒ „ 25,32,75,96,25,96,50,0,0,64,0,128,75,32,50,128,50,64,0,0bŒŖ„ 145,64,195,0,195,128,195,64,170,96,170,32,220,32,220,96,145,0,145,128Œ“:ędata koord. goede antw.Ȍ¾„ 60,64,120,64,90,32,90,96,60,128,60,0,120,128,120,0,150,32,150,96 Č„ 30,32,30,96,180,64,180,0,180,128,0,0,0,128,0,64,210,32,210,963Ņ:ę KEUZE 2 GETALLEN *************FÜDļ’…(’ˆ()ó )YęEļ’…(’ˆ()ó )nš‹ (DńE)ī Ś ÜŒś‹ Bļ ö (DņE)š Ś ¤ D,E:Žœ‹ Bļ Ś ,¢ŽČDļ’…(’ˆ()ó ń):Eļ’…(’ˆ()ó ń)Ņ"‰ śł,:ę ALLES DOOR ELKAAR: + OF - **** Ž6Nļ’…(’ˆ()óń))Ž@‹ Nļ ö (DņE)š Ś ¤ D,E/ŽJŽVŽT:ę BEPALEN ANTWOORD + ***********_Ž^½  iŽhFļDńEuŽrŲ  , ˆŽ|‘ ’–();’–(U)“ކŲ ,„ސ‘D;"+";E;"=";®Žš… FKɎ¤‹ FKļF Ś GļGń: X:ŽÕŽ®GFļGFńēŽø  ::ęfoutĀ:ę NIEUWE POGING ****************Ģ‰ Ž?Ö:ę BEPALEN ANTWOORD - ***********Gą½ QźFļDņE]ōŲ  , pž‘ ’–();’–(W)|Ų  ,‘ D;"-";E;"=";˜… FK³&‹ FKļF Ś GļGń: X:ŽÓ0‰ ®::ęroutine fout antw.Ū::ęD:ę BEPALEN + OF - ***************N‹ Nļ Ś ^ :” ą@X:ę BRAVO-SCHERM *****************HbÅ Xl‹ Fļ Ś ØbvŒ ¾p€‚ Iļ Ł F|Š ‡ X,Y“” ³ Ē I,(X,Y),CR,S›žƒ IĐØĮ "v12t100O4L8dr64g4dO3bg.r64O4d..."ې²‚ Iļ Ł  Ü @萼 Ų I, ‘Ę ‘ F;"-GOED ZO,";NA$;"-";F;‘Šƒ I#‘Ś‚ WAļ Ł Fó2,‘äƒ WA4‘īÅ :‘ųŽa‘:ę FOUT-SCHERM ******************i‘ Å {‘° "grp:" AS 1Š‘ ‚ Iļ Ł 2¢‘* KLļ’…(’ˆ()óń)­‘4 ½ KLĄ‘> ‘ #,"fout";Š‘H ‘ #,FK;:Ų‘R Ąą‘\ƒ Ič‘f“ š‘pÅ ö‘zŽ’„:ę HERKANSING BIJ FOUT **********#’ŽŸ+’˜½ 6’¢Ų , \’¬‘ "PROBEER HET NOG MAAR EEN KEER"m’¶‚ WAļ Ł Üv’Ąƒ WA|’ŹŸŒ’Ō‹ Fļ Ś  –’ŽŒ ¾¤’č‚ Iļ Ł F°’ņ ‡ X,YĒ’ü ³ Ē I,(X,Y),CL,SĻ’ ƒ IŪ’ Ų  ,ü’ ‹ Bļ Ś ‘ D;"+";E;"=";:‰ 8 “$ ‹ Bļ Ś ‘ D;"-";E;"=";:‰ 8 J“. ‹ Nļ Ś ‘ D;"+";E;"+"; :” ‘ D;"-";E;"=";S“8 … FKd“B ‹ FKļF Ś X‹“L :ę TWEEDE KEER OOK FOUT *********—“V FFļFFń£“` GFļGFņ«“j Å ȓt ‘ "ALWEEER VERKEERD,"NA$Ī“~ ‘ń“ˆ ‘ "HET GOEDE ANTWOORD WAS:";F"”’ ‚ WAļ Ł Ä ”œ ƒ WA”¦ Ž–ā „ 000100000–ģ „ 00010000?–ö „ 00000000I– S$ļ""W– ‚ Iļ Ł `– ‡ B$z– S$ļS$ń’–(’”("&b"ńB$))‚–( ƒ I–2 Ē$()ļS$•–< Žŗ–F :ę key(1)*—P Æ(,)ņ(’,),,BF:¾"BM0,0":‘ #,"x,y,z,g(rtr,k(lnr,s(tereo,h(oek":Ž%—Z Ž :ęsecure other keys*6‰Ž„ 01111100ndƒ:ęINITIALISATIE ******************lƒ¬ I‰ƒT1$ļ"MCM MEMORY MONITOR"¤ƒ"T2$ļ" SECTOR NUMMER:"²ƒ,  (: Ģ ėøƒ6ŽNEER GEREED"š‚Į "t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå’€  snake3*€Å :  (:½ ,,:Ģ ė:ŸU€’ č:¬ AņZ:RDRST(ņĖ):† X(ś),Y(ś)p€(—ŻļV::ę BIOS KILBUFx€2:ę€<Œ d :ęchr prooi¢€F‚ Nļč Ł ļ ²€P‡ D : Ę N,Dŗ€Zƒ NŪ€d„ 24,24,126,189,60,36,36,102ć€n:ęž€x‘:‘:‘ " Spelregels:"D‚‘:‘:‘ " - de slang wordt bestuurd met de vier cursor-toetsen"ŸŒ‘:‘ " - als de slang een prooi heeft ver- slonden, wordt hij twee tekens langer"ö–‘:‘ " - als hij zichzelf kruist, eet hij zijn eigen staart op en begint opnieuw"F‚ ‘:‘ " - snelheid is instelbaar tussen 0 (langzaam) en 9 (snel)":‘R‚ŖKBļŻ()o‚“… " keuze";SP:SPļSP󔂾‘:‘:‘ "starten met een van de cursor toetsen"©‚Č:ęŹ‚Ņ:ę========== startconditiesā‚ÜBļ’¢():‹ Bļ Ś Üč‚ęŸ/ƒšLSļ : STļ : KOPļ :ęlengte snake,positie in sn$ van staart,kopoƒśXSļ’…( ó’ˆ()ń) : YSļ’…( ó’ˆ()ń) :ęstartpositie snake©ƒ‚ Nļ Ł  : X(N)ļXSńN : Y(N)ļYS : ƒ N :ęopbouw snakeʃXļXSń : YļYS :ękop positie„XPļ’…((ó’ˆ()) : YPļ’…(ó’ˆ()) : Ų XP,YP : ‘ "" :ęprooi pos„":ę;„,:ę========== loop, nieuwe pos.G„6Aļ’¢()i„@‹ Aļ ÷ Aļ ÷ Aļ ÷ Aļ Ś BļA†„J• B  ,,,,*,,>Ž„T:ę„„^:ę========== moveĒ„h‚ NļSP Ł “ : ƒ :ęvertragingś„r‹ ’˜((Yó()ńX)ļ Ś  :ęgeen prooi of snake3…|‹ ’˜((Yó()ńX)ļ Ś  Ģ :ęprooi, nieuwe koppos=f…†‹ ’˜((Yó()ńX)ļ Ś N :ęsnake ontmoet snake“…Ų X(ST),Y(ST) : ‘" "; :ęstaart uitvegenņ…šX(ST)ļX : Y(ST)ļY : Ų X,Y : ‘"D"; :ęoude staartpos wordt nieuwe koppos in de snakestring†¤KOPļST : STļ(KOPń)ū LS†®‰ 6 †ø:ę>†Ā:ę========== subr hebbesD†ĢĄk†Ö‚ Mļ Ł  :ęwordt 2 tekens langer‚†ą ‚ NļLS Ł STń Üņ±†ź X(N) ļ X(Nņ) : Y(N)ļY(Nņ) :ęin snake$ŗ†ō ƒ Nцž X(ST)ļX : Y(ST)ļYń† LSļLSń : KOPļST : STļSTńł†ƒ M9‡XPļ’…((ó’ˆ()) : YPļ’…(ó’ˆ()) :ęschermpos nieuwe prooi|‡&‹ ’˜(YPó(ńXP)šī Ś  :” Ų XP,YP : ‘ ""; :ęprooipos bezet±‡0Ų , : ‘ "score =";LSņ ;" hi score =";SC;·‡:Žæ‡D:ęŪ‡N:ę========== kannibaalé‡X‚ Tļ Ł ł‡bĄ:Ą:Ą:Ą:Ą:Ąˆl‚ Nļ Ł  : ƒ Nˆvƒ Tˆ€:ę-ˆŠ‚ Nļ Ł LSTˆ”DEļ(STńN)ū LS : ‹ DEīLS Ś DEļDEņLSvˆžX(DE)ļX(DEń) : Y(DE)ļY(DEń)šˆØ ‚ NNļ Ł d:ƒ NN :ęvertraging戲Ų X(DE),Y(DE) : ‘" ":Ą :ęopetenLj¼ƒ NõˆĘŸ: ‘ "score =";LSņ ;"met snelheid";SPü‰Š‹ LSņ īSC Ś SCļLSņ : SNļSPüH‰Ś‘:‘ " hoogste score tot nu toe was";SCp‰ä‘ " met snelheid";SN : ‘:‘:‰  x‰ī:ę‰ų:ę========== subr؉YļYņ : ‹ Yš Ś Yﮉ ŽĒ‰XļXń : ‹ Xī' Ś Xļ͉ Žę‰*YļYń : ‹ Yī Ś Yļģ‰4ŽŠ>XļXņ : ‹ Xš Ś Xļ' ŠHަ Ž–ā „ 000100000–ģ „ 00010000?–ö „ 00000000I– S$ļ""W– ‚ Iļ Ł `– ‡ B$z– S$ļS$ń’–(’”("&b"ńB$))‚–( ƒ I–2 Ē$()ļS$•–< Žŗ–F :ę key(1)*—P Æ(,)ņ(’,),,BF:¾"BM0,0":‘ #,"x,y,z,g(rtr,k(lnr,s(tereo,h(oek":Ž%—Z Ž :ęsecure other keys*6‰Ž„ 01111100ndƒ:ęINITIALISATIE ******************lƒ¬ I‰ƒT1$ļ"MCM MEMORY MONITOR"¤ƒ"T2$ļ" SECTOR NUMMER:"²ƒ,  (: Ģ ėøƒ6ŽNEER GEREED"š‚Į "t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:’)€ :ę MSX Computer Magazine checker/31€:ę^€:ę copyright MBI Publications B.V. 1985‡€(:ę*********************************°€2:ę PAS TOP OF BASIC MEMORY AAN ****Ņ€<’ Č,(’—( Jü)ńó’—( Kü))ņĻö€FBļ’—( Jü)ńó’—( Kü): —ŻļBńMP:ę STEL SCHERM IN *****************7ZÅ :   %: ½ ,,_d:ę GEEF INSTRUCTIE OP SCHERM *****„nŲ ,: ‘ "MSX COMPUTER MAGAZINE"ƁxŲ ,: ‘ "INVOER CONTROLE PROGRAMMA/3"‚‚Ų ,: ‘ "Dit programma maakt het mogelijk om de listings uit dit blad foutloos in te voeren." ‚Œ‘ "Bij het intikken van programma-regelsveschijnt nadat u op 'RETURN' of 'ENTER' gedrukt heeft een getal linksop de onderste regel."6ƒ–‘ "Dit getal moet gelijk zijn aan de bijde listing afgedrukte checksumwaarde.Als dit niet zo is, dan is er een fout gemaakt bij het intikken."ƒƒ ‘ "Let op, BASIC woorden moeten met hoofdletters geschreven worden!"«ƒŖ:ę INSTALLEER MACHINECODE ********ŗƒ“‚ Rļ Ł Īƃ¾‡ A$ņƒČ‹ ’(A$,)šī"*" Ś ˜ BńR,’”("&H"ńA$): ‰ šT„Ņ‹ A$ļ"**" Ś ‡ A$: ABļBń’”("&H"ńA$): ˜ BńR,ABņ(’…(ABō)ó): RļRń: ˜ BńR,’…(ABō): ‰ š„Ü‹ A$ļ"*1" Ś ‡ A$: ABļBń’”("&H"ńA$): ˜ BńR,ABņ(’…(ABō)ó): ‰ šÅ„ę‹ A$ļ"*2" Ś ˜ BńR,’…(ABō): ‰ šĶ„šƒ Rõ„ś:ę ZET CHECKSUMROUTINE AAN *******…AļŻ()'…‘: ‘ "Begint u maar met intikken"-…”U…":ę MACHINECODE *******************х,„ 21,5E,F5,7E,23,FE,20,20,FA,7E,23,FE,20,28,FA,FE,27,28,D,FE,52,20,D,7E,FE,45,C0,23,7E,FE,4D,C0,E1,C3,**,9F,FE,72,C0,7EI†6„ FE,65,C0,23,7E,FE,6D,28,EF,C9,36,27,1,6,0,21,**,47,11,7F,F8,ED,B0,3E,C9,32,DB,FD,C3,**,CB,63,6F,6C,6F,72,20,1,6,0Ȇ@„ 21,7F,F8,11,**,47,ED,B0,21,7F,F8,36,27,21,83,F8,36,27,23,36,D,21,DB,FD,36,C3,23,36,*1,71,23,36,*2,C9,1E,0,CD,**,00,21,5E>‡J„ F5,6,1,7E,4F,FE,27,28,B1,18,1,4E,3E,0,B9,28,16,C5,16,7,CB,39,30,1,80,15,28,4,CB,20,18,F4,83,5F,C1,4,23,18,E4,6B²‡T„ 11,80,F8,26,0,1,64,0,CD,**,B9,1,A,0,CD,**,B9,1,1,0,CD,**,B9,18,12,37,3F,3E,0,ED,42,FA,**,C5,3C,18,F8,C6,30,12ˇ^„ 13,9,C9,CD,C9,0,C9t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:’(€č:ę BUBBLE SORT ******************0€ņ:ęK€ü:ę Globale variabeleno€:ę B : te sorteren array—€:ę A : aantal elementen in BŸ€:ę¹€$:ę Lokale variabelenր.:ę T1,T2 : lustellersķ€8:ę V1 : vlagõ€B:ęż€L:ę V:ę Deze module sorteert arrayA`:ę B in oplopende volgorde.gj:ę B mag ook als B$ gedefinieerdwt:ę worden.›~:ę Bubblesort alleen gebruiken¾ˆ:ę voor kleine of al bijna iną’:ę volgorde staande array's!‚œ:ę Voor andere klussen in Bubble‚¦:ę sort te traag.%‚°:ę6‚ŗ‚ T1ļ Ł AņB‚Ä V1ļW‚Ī ‚ T2ļ Ł AņT1‰‚Ų ‹ B(T2ń)šB(T2) Ś ¤ B(T2ń),B(T2): V1ļ•‚ā ƒ T2¬‚ģ ‹ V1ļ Ś T1ļAņµ‚öƒ T1Ź‚Ž::ę BUBBLESORT„ F5,6,1,7E,4F,FE,27,28,B1,18,1,4E,3E,0,B9,28,16,C5,16,7,CB,39,30,1,80,15,28,4,CB,20,18,F4,83,5F,C1,4,23,18,E4,6B²‡T„ 11,80,F8,26,0,1,64,0,CD,**,B9,1,A,0,CD,**,B9,1,1,0,CD,**,B9,18,12,37,3F,3E,0,ED,42,FA,**,C5,3C,18,F8,C6,30,12ˇ^„ 13,9,C9,CD,C9,0,C9t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:’'€č:ę SHELL SORT ******************/€ņ:ęJ€ü:ę Globale variabelenn€:ę B : te sorteren array–€:ę A : aantal elementen in Bž€:ęø€$:ę Lokale variabelenŌ€.:ę T1 : lustellerė€8:ę V1 : vlagB:ę H1,H2,H3: wijzers L:ęV:ę8`:ę Deze module sorteert arrayYj:ę B in oplopende volgorde.t:ę B mag ook als B$ gedefinieerd~:ę worden.²ˆ:ę Shellsort is redelijk snel؁’:ę en kan voor de meeste sorteerųœ:ę klussen ingezet worden.‚¦:ę ‚°H1ļA‚ŗ‹ H1šļ Ś  4‚ÄH1ļ’…(H1ō): H2ļAņH1=‚ĪV1ļM‚Ų‚ T1ļ Ł H2]‚ā H3ļT1ńH1ˆ‚ģ ‹ B(T1)īB(H3) Ś ¤ B(T1),B(H3): V1ļ‘‚öƒ T1©‚‹ V1ī Ś Ī :” ŗ¼‚ Ž::ęSHELLSORT BUBBLESORT„ F5,6,1,7E,4F,FE,27,28,B1,18,1,4E,3E,0,B9,28,16,C5,16,7,CB,39,30,1,80,15,28,4,CB,20,18,F4,83,5F,C1,4,23,18,E4,6B²‡T„ 11,80,F8,26,0,1,64,0,CD,**,B9,1,A,0,CD,**,B9,1,1,0,CD,**,B9,18,12,37,3F,3E,0,ED,42,FA,**,C5,3C,18,F8,C6,30,12ˇ^„ 13,9,C9,CD,C9,0,C9t255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:’€  SORTEER-TEST STRINGS"€>€ MSX COMPUTER MAGAZINED€(W€dŸ:   $: ’ ˆz€n… "Hoeveel strings sorteren";A†€x† B$(A)”€‚‚ Nļ Ł A²€Œ ‚ Mļ Ł ’…(’ˆ()ó)ń܀– B$(N)ļB$(N)ń’–(’…(’ˆ()ó)ńA)瀠 ƒ Mƒ N “‘ "ongesorteerde lijst¾ ōČĖļ&Ņ č/ÜTTļĖIę‘ "gesorteerde lijst"Sš ōwś‘ "Dat kostte "TTō2" seconden"}“ō:ę lijst printen™ž‘§‚ Nļ Ł A¶ ‘ B$(N)¾ƒ Nā&‘ʁ0Žt255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå’€  SORTEER-TEST NUMERIEK#€?€ MSX COMPUTER MAGAZINEE€(Q€dŸ:   $u€n… "Hoeveel getallen sorteren";A€€x† B(A)Ž€‚‚ Nļ Ł A©€Œ B(N)ļ’…(’ˆ()ód)ń±€–ƒ NĢ€ ‘ "ongesorteerde lijstրŖ ōŽ€“Ėļ耾 čń€ČTTļĖ Ņ‘ "gesorteerde lijst"Ü ō9ę‘ "Dat kostte "TTō2" seconden"?šUō:ę lijst printen[ž‘i‚ Nļ Ł AŸ ‘ ä"### ### ### ### ### ### ### ### ###";B(N);§ƒ N­&‘³0޾ƒ Nā&‘ʁ0Žt255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå’€  SRTTIM€2€ TIMING SORTEER-METHODESN€( msx computer magazineT€2{€d:ę INITIALISATIE ****************Ž€n†B( ),TT(,)®€x R::ę print verslag-kopՀ‚:ę HOOFDPROGRAMMA ***************怌‚ Xļ Ł – AļõX::ę aantal elementen)   ¾::ę maak sorteringen1Ŗƒ X7“^¾:ę ZET SORTERINGEN OP ***********‚Č‚ Z1ļ Ł ::ę sorteer-methodes¦Ņ ‚ Z2ļ Ł ::ę begin-toestand»Ü DUMMY(ņ)Öę • Z2   ,€,Ęāš Ėļżś • Z1  @,š,‚ TT(Z1,Z2)ļĖō2‚ ƒ Z2(‚ƒ Z1I‚" ¢::ę print verslagregelO‚,Žv‚6:ę BUBBLE SORT ******************‡‚@‚ T1ļ Ł Aņ“‚J V1ļ؂T ‚ T2ļ Ł AņT1Ś‚^ ‹ B(T2ń)šB(T2) Ś ¤ B(T2ń),B(T2): V1ļę‚h ƒ T2ż‚r ‹ V1ļ Ś T1ļAņƒ|ƒ T1ƒ†Ž::ę BUBBLESORTBƒ:ę SHELL SORT *******************KƒšH1ļA]ƒ¤‹ H1šļ Ś ōvƒ®H1ļ’…(H1ō): H2ļAņH1ƒøV1ļƒĀ‚ T1ļ Ł H2ŸƒĢ H3ļT1ńH1ʃÖ ‹ B(T1)īB(H3) Ś ¤ B(T1),B(H3): V1ļӃąƒ T1ėƒź‹ V1ī Ś ø :” ¤žƒōŽ::ęSHELLSORT%„ž:ę SHELL METZNER SORT ***********.„H1ļA>„H1ļ’…(H1ō)O„‹ H1ļ Ś va„&H2ļAņH1: H3ļk„0H4ļH3x„:H5ļH4ńH1‘„D‹ B(H4)šļB(H5) Ś b­„N¤ B(H4),B(H5): H4ļH4ņH1æ„X‹ H4īļ Ś :Ė„bH3ļH3ńå„l‹ H3šļH2 Ś 0 :” …vŽ::ęSHELL-METZNER SORT(…€:ę MAAK RANDOM CASE *************0…Š„ B;…”† B(A)I…ž‚ Nļ Ł Ad…Ø B(N)ļ’…(’ˆ()ód)ńl…²ƒ Nr…¼Ž™…Ę:ę MAAK BEST CASE ***************”…Š„ B¬…چ B(A)ŗ…ä‚ Nļ Ł Aȅī B(N)ļNŠ…ųƒ NօŽż… :ę MAAK WORST CASE **************†„ B† † B(A)†*‚ Nļ Ł A0†4 B(N)ļAņNń8†>ƒ N>†HŽe†R:ę DRUK KOP VERSLAG *************œ†\ "SORTEERTIJDEN (in seconden) NUMERIEKE GEGEVENS"¢†fņ†p " BUBBLE-SORT SHELL-SORT SHELL/METZNER-SORT"B‡z "AANTAL WORST RANDOM BEST WORST RANDOM BEST WORST RANDOM BEST"’‡„ "ITEMS CASE CASE CASE CASE CASE CASE CASE CASE CASE"˜‡Žž‡˜ŽÅ‡¢:ę DRUK REGEL VERSLAG ***********bˆ¬ ä "##### ###.## ###.## ###.## ###.## ###.## ###.## ###.## ###.## ###.##";A,TT(,),TT(,),TT(,),TT(,),TT(,),TT(,),TT(,),TT(,),TT(,)hˆ¶Žorteren";A€€x† B(A)Ž€‚‚ Nļ Ł A©€Œ B(N)ļ’…(’ˆ()ód)ń±€–ƒ NĢ€ ‘ "ongesorteerde lijstրŖ ōŽ€“Ėļ耾 čń€ČTTļĖ Ņ‘ "gesorteerde lijst"Ü ō9ę‘ "Dat kostte "TTō2" seconden"?šUō:ę lijst printen[ž‘i‚ Nļ Ł AŸ ‘ ä"### ### ### ### ### ### ### ### ###";B(N);§ƒ N­&‘³0޾ƒ Nā&‘ʁ0Žt255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå’ €  ML01€$€ VOORBEELD 1D€( VUL HET SCHERM MET A'TJES]€2 MACHINETAAL-VERSIEc€<€F MSX COMPUTER MAGAZINEŸ€P MACHINETAAL-KURSUS DEEL 1„€ZĪ€d:ę DE BASIC-LADER *****************n’ Č, ’::ę Reserveer ruimte voor het ML-programma,xAļ ::ę Begin van het programmaO‚‡ D:‹ Dīļ Ś ˜ A,D:AļAń:‰ ‚†Œ— Żļ :‘"Druk op een toets...";:A$ļ…$():AļŻ():®ō:ę DE EIGENLIJKE ML **************ԁž„ 62,12: :ę LD A,12‚„ 205,162,0: :ę CALL 162 ;Maak het scherm schoon\‚„ 1,120,3: :ę LD BC,888 ;Aantal af te drukken letters‚‚„ 62,65: :ę CONT: LD A,65æ‚&„ 205,162,0: :ę CALL 162 ;Druk een letter afä‚0„ 11: :ę DEC BCƒ:„ 175: :ę XOR A+ƒD„ 176: :ę OR BlƒN„ 32,246: :ę JR NZ,CONT ;Als B<>0, ga naar CONTƒX„ 177: :ę OR CЃb„ 32,243: :ę JR NZ,CONT ;Als C<>0, ga naar CONT „l„ 201: :ę RET ;Einde programmaM„v„ -1: :ę ;Einde-ML vlag voor lader),TT(,),TT(,)hˆ¶Žorteren";A€€x† B(A)Ž€‚‚ Nļ Ł A©€Œ B(N)ļ’…(’ˆ()ód)ń±€–ƒ NĢ€ ‘ "ongesorteerde lijstրŖ ōŽ€“Ėļ耾 čń€ČTTļĖ Ņ‘ "gesorteerde lijst"Ü ō9ę‘ "Dat kostte "TTō2" seconden"?šUō:ę lijst printen[ž‘i‚ Nļ Ł AŸ ‘ ä"### ### ### ### ### ### ### ### ###";B(N);§ƒ N­&‘³0޾ƒ Nā&‘ʁ0Žt255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå’ €  ML02€$€ VOORBEELD 1D€( VUL HET SCHERM MET A'TJESW€2 BASIC-VERSIE]€<y€F MSX COMPUTER MAGAZINE™€P MACHINETAAL-KURSUS DEEL 1Ÿ€ZĒ€d:ę HET EIGENLIJKE PROGRAMMA ******Ķ€nŸė€x‚ Iļ Ł x::ę 888=37*24ö€‚‘ "A";ž€Œƒ Irde lijst"Ü ō9ę‘ "Dat kostte "TTō2" seconden"?šUō:ę lijst printen[ž‘i‚ Nļ Ł AŸ ‘ ä"### ### ### ### ### ### ### ### ###";B(N);§ƒ N­&‘³0޾ƒ Nā&‘ʁ0Žt255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå  pause PLAATS UW FLOPPIES copy c:*.* a: del a:c4.bat copy c:*.* b: del b:c4.bat copy c:*.* d: del d:c4.bat c:c4 ę 888=37*24ö€‚‘ "A";ž€Œƒ Irde lijst"Ü ō9ę‘ "Dat kostte "TTō2" seconden"?šUō:ę lijst printen[ž‘i‚ Nļ Ł AŸ ‘ ä"### ### ### ### ### ### ### ### ###";B(N);§ƒ N­&‘³0޾ƒ Nā&‘ʁ0Žt255l64s8m5000cfacfacfacfacfacfa"‚Œ‹ģļ’–( )ڊ:ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö