CUBE.CODES: Unterschied zwischen den Versionen

Aus MINT.lentner.net
Zur Navigation springen Zur Suche springen
 
(171 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
__NOTOC__
 
__NOTOC__
  
[https://ide.cube.codes/app/ CUBE.CODES ] ist ein von [http://simon.lentner.net/ Simon], [https://www.lentner.de/ Lukas] und [http://www.lentner.net Wolfgang Lentner] initiiertes '''Open-Source-Projekt''', das seit April 2021 durch eine '''Partnerschaft der [https://www.uni-hamburg.de/ Universität Hamburg]''' und der '''[https://www.th-rosenheim.de/ TH Rosenheim]''' mit der '''[https://www.mrs-rosenheim.de/ MRS Rosenheim]''' weiterentwickelt wird.
+
[https://ide.cube.codes/app/ CUBE.CODES ] ist ein von [http://simon.lentner.net/ Simon], [https://www.lentner.de/ Lukas] und [http://www.lentner.net Wolfgang Lentner] initiiertes '''Open-Source-Projekt''', das seit April 2021 durch eine '''Partnerschaft''' der '''[https://www.uni-hamburg.de/ Universität Hamburg]''' und der '''[https://www.th-rosenheim.de/ TH Rosenheim]''' mit der '''[https://www.mrs-rosenheim.de/ MRS Rosenheim]''' weiterentwickelt wird.
  
 
* [https://ide.cube.codes/app/ CUBE.CODES ] erlaubt einen '''leichten Einstieg in die objektorientierte Programmierung mit JavaScript''' ohne Vorkenntnisse.
 
* [https://ide.cube.codes/app/ CUBE.CODES ] erlaubt einen '''leichten Einstieg in die objektorientierte Programmierung mit JavaScript''' ohne Vorkenntnisse.
Zeile 11: Zeile 11:
 
* [https://ide.cube.codes/app/ CUBE.CODES ] bietet eine '''komplettes CAS-System''' (Matrizenalgebra, Gruppentheorie), mit dem die Verbindung zur '''Schul-Mathematik''' der Sekundarstufe II '''und''' der '''Hochschulmathematik''' darstellbar ist.
 
* [https://ide.cube.codes/app/ CUBE.CODES ] bietet eine '''komplettes CAS-System''' (Matrizenalgebra, Gruppentheorie), mit dem die Verbindung zur '''Schul-Mathematik''' der Sekundarstufe II '''und''' der '''Hochschulmathematik''' darstellbar ist.
 
* [https://ide.cube.codes/app/ CUBE.CODES ] läuft '''plattformunabhängig in jedem Browser'''. Keine Programminstallationen sind notwendig.
 
* [https://ide.cube.codes/app/ CUBE.CODES ] läuft '''plattformunabhängig in jedem Browser'''. Keine Programminstallationen sind notwendig.
* [https://ide.cube.codes/app/ CUBE.CODES ] ist als Open-Source-Projekt dauerhaft frei verfügbar und '''schützt Schüler und Lehrkräfte dauerhaft von Lizenzfallen'''. Alle persönlichen Arbeiten sind auf dem eigenen PC speicherbar und durch generierbare Links in Arbeitsgruppen leicht zu kommunizieren. Für Entwickler lädt das auf GitHub gehostete Projekt zur freien Mitarbeit ein.
+
* [https://ide.cube.codes/app/ CUBE.CODES ] ist als Open-Source-Projekt dauerhaft frei verfügbar und '''schützt Schüler und Lehrkräfte dauerhaft vor Lizenzfallen'''. Alle persönlichen Arbeiten sind auf dem eigenen PC speicherbar und durch generierbare Links in Arbeitsgruppen leicht zu kommunizieren. Für Entwickler lädt das auf GitHub gehostete Projekt zur freien Mitarbeit ein.
* [https://ide.cube.codes/app/ CUBE.CODES ] bietet eine professionelle Speed-Cubing-Datenbank (Prof. Christoph Bandelow), der '''state of art der 70er Jahre'''.
+
* [https://ide.cube.codes/app/ CUBE.CODES ] bietet eine professionelle Speed-Cubing-Datenbank (Prof. Christoph Bandelow), den '''state of art der 70er Jahre'''.
 
* [https://ide.cube.codes/app/ CUBE.CODES ] erlaubt das Entwickeln und '''Benchmarken eigener Algorithmen''' und ermöglicht damit einen ''sportlichen Einstieg in die Programmierung''.  
 
* [https://ide.cube.codes/app/ CUBE.CODES ] erlaubt das Entwickeln und '''Benchmarken eigener Algorithmen''' und ermöglicht damit einen ''sportlichen Einstieg in die Programmierung''.  
  
Zeile 20: Zeile 20:
 
[[Datei: ErsteSchritte.png |thumb|links|250px|CUBE.CODES - Erste Schritte]]
 
[[Datei: ErsteSchritte.png |thumb|links|250px|CUBE.CODES - Erste Schritte]]
  
Wenn Ihr Euch nur mal die Website ansehen wollt und den Würfel ''per Hand'' bedienen wollt, seid Ihr hier genau richtig. Probiert einfach alle Buttons aus. Da kann man nix "kaputt machen".
+
Wenn Ihr Euch nur mal die Website ansehen wollt und den Würfel ''per Hand'' bedienen wollt, seid Ihr hier genau richtig. Probiert einfach alle Buttons aus. Da kann man nix "kaputt machen". <br>
 +
>>> [https://ide.cube.codes CUBE.CODES blank]<br>
 +
>>> [https://ide.cube.codes/?init=loadFromUrl&url=https://mint.lentner.net/images/8/89/ErsteSchritte.json Erste Schritte]<br>
 +
>>> [[CUBE.CODES: Einfache EVA-Programme]]<br>
 +
>>> [[CUBE.CODES: Beispiele aus der Zahlentheorie (Klasse 5)]]<br>
 +
>>> [[CUBE.CODES: Schleifen mit while]]<br>
 +
>>> [[CUBE.CODES: Schleifen mit for]]<br>
 +
>>> [[CUBE.CODES: Rekursion]]
  
# [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/8/89/ErsteSchritte.json Erste Schritte]
 
# [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/7/7a/SpeichernRechnenAusgeben.json Speichern - Rechnen - Ausgeben]
 
  
https://mint.lentner.net/images/7/7a/SpeichernRechnenAusgeben.json
 
  
[[Media: SpeichernRechnenAusgeben.json]]
+
<br style="clear:left; ">
 +
 
 +
===Kleiner Programmierkurs===
 +
# >>> [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/7/7a/SpeichernRechnenAusgeben.json Speichern - Rechnen - Ausgeben]
 +
# >>> [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/7/76/WiederholungenMitWhile.json Wiederholungen mit while]
 +
 
 
<br style="clear:left; ">
 
<br style="clear:left; ">
  
Zeile 34: Zeile 43:
 
[[Datei: CubeCodes.png |thumb|links|250px|Der MRS-Algorithmus in CUBE.CODES]]
 
[[Datei: CubeCodes.png |thumb|links|250px|Der MRS-Algorithmus in CUBE.CODES]]
  
* [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/a/a5/Mrsalgorithmus.json Vollständiger mrs-Algorithmus als JavaScript-Datei in CUBE.CODES geladen]
+
* >>> [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/a/a5/Mrsalgorithmus.json Vollständiger mrs-Algorithmus als JavaScript-Datei in CUBE.CODES geladen]
* [[MRS-Algorithmus]] als JavaScript-Datei im MINT-Wiki
+
* >>> [[MRS-Algorithmus]] als JavaScript-Datei im MINT-Wiki
* [[Rubik | Der MRS-Algorithmus als YouTube-Video-Strecke]]
+
* >>> [[Rubik | Der MRS-Algorithmus als YouTube-Video-Strecke]]
* [[5b, Forscherklasse 2020/2021 | Interessante Infos für meine Forscherklasse (u.a. umfangreiche Linksammlung zum RUBIK-Würfel)]]
+
* >>> [[5b, Forscherklasse 2020/2021 | Interessante Infos für meine Forscherklasse (u.a. umfangreiche Linksammlung zum RUBIK-Würfel)]]
* [[Orbitkennung | Die 12 Orbits der RUBIK-Gruppe]]
+
* >>> [[Orbitkennung | Die 12 Orbits der RUBIK-Gruppe]]
 +
 
 +
<br style="clear:left; ">
 +
 
 +
 
 +
==Tricks zur 1. Ebene==
 +
[[Datei: Ungeduldszug_rechts.json]]
 +
 
 +
[[Datei: bagger.jpg | links | 100px]]
 +
===Baggerzug===
 +
Der '''Baggerzug''' ist eine kleine, leicht zu merkende Zugfolge, mit der man ein Würfelchen der ersten Ebene verändern kann, ohne die anderen zu zerstören. Das Grundprinzip kann man vielseitig variieren und selber viele neue Züge daraus entwickeln. Am mächtigsten wird der '''Baggerzug''' in Zusammenarbeit mit dem '''Ungeduldszug''': Mit beiden zusammen kann man sogar die 2. und 3. Ebene lösen.
 +
<br style="clear:left; ">
 +
# '''Baggerzug "ausladen"''' (Vatiante: rechte Scheibe - links ausladen)<br>
 +
## WCA-Notation: R' D' R D <br>
 +
## In CUBE.CODES ausprobieren: [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/a/ae/Baggerzug_links_ausladen.json Baggerzug (rechte Scheibe - links ausladen)]
 +
## Merkebild: '''runterbeugen - aussteigen - wieder hochgehen'''
 +
## Videolink
 +
# '''Baggerzug "einladen"''' (Variante: rechte Scheibe - von links einladen)
 +
## WCA-Notation: D' R' D R
 +
## In CUBE.CODES ausprobieren: [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/e/e7/Baggerzug_von_links_einsteigen.json Baggerzug (rechte Scheibe - von links einladen)]
 +
## Merkebild: '''aus dem Weg gehen - runterbeugen - einladen - hochgehen'''
 +
## Videolink
 +
# Videolink mit mehreren Varianten
 +
# Anwendung: Der Baggerzug hilft Dir in kniffligen Situationen der 1. Ebene
 +
 
 +
 
 +
[[Datei: ungeduld.jpg | links | 100px]]
 +
 
 +
===Ungeduldszug===
 +
Der '''Ungeduldszug''' hat (für die 1. Ebene) dieselbe Wirkung wie der '''Baggerzug "einladen"''': Er setzt ein Würfelchen in die 1. Ebene ein, ohne die anderen Würfelchen der 1. Ebene zu zerstören. Für viele Schülerinnen ist er anschaulicher, ''weil das Würfelchen sofort'' an den richtigen Platz kommt (erst danach wird der dabei gemachte Fehler korrigiert). In Kombi mit dem '''Baggerzug''' ist der '''Ungeduldszug''' ein äußerst mächtiges Instrument für Ebene 1 und 2.
 +
<br style="clear:left; ">
 +
 
 +
# '''Ungeduldszug im Orginal''' (Variante: Eckwürfelchen rechts oben einsetzen)
 +
## WCA-Notation: R F' R' F
 +
## In CUBE.CODES ausprobieren: [https://ide.cube.codes/app/?init=loadFromUrl&url=https://mint.lentner.net/images/4/4d/Ungeduldszug_rechts.json Ungeduldszug (rechte Scheibe)]
 +
## Merkebild: '''einsetzen - parken - wiederherstellen - geparkte Würfel zurückholen'''
 +
## Videolink mit mehreren Varianen
 +
# Anwendung: Der Ungeduldszug hilft Dir in kniffligen Situationen der 1. Ebene (Alternative zum Baggerzug)
 +
 
 +
== 2. Ebene ==
 +
Da die Mittelsteine bereits am richtigen Platz sind, wenn die 1. Ebene stimmt, bleibt für die 2. Ebene nur das Einsetzen der 4 Kantsteine übrig. Das erledigt ein einziger Zug, namens ...
 +
[[Datei: mango.jpg | links | 100px]]
  
 +
===Mango===
 +
'''Mango''' ist der erste Zug, den wir kennenlernen, der die 1. Ebene unverändert lässt, aber darunter etwas richtet! Wie geht das? Die zentrale Idee: Man zerstört zunächst etwas in der 1. Ebene (z.B. mit dem Baggerzug) und richtet es sofort wieder mit einem anderen Zug (z.B. dem Ungeduldszug) - dann stimmt die erste Ebene wieder und darunter hat sich was verändert. '''Bingo?!'''<p>
 +
Nach diesem Muster ist eine ganze Reihe von mächtigen Zügen aufgebaut, z.B. auch der Zug '''Bingo'''.
 
<br style="clear:left; ">
 
<br style="clear:left; ">
 +
 +
# '''Mango''' (= Baggerzug (rechts aussteigen) + Ungeduldszug)
 +
## WCA-Notation: (R' U R) (F' R F R')
 +
## In CUBE.CODES ausprobieren: [https://ide.cube.codes/?init=loadFromUrl&url=https://share-repository.cube.codes/v1/appStates/f88087f2-d430-495b-a491-03db47922ab1 Mango]
 +
## Merkebild: '''rechts oben mit Bagger kaputt machen - mit Ungeduldszug wieder richten''' (aus der Baggerschaufel rechts ausladen!)
 +
## Videolink
 +
# Anwendung: Mango setzt den linken unteren Kantstein an die rechte mittlere Stelle
 +
 +
<br style="clear:left; ">
 +
 +
== 3. Ebene==
 +
 +
[[Datei: bingo.jpg | links | 100px]]
 +
 +
===Bingo (Kanten positionieren)===
 +
>>> [[CUBE.CODES: Bingo]]
 +
 +
<br style="clear:left; ">
 +
 +
[[Datei: menno.jpg | links | 100px]]
 +
===Menno (Kanten kippen)===
 +
>>> [[CUBO.CODES: Menno]]
 +
 +
<br style="clear:left; ">
 +
 +
 +
[[Datei: pendel.png | links | 100px]]
 +
 +
===Claudia===
 +
>>> [[CUBE.CODES: Claudia]]
 +
 +
<br style="clear:left; ">
 +
 +
[[Datei: benno.jpg | links | 100px]]
 +
 +
===Benno===
 +
>>> [[CUBE.CODES: Benno]]
 +
 +
<br style="clear:left; ">
 +
 +
 +
 +
*[https://bestsiteever.ru/mosaic/ https://bestsiteever.ru/mosaic/]
 +
*[https://de.wikibooks.org/wiki/Zauberw%C3%BCrfel/_3x3x3/_Muster]
 +
*[https://ide.cube.codes/?init=loadFromUrl&url=https://share-repository.cube.codes/v1/appStates/5b8aaf38-aed5-4aea-bdc6-3537e87f71b6 Muster]
 +
 +
[https://ide.cube.codes/?init=loadFromUrl&url=https://share-repository.cube.codes/v1/appStates/4be77613-7b57-427f-a2fb-4bf08def8b74&view=historyPlayer Muster]
 +
 +
[[Datei: rubikbild6.png]]
 +
 +
<gallery>
 +
Datei: rubikbild1.png |Buchstabe U
 +
Datei: rubikbild2.png | [[CUBE.CODES: Buchstabe T | Buchstabe T ]]
 +
Datei: rubikbild3.png | [[CUBE.CODES: Buchstabe O | Buchstabe O ]]
 +
Datei: rubikbild4.png |Buchstabe X
 +
Datei: rubikbild5.png |Buchstabe X<br>Farbvariante
 +
 +
</gallery>
 +
 +
https://ide.cube.codes/?init=loadFromUrl&url=https://share-repository.cube.codes/v1/appStates/5dc87562-a253-4514-871e-5393ee820fd9
 +
 +
https://ide.cube.codes/?init=loadFromUrl&url=https://share-repository.cube.codes/v1/appStates/1935bda3-44f8-44f8-a4e4-e589b6af1ef2

Aktuelle Version vom 16. März 2022, 12:06 Uhr


CUBE.CODES ist ein von Simon, Lukas und Wolfgang Lentner initiiertes Open-Source-Projekt, das seit April 2021 durch eine Partnerschaft der Universität Hamburg und der TH Rosenheim mit der MRS Rosenheim weiterentwickelt wird.

  • CUBE.CODES erlaubt einen leichten Einstieg in die objektorientierte Programmierung mit JavaScript ohne Vorkenntnisse.
  • CUBE.CODES bietet ohne Einschränkungen die volle Funktionalität einer realen, professionellen Programmiersprache.
  • CUBE.CODES bietet eine Programmierumgebung für JavaScript, welche die neuen Anforderungen des überarbeiteten Fachlehrplans IT Lehrlan PLUS für die R6 in Bayern (Module 1.2, 2.6.1 und 2.6.2) erfüllt.
  • CUBE.CODES umfasst eine Objektbibliothek für RUBIK-Würfel verschiedener Dimensionen, auf die mit Hilfe der Programmierschnittstelle zugegriffen werden kann. Damit ist ein schneller Einstieg in hochkomplexe Lösungsalgorithmen möglich, durch Benutzung vorgefertigter Funktionen. Es kommt damit auch der spielerischen Erfahrungswelt der Schülerinnen und Schüler entgegen, schlägt aber die Brücke zum algorithmischen Denken. Eine besondere didaktische Dimension erschließt sich noch einmal durch die Verbindung mit der haptischen Erfahrung eines realen Würfels.
  • CUBE.CODES visualisiert schülergerecht alle Funktionen anhand des CUBE-Objekts und lässt alle Abläufe durch das HISTORY-Objekt "per Hand" nachvollziehen.
  • CUBE.CODES kommuniziert alle Programmabläufe mit Hilfe des Objekts UI (USER-INTERFACE).
  • CUBE.CODES bietet eine komplettes CAS-System (Matrizenalgebra, Gruppentheorie), mit dem die Verbindung zur Schul-Mathematik der Sekundarstufe II und der Hochschulmathematik darstellbar ist.
  • CUBE.CODES läuft plattformunabhängig in jedem Browser. Keine Programminstallationen sind notwendig.
  • CUBE.CODES ist als Open-Source-Projekt dauerhaft frei verfügbar und schützt Schüler und Lehrkräfte dauerhaft vor Lizenzfallen. Alle persönlichen Arbeiten sind auf dem eigenen PC speicherbar und durch generierbare Links in Arbeitsgruppen leicht zu kommunizieren. Für Entwickler lädt das auf GitHub gehostete Projekt zur freien Mitarbeit ein.
  • CUBE.CODES bietet eine professionelle Speed-Cubing-Datenbank (Prof. Christoph Bandelow), den state of art der 70er Jahre.
  • CUBE.CODES erlaubt das Entwickeln und Benchmarken eigener Algorithmen und ermöglicht damit einen sportlichen Einstieg in die Programmierung.


CUBE.CODES blank - die IDE für Einsteiger

CUBE.CODES - Erste Schritte

Wenn Ihr Euch nur mal die Website ansehen wollt und den Würfel per Hand bedienen wollt, seid Ihr hier genau richtig. Probiert einfach alle Buttons aus. Da kann man nix "kaputt machen".
>>> CUBE.CODES blank
>>> Erste Schritte
>>> CUBE.CODES: Einfache EVA-Programme
>>> CUBE.CODES: Beispiele aus der Zahlentheorie (Klasse 5)
>>> CUBE.CODES: Schleifen mit while
>>> CUBE.CODES: Schleifen mit for
>>> CUBE.CODES: Rekursion



Kleiner Programmierkurs

  1. >>> Speichern - Rechnen - Ausgeben
  2. >>> Wiederholungen mit while


Die MRS-Methode mit dem Visualisierer CUBE.CODES

Der MRS-Algorithmus in CUBE.CODES



Tricks zur 1. Ebene

Datei:Ungeduldszug rechts.json

Bagger.jpg

Baggerzug

Der Baggerzug ist eine kleine, leicht zu merkende Zugfolge, mit der man ein Würfelchen der ersten Ebene verändern kann, ohne die anderen zu zerstören. Das Grundprinzip kann man vielseitig variieren und selber viele neue Züge daraus entwickeln. Am mächtigsten wird der Baggerzug in Zusammenarbeit mit dem Ungeduldszug: Mit beiden zusammen kann man sogar die 2. und 3. Ebene lösen.

  1. Baggerzug "ausladen" (Vatiante: rechte Scheibe - links ausladen)
    1. WCA-Notation: R' D' R D
    2. In CUBE.CODES ausprobieren: Baggerzug (rechte Scheibe - links ausladen)
    3. Merkebild: runterbeugen - aussteigen - wieder hochgehen
    4. Videolink
  2. Baggerzug "einladen" (Variante: rechte Scheibe - von links einladen)
    1. WCA-Notation: D' R' D R
    2. In CUBE.CODES ausprobieren: Baggerzug (rechte Scheibe - von links einladen)
    3. Merkebild: aus dem Weg gehen - runterbeugen - einladen - hochgehen
    4. Videolink
  3. Videolink mit mehreren Varianten
  4. Anwendung: Der Baggerzug hilft Dir in kniffligen Situationen der 1. Ebene


Ungeduld.jpg

Ungeduldszug

Der Ungeduldszug hat (für die 1. Ebene) dieselbe Wirkung wie der Baggerzug "einladen": Er setzt ein Würfelchen in die 1. Ebene ein, ohne die anderen Würfelchen der 1. Ebene zu zerstören. Für viele Schülerinnen ist er anschaulicher, weil das Würfelchen sofort an den richtigen Platz kommt (erst danach wird der dabei gemachte Fehler korrigiert). In Kombi mit dem Baggerzug ist der Ungeduldszug ein äußerst mächtiges Instrument für Ebene 1 und 2.

  1. Ungeduldszug im Orginal (Variante: Eckwürfelchen rechts oben einsetzen)
    1. WCA-Notation: R F' R' F
    2. In CUBE.CODES ausprobieren: Ungeduldszug (rechte Scheibe)
    3. Merkebild: einsetzen - parken - wiederherstellen - geparkte Würfel zurückholen
    4. Videolink mit mehreren Varianen
  2. Anwendung: Der Ungeduldszug hilft Dir in kniffligen Situationen der 1. Ebene (Alternative zum Baggerzug)

2. Ebene

Da die Mittelsteine bereits am richtigen Platz sind, wenn die 1. Ebene stimmt, bleibt für die 2. Ebene nur das Einsetzen der 4 Kantsteine übrig. Das erledigt ein einziger Zug, namens ...

Mango.jpg

Mango

Mango ist der erste Zug, den wir kennenlernen, der die 1. Ebene unverändert lässt, aber darunter etwas richtet! Wie geht das? Die zentrale Idee: Man zerstört zunächst etwas in der 1. Ebene (z.B. mit dem Baggerzug) und richtet es sofort wieder mit einem anderen Zug (z.B. dem Ungeduldszug) - dann stimmt die erste Ebene wieder und darunter hat sich was verändert. Bingo?!

Nach diesem Muster ist eine ganze Reihe von mächtigen Zügen aufgebaut, z.B. auch der Zug Bingo.

  1. Mango (= Baggerzug (rechts aussteigen) + Ungeduldszug)
    1. WCA-Notation: (R' U R) (F' R F R')
    2. In CUBE.CODES ausprobieren: Mango
    3. Merkebild: rechts oben mit Bagger kaputt machen - mit Ungeduldszug wieder richten (aus der Baggerschaufel rechts ausladen!)
    4. Videolink
  2. Anwendung: Mango setzt den linken unteren Kantstein an die rechte mittlere Stelle


3. Ebene

Bingo.jpg

Bingo (Kanten positionieren)

>>> CUBE.CODES: Bingo


Menno.jpg

Menno (Kanten kippen)

>>> CUBO.CODES: Menno



Pendel.png

Claudia

>>> CUBE.CODES: Claudia


Benno.jpg

Benno

>>> CUBE.CODES: Benno



Muster

Datei:Rubikbild6.png

https://ide.cube.codes/?init=loadFromUrl&url=https://share-repository.cube.codes/v1/appStates/5dc87562-a253-4514-871e-5393ee820fd9

https://ide.cube.codes/?init=loadFromUrl&url=https://share-repository.cube.codes/v1/appStates/1935bda3-44f8-44f8-a4e4-e589b6af1ef2