Skip to content
Snippets Groups Projects
Commit fd74f958 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '37-add-a-nightmare-difficulty-mode-and-a-4x4-grid-size' into 'master'

Resolve "Add a nightmare difficulty mode and a 4x4 grid size"

Closes #37

See merge request !32
parents 216aca45 c7b99de5
No related branches found
No related tags found
1 merge request!32Resolve "Add a nightmare difficulty mode and a 4x4 grid size"
Pipeline #1725 passed
Showing
with 127 additions and 32 deletions
assets/skins/nature_15.png

8.67 KiB

assets/skins/nature_16.png

5.8 KiB

Add nightmare difficulty mode, add 4x4 grid size, add monsters skin
Ajout d'un mode diabolique, d'un thème "monstres" et de grilles 4x4
......@@ -2,8 +2,8 @@
CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
ALLOWED_BLOCK_SIZE_VALUES="2x2 3x2 3x3"
ALLOWED_DIFFICULTY_VALUES="easy medium hard"
ALLOWED_BLOCK_SIZE_VALUES="2x2 3x2 3x3 4x4"
ALLOWED_DIFFICULTY_VALUES="easy medium hard nightmare"
GRIDS_COUNT=10
for BLOCK_SIZE in ${ALLOWED_BLOCK_SIZE_VALUES}; do
......
......@@ -7,13 +7,13 @@ from random import randint, shuffle
if (len(sys.argv) != 3):
print('Usage: generate.py block-size difficulty')
print('block-size: [2x2|3x2|3x3]')
print('difficulty: [easy|medium|hard]')
print('block-size: [2x2|3x2|3x3|4x4]')
print('difficulty: [easy|medium|hard|nightmare]')
exit()
blocksize, difficulty = sys.argv[1], sys.argv[2]
if not blocksize in ['2x2', '3x2', '3x3']:
if not blocksize in ['2x2', '3x2', '3x3', '4x4']:
print('wrong size given')
exit()
......@@ -23,18 +23,29 @@ size_vertical = int(splitted_blocksize[1])
boardSize = size_horizontal * size_vertical
if not difficulty in ['easy', 'medium', 'hard']:
if not difficulty in ['easy', 'medium', 'hard', 'nightmare']:
print('wrong difficulty given')
exit()
debugFillGrid = False
debugSolveGrid = False
debugComputeGameGrid = True
############################################################################
# medium -> 5 (default) ; easy -> 1 ; hard -> 5
difficultyLevel = 5;
difficultyLevel = 1;
if difficulty == 'easy':
difficultyLevel = 1
if difficulty == 'medium':
difficultyLevel = 11 - (size_horizontal + size_vertical)
if difficulty == 'hard':
difficultyLevel = 10
difficultyLevel = 12 - (size_horizontal + size_vertical)
if difficulty == 'nightmare':
difficultyLevel = 13 - (size_horizontal + size_vertical)
sys.stdout.write('Will generate grid: ['+str(size_horizontal)+'x'+str(size_vertical)+'], difficulty: '+difficulty+' (level '+str(difficultyLevel)+')\n')
stringValues = '0123456789ABCDEFG'
# draw grid (array style)
def drawGrid(grid):
......@@ -49,7 +60,7 @@ def drawGrid(grid):
if ((col % size_horizontal) == 0):
sys.stdout.write('')
if grid[row][col] != 0:
sys.stdout.write(str(grid[row][col]))
sys.stdout.write(stringValues[grid[row][col]])
else:
sys.stdout.write(' ')
sys.stdout.write('\n')
......@@ -60,7 +71,7 @@ def drawGrid(grid):
def drawGridInline(grid):
for row in range(len(grid)):
for col in range(len(grid[row])):
sys.stdout.write(str(grid[row][col]))
sys.stdout.write(stringValues[grid[row][col]])
sys.stdout.write('\n')
#initialise empty grid
......@@ -90,7 +101,9 @@ def copyGrid(grid):
return copiedGrid
#A backtracking/recursive function to check all possible combinations of numbers until a solution is found
def solveGrid(grid):
def solveGrid(grid, iterationSolveCount):
if debugSolveGrid:
sys.stdout.write('solveGrid / '+str(iterationSolveCount)+'\n')
gridSize = len(grid)
cellsCount = len(grid) * len(grid[0])
numberList = [(value + 1) for value in range(gridSize)]
......@@ -104,9 +117,11 @@ def solveGrid(grid):
if grid[row][col] == 0:
shuffle(numberList)
for value in numberList:
#Check that this value has not already be used on this row
if debugSolveGrid:
sys.stdout.write('solveGrid: ['+str(row)+','+str(col)+'] try with value '+str(value)+'\n')
# Check that this value has not already be used on this row
if not(value in grid[row]):
#Check that this value has not already be used on this column
# Check that this value has not already be used on this column
foundInColumn = False
for r in range(0, gridSize):
if (value == grid[r][col]):
......@@ -118,36 +133,52 @@ def solveGrid(grid):
blockRowFrom = size_vertical * int(row / size_vertical)
square = [grid[i][blockColFrom:blockColFrom + size_horizontal] for i in range(blockRowFrom, blockRowFrom + size_vertical)]
#Check that this value has not already be used on this sub square
# Check that this value has not already be used on this sub square
if not any(value in squareLine for squareLine in square):
grid[row][col] = value
if checkFullyCompletedGrid(grid):
if debugSolveGrid:
sys.stdout.write('solveGrid: grid complete, found solution\n')
iterationSolveCount += 1
solutionsCount += 1
break
else:
if solveGrid(grid):
if debugSolveGrid:
sys.stdout.write('solveGrid: recursive call (solutionsCount='+str(solutionsCount)+', iterationSolveCount='+str(iterationSolveCount)+')\n')
if solveGrid(grid, iterationSolveCount + 1):
if debugSolveGrid:
sys.stdout.write('solveGrid: still searching for solution\n')
return True
break
grid[row][col] = 0
#A backtracking/recursive function to check all possible combinations of numbers until a solution is found
def fillGrid(grid):
def fillGrid(grid, boardSize, iterationFillCount):
if debugFillGrid:
sys.stdout.write('fillGrid / '+str(iterationFillCount)+'\n')
drawGrid(grid)
boardSize = len(grid)
cellsCount = len(grid) * len(grid[0])
numberList = [(value + 1) for value in range(boardSize)]
global solutionsCount
#Find next empty cell
# Find next empty cell
for i in range(0, cellsCount):
row = i // boardSize
col = i % boardSize
# Ensure cell is not already set
if grid[row][col] == 0:
# Try to fill cell with random numbers, iteratively
shuffle(numberList)
for value in numberList:
#Check that this value has not already be used on this row
if debugFillGrid:
sys.stdout.write('fillGrid: ['+str(row)+','+str(col)+'] -> try with value '+str(value)+'\n')
# Check that this value has not already be used on this row
if not(value in grid[row]):
#Check that this value has not already be used on this column
# Check that this value has not already be used on this column
foundInColumn = False
for r in range(0, boardSize):
if (value == grid[r][col]):
......@@ -159,27 +190,39 @@ def fillGrid(grid):
blockRowFrom = size_vertical * int(row / size_vertical)
square = [grid[i][blockColFrom:blockColFrom + size_horizontal] for i in range(blockRowFrom, blockRowFrom + size_vertical)]
#Check that this value has not already be used on this sub square
# Check that this value has not already be used on this sub square
if not any(value in squareLine for squareLine in square):
if debugFillGrid:
sys.stdout.write('fillGrid: ['+str(row)+','+str(col)+'] <- '+str(value)+' / ok, no conflict\n')
grid[row][col] = value
if checkFullyCompletedGrid(grid):
if debugFillGrid:
sys.stdout.write('fillGrid: found final solution\n')
return True
else:
if fillGrid(grid):
if debugFillGrid:
sys.stdout.write('fillGrid: recursive call (iterationFillCount='+str(iterationFillCount)+')\n')
iterationFillCount += 1
if fillGrid(grid, boardSize, iterationFillCount):
return True
break
if debugFillGrid:
sys.stdout.write('fillGrid: no solution found ['+str(row)+','+str(col)+'] <- 0\n')
grid[row][col] = 0
solutionsCount = 1
def computeResolvableGrid(grid, wantedAttempts):
def computeResolvableGrid(grid, maxAttemps):
global solutionsCount
# A higher number of attempts will end up removing more numbers from the grid
# A higher number of attemps will end up removing more numbers from the grid
# Potentially resulting in more difficiult grids to solve!
# Start Removing Numbers one by one
attempts = wantedAttempts
while attempts > 0:
remainingAttemps = maxAttemps
while remainingAttemps > 0:
if debugComputeGameGrid:
sys.stdout.write('computeResolvableGrid / remainingAttemps: '+str(remainingAttemps)+'.\n')
# Select a random cell that is not already empty
row = randint(0, boardSize - 1)
col = randint(0, boardSize - 1)
......@@ -192,23 +235,41 @@ def computeResolvableGrid(grid, wantedAttempts):
grid[row][col] = 0
solutionsCount = 0
solveGrid(copyGrid(grid))
if debugComputeGameGrid:
sys.stdout.write('computeResolvableGrid / Remove value in ['+str(row)+','+str(col)+'] (was '+str(savedCellValue)+').\n')
drawGrid(grid)
sys.stdout.write('computeResolvableGrid / Check grid unique solution...\n')
solveGrid(copyGrid(grid), 0)
# Non unique solution => restore this cell value
if solutionsCount != 1:
if debugComputeGameGrid:
sys.stdout.write('computeResolvableGrid / Failed to solve grid (multiple solutions). Will try with clearing another cell.\n')
grid[row][col] = savedCellValue
attempts -= 1
remainingAttemps -= 1
else:
if debugComputeGameGrid:
sys.stdout.write('computeResolvableGrid / ok found unique solution.\n')
if debugComputeGameGrid:
sys.stdout.write('computeResolvableGrid / ok found solvable grid.\n')
#########################
grid = generateEmptyGrid(boardSize)
sys.stdout.write('Building grid...\n')
fillGrid(grid, boardSize, 0)
sys.stdout.write('Solved grid:\n')
fillGrid(grid)
drawGrid(grid)
sys.stdout.write('Generating solvable grid:\n')
computeResolvableGrid(grid, difficultyLevel)
sys.stdout.write('Generated grid:\n')
drawGrid(grid)
sys.stdout.write('Inline grid:\n')
sys.stdout.write('Inline grid ['+str(size_horizontal)+'x'+str(size_vertical)+'], difficulty: '+difficulty+' (level '+str(difficultyLevel)+'):\n')
drawGridInline(grid)
......@@ -47,9 +47,11 @@ function build_icon_for_skin() {
SKIN_CODE="$1"
build_icon ${CURRENT_DIR}/skin_${SKIN_CODE}.svg ${BASE_DIR}/assets/icons/skin_${SKIN_CODE}.png
for VALUE in {1..9};
for VALUE in {1..16};
do
build_icon ${CURRENT_DIR}/skins/${SKIN_CODE}/${VALUE}.svg ${BASE_DIR}/assets/skins/${SKIN_CODE}_${VALUE}.png
if [ -f "${CURRENT_DIR}/skins/${SKIN_CODE}/${VALUE}.svg" ]; then
build_icon ${CURRENT_DIR}/skins/${SKIN_CODE}/${VALUE}.svg ${BASE_DIR}/assets/skins/${SKIN_CODE}_${VALUE}.png
fi
done
}
......@@ -60,13 +62,16 @@ build_icon ${CURRENT_DIR}/button_start.svg ${BASE_DIR}/assets/icons/button_start
build_icon ${CURRENT_DIR}/difficulty_easy.svg ${BASE_DIR}/assets/icons/difficulty_easy.png
build_icon ${CURRENT_DIR}/difficulty_medium.svg ${BASE_DIR}/assets/icons/difficulty_medium.png
build_icon ${CURRENT_DIR}/difficulty_hard.svg ${BASE_DIR}/assets/icons/difficulty_hard.png
build_icon ${CURRENT_DIR}/difficulty_nightmare.svg ${BASE_DIR}/assets/icons/difficulty_nightmare.png
build_icon ${CURRENT_DIR}/game_win.svg ${BASE_DIR}/assets/icons/game_win.png
build_icon ${CURRENT_DIR}/size_2x2.svg ${BASE_DIR}/assets/icons/size_2x2.png
build_icon ${CURRENT_DIR}/size_3x2.svg ${BASE_DIR}/assets/icons/size_3x2.png
build_icon ${CURRENT_DIR}/size_3x3.svg ${BASE_DIR}/assets/icons/size_3x3.png
build_icon ${CURRENT_DIR}/size_4x4.svg ${BASE_DIR}/assets/icons/size_4x4.png
build_icon ${CURRENT_DIR}/skins/empty.svg ${BASE_DIR}/assets/skins/empty.png
# Skins
build_icon_for_skin "default"
build_icon_for_skin "food"
build_icon_for_skin "monsters"
build_icon_for_skin "nature"
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#727272" stroke="#000" stroke-width="2"/><path d="m70.135 63.932-24.924 0.42736c-0.19644-0.03756-0.41166 0.02311-0.50988 0.0043-1.3895 0.34521-2.2418 1.6076-1.9948 2.9784 0.34521 1.3895 1.6076 2.2418 2.9784 1.9948l24.412-5.2084c0.19644 0.03756 0.13578-0.17766 0.03756-0.19644zm-26.189 3.8507c-0.49544-0.60378-0.32643-1.4878 0.27734-1.9832 0.60378-0.49544 1.4878-0.32643 1.9832 0.27734 0.49544 0.60378 0.32643 1.4878-0.27734 1.9832-0.585 0.39721-1.4878 0.32643-1.9832-0.27734z"/><path d="m41.054 38.354c0.1 0.4 0.6 0.7 1 0.7 0.9-0.1 1.9-0.1 2.8-0.1 1.5 0 2.9 0.1 4.3 0.3 0.6 0.1 1.2-0.4 1.2-1v-6.9c0-0.6-0.5-1-1-1-3.2 0.1-6.4 0.7-9.3 1.6-0.5 0.2-0.8 0.7-0.6 1.3z"/><path d="m51.854 39.754c2.1 0.5 4.2 1.3 6.2 2.2 0.5 0.3 1.2 0 1.4-0.6l2.7-8.2c0.2-0.5-0.1-1.1-0.6-1.3-3-0.9-6.1-1.5-9.3-1.6-0.6 0-1 0.4-1 1v7.5c-0.2 0.5 0.1 0.9 0.6 1z"/><path d="m80.972 47.708-8.7626 6.3924c-0.2873 0.21547-0.35912 0.5746-0.21547 0.93372 0.64642 1.1492 0.86189 1.8674 1.2928 3.0884 0.14365 0.35912 0.50277 0.5746 0.86189 0.43094l10.343-3.3757c0.35912-0.14365 0.57459-0.50277 0.43095-0.93372-0.71824-2.0829-1.8674-4.5968-2.9448-6.3924-0.21547-0.35912-0.71824-0.43095-1.0055-0.14365z" stroke-width=".71824"/><path d="m32.154 41.854c2.3-1.1 4.7-2 7.2-2.5 0.6-0.1 1-0.7 0.8-1.3l-1.5-4.7c-0.2-0.5-0.8-0.8-1.3-0.6-2.9 1.2-5.7 2.7-8.2 4.6-0.4 0.3-0.5 0.9-0.2 1.4l2 2.8c0.3 0.4 0.8 0.5 1.2 0.3z"/><path d="m62.754 33.454-2.8 8.6c-0.1 0.4 0 0.9 0.4 1.1 1.7 1 3.4 2.2 4.9 3.6 0.4 0.4 1.1 0.3 1.5-0.1l5.7-7.9c0.3-0.4 0.2-1.1-0.2-1.4-2.5-1.9-5.3-3.4-8.2-4.6-0.5-0.1-1.1 0.2-1.3 0.7z"/><path d="m67.154 48.654c1.3 1.4 2.5 2.8 3.5 4.4 0.3 0.5 0.9 0.6 1.4 0.3l8.3-6c0.4-0.3 0.5-0.9 0.2-1.4-1.8-2.5-3.9-4.8-6.2-6.8-0.4-0.4-1.1-0.3-1.5 0.2l-5.9 8.1c-0.2 0.3-0.1 0.9 0.2 1.2z"/><path d="m23.654 48.154c1.8-2 3.9-3.7 6.2-5.1 0.5-0.3 0.6-1 0.3-1.4l-1.7-2.4c-0.3-0.5-1-0.6-1.5-0.2-2.3 2-4.4 4.3-6.2 6.8-0.3 0.4-0.2 1.1 0.2 1.4l1.4 1c0.4 0.4 1 0.3 1.3-0.1z"/><path d="m15.954 57.654 0.5 0.2c0.5 0.2 1-0.1 1.2-0.6 1.1-2.6 2.5-5 4.2-7.1 0.4-0.4 0.3-1.1-0.2-1.4l-1.2-0.8c-0.3-0.4-1-0.2-1.3 0.3-1.6 2.5-2.9 5.3-3.8 8.2-0.2 0.5 0.1 1.1 0.6 1.2z"/><path d="m73.314 60.926c0.51791 2.2011 0.90634 4.5317 1.1653 6.8623 0 0.64738 0.64738 1.1653 1.2948 1.1653h13.207c0.77686 0 1.2948-0.64738 1.2948-1.2948-0.12948-4.0138-0.64738-7.7686-1.6832-11.523-0.12948-0.77686-0.90634-1.1653-1.6832-0.90634l-12.689 4.1433c-0.64738 0.25895-1.0358 0.90634-0.90634 1.5537z" stroke-width="1.2948"/><path d="m15.054 68.954c0.1-3.2 0.7-6.3 1.7-9.2 0.2-0.5-0.1-1.1-0.6-1.3l-0.3-0.1c-0.5-0.2-1.1 0.1-1.3 0.7-0.8 3.2-1.3 6.5-1.3 9.9z"/></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="0" fill="#d0d0d0" stroke="#000" stroke-width="2"/><path d="m192.95 29.394h-69.133v100.35h100.35v-100.35zm10.035 88.089v-8.9204h8.9204v8.9204zm8.9204 2.2301v7.8053h-8.9204v-7.8053zm-42.372-2.2301v-8.9204h8.9204v8.9204zm8.9204 2.2301v7.8053h-8.9204v-7.8053zm-42.372-2.2301v-8.9204h8.9204v8.9204zm8.9204 2.2301v7.8053h-8.9204v-7.8053zm0-78.053v8.9204h-8.9204v-8.9204zm-8.9204-2.2301v-7.8053h8.9204v7.8053zm42.372 2.2301v8.9204h-8.9204v-8.9204zm-8.9204-2.2301v-7.8053h8.9204v7.8053zm0 33.452v-7.8053h8.9204v7.8053zm8.9204 2.2301v8.9204h-8.9204v-8.9204zm-11.151-2.2301h-7.8053v-7.8053h7.8053zm0 2.2301v8.9204h-7.8053v-8.9204zm0 11.151v7.8053h-7.8053v-7.8053zm2.2301 0h8.9204v7.8053h-8.9204zm11.151 0h7.8053v7.8053h-7.8053zm0-2.2301v-8.9204h7.8053v8.9204zm0-11.151v-7.8053h7.8053v7.8053zm0-12.266v-7.8053h7.8053v7.8053zm-2.2301 0h-8.9204v-7.8053h8.9204zm-11.151 0h-7.8053v-7.8053h7.8053zm-12.266 0h-7.8053v-7.8053h7.8053zm0 4.4603v7.8053h-7.8053v-7.8053zm0 10.035v8.9204h-7.8053v-8.9204zm0 11.151v7.8053h-7.8053v-7.8053zm0 12.266v7.8053h-7.8053v-7.8053zm4.4603 0h7.8053v7.8053h-7.8053zm10.035 0h8.9204v7.8053h-8.9204zm11.151 0h7.8053v7.8053h-7.8053zm12.266 0h7.8053v7.8053h-7.8053zm0-4.4603v-7.8053h7.8053v7.8053zm0-10.035v-8.9204h7.8053v8.9204zm0-11.151v-7.8053h7.8053v7.8053zm0-12.266v-7.8053h7.8053v7.8053zm0-10.035v-8.9204h7.8053v8.9204zm-4.4603 0h-7.8053v-8.9204h7.8053zm-21.186 0h-7.8053v-8.9204h7.8053zm-12.266 0h-7.8053v-8.9204h7.8053zm-10.035 2.2301v7.8053h-8.9204v-7.8053zm0 12.266v7.8053h-8.9204v-7.8053zm0 10.035v8.9204h-8.9204v-8.9204zm0 11.151v7.8053h-8.9204v-7.8053zm0 12.266v7.8053h-8.9204v-7.8053zm2.2301 10.035h7.8053v8.9204h-7.8053zm12.266 0h7.8053v8.9204h-7.8053zm21.186 0h7.8053v8.9204h-7.8053zm12.266 0h7.8053v8.9204h-7.8053zm10.035-2.2301v-7.8053h8.9204v7.8053zm0-12.266v-7.8053h8.9204v7.8053zm0-10.035v-8.9204h8.9204v8.9204zm0-11.151v-7.8053h8.9204v7.8053zm0-12.266v-7.8053h8.9204v7.8053zm0-10.035v-8.9204h8.9204v8.9204zm0-11.151v-7.8053h8.9204v7.8053zm-2.2301-7.8053v7.8053h-7.8053v-7.8053zm-12.266 7.8053h-7.8053v-7.8053h7.8053zm-21.186-7.8053v7.8053h-7.8053v-7.8053zm-12.266 7.8053h-7.8053v-7.8053h7.8053zm-28.991-7.8053h7.8053v7.8053h-7.8053zm0 10.035h7.8053v8.9204h-7.8053zm0 11.151h7.8053v7.8053h-7.8053zm0 12.266h7.8053v7.8053h-7.8053zm0 10.035h7.8053v8.9204h-7.8053zm0 11.151h7.8053v7.8053h-7.8053zm0 12.266h7.8053v7.8053h-7.8053zm0 10.035h7.8053v8.9204h-7.8053zm0 11.151h7.8053v7.8053h-7.8053zm21.186 7.8053v-7.8053h7.8053v7.8053zm12.266-7.8053h7.8053v7.8053h-7.8053zm21.186 7.8053v-7.8053h7.8053v7.8053zm12.266-7.8053h7.8053v7.8053h-7.8053zm28.991 7.8053h-7.8053v-7.8053h7.8053zm0-10.035h-7.8053v-8.9204h7.8053zm0-11.151h-7.8053v-7.8053h7.8053zm0-12.266h-7.8053v-7.8053h7.8053zm0-10.035h-7.8053v-8.9204h7.8053zm0-11.151h-7.8053v-7.8053h7.8053zm0-12.266h-7.8053v-7.8053h7.8053zm0-10.035h-7.8053v-8.9204h7.8053zm-7.8053-11.151v-7.8053h7.8053v7.8053z" stroke-width="1.1151"/>
<path d="m23.09 41.131v55.377h53.819v-55.377zm25.359 15.368v11.176h-9.9925v-11.176zm-9.9925-2.794v-9.7789h9.9925v9.7789zm35.426 39.405h-9.7789v-9.7789h9.7789zm0-12.862h-9.7789v-9.7789h9.7789zm-12.862 0h-9.7789v-9.7789h9.7789zm0 3.0824v9.7789h-9.7789v-9.7789zm12.862-15.655h-9.7789v-11.176h9.7789zm-12.862 0h-9.7789v-11.176h9.7789zm-12.572 2.794v9.7789h-9.9925v-9.7789zm0 12.862v9.7789h-9.9925v-9.7789zm25.434-39.405v9.7789h-9.7789v-9.7789zm-12.862 9.7789h-9.7789v-9.7789h9.7789zm-35.138-9.7789h9.7789v9.7789h-9.7789zm0 12.572h9.7789v11.176h-9.7789zm0 13.971h9.7789v9.7789h-9.7789zm0 12.862h9.7789v9.7789h-9.7789z" stroke-width="1.3971"/><g transform="matrix(.94258 0 0 .94258 4.6062 1.04)" fill="#8f8f8f" stroke="#323232" stroke-width="1.9998" aria-label="4x4"><path d="m19.071 32.006h-17.069v-7.7061l17.069-20.289h8.1662v20.726h4.2326v7.2691h-4.2326v6.3029h-8.1662zm0-7.2691v-10.605l-9.0173 10.605z"/><path d="m33.172 13.879h11.111l3.8876 6.809 4.5087-6.809h10.329l-8.3272 11.64 8.9253 12.79h-10.927l-4.5087-7.8672-5.3138 7.8672h-10.144l8.8793-12.79z"/><path d="m81.916 32.006h-17.068v-7.7061l17.068-20.289h8.1662v20.726h4.2326v7.2691h-4.2326v6.3029h-8.1662zm0-7.2691v-10.605l-9.0173 10.605z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 102 102" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="1" width="100" height="100" ry="0" fill="#f3ff6a" stroke="#000" stroke-width="2"/><g transform="matrix(.6632 0 0 .6632 55.069 9.2681)" fill="none" fill-rule="evenodd"><g transform="translate(-1,-1)" fill-rule="nonzero"><path d="m9.49 12.31-2.253-2.253c-0.68278-0.64771-1.5767-1.0267-2.517-1.067-0.79053-0.061132-1.5449-0.35635-2.167-0.848-0.7911-0.60174-1.3266-1.4793-1.5-2.458-0.22499-1.2898 0.19552-2.6081 1.1258-3.5294 0.93029-0.92132 2.2526-1.329 3.5402-1.0916 0.97662 0.17993 1.8496 0.72122 2.445 1.516 0.47691 0.61584 0.76364 1.3575 0.825 2.134 0.040929 0.94287 0.42047 1.8394 1.069 2.525l2.1 2.1z" fill="#24ae5f"/><path d="m50.51 12.31 2.253-2.253c0.68278-0.64771 1.5767-1.0267 2.517-1.067 1.4731-0.11076 2.7652-1.0244 3.3607-2.3763s0.39744-2.9219-0.51514-4.0835-2.3911-1.7257-3.8455-1.4672c-0.97662 0.17993-1.8496 0.72122-2.445 1.516-0.47691 0.61584-0.76364 1.3575-0.825 2.134-0.04093 0.94287-0.42048 1.8394-1.069 2.525l-2.1 2.1z" fill="#24ae5f"/><path d="m59 34c0 13.81-12.98 25-29 25s-29-11.19-29-25c0-6.9 3.24-15.16 8.49-21.68v-0.01c0.85-1.04 1.74-2.04 2.67-2.97 4.92-4.95 11.11-8.34 17.84-8.34 16.02 0 29 19.19 29 33z" fill="#4fba6f"/><circle cx="43" cy="22" r="6" fill="#ecf0f1"/><circle cx="43" cy="21" r="4" fill="#e64c3c"/><circle cx="24" cy="51" r="3" fill="#24ae5f"/><circle cx="18" cy="43" r="2" fill="#24ae5f"/><circle cx="17" cy="22" r="6" fill="#ecf0f1"/><circle cx="17" cy="21" r="4" fill="#e64c3c"/><circle cx="17" cy="21" r="2" fill="#35495e"/><circle cx="43" cy="21" r="2" fill="#35495e"/><circle cx="30" cy="11.326" r="6" fill="#ecf0f1"/><path d="m38.18 36.816 2.43 5.59c0.63629 1.3205 0.4993 2.8833-0.35702 4.073s-2.2948 1.8157-3.749 1.6316c-1.4542-0.18416-2.6912-1.149-3.224-2.5146l-4.03-9.25z" fill="#d75e72"/><circle cx="28" cy="29" r="1" fill="#4c8056"/><circle cx="32" cy="29" r="1" fill="#4c8056"/><path d="m13.8 54.74c-3.414-1.9603-6.3645-4.6346-8.65-7.84 2.292-1.5712 5.3629-1.363 7.4219 0.50313 2.059 1.8662 2.5671 4.9019 1.2281 7.3369z" fill="#24ae5f"/><path d="m54.85 46.9c-2.2855 3.2054-5.236 5.8797-8.65 7.84-1.339-2.4349-0.83087-5.4707 1.2281-7.3369 2.059-1.8662 5.1299-2.0743 7.4219-0.50313z" fill="#24ae5f"/><path d="m43.982 38.424c-0.50751-0.0011-1.0144-0.03685-1.517-0.107-4.1313-0.58066-8.2939-0.91126-12.465-0.99-4.1711 0.07874-8.3337 0.40934-12.465 0.99-2.179 0.42462-4.4366-0.06899-6.2396-1.3642-1.803-1.2952-2.9913-3.2772-3.2844-5.4778-0.082843-0.54621 0.29279-1.0562 0.839-1.139 0.54621-0.08284 1.0562 0.29279 1.139 0.839 0.23961 1.6694 1.1545 3.1671 2.5304 4.1423s3.0921 1.3425 4.7466 1.0157c4.2199-0.59722 8.4727-0.9332 12.734-1.006 4.2614 0.0738 8.5142 0.41077 12.734 1.009 1.6552 0.32769 3.3723-0.03953 4.7487-1.0156 1.3764-0.97603 2.291-2.475 2.5293-4.1454 0.09205-0.53698 0.59701-0.90146 1.1356-0.81972 0.53864 0.08174 0.91274 0.57961 0.84135 1.1197-0.53073 4.0062-3.9659 6.9875-8.007 6.949z" fill="#802d40"/><circle cx="30" cy="10.326" r="4" fill="#e64c3c"/><circle cx="30" cy="10.326" r="2" fill="#35495e"/><g fill="#ecf0f1"><circle cx="15" cy="19" r="2"/><circle cx="28" cy="8" r="2"/><circle cx="41" cy="19" r="2"/></g></g></g><g transform="matrix(.66859 0 0 .66859 54.911 53.888)" fill="none" fill-rule="evenodd"><g transform="translate(0,-1)" fill-rule="nonzero"><path d="m3.23 16.71v-0.01l-3.17-13.22c-0.16717-0.67471 0.027979-1.3878 0.5154-1.8834 0.48742-0.49558 1.1972-0.70254 1.8746-0.54659l13.75 2.93z" fill="#802f34"/><path d="m41.8 3.98 13.75-2.93c0.67739-0.15595 1.3872 0.051008 1.8746 0.54659 0.48742 0.49558 0.68257 1.2087 0.5154 1.8834l-3.171 13.22v0.01z" fill="#802f34"/><circle cx="29" cy="30" r="29" fill="#e64c3c"/><path d="m48.47 39.52c-1.1585 4.4533-3.8182 8.3704-7.53 11.09-3.5302 2.3451-7.7042 3.5301-11.94 3.39-4.2358 0.14013-8.4098-1.0449-11.94-3.39-3.7118-2.7196-6.3715-6.6367-7.53-11.09-0.16432-0.60082-0.038426-1.2439 0.34031-1.7384 0.37874-0.49452 0.9668-0.78364 1.5897-0.78157h35.08c0.62288-0.0021 1.211 0.28705 1.5897 0.78157 0.37874 0.49452 0.50463 1.1376 0.34031 1.7384z" fill="#802d40"/><path d="m40.94 50.61c-3.5302 2.3451-7.7042 3.5301-11.94 3.39-4.2358 0.14013-8.4098-1.0449-11.94-3.39 0.63-4.27 5.73-7.61 11.94-7.61s11.31 3.34 11.94 7.61z" fill="#ff5364"/><path d="m14.86 37 3.52 4.11c0.39455 0.46133 0.97728 0.7185 1.584 0.69906 0.60673-0.01945 1.1718-0.3134 1.536-0.79906l3-4.01z" fill="#ecf0f1"/><path d="m33.5 37 3 4.01c0.3642 0.48565 0.92926 0.77961 1.536 0.79906 0.60673 0.01945 1.1895-0.23772 1.584-0.69906l3.52-4.11z" fill="#ecf0f1"/><circle cx="29" cy="19" r="14" fill="#ecf0f1"/><circle cx="29" cy="19" r="7" fill="#f0c419"/><circle cx="29" cy="19" r="3" fill="#35495e"/><g fill="#c03a2b"><circle cx="9" cy="22" r="2"/><circle cx="6" cy="29" r="2"/><circle cx="13" cy="31" r="2"/><circle cx="49" cy="22" r="2"/><circle cx="52" cy="29" r="2"/><circle cx="45" cy="31" r="2"/></g><path d="m34.42 53.42c-3.572 0.77335-7.268 0.77335-10.84 0l4.01-4.01c0.37369-0.37446 0.88098-0.58489 1.41-0.58489s1.0363 0.21043 1.41 0.58489z" fill="#ecf0f1"/><circle cx="25" cy="14" r="4" fill="#ecf0f1"/></g></g><g transform="matrix(.67513 0 0 .67513 8.4721 8.9211)" fill="none" fill-rule="evenodd"><g fill-rule="nonzero"><path d="m47.28 8.79c-4.98-5.19-11.35-8.79-18.28-8.79s-13.3 3.6-18.28 8.79l-6.68 9.35c-2.4905 4.5691-3.8742 9.6588-4.04 14.86 0 13.81 12.98 25 29 25s29-11.19 29-25c-0.16578-5.2012-1.5495-10.291-4.04-14.86z" fill="#9fc9d3"/><path d="m13 9.92c-0.175 1.9079-0.74001 3.7595-1.66 5.44-1.136 2.1174-3.023 3.7333-5.29 4.53-0.14692 0.059626-0.302 0.096712-0.46 0.11-4.03-3.83-3.99-9.75-3.11-14.35 0.069912-0.37767 0.25098-0.72587 0.52-1 0.44562-0.45618 1.0697-0.69269 1.7057-0.64644 0.63604 0.046257 1.2193 0.37058 1.5943 0.88644 1.709 2.2802 4.0334 4.0252 6.7 5.03z" fill="#f9eab0"/><path d="m52.409 20c4.026-3.834 3.988-9.751 3.115-14.355-0.19469-0.81562-0.84719-1.4428-1.6699-1.605s-1.6644 0.1703-2.1541 0.85097c-1.7102 2.2798-4.0341 4.0255-6.7 5.033 0 0 0.412 7.664 6.948 9.965 0.14747 0.05916 0.30276 0.09656 0.461 0.111z" fill="#f9eab0"/><g fill="#84b5cb"><circle cx="10" cy="28" r="3"/><circle cx="13" cy="36" r="2"/><circle cx="48" cy="28" r="3"/><circle cx="45" cy="36" r="2"/><path d="m8 39c-0.0021313 2.7573-1.8833 5.1582-4.56 5.82-2.1752-3.4394-3.3619-7.4111-3.43-11.48 0.63907-0.22605 1.3121-0.34105 1.99-0.34 3.3137 0 6 2.6863 6 6z"/><path d="m57.99 33.34c-0.06814 4.0689-1.2548 8.0406-3.43 11.48-2.1623-0.5171-3.8614-2.1875-4.4153-4.3406-0.55391-2.1531 0.12819-4.4361 1.7725-5.9324 1.6443-1.4964 3.9812-1.9608 6.0728-1.207z"/></g><path d="m 13,9.92 c -0.175,1.9079 -0.74001,3.7595 -1.66,5.44 C 6.7859,13.6171 3.5739,9.4924 3,4.65 3.44562,4.19382 4.0697,3.95731 4.7057,4.00356 5.34174,4.049817 5.925,4.37414 6.3,4.89 8.009,7.1702 10.3334,8.9152 13,9.92 Z" fill="#f5efca"/><path d="m45 9.92c0.175 1.9079 0.74001 3.7595 1.66 5.44 4.5541-1.7429 7.7661-5.8676 8.34-10.71-0.44562-0.45618-1.0697-0.69269-1.7057-0.64644-0.63604 0.046257-1.2193 0.37058-1.5943 0.88644-1.709 2.2802-4.0334 4.0252-6.7 5.03z" fill="#f5efca"/><path d="m29 50c-3.25 0-4.491-1.077-4.707-1.293-0.37897-0.39238-0.37355-1.0161 0.01218-1.4018 0.38573-0.38573 1.0094-0.39115 1.4018-0.01218 0.9982 0.5704 2.1486 0.81739 3.293 0.707 2.445 0 3.31-0.724 3.318-0.731 0.40843-0.35674 1.0253-0.32899 1.4 0.063 0.37084 0.38507 0.36595 0.99591-0.011 1.375-0.216 0.216-1.457 1.293-4.707 1.293z" fill="#84b5cb"/><path d="m41 16.32c0 0.12 0 0.25-0.01 0.38v0.01c-0.16 3.97-2.82 10.41-11.99 13.29-9.17-2.88-11.83-9.32-11.99-13.29v-0.01c-0.01-0.13-0.01-0.26-0.01-0.38 0-3.92 2.45-7.32 6-7.32 2.2775 2.153e-4 4.4518 0.94967 6 2.62 1.5482-1.6703 3.7225-2.6198 6-2.62 3.55 0 6 3.4 6 7.32z" fill="#df4d60"/><path d="m39.85 37.21c-0.39754 2.2653-1.9085 4.1784-4.02 5.09-1.2162 0.48979-2.5191 0.72792-3.83 0.7h-6c-1.3109 0.02792-2.6138-0.21021-3.83-0.7-2.1115-0.91161-3.6225-2.8247-4.02-5.09-0.06352-0.29574 0.01023-0.60433 0.2006-0.83939 0.19038-0.23506 0.47692-0.37131 0.7794-0.37061h19.74c0.30248-6.96e-4 0.58902 0.13556 0.77939 0.37061 0.19038 0.23506 0.26413 0.54365 0.20061 0.83939z" fill="#802d40"/><path d="m41 16.32c0 0.12 0 0.25-0.01 0.38v0.01c-2.6792 3.9856-7.188 6.3509-11.99 6.29-4.802 0.060871-9.3108-2.3044-11.99-6.29v-0.01c-0.01-0.13-0.01-0.26-0.01-0.38 0-3.92 2.45-7.32 6-7.32 2.2775 2.153e-4 4.4518 0.94967 6 2.62 1.5482-1.6703 3.7225-2.6198 6-2.62 3.55 0 6 3.4 6 7.32z" fill="#ff5364"/><ellipse transform="matrix(.962 -.272 .272 .962 -2.554 6.6)" cx="22.5" cy="12.5" rx="3.5" ry="2.5" fill="#fb7b76"/><path d="m35.83 42.3c-1.2162 0.48979-2.5191 0.72792-3.83 0.7h-6c-1.3109 0.02792-2.6138-0.21021-3.83-0.7 0.69-2.46 3.48-4.3 6.83-4.3s6.14 1.84 6.83 4.3z" fill="#ff5364"/><path d="m36.87 41.75c-1.4672 0.88141-3.1596 1.3158-4.87 1.25h-0.63l1.02-2.71c0.28023-0.74369 0.97419-1.2509 1.7679-1.2921 0.79366-0.0412 1.5364 0.39142 1.8921 1.1021z" fill="#ecf0f1"/><path d="m26.63 43h-0.63c-1.7104 0.06581-3.4028-0.36859-4.87-1.25l0.82-1.65c0.35573-0.71067 1.0985-1.1433 1.8921-1.1021 0.79366 0.0412 1.4876 0.54841 1.7679 1.2921z" fill="#ecf0f1"/></g></g><g transform="matrix(.68064 0 0 .68064 8.3132 53.475)" fill="none" fill-rule="evenodd"><g transform="translate(-1)" fill-rule="nonzero"><path d="m20.57 1.58h-0.01c-3.7403-1.7488-7.996-2.0495-11.945-0.844-0.38785 0.11102-0.671 0.44422-0.71799 0.84489-0.046997 0.40068 0.15137 0.79035 0.50299 0.98811 1.4254 0.81744 2.6542 1.9374 3.6 3.281 0 0-6.2-1.789-10.263 4.75-0.16752 0.2759-0.19064 0.61597-0.062004 0.91201 0.12863 0.29604 0.39301 0.51118 0.709 0.57699 1.1464 0.17793 2.1989 0.7387 2.986 1.591-2.9334 4.7028-4.4505 10.151-4.37 15.693 0.06663 10.361 5.6556 19.899 14.662 25.021 9.0059 5.1226 20.061 5.0516 29-0.1865 8.9393-5.2381 14.405-14.847 14.338-25.208 0.01044-5.4157-1.504-10.725-4.37-15.32 0.78726-0.85193 1.8397-1.4123 2.986-1.59 0.316-0.06581 0.58037-0.28095 0.709-0.57699 0.12864-0.29604 0.10552-0.6361-0.062-0.91201-4.063-6.54-10.263-4.751-10.263-4.751 0.94581-1.3436 2.1746-2.4636 3.6-3.281 0.35174-0.1971 0.55071-0.58617 0.5046-0.98673s-0.32827-0.73424-0.7156-0.84627c-3.9503-1.2066-8.2076-0.90585-11.949 0.844h-0.01c-6.1102-2.1067-12.75-2.1067-18.86 0h-0.01" fill="#f0c419"/><path d="m28 15.07v0.13c0 4.97-4.03 10.8-9 10.8-4.9706 0-9-4.0294-9-9s4.0294-9 9-9c0.37414-2.249e-4 0.74802 0.019804 1.12 0.06 4.29 0.47 7.65 3.59 7.87 6.8 0 0.07 0.01 0.14 0.01 0.21z" fill="#ecf0f1"/><path d="m28 15.07c-0.03506 3.743-3.0085 6.796-6.7492 6.9299s-6.9249-2.6987-7.2275-6.4296c-0.30263-3.7309 2.3834-7.0396 6.0968-7.5104 4.711 0.516 7.88 4.083 7.88 7.01z" fill="#2fa8cc"/><circle cx="21" cy="15" r="3" fill="#35495e"/><path d="m50 17c0 4.9706-4.0294 9-9 9-4.97 0-9-5.83-9-10.8v-0.13c0-0.07 0.01-0.14 0.01-0.21 0.22-3.21 3.58-6.33 7.87-6.8 0.37198-0.040196 0.74586-0.060225 1.12-0.06 4.9706 0 9 4.0294 9 9z" fill="#ecf0f1"/><path d="m30 51c22.218 0 24.287-17 24.2-24.021-0.0064-0.40974-0.26217-0.77409-0.64534-0.91937-0.38317-0.14529-0.81619-0.0421-1.0927 0.26037-2.441 2.666-8.438 6.68-22.462 6.68s-20.021-4.014-22.457-6.68c-0.27647-0.30247-0.7095-0.40566-1.0927-0.26037-0.38317 0.14529-0.63892 0.50964-0.64534 0.91937-0.092 7.021 1.977 24.021 24.195 24.021z" fill="#802d40"/><path d="m20.63 32.28c-1.1853 1.5758-2.0391 3.3753-2.51 5.29-0.24408 0.78315-0.9339 1.3436-1.7504 1.4222-0.81653 0.0786-1.6006-0.34002-1.9896-1.0622-1.1979-2.4167-1.6371-5.1392-1.26-7.81 2.402 1.0344 4.9255 1.7602 7.51 2.16z" fill="#ecf0f1"/><path d="m45.62 37.93c-0.38898 0.72222-1.173 1.1408-1.9896 1.0622-0.81653-0.0786-1.5064-0.63908-1.7504-1.4222-0.47087-1.9147-1.3247-3.7142-2.51-5.29 2.5845-0.39977 5.108-1.1256 7.51-2.16 0.37713 2.6708-0.06209 5.3933-1.26 7.81z" fill="#ecf0f1"/><path d="m42.66 48.48c-3.976 1.784-8.304 2.6455-12.66 2.52-4.356 0.12548-8.684-0.73601-12.66-2.52 1.35-4.86 6.5-8.48 12.66-8.48s11.31 3.62 12.66 8.48z" fill="#ff5364"/><path d="m46 15c0.0125 2.5009-1.3101 4.8184-3.4697 6.0797s-4.8279 1.2746-7 0.035-3.5178-3.5438-3.5303-6.0447c0-2.929 3.171-6.494 7.88-7.01 3.4976 0.44009 6.1209 3.4148 6.12 6.94z" fill="#2fa8cc"/><circle cx="39" cy="15" r="3" fill="#35495e"/><g fill="#ecf0f1"><circle cx="18" cy="12" r="2"/><circle cx="36" cy="12" r="2"/></g></g></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="2.9082" aria-label="A"><path d="m64.314 77.889h-29.309l-4.0329 13.746h-26.299l31.298-83.271h28.06l31.298 83.271h-26.924zm-5.3961-18.006-9.2018-29.934-9.145 29.934z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="2.9082" aria-label="B"><path d="m11.517 8.3647h48.167q12.042 0 18.46 5.9641 6.4753 5.9641 6.4753 14.768 0 7.3842-4.6009 12.667-3.0673 3.5217-8.9746 5.5665 8.9746 2.1584 13.178 7.441 4.2601 5.2257 4.2601 13.178 0 6.4753-3.0105 11.644-3.0105 5.1689-8.2362 8.1794-3.2377 1.8744-9.7698 2.7265-8.6906 1.136-11.531 1.136h-44.419zm25.958 32.661h11.19q6.0209 0 8.3498-2.0448 2.3857-2.1016 2.3857-6.0209 0-3.6353-2.3857-5.6801-2.3289-2.0448-8.1794-2.0448h-11.36zm0 32.718h13.121q6.6457 0 9.3722-2.3289 2.7265-2.3857 2.7265-6.3617 0-3.6921-2.7265-5.9073-2.6697-2.272-9.429-2.272h-13.064z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="2.9082" aria-label="C"><path d="m67.949 57.583 22.55 6.8162q-2.2721 9.4858-7.157 15.848-4.8849 6.3617-12.155 9.5994-7.2138 3.2377-18.404 3.2377-13.576 0-22.209-3.9193-8.577-3.9761-14.825-13.916-6.2481-9.9402-6.2481-25.447 0-20.676 10.963-31.752 11.019-11.133 31.127-11.133 15.734 0 24.709 6.3617 9.0314 6.3617 13.405 19.54l-22.721 5.0553q-1.1928-3.8057-2.4993-5.5665-2.1584-2.9537-5.2825-4.5441t-6.9866-1.5904q-8.7474 0-13.405 7.0434-3.5217 5.2257-3.5217 16.416 0 13.86 4.2033 19.028 4.2033 5.1121 11.815 5.1121 7.3842 0 11.133-4.1465 3.8057-4.1465 5.5097-12.042z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="2.9082" aria-label="D"><path d="m11.688 8.3647h38.227q11.303 0 18.233 3.0673 6.9866 3.0673 11.531 8.8042t6.5889 13.348q2.0448 7.6114 2.0448 16.132 0 13.348-3.0673 20.732-3.0105 7.3274-8.4066 12.326-5.3961 4.9417-11.587 6.5889-8.4634 2.2721-15.336 2.2721h-38.227zm25.731 18.858v45.498h6.3049q8.0658 0 11.474-1.7608 3.4081-1.8176 5.3393-6.2481 1.9312-4.4873 1.9312-14.484 0-13.235-4.3169-18.12-4.3169-4.8849-14.314-4.8849z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="2.9082" aria-label="E"><path d="m14.897 8.3647h68.957v17.779h-43.169v13.235h40.045v16.984h-40.045v16.416h44.419v18.858h-70.206z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g stroke-width="2.9082" aria-label="F"><path d="m18.191 8.3647h63.617v17.892h-37.773v14.541h32.263v16.813h-32.263v34.024h-25.845z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g transform="translate(1.916e-4,-1.667e-4)" stroke-width="2.9082" aria-label="G"><path d="m52.641 61.474v-17.324h39.761v35.501q-11.417 7.7818-20.221 10.622-8.7474 2.7833-20.789 2.7833-14.825 0-24.197-5.0553-9.3154-5.0553-14.484-15.052-5.1121-9.997-5.1121-22.948 0-13.632 5.6233-23.686 5.6233-10.111 16.472-15.336 8.4634-4.0329 22.777-4.0329 13.803 0 20.619 2.4993 6.873 2.4993 11.36 7.7818 4.5441 5.2257 6.8162 13.291l-24.822 4.4305q-1.5336-4.7145-5.2257-7.2138-3.6353-2.4993-9.3154-2.4993-8.4634 0-13.519 5.9073-4.9985 5.8505-4.9985 18.574 0 13.519 5.0553 19.312 5.1121 5.7937 14.2 5.7937 4.3169 0 8.2362-1.2496t8.9746-4.2601v-7.8386z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g transform="matrix(1.6775 0 0 1.6775 1.6761 1.6759)"><path d="m2.807 37.614c0-7.738 5.367-14 12-14h2c6.633 0 12 6.262 12 14 0 7.18-5.82 13-13 13s-13-5.821-13-13z" fill="#d13834"/><path d="m13.764 47.386c-0.072 0-0.146-8e-3 -0.219-0.024-3.556-0.796-6.448-3.395-7.548-6.784-0.17-0.525 0.117-1.089 0.643-1.26 0.527-0.169 1.09 0.117 1.26 0.643 0.869 2.678 3.257 4.817 6.082 5.449 0.539 0.121 0.878 0.655 0.758 1.194-0.106 0.465-0.518 0.782-0.976 0.782z" fill="#ed3f32"/><path d="m6.735 36.212c-0.065 0-0.132-6e-3 -0.199-0.02-0.541-0.109-0.892-0.637-0.783-1.178 0.273-1.354 0.77-2.627 1.476-3.785 0.288-0.471 0.904-0.619 1.375-0.333 0.471 0.288 0.62 0.903 0.333 1.375-0.584 0.958-0.996 2.014-1.222 3.139-0.096 0.474-0.514 0.802-0.98 0.802z" fill="#ed3f32"/><path d="m28.807 44.614c0-7.738 5.367-14 12-14h2c6.633 0 12 6.262 12 14 0 7.18-5.82 13-13 13s-13-5.821-13-13z" fill="#ed3f32"/><path d="m23.807 33.614c-3.309 0-6-2.691-6-6 0-0.552 0.448-1 1-1s1 0.448 1 1c0 2.206 1.794 4 4 4 0.552 0 1 0.448 1 1s-0.448 1-1 1z" fill="#ed3f32"/><path d="m47.807 40.614c-3.309 0-6-2.691-6-6 0-0.552 0.448-1 1-1s1 0.448 1 1c0 2.206 1.794 4 4 4 0.552 0 1 0.448 1 1s-0.448 1-1 1z" fill="#ed7161"/><path d="m45.806 36.614c-0.164 0-0.331-0.041-0.485-0.126-0.482-0.268-0.657-0.877-0.388-1.36 4.228-7.61 3.538-14.017-2.958-24.461-1.583 11.013-11.42 19.919-19.596 19.919-0.552 0-1-0.448-1-1s0.448-1 1-1c7.853 0 17.816-9.875 17.816-20.972 0-0.44 0.289-0.83 0.71-0.957 0.421-0.128 0.877 0.036 1.122 0.402 7.181 10.772 10.245 18.977 4.654 29.041-0.183 0.328-0.524 0.514-0.875 0.514z" fill="#4c312c"/><path d="m40.807 7.092c4.012 2.941 10.148 1.38 13.089-2.632-4.012-2.942-10.148-1.38-13.089 2.632z" fill="#88c057"/><path d="m29.807 0.11c0.757 4.917 6.2 8.151 11.117 7.394-0.758-4.917-6.201-8.151-11.117-7.394z" fill="#659c35"/><path d="m39.623 54.731c-0.072 0-0.146-8e-3 -0.219-0.024-3.556-0.796-6.448-3.396-7.548-6.785-0.17-0.525 0.117-1.089 0.643-1.26s1.09 0.117 1.26 0.643c0.869 2.678 3.257 4.817 6.082 5.45 0.539 0.121 0.878 0.656 0.758 1.194-0.106 0.466-0.519 0.782-0.976 0.782z" fill="#ed7161"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g transform="matrix(1.6713 0 0 1.6713 2.2931 2.2948)"><path d="m54.589 18.43c0.021-0.015 2.644-0.796 2.481-2.696-0.072-0.835-0.597-1.935-1.495-1.806-0.742 0.106-1.609-0.761-1.503-1.503l0.103-0.719c0.106-0.742-0.761-1.609-1.503-1.503l-0.718 0.103c-0.742 0.106-1.609-0.761-1.503-1.503l0.103-0.718c0.106-0.742-0.761-1.609-1.503-1.503l-0.719 0.103c-0.742 0.106-1.609-0.761-1.503-1.503l0.103-0.718c0.106-0.742-0.761-1.609-1.503-1.503l-0.719 0.101c-0.742 0.106-1.609-0.761-1.503-1.503l0.018-0.126c0.122-0.855-0.924-1.353-1.72-1.424-2.137-0.189-2.799 2.506-2.8 2.536 0 0-3.453 5.78-4.347 15.321l5.232 5.232c0 1e-3 8.584-0.059 14.999-4.668z" fill="#efc514"/><path d="m2.502 38.661c-0.021 0.015-2.644 0.796-2.481 2.696 0.072 0.835 0.597 1.935 1.495 1.806 0.742-0.106 1.609 0.761 1.503 1.503l-0.103 0.719c-0.106 0.742 0.761 1.609 1.503 1.503l0.718-0.103c0.742-0.106 1.609 0.761 1.503 1.503l-0.103 0.718c-0.106 0.742 0.761 1.609 1.503 1.503l0.719-0.103c0.742-0.106 1.609 0.761 1.503 1.503l-0.103 0.718c-0.106 0.742 0.761 1.609 1.503 1.503l0.719-0.103c0.742-0.106 1.609 0.761 1.503 1.503l-0.018 0.126c-0.122 0.855 0.924 1.353 1.72 1.424 2.137 0.189 2.799-2.506 2.8-2.536 0 0 3.453-5.78 4.347-15.321l-5.232-5.232c0 1e-3 -8.584 0.061-14.999 4.67z" fill="#efc514"/><path d="m42.138 31.304-10.834 10.834c-1.556 1.556-4.101 1.556-5.657 0l-10.834-10.834c-1.556-1.556-1.556-4.101 0-5.657l10.834-10.834c1.556-1.556 4.101-1.556 5.657 0l10.834 10.834c1.556 1.556 1.556 4.102 0 5.657z" fill="#f9d70b"/><polygon points="18.093 22.368 25.422 15.039 39.47 33.973 32.141 41.302" fill="#ed3f32"/><path d="m38.488 21.088c-0.228 0-0.457-0.077-0.645-0.236-0.422-0.356-0.475-0.987-0.118-1.409 1.847-2.185 3.448-2.24 5.303-2.304 0.597-0.021 1.215-0.042 1.926-0.131 0.54-0.062 1.048 0.32 1.116 0.868s-0.32 1.048-0.868 1.116c-0.8 0.101-1.493 0.124-2.105 0.146-1.711 0.059-2.57 0.088-3.844 1.596-0.198 0.234-0.48 0.354-0.765 0.354z" fill="#a46f3e"/><path d="m37.39 20.119c-0.35 0-0.69-0.185-0.874-0.512-0.27-0.481-0.098-1.091 0.384-1.361 2.837-1.588 4.636-5.509 4.185-9.121-0.068-0.548 0.32-1.048 0.868-1.116 0.54-0.063 1.048 0.319 1.116 0.868 0.556 4.445-1.628 9.119-5.192 11.115-0.154 0.086-0.321 0.127-0.487 0.127z" fill="#a46f3e"/><path d="m12.076 40.088c-0.497 0-0.928-0.37-0.991-0.876-0.068-0.548 0.32-1.048 0.868-1.116 0.8-0.1 1.493-0.124 2.104-0.146 1.711-0.059 2.571-0.089 3.845-1.596 0.356-0.422 0.988-0.476 1.409-0.118 0.422 0.356 0.475 0.987 0.118 1.409-1.847 2.185-3.449 2.239-5.303 2.304-0.597 0.021-1.214 0.042-1.925 0.131-0.041 5e-3 -0.083 8e-3 -0.125 8e-3z" fill="#a46f3e"/><path d="m15.076 49.088c-0.497 0-0.928-0.37-0.991-0.876-0.556-4.446 1.628-9.12 5.192-11.115 0.482-0.269 1.092-0.097 1.361 0.385 0.27 0.482 0.098 1.091-0.384 1.361-2.837 1.587-4.636 5.509-4.185 9.121 0.068 0.548-0.32 1.048-0.868 1.116-0.041 5e-3 -0.083 8e-3 -0.125 8e-3z" fill="#a46f3e"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" ry="2" fill="none"/><g transform="matrix(1.6799 0 0 1.6799 2.3354 2.3346)"><path d="m45.146 13.699c0-0.995-0.563-1.851-1.387-2.307 0.39-0.796 0.615-1.684 0.615-2.626 0-3.353-2.767-6.071-6.18-6.071-0.892 0-1.738 0.189-2.504 0.524-0.913-1.235-2.39-2.042-4.062-2.042-1.895 0-3.543 1.032-4.398 2.554-0.942-0.651-2.088-1.036-3.327-1.036-3.2 0-5.794 2.548-5.794 5.692 0 0.235 0.019 0.466 0.047 0.693-2.274 0.769-3.91 2.883-3.91 5.378 0 1.946 0.995 3.662 2.511 4.688-0.605 0.815-0.966 1.815-0.966 2.901 0 2.724 2.248 4.933 5.021 4.933 1.161 0 2.226-0.391 3.077-1.04 1.12 1.546 2.955 2.558 5.035 2.558 2.198 0 4.123-1.131 5.219-2.829 0.737 1.237 2.101 2.07 3.665 2.07 2.347 0 4.249-1.869 4.249-4.174 0-0.517-0.1-1.01-0.275-1.467 1.524-0.634 2.593-2.117 2.593-3.845 0-0.818-0.243-1.58-0.658-2.224 0.846-0.449 1.429-1.318 1.429-2.33z" fill="#88c057"/><path d="m22.832 26.543c-0.62 0.271-1.298 0.437-2.021 0.437-2.773 0-5.021-2.209-5.021-4.933 0-1.086 0.361-2.086 0.966-2.901-1.516-1.026-2.511-2.742-2.511-4.688 0-0.942 0.235-1.83 0.648-2.611-1.657-0.985-3.838-0.786-5.269 0.619-0.126 0.124-0.239 0.255-0.346 0.389-1.607-0.77-3.599-0.503-4.934 0.808-1.041 1.023-1.436 2.439-1.189 3.762-0.755 0.115-1.48 0.455-2.061 1.026-1.458 1.432-1.458 3.755 0 5.187 0.61 0.6 1.38 0.945 2.175 1.042-0.239 1.392 0.185 2.872 1.278 3.946 1.156 1.135 2.773 1.535 4.258 1.208-0.274 1.031-3e-3 2.173 0.819 2.982 1.234 1.212 3.234 1.212 4.468 0 0.277-0.272 0.488-0.583 0.641-0.914 1.141 0.454 2.496 0.226 3.421-0.682 0.438-0.43 0.717-0.956 0.844-1.509 0.686 0.202 1.457 0.046 1.999-0.486 0.532-0.523 0.695-1.264 0.505-1.929 0.477-0.165 0.918-0.432 1.33-0.753z" fill="#659c35"/><path d="m55.484 19.249c-0.126-0.124-0.259-0.235-0.396-0.34 0.784-1.579 0.512-3.536-0.823-4.847-1.041-1.023-2.483-1.411-3.83-1.168-0.118-0.741-0.463-1.454-1.044-2.024-1.458-1.433-3.822-1.433-5.281 0-0.095 0.094-0.174 0.198-0.256 0.299-0.033 0.074-0.06 0.152-0.095 0.224 0.824 0.455 1.387 1.312 1.387 2.307 0 1.012-0.583 1.881-1.43 2.329 0.414 0.644 0.658 1.405 0.658 2.224 0 1.728-1.069 3.211-2.593 3.845 0.175 0.457 0.275 0.95 0.275 1.467 0 2.305-1.902 4.174-4.249 4.174-0.549 0-1.071-0.108-1.553-0.295 0.052 0.059 0.082 0.129 0.138 0.184 0.438 0.43 0.973 0.705 1.536 0.83-0.206 0.674-0.047 1.432 0.495 1.964 0.532 0.523 1.287 0.683 1.964 0.496 0.221 0.62 0.578 1.203 1.083 1.698 1.795 1.763 4.704 1.763 6.499 0 0.469-0.461 0.812-0.997 1.036-1.569 1.141 0.178 2.349-0.161 3.229-1.025 0.996-0.979 1.311-2.373 0.946-3.615 0.843-0.144 1.652-0.533 2.304-1.174 1.682-1.652 1.682-4.331 0-5.984z" fill="#659c35"/><path d="m40.387 30.918c-0.677 0.186-1.431 0.027-1.964-0.496-0.317-0.311-0.503-0.7-0.561-1.104-0.033-0.225-0.109-0.442-0.222-0.635-3.918 4.044-6.655 11.494-6.655 11.494 1.301-4.626 1.096-9.242 0.693-12.321-0.829 0.409-1.764 0.642-2.756 0.642-0.966 0-1.875-0.226-2.688-0.615 1.751 6.191 0.751 16.294 0.751 16.294-1.874-7.495-5.994-12.181-7.941-14.058-0.139 0.109-0.264 0.235-0.352 0.393-0.14 0.254-0.32 0.493-0.539 0.709-0.925 0.909-2.281 1.136-3.421 0.682-0.153 0.331-0.364 0.642-0.641 0.914-0.33 0.324-0.717 0.555-1.127 0.706 5.021 0 10.78 9.994 11.523 20.655 0.055 0.784 0.712 1.392 1.498 1.392h5c0.77 0 1.412-0.577 1.499-1.341 0.459-4.056 1.876-21.012 9.746-21.012-0.269-0.171-0.525-0.368-0.761-0.599-0.503-0.497-0.861-1.08-1.082-1.7z" fill="#436b1c"/><path d="m23.468 15.177c-0.121 0-0.244-0.022-0.364-0.069-2.517-0.984-3.765-3.833-2.781-6.35 0.984-2.516 3.828-3.764 6.351-2.782 0.514 0.201 0.769 0.781 0.567 1.295-0.201 0.515-0.779 0.768-1.296 0.568-1.491-0.583-3.177 0.156-3.759 1.646-0.583 1.491 0.156 3.177 1.646 3.759 0.514 0.201 0.769 0.781 0.567 1.295-0.154 0.397-0.532 0.638-0.931 0.638z" fill="#659c35"/><path d="m49.084 25.647c-0.604 0-1.207-0.113-1.786-0.339-1.219-0.477-2.18-1.399-2.705-2.599-0.222-0.506 9e-3 -1.096 0.515-1.317 0.51-0.222 1.097 0.01 1.317 0.515 0.311 0.71 0.88 1.256 1.602 1.539 0.723 0.282 1.511 0.265 2.221-0.045 0.71-0.311 1.256-0.88 1.538-1.602s0.267-1.51-0.045-2.22c-0.222-0.506 9e-3 -1.096 0.515-1.317 0.509-0.221 1.096 9e-3 1.317 0.515 0.525 1.199 0.553 2.531 0.076 3.751s-1.399 2.181-2.599 2.706c-0.631 0.274-1.298 0.413-1.966 0.413z" fill="#88c057"/><path d="m35.391 23.175c-1.711 0-3.375-0.896-4.275-2.489-0.272-0.481-0.103-1.091 0.378-1.363 0.479-0.272 1.091-0.103 1.362 0.378 0.382 0.675 1.003 1.161 1.75 1.369 0.745 0.206 1.529 0.111 2.204-0.27s1.161-1.002 1.369-1.75c0.207-0.747 0.111-1.53-0.27-2.204-0.272-0.481-0.103-1.091 0.378-1.363 0.479-0.271 1.091-0.103 1.362 0.378 0.645 1.14 0.807 2.462 0.456 3.724s-1.172 2.311-2.312 2.955c-0.759 0.431-1.586 0.635-2.402 0.635z" fill="#659c35"/><path d="m31.881 17.778c-0.716 0-1.441-0.157-2.128-0.489-2.433-1.178-3.454-4.115-2.277-6.548 0.241-0.496 0.837-0.705 1.336-0.465 0.497 0.241 0.705 0.839 0.465 1.336-0.697 1.44-0.093 3.179 1.348 3.876 1.44 0.695 3.179 0.093 3.876-1.348 0.24-0.496 0.836-0.706 1.336-0.465 0.497 0.241 0.705 0.839 0.465 1.336-0.847 1.748-2.6 2.767-4.421 2.767z" fill="#659c35"/><path d="m24.279 23.391c-0.667 0-1.333-0.138-1.962-0.413-2.476-1.083-3.61-3.978-2.528-6.455 0.221-0.504 0.806-0.737 1.316-0.516 0.506 0.221 0.737 0.811 0.516 1.317-0.64 1.466 0.031 3.181 1.497 3.821 0.712 0.311 1.5 0.326 2.221 0.043 0.722-0.283 1.29-0.829 1.601-1.54 0.221-0.504 0.807-0.736 1.316-0.516 0.506 0.221 0.737 0.811 0.516 1.317-0.523 1.2-1.483 2.124-2.703 2.601-0.58 0.228-1.185 0.341-1.79 0.341z" fill="#659c35"/><path d="m35.404 12.479c-0.158 0-0.317-7e-3 -0.477-0.022-1.304-0.125-2.48-0.75-3.313-1.76-0.352-0.426-0.291-1.056 0.135-1.408 0.428-0.353 1.057-0.29 1.408 0.135 0.493 0.598 1.189 0.968 1.961 1.042 0.782 0.079 1.527-0.158 2.124-0.65 1.234-1.018 1.41-2.851 0.392-4.085-0.352-0.426-0.291-1.056 0.135-1.408 0.428-0.353 1.057-0.29 1.408 0.135 1.72 2.084 1.423 5.18-0.661 6.9-0.888 0.731-1.978 1.121-3.112 1.121z" fill="#659c35"/><path d="m9.882 24.546c-0.613 0-1.235-0.115-1.837-0.359-2.504-1.016-3.715-3.88-2.699-6.385 0.207-0.512 0.79-0.757 1.303-0.551 0.512 0.208 0.758 0.791 0.551 1.303-0.602 1.482 0.115 3.178 1.598 3.78 1.486 0.604 3.18-0.115 3.78-1.598 0.208-0.513 0.793-0.758 1.303-0.551 0.512 0.208 0.759 0.791 0.551 1.303-0.774 1.902-2.612 3.058-4.55 3.058z" fill="#88c057"/></g></svg>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment