more wip for 12, skeleton for 13

This commit is contained in:
kageru 2018-12-13 08:02:51 +01:00
parent 39aa9ff79a
commit 5f2ea9b621
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
2 changed files with 156 additions and 5 deletions

View File

@ -31,8 +31,8 @@ void pushInto(Array array, char element) {
*/
void appendTo(Array array, char element) {
array.used++;
array.content[array.used] = element;
array.used++;
}
// Convert a growth rule (5 chars) to a single byte by creating a bitmask.
@ -55,24 +55,25 @@ char ruleToChar(char *input) {
int main() {
FILE *inputFile = fopen("input", "r");
printf("hi");
// + 1 for the null byte
char *inString = malloc(INSIZE + 1);
fgets(inString, INSIZE, inputFile);
char *rawInput = malloc(INSIZE + 1);
scanf(inString, "initial state: %s", &rawInput);
printf(rawInput);
free(inString);
inString += 15;
char *rawRule = malloc(12);
// discard this as it’s just an empty line
fgets(rawRule, 11, inputFile);
Array rules = initArray();
printf("hi2");
while (fgets(rawRule, 11, inputFile)) {
appendTo(rules, ruleToChar(rawRule));
}
free(inString - 15);
fclose(inputFile);
printf("%d, %c", rules.size, rules.content[0]);

150
13/input Normal file
View File

@ -0,0 +1,150 @@
/----------------------------------------------\ /--------------------------\
/--------------------+----------------------------------------------+------\ | /--------+-------------\
/-+--------------------+----------------------\ | | /---+-----------------+--------+----\ |
| | | | /-------+------+-+---+-----------------+--------+----+-\ |
| | /----------\ | |/--------------+-------+------+-+---+-----------------+--------+\ | | |
| | | | | || /-----------+------\| | | | | || | | |
| |/----+----------+---+----------------------++--+-----------+------++--\ | | | /-------------\| || | | |
| || | | | || |/----------+------++--+---+-+---+--+-------------++-\ || | | |
| || /+----------+---+----------------------++--++-\ | || | | | | | || | || | | |
| || || | | /------------++--++-+--------+------++--+---+\| | | || | || | | |
| || || | | | || || | | || | ||| \--+-------------++-+------/| | | |
| || || | /+---------+------------++--++-+--------+------++--+---+++------+-------------++-+--\ | | | |
| || || /+--++---------+------------++--++-+-----\ | || | ||| | || | | | | | |
| || || || || | || || | | | || | ||| | || | | | | | |
/+-++---++--\ /---++--++-----\ | || || | | | || | /+++------+-----\/------++-+--+----+---+-+------+--\
/-------------++-++---++--+--+--\|| || | | || || | | | || | |||| \-----++------/| | | | | | | |
| || ||/--++--+--+--+++--++-----+---+---\ || || | | | || | |||| || | | | | | | | |
| || ||| |\--+--+--++/ || | | |/-------++--++-+----\| | /--++--+--++++------------++-------+-+--+--\ | |/+------+--+\
| || ||| | | | || /-++-----+---+\ || || || | || | | /++--+--++++--\ || | | | | | ||| | ||
| /++-+++--+\ | | || | || | || || || || | || \---+-+++--+--++++--+---------++-------+-+--+--+-+---++/ | ||
| /------+++-+++--++--+--+--++-+-++-----+--\|| || /----++--++-+----++------+-+++--+--++++--+---------++-------+-+--+--+-+---++------\| ||
| | ||| ||| || | | || | ||/----+--+++--++--+----++--++-+----++------+-+++--+--++++--+---------++-------+-+--+--+-+---++-\ || ||
| | ||| |\+--++--+--+--++-+-+++----+--+++--++--+----++--++-+----++------+-+++--/ |||| | || | | | | | || | || ||
| | ||| | | || | \--++-+-+++----/ ||| || | || || | || | ||| |||| | || | | | | | || | || ||
| | ||| | | ||/-+-----++-+-+++-------+++--++--+----++--++-+----++------+-+++-----++++--+---------++--->---+-+--+--+-+---++\| || ||
| | ||| | | ||| | || | \++-------+++--++--+----++--++-+----++------+-+++-----++++--+---------++-------+-+--/ | | |||| || ||
| |/-----+++-+-+--+++-+\ || | \+-------+++--++--+----++--++-+----++------+-++/ |||| | /-----++------\| | | | |||| || ||
| || |||/+-+--+++-++----++-+---+-------+++--++--+----++--++-+----++------+-++------++++--+---+-----++------++-+---\ | | |||| || ||
| /--++-----+++++-+-\||| || || | | |\+--++--+----++--++-+----++------+-++------++/^ | | || || | | | | |||| || ||
| | || ||||| | |||| || || | | | | || | || || | || | || /---++-+--+---+-----++------++-+---+-+-+---++++\ || ||
| | || ||||| | |||| || /-++-+---+-------+-+--++--+----++--++-+----++------+-++--+---++-+--+---+-----++------++-+---+-+-+--\||||| || ||
| | || ||||| | |||| || | || | | | | || | || || | || | || | || | | | || || | | | | |||||| || ||
| | || ||||| |/++++-++--+-++-+---+\ | | || | /-++--++-+----++------+-++--+---++-+--+---+-----++------++-+---+\| | ||\+++---++--+/
| | || ||||| |||||| || | || | || | | || /+--+-++--++-+----++------+-++--+---++-+--+---+-----++-\ || | ||| | || ||| || |
| | || ||||| |||||| || | || | || | | /++-++--+-++--++-+----++------+-++--+---++-+--+-\ | || | || | ||| | || ||| || |
| | || ||||| |||||| || | || | || /+-+-+++-++--+-++--++-+---\|| | || | || | | | \-----++-+----/| |/--+++-+--++-+++\ || |
| | || ||||| \+++++-++--+-++-+---++-----++-+-+/| || | || || | ||| | || | || | | | || | | || ||| | || |||| || |
| | || ||||| ||||| || | || | || || | | | || | || || | /+++------+-++--+-\ || | | | ^| | | || ||| | || |||| || |
| | /++-----+++++--+++++-++--+-++-+---++-----++-+-+-+-++--+-++--++-+--++++------+-++--+-+-++-+--+-+\ || | | || ||| | || |||| || |
| | ||| ||||| ||||| || | || | || || | | | || |/++--++-+--++++------+-++--+-+-++-+--+-++------++-+-\ | || ||| | || |||| || |
/+--+-+++-----+++++\ ||||| || | || |/--++-----++-+-+-+-++--++++--++-+--++++------+-++--+-+-++-+--+-++-----\|| | | | || ||| | || |||| || |
|| | ||| |||||| ||||| || | || || || || | | | || |||| /++-+--++++------+-++--+-+-++-+--+-++---\ ||| | | | || ||| | || |||| || |
|| | ||| |||||| ||||| || | || || || ||/+-+-+-++--++++-+++-+--++++------+-++\ | | \+-+--+-++---+-+/| | | | || ||| | || |||| || |
/-++--+-+++-----++++++-+++++-++--+-++-++--++-----++++-+-+-++--++++-+++-+--++++------+-+++-+-+\ | | | || | | \-+-+---+-++--+++-+--++-++++--++--/
| || | ||| |||||| ||||| || | || || || |||| | | || |||| ||| | |||| | ||| | || | | | || | | | | \-++--+++-+--++-++++--+/
| || | ||| |||||| ||||| || | || || || |||| | | || |||| ||| | /++++------+-+++-+-++-+-+--+-++---+-+--\| | || ||| | || |||| |
| || | ||| |||||| ||||| || | || || \+-----++++-+-+-++--++++-+++-+-+++++------+-+++-+-++-+-+--+-++---+-+--++-+-----++--+++-+--++-+/|| |
| || | ||| |||||| ||||| || | || || |/----++++-+-+-++--++++-+++-+-+++++------+-+++-+-++-+-+--+-++---+-+--++-+-----++--+++-+--++-+\|| |
| || | ||| |||||| ||||| || | || || || |||| | | || |||| ||| | ||||| | ||| | || | \--+-++---+-+--++-+-----++--+++-+--+/ |||| |
| || | |||/----++++++-+++++-++--+-++-++---++----++++-+-+-++--++++-+++-+-+++++------+-+++-+-++-+----+-++\ | | || | || ||| | | |||| |
| || | |||| \+++++-+++/| || | || || /++----++++-+-+-++--++++-+++-+-+++++------+-+++-+-++-+----+-+++--+-+--++-+-----++--+++-+--+-\|||| |
| || | |||| ||||| ||| | || | || || ||| |||| | | || |||| \++-+-+++++------+-+++-+-++-+----+-+++--/ | || | || ||| | | ||||| |
| || | |||| ||||| ||| | || | || || ||| |||| | | |\--++++--++-+-+++++------+-+++-+-++-+----+-+++----+--++-+-----++--+++-+--+-+++++--/
| || | |||| ||||| ||| | || | || || ||| |||| | | | |||| || | ||||| | ||| | || | | ||| | || | || ||| | | |||||
|/++--+-++++-----+++++-+++-+-++--+-++-++--+++----++++-+-+-+---++++--++-+-+++++------+-+++-+-++-+----+\||| | || | || ^v| | | |||||
|||| | |||| ||||| ||| | || | || || ||| |||| \-+-+---++++--++-+-+++++------+-+++-+-++-+----++/|| | || | || ||| | | |||||
|||| | |||| ||||| ||| | || | |\-++--+++----++++---+-+---++++--++-+-++++/ | ||| | || | || || | || | || ||| | | |||||
|||| | |||| ||||| ||| | || | | || |||/---++++---+-+---++++--++-+-++++--\ | ||| | || | || || | || | || ||| | | |||||
|||| | |||| ||||| ||| | || | | \+--++++---+++/ | | ||||/-++-+-++++--+----+-+++-+-++-+\ || || | || | || ||| | | |||||
|||| | |||| ||||| ||| | || | | | |||| ||| | | ||||| || | |||| | /--+-+++-+-++-++---++-++----+--++-+-----++-\||| | | |||||
|||| | |||| ||||| ||| | ||/-+-+---+--++++---+++----+-+---+++++-++-+-++++--+-+--+-+++-+-++-++--\|| || | || | ||/++++-+--+-+++++------\
|||| | |||| ||||| ||| | ||| | | | |||| ||| | | |\+++-++-+-++++--+-+--+-+++-+-++-++--+++-++----+--++-/ /---+++++++-+--+\||||| |
|||| | |||| ||||| ||| | ||| | | | |||| ||| | | | ||| || | |||| | | | ||| | || || ||| || | || | ||||||| | ||||||| |
|||| | |||| |||||/+++-+-+++-+-+---+--++++---+++----+-+---+-+++-++-+-++++--+-+--+-+++-+-++-++--+++-++----+--++---+--\||||||| | ||||||| |
|||| | |||| ||||||||| | ||| \-+---+--++++---+++->--+-+->-+-+++-++-+-++++--+-+--+-+++-+-++-++--+++-++----+--++---+--++++++++-+--/|||||| |
|||| | |||| ||||||||| | ||| | | ||\+---+++----+-+---+-+++-++-+-++++--+-+--+-+++-+-++-++--+++-++----+--++---+--++++++++-+---+++/|| |
|||| | ||\+-----+++++++++-+-+/| | | || | ||| | | | ||| || | |||| | |/-+-+++-+-++-++--+++-++----+--++\ | |||||||| | ||| || |
||||/-+-++-+-----+++++++++\| | | /+---+--++-+---+++----+-+---+-+++\|| | |||| | || | |||/+-++-++--+++-++-\ | ||| | |||||||| | ||| || |
||||| | || | |\+++++++++-+-+--++---+--++-+---+++----+-+---+-/||||| | |||| | || | ||||| || || ||| || | | ||| | |||||||| | ||| || |
||||| | || | | ||||||||| | | || | || | ||| | | | \++++-+-++++--+-++-+-+++++-++-++--+++-++-+--+--+++--+--++++++++-/ ||| || |
||||| | |\-+-----+-+++++++++-+-+--++---+--++-+---+/| | | | |||| | |||| | || | ||||| || || ||| || | | ||| \--++++++++-----/|| || |
||||| | | | | ||||||||| | | || | || | /-+-+----+-+---+---++++-+-++++--+-++-+-+++++-++-++--+++-++-+--+\ ||| |||||||| || || |
||||| | | | | ||||||||| | | || | || | | | \----+-+---+---++++-+-++++--+-++-+-++/|| || || ||| || | || ||| /---++++++++------++-++\ |
||||| | | | | ||||||||| | | || | || | | | | | | |||| | ||||/-+-++-+-++-++-++-++--+++-++-+--++-+++-+---++++++++------++-+++-\ |
||||| | | | | ||||||||| | | || | || |/+-+------+-+---+---++++-+-+++++\| || | || || || || ||| || | || ||| | |||||||| || ||| | |
||||| | | | |/+++++++++-+-+--++---+--++-+++-+------+-+---+---++++-+-+++++++-++-+<++\|| || || ||| || | || ||| | |||||||| || ||| | |
|||\+-+-+--+-----+++++++++++-+-+--+/ | || ||| | | | | |||| |/+++++++-++-+-+++++-++-++--+++-++-+--++-+++-+---++++++++-----\|| ||| | |
||| | | | | /-+++++++++++-+-+--+----+--++-+++-+------+-+---+---++++-+++++++++-++-+-+++++-++-++--+++-++-+\ || ||| | ||||^||| ||| ||| | |
||| | | | | | ||||||||||| | | | | || ||| | | | | |||| ||||||||| || | ||||| || || /+++-++-++-++-+++-+---++++++++---\ ||| ||| | |
||| | | | | | ||||||||||| | | | | || ||| | /--+-+---+---++++-+++++++++-++-+-+++++-++-++-++++-++-++-++\||| | |||||||| | ||| ||| | |
||| | | | | | ||||||||||| | | | | || ||| | | | | | |||| ||||||||| || | |||\+-++-++-++++-++-/| |||||| | |||||||| | ||| ||| | |
||| | | | | | ||||||||||| | | | | || ||| | | | \---+---++++-+++++++++-++-+-+++-+-++-++-++++-++--+-++++/| | |||||||| | ||| ||| | |
||| | | | | | ||||||||||| | | | | \+-+++-+---+--+-----+---++++-+++++++++-++-+-+++-+-++-++-++++-++--+-++++-+-+---++++++++---+-+/| ||| | |
||| | | | | | ||||||||||| | | |/---+---+-+++-+---+--+-----+---++++-+++++++++-++-+-+++-+-++-++-++++-++--+-++++-+-+--\|||||||| | | | ||| | |
||| | | | | |/+++++++++++-+-+--++---+---+-+++-+---+--+---\ | |||| ||||||||| || | ||| | || || |||| || | |||| | | ||||||||| | | | v|| | |
||| | | | | |||v||||||\++-+-+--++---+---+-+++-+---+--+---+-+---++++-/|||||||| \+-+-+++-+-++-++-++++-++--+-++++-+-+--+++++/||| | | | ||| | |
||| | | | | |||||||\++-++-+-+--++---+---+-+++-+---+--+---+-+---++++--++++++++--+-+-+++-+-++-++-++++-++--+-++++-+-+--+/||| ||| | | | ||| | |
/+++-+-+-+--+---+++++++-++-++-+-+--++---+---+-+++-+---+-\| | | |||| |||||||| | \-+++-+-++-++-++++-++--+-++++-+-+--+-+++-++/ | | | ||| | |
|||| | | | | ||||||| || || | | || /+---+-+++-+---+-++---+-+---++++--++++++++--+---+++-+-++-++-++++-++--+-++++-+-+--+-+++-++----+-+-+-+++\| |
|||| | | | | ||||||| || || | | || || | \++-+---+-++---+-+---++++--+++++++/ | ||| | || || |||| || | |||| | | | ||| || | | | ||||| |
|||| | | | |/--+++++++-++-++-+-+--++--++---+--++-+---+-++---+-+---++++--+++++++---+---+++-+-++-++-++++-++--+-++++-+-+-\| ||| || | | | ||||| |
|||| | |/+--++--+++++++-++-++-+-+--++--++---+--++-+---+-++\ | | |||| ||||||| | ||| | || || |||| || | |||| | | || ||| || | | | ||||| |
|||| | ||| || ||||||| || || | |/-++--++---+-\|| | | |||/-+-+---++++--+++++++---+---+++-+-++-++-++++-++--+-++++-+-+-++-+++-++---\| | | ||||| |
|||| | ||| || ||||||| || || | || |\--++---+-+++-+---+-++++-+-+---++++--+++++++---+---+++-+-++-++-++++-++--+-++++-+-+-+/ ||| || || | | ||||| |
|||| | ||| || ||||||| || || | || | || | ||| | | |||| | | /-++++--+++++++---+---+++-+-++-++-++++-++--+-++++-+-+-+\ |\+-++---++-+-+-+/||| |
|||| | ||| || ||||||| || |\-+-++-+---++---+-+++-+---+-++++-+-+-+-++++--+++++++---+---+++-+-++-++-++++-++--+-++++-+-+-++-+-+-++---++-+-/ | ||| |
|||| | ||| || ||||||| || | | || | || | ||| | | |||| | | | |||| ||||||| | ||| | || || |||| || | |||| | | || | \-++---++-+---+-+++---/
|||| | ||| || ||||||| || | /+-++-+---++---+-+++-+\ | |||| | | | |||| ||||||| | ||| | || || |||| || | |||| | | || | || || | | |||
|||| | ||| || ||||||| || | || || | || /-+-+++-++--+-++++-+-+-+-++++--+++++++---+---+++-+-++-++-++++-++--+-++++-+-+-++-+---++---++-+---+-+++-\
|||| | ||| || ||||||| || | || || | || |/+-+++-++--+-++++\| | | ||\+--+++++++---+---+/| | || || |||| || | |||| | | || | || || | | ||| |
|||| | ||| || ||||||| || | || || | || ||| ||| || | |||||| | | || | ||||||| | | | | || || |||| || | |||| | | || | || || | | ||| |
|||| ^ ||| || ||||||| || | || || | || ||| ||| || | |||||| | | \+-+--+++++++---+---+-+-+-++-+/ \+++-++--+-++++-+-+-++-+---++---+/ | | ||| |
|||| | ||| || ||||||| || | || || | || ||| ||| || | |||||| | | | | \++++++---+---+-+-+-++-+---+++-++--+-++++-+-+-++-+---++---+--/ | ||| |
|||| | ||| || ||||||| || | || || | || ||| ||\-++--+-++++++-+-+--+-+---++++++---+---+-+-+-++-+---+++-++--+-+/|| | | || | || | | ||| |
|||| | ||| || |||||\+-++-+-++-++-+---++-+++-++--++--+-++++++-+-+--+-+---++++++---+---+-+-+-++-/ /+++-++--+-+-++-+-+-++-+---++---+------+-+++-+--\
|||| | ||| || ||||| | || | || || | || ||| || || | |||||| | | | | |||||| | | | | || |||| || | | || | | || | || | | ||| | |
|||| | ||v || ||||| | || | || || | || ||| || || | |||||| | | | | |||||| | | | | || |||| || | | || | | || | || | | ||| | |
|||| | ||| || ||||| | \+-+-++-++-+---++-++/ || || | |||||| | | | | |||||| | | | | || |||| || | | || | | || | || | | ||| | |
|||| | ||| /++--+++++-+--+-+-++-++-+---++-++--++--++--+-++++++-+-+--+\| |||||| /+---+-+-+-++----++++-++--+-+-++-+-+-++-+---++---+-\ | ||| | |
|||| | ||| ||| ||||| | | | || || | || || || || | |||||| | | ||| |||||v || | | | || |||| ||/-+-+-++-+-+-++-+---++---+-+----+-+++-+--+-\
|||| | ||| ||| ||\++-+--+-+-+/ || | |\-++--++--++--+-++++++-+-+--+++---++++++--++---+-+-+-++----++++-+++-+-/ || | | || | || | | | ||| | | |
|||| | ||| ||| || || | | | | || | | || || \+--+-++++++-+-+--+++---++/||| || \-+-+-++----++/| ||| | || | | || | || | | | ||| | | |
|||| | ||| ||| || || | | | | || | | || || | | |||||| | | ||| || ||| || | | || || | ||| | ||/+-+-++-+---++\ | | | ||| | | |
||\+-+-+++-+++--++-++-+--+-+-+--++-+---+--++--++---+--+-++++++-+-+--+++---++-+++--++-----+-+-++----++-/ ||| | |||| | || | ||| | | | ||| | | |
|| | | ||| ||| || || | | | | || | | || || | | |\++++-+-+--+++---++-/|| || | | || || ||| | |||| | |v | /-+++--+-+--\ | ||| | | |
|| | | ||| ||| || || | | | | || | | || || | | | |||| | | ||\---++--++--++-----+-+-++----++---+++-+---++++-+-++-/ | ||| | | | | ||| | | |
|| | | ||| v\+--++-++-+--+-+-+--++-+---+--++--++---+--+-+-++++-+-+--++----++--++--++-----+-+-++----++---+/| | |||| | || | ||| | | | | ||| | | |
|| | | \++-+-+--++-++-+--/ | | || | \--++--++---+--+-+-++++-+-+--++----++--++--++-----+-+-++----++---+-+-+---++++-+-++---+-+++--+-+--+-+-+/| | | |
|| | | || | | || || |/---+-+--++-+------++--++---+--+-+-++++-+-+-\|| || || || | | || || | | | |||| | || | |||/-+-+--+-+-+-+-+-\| |
|| | | || | | || || || | \--++-+------++--++---/ | | |||| | \-+++----++--++--++-----+-+-++----++---+-+-+---++++-+-+/ | |||| | | | | | | | || |
|| | | || | | || |\-++---+----++-+------++--++------+-+-++++-+---+++----++--++--++-----+-+-++----++---+-+-+---++++-+-+----+-/||| | | | | | | | || |
|| | | || | | || \--++---+----++-+------++--++------+-+-++++-+---+++----++--++--++-----/ | || || | | | |||| | | | ||| | | | | | | | || |
|| | | || | | || || | \+-+------++--++------+-+-++++-+---+++----++--++--++-------+-++----+/ | | | |||| | | | ||| | | | | | | | || |
|| | | || | | || || | | | || || | | |\++-+---+++----++--++--++-------+-++----+----+-+-+---++++-+-+----+--+++-/ | | | | | | || |
|| | | || | \--++----++---+-----+-+------++--++------+-+-+-++-+---+++----++--++--++-------+-++----+----+-+-+---++++-+-/ | ||| | | | | | | || |
|| | | || | || || | | | || || | | | || | ||| || || || \-++----+----+-+-+---++++-+------+--+++---+--+-/ | | | || |
|| | | \+-+----++----++---+-----+-+------++--++------+-+-/ || | /+++----++--++--++---------++----+-\ | | | |||| | | ||| | | | | | || |
|| | | | | || || | | | || || | | || | |||| || || || || | | | | | |||| \------+--+++---+--+---/ | | || |
|| | | | | || |\---+-----+-+------++--++------+-+---++-+--+/|| || \+--++---------++----+-+--+-+-+---++++--------+--+++---+--+-----/ | || |
|| | | | | || | /-+-----+-+------++--++------+-+---++-+--+-++---\|| | \+---------++----+-+--+-+-+---++++--------+--+++---/ | | || |
|| | | | | || | | | | | || || | | || | | || ||| | | || | | | | | |||| | ||\------+-------+-/| |
|| | | | | || | | | | | \+--++------+-+---++-+--+-++---+++---+---+---------++----+-+--+-+-+---++++--------+--++-------+-------/ | |
|| | | | | || | | | | | | || | | || | | || ||| | \---------++----+-+--+-+-+---+++/ | || | | |
|| | | | \----++----+--+-+-----+-+-------+--++------+-+---++-+--+-+/ ||| | || \-+--+-+-+---+++---------+--++-------+----------/ |
|| | | | || | | | | | | || | | || | |/+----+++-\ | || | | | | ||| | || | |
|| | | | || | | | | | | || | | || | \++----+++-+-+-------------++------/ | | | ||| | || | |
|| | | | || | | | | | \--++------+-+---/| \---++----+++-+-+-------------++---------+-+-+---+++---------+--/| | |
|| | | | || | | | \-+----------/| | | | || ||\-+-+-------------/| | | | ||| | | | |
|| | \---+------++----+--+-/ | | | | | || || | | | | \-+---+++---------+---+-------+------------/
|| | | |\----+--+---------+-----------+------+-+----/ || || | | | | | ||| \---+-------/
\+-+-----+------+-----+--+---------+-----------+------+-/ || |\--+-+--------------+---------+---+---+/| |
| | \------+-----+--+---------+-----------+------+------------++----+---+-+--------------+---------/ | | | |
| | | | | | \------+------------++----+---+-/ | | | \-------------/
| | \-----+--+---------+------------------+------------++----+---+----------------+-------------/ |
| | | \---------+------------------+------------++----/ | | |
| \------------------/ | | || | | |
\---------------------------------+------------------+------------++--------+------------->--/ |
| | \+--------/ |
| \-------------+-------------------------------------------/
\--------------------------------/