|
Pattern Deduction AI in Connect Four in 4 Moves 2024-11-09: An AI trying to do it the Human way - Patterns re0re2pp, re1re1pp, re3ppp, re0re1pp, re0re0pp, re2ppp, re1ppp, re0ppp and pppp
I think the concept of pattern deduction will be a central and main paradigm in AI because it does not depend on huge computing power and memory size as brute force AI does. In fact pattern deduction is an attempt to simulate a more human and as such smarter form of modelling and reasoning than brute force: an AI trying to do it the human way. Further on the plan is to apply and expand this pattern deduction AI framework on connect four with higher dimensions (unsolvable by brute force AI), chemistry, biochemistry, ecosystems, ... .
The automated pattern deduction for connect four in 1, 2 and 3 moves is done. Next up in this article is currently ongoing discovery and automation of the pattern deduction for connect four in 4 moves. See the end of the article for the connect 4 in 3, 2 and 1 moves Tumia articles and some other relevant information.
See this link for the automated pattern deduction currently under construction for connect four in 4 moves:
https://tumia.org/en/directory/en/instance.php?tiname=
Pattern%20Deduction:%20Connect%204%20in%204%20Moves
&tiname_sel=&relationship=All&drsid=0&pisid=0&tiname_dno=1&page=1
According to the human intelligence elaborations of my own brain the above pattern deduction 4 in 4 moves results in the following pattern sets (psets) each of them implying a win in 3 moves. A pattern set (pset) is a cohesive set of patterns realising a win in x moves.
All Columns Pset 4.1 There exists on the game matrix re3ppp pattern(s) on exactly one column (one re3). All the other columns are closed or have a re1ppp pattern. The opponent has to move on the re3 column to loose in 4 moves. Otherwise the opponent loses in two moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:PSSSPSPPSPPPSSPSSSPPESPPPSSEPSSPPSESPSSPPEP
&relationship=All&drsid=0&pisid=0&page=1
All Columns Pset 4.2 There exists on the game matrix re2ppp pattern(s) on exactly one column (one re2) and one column with one empty position. All the other columns are closed or have a re1ppp pattern. The opponent has to move on the re2 column or on the one empty position to loose in 4 moves. Otherwise the opponent loses in two moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSSPPSESPPSSPEPSSSPPESPPSSPEPSSPPSESPPSEPEP
&relationship=All&drsid=0&pisid=0&page=1
All Columns Pset 4.3 There exists at least one re1ppp pattern and exactly one column with two empty positions on the game matrix. All the other columns are closed or have a re1ppp pattern. The opponent has to move on the two empty positions to loose in 4 moves. Otherwise the opponent loses in two moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSSPPSPSPPSSPEPSSSPPESPPSSPEPSSPPSEEPPSSPEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:PSSPSPSPPPSSSPPESPPSPPEPSPPSSEPESSPPESESPSS
&relationship=All&drsid=0&pisid=0&page=1
All Columns Pset 4.4 There exists at least one re1ppp pattern and exactly two columns with one empty position on the game matrix. All the other columns are closed or have a re1ppp pattern. The opponent has to move on any of the one empty positions to loose in 4 moves. Otherwise the opponent loses in two moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSSPPSPSPPSSPEPSSSPPESPPSSPEPSSPPSESPPSEPEE
relationship=All&drsid=0&pisid=0&page=1
All Columns Pset 4.5 There exists a re1re1pp pattern on the top of the game matrix (this is both re1 are on columns with exactly 2 empty positions). All the other columns are closed or have a re1ppp pattern. The opponent has to move on any of the one empty positions to loose in 4 moves. Otherwise the opponent loses in two moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSSSPPPPSPPSSPPPSSPPSSSPPSSSSPSEPEPSSPEPE
&relationship=All&drsid=0&pisid=0&page=1
All Columns Pset 4.6 There exists a re1re1pp pattern with one re1 on the top of the game matrix and a re0ppp pattern on that re1 forcing the opponent to play on that re1. All the other columns are closed or have a re1ppp pattern. Without the forcing the opponent can play on the re1 of re1re1pp not on top invalidating connects 4 in 4. Otherwise the opponent loses in two moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSSPPPPSPPPSEPPPSSPESSSPSPESSPEPPEPSSESSE
&relationship=All&drsid=0&pisid=0&page=1
All Columns Pset 4.7 There exists a re0re2pp and a re0ppp with re2 and re0 of re0ppp on the same column and with re0 of re0re2pp on a column with one empty position (this is on top of the game matrix). All the other columns are closed or have a re1ppp pattern. The opponent has to move on re2 (= re0 of re0ppp) to loose in 4 moves. Otherwise the opponent loses in two moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSSSPSPPPPSPPSSPPPSSPPSSSPPSESSPSSPEPSSPEPE
&relationship=All&drsid=0&pisid=0&page=1
Above pset 4.7 demands that after the opponents move on re2 player moves on re0 to complete the win. This facilitates a potential blocking pattern of the opponent namely a re1ppp on the re2. This re1ppp of the opponent becomes a re0ppp forcing the player to move on the re2 and not re0 disabling his win. See this example where soylent green zombie wins in 5 moves instead of pure blood awake in 4 moves:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSSPPSPSPPSSPPPSSSPPESPPSSPEPSSPPSESPPSSPEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.8 Combination of a pset 3.4 (a re1ppp and a re0re0pp pattern sharing a rotatable empty position) combined with a pset 1.1 (re0ppp) with its re0 different from both re0 of re0re0pp. The opponent has to move on re0ppp, otherwise the player wins in 2 moves. Moving on re0ppp leaves pset 3.4 enabling player to win in 3 moves after the move on re0ppp. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SPSSEPPEPPPESPESSEEEPESSEEEEEEEEEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SPSSPSPPSEPSSSPPEPPPSPEEPESSEEESEEPEEEEEESE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.8 is deactivated by an opponents re1ppp on top of the players re0ppp because the opponents move on re0ppp transforms the opponents re1ppp into re0ppp. The latter forces the player to move on this opponents re0ppp and thus inhibits player to activate pset 3.4. See these examples below. In the second example there exist also two psets 3.4 siding eachother (this is pset 4.12). In this example the deactivating opponents re1ppp is only a delay of two moves. After those moves the pset 4.12 implies a win in 4 moves.
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SPSPPSSPSEPSSPPPEPPSSPPESEPSEEESEESEEESEEPE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SPSPSSSPSEPSSSPPEPPSPPPESEPSEEEPEESEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.9 Combination of a re2ppp and a re0re1pp pattern with re2 and re1 sharing (this is sharing the same column) combined with a re0ppp pattern with its re0 and re2 of re2ppp sharing. The opponent has to move on re0ppp, otherwise the player wins in 2 moves instead of 4. Moving on re0ppp leaves pset 4 of connects 4 in 3 enabling player to win in 3 moves after the opponents move on re0ppp. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPPEPSSPSSEPPEPPPESEESSEEEEEEEEEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSSSPSPEPPPESSEEESEPSEEEPEPPEEEPESEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.10 Combination of a re1ppp and a re0re1pp pattern with re1 and re0 sharing (this is sharing the same column) combined with a re0ppp pattern with its re0 and re1 of re0re1pp sharing. The opponent has to move on re0ppp, otherwise the player wins in 2 moves instead of 4. Moving on re0ppp leaves pset 4 of connects 4 in 3 enabling player to win in 3 moves after the opponents move on re0ppp. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSSSPPPEPSSEPPEPPPESEESSEEEEEEEEEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.11 Combination of two re0re0pp patterns sharing one re0, combined with a re1ppp pattern with its re1 upsharing with the shared re0 from the two re0re0pp. In fact this pset is deduced from combining two pset 4 (re1ppp-re0re0pp) of 4 in 3 sharing the same re1ppp. These two pset 4 have 2 different re0 (a fork) that the opponent has to disable (defend against). It can only disable one leaving one pset 4 for the player to win in total 4 moves (3 moves after the move of the opponent). Note that if the opponent moves on the shared re0 of the two re0re0pp (to disable them both with one move) re1ppp is transformed into re0ppp and the opponent looses in 2 instead of 4 moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SEESPSPEEEPSSSEEESEPSEEEPEPPEEEPEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.12 Combination of two psets 3.4 (3 is the number of winning moves, re1ppp-re0re0pp) with different active positions. The active position of pset 3.4 is the re0 of the re0re0pp which is different from the re1 of the re1ppp. These two pset 3.4 have 2 different re0 (a fork) that the opponent has to disable (defend against). It can only disable one leaving one pset 3.4 for the player to win in total 4 moves (3 moves after the move of the opponent). Note that if the opponent moves on the shared re0 of the two re0re0pp (to disable them both with one move) re1ppp is transformed into re0ppp and the opponent looses in 2 instead of 4 moves. See these examples with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSPPSSPEPESEPSEEEPEPPEEESEEEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSSPSSPSSSPESSPPSPEPPSSPSEEEPPSEEEEPPP
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSSPSSPSSSPESSPPSPEPPSSPSEEESPPEEEEPPP
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSSPSSPSPSSSPPESSPPPPEPPSPESEEEPSESEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSSPSSPSPSSSPPESSPPPPEPPSPESEEEPSESEEESPE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SPSPSSSPSEPSSSPPEPPSPPPESEPSSEEPEESPEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.13 Combination of one pset 3.4 (re1ppp-re0re0pp) and one pset 3.5 (re0re0pp-re0re0pp) with different active positions. The active position of pset 3.4 is the re0 of the re0re0pp which is different from the re1 of the re1ppp. The active position of pset 3.5 is the re0 shared by both re0re0pp. These two psets 3.4 and 3.5 have different active positions (a fork) that the opponent has to deactivate (defend against). It can only disable one leaving one pset 3.x for the player to win in total 4 moves (3 moves after the move of the opponent). See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSEPSSPSEEPESSPEEPEPPEEESEEEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.14 Combination of one pset 3.4 (re1ppp-re0re0pp) and one pset 3.7 (re0re0pp-re0re1pp) with different active positions. The active position of pset 3.4 is the re0 of the re0re0pp which is different from the re1 of the re1ppp. The active position of pset 3.7 is the re0 shared by re0re0pp and re0re1pp. These two psets 3.4 and 3.7 must have different active positions (a fork) that the opponent has to deactivate (defend against). It can only deactivate one leaving one pset 3.x for the player to win in total 4 moves (3 moves after the move of the opponent). See these examples with screenshot further down. The last two examples are with a vertical re0re1pp or vrep1.
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSEPSSPPEEPESSPEEPEPPSEESESEEEESEPEEEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSSPSSPSPPSPSPESSPPPPEPPSESSESEEEEPESEEEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSSPSSPSPSPESSPPPPEPPEEESESEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.14 deactivated by an opponent re1ppp. In the example below an opponent re1ppp on top of the pset 3.7 (in particular a pset 3.7 with a vertical re0re1pp or vrep1) blocks the pset 3.7:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSSPSSPSPSPESSPPPPEPPSESSESEEEEPEPEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.15 Combination of two re0re0pp patterns sharing one rotatable empty position (pset 5 of connects 4 in 3), combined with a re0ppp pattern with its re0 not sharing with any re0 of the latter pset 5. The opponent has to move on re0ppp, otherwise the player wins in 2 moves instead of 4. Moving on re0ppp leaves pset 5 of connects 4 in 3 enabling player to win in 3 moves after the opponents move on re0ppp. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SEEPPEESEEPSEEEEEPSEEEEEEEEEEEEEEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.16 Combination of a re0re0pp pattern and a re0re1pp with re1 sharing with any re0 of re0re0pp (to be transformed into re0re0pp-re0re0pp, this is pset 5 of connects 4 in 3), combined with a re0ppp pattern with its re0 undersharing with re1 of the latter pset 5 to be. The opponent has to move on re0ppp, otherwise the player wins in 2 moves instead of 4. Moving on re0ppp creates pset 5 of 4 in 3 enabling player to win in 3 moves after the opponents move on re0ppp. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSSPPEPSEEPPEEEEEESEEEEEEEEEEEEEEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.17 Combination of one pset 3.5 (re0re0pp-re0re0pp) and one pset 3.7 (re0re0pp-re0re1pp) with different active positions. The active position of pset 3.5 is the re0 shared by both re0re0pp. The active position of pset 3.7 is the re0 shared by re0re0pp and re0re1pp. These two psets 3.5 and 3.7 must have different active positions (a fork) that the opponent has to deactivate (defend against). It can only deactivate one leaving one pset 3.x for the player to win in total 4 moves (3 moves after the move of the opponent). See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSEESSPPEEEESSPEEEEPPSEEEESPSEEEEPPEEE
&relationship=All&drsid=0&pisid=0&page=1
Persistent Pset 4.18 Combination of a re2ppp and a re1ppp pattern sharing the rotatable empty position (re). This pset is deduced from and is the same pset as pset 6 of 4 in 3. This is a persistent standalone pset because it cannot be deactivated (or defended upon) by the opponent. If the opponent moves on the re player wins in 2 instead of 4 moves. Otherwise player wins in 4 moves. See these examples with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SESPPSPEEPSSPSEESSPPPEEPSSPEEEEPPSEEEESSPEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSEPSSPSSEPPPPPPESEEESEEEEEEEEEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.19 Simple fork of pset 7 of 4 in 3 and pset 1 of 4 in 1 (re0ppp), thus with two different active columns to be defended upon by the opponent. In case of pset 7 of 4 in 3, re0 of re0re1pp is the active position. Pset 1 of 4 in 1 has re0 of re0ppp as active position. The opponent can only defend on one active position. If he defends on re0ppp, pset 7 is conserved and player wins in total 4 moves. If he defends on pset 7, re0ppp is conserved and player wins in total 2 moves. See these examples with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SPSPPSPSPPSSPSEPSSPPEEEPSSPEEEEPPSEEEESSEEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SEESPSEPEEEPPEPEEEPSEPEEESPEEEEESSEEEEEESEE
&relationship=All&drsid=0&pisid=0&page=1
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSPSPSSEESSPPEEEESSPEEEEPPSEEEESPSEEEEPEPEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.20 Transforming fork of pset 3.7 and pset 1.1 (re0ppp). Pset 1.1 undershares its re0 with the original re1 of re0re1pp of pset 3.7. As such in pset 4.20, pset 3.7 morphs from re0re0pp-re0re1pp into re0re1pp-re0re2pp because of the undersharing. If the opponent defends on re0ppp, pset 3.7 morphs back into its original form and player wins in total 4 moves. If he does not defend on re0ppp, re0ppp is conserved and player wins in total 2 moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SSEPPPSSEESSPEEEEEPPEEEEEPSEEEEESPEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.21 Simple fork of two psets 7 of 4 in 3, thus with two different active columns to be defended upon by the opponent. In case of pset 7 of 4 in 3, re0 of re0re1pp is the active position. The opponent can only defend on one active position. As such the other pset 7 is conserved and enables player to win in total 4 moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SESSPPPSEEPPSSSEEPSPPPEESPPEEEEESSEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.22 Combination of a vertical vrep1 (re0re1pp) pattern and a re0re0pp pattern sharing a rotatable empty position with depth 0 (re0), this is pset 8 of connects 4 in 3, combined with an extra re0ppp with its re0 not sharing (thus unconnected) with any re of the pset 8 patterns. The opponent must move on re0ppp. This move conserves the pset 8 patterns because re0ppp is unrelated with the pset 8 patterns. Thus player wins in 4 moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SPSSPSSEEPPPSSEESSEPPEEEPEPSEEEPEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
Standalone Pset 4.23 Combination of a vertical vrep1 (re0re1pp) pattern and a re0re1pp pattern sharing the rotatable empty position re0, this is pset 8 of 4 in 3 except re0re1pp instead of re0re0pp, combined with an extra re0ppp with its re0 sharing re1 of re0re1pp of the pset 8. The opponent must move on re0ppp. This move transforms re0re1pp into re0re0pp and as such creates the pset 8 patterns because re0ppp is connected with a pattern on the right re to transform this pattern into the missing pattern of pset 8. Thus player wins in 4 moves. See this example with screenshot further down:
https://www.tumia.org/en/directory/en/instance.php?tiname=
Connect%20Four:SESPPSSEEEPPSSEEESEPPEEEPEPEEEESEEEEEEEEEEE
&relationship=All&drsid=0&pisid=0&page=1
...
The automated pattern deduction for connect four in 1, 2 and 3 moves is done. Next up in this article is currently ongoing discovery and automation of the pattern deduction for connect four in 4 moves. See the following links for the connect 4 in 3, 2 and 1 moves Tumia articles and some other relevant information:
https://tumia.org/en/directory/en/instance.php?tiname=
Pattern%20Deduction%20AI%20Connect%204%20in%203%202024-09-24:%20
An%20AI%20trying%20to%20do%20it%20the%20Human%20way%20-%20re0re1pp%20...
&tiname_sel=&relationship=All&drsid=0&pisid=0&tiname_dno=1&page=1
http://tumia.org/en/directory/en/instance.php?tiname=
Pattern%20Deduction%20AI%20in%20Connect%20Four%202023-09-21:
%20An%20AI%20trying%20to%20do%20it%20the%20Human%20way-Pattern%20re0ppp
&tiname_sel=&relationship=All&drsid=0&pisid=0&tiname_dno=1&page=1
http://tumia.org/en/directory/en/instance.php?tiname=
Pattern%20Deduction%20AI%20in%20Connect%20Four%202023-09-21:
%20An%20AI%20trying%20to%20do%20it%20the%20Human%20way-Pattern%20re0ppp
&tiname_sel=&relationship=All&drsid=0&pisid=0&tiname_dno=1&page=1
See these links for the automated pattern deduction for connect four in 3, 2 and 1 moves:
https://tumia.org/en/directory/en/instance.php?tiname=
Pattern%20Deduction:%20Connect%204%20in%203%20Moves
&tiname_sel=&relationship=All&drsid=0&pisid=0&tiname_dno=1&page=1
http://tumia.org/en/directory/en/instance.php?tiname=
Pattern%20Deduction:%20Connect%204%20in%202%20Moves
&tiname_sel=&relationship=All&drsid=0&pisid=0&tiname_dno=1&page=1
http://tumia.org/en/directory/en/instance.php?tiname=
Pattern%20Deduction:%20Connect%204%20in%201%20Move
&relationship=All&drsid=0&pisid=0&page=1
"Pattern Deduction AI in Connect Four in 4 Moves 2024-11-09: An AI trying to do it the Human way - Patterns re3ppp, re0re1pp, re0re0pp, re2ppp, re1ppp, re0ppp” was written by Paka Small – 2024/11/09.
|