*** Protokolldatei gestartet *** Datum: Mi Jun 18 19:51:20 2008 [Mi Jun 18 2008] [19:51:20] Betreten Sie haben den Kanal #forth-ev betreten (~bernd@dslb-088-064-073-217.pools.arcor-ip.net). [Mi Jun 18 2008] [19:55:25] Abwesend Sie sind nun als abwesend markiert. [Mi Jun 18 2008] [20:04:03] Betreten frunobulax hat den Kanal betreten (~mhx@e243118.upc-e.chello.nl). [Mi Jun 18 2008] [20:04:41] Hi Bernd [Mi Jun 18 2008] [20:06:41] Betreten uho hat den Kanal betreten (~uho@e177196143.adsl.alicedsl.de). [Mi Jun 18 2008] [20:06:49] hi [Mi Jun 18 2008] [20:15:35] Abwesend Sie sind nicht mehr als abwesend markiert. [Mi Jun 18 2008] [20:15:36] Hallo [Mi Jun 18 2008] [20:16:40] So - der linke Lüfter meines MacBooks hat sich verabschiedet. Ich fahre momentan Notbetrieb und warte auf das Ersatzteil.... [Mi Jun 18 2008] [20:17:41] Klingt nach Sommerproblem ;-). Bei uns in der Firma haben sich am letzten warmen Tag zwei Wandwarzen verabschiedet. [Mi Jun 18 2008] [20:18:00] CPU runtertakten, zweiten Lüfter stärker blasen lassen und Temperaturmonitor dauerhaft an. [Mi Jun 18 2008] [20:18:01] Wie arbeiten die Linux threads eigentlich in (mehr) detail? Braucht man als Programmierer etwas Extras? [Mi Jun 18 2008] [20:18:22] Ich hoffe, so überstehe ich die Tage bis der Ersatzlüfter da ist. [Mi Jun 18 2008] [20:19:26] Threads: So genau habe ich mich da noch nicht damit beschäftigt. [Mi Jun 18 2008] [20:19:47] Ich kenn mich nur ganz wage mit Pthreads aus. Weiss nicht mal, wie die Linux-Threads dazu stehen. [Mi Jun 18 2008] [20:20:05] Nick McLaren hat zu Threads in comp.arch folgendes geschrieben: [Mi Jun 18 2008] [20:20:09] > When is it safe to read/write from/to memory with multiple threads ? [Mi Jun 18 2008] [20:20:09] In almost all current programming languages, never. [Mi Jun 18 2008] [20:20:09] Rumours have it that it can be done safely in Ada, and C++ is [Mi Jun 18 2008] [20:20:09] working on it for the next standard. Beyond that, you are relying [Mi Jun 18 2008] [20:20:09] on undefined behaviour. [Mi Jun 18 2008] [20:20:09] On some architectures, it is possible in assembler. On others, it [Mi Jun 18 2008] [20:20:09] isn't safe even in that. [Mi Jun 18 2008] [20:20:09] There may be some compiler/system/library combinations for which [Mi Jun 18 2008] [20:20:09] you can write safe, but completely non-portable, code. I don't know [Mi Jun 18 2008] [20:20:09] of any, but can't exclude the possibility. [Mi Jun 18 2008] [20:20:21] Betreten MatthiasT hat den Kanal betreten (~mt@frnk-590efed2.pool.einsundeins.de). [Mi Jun 18 2008] [20:20:27] Hallo Matthias [Mi Jun 18 2008] [20:20:31] gi [Mi Jun 18 2008] [20:20:40] hallo M [Mi Jun 18 2008] [20:21:43] Auf der LinuxThreads-Homepage steht, dass die obsolet sind, und durch die NPTL ersetzt wurden. [Mi Jun 18 2008] [20:21:55] gibt es eigentlich einen uml -> forth umsetzer? [Mi Jun 18 2008] [20:22:02] Safety ist "kein Problem" in Forth. Ich moechte aber hoehere Performance sehen, und da geht es nicht so leicht verstaendlich wie ich es gehofft habe ;-) [Mi Jun 18 2008] [20:25:25] Meinst Du UML-Klassendiagramme? [Mi Jun 18 2008] [20:25:35] Was man braucht, ist ein per-thread-Forth-Stack, und einen Pointer zur User-Area [Mi Jun 18 2008] [20:26:03] Letzteren kann man wohl über das fs:-Segment ersetzen [Mi Jun 18 2008] [20:26:16] Haben wir (iForth team). [Mi Jun 18 2008] [20:27:06] Und natürlich futexe - mit denen man kritische Bereiche locken kann. [Mi Jun 18 2008] [20:29:14] Bekommt man auf ein 'bog-standard' Linux system (also nicht SMP, standard distribution) automatisch support fuer mehrere Prozessoren (also 2 threads -> 2 Prozessoren benutzt usw.)? [Mi Jun 18 2008] [20:29:28] Ja, klar. [Mi Jun 18 2008] [20:29:43] Betreten MatthiasT_ hat den Kanal betreten (~mt@frnk-590ec956.pool.einsundeins.de). [Mi Jun 18 2008] [20:29:53] Normalerweise sind die "bog-standard"-Linuxe SMP [Mi Jun 18 2008] [20:30:05] 'Sollte' oder 'bin sicher' ? [Mi Jun 18 2008] [20:30:22] Es gibt 1001 verschiedene Linux-Distributionen, für die, die ich kenne, bin ich sicher ;-) [Mi Jun 18 2008] [20:30:57] Ok, warum gibt es SMP kernels? [Mi Jun 18 2008] [20:31:23] Beenden MatthiasT hat den Server verlassen (Ping timeout). [Mi Jun 18 2008] [20:31:31] Die Kernels ohne SMP können auf Spinlocks verzichten, und sind dann kleiner. [Mi Jun 18 2008] [20:32:25] Was geschiet wenn ich da threads benutze? [Mi Jun 18 2008] [20:32:39] Betreten Martin_53 hat den Kanal betreten (-martin@p5B383BCF.dip.t-dialin.net). [Mi Jun 18 2008] [20:32:57] Da wird ohnehin nur eine CPU benutzt, und die Threads machen dann ganz normales Zeitscheibenmultitasking. [Mi Jun 18 2008] [20:32:59] hallo Martin. [Mi Jun 18 2008] [20:32:59] Guten Abend! :-) [Mi Jun 18 2008] [20:33:00] Hallo Martin [Mi Jun 18 2008] [20:33:09] Hallo Martin_53 [Mi Jun 18 2008] [20:33:24] Mal wieder nur kurz reinschauen ... [Mi Jun 18 2008] [20:33:32] Grüß Euch alle1 [Mi Jun 18 2008] [20:35:18] Subject? [Mi Jun 18 2008] [20:35:35] Im Moment geht's um Threads unter Linux [Mi Jun 18 2008] [20:36:42] Bernd: Auf mein AMD X2 system mit SuSE 10.3 lauft der x86_64 2.6.22.17.0.1-default kernel. Ist da etwas schief gegangen? [Mi Jun 18 2008] [20:37:02] Nein, mach einfach uname -a [Mi Jun 18 2008] [20:37:06] Wenn da etwas kommt wie das: [Mi Jun 18 2008] [20:37:09] Linux vimes 2.6.25.5-1.1-default #1 SMP [Mi Jun 18 2008] [20:37:20] dann ist alles richtig (das ist SuSE 11.0b3) [Mi Jun 18 2008] [20:38:17] Was bedeutet das 'vimes'? [Mi Jun 18 2008] [20:38:25] Das ist der Name der Maschine. [Mi Jun 18 2008] [20:38:28] Danke! Sagt #1 SMP [Mi Jun 18 2008] [20:38:43] "Vimes" ist eine Figur aus der Scheibenwelt von Terry Pratchett [Mi Jun 18 2008] [20:39:19] Mit cat /proc/cpuinfo kann man sich dann auch noch anzeigen lassen, wieviele CPUs der Kernel gefunden hat. [Mi Jun 18 2008] [20:39:25] Und #1 SMP [Mi Jun 18 2008] [20:39:37] ? [Mi Jun 18 2008] [20:39:41] Der Herr Drepper ist ein bisschen Linux-zentrisch :-)( [Mi Jun 18 2008] [20:39:49] Erster Build eines SMP Kernels [Mi Jun 18 2008] [20:40:19] Das war früher mal interessanter [Mi Jun 18 2008] [20:41:23] Ja, früher hat man seinen Kernel noch selber compiliert. [Mi Jun 18 2008] [20:43:11] Mach ich heute noch. Passt dann besser zu Hardware und sonderwünschen :-) also SMP ist für Multi/Hyperthreading. Aber wie erklärt sich dieses Akrnonym? [Mi Jun 18 2008] [20:43:13] Das ist aber schon sehr lange her (bei mir zumindest) [Mi Jun 18 2008] [20:43:34] SMP? Symmetrisches Multiprozessing [Mi Jun 18 2008] [20:43:39] Genau. [Mi Jun 18 2008] [20:43:54] Aha. [Mi Jun 18 2008] [20:44:07] Das ist so mehr oder weniger: Jeder Prozessor macht/kann das gleiche [Mi Jun 18 2008] [20:44:19] Und hat gleichberechtigt Zugriff auf die Resourcen. [Mi Jun 18 2008] [20:44:45] Eben Threading. [Mi Jun 18 2008] [20:44:49] Was anderes wäre zum Beispiel die CPU von der PS3: Eine "richtige" CPU und jede Menge (9?) Coprozessoren [Mi Jun 18 2008] [20:45:23] Die PS3 hat 8 Cells, von denen man sieben benutzen kann [Mi Jun 18 2008] [20:46:35] Wie schätzt ihr den c't Artikel ein: Nvidia und co wollen der CPU das Wasser abgraben. [Mi Jun 18 2008] [20:47:07] Kommt drauf an, wofür ;=) [Mi Jun 18 2008] [20:47:12] Ja, das ist das bekannte Rad der Reinnovation: GPUs beerben CPUs und werden dann selber CPUs, die von GPUs unterstützt werden ;-) [Mi Jun 18 2008] [20:47:21] D.h. der Grafikchip übernimmt (noch) mehr Rechenleistung, die CPU wird un?wichtiger. [Mi Jun 18 2008] [20:48:05] Insbesondere für Vektorrechnungen kann man die Koordinatentransformationseinheit gut verwenden. [Mi Jun 18 2008] [20:48:09] Ich persönlich spiele extrem wenig- sehr extrem wenig. Was habe ich davon? [Mi Jun 18 2008] [20:48:22] Man braucht dazu nicht zu spielen ;-) [Mi Jun 18 2008] [20:48:23] Nix [Mi Jun 18 2008] [20:48:39] Raytracing blender etc? [Mi Jun 18 2008] [20:49:00] Macht die Grafikkarte schon jetzt [Mi Jun 18 2008] [20:49:13] resp. könnte sie machen [Mi Jun 18 2008] [20:50:32] AMD/ATI haben inzwischen die Doku für die GPUs so weit verfollständigt, dass man auch ein Forth drauf portieren könnte ;-) [Mi Jun 18 2008] [20:50:37] Aber ATI/AMD haben erst kürzlich den Befehlssatz veröffentlicht, so das der C Compiler den noch nicht kennt ;=) [Mi Jun 18 2008] [20:50:58] Und mit Apple zusammen arbeiten sie an OpenCL [Mi Jun 18 2008] [20:53:17] So so - Augaben zwischen CPU und GPU verteilen ... [Mi Jun 18 2008] [20:53:19] in Forth auf einem NVidia hätte 256 byte Cellgröße [Mi Jun 18 2008] [20:53:52] Das mit Double Precision gekoppelt, würde vermutlich die Security-Codebreaker in Verzücken versetzen ;=) [Mi Jun 18 2008] [20:53:54] Die Integer sind nicht unbedingt größer geworden. [Mi Jun 18 2008] [20:53:59] Das reicht doch ersteinmal für mittelgroße zahlen :-) [Mi Jun 18 2008] [20:54:44] Vermutlich sind es auch nicht komplett nutzbare 256 bytes, sondern SIMD [Mi Jun 18 2008] [20:55:29] Klar ist das SIMD. [Mi Jun 18 2008] [20:56:32] Aber reizvoll wäre so ein "überbreites" Forth schon [Mi Jun 18 2008] [20:57:25] zumal die normalen CPU erst bei 64bit angekommen sind ;=) [Mi Jun 18 2008] [20:58:00] Die GPUs haben eher kleinere Datenbreiten, sind ja alles Farbwerte für Pixel. [Mi Jun 18 2008] [20:58:47] Aber sie haben enorme SPeicherbandbreite. Was gerade für die Primfaktoren ein wichtiges Element ist, IIRC [Mi Jun 18 2008] [20:59:14] eben! man könnte bis zu 32-chars lange wordnamen haben, die direkt ihre Sdresse _sind_ (genug speicher vorausgesetzt) Das wäre schneller als jedes hashing, das ich kenne. [Mi Jun 18 2008] [20:59:43] Sdresse=Adresse [Mi Jun 18 2008] [21:00:16] Die Adressen sind nicht länger als die der CPU. [Mi Jun 18 2008] [21:00:47] Ups :-X [Mi Jun 18 2008] [21:01:04] Schließlich ist der Adressraum ja der gleiche. [Mi Jun 18 2008] [21:04:12] Ihr Lieben, ich muss wieder an die Arbeit - aber nächste Woche ist mein erster Ferienabend :-) Dann habe ich Zeit. [Mi Jun 18 2008] [21:04:21] Muss mal wieder an die Arbeit (iForth64 bootet jetzt!) [Mi Jun 18 2008] [21:04:26] Dann bis bald [Mi Jun 18 2008] [21:04:32] Marcel: Gratuliere! [Mi Jun 18 2008] [21:04:37] Beenden frunobulax hat den Server verlassen ("a quit that really quits"). [Mi Jun 18 2008] [21:04:40] Also Tschüss Ihr alle! [Mi Jun 18 2008] [21:04:46] Ciao [Mi Jun 18 2008] [21:04:53] Adele [Mi Jun 18 2008] [21:05:08] Das gleiche in Italienisch. [Mi Jun 18 2008] [21:06:24] jetzt find ich doch keinen Höflichen Weg aus dem IRC-Programm rauszukommen ... also per alt-f4 [Mi Jun 18 2008] [21:06:32] Verlassen Martin_53 hat den Kanal verlassen. [Mi Jun 18 2008] [21:10:45] So, jetzt ist uns das Thema abhanden gekommen ;-) [Mi Jun 18 2008] [21:11:42] mm [Mi Jun 18 2008] [21:12:28] Aber ich könnte ja noch mal UML sagen ;=) [Mi Jun 18 2008] [21:13:39] Ja, da findet man mit Forth wohl selten einen gemeinsamen Nenner ;-) [Mi Jun 18 2008] [21:14:03] Müsste aber IMHO fast nicht sein. [Mi Jun 18 2008] [21:15:00] Na, man kann am grünen Tisch UML-Diagramme zeichnen, und hinterher feststellen, dass die mit der Realität wenig zu tun hatten. [Mi Jun 18 2008] [21:15:12] Wenn ich mir die dia2code Liste so anschaue: (ada|c|cpp|csharp|idl|java|php|php5|python|ruby|shp|sql)] [Mi Jun 18 2008] [21:16:27] UML ist auch nur ein Werkzeug. Man kanns ge- und missbrauchen. [Mi Jun 18 2008] [21:16:43] Und es kann als Alibi durchgehen [Mi Jun 18 2008] [21:17:16] Mir ist generell suspekt, wenn man mehrere verschiedene Darstellungen zum gleichen Thema braucht. [Mi Jun 18 2008] [21:17:35] Also ineinander überführbare Darstellungen, nicht etwa Anforderung -> Programm [Mi Jun 18 2008] [21:17:46] also geht es um Klassendiagramme? [Mi Jun 18 2008] [21:17:46] Da gibt's noch keinen Automatismus, der A nach P überführt ;-) [Mi Jun 18 2008] [21:18:06] UML sind Flowcharts für objektorientierte Programme. [Mi Jun 18 2008] [21:18:07] Klassendiagramme sind sicher am einfachsten zu übersetzen [Mi Jun 18 2008] [21:18:43] Wenn da keine Abstraktion drin steckt, hilft es einem nix. [Mi Jun 18 2008] [21:19:00] Eben - in UML steckt keine Abstraktion. [Mi Jun 18 2008] [21:19:03] Dann hat man nur - wie Bernd schon sagt - zwei Darstellungen des gleichen Sachverhalts. [Mi Jun 18 2008] [21:19:10] Aber will man eine Faktorisierung in UML abbilden? [Mi Jun 18 2008] [21:19:20] Was möchtest Du denn? [Mi Jun 18 2008] [21:19:35] Ach, eigentlch spiele ich nur ;=) [Mi Jun 18 2008] [21:19:59] :-) [Mi Jun 18 2008] [21:20:26] Also openArchitectureWare ist vielversprechend aber mittlerweile auch schwer zu lernen. [Mi Jun 18 2008] [21:21:00] Da kann man die Abbildung von zB. UML-Klassendiagrammen auf was auch immer selbst definieren. [Mi Jun 18 2008] [21:21:25] Beim Suchen nach Forth und UML bin ich auf eine "Forth sucks"-Blogseite gestoßen: [Mi Jun 18 2008] [21:21:28] Dort steht Abstraktion im Vordergrund und dann macht das für große Projekte auch Sinn. [Mi Jun 18 2008] [21:21:28] http://www.embedded.com/story/OEG20010731S0028 [Mi Jun 18 2008] [21:21:41] Stimmt, ModellDriven und embedded habe ich heute in der ix gelesen. Hat mich wohl inspiriert ;=) [Mi Jun 18 2008] [21:22:09] Ja - das ist auch ein spannendes Thema. Ich könnte mir vorstellen, dass man aber [Mi Jun 18 2008] [21:22:23] statt von Klassendiagrammen von Zustandsautomaten starten will. [Mi Jun 18 2008] [21:22:35] Das ginge auch mit oAW. [Mi Jun 18 2008] [21:22:50] Ich muss mir den Artikel in der iX mal durchlesen. [Mi Jun 18 2008] [21:22:59] Zustandsautomaten sind mir ein Graus [Mi Jun 18 2008] [21:23:07] Unsere Kunden kommen immer wieder mit solchen Dingern [Mi Jun 18 2008] [21:23:17] Und letztendlich implementiere ich etwas ganz anderes... [Mi Jun 18 2008] [21:23:18] Oh, die brauche ich laufend. [Mi Jun 18 2008] [21:23:48] Ich gehe meistens von einem ereignisgesteuerten Modell aus. [Mi Jun 18 2008] [21:24:16] Hast Du denn dafür eine graphische Darstellung? [Mi Jun 18 2008] [21:24:37] Dafür gibt's Grafiken, aber Text reicht da völlig. [Mi Jun 18 2008] [21:25:03] Es tritt ein Ereignis ein, und muss abgearbeitet werden. [Mi Jun 18 2008] [21:25:15] Ganz einfach: Liste der Ereignisse, und der Dinge, die zu tun sind. [Mi Jun 18 2008] [21:25:54] Und gibt's da Dinge, die Du immer wieder hast? Initialisierung vielleicht oder Standardereignisse? Die könnte man weg-abstrahieren. [Mi Jun 18 2008] [21:25:58] Das ist einfach, solange eine 1:1 Beziehung herrscht. Interessanter wirds, wenn Ereignisfolgen angemessen beachtet werden sollen [Mi Jun 18 2008] [21:26:42] Denke immer an das Prinzip, das GUI-Designer verinnerlichen müssen "don't mode me in" [Mi Jun 18 2008] [21:26:59] Letztlich sollte es dem Programm egal sein, in welcher Reihenfolge die Ereignisse auftreten. [Mi Jun 18 2008] [21:28:15] Kommt auf die Ereignisse an und was sie letztendlich bedeuten. Ich muss halt öfter mal Ereignisse in einen Kontext setzen. Und da ist ein kleiner Zustandsautomat schon hilfreich [Mi Jun 18 2008] [21:28:32] Ja, das typische Beispiel ist doch die Verkaufsmaschine: [Mi Jun 18 2008] [21:28:38] 1. Zustand: Idle [Mi Jun 18 2008] [21:28:48] Ereignis: Kunde wählt Produkt [Mi Jun 18 2008] [21:28:58] Übergang nach 2. Zustand: Produkt gewählt [Mi Jun 18 2008] [21:29:09] Ausgabe: Preis [Mi Jun 18 2008] [21:29:14] Ereignis: Kunde wirft Geld ein [Mi Jun 18 2008] [21:29:28] Ausgabe: Produkt [Mi Jun 18 2008] [21:29:32] Ausgabe: Restgeld [Mi Jun 18 2008] [21:29:45] Überganz in Zustand 1. [Mi Jun 18 2008] [21:30:00] Solche Automaten nerven. [Mi Jun 18 2008] [21:30:04] Du hast den Timeout vergessen ;=) [Mi Jun 18 2008] [21:30:17] Eben, deshalb programmiere ich das ereignisgesteuert: [Mi Jun 18 2008] [21:30:27] Ereignis: Kunde wählt Produkt [Mi Jun 18 2008] [21:30:33] Ausgabe: Preis [Mi Jun 18 2008] [21:30:47] Ausgabe wenn Summe < Preis: Produkt, Summe -= Preis [Mi Jun 18 2008] [21:31:02] Ereignis: Kunde wirft Geld ein [Mi Jun 18 2008] [21:31:17] Summe += Geld; Ausgabe: Kredit [Mi Jun 18 2008] [21:31:22] Timeout anwerfen [Mi Jun 18 2008] [21:31:28] Ereignis: Timeout [Mi Jun 18 2008] [21:31:37] oder Ereignis "Abbruch" [Mi Jun 18 2008] [21:31:46] Ausgabe: Geld der Menge "Summe" [Mi Jun 18 2008] [21:31:50] Summe :=0 [Mi Jun 18 2008] [21:32:09] So funktioniert der Automat plötzlich egal, in welcher Reihenfolge der Kunde etwas macht. [Mi Jun 18 2008] [21:32:26] Wenn er 5 Colas für 80 Cent haben will, wirft er erst 2*2 Euro ein, und drückt dann fünfmal hintereinander auf "Cola" [Mi Jun 18 2008] [21:32:36] Mach' das mal mit einem typischen State-Maschinen-Entwurf-Automaten. [Mi Jun 18 2008] [21:33:07] Kein Einwand, euer Ehren ;=) [Mi Jun 18 2008] [21:34:04] "Meine" Automaten interagieren aber nicht mit DAUs sondern mit Computern und deren Output (don't ask) [Mi Jun 18 2008] [21:35:08] Ja, da kann man manchmal eine State-Maschine brauchen, wenn das Gegenüber von jemand gestaltet wurde, der in Statemaschinen denkt. [Mi Jun 18 2008] [21:35:38] Etwa ein Web-Server: [Mi Jun 18 2008] [21:35:46] Zustand 0: Idle, erwartet Kommando [Mi Jun 18 2008] [21:36:02] Ereignis: Kommando (GET, HEAD, POST) -> Übergang in Zustand 1 [Mi Jun 18 2008] [21:36:14] Zustand 1: Kommando, erwarte Parameter [Mi Jun 18 2008] [21:36:26] Ereignisse: Parameter: Argument oder Leerzeile [Mi Jun 18 2008] [21:36:29] usw. [Mi Jun 18 2008] [21:37:00] Wenn HTTP von mir geschrieben worden wäre, dann gäbe es diese zwei Zustände nicht. [Mi Jun 18 2008] [21:37:19] Man würde also erst mal die Parameter übermitteln, und dann am Ende ein Kommando abschicken. [Mi Jun 18 2008] [21:37:24] Oder zwei oder drei. [Mi Jun 18 2008] [21:37:38] Die Parameter, die gleich bleiben, braucht man ja nur einmal übertragen. [Mi Jun 18 2008] [21:37:42] Forthler mit Postfixambitionen [Mi Jun 18 2008] [21:37:47] ;-) [Mi Jun 18 2008] [21:38:09] Das Kommando kann man erst ausführen, wenn alle Parameter bekannt sind. [Mi Jun 18 2008] [21:40:34] ok, das Fazit ist also: Forth mit UML sind einander unbekannt. Google bestätigt das übrigens ;=) [Mi Jun 18 2008] [21:41:03] Dann bis neulich. Guts Nächtle, wie die Schwaben so schwätzen [Mi Jun 18 2008] [21:41:11] Beenden MatthiasT_ hat den Server verlassen (EOF From client). [Mi Jun 18 2008] [21:41:12] Die seltenen, aber vorhandenen grafischen Darstellungen im Zusammenhang sind alle in Leos Büchern ;-) [Mi Jun 18 2008] [21:41:35] :-) [Mi Jun 18 2008] [21:41:54] Na - das muss man ja gelegentlich weiter vertiefen. [Mi Jun 18 2008] [21:42:02] Tschüss erstmal. [Mi Jun 18 2008] [21:42:06] Tschüss