modif diverses

This commit is contained in:
marc 2025-03-26 11:26:53 +01:00
parent a0cbd4a98e
commit 3d351b8a70
159 changed files with 11298 additions and 9564 deletions

View File

@ -1,159 +0,0 @@
# Copy paste of https://github.com/espressif/esp-idf/blob/master/tools/docker/Dockerfile
# but with ubuntu image downgraded.
# You must download https://github.com/espressif/esp-idf/blob/master/tools/docker/entrypoint.sh
# and place it in the .devcontainer directory.
#FROM ubuntu:24.04
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
RUN : \
&& apt-get update \
&& apt-get install -y \
apt-utils \
bison \
bzip2 \
ca-certificates \
ccache \
check \
curl \
flex \
git \
git-lfs \
gperf \
lcov \
libbsd-dev \
libffi-dev \
libglib2.0-0 \
libncurses-dev \
libpixman-1-0 \
libsdl2-2.0-0 \
libslirp0 \
libusb-1.0-0-dev \
make \
ninja-build \
python3 \
python3-venv \
ruby \
unzip \
wget \
xz-utils \
zip \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \
&& :
# To build the image for a branch or a tag of IDF, pass --build-arg IDF_CLONE_BRANCH_OR_TAG=name.
# To build the image with a specific commit ID of IDF, pass --build-arg IDF_CHECKOUT_REF=commit-id.
# It is possible to combine both, e.g.:
# IDF_CLONE_BRANCH_OR_TAG=release/vX.Y
# IDF_CHECKOUT_REF=<some commit on release/vX.Y branch>.
# Use IDF_CLONE_SHALLOW=1 to perform shallow clone (i.e. --depth=1 --shallow-submodules)
# Use IDF_CLONE_SHALLOW_DEPTH=X to define the depth if IDF_CLONE_SHALLOW is used (i.e. --depth=X)
# Use IDF_INSTALL_TARGETS to install tools only for selected chip targets (CSV)
ARG IDF_CLONE_URL=https://github.com/espressif/esp-idf.git
ARG IDF_CLONE_BRANCH_OR_TAG=master
ARG IDF_CHECKOUT_REF=
ARG IDF_CLONE_SHALLOW=
ARG IDF_CLONE_SHALLOW_DEPTH=1
ARG IDF_INSTALL_TARGETS=all
ENV IDF_PATH=/opt/esp/idf
ENV IDF_TOOLS_PATH=/opt/esp
# install build essential needed for linux target apps, which is a preview target so it is installed with "all" only
RUN if [ "$IDF_INSTALL_TARGETS" = "all" ]; then \
apt-get update \
&& apt-get install -y build-essential \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* ; \
fi
RUN echo IDF_CHECKOUT_REF=$IDF_CHECKOUT_REF IDF_CLONE_BRANCH_OR_TAG=$IDF_CLONE_BRANCH_OR_TAG && \
git clone --recursive \
${IDF_CLONE_SHALLOW:+--depth=${IDF_CLONE_SHALLOW_DEPTH} --shallow-submodules} \
${IDF_CLONE_BRANCH_OR_TAG:+-b $IDF_CLONE_BRANCH_OR_TAG} \
$IDF_CLONE_URL $IDF_PATH && \
git config --system --add safe.directory $IDF_PATH && \
if [ -n "$IDF_CHECKOUT_REF" ]; then \
cd $IDF_PATH && \
if [ -n "$IDF_CLONE_SHALLOW" ]; then \
git fetch origin --depth=${IDF_CLONE_SHALLOW_DEPTH} --recurse-submodules ${IDF_CHECKOUT_REF}; \
fi && \
git checkout $IDF_CHECKOUT_REF && \
git submodule update --init --recursive; \
fi
# Install all the required tools
RUN : \
&& update-ca-certificates --fresh \
&& $IDF_PATH/tools/idf_tools.py --non-interactive install required --targets=${IDF_INSTALL_TARGETS} \
&& $IDF_PATH/tools/idf_tools.py --non-interactive install qemu* --targets=${IDF_INSTALL_TARGETS} \
&& $IDF_PATH/tools/idf_tools.py --non-interactive install cmake \
&& $IDF_PATH/tools/idf_tools.py --non-interactive install-python-env \
&& rm -rf $IDF_TOOLS_PATH/dist \
&& :
# Add get_idf as alias
RUN echo 'alias get_idf=". /opt/esp/idf/export.sh"' >> /root/.bashrc
# The constraint file has been downloaded and the right Python package versions installed. No need to check and
# download this at every invocation of the container.
ENV IDF_PYTHON_CHECK_CONSTRAINTS=no
# Ccache is installed, enable it by default
ENV IDF_CCACHE_ENABLE=1
COPY entrypoint.sh /opt/esp/entrypoint.sh
RUN chmod +x /opt/esp/entrypoint.sh
#Original file starts here
#FROM espressif/idf
#ARG DEBIAN_FRONTEND=nointeractive
ARG CONTAINER_USER=esp
ARG USER_UID=1050
ARG USER_GID=$USER_UID
RUN apt-get update \
&& apt install -y -q \
cmake \
git \
libglib2.0-0 \
libnuma1 \
libpixman-1-0 \
&& rm -rf /var/lib/apt/lists/*
# QEMU
ENV QEMU_REL=esp_develop_8.2.0_20240122
ENV QEMU_SHA256=e7c72ef5705ad1444d391711088c8717fc89f42e9bf6d1487f9c2a326b8cfa83
ENV QEMU_DIST=qemu-xtensa-softmmu-${QEMU_REL}-x86_64-linux-gnu.tar.xz
ENV QEMU_URL=https://github.com/espressif/qemu/releases/download/esp-develop-8.2.0-20240122/${QEMU_DIST}
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
RUN wget --no-verbose ${QEMU_URL} \
&& echo "${QEMU_SHA256} *${QEMU_DIST}" | sha256sum --check --strict - \
&& tar -xf $QEMU_DIST -C /opt \
&& rm ${QEMU_DIST}
ENV PATH=/opt/qemu/bin:${PATH}
RUN groupadd --gid $USER_GID $CONTAINER_USER \
&& adduser --uid $USER_UID --gid $USER_GID --disabled-password --gecos "" ${CONTAINER_USER} \
&& usermod -a -G root $CONTAINER_USER && usermod -a -G dialout $CONTAINER_USER
RUN chmod -R 775 /opt/esp/python_env/
USER ${CONTAINER_USER}
ENV USER=${CONTAINER_USER}
WORKDIR /home/${CONTAINER_USER}
RUN echo "source /opt/esp/idf/export.sh > /dev/null 2>&1" >> ~/.bashrc
ENTRYPOINT [ "/opt/esp/entrypoint.sh" ]
CMD ["/bin/bash", "-c"]

View File

@ -1,33 +0,0 @@
{
"name": "ESP-IDF QEMU",
"build": {
"dockerfile": "Dockerfile"
},
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.defaultProfile.linux": "bash",
"idf.espIdfPath": "/opt/esp/idf",
"idf.toolsPath": "/opt/esp",
"idf.gitPath": "/usr/bin/git"
},
"extensions": [
"espressif.esp-idf-extension",
"espressif.esp-idf-web"
]
},
"codespaces": {
"settings": {
"terminal.integrated.defaultProfile.linux": "bash",
"idf.espIdfPath": "/opt/esp/idf",
"idf.toolsPath": "/opt/esp",
"idf.gitPath": "/usr/bin/git"
},
"extensions": [
"espressif.esp-idf-extension",
"espressif.esp-idf-web"
]
}
},
"runArgs": ["--privileged"]
}

View File

@ -1,20 +0,0 @@
#!/usr/bin/env bash
set -e
# IDF_GIT_SAFE_DIR has the same format as system PATH environment variable.
# All path specified in IDF_GIT_SAFE_DIR will be added to user's
# global git config as safe.directory paths. For more information
# see git-config manual page.
if [ -n "${IDF_GIT_SAFE_DIR+x}" ]
then
echo "Adding following directories into git's safe.directory"
echo "$IDF_GIT_SAFE_DIR" | tr ':' '\n' | while read -r dir
do
git config --global --add safe.directory "$dir"
echo " $dir"
done
fi
. $IDF_PATH/export.sh
exec "$@"

View File

@ -2,7 +2,7 @@
"configurations": [
{
"name": "ESP-IDF",
"compilerPath": "${config:idf.toolsPathWin}\\tools\\xtensa-esp-elf\\esp-13.2.0_20230928\\xtensa-esp-elf\\bin\\xtensa-esp32s3-elf-gcc.exe",
"compilerPath": "${config:idf.toolsPath}/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc",
"compileCommands": "${config:idf.buildPath}/compile_commands.json",
"includePath": [
"${config:idf.espIdfPath}/components/**",
@ -16,7 +16,8 @@
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true
}
},
"configurationProvider": "ms-vscode.cmake-tools"
}
],
"version": 4

24
.vscode/launch.json vendored
View File

@ -1,6 +1,7 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "gdbtarget",
"request": "attach",
@ -10,6 +11,27 @@
"type": "espidf",
"name": "Launch",
"request": "launch"
}
},
{
"name": "Debug LVGL demo with gdb",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/bin/main",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
"linux": {
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb"
},
"osx": {
"MIMode": "lldb"
},
"windows": {
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe"
}
},
]
}

105
.vscode/settings.json vendored
View File

@ -1,18 +1,91 @@
{
"idf.adapterTargetName": "esp32s3",
"idf.flashType": "UART",
"idf.portWin": "COM11",
"files.associations": {
"wifi.h": "c",
"esp_log.h": "c",
"esp_wifi.h": "c",
"esp_lvgl_port.h": "c",
"mqtt.h": "c",
"stdio.h": "c",
"locale.h": "c",
"obtain_time.h": "c",
"i2c.h": "c",
"lv_global.h": "c",
"cstdint": "c"
}
"C_Cpp.intelliSenseEngine": "default",
"idf.espIdfPath": "/home/marc/esp/v5.3.1/esp-idf",
"idf.pythonBinPath": "/home/marc/.espressif/python_env/idf5.3_py3.10_env/bin/python",
"idf.toolsPath": "/home/marc/.espressif",
"idf.customExtraPaths": "/home/marc/.espressif/tools/xtensa-esp-elf-gdb/14.2_20240403/xtensa-esp-elf-gdb/bin:/home/marc/.espressif/tools/riscv32-esp-elf-gdb/14.2_20240403/riscv32-esp-elf-gdb/bin:/home/marc/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin:/home/marc/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20240530/riscv32-esp-elf/bin:/home/marc/.espressif/tools/esp32ulp-elf/2.38_20240113/esp32ulp-elf/bin:/home/marc/.espressif/tools/cmake/3.24.0/bin:/home/marc/.espressif/tools/openocd-esp32/v0.12.0-esp32-20240318/openocd-esp32/bin:/home/marc/.espressif/tools/ninja/1.11.1:/home/marc/.espressif/tools/esp-rom-elfs/20240305",
"idf.customExtraVars": {
"OPENOCD_SCRIPTS": "/home/marc/.espressif/tools/openocd-esp32/v0.12.0-esp32-20240318/openocd-esp32/share/openocd/scripts",
"ESP_ROM_ELF_DIR": "/home/marc/.espressif/tools/esp-rom-elfs/20240305/"
},
"idf.gitPath": "git",
"idf.adapterTargetName": "esp32s3",
"idf.openOcdConfigs": [
"board/esp32s3-builtin.cfg"
],
"idf.flashType": "UART",
"idf.port": "/dev/ttyUSB0",
"cmake.additionalCompilerSearchDirs": [
"/home/marc/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin/"
],
"files.associations": {
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"*.tcc": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"charconv": "cpp",
"chrono": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"compare": "cpp",
"concepts": "cpp",
"condition_variable": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"list": "cpp",
"map": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"ratio": "cpp",
"regex": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"format": "cpp",
"fstream": "cpp",
"future": "cpp",
"initializer_list": "cpp",
"iomanip": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"numbers": "cpp",
"ostream": "cpp",
"semaphore": "cpp",
"span": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"stop_token": "cpp",
"streambuf": "cpp",
"thread": "cpp",
"cinttypes": "cpp",
"typeinfo": "cpp",
"variant": "cpp"
},
"idf.pythonInstallPath": "/usr/bin/python3"
}

259
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,259 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Build - Build project",
"type": "shell",
"command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py build",
"windows": {
"command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py build",
"options": {
"env": {
"PATH": "${env:PATH};${config:idf.customExtraPaths}"
}
}
},
"options": {
"env": {
"PATH": "${env:PATH}:${config:idf.customExtraPaths}"
}
},
"problemMatcher": [
{
"owner": "cpp",
"fileLocation": [
"autoDetect",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "Set ESP-IDF Target",
"type": "shell",
"command": "${command:espIdf.setTarget}",
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"autoDetect",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"label": "Clean - Clean the project",
"type": "shell",
"command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py fullclean",
"windows": {
"command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py fullclean",
"options": {
"env": {
"PATH": "${env:PATH};${config:idf.customExtraPaths}"
}
}
},
"options": {
"env": {
"PATH": "${env:PATH}:${config:idf.customExtraPaths}"
}
},
"problemMatcher": [
{
"owner": "cpp",
"fileLocation": [
"autoDetect",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
]
},
{
"label": "Flash - Flash the device",
"type": "shell",
"command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} -b ${config:idf.flashBaudRate} flash",
"windows": {
"command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py flash -p ${config:idf.portWin} -b ${config:idf.flashBaudRate}",
"options": {
"env": {
"PATH": "${env:PATH};${config:idf.customExtraPaths}"
}
}
},
"options": {
"env": {
"PATH": "${env:PATH}:${config:idf.customExtraPaths}"
}
},
"problemMatcher": [
{
"owner": "cpp",
"fileLocation": [
"autoDetect",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
]
},
{
"label": "Monitor: Start the monitor",
"type": "shell",
"command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} monitor",
"windows": {
"command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py -p ${config:idf.portWin} monitor",
"options": {
"env": {
"PATH": "${env:PATH};${config:idf.customExtraPaths}"
}
}
},
"options": {
"env": {
"PATH": "${env:PATH}:${config:idf.customExtraPaths}"
}
},
"problemMatcher": [
{
"owner": "cpp",
"fileLocation": [
"autoDetect",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
],
"dependsOn": "Flash - Flash the device"
},
{
"label": "OpenOCD: Start openOCD",
"type": "shell",
"presentation": {
"echo": true,
"reveal": "never",
"focus": false,
"panel": "new"
},
"command": "openocd -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}",
"windows": {
"command": "openocd.exe -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}",
"options": {
"env": {
"PATH": "${env:PATH};${config:idf.customExtraPaths}"
}
}
},
"options": {
"env": {
"PATH": "${env:PATH}:${config:idf.customExtraPaths}"
}
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"autoDetect",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"label": "adapter",
"type": "shell",
"command": "${config:idf.pythonBinPath}",
"isBackground": true,
"options": {
"env": {
"PATH": "${env:PATH}:${config:idf.customExtraPaths}",
"PYTHONPATH": "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter"
}
},
"problemMatcher": {
"background": {
"beginsPattern": "\bDEBUG_ADAPTER_STARTED\b",
"endsPattern": "DEBUG_ADAPTER_READY2CONNECT",
"activeOnStart": true
},
"pattern": {
"regexp": "(\\d+)-(\\d+)-(\\d+)\\s(\\d+):(\\d+):(\\d+),(\\d+)\\s-(.+)\\s(ERROR)",
"file": 8,
"line": 2,
"column": 3,
"severity": 4,
"message": 9
}
},
"args": [
"${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter_main.py",
"-e",
"${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
"-s",
"$OPENOCD_SCRIPTS",
"-dn",
"esp32",
"-om",
"connect_to_instance",
"-t",
"xtensa-esp32-elf-"
],
"windows": {
"command": "${config:idf.pythonBinPathWin}",
"options": {
"env": {
"PATH": "${env:PATH};${config:idf.customExtraPaths}",
"PYTHONPATH": "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter"
}
}
}
}
]
}

View File

@ -1,23 +0,0 @@
{
"configurations": [
{
"name": "ESP-IDF",
"compilerPath": "C:\\espidftools\\tools\\xtensa-esp-elf\\esp-13.2.0_20230928\\xtensa-esp-elf\\bin\\xtensa-esp32s3-elf-gcc.exe",
"compileCommands": "${config:idf.buildPath}/compile_commands.json",
"includePath": [
"${config:idf.espIdfPath}/components/**",
"${config:idf.espIdfPathWin}/components/**",
"${workspaceFolder}/**"
],
"browse": {
"path": [
"${config:idf.espIdfPath}/components",
"${config:idf.espIdfPathWin}/components",
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true
}
}
],
"version": 4
}

View File

@ -1,90 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "gdbtarget",
"request": "attach",
"name": "Eclipse CDT GDB Adapter"
},
{
"type": "gdb",
"request": "attach",
"name": "NativeDebug",
"target": "extended-remote :3333",
"executable": "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
"gdbpath": "${command:espIdf.getToolchainGdb}",
"cwd": "${workspaceRoot}",
"autorun": [
"mon reset halt",
"maintenance flush register-cache",
"thb app_main"
]
},
{
"name": "GDB",
"type": "cppdbg",
"request": "launch",
"MIMode": "gdb",
"miDebuggerPath": "${command:espIdf.getToolchainGdb}",
"requireExactSource": true,
"stopAtEntry": true,
"program": "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
"windows": {
"program": "${workspaceFolder}\\build\\${command:espIdf.getProjectName}.elf"
},
"cwd": "${workspaceFolder}",
"setupCommands": [
{ "text": "set remotetimeout 20" },
],
"postRemoteConnectCommands": [
{ "text": "mon reset halt" },
{ "text": "maintenance flush register-cache"},
],
"externalConsole": false,
"logging": {
"engineLogging": true
}
},
{
"type": "espidf",
"name": "Launch",
"request": "launch",
"debugPort": 9998,
"logLevel": 2,
"mode": "manual",
"verifyAppBinBeforeDebug": false,
"tmoScaleFactor": 1,
"initGdbCommands": [
"target remote :3333",
"set remotetimeout 20",
"symbol-file /path/to/program.elf",
"mon reset halt",
"maintenance flush register-cache",
"thb app_main"
],
"env": {
"CUSTOM_ENV_VAR": "SOME_VALUE"
}
},
{
"type": "gdbtarget",
"request": "attach",
"name": "Eclipse CDT Remote",
"program": "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
"initCommands": [
"set remotetimeout 20",
"set remote hardware-watchpoint-limit 2",
"mon reset halt",
"maintenance flush register-cache",
"thb app_main",
],
"gdb": "${command:espIdf.getToolchainGdb}",
"target": {
"port": "3333"
},
}
]
}

View File

@ -1,9 +0,0 @@
{
"idf.adapterTargetName": "esp32s3",
"idf.flashType": "UART",
"idf.portWin": "COM11",
"files.associations": {
"string.h": "c"
},
"idf.espIdfPathWin": "C:\\espidf\\v5.2.3\\esp-idf"
}

22
ca_cert.pem Normal file
View File

@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDmTCCAoGgAwIBAgIUd5qKY6blEffPyHQZnmQfxkcCO7AwDQYJKoZIhvcNAQEL
BQAwXDELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEVMBMGA1UEAwwMMTkyLjE2OC4wLjI4
MB4XDTI0MTExMzE4MjYxOVoXDTI1MTExMzE4MjYxOVowXDELMAkGA1UEBhMCRlIx
EzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMg
UHR5IEx0ZDEVMBMGA1UEAwwMMTkyLjE2OC4wLjI4MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEA8lKPcpJ6/FhrI+E8fzR93N/XIfEW7GpFa+KNp+DK9DGS
hHno2yVGXNdUFRQEL/2pL8aiZzZ7xGMubzEIr1dlHrb/PplGRTXCxQWnDJDsOu4w
7TbzjYxDhgMwXhSGuFlMexFBh+W9qcO85l4wNSOhHusyf7XZaPAd3NGmK4XsoeXJ
DSROJLLpvyZM3yt1kuC3GTWSqUe4Ldv+kaAfyW+X/PJ7Tgb6frLGNCs5A0zLhFxb
FS2omnqX6+H2Bjvk3nCQr85zcuIrnXQ+Hy58MayS+dRqPTSNw7RqRVvrGUuQuj5y
/ruAVLjG6F9wTZZFJ8Nk2veuFxIG+8ADpglWoYrokQIDAQABo1MwUTAdBgNVHQ4E
FgQUUa64jnTc+VqWQB93Fp/yPuirm2cwHwYDVR0jBBgwFoAUUa64jnTc+VqWQB93
Fp/yPuirm2cwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAnqg9
DeBozovXmwcbDTlTqz1b5LJ3Xz4mhUnEssmlDvvlXMqL1CjeXDKgOXtkWaomTJNO
MfMTmkkKg2lomNe2O84nUyPJnHYle5cbxZXAvbkmsi6R95lXFf5+bHAtU05TFYKc
BWMPB3Vwym9qrAc8G1LPr05LYgrJsQ9xkf0pVR7hrjgu9k6ElNAQSiH4dlyK4b/T
12U4zBawZNv3f6OnKOTq2NuwwzxWSwRRbEGUf0qO6Z8LNsj7yvmp2ImfN1e3a39p
+WmxJkHBzg5LxUon8jtiZLKeAPNlAPvKTs/4umE0LdZnsdlYrNR+kFeMMurxHvfZ
ykxPELUVUWEgv/IRbA==
-----END CERTIFICATE-----

28
ca_key.pem Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDyUo9yknr8WGsj
4Tx/NH3c39ch8RbsakVr4o2n4Mr0MZKEeejbJUZc11QVFAQv/akvxqJnNnvEYy5v
MQivV2Uetv8+mUZFNcLFBacMkOw67jDtNvONjEOGAzBeFIa4WUx7EUGH5b2pw7zm
XjA1I6Ee6zJ/tdlo8B3c0aYrheyh5ckNJE4ksum/JkzfK3WS4LcZNZKpR7gt2/6R
oB/Jb5f88ntOBvp+ssY0KzkDTMuEXFsVLaiaepfr4fYGO+TecJCvznNy4iuddD4f
LnwxrJL51Go9NI3DtGpFW+sZS5C6PnL+u4BUuMboX3BNlkUnw2Ta964XEgb7wAOm
CVahiuiRAgMBAAECggEAHqYEkKgoN/xy6KHXRft8o9AH5LoafSJfz2pjIkWTRdlz
P6AvrHAFez6c2uGiOfOqT2mfJtDETK2CtPuNrqeuGXlpxSAbvCs1jDfPzg4SYs23
kHkvyspfy/ZhSrTr6SsaOkKPeEG9gFhKbxSgokf0W/XBeFemvNgJ3uEBVGXm7P7l
MtwGTaM/wHRUqbLTxwzp++pzajs3YDZiU42TJP9hw2d6bBhRS0Jf0p8EAmDZRin2
IdKl559pwLewfwfyDUd2ea4NpGVT7x5bX0vI0QKPfLbWyd5Q1+cv7dRi9EP8iB57
anrrRHWFmq/+CX79CGMvbdt+3zqxFAgpDxLQ3gcIpQKBgQD5U9lKIUkFw6EqcNyq
Uz0+Z/0fXzhkABUBvzan+mbESYD+cnDzA2WX+bBgfmugcmWNTjUmW/6WC0ZhNQ/x
5SJz9OYKBmdkdg0XUm4ALhfwDvX6Pdq8A6NFHUg/y/ljjTC7n/qDkcB4L3/jENmX
ZT91biCV8574MUrqZk9FRInSDwKBgQD4zrhHgYcwD0iRFqSbUeaU/M/Vwh5ZyVlU
5+kXXsjfeXdMoTEeQaaWjkYjPzV+PcAw9BGQeS+GtOx18P/vuVvVGuFEgM1qBiGt
d1Ixb0sdzDDSP91tH1gXcYKM7DETIyOok+U48YTkEnsnxGk2iOjPHm1iu4mINKFa
YG/qm7u7XwKBgGY9Jesp/wGoGNyIb1RA0epXRgqpRzxqdDLFMCptmdp/sa+lSf+8
stpA/zxyWrvubQomudDDBICOmwudcK5moVwfXn1Z5ufhKLkZihX00MgVunQlDR7v
9vGOcmQGxns2GHe3wEhXai9eevinnjJgyEblI+OZhOSNggTgcz0aP9GtAoGBAPHj
7+689BR6V1+PNvs2Fcm1O84iymUaRvov+UJaSUpSifR7Jgi3ZOEscu3jjvsrx8UQ
FF90IguBq/5CDmEewTQezPFPk+VHDsjZn5QmEk5m7PQLWRe1CGzKU1T0cAWd/RXw
q0LANCWT/h28a1m0ozpx54C8uMot+Mynw0bAnzRbAoGAG9rlCW9OBFIodxdAOUKH
8oJMF+hYBeyvzEdnZhhpShpnIWs0BKt2sWTFRoedLs5Pck3Y1VuOUWmSNhjLhd5X
f14tTFynLE42NL6eJ5FyFXLoogki4ObegIfgkFhrzHX4f6b6pD3GSDiXhru3ZjUr
mPOvd++V0fTVrC2DfTWaXV0=
-----END PRIVATE KEY-----

@ -1 +0,0 @@
Subproject commit 28639dd469af0b33df55d481da8383347e88067e

View File

@ -49,10 +49,12 @@ static const char *TAG = "ImgDwn";
#define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x)
#define IMGDWN_WIDTH 600
#define IMGDWN_WIDTH_STR "620"
#define IMGDWN_WIDTH 620
#define IMGDWN_HEIGHT_STR "460"
#define IMGDWN_HEIGHT 460
#define IMGDWN_URL2 ("http://vps-edf71efa.vps.ovh.net:3000/render/d-solo/7BtRMrv4k/temperatures?orgId=1&var-emplacement=entree_ECS&var-emplacement=entree_reseauSol&panelId=4&width=650&height=460&scale=1&tz=Europe%2FParis/")
#define IMGDWN_URL ("http://vps-edf71efa.vps.ovh.net:3000/render/d-solo/bOcPeysGz/hauteur-cuve?orgId=1&from=now-2d&refresh=1m&panelId=4&width=300&height=200&scale=1&tz=Europe%2FParis") // 650 460
#define IMGDWN_URL ("http://vps-edf71efa.vps.ovh.net:3000/render/d-solo/bOcPeysGz/hauteur-cuve?orgId=1&from=now-2d&refresh=1m&panelId=4&width=" IMGDWN_WIDTH_STR "&height=" IMGDWN_HEIGHT_STR "&scale=1&tz=Europe%2FParis") // 650 460
// As default is 512 without setting buffer_size property in esp_http_client_config_t
#define HTTP_RECEIVE_BUFFER_SIZE 1938

@ -1 +0,0 @@
Subproject commit d01280e64934a09ba16cac60cf9d3a37e228bb66

View File

@ -359,12 +359,16 @@ static void http_request_task(void *pvParameter)
// ESP_LOGE(TAG, "%s",local_response_buffer);
process_response_body(local_response_buffer);
weather.data_retreived_cb(dailydatas, forecastdatas);
heap_caps_free(local_response_buffer);
esp_http_client_cleanup(client);
if(dailydatas->isValid){
weather.data_retreived_cb(dailydatas, forecastdatas);
vTaskDelay(weather.retreival_period / portTICK_PERIOD_MS);
}else{
//Ca a échoué on recommence dans 30 secondes
vTaskDelay(30000 / portTICK_PERIOD_MS);
}
// http_client_request(&http_client, WEB_SERVER, get_request);
vTaskDelay(weather.retreival_period / portTICK_PERIOD_MS);
}
}

View File

@ -0,0 +1,44 @@
idf_build_get_property(target IDF_TARGET)
if(${target} STREQUAL "linux")
# Header only library for linux
idf_component_register(INCLUDE_DIRS include
SRCS protocol_examples_utils.c)
return()
endif()
set(srcs "stdin_out.c"
"addr_from_stdin.c"
"connect.c"
"wifi_connect.c"
"protocol_examples_utils.c")
if(CONFIG_EXAMPLE_PROVIDE_WIFI_CONSOLE_CMD)
list(APPEND srcs "console_cmd.c")
endif()
if(CONFIG_EXAMPLE_CONNECT_ETHERNET)
list(APPEND srcs "eth_connect.c")
endif()
if(CONFIG_EXAMPLE_CONNECT_PPP)
list(APPEND srcs "ppp_connect.c")
endif()
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "include"
PRIV_REQUIRES esp_netif driver esp_wifi vfs console esp_eth)
if(CONFIG_EXAMPLE_PROVIDE_WIFI_CONSOLE_CMD)
idf_component_optional_requires(PRIVATE console)
endif()
if(CONFIG_EXAMPLE_CONNECT_ETHERNET)
idf_component_optional_requires(PUBLIC esp_eth)
endif()
if(CONFIG_EXAMPLE_CONNECT_PPP)
idf_component_optional_requires(PRIVATE esp_tinyusb espressif__esp_tinyusb)
endif()

View File

@ -0,0 +1,425 @@
menu "Example Connection Configuration"
orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps"
config EXAMPLE_CONNECT_WIFI
bool "connect using WiFi interface"
depends on !IDF_TARGET_LINUX && (SOC_WIFI_SUPPORTED || ESP_WIFI_REMOTE_ENABLED)
default y if SOC_WIFI_SUPPORTED
help
Protocol examples can use Wi-Fi and/or Ethernet to connect to the network.
Choose this option to connect with WiFi
if EXAMPLE_CONNECT_WIFI
config EXAMPLE_WIFI_SSID_PWD_FROM_STDIN
bool "Get ssid and password from stdin"
default n
help
Give the WiFi SSID and password from stdin.
config EXAMPLE_PROVIDE_WIFI_CONSOLE_CMD
depends on !EXAMPLE_WIFI_SSID_PWD_FROM_STDIN
bool "Provide wifi connect commands"
default y
help
Provide wifi connect commands for esp_console.
Please use `example_register_wifi_connect_commands` to register them.
config EXAMPLE_WIFI_SSID
depends on !EXAMPLE_WIFI_SSID_PWD_FROM_STDIN
string "WiFi SSID"
default "myssid"
help
SSID (network name) for the example to connect to.
config EXAMPLE_WIFI_PASSWORD
depends on !EXAMPLE_WIFI_SSID_PWD_FROM_STDIN
string "WiFi Password"
default "mypassword"
help
WiFi password (WPA or WPA2) for the example to use.
Can be left blank if the network has no security set.
config EXAMPLE_WIFI_CONN_MAX_RETRY
int "Maximum retry"
default 6
help
Set the Maximum retry to avoid station reconnecting to the AP unlimited,
in case the AP is really inexistent.
choice EXAMPLE_WIFI_SCAN_METHOD
prompt "WiFi Scan Method"
default EXAMPLE_WIFI_SCAN_METHOD_ALL_CHANNEL
help
WiFi scan method:
If "Fast" is selected, scan will end after find SSID match AP.
If "All Channel" is selected, scan will end after scan all the channel.
config EXAMPLE_WIFI_SCAN_METHOD_FAST
bool "Fast"
config EXAMPLE_WIFI_SCAN_METHOD_ALL_CHANNEL
bool "All Channel"
endchoice
menu "WiFi Scan threshold"
config EXAMPLE_WIFI_SCAN_RSSI_THRESHOLD
int "WiFi minimum rssi"
range -127 0
default -127
help
The minimum rssi to accept in the scan mode.
choice EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD
prompt "WiFi Scan auth mode threshold"
default EXAMPLE_WIFI_AUTH_OPEN
help
The weakest authmode to accept in the scan mode.
config EXAMPLE_WIFI_AUTH_OPEN
bool "OPEN"
config EXAMPLE_WIFI_AUTH_WEP
bool "WEP"
config EXAMPLE_WIFI_AUTH_WPA_PSK
bool "WPA PSK"
config EXAMPLE_WIFI_AUTH_WPA2_PSK
bool "WPA2 PSK"
config EXAMPLE_WIFI_AUTH_WPA_WPA2_PSK
bool "WPA WPA2 PSK"
config EXAMPLE_WIFI_AUTH_WPA2_ENTERPRISE
bool "WPA2 ENTERPRISE"
config EXAMPLE_WIFI_AUTH_WPA3_PSK
bool "WPA3 PSK"
config EXAMPLE_WIFI_AUTH_WPA2_WPA3_PSK
bool "WPA2 WPA3 PSK"
config EXAMPLE_WIFI_AUTH_WAPI_PSK
bool "WAPI PSK"
endchoice
endmenu
choice EXAMPLE_WIFI_CONNECT_AP_SORT_METHOD
prompt "WiFi Connect AP Sort Method"
default EXAMPLE_WIFI_CONNECT_AP_BY_SIGNAL
help
WiFi connect AP sort method:
If "Signal" is selected, Sort matched APs in scan list by RSSI.
If "Security" is selected, Sort matched APs in scan list by security mode.
config EXAMPLE_WIFI_CONNECT_AP_BY_SIGNAL
bool "Signal"
config EXAMPLE_WIFI_CONNECT_AP_BY_SECURITY
bool "Security"
endchoice
endif
config EXAMPLE_CONNECT_ETHERNET
bool "connect using Ethernet interface"
depends on !IDF_TARGET_LINUX
default y if !EXAMPLE_CONNECT_WIFI
help
Protocol examples can use Wi-Fi and/or Ethernet to connect to the network.
Choose this option to connect with Ethernet
if EXAMPLE_CONNECT_ETHERNET
config EXAMPLE_ETHERNET_EMAC_TASK_STACK_SIZE
int "emac_rx task stack size"
default 2048
help
This set stack size for emac_rx task
config EXAMPLE_USE_SPI_ETHERNET
bool
choice EXAMPLE_ETHERNET_TYPE
prompt "Ethernet Type"
default EXAMPLE_USE_INTERNAL_ETHERNET if SOC_EMAC_SUPPORTED
default EXAMPLE_USE_W5500
help
Select which kind of Ethernet will be used in the example.
config EXAMPLE_USE_INTERNAL_ETHERNET
depends on SOC_EMAC_SUPPORTED
select ETH_USE_ESP32_EMAC
bool "Internal EMAC"
help
Select internal Ethernet MAC controller.
config EXAMPLE_USE_DM9051
bool "DM9051 Module"
select EXAMPLE_USE_SPI_ETHERNET
select ETH_USE_SPI_ETHERNET
select ETH_SPI_ETHERNET_DM9051
help
Select external SPI-Ethernet module.
config EXAMPLE_USE_W5500
bool "W5500 Module"
select EXAMPLE_USE_SPI_ETHERNET
select ETH_USE_SPI_ETHERNET
select ETH_SPI_ETHERNET_W5500
help
Select external SPI-Ethernet module (W5500).
config EXAMPLE_USE_OPENETH
bool "OpenCores Ethernet MAC (EXPERIMENTAL)"
select ETH_USE_OPENETH
help
When this option is enabled, the example is built with support for
OpenCores Ethernet MAC, which allows testing the example in QEMU.
Note that this option is used for internal testing purposes, and
not officially supported. Examples built with this option enabled
will not run on a real ESP32 chip.
endchoice # EXAMPLE_ETHERNET_TYPE
if EXAMPLE_USE_INTERNAL_ETHERNET
choice EXAMPLE_ETH_PHY_MODEL
prompt "Ethernet PHY Device"
default EXAMPLE_ETH_PHY_IP101
help
Select the Ethernet PHY device to use in the example.
config EXAMPLE_ETH_PHY_IP101
bool "IP101"
help
IP101 is a single port 10/100 MII/RMII/TP/Fiber Fast Ethernet Transceiver.
Goto http://www.icplus.com.tw/pp-IP101G.html for more information about it.
config EXAMPLE_ETH_PHY_RTL8201
bool "RTL8201/SR8201"
help
RTL8201F/SR8201F is a single port 10/100Mb Ethernet Transceiver with auto MDIX.
Goto http://www.corechip-sz.com/productsview.asp?id=22 for more information about it.
config EXAMPLE_ETH_PHY_LAN87XX
bool "LAN87xx"
help
Below chips are supported:
LAN8710A is a small footprint MII/RMII 10/100 Ethernet Transceiver with HP Auto-MDIX and
flexPWR® Technology.
LAN8720A is a small footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX Support.
LAN8740A/LAN8741A is a small footprint MII/RMII 10/100 Energy Efficient Ethernet Transceiver
with HP Auto-MDIX and flexPWR® Technology.
LAN8742A is a small footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX and
flexPWR® Technology.
Goto https://www.microchip.com for more information about them.
config EXAMPLE_ETH_PHY_DP83848
bool "DP83848"
help
DP83848 is a single port 10/100Mb/s Ethernet Physical Layer Transceiver.
Goto http://www.ti.com/product/DP83848J for more information about it.
config EXAMPLE_ETH_PHY_KSZ80XX
bool "KSZ80xx"
help
With the KSZ80xx series, Microchip offers single-chip 10BASE-T/100BASE-TX
Ethernet Physical Layer Transceivers (PHY).
The following chips are supported: KSZ8001, KSZ8021, KSZ8031, KSZ8041,
KSZ8051, KSZ8061, KSZ8081, KSZ8091
Goto https://www.microchip.com for more information about them.
endchoice
config EXAMPLE_ETH_MDC_GPIO
int "SMI MDC GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 23 if IDF_TARGET_ESP32
default 31 if IDF_TARGET_ESP32P4
help
Set the GPIO number used by SMI MDC.
config EXAMPLE_ETH_MDIO_GPIO
int "SMI MDIO GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 18 if IDF_TARGET_ESP32
default 27 if IDF_TARGET_ESP32P4
help
Set the GPIO number used by SMI MDIO.
endif
if EXAMPLE_USE_SPI_ETHERNET
config EXAMPLE_ETH_SPI_HOST
int "SPI Host Number"
range 0 2
default 1
help
Set the SPI host used to communicate with the SPI Ethernet Controller.
config EXAMPLE_ETH_SPI_SCLK_GPIO
int "SPI SCLK GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 14
help
Set the GPIO number used by SPI SCLK.
config EXAMPLE_ETH_SPI_MOSI_GPIO
int "SPI MOSI GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 13
help
Set the GPIO number used by SPI MOSI.
config EXAMPLE_ETH_SPI_MISO_GPIO
int "SPI MISO GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
default 12
help
Set the GPIO number used by SPI MISO.
config EXAMPLE_ETH_SPI_CS_GPIO
int "SPI CS GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 15
help
Set the GPIO number used by SPI CS.
config EXAMPLE_ETH_SPI_CLOCK_MHZ
int "SPI clock speed (MHz)"
range 5 80
default 36
help
Set the clock speed (MHz) of SPI interface.
config EXAMPLE_ETH_SPI_INT_GPIO
int "Interrupt GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
default 4
help
Set the GPIO number used by the SPI Ethernet module interrupt line.
endif # EXAMPLE_USE_SPI_ETHERNET
config EXAMPLE_ETH_PHY_RST_GPIO
int "PHY Reset GPIO number"
range -1 ENV_GPIO_OUT_RANGE_MAX
default 26 if IDF_TARGET_ESP32P4
default 5
help
Set the GPIO number used to reset PHY chip.
Set to -1 to disable PHY chip hardware reset.
config EXAMPLE_ETH_PHY_ADDR
int "PHY Address"
range 0 31 if EXAMPLE_USE_INTERNAL_ETHERNET
default 1
help
Set PHY address according your board schematic.
endif # EXAMPLE_CONNECT_ETHERNET
config EXAMPLE_CONNECT_PPP
bool "connect using Point to Point interface"
select LWIP_PPP_SUPPORT
help
Protocol examples can use PPP connection over serial line.
Choose this option to connect to the ppp server running
on your laptop over a serial line (either UART or USB ACM)
if EXAMPLE_CONNECT_PPP
choice EXAMPLE_CONNECT_PPP_DEVICE
prompt "Choose PPP device"
default EXAMPLE_CONNECT_PPP_DEVICE_USB
help
Select which peripheral to use to connect to the PPP server.
config EXAMPLE_CONNECT_PPP_DEVICE_USB
bool "USB"
depends on SOC_USB_OTG_SUPPORTED
select TINYUSB_CDC_ENABLED
help
Use USB ACM device.
config EXAMPLE_CONNECT_PPP_DEVICE_UART
bool "UART"
help
Use UART.
endchoice
menu "UART Configuration"
depends on EXAMPLE_CONNECT_PPP_DEVICE_UART
config EXAMPLE_CONNECT_UART_TX_PIN
int "TXD Pin Number"
default 4
range 0 31
help
Pin number of UART TX.
config EXAMPLE_CONNECT_UART_RX_PIN
int "RXD Pin Number"
default 5
range 0 31
help
Pin number of UART RX.
config EXAMPLE_CONNECT_UART_BAUDRATE
int "UART Baudrate"
default 115200
range 9600 3000000
help
Baudrate of the UART device
endmenu
config EXAMPLE_PPP_CONN_MAX_RETRY
int "Maximum retry"
default 6
help
Set the Maximum retry to avoid station reconnecting if the pppd
is not available
endif # EXAMPLE_CONNECT_PPP
config EXAMPLE_CONNECT_IPV4
bool
depends on LWIP_IPV4
default y
config EXAMPLE_CONNECT_IPV6
depends on EXAMPLE_CONNECT_WIFI || EXAMPLE_CONNECT_ETHERNET || EXAMPLE_CONNECT_PPP
bool "Obtain IPv6 address"
default y
select LWIP_IPV6
select LWIP_PPP_ENABLE_IPV6 if EXAMPLE_CONNECT_PPP
help
By default, examples will wait until IPv4 and IPv6 local link addresses are obtained.
Disable this option if the network does not support IPv6.
Choose the preferred IPv6 address type if the connection code should wait until other than
the local link address gets assigned.
Consider enabling IPv6 stateless address autoconfiguration (SLAAC) in the LWIP component.
if EXAMPLE_CONNECT_IPV6
choice EXAMPLE_CONNECT_PREFERRED_IPV6
prompt "Preferred IPv6 Type"
default EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK
help
Select which kind of IPv6 address the connect logic waits for.
config EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK
bool "Local Link Address"
help
Blocks until Local link address assigned.
config EXAMPLE_CONNECT_IPV6_PREF_GLOBAL
bool "Global Address"
help
Blocks until Global address assigned.
config EXAMPLE_CONNECT_IPV6_PREF_SITE_LOCAL
bool "Site Local Address"
help
Blocks until Site link address assigned.
config EXAMPLE_CONNECT_IPV6_PREF_UNIQUE_LOCAL
bool "Unique Local Link Address"
help
Blocks until Unique local address assigned.
endchoice
endif
endmenu

View File

@ -0,0 +1,58 @@
# protocol_example_connect
This component implements the most common connection methods for ESP32 boards. It should be used mainly in examples of ESP-IDF to demonstrate functionality of network protocols and other libraries, that need the connection step as a prerequisite.
## How to use this component
Choose the preferred interface (WiFi, Ethernet, PPPoS) to connect to the network and configure the interface.
It is possible to enable multiple interfaces simultaneously making the connection phase to block until all the chosen interfaces acquire IP addresses.
It is also possible to disable all interfaces, skipping the connection phase altogether.
### WiFi
Choose WiFi connection method (for chipsets that support it) and configure basic WiFi connection properties:
* WiFi SSID
* WiFI password
* Maximum connection retry (connection would be aborted if it doesn't succeed after specified number of retries)
* WiFi scan method (including RSSI and authorization mode threshold)
### Ethernet
Choose Ethernet connection if your board supports it. The most common settings is using Espressif Ethernet Kit, which is also the recommended HW for this selection. You can also select an SPI ethernet device (if your chipset doesn't support internal EMAC or if you prefer). It is also possible to use OpenCores Ethernet MAC if you're running the example under QEMU.
### PPP
Point to point connection method creates a simple IP tunnel to the counterpart device (running PPP server), typically a Linux machine with pppd service. We currently support only PPP over Serial (using UART or USB CDC). This is useful for simple testing of networking layers, but with some additional configuration on the server side, we could simulate standard model of internet connectivity. The PPP server could be also represented by a cellular modem device with pre-configured connectivity and already switched to PPP mode (this setup is not very flexible though, so we suggest using a standard modem library implementing commands and modes, e.g. [esp_modem](https://components.espressif.com/component/espressif/esp_modem) ).
> [!Note]
> Note that if you choose USB device, you have to manually add a dependency on `esp_tinyusb` component. This step is necessary to keep the `protocol_example_connect` component simple and dependency free. Please run this command from your project location to add the dependency:
> ```bash
> idf.py add-dependency espressif/esp_tinyusb^1
> ```
#### Setup a PPP server
Connect the board using UART or USB and note the device name, which would be typically:
* `/dev/ttyACMx` for USB devices
* `/dev/ttyUSBx` for UART devices
Run the pppd server:
```bash
sudo pppd /dev/ttyACM0 115200 192.168.11.1:192.168.11.2 ms-dns 8.8.8.8 modem local noauth debug nocrtscts nodetach +ipv6
```
Please update the parameters with the correct serial device, baud rate, IP addresses, DNS server, use `+ipv6` if `EXAMPLE_CONNECT_IPV6=y`.
#### Connection to outside
In order to access other network endpoints, we have to configure some IP/translation rules. The easiest method is to setup a masquerade of the PPPD created interface (`ppp0`) to your default networking interface (`${ETH0}`). Here is an example of such rule:
```bash
sudo iptables -t nat -A POSTROUTING -o ${ETH0} -j MASQUERADE
sudo iptables -A FORWARD -i ${ETH0} -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i ppp0 -o ${ETH0} -j ACCEPT
```

View File

@ -0,0 +1,69 @@
#include <string.h>
#include "esp_system.h"
#include "esp_log.h"
#include "esp_netif.h"
#include "protocol_examples_common.h"
#include "lwip/sockets.h"
#include <lwip/netdb.h>
#include <arpa/inet.h>
#define HOST_IP_SIZE 128
esp_err_t get_addr_from_stdin(int port, int sock_type, int *ip_protocol, int *addr_family, struct sockaddr_storage *dest_addr)
{
char host_ip[HOST_IP_SIZE];
int len;
static bool already_init = false;
// this function could be called multiple times -> make sure UART init runs only once
if (!already_init) {
example_configure_stdin_stdout();
already_init = true;
}
// ignore empty or LF only string (could receive from DUT class)
do {
fgets(host_ip, HOST_IP_SIZE, stdin);
len = strlen(host_ip);
} while (len<=1 && host_ip[0] == '\n');
host_ip[len - 1] = '\0';
struct addrinfo hints, *addr_list, *cur;
memset( &hints, 0, sizeof( hints ) );
// run getaddrinfo() to decide on the IP protocol
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = sock_type;
hints.ai_protocol = IPPROTO_TCP;
if( getaddrinfo( host_ip, NULL, &hints, &addr_list ) != 0 ) {
return ESP_FAIL;
}
for( cur = addr_list; cur != NULL; cur = cur->ai_next ) {
memcpy(dest_addr, cur->ai_addr, sizeof(*dest_addr));
#if CONFIG_EXAMPLE_CONNECT_IPV4
if (cur->ai_family == AF_INET) {
*ip_protocol = IPPROTO_IP;
*addr_family = AF_INET;
// add port number and return on first IPv4 match
((struct sockaddr_in*)dest_addr)->sin_port = htons(port);
freeaddrinfo( addr_list );
return ESP_OK;
}
#endif // IPV4
#if CONFIG_EXAMPLE_CONNECT_IPV6
if (cur->ai_family == AF_INET6) {
*ip_protocol = IPPROTO_IPV6;
*addr_family = AF_INET6;
// add port and interface number and return on first IPv6 match
((struct sockaddr_in6*)dest_addr)->sin6_port = htons(port);
((struct sockaddr_in6*)dest_addr)->sin6_scope_id = esp_netif_get_netif_impl_index(EXAMPLE_INTERFACE);
freeaddrinfo( addr_list );
return ESP_OK;
}
#endif // IPV6
}
// no match found
freeaddrinfo( addr_list );
return ESP_FAIL;
}

View File

@ -0,0 +1,138 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
#include <string.h>
#include "protocol_examples_common.h"
#include "example_common_private.h"
#include "sdkconfig.h"
#include "esp_event.h"
#include "esp_wifi.h"
#include "esp_wifi_default.h"
#include "esp_log.h"
#include "esp_netif.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
#include "lwip/err.h"
#include "lwip/sys.h"
static const char *TAG = "example_common";
#if CONFIG_EXAMPLE_CONNECT_IPV6
/* types of ipv6 addresses to be displayed on ipv6 events */
const char *example_ipv6_addr_types_to_str[6] = {
"ESP_IP6_ADDR_IS_UNKNOWN",
"ESP_IP6_ADDR_IS_GLOBAL",
"ESP_IP6_ADDR_IS_LINK_LOCAL",
"ESP_IP6_ADDR_IS_SITE_LOCAL",
"ESP_IP6_ADDR_IS_UNIQUE_LOCAL",
"ESP_IP6_ADDR_IS_IPV4_MAPPED_IPV6"
};
#endif
/**
* @brief Checks the netif description if it contains specified prefix.
* All netifs created withing common connect component are prefixed with the module TAG,
* so it returns true if the specified netif is owned by this module
*/
bool example_is_our_netif(const char *prefix, esp_netif_t *netif)
{
return strncmp(prefix, esp_netif_get_desc(netif), strlen(prefix) - 1) == 0;
}
static bool netif_desc_matches_with(esp_netif_t *netif, void *ctx)
{
return strcmp(ctx, esp_netif_get_desc(netif)) == 0;
}
esp_netif_t *get_example_netif_from_desc(const char *desc)
{
return esp_netif_find_if(netif_desc_matches_with, (void*)desc);
}
static esp_err_t print_all_ips_tcpip(void* ctx)
{
const char *prefix = ctx;
// iterate over active interfaces, and print out IPs of "our" netifs
esp_netif_t *netif = NULL;
while ((netif = esp_netif_next_unsafe(netif)) != NULL) {
if (example_is_our_netif(prefix, netif)) {
ESP_LOGI(TAG, "Connected to %s", esp_netif_get_desc(netif));
#if CONFIG_LWIP_IPV4
esp_netif_ip_info_t ip;
ESP_ERROR_CHECK(esp_netif_get_ip_info(netif, &ip));
ESP_LOGI(TAG, "- IPv4 address: " IPSTR ",", IP2STR(&ip.ip));
#endif
#if CONFIG_EXAMPLE_CONNECT_IPV6
esp_ip6_addr_t ip6[MAX_IP6_ADDRS_PER_NETIF];
int ip6_addrs = esp_netif_get_all_ip6(netif, ip6);
for (int j = 0; j < ip6_addrs; ++j) {
esp_ip6_addr_type_t ipv6_type = esp_netif_ip6_get_addr_type(&(ip6[j]));
ESP_LOGI(TAG, "- IPv6 address: " IPV6STR ", type: %s", IPV62STR(ip6[j]), example_ipv6_addr_types_to_str[ipv6_type]);
}
#endif
}
}
return ESP_OK;
}
void example_print_all_netif_ips(const char *prefix)
{
// Print all IPs in TCPIP context to avoid potential races of removing/adding netifs when iterating over the list
esp_netif_tcpip_exec(print_all_ips_tcpip, (void*) prefix);
}
esp_err_t example_connect(void)
{
#if CONFIG_EXAMPLE_CONNECT_ETHERNET
if (example_ethernet_connect() != ESP_OK) {
return ESP_FAIL;
}
ESP_ERROR_CHECK(esp_register_shutdown_handler(&example_ethernet_shutdown));
#endif
#if CONFIG_EXAMPLE_CONNECT_WIFI
if (example_wifi_connect() != ESP_OK) {
return ESP_FAIL;
}
ESP_ERROR_CHECK(esp_register_shutdown_handler(&example_wifi_shutdown));
#endif
#if CONFIG_EXAMPLE_CONNECT_PPP
if (example_ppp_connect() != ESP_OK) {
return ESP_FAIL;
}
ESP_ERROR_CHECK(esp_register_shutdown_handler(&example_ppp_shutdown));
#endif
#if CONFIG_EXAMPLE_CONNECT_ETHERNET
example_print_all_netif_ips(EXAMPLE_NETIF_DESC_ETH);
#endif
#if CONFIG_EXAMPLE_CONNECT_WIFI
example_print_all_netif_ips(EXAMPLE_NETIF_DESC_STA);
#endif
#if CONFIG_EXAMPLE_CONNECT_PPP
example_print_all_netif_ips(EXAMPLE_NETIF_DESC_PPP);
#endif
return ESP_OK;
}
esp_err_t example_disconnect(void)
{
#if CONFIG_EXAMPLE_CONNECT_ETHERNET
example_ethernet_shutdown();
ESP_ERROR_CHECK(esp_unregister_shutdown_handler(&example_ethernet_shutdown));
#endif
#if CONFIG_EXAMPLE_CONNECT_WIFI
example_wifi_shutdown();
ESP_ERROR_CHECK(esp_unregister_shutdown_handler(&example_wifi_shutdown));
#endif
return ESP_OK;
}

View File

@ -0,0 +1,87 @@
/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
#include <string.h>
#include "protocol_examples_common.h"
#include "example_common_private.h"
#include "esp_wifi.h"
#include "esp_log.h"
#include "esp_console.h"
#include "argtable3/argtable3.h"
static const char *TAG = "example_console";
typedef struct {
struct arg_str *ssid;
struct arg_str *password;
struct arg_int *channel;
struct arg_end *end;
} wifi_connect_args_t;
static wifi_connect_args_t connect_args;
static int cmd_do_wifi_connect(int argc, char **argv)
{
int nerrors = arg_parse(argc, argv, (void **) &connect_args);
if (nerrors != 0) {
arg_print_errors(stderr, connect_args.end, argv[0]);
return 1;
}
wifi_config_t wifi_config = {
.sta = {
.scan_method = WIFI_ALL_CHANNEL_SCAN,
.sort_method = WIFI_CONNECT_AP_BY_SIGNAL,
},
};
if (connect_args.channel->count > 0) {
wifi_config.sta.channel = (uint8_t)(connect_args.channel->ival[0]);
}
const char *ssid = connect_args.ssid->sval[0];
const char *pass = connect_args.password->sval[0];
strlcpy((char *) wifi_config.sta.ssid, ssid, sizeof(wifi_config.sta.ssid));
if (pass) {
strlcpy((char *) wifi_config.sta.password, pass, sizeof(wifi_config.sta.password));
}
example_wifi_sta_do_connect(wifi_config, false);
return 0;
}
static int cmd_do_wifi_disconnect(int argc, char **argv)
{
example_wifi_sta_do_disconnect();
return 0;
}
void example_register_wifi_connect_commands(void)
{
ESP_LOGI(TAG, "Registering WiFi connect commands.");
example_wifi_start();
connect_args.ssid = arg_str1(NULL, NULL, "<ssid>", "SSID of AP");
connect_args.password = arg_str0(NULL, NULL, "<pass>", "password of AP");
connect_args.channel = arg_int0("n", "channel", "<channel>", "channel of AP");
connect_args.end = arg_end(2);
const esp_console_cmd_t wifi_connect_cmd = {
.command = "wifi_connect",
.help = "WiFi is station mode, join specified soft-AP",
.hint = NULL,
.func = &cmd_do_wifi_connect,
.argtable = &connect_args
};
ESP_ERROR_CHECK( esp_console_cmd_register(&wifi_connect_cmd) );
const esp_console_cmd_t wifi_disconnect_cmd = {
.command = "wifi_disconnect",
.help = "Do wifi disconnect",
.hint = NULL,
.func = &cmd_do_wifi_disconnect,
};
ESP_ERROR_CHECK( esp_console_cmd_register(&wifi_disconnect_cmd) );
}

View File

@ -0,0 +1,241 @@
/*
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
#include <string.h>
#include "protocol_examples_common.h"
#include "example_common_private.h"
#include "esp_event.h"
#include "esp_eth.h"
#if CONFIG_ETH_USE_SPI_ETHERNET
#include "driver/spi_master.h"
#endif // CONFIG_ETH_USE_SPI_ETHERNET
#include "esp_log.h"
#include "esp_mac.h"
#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
static const char *TAG = "ethernet_connect";
static SemaphoreHandle_t s_semph_get_ip_addrs = NULL;
#if CONFIG_EXAMPLE_CONNECT_IPV6
static SemaphoreHandle_t s_semph_get_ip6_addrs = NULL;
#endif
static esp_netif_t *eth_start(void);
static void eth_stop(void);
/** Event handler for Ethernet events */
static void eth_on_got_ip(void *arg, esp_event_base_t event_base,
int32_t event_id, void *event_data)
{
ip_event_got_ip_t *event = (ip_event_got_ip_t *)event_data;
if (!example_is_our_netif(EXAMPLE_NETIF_DESC_ETH, event->esp_netif)) {
return;
}
ESP_LOGI(TAG, "Got IPv4 event: Interface \"%s\" address: " IPSTR, esp_netif_get_desc(event->esp_netif), IP2STR(&event->ip_info.ip));
xSemaphoreGive(s_semph_get_ip_addrs);
}
#if CONFIG_EXAMPLE_CONNECT_IPV6
static void eth_on_got_ipv6(void *arg, esp_event_base_t event_base,
int32_t event_id, void *event_data)
{
ip_event_got_ip6_t *event = (ip_event_got_ip6_t *)event_data;
if (!example_is_our_netif(EXAMPLE_NETIF_DESC_ETH, event->esp_netif)) {
return;
}
esp_ip6_addr_type_t ipv6_type = esp_netif_ip6_get_addr_type(&event->ip6_info.ip);
ESP_LOGI(TAG, "Got IPv6 event: Interface \"%s\" address: " IPV6STR ", type: %s", esp_netif_get_desc(event->esp_netif),
IPV62STR(event->ip6_info.ip), example_ipv6_addr_types_to_str[ipv6_type]);
if (ipv6_type == EXAMPLE_CONNECT_PREFERRED_IPV6_TYPE) {
xSemaphoreGive(s_semph_get_ip6_addrs);
}
}
static void on_eth_event(void *esp_netif, esp_event_base_t event_base,
int32_t event_id, void *event_data)
{
switch (event_id) {
case ETHERNET_EVENT_CONNECTED:
ESP_LOGI(TAG, "Ethernet Link Up");
ESP_ERROR_CHECK(esp_netif_create_ip6_linklocal(esp_netif));
break;
default:
break;
}
}
#endif // CONFIG_EXAMPLE_CONNECT_IPV6
static esp_eth_handle_t s_eth_handle = NULL;
static esp_eth_mac_t *s_mac = NULL;
static esp_eth_phy_t *s_phy = NULL;
static esp_eth_netif_glue_handle_t s_eth_glue = NULL;
static esp_netif_t *eth_start(void)
{
esp_netif_inherent_config_t esp_netif_config = ESP_NETIF_INHERENT_DEFAULT_ETH();
// Warning: the interface desc is used in tests to capture actual connection details (IP, gw, mask)
esp_netif_config.if_desc = EXAMPLE_NETIF_DESC_ETH;
esp_netif_config.route_prio = 64;
esp_netif_config_t netif_config = {
.base = &esp_netif_config,
.stack = ESP_NETIF_NETSTACK_DEFAULT_ETH
};
esp_netif_t *netif = esp_netif_new(&netif_config);
assert(netif);
eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG();
mac_config.rx_task_stack_size = CONFIG_EXAMPLE_ETHERNET_EMAC_TASK_STACK_SIZE;
eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG();
phy_config.phy_addr = CONFIG_EXAMPLE_ETH_PHY_ADDR;
phy_config.reset_gpio_num = CONFIG_EXAMPLE_ETH_PHY_RST_GPIO;
#if CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET
eth_esp32_emac_config_t esp32_emac_config = ETH_ESP32_EMAC_DEFAULT_CONFIG();
esp32_emac_config.smi_gpio.mdc_num = CONFIG_EXAMPLE_ETH_MDC_GPIO;
esp32_emac_config.smi_gpio.mdio_num = CONFIG_EXAMPLE_ETH_MDIO_GPIO;
s_mac = esp_eth_mac_new_esp32(&esp32_emac_config, &mac_config);
#if CONFIG_EXAMPLE_ETH_PHY_IP101
s_phy = esp_eth_phy_new_ip101(&phy_config);
#elif CONFIG_EXAMPLE_ETH_PHY_RTL8201
s_phy = esp_eth_phy_new_rtl8201(&phy_config);
#elif CONFIG_EXAMPLE_ETH_PHY_LAN87XX
s_phy = esp_eth_phy_new_lan87xx(&phy_config);
#elif CONFIG_EXAMPLE_ETH_PHY_DP83848
s_phy = esp_eth_phy_new_dp83848(&phy_config);
#elif CONFIG_EXAMPLE_ETH_PHY_KSZ80XX
s_phy = esp_eth_phy_new_ksz80xx(&phy_config);
#endif
#elif CONFIG_EXAMPLE_USE_SPI_ETHERNET
gpio_install_isr_service(0);
spi_bus_config_t buscfg = {
.miso_io_num = CONFIG_EXAMPLE_ETH_SPI_MISO_GPIO,
.mosi_io_num = CONFIG_EXAMPLE_ETH_SPI_MOSI_GPIO,
.sclk_io_num = CONFIG_EXAMPLE_ETH_SPI_SCLK_GPIO,
.quadwp_io_num = -1,
.quadhd_io_num = -1,
};
ESP_ERROR_CHECK(spi_bus_initialize(CONFIG_EXAMPLE_ETH_SPI_HOST, &buscfg, SPI_DMA_CH_AUTO));
spi_device_interface_config_t spi_devcfg = {
.mode = 0,
.clock_speed_hz = CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ * 1000 * 1000,
.spics_io_num = CONFIG_EXAMPLE_ETH_SPI_CS_GPIO,
.queue_size = 20
};
#if CONFIG_EXAMPLE_USE_DM9051
/* dm9051 ethernet driver is based on spi driver */
eth_dm9051_config_t dm9051_config = ETH_DM9051_DEFAULT_CONFIG(CONFIG_EXAMPLE_ETH_SPI_HOST, &spi_devcfg);
dm9051_config.int_gpio_num = CONFIG_EXAMPLE_ETH_SPI_INT_GPIO;
s_mac = esp_eth_mac_new_dm9051(&dm9051_config, &mac_config);
s_phy = esp_eth_phy_new_dm9051(&phy_config);
#elif CONFIG_EXAMPLE_USE_W5500
/* w5500 ethernet driver is based on spi driver */
eth_w5500_config_t w5500_config = ETH_W5500_DEFAULT_CONFIG(CONFIG_EXAMPLE_ETH_SPI_HOST, &spi_devcfg);
w5500_config.int_gpio_num = CONFIG_EXAMPLE_ETH_SPI_INT_GPIO;
s_mac = esp_eth_mac_new_w5500(&w5500_config, &mac_config);
s_phy = esp_eth_phy_new_w5500(&phy_config);
#endif
#elif CONFIG_EXAMPLE_USE_OPENETH
phy_config.autonego_timeout_ms = 100;
s_mac = esp_eth_mac_new_openeth(&mac_config);
s_phy = esp_eth_phy_new_dp83848(&phy_config);
#endif
// Install Ethernet driver
esp_eth_config_t config = ETH_DEFAULT_CONFIG(s_mac, s_phy);
ESP_ERROR_CHECK(esp_eth_driver_install(&config, &s_eth_handle));
#if !CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET
/* The SPI Ethernet module might doesn't have a burned factory MAC address, we cat to set it manually.
We set the ESP_MAC_ETH mac address as the default, if you want to use ESP_MAC_EFUSE_CUSTOM mac address, please enable the
configuration: `ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC`
*/
uint8_t eth_mac[6] = {0};
ESP_ERROR_CHECK(esp_read_mac(eth_mac, ESP_MAC_ETH));
ESP_ERROR_CHECK(esp_eth_ioctl(s_eth_handle, ETH_CMD_S_MAC_ADDR, eth_mac));
#endif
// combine driver with netif
s_eth_glue = esp_eth_new_netif_glue(s_eth_handle);
esp_netif_attach(netif, s_eth_glue);
// Register user defined event handers
ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_ETH_GOT_IP, &eth_on_got_ip, NULL));
#ifdef CONFIG_EXAMPLE_CONNECT_IPV6
ESP_ERROR_CHECK(esp_event_handler_register(ETH_EVENT, ETHERNET_EVENT_CONNECTED, &on_eth_event, netif));
ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_GOT_IP6, &eth_on_got_ipv6, NULL));
#endif
esp_eth_start(s_eth_handle);
return netif;
}
static void eth_stop(void)
{
esp_netif_t *eth_netif = get_example_netif_from_desc(EXAMPLE_NETIF_DESC_ETH);
ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_ETH_GOT_IP, &eth_on_got_ip));
#if CONFIG_EXAMPLE_CONNECT_IPV6
ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_GOT_IP6, &eth_on_got_ipv6));
ESP_ERROR_CHECK(esp_event_handler_unregister(ETH_EVENT, ETHERNET_EVENT_CONNECTED, &on_eth_event));
#endif
ESP_ERROR_CHECK(esp_eth_stop(s_eth_handle));
ESP_ERROR_CHECK(esp_eth_del_netif_glue(s_eth_glue));
ESP_ERROR_CHECK(esp_eth_driver_uninstall(s_eth_handle));
s_eth_handle = NULL;
ESP_ERROR_CHECK(s_phy->del(s_phy));
ESP_ERROR_CHECK(s_mac->del(s_mac));
esp_netif_destroy(eth_netif);
}
esp_eth_handle_t get_example_eth_handle(void)
{
return s_eth_handle;
}
/* tear down connection, release resources */
void example_ethernet_shutdown(void)
{
if (s_semph_get_ip_addrs == NULL) {
return;
}
vSemaphoreDelete(s_semph_get_ip_addrs);
s_semph_get_ip_addrs = NULL;
#if CONFIG_EXAMPLE_CONNECT_IPV6
vSemaphoreDelete(s_semph_get_ip6_addrs);
s_semph_get_ip6_addrs = NULL;
#endif
eth_stop();
}
esp_err_t example_ethernet_connect(void)
{
#if CONFIG_EXAMPLE_CONNECT_IPV4
s_semph_get_ip_addrs = xSemaphoreCreateBinary();
if (s_semph_get_ip_addrs == NULL) {
return ESP_ERR_NO_MEM;
}
#endif
#if CONFIG_EXAMPLE_CONNECT_IPV6
s_semph_get_ip6_addrs = xSemaphoreCreateBinary();
if (s_semph_get_ip6_addrs == NULL) {
vSemaphoreDelete(s_semph_get_ip_addrs);
return ESP_ERR_NO_MEM;
}
#endif
eth_start();
ESP_LOGI(TAG, "Waiting for IP(s).");
#if CONFIG_EXAMPLE_CONNECT_IPV4
xSemaphoreTake(s_semph_get_ip_addrs, portMAX_DELAY);
#endif
#if CONFIG_EXAMPLE_CONNECT_IPV6
xSemaphoreTake(s_semph_get_ip6_addrs, portMAX_DELAY);
#endif
return ESP_OK;
}

View File

@ -0,0 +1,44 @@
/* Common utilities for socket address input interface:
The API get_addr_from_stdin() is mainly used by socket client examples which read IP address from stdin (if configured).
This option is typically used in the CI, but could be enabled in the project configuration.
In that case this component is used to receive a string that is evaluated and processed to output
socket structures to open a connectio
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#pragma once
#include "lwip/sys.h"
#include <lwip/netdb.h>
#include <arpa/inet.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Read and evaluate IP address from stdin
*
* This API reads stdin and parses the input address using getaddrinfo()
* to fill in struct sockaddr_storage (for both IPv4 and IPv6) used to open
* a socket. IP protocol is guessed from the IP address string.
*
* @param[in] port port number of expected connection
* @param[in] sock_type expected protocol: SOCK_STREAM or SOCK_DGRAM
* @param[out] ip_protocol resultant IP protocol: IPPROTO_IP or IPPROTO_IP6
* @param[out] addr_family resultant address family: AF_INET or AF_INET6
* @param[out] dest_addr sockaddr_storage structure (for both IPv4 and IPv6)
* @return ESP_OK on success, ESP_FAIL otherwise
*/
esp_err_t get_addr_from_stdin(int port, int sock_type,
int *ip_protocol,
int *addr_family,
struct sockaddr_storage *dest_addr);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,56 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
/* Private Funtions of protocol example common */
#pragma once
#include "esp_err.h"
#include "esp_wifi.h"
#include "sdkconfig.h"
#ifdef __cplusplus
extern "C" {
#endif
#if CONFIG_EXAMPLE_CONNECT_IPV6
#define MAX_IP6_ADDRS_PER_NETIF (5)
#if defined(CONFIG_EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK)
#define EXAMPLE_CONNECT_PREFERRED_IPV6_TYPE ESP_IP6_ADDR_IS_LINK_LOCAL
#elif defined(CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL)
#define EXAMPLE_CONNECT_PREFERRED_IPV6_TYPE ESP_IP6_ADDR_IS_GLOBAL
#elif defined(CONFIG_EXAMPLE_CONNECT_IPV6_PREF_SITE_LOCAL)
#define EXAMPLE_CONNECT_PREFERRED_IPV6_TYPE ESP_IP6_ADDR_IS_SITE_LOCAL
#elif defined(CONFIG_EXAMPLE_CONNECT_IPV6_PREF_UNIQUE_LOCAL)
#define EXAMPLE_CONNECT_PREFERRED_IPV6_TYPE ESP_IP6_ADDR_IS_UNIQUE_LOCAL
#endif // if-elif CONFIG_EXAMPLE_CONNECT_IPV6_PREF_...
#endif
#if CONFIG_EXAMPLE_CONNECT_IPV6
extern const char *example_ipv6_addr_types_to_str[6];
#endif
void example_wifi_start(void);
void example_wifi_stop(void);
esp_err_t example_wifi_sta_do_connect(wifi_config_t wifi_config, bool wait);
esp_err_t example_wifi_sta_do_disconnect(void);
bool example_is_our_netif(const char *prefix, esp_netif_t *netif);
void example_print_all_netif_ips(const char *prefix);
void example_wifi_shutdown(void);
esp_err_t example_wifi_connect(void);
void example_ethernet_shutdown(void);
esp_err_t example_ethernet_connect(void);
esp_err_t example_ppp_connect(void);
void example_ppp_start(void);
void example_ppp_shutdown(void);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,147 @@
/* Common functions for protocol examples, to establish Wi-Fi or Ethernet connection.
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#pragma once
#include "sdkconfig.h"
#include "esp_err.h"
#if !CONFIG_IDF_TARGET_LINUX
#include "esp_netif.h"
#if CONFIG_EXAMPLE_CONNECT_ETHERNET
#include "esp_eth.h"
#endif
#endif // !CONFIG_IDF_TARGET_LINUX
#ifdef __cplusplus
extern "C" {
#endif
#if !CONFIG_IDF_TARGET_LINUX
#if CONFIG_EXAMPLE_CONNECT_WIFI
#define EXAMPLE_NETIF_DESC_STA "example_netif_sta"
#endif
#if CONFIG_EXAMPLE_CONNECT_ETHERNET
#define EXAMPLE_NETIF_DESC_ETH "example_netif_eth"
#endif
#if CONFIG_EXAMPLE_CONNECT_PPP
#define EXAMPLE_NETIF_DESC_PPP "example_netif_ppp"
#endif
#if CONFIG_EXAMPLE_WIFI_SCAN_METHOD_FAST
#define EXAMPLE_WIFI_SCAN_METHOD WIFI_FAST_SCAN
#elif CONFIG_EXAMPLE_WIFI_SCAN_METHOD_ALL_CHANNEL
#define EXAMPLE_WIFI_SCAN_METHOD WIFI_ALL_CHANNEL_SCAN
#endif
#if CONFIG_EXAMPLE_WIFI_CONNECT_AP_BY_SIGNAL
#define EXAMPLE_WIFI_CONNECT_AP_SORT_METHOD WIFI_CONNECT_AP_BY_SIGNAL
#elif CONFIG_EXAMPLE_WIFI_CONNECT_AP_BY_SECURITY
#define EXAMPLE_WIFI_CONNECT_AP_SORT_METHOD WIFI_CONNECT_AP_BY_SECURITY
#endif
#if CONFIG_EXAMPLE_WIFI_AUTH_OPEN
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_OPEN
#elif CONFIG_EXAMPLE_WIFI_AUTH_WEP
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WEP
#elif CONFIG_EXAMPLE_WIFI_AUTH_WPA_PSK
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA_PSK
#elif CONFIG_EXAMPLE_WIFI_AUTH_WPA2_PSK
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA2_PSK
#elif CONFIG_EXAMPLE_WIFI_AUTH_WPA_WPA2_PSK
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA_WPA2_PSK
#elif CONFIG_EXAMPLE_WIFI_AUTH_WPA2_ENTERPRISE
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA2_ENTERPRISE
#elif CONFIG_EXAMPLE_WIFI_AUTH_WPA3_PSK
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA3_PSK
#elif CONFIG_EXAMPLE_WIFI_AUTH_WPA2_WPA3_PSK
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA2_WPA3_PSK
#elif CONFIG_EXAMPLE_WIFI_AUTH_WAPI_PSK
#define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WAPI_PSK
#endif
/* Example default interface, prefer the ethernet one if running in example-test (CI) configuration */
#if CONFIG_EXAMPLE_CONNECT_ETHERNET
#define EXAMPLE_INTERFACE get_example_netif_from_desc(EXAMPLE_NETIF_DESC_ETH)
#define get_example_netif() get_example_netif_from_desc(EXAMPLE_NETIF_DESC_ETH)
#elif CONFIG_EXAMPLE_CONNECT_WIFI
#define EXAMPLE_INTERFACE get_example_netif_from_desc(EXAMPLE_NETIF_DESC_STA)
#define get_example_netif() get_example_netif_from_desc(EXAMPLE_NETIF_DESC_STA)
#elif CONFIG_EXAMPLE_CONNECT_PPP
#define EXAMPLE_INTERFACE get_example_netif_from_desc(EXAMPLE_NETIF_DESC_PPP)
#define get_example_netif() get_example_netif_from_desc(EXAMPLE_NETIF_DESC_PPP)
#endif
/**
* @brief Configure Wi-Fi or Ethernet, connect, wait for IP
*
* This all-in-one helper function is used in protocols examples to
* reduce the amount of boilerplate in the example.
*
* It is not intended to be used in real world applications.
* See examples under examples/wifi/getting_started/ and examples/ethernet/
* for more complete Wi-Fi or Ethernet initialization code.
*
* Read "Establishing Wi-Fi or Ethernet Connection" section in
* examples/protocols/README.md for more information about this function.
*
* @return ESP_OK on successful connection
*/
esp_err_t example_connect(void);
/**
* Counterpart to example_connect, de-initializes Wi-Fi or Ethernet
*/
esp_err_t example_disconnect(void);
/**
* @brief Configure stdin and stdout to use blocking I/O
*
* This helper function is used in ASIO examples. It wraps installing the
* UART driver and configuring VFS layer to use UART driver for console I/O.
*/
esp_err_t example_configure_stdin_stdout(void);
/**
* @brief Returns esp-netif pointer created by example_connect() described by
* the supplied desc field
*
* @param desc Textual interface of created network interface, for example "sta"
* indicate default WiFi station, "eth" default Ethernet interface.
*
*/
esp_netif_t *get_example_netif_from_desc(const char *desc);
#if CONFIG_EXAMPLE_PROVIDE_WIFI_CONSOLE_CMD
/**
* @brief Register wifi connect commands
*
* Provide a simple wifi_connect command in esp_console.
* This function can be used after esp_console is initialized.
*/
void example_register_wifi_connect_commands(void);
#endif
#if CONFIG_EXAMPLE_CONNECT_ETHERNET
/**
* @brief Get the example Ethernet driver handle
*
* @return esp_eth_handle_t
*/
esp_eth_handle_t get_example_eth_handle(void);
#endif // CONFIG_EXAMPLE_CONNECT_ETHERNET
#else
static inline esp_err_t example_connect(void) {return ESP_OK;}
#endif // !CONFIG_IDF_TARGET_LINUX
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,49 @@
/*
* Utility functions for protocol examples
*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
#pragma once
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Encode an URI
*
* @param dest a destination memory location
* @param src the source string
* @param len the length of the source string
* @return uint32_t the count of escaped characters
*
* @note Please allocate the destination buffer keeping in mind that encoding a
* special character will take up 3 bytes (for '%' and two hex digits).
* In the worst-case scenario, the destination buffer will have to be 3 times
* that of the source string.
*/
uint32_t example_uri_encode(char *dest, const char *src, size_t len);
/**
* @brief Decode an URI
*
* @param dest a destination memory location
* @param src the source string
* @param len the length of the source string
*
* @note Please allocate the destination buffer keeping in mind that a decoded
* special character will take up 2 less bytes than its encoded form.
* In the worst-case scenario, the destination buffer will have to be
* the same size that of the source string.
*/
void example_uri_decode(char *dest, const char *src, size_t len);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,260 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
#include <string.h>
#include <stdint.h>
#include "sdkconfig.h"
#include "protocol_examples_common.h"
#include "example_common_private.h"
#if CONFIG_EXAMPLE_CONNECT_PPP
#include "esp_log.h"
#include "esp_netif.h"
#include "esp_netif_ppp.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#if CONFIG_EXAMPLE_CONNECT_PPP_DEVICE_USB
#include "tinyusb.h"
#include "tusb_cdc_acm.h"
static int s_itf;
static uint8_t buf[CONFIG_TINYUSB_CDC_RX_BUFSIZE];
#else // DEVICE is UART
#include "driver/uart.h"
#define BUF_SIZE (1024)
static bool s_stop_task = false;
#endif // CONNECT_PPP_DEVICE
static const char *TAG = "example_connect_ppp";
static int s_retry_num = 0;
static EventGroupHandle_t s_event_group = NULL;
static esp_netif_t *s_netif;
static const int GOT_IPV4 = BIT0;
static const int CONNECTION_FAILED = BIT1;
#if CONFIG_EXAMPLE_CONNECT_IPV6
static const int GOT_IPV6 = BIT2;
#define CONNECT_BITS (GOT_IPV4|GOT_IPV6|CONNECTION_FAILED)
#else
#define CONNECT_BITS (GOT_IPV4|CONNECTION_FAILED)
#endif
static esp_err_t transmit(void *h, void *buffer, size_t len)
{
ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_VERBOSE);
#if CONFIG_EXAMPLE_CONNECT_PPP_DEVICE_USB
tinyusb_cdcacm_write_queue(s_itf, buffer, len);
tinyusb_cdcacm_write_flush(s_itf, 0);
#else // DEVICE_UART
uart_write_bytes(UART_NUM_1, buffer, len);
#endif // CONNECT_PPP_DEVICE
return ESP_OK;
}
static esp_netif_driver_ifconfig_t driver_cfg = {
.handle = (void *)1, // singleton driver, just to != NULL
.transmit = transmit,
};
const esp_netif_driver_ifconfig_t *ppp_driver_cfg = &driver_cfg;
static void on_ip_event(void *arg, esp_event_base_t event_base,
int32_t event_id, void *event_data)
{
if (event_id == IP_EVENT_PPP_GOT_IP) {
ip_event_got_ip_t *event = (ip_event_got_ip_t *)event_data;
if (!example_is_our_netif(EXAMPLE_NETIF_DESC_PPP, event->esp_netif)) {
return;
}
esp_netif_t *netif = event->esp_netif;
esp_netif_dns_info_t dns_info;
ESP_LOGI(TAG, "Got IPv4 event: Interface \"%s\" address: " IPSTR, esp_netif_get_desc(event->esp_netif), IP2STR(&event->ip_info.ip));
esp_netif_get_dns_info(netif, ESP_NETIF_DNS_MAIN, &dns_info);
ESP_LOGI(TAG, "Main DNS server : " IPSTR, IP2STR(&dns_info.ip.u_addr.ip4));
xEventGroupSetBits(s_event_group, GOT_IPV4);
#if CONFIG_EXAMPLE_CONNECT_IPV6
} else if (event_id == IP_EVENT_GOT_IP6) {
ip_event_got_ip6_t *event = (ip_event_got_ip6_t *)event_data;
if (!example_is_our_netif(EXAMPLE_NETIF_DESC_PPP, event->esp_netif)) {
return;
}
esp_ip6_addr_type_t ipv6_type = esp_netif_ip6_get_addr_type(&event->ip6_info.ip);
ESP_LOGI(TAG, "Got IPv6 event: Interface \"%s\" address: " IPV6STR ", type: %s", esp_netif_get_desc(event->esp_netif),
IPV62STR(event->ip6_info.ip), example_ipv6_addr_types_to_str[ipv6_type]);
if (ipv6_type == EXAMPLE_CONNECT_PREFERRED_IPV6_TYPE) {
xEventGroupSetBits(s_event_group, GOT_IPV6);
}
#endif
} else if (event_id == IP_EVENT_PPP_LOST_IP) {
ESP_LOGI(TAG, "Disconnect from PPP Server");
s_retry_num++;
if (s_retry_num > CONFIG_EXAMPLE_PPP_CONN_MAX_RETRY) {
ESP_LOGE(TAG, "PPP Connection failed %d times, stop reconnecting.", s_retry_num);
xEventGroupSetBits(s_event_group, CONNECTION_FAILED);
} else {
ESP_LOGI(TAG, "PPP Connection failed %d times, try to reconnect.", s_retry_num);
esp_netif_action_start(s_netif, 0, 0, 0);
esp_netif_action_connected(s_netif, 0, 0, 0);
}
}
}
#if CONFIG_EXAMPLE_CONNECT_PPP_DEVICE_USB
static void cdc_rx_callback(int itf, cdcacm_event_t *event)
{
size_t rx_size = 0;
if (itf != s_itf) {
// Not our channel
return;
}
esp_err_t ret = tinyusb_cdcacm_read(itf, buf, CONFIG_TINYUSB_CDC_RX_BUFSIZE, &rx_size);
if (ret == ESP_OK) {
ESP_LOG_BUFFER_HEXDUMP(TAG, buf, rx_size, ESP_LOG_VERBOSE);
// pass the received data to the network interface
esp_netif_receive(s_netif, buf, rx_size, NULL);
} else {
ESP_LOGE(TAG, "Read error");
}
}
static void line_state_changed(int itf, cdcacm_event_t *event)
{
s_itf = itf; // use this channel for the netif communication
ESP_LOGI(TAG, "Line state changed on channel %d", itf);
}
#else // DEVICE is UART
static void ppp_task(void *args)
{
uart_config_t uart_config = {};
uart_config.baud_rate = CONFIG_EXAMPLE_CONNECT_UART_BAUDRATE;
uart_config.data_bits = UART_DATA_8_BITS;
uart_config.parity = UART_PARITY_DISABLE;
uart_config.stop_bits = UART_STOP_BITS_1;
uart_config.flow_ctrl = UART_HW_FLOWCTRL_DISABLE;
uart_config.source_clk = UART_SCLK_DEFAULT;
QueueHandle_t event_queue;
ESP_ERROR_CHECK(uart_driver_install(UART_NUM_1, BUF_SIZE, 0, 16, &event_queue, 0));
ESP_ERROR_CHECK(uart_param_config(UART_NUM_1, &uart_config));
ESP_ERROR_CHECK(uart_set_pin(UART_NUM_1, CONFIG_EXAMPLE_CONNECT_UART_TX_PIN, CONFIG_EXAMPLE_CONNECT_UART_RX_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));
ESP_ERROR_CHECK(uart_set_rx_timeout(UART_NUM_1, 1));
char *buffer = (char*)malloc(BUF_SIZE);
uart_event_t event;
esp_event_handler_register(IP_EVENT, IP_EVENT_PPP_GOT_IP, esp_netif_action_connected, s_netif);
esp_netif_action_start(s_netif, 0, 0, 0);
esp_netif_action_connected(s_netif, 0, 0, 0);
while (!s_stop_task) {
xQueueReceive(event_queue, &event, pdMS_TO_TICKS(1000));
if (event.type == UART_DATA) {
size_t len;
uart_get_buffered_data_len(UART_NUM_1, &len);
if (len) {
len = uart_read_bytes(UART_NUM_1, buffer, BUF_SIZE, 0);
ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_VERBOSE);
esp_netif_receive(s_netif, buffer, len, NULL);
}
} else {
ESP_LOGW(TAG, "Received UART event: %d", event.type);
}
}
free(buffer);
vTaskDelete(NULL);
}
#endif // CONNECT_PPP_DEVICE
esp_err_t example_ppp_connect(void)
{
ESP_LOGI(TAG, "Start example_connect.");
#if CONFIG_EXAMPLE_CONNECT_PPP_DEVICE_USB
ESP_LOGI(TAG, "USB initialization");
const tinyusb_config_t tusb_cfg = {
.device_descriptor = NULL,
.string_descriptor = NULL,
.external_phy = false,
.configuration_descriptor = NULL,
};
ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
tinyusb_config_cdcacm_t acm_cfg = {
.usb_dev = TINYUSB_USBDEV_0,
.cdc_port = TINYUSB_CDC_ACM_0,
.callback_rx = &cdc_rx_callback,
.callback_rx_wanted_char = NULL,
.callback_line_state_changed = NULL,
.callback_line_coding_changed = NULL
};
ESP_ERROR_CHECK(tusb_cdc_acm_init(&acm_cfg));
/* the second way to register a callback */
ESP_ERROR_CHECK(tinyusb_cdcacm_register_callback(
TINYUSB_CDC_ACM_0,
CDC_EVENT_LINE_STATE_CHANGED,
&line_state_changed));
#endif // CONFIG_EXAMPLE_CONNECT_PPP_DEVICE_USB
s_event_group = xEventGroupCreate();
ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, ESP_EVENT_ANY_ID, on_ip_event, NULL));
esp_netif_inherent_config_t base_netif_cfg = ESP_NETIF_INHERENT_DEFAULT_PPP();
base_netif_cfg.if_desc = EXAMPLE_NETIF_DESC_PPP;
esp_netif_config_t netif_ppp_config = { .base = &base_netif_cfg,
.driver = ppp_driver_cfg,
.stack = ESP_NETIF_NETSTACK_DEFAULT_PPP
};
s_netif = esp_netif_new(&netif_ppp_config);
assert(s_netif);
#if CONFIG_EXAMPLE_CONNECT_PPP_DEVICE_USB
esp_netif_action_start(s_netif, 0, 0, 0);
esp_netif_action_connected(s_netif, 0, 0, 0);
#else // DEVICE is UART
s_stop_task = false;
if (xTaskCreate(ppp_task, "ppp connect", 4096, NULL, 5, NULL) != pdTRUE) {
ESP_LOGE(TAG, "Failed to create a ppp connection task");
return ESP_FAIL;
}
#endif // CONNECT_PPP_DEVICE
ESP_LOGI(TAG, "Waiting for IP address");
EventBits_t bits = xEventGroupWaitBits(s_event_group, CONNECT_BITS, pdFALSE, pdFALSE, portMAX_DELAY);
if (bits & CONNECTION_FAILED) {
ESP_LOGE(TAG, "Connection failed!");
return ESP_FAIL;
}
ESP_LOGI(TAG, "Connected!");
return ESP_OK;
}
void example_ppp_shutdown(void)
{
ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, ESP_EVENT_ANY_ID, on_ip_event));
#if CONFIG_EXAMPLE_CONNECT_PPP_DEVICE_UART
s_stop_task = true;
vTaskDelay(pdMS_TO_TICKS(1000)); // wait for the ppp task to stop
#endif
esp_netif_action_disconnected(s_netif, 0, 0, 0);
vEventGroupDelete(s_event_group);
esp_netif_action_stop(s_netif, 0, 0, 0);
esp_netif_destroy(s_netif);
s_netif = NULL;
s_event_group = NULL;
}
#endif // CONFIG_EXAMPLE_CONNECT_PPP

View File

@ -0,0 +1,388 @@
/*
* Utility functions for protocol examples
*
* SPDX-FileCopyrightText: 2002-2021 Igor Sysoev
* 2011-2022 Nginx, Inc.
*
* SPDX-License-Identifier: BSD-2-Clause
*
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
*/
/*
* Copyright (C) 2002-2021 Igor Sysoev
* Copyright (C) 2011-2022 Nginx, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "protocol_examples_utils.h"
/* Type of Escape algorithms to be used */
#define NGX_ESCAPE_URI (0)
#define NGX_ESCAPE_ARGS (1)
#define NGX_ESCAPE_URI_COMPONENT (2)
#define NGX_ESCAPE_HTML (3)
#define NGX_ESCAPE_REFRESH (4)
#define NGX_ESCAPE_MEMCACHED (5)
#define NGX_ESCAPE_MAIL_AUTH (6)
/* Type of Unescape algorithms to be used */
#define NGX_UNESCAPE_URI (1)
#define NGX_UNESCAPE_REDIRECT (2)
uintptr_t ngx_escape_uri(u_char *dst, u_char *src, size_t size, unsigned int type)
{
unsigned int n;
uint32_t *escape;
static u_char hex[] = "0123456789ABCDEF";
/*
* Per RFC 3986 only the following chars are allowed in URIs unescaped:
*
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
* gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
* sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
* / "*" / "+" / "," / ";" / "="
*
* And "%" can appear as a part of escaping itself. The following
* characters are not allowed and need to be escaped: %00-%1F, %7F-%FF,
* " ", """, "<", ">", "\", "^", "`", "{", "|", "}".
*/
/* " ", "#", "%", "?", not allowed */
static uint32_t uri[] = {
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
/* ?>=< ;:98 7654 3210 /.-, +*)( '&%$ #"! */
0xd000002d, /* 1101 0000 0000 0000 0000 0000 0010 1101 */
/* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */
0x50000000, /* 0101 0000 0000 0000 0000 0000 0000 0000 */
/* ~}| {zyx wvut srqp onml kjih gfed cba` */
0xb8000001, /* 1011 1000 0000 0000 0000 0000 0000 0001 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff /* 1111 1111 1111 1111 1111 1111 1111 1111 */
};
/* " ", "#", "%", "&", "+", ";", "?", not allowed */
static uint32_t args[] = {
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
/* ?>=< ;:98 7654 3210 /.-, +*)( '&%$ #"! */
0xd800086d, /* 1101 1000 0000 0000 0000 1000 0110 1101 */
/* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */
0x50000000, /* 0101 0000 0000 0000 0000 0000 0000 0000 */
/* ~}| {zyx wvut srqp onml kjih gfed cba` */
0xb8000001, /* 1011 1000 0000 0000 0000 0000 0000 0001 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff /* 1111 1111 1111 1111 1111 1111 1111 1111 */
};
/* not ALPHA, DIGIT, "-", ".", "_", "~" */
static uint32_t uri_component[] = {
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
/* ?>=< ;:98 7654 3210 /.-, +*)( '&%$ #"! */
0xfc009fff, /* 1111 1100 0000 0000 1001 1111 1111 1111 */
/* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */
0x78000001, /* 0111 1000 0000 0000 0000 0000 0000 0001 */
/* ~}| {zyx wvut srqp onml kjih gfed cba` */
0xb8000001, /* 1011 1000 0000 0000 0000 0000 0000 0001 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff /* 1111 1111 1111 1111 1111 1111 1111 1111 */
};
/* " ", "#", """, "%", "'", not allowed */
static uint32_t html[] = {
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
/* ?>=< ;:98 7654 3210 /.-, +*)( '&%$ #"! */
0x500000ad, /* 0101 0000 0000 0000 0000 0000 1010 1101 */
/* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */
0x50000000, /* 0101 0000 0000 0000 0000 0000 0000 0000 */
/* ~}| {zyx wvut srqp onml kjih gfed cba` */
0xb8000001, /* 1011 1000 0000 0000 0000 0000 0000 0001 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff /* 1111 1111 1111 1111 1111 1111 1111 1111 */
};
/* " ", """, "'", not allowed */
static uint32_t refresh[] = {
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
/* ?>=< ;:98 7654 3210 /.-, +*)( '&%$ #"! */
0x50000085, /* 0101 0000 0000 0000 0000 0000 1000 0101 */
/* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */
0x50000000, /* 0101 0000 0000 0000 0000 0000 0000 0000 */
/* ~}| {zyx wvut srqp onml kjih gfed cba` */
0xd8000001, /* 1011 1000 0000 0000 0000 0000 0000 0001 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
0xffffffff /* 1111 1111 1111 1111 1111 1111 1111 1111 */
};
/* " ", "%", %00-%1F */
static uint32_t memcached[] = {
0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */
/* ?>=< ;:98 7654 3210 /.-, +*)( '&%$ #"! */
0x00000021, /* 0000 0000 0000 0000 0000 0000 0010 0001 */
/* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */
0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */
/* ~}| {zyx wvut srqp onml kjih gfed cba` */
0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */
0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */
0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */
0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */
0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */
};
/* mail_auth is the same as memcached */
static uint32_t *map[] =
{ uri, args, uri_component, html, refresh, memcached, memcached };
escape = map[type];
if (dst == NULL) {
/* find the number of the characters to be escaped */
n = 0;
while (size) {
if (escape[*src >> 5] & (1U << (*src & 0x1f))) {
n++;
}
src++;
size--;
}
return (uintptr_t) n;
}
while (size) {
if (escape[*src >> 5] & (1U << (*src & 0x1f))) {
*dst++ = '%';
*dst++ = hex[*src >> 4];
*dst++ = hex[*src & 0xf];
src++;
} else {
*dst++ = *src++;
}
size--;
}
return (uintptr_t) dst;
}
void ngx_unescape_uri(u_char **dst, u_char **src, size_t size, unsigned int type)
{
u_char *d, *s, ch, c, decoded;
enum {
sw_usual = 0,
sw_quoted,
sw_quoted_second
} state;
d = *dst;
s = *src;
state = 0;
decoded = 0;
while (size--) {
ch = *s++;
switch (state) {
case sw_usual:
if (ch == '?'
&& (type & (NGX_UNESCAPE_URI | NGX_UNESCAPE_REDIRECT))) {
*d++ = ch;
goto done;
}
if (ch == '%') {
state = sw_quoted;
break;
}
*d++ = ch;
break;
case sw_quoted:
if (ch >= '0' && ch <= '9') {
decoded = (u_char) (ch - '0');
state = sw_quoted_second;
break;
}
c = (u_char) (ch | 0x20);
if (c >= 'a' && c <= 'f') {
decoded = (u_char) (c - 'a' + 10);
state = sw_quoted_second;
break;
}
/* the invalid quoted character */
state = sw_usual;
*d++ = ch;
break;
case sw_quoted_second:
state = sw_usual;
if (ch >= '0' && ch <= '9') {
ch = (u_char) ((decoded << 4) + (ch - '0'));
if (type & NGX_UNESCAPE_REDIRECT) {
if (ch > '%' && ch < 0x7f) {
*d++ = ch;
break;
}
*d++ = '%'; *d++ = *(s - 2); *d++ = *(s - 1);
break;
}
*d++ = ch;
break;
}
c = (u_char) (ch | 0x20);
if (c >= 'a' && c <= 'f') {
ch = (u_char) ((decoded << 4) + (c - 'a') + 10);
if (type & NGX_UNESCAPE_URI) {
if (ch == '?') {
*d++ = ch;
goto done;
}
*d++ = ch;
break;
}
if (type & NGX_UNESCAPE_REDIRECT) {
if (ch == '?') {
*d++ = ch;
goto done;
}
if (ch > '%' && ch < 0x7f) {
*d++ = ch;
break;
}
*d++ = '%'; *d++ = *(s - 2); *d++ = *(s - 1);
break;
}
*d++ = ch;
break;
}
/* the invalid quoted character */
break;
}
}
done:
*dst = d;
*src = s;
}
uint32_t example_uri_encode(char *dest, const char *src, size_t len)
{
if (!src || !dest) {
return 0;
}
uintptr_t ret = ngx_escape_uri((unsigned char *)dest, (unsigned char *)src, len, NGX_ESCAPE_URI_COMPONENT);
return (uint32_t)(ret - (uintptr_t)dest);
}
void example_uri_decode(char *dest, const char *src, size_t len)
{
if (!src || !dest) {
return;
}
unsigned char *src_ptr = (unsigned char *)src;
unsigned char *dst_ptr = (unsigned char *)dest;
ngx_unescape_uri(&dst_ptr, &src_ptr, len, NGX_UNESCAPE_URI);
}

View File

@ -0,0 +1,34 @@
/* Common functions for protocol examples, to configure stdin and stdout.
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include "protocol_examples_common.h"
#include "esp_err.h"
#include "driver/uart_vfs.h"
#include "driver/uart.h"
#include "sdkconfig.h"
esp_err_t example_configure_stdin_stdout(void)
{
static bool configured = false;
if (configured) {
return ESP_OK;
}
// Initialize VFS & UART so we can use std::cout/cin
setvbuf(stdin, NULL, _IONBF, 0);
/* Install UART driver for interrupt-driven reads and writes */
ESP_ERROR_CHECK( uart_driver_install( (uart_port_t)CONFIG_ESP_CONSOLE_UART_NUM,
256, 0, 0, NULL, 0) );
/* Tell VFS to use UART driver */
uart_vfs_dev_use_driver(CONFIG_ESP_CONSOLE_UART_NUM);
uart_vfs_dev_port_set_rx_line_endings(CONFIG_ESP_CONSOLE_UART_NUM, ESP_LINE_ENDINGS_CR);
/* Move the caret to the beginning of the next line on '\n' */
uart_vfs_dev_port_set_tx_line_endings(CONFIG_ESP_CONSOLE_UART_NUM, ESP_LINE_ENDINGS_CRLF);
configured = true;
return ESP_OK;
}

View File

@ -0,0 +1,246 @@
/*
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
/* Common functions for protocol examples, to establish Wi-Fi or Ethernet connection.
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <string.h>
#include "protocol_examples_common.h"
#include "example_common_private.h"
#include "esp_log.h"
#if CONFIG_EXAMPLE_CONNECT_WIFI
static const char *TAG = "example_connect";
static esp_netif_t *s_example_sta_netif = NULL;
static SemaphoreHandle_t s_semph_get_ip_addrs = NULL;
#if CONFIG_EXAMPLE_CONNECT_IPV6
static SemaphoreHandle_t s_semph_get_ip6_addrs = NULL;
#endif
static int s_retry_num = 0;
static void example_handler_on_wifi_disconnect(void *arg, esp_event_base_t event_base,
int32_t event_id, void *event_data)
{
s_retry_num++;
if (s_retry_num > CONFIG_EXAMPLE_WIFI_CONN_MAX_RETRY) {
ESP_LOGI(TAG, "WiFi Connect failed %d times, stop reconnect.", s_retry_num);
/* let example_wifi_sta_do_connect() return */
if (s_semph_get_ip_addrs) {
xSemaphoreGive(s_semph_get_ip_addrs);
}
#if CONFIG_EXAMPLE_CONNECT_IPV6
if (s_semph_get_ip6_addrs) {
xSemaphoreGive(s_semph_get_ip6_addrs);
}
#endif
example_wifi_sta_do_disconnect();
return;
}
ESP_LOGI(TAG, "Wi-Fi disconnected, trying to reconnect...");
esp_err_t err = esp_wifi_connect();
if (err == ESP_ERR_WIFI_NOT_STARTED) {
return;
}
ESP_ERROR_CHECK(err);
}
static void example_handler_on_wifi_connect(void *esp_netif, esp_event_base_t event_base,
int32_t event_id, void *event_data)
{
#if CONFIG_EXAMPLE_CONNECT_IPV6
esp_netif_create_ip6_linklocal(esp_netif);
#endif // CONFIG_EXAMPLE_CONNECT_IPV6
}
static void example_handler_on_sta_got_ip(void *arg, esp_event_base_t event_base,
int32_t event_id, void *event_data)
{
s_retry_num = 0;
ip_event_got_ip_t *event = (ip_event_got_ip_t *)event_data;
if (!example_is_our_netif(EXAMPLE_NETIF_DESC_STA, event->esp_netif)) {
return;
}
ESP_LOGI(TAG, "Got IPv4 event: Interface \"%s\" address: " IPSTR, esp_netif_get_desc(event->esp_netif), IP2STR(&event->ip_info.ip));
if (s_semph_get_ip_addrs) {
xSemaphoreGive(s_semph_get_ip_addrs);
} else {
ESP_LOGI(TAG, "- IPv4 address: " IPSTR ",", IP2STR(&event->ip_info.ip));
}
}
#if CONFIG_EXAMPLE_CONNECT_IPV6
static void example_handler_on_sta_got_ipv6(void *arg, esp_event_base_t event_base,
int32_t event_id, void *event_data)
{
ip_event_got_ip6_t *event = (ip_event_got_ip6_t *)event_data;
if (!example_is_our_netif(EXAMPLE_NETIF_DESC_STA, event->esp_netif)) {
return;
}
esp_ip6_addr_type_t ipv6_type = esp_netif_ip6_get_addr_type(&event->ip6_info.ip);
ESP_LOGI(TAG, "Got IPv6 event: Interface \"%s\" address: " IPV6STR ", type: %s", esp_netif_get_desc(event->esp_netif),
IPV62STR(event->ip6_info.ip), example_ipv6_addr_types_to_str[ipv6_type]);
if (ipv6_type == EXAMPLE_CONNECT_PREFERRED_IPV6_TYPE) {
if (s_semph_get_ip6_addrs) {
xSemaphoreGive(s_semph_get_ip6_addrs);
} else {
ESP_LOGI(TAG, "- IPv6 address: " IPV6STR ", type: %s", IPV62STR(event->ip6_info.ip), example_ipv6_addr_types_to_str[ipv6_type]);
}
}
}
#endif // CONFIG_EXAMPLE_CONNECT_IPV6
void example_wifi_start(void)
{
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
ESP_ERROR_CHECK(esp_wifi_init(&cfg));
esp_netif_inherent_config_t esp_netif_config = ESP_NETIF_INHERENT_DEFAULT_WIFI_STA();
// Warning: the interface desc is used in tests to capture actual connection details (IP, gw, mask)
esp_netif_config.if_desc = EXAMPLE_NETIF_DESC_STA;
esp_netif_config.route_prio = 128;
s_example_sta_netif = esp_netif_create_wifi(WIFI_IF_STA, &esp_netif_config);
esp_wifi_set_default_wifi_sta_handlers();
ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM));
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
ESP_ERROR_CHECK(esp_wifi_start());
}
void example_wifi_stop(void)
{
esp_err_t err = esp_wifi_stop();
if (err == ESP_ERR_WIFI_NOT_INIT) {
return;
}
ESP_ERROR_CHECK(err);
ESP_ERROR_CHECK(esp_wifi_deinit());
ESP_ERROR_CHECK(esp_wifi_clear_default_wifi_driver_and_handlers(s_example_sta_netif));
esp_netif_destroy(s_example_sta_netif);
s_example_sta_netif = NULL;
}
esp_err_t example_wifi_sta_do_connect(wifi_config_t wifi_config, bool wait)
{
if (wait) {
s_semph_get_ip_addrs = xSemaphoreCreateBinary();
if (s_semph_get_ip_addrs == NULL) {
return ESP_ERR_NO_MEM;
}
#if CONFIG_EXAMPLE_CONNECT_IPV6
s_semph_get_ip6_addrs = xSemaphoreCreateBinary();
if (s_semph_get_ip6_addrs == NULL) {
vSemaphoreDelete(s_semph_get_ip_addrs);
return ESP_ERR_NO_MEM;
}
#endif
}
s_retry_num = 0;
ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_STA_DISCONNECTED, &example_handler_on_wifi_disconnect, NULL));
ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &example_handler_on_sta_got_ip, NULL));
ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_STA_CONNECTED, &example_handler_on_wifi_connect, s_example_sta_netif));
#if CONFIG_EXAMPLE_CONNECT_IPV6
ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_GOT_IP6, &example_handler_on_sta_got_ipv6, NULL));
#endif
ESP_LOGI(TAG, "Connecting to %s...", wifi_config.sta.ssid);
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config));
esp_err_t ret = esp_wifi_connect();
if (ret != ESP_OK) {
ESP_LOGE(TAG, "WiFi connect failed! ret:%x", ret);
return ret;
}
if (wait) {
ESP_LOGI(TAG, "Waiting for IP(s)");
#if CONFIG_EXAMPLE_CONNECT_IPV4
xSemaphoreTake(s_semph_get_ip_addrs, portMAX_DELAY);
#endif
#if CONFIG_EXAMPLE_CONNECT_IPV6
xSemaphoreTake(s_semph_get_ip6_addrs, portMAX_DELAY);
#endif
if (s_retry_num > CONFIG_EXAMPLE_WIFI_CONN_MAX_RETRY) {
return ESP_FAIL;
}
}
return ESP_OK;
}
esp_err_t example_wifi_sta_do_disconnect(void)
{
ESP_ERROR_CHECK(esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_DISCONNECTED, &example_handler_on_wifi_disconnect));
ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, &example_handler_on_sta_got_ip));
ESP_ERROR_CHECK(esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_CONNECTED, &example_handler_on_wifi_connect));
#if CONFIG_EXAMPLE_CONNECT_IPV6
ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_GOT_IP6, &example_handler_on_sta_got_ipv6));
#endif
if (s_semph_get_ip_addrs) {
vSemaphoreDelete(s_semph_get_ip_addrs);
}
#if CONFIG_EXAMPLE_CONNECT_IPV6
if (s_semph_get_ip6_addrs) {
vSemaphoreDelete(s_semph_get_ip6_addrs);
}
#endif
return esp_wifi_disconnect();
}
void example_wifi_shutdown(void)
{
example_wifi_sta_do_disconnect();
example_wifi_stop();
}
esp_err_t example_wifi_connect(void)
{
ESP_LOGI(TAG, "Start example_connect.");
example_wifi_start();
wifi_config_t wifi_config = {
.sta = {
#if !CONFIG_EXAMPLE_WIFI_SSID_PWD_FROM_STDIN
.ssid = CONFIG_EXAMPLE_WIFI_SSID,
.password = CONFIG_EXAMPLE_WIFI_PASSWORD,
#endif
.scan_method = EXAMPLE_WIFI_SCAN_METHOD,
.sort_method = EXAMPLE_WIFI_CONNECT_AP_SORT_METHOD,
.threshold.rssi = CONFIG_EXAMPLE_WIFI_SCAN_RSSI_THRESHOLD,
.threshold.authmode = EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD,
},
};
#if CONFIG_EXAMPLE_WIFI_SSID_PWD_FROM_STDIN
example_configure_stdin_stdout();
char buf[sizeof(wifi_config.sta.ssid)+sizeof(wifi_config.sta.password)+2] = {0};
ESP_LOGI(TAG, "Please input ssid password:");
fgets(buf, sizeof(buf), stdin);
int len = strlen(buf);
buf[len-1] = '\0'; /* removes '\n' */
memset(wifi_config.sta.ssid, 0, sizeof(wifi_config.sta.ssid));
char *rest = NULL;
char *temp = strtok_r(buf, " ", &rest);
strncpy((char*)wifi_config.sta.ssid, temp, sizeof(wifi_config.sta.ssid));
memset(wifi_config.sta.password, 0, sizeof(wifi_config.sta.password));
temp = strtok_r(NULL, " ", &rest);
if (temp) {
strncpy((char*)wifi_config.sta.password, temp, sizeof(wifi_config.sta.password));
} else {
wifi_config.sta.threshold.authmode = WIFI_AUTH_OPEN;
}
#endif
return example_wifi_sta_do_connect(wifi_config, true);
}
#endif /* CONFIG_EXAMPLE_CONNECT_WIFI */

View File

@ -3,22 +3,24 @@ dependencies:
component_hash: 779b4ba2464a3ae85681e4b860caa5fdc35801458c23f3039ee761bae7f442a4
dependencies:
- name: idf
registry_url: https://components.espressif.com
require: private
version: '>=4.4.2'
source:
registry_url: https://components.espressif.com/
registry_url: https://components.espressif.com
type: service
version: 1.1.2
espressif/esp_lcd_touch_gt911:
component_hash: f90c3f82f052d1ccdfd71895a062f396ccc1c90ec69d8a99c483180387230bac
dependencies:
- name: espressif/esp_lcd_touch
registry_url: https://components.espressif.com/
require: public
version: ^1.1.0
- name: idf
registry_url: https://components.espressif.com
require: private
version: '>=4.4.2'
- name: espressif/esp_lcd_touch
registry_url: https://components.espressif.com
require: public
version: ^1.1.0
source:
registry_url: https://components.espressif.com/
type: service
@ -38,10 +40,31 @@ dependencies:
registry_url: https://components.espressif.com/
type: service
version: 2.3.2
espressif/esp_websocket_client:
component_hash: 8280960def8af4f84bc58d2d76f55357cd1387775cbc2e0a6b3ca229aa7e209e
dependencies:
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.3.0
idf:
source:
type: idf
version: 5.3.1
joltwallet/littlefs:
component_hash: 362f1f5beb5087b0c60169aff82676d2d0ffc991ead975212b0cba95959181c5
dependencies:
- name: idf
registry_url: https://components.espressif.com
require: private
version: '>=4.3'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.14.8
lvgl/lvgl:
component_hash: 2409fdc84e9766d2a18afd84b051aef3f838348136cdb1c10ac2e8bcdb012bf6
dependencies: []
@ -49,11 +72,25 @@ dependencies:
registry_url: https://components.espressif.com/
type: service
version: 9.2.0
suda-morris/am2302_rmt:
component_hash: b46dd8c20dee72654e8ea4a43b16e8a93e984a6c10426392a4b8486fed50ca93
dependencies:
- name: idf
registry_url: https://components.espressif.com
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com/
type: service
version: 1.0.0
direct_dependencies:
- espressif/esp_lcd_touch_gt911
- espressif/esp_lvgl_port
- espressif/esp_websocket_client
- idf
- joltwallet/littlefs
- lvgl/lvgl
manifest_hash: b5600105e7af98260d4afd2580596fd962c4f216e9d70b5059131b98ee207d7d
- suda-morris/am2302_rmt
manifest_hash: eea83fb930d30dd687c0634cc1b3ac9d374a209e476f634357cee6bd38fc6b59
target: esp32s3
version: 2.0.0

View File

@ -1,89 +1,22 @@
set(EXTRA_COMPONENT_DIRS ../components)
idf_component_register(SRC_DIRS . fonts
INCLUDE_DIRS "."
REQUIRES heap esp_wifi nvs_flash mqtt meteofrance esp_netif image_downloader fatfs sdmmc vfs littlefs
PRIV_REQUIRES littlefs)
lvgl_port_create_c_image("images/wifi_ok.png" "images/" "ARGB8888" "NONE")
lvgl_port_create_c_image("images/wifi_ko.png" "images/" "ARGB8888" "NONE")
lvgl_port_create_c_image("images/mqtt_ok.png" "images/" "AUTO" "NONE")
lvgl_port_create_c_image("images/mqtt_ko.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p13bisj.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/esp_logo.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p10j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p10n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p11j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p11n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p12j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p12bisj.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p12n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p13j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p13n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p14bisj.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p14j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p14n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p15j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p15n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p16bisj.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p16j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p16n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p17j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p17n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p18j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p18n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p19j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p19n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p1j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p1n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p20j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p20n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p21j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p21n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p22j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p22n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p23j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p23n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p24j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p24n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p25j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p25n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p26j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p26n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p27j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p27n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p28j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p28n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p29j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p29n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p2j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p2n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p30j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p30n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p31j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p31n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p32j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p32n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p3j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p3n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p4j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p4n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p5bisj.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p5j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p5n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p6j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p6n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p7j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p7n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p8j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p8n.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p9j.png" "images/" "ARGB8888" "NONE")
# lvgl_port_create_c_image("images/p9n.png" "images/" "ARGB8888" "NONE")
lvgl_port_add_images(${COMPONENT_LIB} "images/")
littlefs_create_partition_image(littlefs images_meteo FLASH_IN_PROJECT)
REQUIRES heap esp_wifi nvs_flash mqtt meteofrance esp_netif image_downloader fatfs sdmmc vfs littlefs wifi_logger protocol_examples_common app_update esp_https_ota
PRIV_REQUIRES littlefs
EMBED_TXTFILES ${project_dir}/main/ca_cert.pem)
set_source_files_properties(
PROPERTIES COMPILE_OPTIONS
"-DLV_LVGL_H_INCLUDE_SIMPLE;-Wno-format;-DLV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(montserrat_medium_12) LV_FONT_DECLARE(montserrat_medium_18) LV_FONT_DECLARE(montserrat_medium_24)"
)
lvgl_port_create_c_image("images/wifi_ok.png" "images/" "ARGB8888" "NONE")
lvgl_port_create_c_image("images/wifi_ko.png" "images/" "ARGB8888" "NONE")
lvgl_port_create_c_image("images/mqtt_ok.png" "images/" "AUTO" "NONE")
lvgl_port_create_c_image("images/mqtt_ko.png" "images/" "ARGB8888" "NONE")
lvgl_port_add_images(${COMPONENT_LIB} "images/")
littlefs_create_partition_image(littlefs images_meteo FLASH_IN_PROJECT)

22
main/ca_cert.pem Normal file
View File

@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDmTCCAoGgAwIBAgIUd5qKY6blEffPyHQZnmQfxkcCO7AwDQYJKoZIhvcNAQEL
BQAwXDELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEVMBMGA1UEAwwMMTkyLjE2OC4wLjI4
MB4XDTI0MTExMzE4MjYxOVoXDTI1MTExMzE4MjYxOVowXDELMAkGA1UEBhMCRlIx
EzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMg
UHR5IEx0ZDEVMBMGA1UEAwwMMTkyLjE2OC4wLjI4MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEA8lKPcpJ6/FhrI+E8fzR93N/XIfEW7GpFa+KNp+DK9DGS
hHno2yVGXNdUFRQEL/2pL8aiZzZ7xGMubzEIr1dlHrb/PplGRTXCxQWnDJDsOu4w
7TbzjYxDhgMwXhSGuFlMexFBh+W9qcO85l4wNSOhHusyf7XZaPAd3NGmK4XsoeXJ
DSROJLLpvyZM3yt1kuC3GTWSqUe4Ldv+kaAfyW+X/PJ7Tgb6frLGNCs5A0zLhFxb
FS2omnqX6+H2Bjvk3nCQr85zcuIrnXQ+Hy58MayS+dRqPTSNw7RqRVvrGUuQuj5y
/ruAVLjG6F9wTZZFJ8Nk2veuFxIG+8ADpglWoYrokQIDAQABo1MwUTAdBgNVHQ4E
FgQUUa64jnTc+VqWQB93Fp/yPuirm2cwHwYDVR0jBBgwFoAUUa64jnTc+VqWQB93
Fp/yPuirm2cwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAnqg9
DeBozovXmwcbDTlTqz1b5LJ3Xz4mhUnEssmlDvvlXMqL1CjeXDKgOXtkWaomTJNO
MfMTmkkKg2lomNe2O84nUyPJnHYle5cbxZXAvbkmsi6R95lXFf5+bHAtU05TFYKc
BWMPB3Vwym9qrAc8G1LPr05LYgrJsQ9xkf0pVR7hrjgu9k6ElNAQSiH4dlyK4b/T
12U4zBawZNv3f6OnKOTq2NuwwzxWSwRRbEGUf0qO6Z8LNsj7yvmp2ImfN1e3a39p
+WmxJkHBzg5LxUon8jtiZLKeAPNlAPvKTs/4umE0LdZnsdlYrNR+kFeMMurxHvfZ
ykxPELUVUWEgv/IRbA==
-----END CERTIFICATE-----

View File

@ -1,7 +1,7 @@
/*******************************************************************************
* Size: 18 px
* Bpp: 4
* Opts: --bpp 4 --size 18 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ' --format lvgl -o montserrat_medium_18.c --font fa-solid-900.ttf --range 61461
* Opts: --bpp 4 --size 18 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:- ' --format lvgl -o montserrat_medium_18.c --font fa-solid-900.ttf --range 61461,0xf0c2
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
@ -27,6 +27,9 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+0027 "'" */
0xda, 0xd9, 0xd9, 0xc8, 0xc8, 0x0,
/* U+002D "-" */
0x88, 0x88, 0x7f, 0xff, 0xfe,
/* U+002E "." */
0x5, 0x60, 0x1f, 0xf2, 0xc, 0xd0,
@ -138,6 +141,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
0x0, 0x0, 0x3e, 0xf2, 0x0, 0x8e, 0xba, 0xcf,
0xf5, 0x0, 0x5, 0xbe, 0xfd, 0x92, 0x0, 0x0,
/* U+003A ":" */
0xc, 0xd0, 0x1f, 0xf2, 0x5, 0x60, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x60,
0x1f, 0xf2, 0xc, 0xd0,
/* U+0041 "A" */
0x0, 0x0, 0x0, 0x8f, 0xa0, 0x0, 0x0, 0x0,
0x0, 0x0, 0xe, 0xff, 0x20, 0x0, 0x0, 0x0,
@ -770,7 +778,34 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
0x0, 0xbf, 0xff, 0xfe, 0x0, 0x0, 0x9f, 0xff,
0xff, 0x0, 0x0, 0x5, 0xff, 0xff, 0x80, 0x0,
0x3, 0xff, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
/* U+F0C2 "" */
0x0, 0x0, 0x0, 0x16, 0x98, 0x60, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xff,
0xff, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x5f, 0xff, 0xff, 0xff, 0xf5, 0x15, 0x30,
0x0, 0x0, 0x0, 0x0, 0x1e, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc1, 0x0, 0x0, 0x0, 0x6,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0,
0x0, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x3d, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x81, 0x0, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xb,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xd0, 0xef, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf1, 0x9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf7, 0x0, 0x6, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x0,
0x0, 0x0, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
0x11, 0x10, 0x0, 0x0
};
@ -782,73 +817,76 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 77, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 0, .adv_w = 60, .box_w = 2, .box_h = 6, .ofs_x = 1, .ofs_y = 7},
{.bitmap_index = 6, .adv_w = 65, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 12, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 90, .adv_w = 107, .box_w = 5, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 123, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 188, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 253, .adv_w = 193, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 331, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 396, .adv_w = 178, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 468, .adv_w = 172, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 540, .adv_w = 185, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 612, .adv_w = 178, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 684, .adv_w = 211, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 782, .adv_w = 218, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 860, .adv_w = 208, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 945, .adv_w = 238, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1030, .adv_w = 193, .box_w = 11, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1102, .adv_w = 183, .box_w = 10, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1167, .adv_w = 222, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1252, .adv_w = 234, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1330, .adv_w = 89, .box_w = 3, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1350, .adv_w = 148, .box_w = 9, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1409, .adv_w = 207, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1487, .adv_w = 171, .box_w = 10, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1552, .adv_w = 275, .box_w = 15, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1650, .adv_w = 234, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1728, .adv_w = 242, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1826, .adv_w = 208, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1904, .adv_w = 242, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 2024, .adv_w = 209, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2102, .adv_w = 179, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2174, .adv_w = 169, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2246, .adv_w = 228, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2324, .adv_w = 205, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2415, .adv_w = 324, .box_w = 20, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2545, .adv_w = 194, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2623, .adv_w = 186, .box_w = 13, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2708, .adv_w = 189, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2786, .adv_w = 172, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2836, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2913, .adv_w = 164, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2963, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3040, .adv_w = 176, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3095, .adv_w = 102, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3144, .adv_w = 199, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = -4},
{.bitmap_index = 3221, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3291, .adv_w = 80, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3312, .adv_w = 82, .box_w = 6, .box_h = 18, .ofs_x = -2, .ofs_y = -4},
{.bitmap_index = 3366, .adv_w = 177, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3443, .adv_w = 80, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3464, .adv_w = 304, .box_w = 17, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3549, .adv_w = 196, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3599, .adv_w = 183, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3654, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = -4},
{.bitmap_index = 3731, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = -4},
{.bitmap_index = 3808, .adv_w = 118, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3838, .adv_w = 144, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3883, .adv_w = 119, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3925, .adv_w = 195, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3975, .adv_w = 161, .box_w = 12, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 4035, .adv_w = 259, .box_w = 17, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4120, .adv_w = 159, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4170, .adv_w = 161, .box_w = 12, .box_h = 14, .ofs_x = -1, .ofs_y = -4},
{.bitmap_index = 4254, .adv_w = 150, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4299, .adv_w = 121, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 6},
{.bitmap_index = 4324, .adv_w = 176, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4401, .adv_w = 195, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4471, .adv_w = 324, .box_w = 21, .box_h = 19, .ofs_x = 0, .ofs_y = -3}
{.bitmap_index = 6, .adv_w = 110, .box_w = 5, .box_h = 2, .ofs_x = 1, .ofs_y = 4},
{.bitmap_index = 11, .adv_w = 65, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 17, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 95, .adv_w = 107, .box_w = 5, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 128, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 193, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 258, .adv_w = 193, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 336, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 401, .adv_w = 178, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 473, .adv_w = 172, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 545, .adv_w = 185, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 617, .adv_w = 178, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 689, .adv_w = 65, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 709, .adv_w = 211, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 807, .adv_w = 218, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 885, .adv_w = 208, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 970, .adv_w = 238, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1055, .adv_w = 193, .box_w = 11, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1127, .adv_w = 183, .box_w = 10, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1192, .adv_w = 222, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1277, .adv_w = 234, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1355, .adv_w = 89, .box_w = 3, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1375, .adv_w = 148, .box_w = 9, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1434, .adv_w = 207, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1512, .adv_w = 171, .box_w = 10, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1577, .adv_w = 275, .box_w = 15, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1675, .adv_w = 234, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1753, .adv_w = 242, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1851, .adv_w = 208, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1929, .adv_w = 242, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 2049, .adv_w = 209, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2127, .adv_w = 179, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2199, .adv_w = 169, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2271, .adv_w = 228, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2349, .adv_w = 205, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2440, .adv_w = 324, .box_w = 20, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2570, .adv_w = 194, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2648, .adv_w = 186, .box_w = 13, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2733, .adv_w = 189, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2811, .adv_w = 172, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2861, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2938, .adv_w = 164, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2988, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3065, .adv_w = 176, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3120, .adv_w = 102, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3169, .adv_w = 199, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = -4},
{.bitmap_index = 3246, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3316, .adv_w = 80, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3337, .adv_w = 82, .box_w = 6, .box_h = 18, .ofs_x = -2, .ofs_y = -4},
{.bitmap_index = 3391, .adv_w = 177, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3468, .adv_w = 80, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3489, .adv_w = 304, .box_w = 17, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3574, .adv_w = 196, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3624, .adv_w = 183, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3679, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = -4},
{.bitmap_index = 3756, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = -4},
{.bitmap_index = 3833, .adv_w = 118, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3863, .adv_w = 144, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3908, .adv_w = 119, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3950, .adv_w = 195, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4000, .adv_w = 161, .box_w = 12, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 4060, .adv_w = 259, .box_w = 17, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4145, .adv_w = 159, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4195, .adv_w = 161, .box_w = 12, .box_h = 14, .ofs_x = -1, .ofs_y = -4},
{.bitmap_index = 4279, .adv_w = 150, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4324, .adv_w = 121, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 6},
{.bitmap_index = 4349, .adv_w = 176, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4426, .adv_w = 195, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4496, .adv_w = 324, .box_w = 21, .box_h = 19, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 4696, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -2}
};
/*---------------------
@ -856,11 +894,11 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
*--------------------*/
static const uint16_t unicode_list_0[] = {
0x0, 0x7, 0xe
0x0, 0x7, 0xd, 0xe
};
static const uint16_t unicode_list_4[] = {
0x0, 0x39, 0x4b, 0xef65
0x0, 0x39, 0x4b, 0xef65, 0xf012
};
/*Collect the unicode lists and glyph_id offsets*/
@ -868,23 +906,23 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 32, .range_length = 15, .glyph_id_start = 1,
.unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 3, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
.unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 4, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
},
{
.range_start = 48, .range_length = 10, .glyph_id_start = 4,
.range_start = 48, .range_length = 11, .glyph_id_start = 5,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 65, .range_length = 26, .glyph_id_start = 14,
.range_start = 65, .range_length = 26, .glyph_id_start = 16,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 97, .range_length = 26, .glyph_id_start = 40,
.range_start = 97, .range_length = 26, .glyph_id_start = 42,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 176, .range_length = 61286, .glyph_id_start = 66,
.unicode_list = unicode_list_4, .glyph_id_ofs_list = NULL, .list_length = 4, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
.range_start = 176, .range_length = 61459, .glyph_id_start = 68,
.unicode_list = unicode_list_4, .glyph_id_ofs_list = NULL, .list_length = 5, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
}
};
@ -896,231 +934,254 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
0, 0, 1, 2, 3, 0, 4, 5,
6, 7, 8, 9, 10, 3, 11, 12,
13, 14, 15, 16, 17, 18, 18, 19,
20, 21, 18, 18, 14, 22, 14, 23,
24, 25, 19, 26, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 30,
36, 36, 37, 33, 30, 30, 31, 31,
38, 39, 40, 41, 36, 42, 42, 43,
42, 44, 45, 34, 36, 0
0, 0, 1, 2, 3, 4, 0, 5,
6, 7, 8, 9, 10, 11, 4, 12,
13, 14, 15, 16, 17, 18, 19, 20,
20, 21, 22, 23, 20, 20, 16, 24,
16, 25, 26, 27, 21, 28, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37,
38, 32, 38, 38, 39, 35, 32, 32,
33, 33, 40, 41, 42, 43, 38, 44,
44, 45, 44, 46, 47, 36, 38, 0,
0
};
/*Map glyph_ids to kern right classes*/
static const uint8_t kern_right_class_mapping[] =
{
0, 0, 1, 2, 3, 4, 5, 6,
7, 8, 3, 9, 10, 11, 12, 13,
14, 13, 13, 13, 14, 13, 13, 15,
13, 13, 13, 13, 14, 13, 14, 13,
16, 17, 18, 19, 19, 20, 21, 22,
23, 24, 25, 25, 25, 0, 25, 24,
26, 27, 24, 24, 28, 28, 25, 28,
25, 28, 29, 30, 31, 32, 32, 33,
32, 34, 35, 25, 31, 0
7, 8, 9, 4, 10, 11, 12, 13,
14, 15, 16, 15, 15, 15, 16, 15,
15, 17, 15, 15, 15, 15, 16, 15,
16, 15, 18, 19, 20, 21, 21, 22,
23, 24, 25, 26, 27, 27, 27, 0,
27, 26, 28, 29, 26, 26, 30, 30,
27, 30, 27, 30, 31, 32, 33, 34,
34, 35, 34, 36, 37, 27, 33, 0,
0
};
/*Kern values between classes*/
static const int8_t kern_class_values[] =
{
13, -16, 2, 14, 6, 5, -12, 2,
14, 1, 12, 0, 0, 0, 0, 0,
13, 0, -16, 2, 14, 6, 5, -12,
2, 14, 1, 12, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 6, -16, 0, -3, -4, 3,
0, 0, 0, 0, 6, 0, 1, -2,
2, -5, -4, -6, 2, 0, -3, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -16, -2, 0, -3, -4, 3,
3, -3, 0, -4, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -18, 2, -3,
0, -1, -1, -3, 0, 0, -2, 0,
0, -2, 0, 0, -7, 0, -6, 0,
-7, -10, -10, -5, 0, 0, 0, 0,
-2, 0, 0, 3, 0, 2, -3, 0,
1, 0, 3, -1, 0, 0, 0, -5,
0, -1, 0, 0, 1, 0, 0, 4,
0, -2, 0, -3, 0, -5, 0, 0,
0, -3, 0, 0, 0, 0, 0, -1,
1, -2, -2, 0, -3, 0, 0, 0,
-1, -1, 0, -3, -3, 0, 0, 1,
0, 0, 0, 0, -2, 0, -3, -3,
-3, 0, 0, 0, 0, 0, -2, 0,
0, 0, 0, -2, -4, 0, -4, -9,
6, 0, -7, -1, -3, 0, -1, -14,
3, -2, 0, 0, 3, 1, -2, -15,
0, -15, -2, -25, -2, 8, 0, 4,
0, 0, 0, 0, 1, 0, -5, -4,
0, -9, 0, 0, 0, 0, -1, -1,
0, -1, -4, 0, 0, 0, 0, 0,
-3, 0, -3, 0, -2, -3, -2, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, -2, -2, 0, -3, -2, 3, 0,
0, 0, 0, 0, 0, 0, -18, 2,
2, -3, 0, -1, -1, -3, 0, 0,
-2, 0, 0, 0, -2, 0, 0, -7,
0, -6, 0, -7, -10, -10, -5, 0,
0, 0, 0, -2, 0, 0, 3, 0,
2, -3, 0, 1, 0, -2, 3, -1,
0, 0, 0, -5, 0, -1, 0, 0,
0, 1, 0, 0, 4, 0, -2, 0,
-3, 0, -5, 0, 0, 0, -3, 0,
0, 0, 0, 0, -1, 1, -2, -2,
0, -3, 0, 0, 0, 0, -1, -1,
0, -3, -3, 0, 0, 0, 1, 0,
0, 0, 0, -2, 0, -3, -3, -3,
0, 0, 0, 0, 0, -2, 0, 0,
2, 0, 0, 0, 0, -3, 0, -3,
-2, -3, 0, 0, 0, 2, 0, -2,
0, 0, 0, 0, -3, -4, 0, -5,
9, -15, -6, 3, 0, -2, -19, -5,
0, -5, 0, -18, 0, -5, -8, -2,
0, 0, 1, -1, 2, -2, -11, 0,
-14, -7, -6, -7, -9, -3, -8, -1,
-5, -8, 2, 1, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, -1, 0,
0, -1, 0, -3, 0, -5, -6, -6,
-1, 0, 0, 0, 0, -2, 0, 0,
0, 0, 1, -2, 0, 0, -12, 10,
-2, -12, 0, 3, -4, 0, -14, -1,
-4, 4, 0, -3, 4, 0, -10, -4,
0, 0, -2, -4, 0, -4, -9, 3,
6, 0, -7, -1, -3, 0, -1, -14,
3, -2, 2, 0, 0, 3, 1, -2,
-15, 0, -15, -2, -25, -2, 8, 0,
4, 0, 0, 0, 0, 1, 0, -5,
-4, 0, -9, 0, 0, 0, 0, 0,
-1, -1, 0, -1, -4, 0, 0, 0,
0, 0, 0, -3, 0, -3, 0, -2,
-3, -2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, -2, 0, -3,
-2, 1, 3, 0, 0, 0, 0, 0,
0, -2, 0, 0, 0, 2, 0, 0,
0, 0, -3, 0, -3, -2, -3, 0,
0, 0, 2, 0, -2, 0, 0, 0,
0, -3, -4, 0, -5, 9, -14, -15,
-6, 3, 0, -2, -19, -5, 0, -5,
0, -6, -18, 0, -5, -8, -2, 0,
0, 1, -1, 2, -2, -11, 0, -14,
-7, -6, -7, -9, -3, -8, -1, -5,
-8, 2, 1, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -1,
0, 0, -1, 0, -3, 0, -5, -6,
-6, -1, 0, 0, 0, 0, -2, 0,
0, 0, 0, 1, -2, 0, 0, 3,
0, 0, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -12, -5, 10, -2,
-12, 0, 3, -4, 0, -14, -1, -4,
3, 4, 0, -3, 4, 0, -10, -4,
-11, -10, -12, 0, 0, 0, -1, 0,
0, 0, -1, -1, -3, -8, -10, -1,
-27, 0, 1, 0, 0, 0, 0, 0,
-27, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, -3, 0, -1, -3, -4, 0, 0,
0, 0, 0, -3, 0, -1, -3, -4,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, -6, 3,
-2, -1, -7, -3, 0, -4, -3, -5,
0, -4, 0, -1, -2, -1, -2, -5,
-3, 0, -2, 0, -6, 0, 0, 0,
-6, 0, -5, 0, -5, -5, 3, -5,
-6, 0, -3, -3, -3, 0, 0, 0,
0, 0, -3, 0, 0, -4, 0, -3,
0, -6, -7, -9, -2, 0, 0, 0,
0, 23, 0, 0, 1, 0, 0, -4,
0, 3, 0, 3, -4, 0, -2, -3,
-9, -2, -2, -2, -1, 0, 0, -1,
0, 0, 0, 0, 0, 0, 0, -1,
4, -6, 3, -2, -1, -7, -3, 0,
-4, -3, -2, -5, 0, -4, 0, -1,
-2, -1, -2, -5, -3, 0, -2, 0,
-6, 0, 0, 0, -6, 0, -5, 0,
-5, -5, 3, -5, 2, -6, 0, -3,
-3, -3, 0, 0, 0, 0, 0, 0,
-3, 0, 0, -4, 0, -3, 0, -6,
-7, -9, -2, 0, 0, 0, 0, 23,
0, 0, 1, 0, 0, -4, 0, 3,
0, -6, 3, -4, 0, -2, -3, -9,
-2, -2, -2, -1, -2, 0, 0, -1,
0, 0, 0, 0, -3, -2, -2, 0,
-2, 0, -2, 0, 0, 0, -2, -3,
-2, -3, -3, -3, 0, 12, -3, -4,
4, 0, 0, -14, -5, 3, -5, 2,
-9, 0, -2, -4, -1, 1, 0, 0,
-5, 0, 0, -5, 0, -5, -3, -4,
-3, -3, 0, -5, 1, -5, -5, 9,
0, 3, 0, 0, 0, 0, 0, 0,
-2, -3, -3, -3, 0, 12, 0, -3,
-4, 4, 0, 0, -14, -5, 3, -5,
2, 0, -9, 0, -2, -4, -1, 1,
0, 0, -5, 0, 0, -5, 0, -5,
-3, -4, -3, -3, 0, -5, 1, -5,
-5, 9, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -2,
0, 0, 0, -2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -2, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, -4, 0, 0, 0, 0, -4, 0,
0, -3, -3, 0, 0, 0, 0, 0,
-1, 0, 0, 0, 0, 0, -2, 0,
0, 0, 0, -6, 6, 1, -2, -14,
0, 0, -6, -3, -8, 0, -7, 0,
-4, -12, -3, -12, -11, -14, 0, -4,
0, -7, -3, -1, -3, -5, -8, -5,
-11, -12, -7, -3, 0, 9, -6, -11,
0, 1, -9, 0, -14, -2, -3, 1,
0, -4, 0, -2, -19, -3, -15, -3,
-21, 0, 1, 0, -2, 0, 0, 0,
0, -1, -2, -11, -2, 0, -19, 0,
-8, 0, 0, -1, -4, -9, -3, 0,
-2, 0, -13, -3, 0, -10, 0, -9,
-2, -5, -7, -3, -5, -4, 0, -3,
-5, -3, -5, 0, 1, 0, -2, -10,
0, 6, 0, 0, 0, 0, 0, -2,
-6, 0, 0, 0, 0, 0, 0, 0,
0, 0, -10, 0, -6, 6, 1, -2,
-14, 0, 0, -6, -3, 0, -8, 0,
-7, 0, -4, -12, -3, -12, -11, -14,
0, -4, 0, -7, -3, -1, -3, -5,
-8, -5, -11, -12, -7, -3, 0, -3,
9, -6, -11, 0, 1, -9, 0, -14,
-2, -3, 6, 1, 0, -4, 0, -2,
-19, -3, -15, -3, -21, 0, 1, 0,
-2, 0, 0, 0, 0, -1, -2, -11,
-2, 0, -19, 0, -1, -8, 0, 0,
-1, -4, -9, -3, 0, -2, 0, 0,
-13, -3, 0, -10, 0, -9, -2, -5,
-7, -3, -5, -4, 0, -3, -5, -3,
-5, 0, 1, 0, -2, -10, 0, 6,
0, -1, 0, 0, 0, 0, -2, -6,
0, 0, 0, 0, 0, 0, 0, 0,
-3, 0, -3, 0, 0, -6, -3, 0,
-1, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 4, -9, 6, 0,
-3, 0, -2, 3, 0, -3, 0, -3,
0, 0, 0, 0, 0, -3, 0, 0,
-4, -4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, -3, 0, -4,
2, -9, -6, 12, 5, 3, -25, -2,
6, -3, 0, -10, 0, -3, -3, -3,
3, -4, -2, -9, -2, 0, -8, 0,
-16, -4, 8, -4, -11, 1, -4, -10,
-10, -3, 12, 0, -11, -7, 9, 0,
1, -21, -2, 3, -5, -2, -11, -4,
-6, -4, -4, -2, 0, 0, -7, -6,
-3, -16, 0, -16, -4, 0, -10, -17,
-1, -9, -5, -10, -8, 8, 0, 0,
-10, 3, 0, 0, -15, 0, -3, -6,
-5, -10, -7, -7, 0, -4, -9, -3,
0, 0, 0, 0, 4, -9, 5, 6,
0, -3, 0, -2, 3, 0, -3, 0,
-3, -1, 0, 0, 0, 0, 0, -3,
0, 0, -4, -4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -3, -3,
0, -4, 2, -10, -9, -6, 12, 5,
3, -25, -2, 6, -3, 0, -3, -10,
0, -3, -3, -3, 3, -4, -2, -9,
-2, 0, -8, 0, -16, -4, 8, -4,
-11, 1, -4, -10, -10, -3, 12, 0,
-7, -11, -7, 9, 0, 1, -21, -2,
3, -5, -2, -7, -11, -4, -6, -4,
-4, -2, 0, 0, -7, -6, -3, -16,
0, -16, -4, 0, -10, -17, -1, -9,
-5, -10, -8, 8, 0, -5, 0, -10,
3, 0, 0, -15, 0, -3, -6, -5,
-2, -10, -7, -7, 0, -4, -9, -3,
-7, -5, -9, -3, -5, 0, -9, -3,
0, -3, -6, -7, -8, -8, -11, -4,
-6, 0, -11, -10, 10, -3, 1, -27,
-5, 6, -6, -5, -12, -3, -9, -3,
-4, -2, -3, -6, -9, -1, 0, -19,
0, -17, -7, 7, -11, -20, -6, -10,
-12, -14, -10, 6, 0, 6, -5, 6,
0, 0, -9, -1, 0, -1, 0, 0,
0, -2, 0, 0, 0, 0, 0, -3,
0, 0, 1, 0, -3, 0, 0, 0,
0, -2, -2, -3, 0, 0, 0, 0,
0, 0, -6, -1, 0, 0, 0, -6,
0, -3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, -3, 0,
0, -5, -4, -3, 0, -8, -3, -7,
0, 0, -8, 0, -3, -3, 0, 0,
-6, 0, -9, -11, -10, 10, -3, 1,
-27, -5, 6, -6, -5, -11, -12, -3,
-9, -3, -4, -2, -3, -6, -9, -1,
0, -19, 0, -17, -7, 7, -11, -20,
-6, -10, -12, -14, -10, 6, 0, -3,
6, -5, 6, 0, 0, -9, -1, 0,
-1, 0, 1, 0, 0, -2, 0, 0,
0, 0, 0, -3, 0, 0, 1, 0,
-3, 0, 0, 0, 0, -2, -2, -3,
0, 0, 0, 0, 0, 0, 0, -6,
-1, 0, 0, 0, -6, 0, -3, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, -3, 0, 0, -5,
-4, 3, -3, 0, -8, -3, -7, 0,
0, -8, 0, -3, 0, -3, 0, 0,
0, 0, -23, -5, -12, -3, -10, 0,
-1, 0, 0, 0, 0, 0, 0, 0,
0, -4, -5, -2, -5, 0, 6, -2,
-7, -2, -5, -5, 0, -3, -1, -2,
0, 0, -1, 0, 0, -25, -2, -4,
0, -6, 0, 0, -2, -2, 0, 0,
0, 0, 2, 0, -2, -5, -2, 5,
0, -4, -5, -2, -5, 0, -3, 6,
-2, -7, -2, -5, -5, 0, -3, -1,
-2, 2, 0, 0, -1, 0, 0, -25,
-2, -4, 0, -6, 0, 0, -2, -2,
0, 0, 0, 0, 2, 0, -2, -5,
-2, 5, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, 0, 0,
0, 0, 0, -6, 0, 0, -8, -3,
-6, 0, 0, -8, 0, -3, 0, 0,
0, 0, 0, -28, 0, -6, -11, -14,
0, -4, 0, 0, 0, 0, 0, 0,
0, 0, -3, -4, -1, -4, 0, -3,
3, 14, 5, 6, -8, 3, 12, 3,
8, 0, 0, 0, 0, 0, 0, 0,
0, 4, 0, 0, 0, 0, 0, -6,
3, 0, 0, -8, -3, -6, 0, 0,
-8, 0, -3, 0, 0, 0, 0, 0,
0, -28, 0, -6, -11, -14, 0, -4,
0, 0, 0, 0, 0, 0, 0, 0,
-3, -4, -1, -4, 0, -3, -3, 3,
14, 5, 6, -8, 3, 12, 3, 8,
6, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, 0, -2, 23,
12, 23, 0, 0, 0, 3, 0, 0,
11, 0, 0, 0, -2, 0, 0, 0,
11, 0, 0, 0, 0, -2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
-5, -24, -3, -2, -12, -14, 0, 0,
0, 0, -5, -24, -3, -2, -12, -14,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3, -3, 2,
5, 3, -9, 0, -1, -2, 3, 0,
0, 0, 0, 0, -7, 0, -3, -2,
-6, 0, -3, 0, -6, -2, 0, -2,
-5, 0, -3, -8, -6, -3, 0, 0,
0, 0, -2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -5, -24,
-3, -2, -12, -14, 0, 0, 0, 0,
0, 14, 0, 0, 0, 0, 0, 0,
0, 0, 0, -3, 1, -2, 1, -2,
-8, 1, 6, 1, 2, -12, -3, -7,
0, 0, 0, 0, 0, 0, 0, -7,
3, -3, 2, 5, 3, -9, 0, -1,
-2, 3, 0, 0, 0, 0, 0, 0,
-7, 0, -3, -2, -6, 0, -3, 0,
-6, -2, 0, -2, -5, 0, -3, -8,
-6, -3, 0, 0, 0, 0, 0, -2,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -5, -24, -3, -2,
-12, -14, 0, 0, 0, 0, 0, 14,
0, 0, 0, 0, 0, 0, 0, 0,
0, -3, -3, 1, -2, 1, -2, -8,
1, 6, 1, 2, 1, -12, -3, -7,
0, -5, -11, -5, -8, -12, -11, 0,
-2, -2, -3, -2, 0, -2, -1, 4,
0, 4, -2, 0, 9, 0, 0, 0,
-2, -3, -3, 0, 0, -8, 0, -1,
0, -2, -3, -3, 0, 0, -8, 0,
-1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -3, -3,
0, -4, 0, -3, 3, -5, -5, -2,
0, -8, -2, -6, -2, -3, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, -3, 0, -4,
0, 3, -5, -5, -2, 0, -8, -2,
-6, -2, -3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
-5, 0, 0, 0, 0, -4, 0, -3,
0, 0, -1, 0, -10, 2, 3, 3,
-1, -8, 2, 4, 2, 9, -8, 0,
-2, 0, -2, -12, 0, 0, -9, -8,
0, -5, 0, -4, 0, -4, 0, -2,
4, 0, -2, -9, -3, 11, 0, 0,
-3, 2, 0, 0, -10, 0, -2, -1,
0, 0, 0, -2, 0, -3, -12, -3,
0, 0, 0, 0, -5, 0, 0, 0,
0, -4, 0, -3, 0, 0, -1, 0,
-4, -10, 2, 3, 3, -1, -8, 2,
4, 2, 9, 2, -8, 0, -2, 0,
-2, -12, 0, 0, -9, -8, 0, -5,
0, -4, 0, -4, 0, -2, 4, 0,
-2, -9, -3, 11, 0, -7, 0, -3,
2, 0, 0, -10, 0, -2, -1, 0,
-3, 0, 0, -2, 0, -3, -12, -3,
-6, 0, -9, 0, -3, 0, -5, 0,
2, 0, -3, 0, -3, -9, 0, -3,
3, 0, 1, 0, -3, -2, 0, -3,
3, 0, -4, 1, 0, -3, -2, 0,
-3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -2, 0, 0, 0, 0,
1, 0, -3, -3, 0, 0, 6, 0,
-18, 1, 12, 9, 5, -12, 2, 12,
0, 11, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, -2, 0, 0, 0, 0, 1, 0,
-3, -3, 0, 0, 6, -18, 1, 12,
9, 5, -12, 2, 12, 0, 11, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0
0, 0, 0
};
@ -1130,8 +1191,8 @@ static const lv_font_fmt_txt_kern_classes_t kern_classes =
.class_pair_values = kern_class_values,
.left_class_mapping = kern_left_class_mapping,
.right_class_mapping = kern_right_class_mapping,
.left_class_cnt = 45,
.right_class_cnt = 35,
.left_class_cnt = 47,
.right_class_cnt = 37,
};
/*--------------------

View File

@ -1,7 +1,7 @@
/*******************************************************************************
* Size: 24 px
* Bpp: 4
* Opts: --bpp 4 --size 24 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ' --format lvgl -o montserrat_medium_24.c --font fa-solid-900.ttf --range 61461
* Opts: --bpp 4 --size 24 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,' --format lvgl -o montserrat_medium_24.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
@ -24,10 +24,38 @@
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+0020 " " */
/* U+0025 "%" */
0x0, 0x3c, 0xfe, 0x90, 0x0, 0x0, 0x0, 0x6f,
0x70, 0x0, 0x3, 0xfd, 0x78, 0xfb, 0x0, 0x0,
0x2, 0xfc, 0x0, 0x0, 0xb, 0xe1, 0x0, 0x6f,
0x40, 0x0, 0xc, 0xf2, 0x0, 0x0, 0xf, 0x90,
0x0, 0xf, 0x90, 0x0, 0x7f, 0x60, 0x0, 0x0,
0x1f, 0x70, 0x0, 0xe, 0xa0, 0x2, 0xfb, 0x0,
0x0, 0x0, 0xf, 0x80, 0x0, 0xf, 0x90, 0xc,
0xf1, 0x0, 0x0, 0x0, 0xd, 0xd0, 0x0, 0x3f,
0x60, 0x7f, 0x60, 0x0, 0x0, 0x0, 0x5, 0xf9,
0x24, 0xde, 0x2, 0xfb, 0x0, 0x1, 0x0, 0x0,
0x0, 0x7f, 0xff, 0xd3, 0xc, 0xe1, 0x8, 0xff,
0xe7, 0x0, 0x0, 0x1, 0x43, 0x0, 0x7f, 0x50,
0x9f, 0x85, 0xaf, 0x70, 0x0, 0x0, 0x0, 0x2,
0xfa, 0x2, 0xf8, 0x0, 0xb, 0xf0, 0x0, 0x0,
0x0, 0xd, 0xe1, 0x5, 0xf3, 0x0, 0x5, 0xf4,
0x0, 0x0, 0x0, 0x8f, 0x50, 0x6, 0xf1, 0x0,
0x3, 0xf5, 0x0, 0x0, 0x3, 0xfa, 0x0, 0x5,
0xf3, 0x0, 0x5, 0xf3, 0x0, 0x0, 0xd, 0xe1,
0x0, 0x1, 0xf8, 0x0, 0xa, 0xe0, 0x0, 0x0,
0x8f, 0x40, 0x0, 0x0, 0x8f, 0x84, 0x9f, 0x60,
0x0, 0x3, 0xfa, 0x0, 0x0, 0x0, 0x7, 0xdf,
0xd6, 0x0,
/* U+0027 "'" */
0x7f, 0x87, 0xf7, 0x6f, 0x76, 0xf7, 0x6f, 0x65,
0xf6, 0x38, 0x30,
/* U+002C "," */
0x3b, 0x80, 0xcf, 0xf3, 0xaf, 0xf3, 0xf, 0xe0,
0x1f, 0x90, 0x5f, 0x40, 0x9e, 0x0,
/* U+002E "." */
0x4, 0x10, 0x9f, 0xf1, 0xdf, 0xf4, 0x6f, 0xb0,
@ -1148,7 +1176,89 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
0x0, 0x0, 0x0, 0xe, 0xff, 0xff, 0xff, 0x60,
0x0, 0x0, 0x6f, 0xff, 0xff, 0xfe, 0x0, 0x0,
0x0, 0x5, 0xef, 0xff, 0xfb, 0x0, 0x0, 0x0,
0xb, 0xff, 0xff, 0xe5, 0x0, 0x0
0xb, 0xff, 0xff, 0xe5, 0x0, 0x0,
/* U+F0C2 "" */
0x0, 0x0, 0x0, 0x0, 0x3, 0x8a, 0xa8, 0x30,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x3, 0xcf, 0xff, 0xff, 0xfc, 0x20,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x36, 0xaa,
0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
0x20, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
0x0, 0x0, 0x0, 0x0, 0x5f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x0, 0x0,
0x0, 0x4, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf6, 0x0, 0x0, 0x0,
0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf9, 0x20, 0x0, 0x9, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x0, 0x4f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x90, 0xaf, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf4, 0xef, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x4f,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xa, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf1, 0x0, 0xbf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x40, 0x0, 0x6, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xb2, 0x0, 0x0, 0x0, 0x2, 0x44, 0x44,
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x31,
0x0, 0x0,
/* U+F575 "" */
0x2, 0xdd, 0x30, 0x0, 0x0, 0x0, 0x20, 0x0,
0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf3, 0x0,
0x0, 0x4e, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0,
0x2, 0xff, 0xfe, 0x30, 0x5, 0xff, 0xff, 0xfc,
0x10, 0x0, 0x0, 0x0, 0x0, 0x3e, 0xff, 0xe3,
0x5f, 0xff, 0xef, 0xff, 0xc0, 0x0, 0x0, 0x0,
0x0, 0x3, 0xef, 0xff, 0xff, 0xfc, 0x15, 0xff,
0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e, 0xff,
0xff, 0xc1, 0x0, 0x6f, 0xff, 0xc0, 0x0, 0x0,
0x0, 0x0, 0x8, 0xff, 0xff, 0x40, 0x0, 0x6,
0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xff,
0xff, 0xe3, 0x0, 0x0, 0x6f, 0xff, 0xc0, 0x0,
0x0, 0x5, 0xff, 0xfc, 0xef, 0xfe, 0x30, 0x0,
0x6, 0xff, 0xfc, 0x0, 0x0, 0x5f, 0xff, 0xc1,
0x3e, 0xff, 0xa0, 0x0, 0x0, 0x6f, 0xff, 0xa0,
0x5, 0xff, 0xfc, 0x10, 0x3, 0xef, 0x70, 0x0,
0x0, 0x6, 0xff, 0xf0, 0x2f, 0xff, 0xc1, 0x0,
0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0xef, 0xf2,
0xaf, 0xfd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0xc, 0xff, 0xe0, 0xdf, 0xfa, 0x77, 0x77,
0x77, 0x77, 0x77, 0x77, 0x77, 0xcf, 0xff, 0x50,
0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf6, 0x0, 0x9f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x0,
0x1e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf6, 0x0, 0x0, 0x3, 0xef, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x0, 0x0,
0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf6, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x60, 0x0, 0x0, 0x0,
0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf6,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff,
0xff, 0xff, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x3e, 0xff, 0xff, 0xf6, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
0x9e, 0xeb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0
};
@ -1159,110 +1269,113 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 103, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 0, .adv_w = 81, .box_w = 3, .box_h = 7, .ofs_x = 1, .ofs_y = 10},
{.bitmap_index = 11, .adv_w = 87, .box_w = 4, .box_h = 4, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 19, .adv_w = 256, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 138, .adv_w = 142, .box_w = 7, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 198, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 309, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 420, .adv_w = 257, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 556, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 667, .adv_w = 237, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 786, .adv_w = 230, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 905, .adv_w = 247, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1024, .adv_w = 237, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1143, .adv_w = 281, .box_w = 19, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1305, .adv_w = 291, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 1433, .adv_w = 278, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1569, .adv_w = 317, .box_w = 17, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 1714, .adv_w = 257, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 1825, .adv_w = 244, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 1936, .adv_w = 296, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2072, .adv_w = 312, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2200, .adv_w = 119, .box_w = 3, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2226, .adv_w = 197, .box_w = 11, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2320, .adv_w = 276, .box_w = 16, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2456, .adv_w = 228, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2567, .adv_w = 367, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2729, .adv_w = 312, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2857, .adv_w = 323, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3019, .adv_w = 277, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3147, .adv_w = 323, .box_w = 19, .box_h = 20, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 3337, .adv_w = 279, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3465, .adv_w = 238, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3584, .adv_w = 225, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3703, .adv_w = 304, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3831, .adv_w = 273, .box_w = 19, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 3993, .adv_w = 432, .box_w = 27, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4223, .adv_w = 258, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4359, .adv_w = 248, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 4504, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4632, .adv_w = 230, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4710, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 4836, .adv_w = 219, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4914, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5040, .adv_w = 235, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5125, .adv_w = 136, .box_w = 10, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 5215, .adv_w = 265, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = -5},
{.bitmap_index = 5341, .adv_w = 262, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5458, .adv_w = 107, .box_w = 4, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5494, .adv_w = 109, .box_w = 9, .box_h = 23, .ofs_x = -3, .ofs_y = -5},
{.bitmap_index = 5598, .adv_w = 237, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5715, .adv_w = 107, .box_w = 3, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5742, .adv_w = 406, .box_w = 22, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5885, .adv_w = 262, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5970, .adv_w = 244, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 6061, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = -5},
{.bitmap_index = 6187, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = -5},
{.bitmap_index = 6313, .adv_w = 157, .box_w = 8, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6365, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 6443, .adv_w = 159, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 6523, .adv_w = 260, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6608, .adv_w = 215, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 6706, .adv_w = 345, .box_w = 22, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 6849, .adv_w = 212, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 6934, .adv_w = 215, .box_w = 15, .box_h = 18, .ofs_x = -1, .ofs_y = -5},
{.bitmap_index = 7069, .adv_w = 200, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 7147, .adv_w = 161, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = 9},
{.bitmap_index = 7187, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 7304, .adv_w = 260, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 7421, .adv_w = 432, .box_w = 28, .box_h = 25, .ofs_x = 0, .ofs_y = -3}
{.bitmap_index = 0, .adv_w = 324, .box_w = 20, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 170, .adv_w = 81, .box_w = 3, .box_h = 7, .ofs_x = 1, .ofs_y = 10},
{.bitmap_index = 181, .adv_w = 87, .box_w = 4, .box_h = 7, .ofs_x = 1, .ofs_y = -4},
{.bitmap_index = 195, .adv_w = 87, .box_w = 4, .box_h = 4, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 203, .adv_w = 256, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 322, .adv_w = 142, .box_w = 7, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 382, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 493, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 604, .adv_w = 257, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 740, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 851, .adv_w = 237, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 970, .adv_w = 230, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1089, .adv_w = 247, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1208, .adv_w = 237, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1327, .adv_w = 281, .box_w = 19, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1489, .adv_w = 291, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 1617, .adv_w = 278, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1753, .adv_w = 317, .box_w = 17, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 1898, .adv_w = 257, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2009, .adv_w = 244, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2120, .adv_w = 296, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2256, .adv_w = 312, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2384, .adv_w = 119, .box_w = 3, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2410, .adv_w = 197, .box_w = 11, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2504, .adv_w = 276, .box_w = 16, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2640, .adv_w = 228, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2751, .adv_w = 367, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2913, .adv_w = 312, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3041, .adv_w = 323, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3203, .adv_w = 277, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3331, .adv_w = 323, .box_w = 19, .box_h = 20, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 3521, .adv_w = 279, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3649, .adv_w = 238, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3768, .adv_w = 225, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3887, .adv_w = 304, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 4015, .adv_w = 273, .box_w = 19, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 4177, .adv_w = 432, .box_w = 27, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4407, .adv_w = 258, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4543, .adv_w = 248, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 4688, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4816, .adv_w = 230, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4894, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5020, .adv_w = 219, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5098, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5224, .adv_w = 235, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5309, .adv_w = 136, .box_w = 10, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 5399, .adv_w = 265, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = -5},
{.bitmap_index = 5525, .adv_w = 262, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5642, .adv_w = 107, .box_w = 4, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5678, .adv_w = 109, .box_w = 9, .box_h = 23, .ofs_x = -3, .ofs_y = -5},
{.bitmap_index = 5782, .adv_w = 237, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5899, .adv_w = 107, .box_w = 3, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5926, .adv_w = 406, .box_w = 22, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6069, .adv_w = 262, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6154, .adv_w = 244, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 6245, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = -5},
{.bitmap_index = 6371, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = -5},
{.bitmap_index = 6497, .adv_w = 157, .box_w = 8, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6549, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 6627, .adv_w = 159, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 6707, .adv_w = 260, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6792, .adv_w = 215, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 6890, .adv_w = 345, .box_w = 22, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 7033, .adv_w = 212, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 7118, .adv_w = 215, .box_w = 15, .box_h = 18, .ofs_x = -1, .ofs_y = -5},
{.bitmap_index = 7253, .adv_w = 200, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 7331, .adv_w = 161, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = 9},
{.bitmap_index = 7371, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 7488, .adv_w = 260, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 7605, .adv_w = 432, .box_w = 28, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 7955, .adv_w = 480, .box_w = 30, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 8285, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
static const uint16_t unicode_list_0[] = {
0x0, 0x7, 0xe
static const uint8_t glyph_id_ofs_list_0[] = {
0, 0, 0, 0, 0, 1, 0, 2,
0, 0, 0, 0, 3, 0, 4, 0,
5, 6, 7, 8, 9, 10, 11, 12,
13, 14
};
static const uint16_t unicode_list_4[] = {
0x0, 0x39, 0x4b, 0xef65
static const uint16_t unicode_list_3[] = {
0x0, 0x39, 0x4b, 0xef65, 0xf012, 0xf4c5
};
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 32, .range_length = 15, .glyph_id_start = 1,
.unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 3, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
.range_start = 32, .range_length = 26, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 26, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
},
{
.range_start = 48, .range_length = 10, .glyph_id_start = 4,
.range_start = 65, .range_length = 26, .glyph_id_start = 16,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 65, .range_length = 26, .glyph_id_start = 14,
.range_start = 97, .range_length = 26, .glyph_id_start = 42,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 97, .range_length = 26, .glyph_id_start = 40,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 176, .range_length = 61286, .glyph_id_start = 66,
.unicode_list = unicode_list_4, .glyph_id_ofs_list = NULL, .list_length = 4, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
.range_start = 176, .range_length = 62662, .glyph_id_start = 68,
.unicode_list = unicode_list_3, .glyph_id_ofs_list = NULL, .list_length = 6, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
}
};
@ -1274,231 +1387,243 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
/*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] =
{
0, 0, 1, 2, 3, 0, 4, 5,
6, 7, 8, 9, 10, 3, 11, 12,
13, 14, 15, 16, 17, 18, 18, 19,
20, 21, 18, 18, 14, 22, 14, 23,
24, 25, 19, 26, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 30,
36, 36, 37, 33, 30, 30, 31, 31,
38, 39, 40, 41, 36, 42, 42, 43,
42, 44, 45, 34, 36, 0
0, 0, 1, 2, 3, 3, 4, 0,
5, 6, 7, 8, 9, 10, 11, 4,
12, 13, 14, 15, 16, 17, 18, 19,
19, 20, 21, 22, 19, 19, 15, 23,
15, 24, 25, 26, 20, 27, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36,
37, 31, 37, 37, 38, 34, 31, 31,
32, 32, 39, 40, 41, 42, 37, 43,
43, 44, 43, 45, 46, 35, 37, 0,
0, 0
};
/*Map glyph_ids to kern right classes*/
static const uint8_t kern_right_class_mapping[] =
{
0, 0, 1, 2, 3, 4, 5, 6,
7, 8, 3, 9, 10, 11, 12, 13,
14, 13, 13, 13, 14, 13, 13, 15,
13, 13, 13, 13, 14, 13, 14, 13,
16, 17, 18, 19, 19, 20, 21, 22,
23, 24, 25, 25, 25, 0, 25, 24,
26, 27, 24, 24, 28, 28, 25, 28,
25, 28, 29, 30, 31, 32, 32, 33,
32, 34, 35, 25, 31, 0
0, 0, 1, 2, 3, 3, 4, 5,
6, 7, 8, 9, 4, 10, 11, 12,
13, 14, 15, 14, 14, 14, 15, 14,
14, 16, 14, 14, 14, 14, 15, 14,
15, 14, 17, 18, 19, 20, 20, 21,
22, 23, 24, 25, 26, 26, 26, 0,
26, 25, 27, 28, 25, 25, 29, 29,
26, 29, 26, 29, 30, 31, 32, 33,
33, 34, 33, 35, 36, 26, 32, 0,
0, 0
};
/*Kern values between classes*/
static const int8_t kern_class_values[] =
{
17, -21, 3, 18, 8, 7, -15, 3,
19, 1, 16, 0, 0, 0, 0, 0,
-46, -10, 12, 0, -8, 4, 4, 13,
8, -7, 8, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 8, -21, 0, -5, -5, 4,
4, -3, 0, -5, 4, 0, 0, 0,
0, 0, 0, -10, 10, 17, -21, 3,
18, 8, 7, -15, 3, 19, 1, 16,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -24, 3, -5,
0, -1, -1, -4, 0, 0, -3, 0,
0, -3, 0, 0, -9, 0, -8, 0,
-10, -13, -13, -7, 0, 0, 0, 0,
-3, 0, 0, 4, 0, 3, -4, 0,
1, 0, 4, -1, 0, 0, 0, -7,
0, 0, 0, 0, 0, 0, 0, 8,
-24, -21, 0, -5, -5, 4, 4, -3,
0, -5, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -24, 0, 3, -5, 0,
-1, -1, -4, 0, 0, -3, 0, 0,
-3, 0, 0, -9, 0, -8, 0, -10,
-13, -13, -7, 0, 0, 0, 0, -3,
0, 0, 4, 0, 3, -4, 0, 1,
4, 0, 4, -1, 0, 0, 0, -7,
0, -1, 0, 0, 1, 0, 0, 5,
0, -3, 0, -5, 0, -7, 0, 0,
0, -4, 0, 0, 0, 0, 0, -1,
1, -3, -3, 0, -4, 0, 0, 0,
-2, -2, 0, -4, -5, 0, 0, 1,
0, 0, 0, 0, -3, 0, -4, -4,
-4, 0, 0, 0, 0, 0, -2, 0,
0, 0, 0, -3, -5, 0, -6, -12,
8, 0, -10, -1, -5, 0, -1, -18,
4, -3, 0, 0, 4, 1, -3, -20,
0, -20, -3, -33, -3, 11, 0, 5,
0, 0, 0, 0, 1, 0, -7, -5,
0, -12, 0, 0, 0, 0, -2, -2,
0, -2, -5, 0, 0, 0, 0, 0,
-4, 0, -4, 0, -3, -5, -3, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, -3, -3, 0, -5, -3, 4, 0,
0, 0, 0, 0, 0, -3, 0, 0,
3, 0, 0, 0, 0, -4, 0, -4,
-3, -5, 0, 0, 0, 3, 0, -3,
0, 0, 0, 0, -4, -6, 0, -7,
12, -20, -8, 4, 0, -3, -25, -7,
0, -7, 0, -25, 0, -7, -10, -3,
0, 0, 2, -1, 3, -3, -15, 0,
-19, -9, -8, -9, -12, -5, -10, -1,
-7, -10, 2, 1, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, -2, 0,
0, -1, 0, -4, 0, -7, -8, -8,
-1, 0, 0, 0, 0, -3, 0, 0,
0, 0, 2, -2, 0, 0, -17, 13,
-3, -16, 0, 4, -6, 0, -19, -2,
-5, 5, 0, -4, 6, 0, -13, -6,
-14, -13, -16, 0, 0, 0, -2, 0,
0, 0, -2, -2, -4, -10, -13, -1,
-36, 0, 1, 0, 0, 0, 0, 0,
1, -3, -3, 0, -4, -4, 0, 0,
0, -2, -2, 0, -4, -5, 0, 0,
1, 0, 0, 0, 0, -3, 0, -4,
-4, -4, 0, 0, 0, 0, 0, -2,
0, 0, 0, 0, -3, -5, 0, -6,
-12, -12, 8, 0, -10, -1, -5, 0,
-1, -18, 4, -3, 0, 0, 4, 1,
-3, -20, 0, -20, -3, -33, -3, 11,
0, 5, 0, 0, 0, 0, 1, 0,
-7, -5, 0, -12, -4, 0, 0, 0,
0, -2, -2, 0, -2, -5, 0, 0,
0, 0, 0, -4, 0, -4, 0, -3,
-5, -3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, -3, 0, -5,
-8, -3, 4, 0, 0, 0, 0, 0,
0, -3, 0, 0, 3, 0, 0, 0,
0, -4, 0, -4, -3, -5, 0, 0,
0, 3, 0, -3, 0, 0, 0, 0,
-4, -6, 0, -7, 1, 12, -20, -8,
4, 0, -3, -25, -7, 0, -7, 0,
-25, 0, -7, -10, -3, 0, 0, 2,
-1, 3, -3, -15, 0, -19, -9, -8,
-9, -12, -5, -10, -1, -7, -10, 2,
-4, 1, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, 0, 0, -1,
0, -4, 0, -7, -8, -8, -1, 0,
0, 0, 0, -3, 0, 0, 0, 0,
2, -2, 0, 0, 0, -17, 13, -3,
-16, 0, 4, -6, 0, -19, -2, -5,
5, 0, -4, 6, 0, -13, -6, -14,
-13, -16, 0, 0, 0, -2, 0, 0,
0, -2, -2, -4, -10, -13, -1, -36,
0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, -4, 0, -2, -4, -6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 5, -8, 4,
-3, -1, -10, -4, 0, -5, -4, -7,
0, -6, 0, -1, -3, -1, -3, -7,
-5, 0, -3, 0, -8, 0, 0, 0,
-8, 0, -7, 0, -7, -7, 4, -7,
-8, 0, -4, -4, -5, 0, 0, 0,
0, 0, -4, 0, 0, -6, 0, -4,
0, -8, -10, -12, -3, 0, 0, 0,
0, 31, 0, 0, 2, 0, 0, -5,
0, 4, 0, 4, -5, 0, -3, -5,
-12, -3, -3, -3, -1, 0, 0, -1,
0, 0, 0, 0, -4, -3, -3, 0,
-3, 0, -3, 0, 0, 0, -3, -5,
-3, -3, -5, -3, 0, 15, -4, -5,
6, 0, 0, -18, -7, 4, -7, 3,
-12, 0, -3, -6, -1, 2, 0, 0,
-7, 0, 0, -7, 0, -7, -4, -6,
-4, -4, 0, -7, 2, -7, -7, 12,
0, 4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5, -8,
4, -3, -1, -10, -4, 0, -5, -4,
-7, 0, -6, 0, -1, -3, -1, -3,
-7, -5, 0, -3, 0, -8, 0, 0,
0, -8, 0, -7, 0, -7, -7, 4,
0, -7, -8, 0, -4, -4, -5, 0,
0, 0, 0, 0, -4, 0, 0, -6,
0, -4, 0, -8, -10, -12, -3, 0,
0, 0, 0, 31, 0, 0, 2, 0,
0, -5, 0, 4, 0, 0, 4, -5,
0, -3, -5, -12, -3, -3, -3, -1,
0, 0, -1, 0, 0, 0, 0, -4,
-3, -3, 0, -3, 0, -3, 0, 0,
0, -3, -5, -3, -3, -5, -3, 0,
0, 15, -4, -5, 6, 0, 0, -18,
-7, 4, -7, 3, -12, 0, -3, -6,
-1, 2, 0, 0, -7, 0, 0, -7,
0, -7, -4, -6, -4, -4, 0, -7,
2, -7, -7, 12, 0, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -3, 0,
0, 0, 0, 0, 0, 0, 0, 0,
-6, 0, 0, 0, 0, -5, 0, 0,
-4, -4, 0, 0, 0, 0, 0, -2,
0, 0, 0, 0, 0, -3, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -3,
0, 0, 0, 0, 0, 0, 0, 0,
0, -6, 0, 0, 0, 0, -5, 0,
0, -4, -4, 0, 0, 0, 0, 0,
-2, 0, 0, 0, 0, 0, -3, 0,
0, 0, 0, -8, 8, 1, -3, -18,
0, 0, -8, -4, -11, 0, -10, 0,
-6, -17, -4, -15, -15, -18, 0, -5,
0, -9, -4, -1, -4, -7, -10, -7,
-14, -16, -9, -4, 0, 12, -8, -14,
0, 1, -12, 0, -19, -3, -4, 1,
0, -5, 0, -3, -25, -5, -20, -4,
-28, 0, 1, 0, -3, 0, 0, 0,
0, -2, -3, -15, -3, 0, -25, 0,
-11, 0, 0, -2, -6, -12, -4, 0,
-3, 0, -17, -4, 0, -13, 0, -12,
-3, -7, -10, -4, -7, -6, 0, -5,
-7, -4, -7, 0, 2, 0, -3, -13,
0, 8, 0, 0, 0, 0, 0, -3,
-8, 0, 0, 0, 0, 0, 0, 0,
-4, 0, -4, 0, 0, -8, -4, 0,
-2, 0, 0, 0, 0, 0, 0, 2,
0, 0, 0, 0, 6, -12, 8, 0,
-4, 0, -3, 4, 0, -4, 0, -4,
0, 0, 0, 0, 0, -4, 0, 0,
-5, -6, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -4, -4, 0, -6,
3, -12, -8, 15, 7, 4, -33, -3,
8, -4, 0, -13, 0, -4, -4, -3,
4, -5, -3, -12, -3, 0, -11, 0,
-21, -5, 11, -5, -15, 1, -5, -13,
-13, -4, 15, 0, -14, -10, 12, 0,
1, -28, -3, 4, -7, -3, -14, -6,
-8, -6, -6, -3, 0, 0, -9, -8,
-4, -21, 0, -21, -5, 0, -13, -22,
-1, -12, -7, -13, -11, 10, 0, 0,
-13, 4, 0, 0, -20, 0, -4, -8,
-7, -13, -9, -10, 0, -5, -12, -4,
-9, -7, -12, -4, -7, 0, -12, -4,
0, -4, -8, -9, -10, -11, -15, -5,
-8, 0, -14, -13, 13, -4, 2, -36,
-14, -16, -9, -4, 0, 0, 12, -8,
-14, 0, 1, -12, 0, -19, -3, -4,
1, 0, -5, 0, -3, -25, -5, -20,
-4, -28, 0, 1, 0, -3, 0, 0,
0, 0, -2, -3, -15, -3, 0, -25,
0, 0, -11, 0, 0, -2, -6, -12,
-4, 0, -3, 0, -17, -4, 0, -13,
0, -12, -3, -7, -10, -4, -7, -6,
0, -5, -7, -4, -7, 0, 2, 0,
-3, -13, 0, 8, 0, 0, 0, 0,
0, 0, -3, -8, 0, 0, 0, 0,
0, 0, 0, -4, 0, -4, 0, 0,
-8, -4, 0, -2, 0, 0, 0, 0,
0, 0, 2, 0, 0, 0, 0, 6,
0, -12, 8, 0, -4, 0, -3, 4,
0, -4, 0, -4, 0, 0, 0, 0,
0, -4, 0, 0, -5, -6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
-4, -4, 0, -6, 0, 3, -12, -8,
15, 7, 4, -33, -3, 8, -4, 0,
-13, 0, -4, -4, -3, 4, -5, -3,
-12, -3, 0, -11, 0, -21, -5, 11,
-5, -15, 1, -5, -13, -13, -4, 15,
0, 0, -14, -10, 12, 0, 1, -28,
-3, 4, -7, -3, -14, -6, -8, -6,
-6, -3, 0, 0, -9, -8, -4, -21,
0, -21, -5, 0, -13, -22, -1, -12,
-7, -13, -11, 10, 0, 0, 0, -13,
4, 0, 0, -20, 0, -4, -8, -7,
-13, -9, -10, 0, -5, -12, -4, -9,
-7, -12, -4, -7, 0, -12, -4, 0,
-4, -8, -9, -10, -11, -15, -5, -8,
0, 0, -14, -13, 13, -4, 2, -36,
-7, 8, -8, -7, -16, -5, -12, -4,
-6, -3, -4, -8, -12, -1, 0, -25,
0, -23, -9, 9, -15, -26, -8, -13,
-16, -19, -13, 8, 0, 8, -7, 8,
0, 0, -12, -1, 0, -1, 0, 0,
0, -3, 0, 0, 0, 0, 0, -4,
0, 0, 1, 0, -5, 0, 0, 0,
0, -3, -3, -5, 0, 0, 0, 0,
0, 0, -8, -2, 0, 0, 0, -8,
0, -5, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, -4, 0,
0, -7, -6, -5, 0, -10, -4, -9,
0, 0, -10, 0, -4, -4, 0, 0,
0, 0, -31, -7, -15, -4, -14, 0,
-2, 0, 0, 0, 0, 0, 0, 0,
0, -6, -7, -3, -7, 0, 8, -3,
-9, -3, -7, -7, 0, -5, -2, -3,
0, 0, -1, 0, 0, -34, -3, -5,
0, -8, 0, 0, -3, -3, 0, 0,
0, 0, 3, 0, -3, -7, -3, 7,
-16, -19, -13, 8, 0, 0, 8, -7,
8, 0, 0, -12, -1, 0, -1, 0,
0, 0, -3, 0, 0, 0, 0, 0,
-4, 0, 0, 1, 0, -5, 0, 0,
0, 0, -3, -3, -5, 0, 0, 0,
-11, 0, 0, 0, -8, -2, 0, 0,
0, -8, 0, -5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0,
-4, 0, 0, -7, -10, -6, -5, 0,
-10, -4, -9, 0, 0, -10, 0, -4,
-4, 0, 0, 0, 0, -31, -7, -15,
-4, -14, 0, -2, 0, 0, 0, 0,
0, 0, 0, 0, -6, -7, -3, -7,
0, 0, 8, -3, -9, -3, -7, -7,
0, -5, -2, -3, 0, 0, -1, 0,
0, -34, -3, -5, 0, -8, 0, 0,
-3, -3, 0, 0, 0, 0, 3, 0,
-3, -7, -3, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 5, 0, 0,
0, 0, 0, -8, 0, 0, -10, -4,
-8, 0, 0, -11, 0, -4, 0, 0,
0, 0, 0, -37, 0, -8, -14, -19,
0, -6, 0, 0, 0, 0, 0, 0,
0, 0, -4, -6, -2, -6, 0, -4,
5, 19, 7, 8, -10, 5, 16, 5,
11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -4, 0, -3, 31,
17, 31, 0, 0, 0, 4, 0, 0,
14, 0, 0, 0, -3, 0, 0, 0,
0, 0, 5, 0, 0, 0, 0, 0,
-3, -8, 0, 0, -10, -4, -8, 0,
0, -11, 0, -4, 0, 0, 0, 0,
0, -37, 0, -8, -14, -19, 0, -6,
0, 0, 0, 0, 0, 0, 0, 0,
-4, -6, -2, -6, 7, 0, -4, 5,
19, 7, 8, -10, 5, 16, 5, 11,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -4, 0, -3, 31, 17,
31, 0, 0, 0, 4, 0, 0, 14,
0, 0, 0, 0, -3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
-6, -32, -5, -3, -16, -19, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, -4, 3,
7, 4, -12, 0, -1, -3, 4, 0,
0, 0, 0, 0, -10, 0, -3, -3,
-8, 0, -4, 0, -8, -3, 0, -3,
-7, 0, -4, -11, -8, -5, 0, 0,
0, 0, -3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -6, -32,
-5, -3, -16, -19, 0, 0, 0, 0,
0, 19, 0, 0, 0, 0, 0, 0,
0, 0, 0, -4, 1, -2, 1, -3,
-10, 1, 8, 1, 3, -15, -5, -9,
0, -6, -15, -7, -10, -16, -15, 0,
-3, -3, -5, -3, 0, -3, -1, 6,
0, 6, -3, 0, 12, 0, 0, 0,
-3, -4, -4, 0, 0, -10, 0, -2,
0, 0, 0, 0, 0, 0, 4, -4,
3, 7, 4, -12, 0, -1, -3, 4,
0, 0, 0, 0, 0, -10, 0, -3,
-3, -8, 0, -4, 0, -8, -3, 0,
-3, -7, 0, -4, -11, -8, -5, 0,
0, 0, 0, 0, -3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
-6, -32, -5, -3, -16, -19, 0, 0,
0, 0, 0, 19, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -4, 1,
-2, 1, -3, -10, 1, 8, 1, 3,
-15, -5, -9, 0, -6, -15, -7, -10,
-16, -15, 0, -3, -3, -5, -3, 0,
-3, -1, 6, 0, 6, -3, 0, 12,
0, 0, 0, 0, -3, -4, -4, 0,
0, -10, 0, -2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -4, -4, 0, -5,
0, 4, -7, -7, -3, 0, -11, -3,
-8, -3, -5, 0, 0, 0, 0, 0,
-4, -4, 0, -5, 0, 0, 4, -7,
-7, -3, 0, -11, -3, -8, -3, -5,
0, 0, 0, 0, 0, 0, 0, 0,
-7, 0, 0, 0, 0, -5, 0, -4,
0, 0, -2, 0, -13, 3, 4, 4,
-1, -11, 3, 6, 3, 12, -10, 0,
-3, 0, -3, -15, 0, 0, -12, -10,
0, -7, 0, -6, 0, -6, 0, -3,
6, 0, -3, -12, -4, 14, 0, 0,
-4, 3, 0, 0, -13, 0, -3, -1,
0, 0, 0, -3, 0, -3, -16, -5,
-8, 0, -12, 0, -4, 0, -7, 0,
2, 0, -4, 0, -4, -12, 0, -4,
4, 0, 1, 0, -5, -3, 0, -5,
0, 0, 0, 0, 0, -7, 0, 0,
0, 0, -5, 0, -4, 0, 0, -2,
0, 0, -13, 3, 4, 4, -1, -11,
3, 6, 3, 12, -10, 0, -3, 0,
-3, -15, 0, 0, -12, -10, 0, -7,
0, -6, 0, -6, 0, -3, 6, 0,
-3, -12, -4, 14, 0, 0, 0, -4,
3, 0, 0, -13, 0, -3, -1, 0,
0, 0, -3, 0, -3, -16, -5, -8,
0, -12, 0, -4, 0, -7, 0, 2,
0, -4, 0, -4, -12, 0, -4, 4,
0, 0, 1, 0, -5, -3, 0, -5,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, -3, 0, 0, 0, 0, 1, 0,
-4, -4, 0, 0, 8, -24, 1, 17,
12, 7, -15, 3, 16, 0, 14, 0,
-4, -4, 0, 0, 9, 8, -24, 1,
17, 12, 7, -15, 3, 16, 0, 14,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0
};
@ -1508,8 +1633,8 @@ static const lv_font_fmt_txt_kern_classes_t kern_classes =
.class_pair_values = kern_class_values,
.left_class_mapping = kern_left_class_mapping,
.right_class_mapping = kern_right_class_mapping,
.left_class_cnt = 45,
.right_class_cnt = 35,
.left_class_cnt = 46,
.right_class_cnt = 36,
};
/*--------------------
@ -1531,7 +1656,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.cmaps = cmaps,
.kern_dsc = &kern_classes,
.kern_scale = 16,
.cmap_num = 5,
.cmap_num = 4,
.bpp = 4,
.kern_classes = 1,
.bitmap_format = 0,

View File

@ -1,4 +1,6 @@
dependencies:
suda-morris/am2302_rmt: "^1.0.0"
espressif/esp_websocket_client: "^1.3.0"
joltwallet/littlefs: ^1.14.8
esp_lcd_touch_gt911:
version: ^1

View File

@ -1,8 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 50 50" width="100px" height="100px" style="enable-background:new 0 0 50 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="40.4,39.1 33.2,24.6 40,10.9 4.2,25 " />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 384 B

View File

@ -1,8 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="44.7,32.2 32.5,21.5 33.5,6.2 5.8,33 " />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 385 B

View File

@ -1,10 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" width="100px" height="100px" xml:space="preserve">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="33.9,44 32.8,27.8 44.3,17.7 5.8,17 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 382 B

View File

@ -1,10 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100px" height="100px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="39.1,9.6 24.6,16.8 10.9,10 25,45.8 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 382 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="32.2,5.3 21.5,17.5 6.2,16.5 33,44.2 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 382 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="24.1,4.1 18.9,19.5 4.4,24.4 39.7,39.7 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 384 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="45.8,25 9.6,10.9 16.8,25.4 10,39.1 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 381 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="16.1,6 17.2,22.2 5.7,32.3 44.2,33 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 380 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="5.3,17.8 17.5,28.5 16.5,43.8 44.2,17 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 383 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="10.9,40.4 25.4,33.2 39.1,40 25,4.2 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 381 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="25.9,45.9 31.1,30.5 45.6,25.6 10.3,10.3 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 386 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="4.1,25.9 19.5,31.1 24.4,45.6 39.7,10.3 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 385 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="17.8,44.7 28.5,32.5 43.8,33.5 17,5.8 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 383 B

View File

@ -1,9 +0,0 @@
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" width="100px" height="100px">
<style type="text/css">
.st0{fill:#003661;}
</style>
<g>
<polygon class="st0" points="6,33.9 22.2,32.8 32.3,44.3 33,5.8 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 380 B

View File

@ -1,27 +0,0 @@
E
ENE
ESE
N
NNO
NO
O
ONO
OSO
S
SE
SO
SSE
SSO
Variable
p14bisj
p14j
p16bisj
p1j
p1n
p26j
p26n
p29j
p2j
p2n
p4j
p4n

View File

@ -1 +0,0 @@
<svg id="Calque_14" data-name="Calque 14" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p10j-1{fill:#eeeb61;opacity:0.51;isolation:isolate;}.p10j-2{fill:#f5b21a;stroke:#fde901;}.p10j-2,.p10j-9{stroke-miterlimit:10;}.p10j-3{opacity:0.3;}.p10j-4{fill:#231f20;}.p10j-5{fill:#d8d9d8;}.p10j-6{fill:#79ccf1;}.p10j-7{fill:#fff;}.p10j-8{fill:#cf2e29;}.p10j-9{fill:none;stroke:#231f20;}</style></defs><title>14Plan de travail 1</title><circle class="p10j-1" cx="55.11" cy="31.25" r="20.16"/><circle class="p10j-2" cx="55.11" cy="31.25" r="15.38"/><g class="p10j-3"><path class="p10j-4" d="M66,38.45a14.77,14.77,0,0,0-27,4.91,8.62,8.62,0,0,1,6.66,4.22l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67A8.52,8.52,0,0,0,39,61H64.72A11.37,11.37,0,0,0,66,38.44Z"/><path class="p10j-4" d="M30.2,32.47a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.15.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.41,7.08,7.08,0,0,0,7.16,7H30.06a5.21,5.21,0,0,0,.13-10.42Z"/></g><path class="p10j-5" d="M63.34,35.88a14.77,14.77,0,0,0-27.08,4.91A8.63,8.63,0,0,1,42.88,45l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H62.06a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p10j-5" d="M27.58,29.88a9.3,9.3,0,0,0-9.3-7.61,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64L15.22,30c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46A7.08,7.08,0,0,0,11,40.27H27.48a5.21,5.21,0,0,0,.91-10.38,5.08,5.08,0,0,0-.78,0Z"/><rect class="p10j-6" x="36.84" y="64.71" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-34.12 85.2) rotate(-72.96)"/><rect class="p10j-6" x="44.72" y="68.95" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-32.6 95.74) rotate(-72.96)"/><rect class="p10j-6" x="27.44" y="64.01" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-40.09 75.73) rotate(-72.96)"/><rect class="p10j-6" x="61.28" y="69.64" width="7.48" height="1.95" rx="0.55" ry="0.55" transform="translate(-21.38 112.43) rotate(-73.19)"/><rect class="p10j-7" x="41.43" y="65.23" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="matrix(0.29, -0.96, 0.96, 0.29, -31.37, 89.96)"/><rect class="p10j-7" x="50.11" y="65.89" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-25.86 98.73) rotate(-72.96)"/><rect class="p10j-7" x="32.14" y="64.7" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-37.43 80.71) rotate(-72.96)"/><rect class="p10j-7" x="63.32" y="63.88" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-14.6 109.94) rotate(-72.96)"/><polygon class="p10j-7" points="58.4 68.2 79.98 68.2 69.19 50 58.4 68.2"/><path class="p10j-8" d="M82.34,69.55H56L69.19,47.37ZM60.77,66.88H77.62L69.2,52.68Z"/><path class="p10j-9" d="M69.35,56.16a10.2,10.2,0,0,0-1,3c0,1,1.77,1.43,1.77,2.84s-3.33,2.77-3.33,2.77"/><path class="p10j-9" d="M69.54,56.16a6.07,6.07,0,0,0-.77,2.31c0,1,2.36.89,2.8,2.76.33,1.39-1.17,3.57-1.17,3.57"/></svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_15" data-name="Calque 15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p10n-1{fill:#44454e;opacity:0.25;}.p10n-1,.p10n-3{isolation:isolate;}.p10n-2{fill:#fff;}.p10n-3{fill:#636573;opacity:0.18;}.p10n-4{fill:#fdfcea;}.p10n-5{opacity:0.3;}.p10n-6{fill:#231f20;}.p10n-7{fill:#d8d9d8;}.p10n-8{fill:#79ccf1;}.p10n-9{fill:#cf2e29;}.p10n-10{fill:none;stroke:#231f20;stroke-miterlimit:10;}</style></defs><title>15Plan de travail 1</title><circle class="p10n-1" cx="47.99" cy="31.49" r="22.87"/><path class="p10n-2" d="M58.3,34.49a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p10n-2" d="M60.71,32.07a.89.89,0,0,0-.89-.89h-3A.89.89,0,1,0,56.63,33h3.25a.9.9,0,0,0,.9-.88h-.07Z"/><path class="p10n-2" d="M29.58,19.55a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p10n-2" d="M32,17.16a.89.89,0,0,0-.89-.89h-3A.89.89,0,1,0,27.92,18h3.22a.9.9,0,0,0,.9-.88h0Z"/><path class="p10n-2" d="M54.72,17.16a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3A.89.89,0,0,0,54.72,17.16Z"/><path class="p10n-2" d="M57.14,14.72a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22a.9.9,0,0,0,.9-.88h0Z"/><path class="p10n-3" d="M47,15.28a16,16,0,0,1,5.69-.3,16.3,16.3,0,0,0,7,29.83A16.32,16.32,0,1,1,47,15.28Z"/><path class="p10n-4" d="M43.88,16.77a15.16,15.16,0,0,1,5.37-.28,15.39,15.39,0,0,0,6.63,28.17,15.41,15.41,0,1,1-12-27.91Z"/><g class="p10n-5"><path class="p10n-6" d="M66,40.08A14.77,14.77,0,0,0,39,45,8.62,8.62,0,0,1,45.6,49.2l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H64.72A11.37,11.37,0,0,0,66,40.07Z"/><path class="p10n-6" d="M30.2,34.1a9.3,9.3,0,0,0-9.3-7.65A9.53,9.53,0,0,0,13.4,30c2,.32,4.53,1.21,5.63,3.64l-1.15.5c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H30.1A5.21,5.21,0,0,0,30.23,34Z"/></g><path class="p10n-7" d="M63.34,37.47a14.77,14.77,0,0,0-27.08,4.91,8.64,8.64,0,0,1,6.62,4.17l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H62.06a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p10n-7" d="M27.58,31.48a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46A7.08,7.08,0,0,0,11,41.87H27.48a5.21,5.21,0,0,0,.13-10.42Z"/><rect class="p10n-8" x="36.83" y="67.86" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-37.14 87.43) rotate(-72.96)"/><rect class="p10n-8" x="44.71" y="70.57" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-34.16 96.88) rotate(-72.96)"/><rect class="p10n-8" x="27.44" y="65.65" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-41.66 76.88) rotate(-72.96)"/><rect class="p10n-8" x="59.08" y="63.32" width="7.46" height="1.94" rx="0.55" ry="0.55" transform="translate(-16.9 105.82) rotate(-73.19)"/><rect class="p10n-2" x="41.42" y="66.41" width="7.48" height="1.95" rx="0.55" ry="0.55" transform="translate(-32.41 91.12) rotate(-73.19)"/><rect class="p10n-2" x="49.93" y="67.87" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-27.88 99.96) rotate(-72.96)"/><rect class="p10n-2" x="32.59" y="66.74" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-39.06 82.58) rotate(-72.96)"/><rect class="p10n-2" x="60.32" y="65.5" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-18.27 108.22) rotate(-72.96)"/><polygon class="p10n-2" points="59.1 71.18 80.67 71.18 69.89 52.98 59.1 71.18"/><path class="p10n-9" d="M83,72.55H56.74L69.88,50.36Zm-21.58-2.7H78.3L69.88,55.64Z"/><path class="p10n-10" d="M70.07,59.16a10.2,10.2,0,0,0-1,3c0,1,1.77,1.43,1.77,2.84s-3.33,2.77-3.33,2.77"/><path class="p10n-10" d="M70.24,59.16a6.07,6.07,0,0,0-.77,2.31c0,1,2.36.89,2.8,2.76.33,1.39-1.17,3.57-1.17,3.57"/></svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p11j-0{opacity:0.3;}
.p11j-1{fill:#231F20;}
.p11j-2{fill:#D8D9D8;}
.p11j-3{fill:#79CCF1;}
.p11j-4{fill:#FFFFFF;}
.p11j-5{fill:#CF2E29;}
.p11j-6{fill:none;stroke:#231F20;stroke-miterlimit:10;}
</style>
<title>16Plan de travail 1</title>
<g class="p11j-0">
<path class="p11j-1" d="M64,31.6c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.6,10.8-11.9
C73.3,37,69.3,32.5,64,31.6L64,31.6z"/>
<path class="p11j-1" d="M28.2,25.7c-0.8-4.5-4.7-7.7-9.3-7.7c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.1,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C33.4,28,31.1,25.7,28.2,25.7
L28.2,25.7z"/>
</g>
<path class="p11j-2" d="M61.3,29C57.1,22.1,48,19.9,41,24.2c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.8c6.3-0.1,11.3-5.2,11.3-11.5
C71.3,34.5,67,29.7,61.3,29L61.3,29z"/>
<path class="p11j-2" d="M25.6,23c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.5c2.9,0,5.2-2.3,5.3-5.2S28.5,23,25.6,23L25.6,23z"/>
<path class="p11j-3" d="M37.6,63.5l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L38,64.2C37.7,64.1,37.5,63.8,37.6,63.5z"/>
<path class="p11j-3" d="M46.1,68.5l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L48,69.1c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C46.2,69.1,46.1,68.8,46.1,68.5z"/>
<path class="p11j-3" d="M27.3,63.5l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C27.4,64.1,27.2,63.8,27.3,63.5z"/>
<path class="p11j-3" d="M57.8,62.3l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L58.2,63C57.9,62.9,57.7,62.6,57.8,62.3z"/>
<path class="p11j-4" d="M42.7,62.3l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L43.1,63C42.8,62.9,42.6,62.6,42.7,62.3z"/>
<path class="p11j-4" d="M51.8,63.6l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C51.9,64.1,51.7,63.8,51.8,63.6z"/>
<path class="p11j-4" d="M32.6,62.2l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C32.6,62.8,32.5,62.5,32.6,62.2z"/>
<polygon class="p11j-4" points="58.4,65.4 80,65.4 69.2,47.2 "/>
<path class="p11j-5" d="M82.3,66.7H56l13.2-22.2L82.3,66.7z M60.8,64h16.9l-8.4-14.2L60.8,64z"/>
<path class="p11j-6" d="M69.4,53.3c-0.5,0.9-0.8,2-1,3c0,1,1.8,1.4,1.8,2.8s-3.3,2.8-3.3,2.8"/>
<path class="p11j-6" d="M69.5,53.3c-0.4,0.7-0.7,1.5-0.8,2.3c0,1,2.4,0.9,2.8,2.8c0.3,1.4-1.2,3.6-1.2,3.6"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p11n-0{opacity:0.3;}
.p11n-1{fill:#231F20;}
.p11n-2{fill:#D8D9D8;}
.p11n-3{fill:#79CCF1;}
.p11n-4{fill:#FFFFFF;}
.p11n-5{fill:#CF2E29;}
.p11n-6{fill:none;stroke:#231F20;stroke-miterlimit:10;}
</style>
<title>16Plan de travail 1</title>
<g class="p11n-0">
<path class="p11n-1" d="M64,31.6c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.6,10.8-11.9
C73.3,37,69.3,32.5,64,31.6L64,31.6z"/>
<path class="p11n-1" d="M28.2,25.7c-0.8-4.5-4.7-7.7-9.3-7.7c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.1,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C33.4,28,31.1,25.7,28.2,25.7
L28.2,25.7z"/>
</g>
<path class="p11n-2" d="M61.3,29C57.1,22.1,48,19.9,41,24.2c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.8c6.3-0.1,11.3-5.2,11.3-11.5
C71.3,34.5,67,29.7,61.3,29L61.3,29z"/>
<path class="p11n-2" d="M25.6,23c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.5c2.9,0,5.2-2.3,5.3-5.2S28.5,23,25.6,23L25.6,23z"/>
<path class="p11n-3" d="M37.6,63.5l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L38,64.2C37.7,64.1,37.5,63.8,37.6,63.5z"/>
<path class="p11n-3" d="M46.1,68.5l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L48,69.1c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C46.2,69.1,46.1,68.8,46.1,68.5z"/>
<path class="p11n-3" d="M27.3,63.5l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C27.4,64.1,27.2,63.8,27.3,63.5z"/>
<path class="p11n-3" d="M57.8,62.3l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L58.2,63C57.9,62.9,57.7,62.6,57.8,62.3z"/>
<path class="p11n-4" d="M42.7,62.3l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L43.1,63C42.8,62.9,42.6,62.6,42.7,62.3z"/>
<path class="p11n-4" d="M51.8,63.6l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C51.9,64.1,51.7,63.8,51.8,63.6z"/>
<path class="p11n-4" d="M32.6,62.2l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C32.6,62.8,32.5,62.5,32.6,62.2z"/>
<polygon class="p11n-4" points="58.4,65.4 80,65.4 69.2,47.2 "/>
<path class="p11n-5" d="M82.3,66.7H56l13.2-22.2L82.3,66.7z M60.8,64h16.9l-8.4-14.2L60.8,64z"/>
<path class="p11n-6" d="M69.4,53.3c-0.5,0.9-0.8,2-1,3c0,1,1.8,1.4,1.8,2.8s-3.3,2.8-3.3,2.8"/>
<path class="p11n-6" d="M69.5,53.3c-0.4,0.7-0.7,1.5-0.8,2.3c0,1,2.4,0.9,2.8,2.8c0.3,1.4-1.2,3.6-1.2,3.6"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_17" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p12bisj-0{opacity:0.51;fill:#EEEB61;enable-background:new ;}
.p12bisj-1{fill:#F5B21A;stroke:#FDE901;stroke-miterlimit:10;}
.p12bisj-2{opacity:0.3;}
.p12bisj-3{fill:#231F20;}
.p12bisj-4{fill:#D8D9D8;}
.p12bisj-5{fill:#79CCF1;}
.p12bisj-6{fill:#FFFFFF;}
</style>
<title>17Plan de travail 1</title>
<circle class="p12bisj-0" cx="58.5" cy="32.2" r="20.2"/>
<circle class="p12bisj-1" cx="58.5" cy="32.2" r="15.4"/>
<g class="p12bisj-2">
<path class="p12bisj-3" d="M68.8,41.9c-4.3-7-13.4-9.1-20.3-4.9c-3.5,2.2-6,5.7-6.8,9.7c2.8,0.3,5.3,1.8,6.7,4.3l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.6,10.8-11.9
C78,47.2,74,42.7,68.8,41.9L68.8,41.9z"/>
<path class="p12bisj-3" d="M33,35.9c-0.8-4.5-4.7-7.7-9.3-7.7c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6L20.6,36
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0h16.4c2.9,0,5.3-2.3,5.3-5.1S35.9,35.9,33,35.9
L33,35.9L33,35.9L33,35.9z"/>
</g>
<path class="p12bisj-4" d="M66.1,39.2c-4.3-7-13.4-9.1-20.3-4.9c-3.5,2.2-6,5.7-6.8,9.7c2.8,0.3,5.2,1.8,6.6,4.2L44.5,49
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.8c6.3-0.3,11.1-5.7,10.8-11.9
C75.4,44.5,71.4,40.1,66.1,39.2L66.1,39.2z"/>
<path class="p12bisj-4" d="M30.4,33.3c-0.8-4.5-4.7-7.7-9.3-7.7c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6L18,33.4
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0h16.5c2.9,0,5.2-2.3,5.3-5.1
C35.6,35.6,33.3,33.3,30.4,33.3L30.4,33.3L30.4,33.3z"/>
<path class="p12bisj-5" d="M44,72.2l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C44.1,72.8,43.9,72.5,44,72.2z"/>
<path class="p12bisj-5" d="M53.7,72.2l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4L57,66c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1c-0.1,0.3-0.4,0.5-0.7,0.4
L54,72.9C53.7,72.8,53.6,72.5,53.7,72.2z"/>
<path class="p12bisj-5" d="M33.7,72.2l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4L37,66c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C33.8,72.8,33.6,72.5,33.7,72.2z"/>
<path class="p12bisj-5" d="M63.6,72.2l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4L67,66c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1c-0.1,0.3-0.4,0.5-0.7,0.4
L64,72.9C63.7,72.8,63.5,72.5,63.6,72.2z"/>
<path class="p12bisj-5" d="M72.6,72.2l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4L76,66c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1c-0.1,0.3-0.4,0.5-0.7,0.4
L73,72.9C72.7,72.8,72.6,72.5,72.6,72.2z"/>
<path class="p12bisj-6" d="M48.8,71.8l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C48.9,72.4,48.7,72.1,48.8,71.8z"/>
<path class="p12bisj-6" d="M58.7,72.2l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4L62,66c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1c-0.1,0.3-0.4,0.5-0.7,0.4
L59,72.9C58.7,72.8,58.6,72.5,58.7,72.2z"/>
<path class="p12bisj-6" d="M38.9,72.2l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C39,72.8,38.9,72.5,38.9,72.2z"/>
<path class="p12bisj-6" d="M68.1,72.2l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L70,72.7c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C68.2,72.8,68.1,72.5,68.1,72.2z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_17" data-name="Calque 17" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p12j-1{fill:#eeeb61;opacity:0.51;isolation:isolate;}.p12j-2{fill:#f5b21a;stroke:#fde901;stroke-miterlimit:10;}.p12j-3{opacity:0.3;}.p12j-4{fill:#231f20;}.p12j-5{fill:#d8d9d8;}.p12j-6{fill:#79ccf1;}.p12j-7{fill:#fff;}</style></defs><title>17Plan de travail 1</title><circle class="p12j-1" cx="58.46" cy="32.24" r="20.16" transform="translate(25.48 90.28) rotate(-89.27)"/><circle class="p12j-2" cx="58.46" cy="32.24" r="15.38"/><g class="p12j-3"><path class="p12j-4" d="M68.75,41.86a14.77,14.77,0,0,0-27.08,4.88A8.62,8.62,0,0,1,48.33,51l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48h25.7a11.37,11.37,0,0,0,1.25-22.59Z"/><path class="p12j-4" d="M33,35.88a9.29,9.29,0,0,0-9.3-7.65,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64L20.63,36c-1.36-3-6-3.1-6.71-3.1a6.94,6.94,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.23,6.93h16.4A5.21,5.21,0,1,0,33,35.85h0Z"/></g><path class="p12j-5" d="M66.13,39.24a14.77,14.77,0,0,0-27.08,4.89,8.62,8.62,0,0,1,6.64,4.21L44.55,49c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H64.85a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p12j-5" d="M30.37,33.26a9.29,9.29,0,0,0-9.3-7.65,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64L18,33.36c-1.36-3-6-3.1-6.71-3.1a6.94,6.94,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.23,6.93H30.27a5.21,5.21,0,1,0,.13-10.42h0Z"/><rect class="p12j-6" x="42.15" y="68.47" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-33.96 92.94) rotate(-72.96)"/><rect class="p12j-6" x="51.79" y="68.47" width="7.46" height="1.94" rx="0.55" ry="0.55" transform="translate(-27.01 102.5) rotate(-73.19)"/><rect class="p12j-6" x="31.85" y="68.47" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-41.25 83.1) rotate(-72.96)"/><rect class="p12j-6" x="61.75" y="68.47" width="7.46" height="1.94" rx="0.55" ry="0.55" transform="translate(-19.93 112.04) rotate(-73.19)"/><rect class="p12j-6" x="70.77" y="68.47" width="7.46" height="1.94" rx="0.55" ry="0.55" transform="translate(-13.52 120.67) rotate(-73.19)"/><rect class="p12j-7" x="46.83" y="68.46" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="matrix(0.29, -0.96, 0.96, 0.29, -30.64, 97.41)"/><rect class="p12j-7" x="56.79" y="68.47" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-23.61 106.94) rotate(-72.96)"/><rect class="p12j-7" x="37.08" y="68.46" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-37.54 88.1) rotate(-72.96)"/><rect class="p12j-7" x="66.28" y="68.47" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-16.9 116.01) rotate(-72.96)"/></svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_18" data-name="Calque 18" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p12n-1{fill:#44454e;opacity:0.25;}.p12n-1,.p12n-3{isolation:isolate;}.p12n-2{fill:#fff;}.p12n-3{fill:#636573;opacity:0.18;}.p12n-4{fill:#fdfcea;}.p12n-5{opacity:0.3;}.p12n-6{fill:#231f20;}.p12n-7{fill:#d8d9d8;}.p12n-8{fill:#79ccf1;}</style></defs><title>18Plan de travail 1</title><circle class="p12n-1" cx="51.55" cy="33.04" r="20.24"/><path class="p12n-2" d="M60.66,35.69a.8.8,0,0,0,.79-.79h0V32.25a.79.79,0,1,0-1.57-.18.54.54,0,0,0,0,.18v2.69a.79.79,0,0,0,.78.8h0Z"/><path class="p12n-2" d="M62.8,33.55a.79.79,0,0,0-.79-.79H59.36a.79.79,0,0,0-.17,1.57H62a.81.81,0,0,0,.8-.78h0Z"/><path class="p12n-2" d="M35.25,22.47a.8.8,0,0,0,.79-.79h0V19a.79.79,0,1,0-1.57-.18.54.54,0,0,0,0,.18v2.65a.79.79,0,0,0,.78.8h0Z"/><path class="p12n-2" d="M37.39,20.33a.79.79,0,0,0-.79-.79H34a.79.79,0,0,0-.17,1.57h2.85a.81.81,0,0,0,.8-.78h0Z"/><path class="p12n-2" d="M57.5,20.33a.8.8,0,0,0,.79-.79h0v-2.6a.79.79,0,1,0-1.57-.18.54.54,0,0,0,0,.18v2.65a.79.79,0,0,0,.78.8h0Z"/><path class="p12n-2" d="M59.64,18.19a.79.79,0,0,0-.79-.79H56.2A.79.79,0,0,0,56,19h2.83a.81.81,0,0,0,.8-.78h0Z"/><path class="p12n-3" d="M51.86,18.7a14.49,14.49,0,0,1,5-.27,14.42,14.42,0,0,0,6.19,26.4A14.44,14.44,0,1,1,47.16,20.71,14.2,14.2,0,0,1,51.86,18.7Z"/><path class="p12n-4" d="M47.92,20a13.54,13.54,0,0,1,4.75-.25,13.62,13.62,0,0,0,5.84,24.89A13.64,13.64,0,1,1,47.86,19.94Z"/><g class="p12n-5"><path class="p12n-6" d="M68.94,41.94a14.77,14.77,0,0,0-27,4.91,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.7a11.37,11.37,0,0,0,1.23-22.57Z"/><path class="p12n-6" d="M33.18,35.94a9.29,9.29,0,0,0-9.32-7.61,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.07,7.07,0,0,0,7.22,6.93H33A5.21,5.21,0,0,0,33.15,36Z"/></g><path class="p12n-7" d="M66.32,39.33a14.77,14.77,0,0,0-27.08,4.91,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65a11.37,11.37,0,0,0,1.23-22.57Z"/><path class="p12n-7" d="M30.56,33.33a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46A7.07,7.07,0,0,0,14,43.72H30.46a5.21,5.21,0,0,0,.13-10.42Z"/><rect class="p12n-8" x="40.72" y="67.71" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-34.24 91.04) rotate(-72.96)"/><rect class="p12n-8" x="51.03" y="67.77" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-27.01 100.94) rotate(-72.96)"/><rect class="p12n-8" x="30.4" y="67.71" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-41.54 81.17) rotate(-72.96)"/><rect class="p12n-8" x="61.05" y="67.71" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-19.87 110.48) rotate(-72.96)"/><rect class="p12n-8" x="71.18" y="67.71" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-12.71 120.16) rotate(-72.96)"/><rect class="p12n-2" x="45.96" y="67.71" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="translate(-30.54 96.05) rotate(-72.96)"/><rect class="p12n-2" x="35.73" y="67.7" width="7.44" height="1.93" rx="0.55" ry="0.55" transform="matrix(0.29, -0.96, 0.96, 0.29, -37.76, 86.26)"/><rect class="p12n-2" x="66.43" y="67.75" width="7.46" height="1.94" rx="0.55" ry="0.55" transform="translate(-15.91 116.01) rotate(-73.19)"/><rect class="p12n-2" x="56.18" y="67.74" width="7.46" height="1.94" rx="0.55" ry="0.55" transform="translate(-23.19 106.18) rotate(-73.19)"/></svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p13j-0{opacity:0.3;}
.p13j-1{fill:#231F20;}
.p13j-2{fill:#D8D9D8;}
.p13j-3{fill:#79CCF1;}
.p13j-4{fill:#FFFFFF;}
</style>
<title>19Plan de travail 1</title>
<g class="p13j-0">
<path class="p13j-1" d="M68.9,34.4c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C78.2,39.7,74.2,35.3,68.9,34.4L68.9,34.4z"/>
<path class="p13j-1" d="M33.2,28.4c-0.8-4.5-4.8-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0H33c2.9,0,5.2-2.3,5.3-5.1
C38.3,30.8,36,28.5,33.2,28.4L33.2,28.4z"/>
</g>
<path class="p13j-2" d="M66.3,31.8c-4.3-7-13.4-9.1-20.3-4.9c-3.5,2.2-6,5.7-6.8,9.7c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.4,11-5.8,10.6-12.1
C75.3,37.1,71.4,32.7,66.3,31.8z"/>
<path class="p13j-2" d="M30.5,25.8c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0h16.4c2.9,0,5.2-2.3,5.3-5.1
C35.7,28.2,33.4,25.8,30.5,25.8L30.5,25.8L30.5,25.8L30.5,25.8z"/>
<path class="p13j-3" d="M41.3,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C41.4,66.7,41.3,66.4,41.3,66.1z"/>
<path class="p13j-3" d="M51.6,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L52,66.8C51.7,66.7,51.6,66.4,51.6,66.1z"/>
<path class="p13j-3" d="M31,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C31.1,66.7,30.9,66.4,31,66.1z"/>
<path class="p13j-3" d="M61.7,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L62,66.8C61.7,66.7,61.6,66.4,61.7,66.1z"/>
<path class="p13j-3" d="M71.8,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C71.9,66.7,71.7,66.4,71.8,66.1z"/>
<path class="p13j-4" d="M46.6,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C46.6,66.7,46.5,66.4,46.6,66.1z"/>
<path class="p13j-4" d="M36.3,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C36.4,66.7,36.3,66.3,36.3,66.1z"/>
<path class="p13j-4" d="M67.1,66.1l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C67.1,66.7,67,66.4,67.1,66.1z"/>
<path class="p13j-4" d="M56.8,66.1l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C56.9,66.7,56.7,66.4,56.8,66.1z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p13n-0{opacity:0.3;}
.p13n-1{fill:#231F20;}
.p13n-2{fill:#D8D9D8;}
.p13n-3{fill:#79CCF1;}
.p13n-4{fill:#FFFFFF;}
</style>
<title>19Plan de travail 1</title>
<g class="p13n-0">
<path class="p13n-1" d="M68.9,34.4c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C78.2,39.7,74.2,35.3,68.9,34.4L68.9,34.4z"/>
<path class="p13n-1" d="M33.2,28.4c-0.8-4.5-4.8-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0H33c2.9,0,5.2-2.3,5.3-5.1
C38.3,30.8,36,28.5,33.2,28.4L33.2,28.4z"/>
</g>
<path class="p13n-2" d="M66.3,31.8c-4.3-7-13.4-9.1-20.3-4.9c-3.5,2.2-6,5.7-6.8,9.7c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.4,11-5.8,10.6-12.1
C75.3,37.1,71.4,32.7,66.3,31.8z"/>
<path class="p13n-2" d="M30.5,25.8c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0h16.4c2.9,0,5.2-2.3,5.3-5.1
C35.7,28.2,33.4,25.8,30.5,25.8L30.5,25.8L30.5,25.8L30.5,25.8z"/>
<path class="p13n-3" d="M41.3,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C41.4,66.7,41.3,66.4,41.3,66.1z"/>
<path class="p13n-3" d="M51.6,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L52,66.8C51.7,66.7,51.6,66.4,51.6,66.1z"/>
<path class="p13n-3" d="M31,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C31.1,66.7,30.9,66.4,31,66.1z"/>
<path class="p13n-3" d="M61.7,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4L62,66.8C61.7,66.7,61.6,66.4,61.7,66.1z"/>
<path class="p13n-3" d="M71.8,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C71.9,66.7,71.7,66.4,71.8,66.1z"/>
<path class="p13n-4" d="M46.6,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C46.6,66.7,46.5,66.4,46.6,66.1z"/>
<path class="p13n-4" d="M36.3,66.1l1.9-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.9,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C36.4,66.7,36.3,66.3,36.3,66.1z"/>
<path class="p13n-4" d="M67.1,66.1l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C67.1,66.7,67,66.4,67.1,66.1z"/>
<path class="p13n-4" d="M56.8,66.1l1.8-6.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-1.8,6.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C56.9,66.7,56.7,66.4,56.8,66.1z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p14bisj-0{opacity:0.3;}
.p14bisj-1{fill:#231F20;}
.p14bisj-2{fill:#D8D9D8;}
.p14bisj-3{fill:#79CCF1;}
.p14bisj-4{fill:#FFFFFF;}
</style>
<title>22Plan de travail 1</title>
<g class="p14bisj-0">
<path class="p14bisj-1" d="M68.9,31.4c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C78.2,36.7,74.2,32.3,68.9,31.4L68.9,31.4z"/>
<path class="p14bisj-1" d="M33.2,25.5c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,1-4.6,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0H33c2.9,0,5.2-2.3,5.3-5.1
C38.3,27.8,36,25.5,33.2,25.5L33.2,25.5z"/>
</g>
<path class="p14bisj-2" d="M66.3,28.9C62,21.9,52.9,19.8,46,24c-3.5,2.2-6,5.7-6.7,9.7c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.4,11-5.8,10.7-12C75.4,34.2,71.5,29.8,66.3,28.9
L66.3,28.9z"/>
<path class="p14bisj-2" d="M30.5,22.9c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6L18.2,23
c-1.4-3-6-3.1-6.7-3.1c-2.8,1-4.6,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C35.7,25.2,33.4,22.9,30.5,22.9
L30.5,22.9z"/>
<path class="p14bisj-3" d="M36.7,60.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C36.9,61.8,36.5,61.3,36.7,60.7C36.7,60.8,36.7,60.7,36.7,60.7z"/>
<path class="p14bisj-3" d="M34.3,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C34.5,69.8,34.2,69.3,34.3,68.7C34.3,68.7,34.3,68.7,34.3,68.7z"/>
<path class="p14bisj-3" d="M47.7,60.7l1.4-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C47.9,61.8,47.5,61.3,47.7,60.7C47.7,60.8,47.7,60.7,47.7,60.7z"/>
<path class="p14bisj-3" d="M45.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C45.5,69.8,45.2,69.3,45.4,68.7C45.4,68.7,45.4,68.7,45.4,68.7z"/>
<path class="p14bisj-3" d="M58.7,60.7l1.4-4.8c0.1-0.5,0.7-0.8,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C58.9,61.8,58.6,61.3,58.7,60.7C58.7,60.8,58.7,60.8,58.7,60.7z"/>
<path class="p14bisj-3" d="M56.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C56.5,69.8,56.2,69.3,56.4,68.7C56.4,68.7,56.4,68.7,56.4,68.7z"/>
<path class="p14bisj-3" d="M72.3,55.2L72.3,55.2c0.5,0.2,0.8,0.7,0.7,1.2l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C71.2,55.4,71.8,55.1,72.3,55.2C72.3,55.2,72.3,55.2,72.3,55.2L72.3,55.2z"/>
<path class="p14bisj-3" d="M70,63.2L70,63.2c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C68.9,63.4,69.5,63.1,70,63.2C70,63.2,70,63.2,70,63.2L70,63.2z"/>
<path class="p14bisj-4" d="M67.3,55.2L67.3,55.2c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C66.2,55.4,66.8,55.1,67.3,55.2C67.3,55.2,67.3,55.2,67.3,55.2L67.3,55.2z"/>
<path class="p14bisj-4" d="M65,63.2L65,63.2c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C63.9,63.4,64.5,63.1,65,63.2C65,63.2,65,63.2,65,63.2L65,63.2z"/>
<path class="p14bisj-4" d="M53.7,60.7l1.3-4.8c0.1-0.5,0.7-0.8,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C53.9,61.8,53.6,61.3,53.7,60.7C53.7,60.7,53.7,60.7,53.7,60.7z"/>
<path class="p14bisj-4" d="M51.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C51.5,69.8,51.2,69.3,51.4,68.7C51.4,68.7,51.4,68.7,51.4,68.7z"/>
<path class="p14bisj-4" d="M42.7,60.7l1.4-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C42.9,61.8,42.5,61.3,42.7,60.7C42.7,60.8,42.7,60.7,42.7,60.7z"/>
<path class="p14bisj-4" d="M40.3,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0.1,0,0.1,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C40.6,69.9,40.2,69.3,40.3,68.7C40.3,68.8,40.3,68.7,40.3,68.7z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p14j-0{opacity:0.3;}
.p14j-1{fill:#231F20;}
.p14j-2{fill:#D8D9D8;}
.p14j-3{fill:#79CCF1;}
.p14j-4{fill:#FFFFFF;}
</style>
<title>22Plan de travail 1</title>
<g class="p14j-0">
<path class="p14j-1" d="M68.9,31.4c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C78.2,36.7,74.2,32.3,68.9,31.4L68.9,31.4z"/>
<path class="p14j-1" d="M33.2,25.5c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,1-4.6,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0H33c2.9,0,5.2-2.3,5.3-5.1
C38.3,27.8,36,25.5,33.2,25.5L33.2,25.5z"/>
</g>
<path class="p14j-2" d="M66.3,28.9C62,21.9,52.9,19.8,46,24c-3.5,2.2-6,5.7-6.7,9.7c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.4,11-5.8,10.7-12C75.4,34.2,71.5,29.8,66.3,28.9
L66.3,28.9z"/>
<path class="p14j-2" d="M30.5,22.9c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6L18.2,23
c-1.4-3-6-3.1-6.7-3.1c-2.8,1-4.6,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C35.7,25.2,33.4,22.9,30.5,22.9
L30.5,22.9z"/>
<path class="p14j-3" d="M36.7,60.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C36.9,61.8,36.5,61.3,36.7,60.7C36.7,60.8,36.7,60.7,36.7,60.7z"/>
<path class="p14j-3" d="M34.3,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C34.5,69.8,34.2,69.3,34.3,68.7C34.3,68.7,34.3,68.7,34.3,68.7z"/>
<path class="p14j-3" d="M47.7,60.7l1.4-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C47.9,61.8,47.5,61.3,47.7,60.7C47.7,60.8,47.7,60.7,47.7,60.7z"/>
<path class="p14j-3" d="M45.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C45.5,69.8,45.2,69.3,45.4,68.7C45.4,68.7,45.4,68.7,45.4,68.7z"/>
<path class="p14j-3" d="M58.7,60.7l1.4-4.8c0.1-0.5,0.7-0.8,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C58.9,61.8,58.6,61.3,58.7,60.7C58.7,60.8,58.7,60.8,58.7,60.7z"/>
<path class="p14j-3" d="M56.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C56.5,69.8,56.2,69.3,56.4,68.7C56.4,68.7,56.4,68.7,56.4,68.7z"/>
<path class="p14j-3" d="M72.3,55.2L72.3,55.2c0.5,0.2,0.8,0.7,0.7,1.2l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C71.2,55.4,71.8,55.1,72.3,55.2C72.3,55.2,72.3,55.2,72.3,55.2L72.3,55.2z"/>
<path class="p14j-3" d="M70,63.2L70,63.2c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C68.9,63.4,69.5,63.1,70,63.2C70,63.2,70,63.2,70,63.2L70,63.2z"/>
<path class="p14j-4" d="M67.3,55.2L67.3,55.2c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C66.2,55.4,66.8,55.1,67.3,55.2C67.3,55.2,67.3,55.2,67.3,55.2L67.3,55.2z"/>
<path class="p14j-4" d="M65,63.2L65,63.2c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C63.9,63.4,64.5,63.1,65,63.2C65,63.2,65,63.2,65,63.2L65,63.2z"/>
<path class="p14j-4" d="M53.7,60.7l1.3-4.8c0.1-0.5,0.7-0.8,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C53.9,61.8,53.6,61.3,53.7,60.7C53.7,60.7,53.7,60.7,53.7,60.7z"/>
<path class="p14j-4" d="M51.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C51.5,69.8,51.2,69.3,51.4,68.7C51.4,68.7,51.4,68.7,51.4,68.7z"/>
<path class="p14j-4" d="M42.7,60.7l1.4-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C42.9,61.8,42.5,61.3,42.7,60.7C42.7,60.8,42.7,60.7,42.7,60.7z"/>
<path class="p14j-4" d="M40.3,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0.1,0,0.1,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C40.6,69.9,40.2,69.3,40.3,68.7C40.3,68.8,40.3,68.7,40.3,68.7z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p14n-0{opacity:0.3;}
.p14n-1{fill:#231F20;}
.p14n-2{fill:#D8D9D8;}
.p14n-3{fill:#79CCF1;}
.p14n-4{fill:#FFFFFF;}
</style>
<title>22Plan de travail 1</title>
<g class="p14n-0">
<path class="p14n-1" d="M68.9,31.4c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C78.2,36.7,74.2,32.3,68.9,31.4L68.9,31.4z"/>
<path class="p14n-1" d="M33.2,25.5c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,1-4.6,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0H33c2.9,0,5.2-2.3,5.3-5.1
C38.3,27.8,36,25.5,33.2,25.5L33.2,25.5z"/>
</g>
<path class="p14n-2" d="M66.3,28.9C62,21.9,52.9,19.8,46,24c-3.5,2.2-6,5.7-6.7,9.7c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.4,11-5.8,10.7-12C75.4,34.2,71.5,29.8,66.3,28.9
L66.3,28.9z"/>
<path class="p14n-2" d="M30.5,22.9c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6L18.2,23
c-1.4-3-6-3.1-6.7-3.1c-2.8,1-4.6,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C35.7,25.2,33.4,22.9,30.5,22.9
L30.5,22.9z"/>
<path class="p14n-3" d="M36.7,60.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C36.9,61.8,36.5,61.3,36.7,60.7C36.7,60.8,36.7,60.7,36.7,60.7z"/>
<path class="p14n-3" d="M34.3,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C34.5,69.8,34.2,69.3,34.3,68.7C34.3,68.7,34.3,68.7,34.3,68.7z"/>
<path class="p14n-3" d="M47.7,60.7l1.4-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C47.9,61.8,47.5,61.3,47.7,60.7C47.7,60.8,47.7,60.7,47.7,60.7z"/>
<path class="p14n-3" d="M45.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C45.5,69.8,45.2,69.3,45.4,68.7C45.4,68.7,45.4,68.7,45.4,68.7z"/>
<path class="p14n-3" d="M58.7,60.7l1.4-4.8c0.1-0.5,0.7-0.8,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C58.9,61.8,58.6,61.3,58.7,60.7C58.7,60.8,58.7,60.8,58.7,60.7z"/>
<path class="p14n-3" d="M56.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C56.5,69.8,56.2,69.3,56.4,68.7C56.4,68.7,56.4,68.7,56.4,68.7z"/>
<path class="p14n-3" d="M72.3,55.2L72.3,55.2c0.5,0.2,0.8,0.7,0.7,1.2l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C71.2,55.4,71.8,55.1,72.3,55.2C72.3,55.2,72.3,55.2,72.3,55.2L72.3,55.2z"/>
<path class="p14n-3" d="M70,63.2L70,63.2c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C68.9,63.4,69.5,63.1,70,63.2C70,63.2,70,63.2,70,63.2L70,63.2z"/>
<path class="p14n-4" d="M67.3,55.2L67.3,55.2c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C66.2,55.4,66.8,55.1,67.3,55.2C67.3,55.2,67.3,55.2,67.3,55.2L67.3,55.2z"/>
<path class="p14n-4" d="M65,63.2L65,63.2c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l0,0l-1.4,4.8c-0.1,0.5-0.7,0.8-1.2,0.7l0,0
c-0.5-0.1-0.8-0.7-0.7-1.2l0,0l1.4-4.8C63.9,63.4,64.5,63.1,65,63.2C65,63.2,65,63.2,65,63.2L65,63.2z"/>
<path class="p14n-4" d="M53.7,60.7l1.3-4.8c0.1-0.5,0.7-0.8,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C53.9,61.8,53.6,61.3,53.7,60.7C53.7,60.7,53.7,60.7,53.7,60.7z"/>
<path class="p14n-4" d="M51.4,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C51.5,69.8,51.2,69.3,51.4,68.7C51.4,68.7,51.4,68.7,51.4,68.7z"/>
<path class="p14n-4" d="M42.7,60.7l1.4-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0,0,0,0l0,0c0.5,0.1,0.9,0.7,0.7,1.2c0,0,0,0,0,0l-1.3,4.8
c-0.1,0.5-0.7,0.9-1.2,0.7c0,0,0,0,0,0l0,0C42.9,61.8,42.5,61.3,42.7,60.7C42.7,60.8,42.7,60.7,42.7,60.7z"/>
<path class="p14n-4" d="M40.3,68.7l1.3-4.8c0.1-0.5,0.7-0.9,1.2-0.7c0,0,0.1,0,0.1,0l0,0c0.5,0.1,0.8,0.7,0.7,1.2c0,0,0,0,0,0l-1.4,4.8
c-0.1,0.5-0.7,0.8-1.2,0.7c0,0,0,0,0,0l0,0C40.6,69.9,40.2,69.3,40.3,68.7C40.3,68.8,40.3,68.7,40.3,68.7z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_23" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p15j-0{fill:#79CCF1;}
.p15j-1{fill:#FFFFFF;}
.p15j-2{fill:#919191;}
</style>
<title>23Plan de travail 1</title>
<path class="p15j-0" d="M39.5,68.1L44.5,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C39.7,68.6,39.5,68.4,39.5,68.1z"/>
<path class="p15j-0" d="M51.7,68.1L56.6,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.2
c-0.1,0.3-0.4,0.4-0.7,0.3L52,68.7C51.8,68.7,51.6,68.4,51.7,68.1L51.7,68.1z"/>
<path class="p15j-0" d="M28,68.1L32.9,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C28.1,68.6,28,68.3,28,68.1z"/>
<path class="p15j-0" d="M63.3,68.1L68.2,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C63.4,68.6,63.3,68.4,63.3,68.1z"/>
<path class="p15j-1" d="M45.5,68.1l5-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3L46,68.7C45.7,68.6,45.5,68.4,45.5,68.1C45.5,68.1,45.5,68.1,45.5,68.1L45.5,68.1z"/>
<path class="p15j-1" d="M57.7,68.1L62.6,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.2
c-0.1,0.3-0.4,0.4-0.7,0.3L58,68.7C57.8,68.7,57.6,68.4,57.7,68.1L57.7,68.1L57.7,68.1z"/>
<path class="p15j-1" d="M34,68.1L38.9,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C34.1,68.6,33.9,68.3,34,68.1C34,68.1,34,68.1,34,68.1z"/>
<path class="p15j-1" d="M69.3,68.1L74.3,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C69.5,68.6,69.3,68.4,69.3,68.1z"/>
<path class="p15j-2" d="M67.6,29.9c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.2,5.2,1.8,6.7,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C76.9,35.2,72.9,30.7,67.6,29.9L67.6,29.9z"/>
<path class="p15j-2" d="M31.9,24c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C37,26.4,34.7,24,31.9,24L31.9,24
z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_23" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p15n-0{fill:#79CCF1;}
.p15n-1{fill:#FFFFFF;}
.p15n-2{fill:#919191;}
</style>
<title>23Plan de travail 1</title>
<path class="p15n-0" d="M39.5,68.1L44.5,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C39.7,68.6,39.5,68.4,39.5,68.1z"/>
<path class="p15n-0" d="M51.7,68.1L56.6,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.2
c-0.1,0.3-0.4,0.4-0.7,0.3L52,68.7C51.8,68.7,51.6,68.4,51.7,68.1L51.7,68.1z"/>
<path class="p15n-0" d="M28,68.1L32.9,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C28.1,68.6,28,68.3,28,68.1z"/>
<path class="p15n-0" d="M63.3,68.1L68.2,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C63.4,68.6,63.3,68.4,63.3,68.1z"/>
<path class="p15n-1" d="M45.5,68.1l5-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3L46,68.7C45.7,68.6,45.5,68.4,45.5,68.1C45.5,68.1,45.5,68.1,45.5,68.1L45.5,68.1z"/>
<path class="p15n-1" d="M57.7,68.1L62.6,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.2
c-0.1,0.3-0.4,0.4-0.7,0.3L58,68.7C57.8,68.7,57.6,68.4,57.7,68.1L57.7,68.1L57.7,68.1z"/>
<path class="p15n-1" d="M34,68.1L38.9,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C34.1,68.6,33.9,68.3,34,68.1C34,68.1,34,68.1,34,68.1z"/>
<path class="p15n-1" d="M69.3,68.1L74.3,54c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0.1,0.4,0.3,0.4,0.5l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C69.5,68.6,69.3,68.4,69.3,68.1z"/>
<path class="p15n-2" d="M67.6,29.9c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.2,5.2,1.8,6.7,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C76.9,35.2,72.9,30.7,67.6,29.9L67.6,29.9z"/>
<path class="p15n-2" d="M31.9,24c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C37,26.4,34.7,24,31.9,24L31.9,24
z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_26" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p16bisj-0{fill:#79CCF1;}
.p16bisj-1{fill:#FFFFFF;}
.p16bisj-2{opacity:0.3;}
.p16bisj-3{fill:#231F20;}
.p16bisj-4{fill:#D8D9D8;}
.p16bisj-5{fill:#FDDA00;}
.p16bisj-6{fill:#F47A20;}
</style>
<title>26Plan de travail 1</title>
<path class="p16bisj-0" d="M40.8,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C40.9,69.7,40.8,69.4,40.8,69.2L40.8,69.2z"/>
<path class="p16bisj-0" d="M53,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C53.1,69.7,52.9,69.4,53,69.2L53,69.2L53,69.2z"/>
<path class="p16bisj-0" d="M29.3,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C29.4,69.7,29.2,69.4,29.3,69.2L29.3,69.2z"/>
<path class="p16bisj-0" d="M64.6,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3L71,55c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14
c-0.1,0.3-0.4,0.4-0.7,0.3L65,69.7C64.7,69.7,64.6,69.4,64.6,69.2L64.6,69.2z"/>
<path class="p16bisj-1" d="M46.8,69.2l5-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C47,69.7,46.8,69.5,46.8,69.2C46.8,69.2,46.8,69.1,46.8,69.2L46.8,69.2z"/>
<path class="p16bisj-1" d="M59,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-5,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C59,69.7,58.9,69.4,59,69.2L59,69.2L59,69.2z"/>
<path class="p16bisj-1" d="M35.3,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C35.4,69.7,35.2,69.4,35.3,69.2L35.3,69.2z"/>
<path class="p16bisj-1" d="M70.6,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3L71,69.7C70.7,69.7,70.6,69.4,70.6,69.2L70.6,69.2z"/>
<g class="p16bisj-2">
<path class="p16bisj-3" d="M68.9,31.5c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C78.2,36.8,74.2,32.4,68.9,31.5L68.9,31.5z"/>
<path class="p16bisj-3" d="M33.2,25.6c-0.8-4.5-4.8-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9H33c2.9,0,5.2-2.3,5.3-5.1C38.3,28,36,25.6,33.2,25.6
L33.2,25.6L33.2,25.6z"/>
</g>
<path class="p16bisj-4" d="M66.3,28.9C62,21.9,52.9,19.8,46,24.1c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.2,11.2-5.5,11-11.8
C75.8,34.3,71.7,29.7,66.3,28.9L66.3,28.9z"/>
<path class="p16bisj-4" d="M30.5,23c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C35.7,25.3,33.4,23,30.5,23
L30.5,23L30.5,23L30.5,23z"/>
<polygon class="p16bisj-5" points="52.4,38.2 60.1,38.2 57.8,44.7 61.8,44.7 51.1,65.2 53.5,50.1 50.1,50.1 "/>
<polygon class="p16bisj-6" points="50.8,36.7 58.6,36.7 56.3,43.1 60.3,43.1 49.5,63.7 52,48.6 48.5,48.6 "/>
</svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_26" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p16j-0{fill:#79CCF1;}
.p16j-1{fill:#FFFFFF;}
.p16j-2{opacity:0.3;}
.p16j-3{fill:#231F20;}
.p16j-4{fill:#D8D9D8;}
.p16j-5{fill:#FDDA00;}
.p16j-6{fill:#F47A20;}
</style>
<title>26Plan de travail 1</title>
<path class="p16j-0" d="M40.8,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C40.9,69.7,40.8,69.4,40.8,69.2L40.8,69.2z"/>
<path class="p16j-0" d="M53,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C53.1,69.7,52.9,69.4,53,69.2L53,69.2L53,69.2z"/>
<path class="p16j-0" d="M29.3,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C29.4,69.7,29.2,69.4,29.3,69.2L29.3,69.2z"/>
<path class="p16j-0" d="M64.6,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3L71,55c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14
c-0.1,0.3-0.4,0.4-0.7,0.3L65,69.7C64.7,69.7,64.6,69.4,64.6,69.2L64.6,69.2z"/>
<path class="p16j-1" d="M46.8,69.2l5-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C47,69.7,46.8,69.5,46.8,69.2C46.8,69.2,46.8,69.1,46.8,69.2L46.8,69.2z"/>
<path class="p16j-1" d="M59,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-5,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C59,69.7,58.9,69.4,59,69.2L59,69.2L59,69.2z"/>
<path class="p16j-1" d="M35.3,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C35.4,69.7,35.2,69.4,35.3,69.2L35.3,69.2z"/>
<path class="p16j-1" d="M70.6,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3L71,69.7C70.7,69.7,70.6,69.4,70.6,69.2L70.6,69.2z"/>
<g class="p16j-2">
<path class="p16j-3" d="M68.9,31.5c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C78.2,36.8,74.2,32.4,68.9,31.5L68.9,31.5z"/>
<path class="p16j-3" d="M33.2,25.6c-0.8-4.5-4.8-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9H33c2.9,0,5.2-2.3,5.3-5.1C38.3,28,36,25.6,33.2,25.6
L33.2,25.6L33.2,25.6z"/>
</g>
<path class="p16j-4" d="M66.3,28.9C62,21.9,52.9,19.8,46,24.1c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.2,11.2-5.5,11-11.8
C75.8,34.3,71.7,29.7,66.3,28.9L66.3,28.9z"/>
<path class="p16j-4" d="M30.5,23c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C35.7,25.3,33.4,23,30.5,23
L30.5,23L30.5,23L30.5,23z"/>
<polygon class="p16j-5" points="52.4,38.2 60.1,38.2 57.8,44.7 61.8,44.7 51.1,65.2 53.5,50.1 50.1,50.1 "/>
<polygon class="p16j-6" points="50.8,36.7 58.6,36.7 56.3,43.1 60.3,43.1 49.5,63.7 52,48.6 48.5,48.6 "/>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_26" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p16n-0{fill:#79CCF1;}
.p16n-1{fill:#FFFFFF;}
.p16n-2{opacity:0.3;}
.p16n-3{fill:#231F20;}
.p16n-4{fill:#D8D9D8;}
.p16n-5{fill:#FDDA00;}
.p16n-6{fill:#F47A20;}
</style>
<title>26Plan de travail 1</title>
<path class="p16n-0" d="M40.8,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C40.9,69.7,40.8,69.4,40.8,69.2L40.8,69.2z"/>
<path class="p16n-0" d="M53,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C53.1,69.7,52.9,69.4,53,69.2L53,69.2L53,69.2z"/>
<path class="p16n-0" d="M29.3,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C29.4,69.7,29.2,69.4,29.3,69.2L29.3,69.2z"/>
<path class="p16n-0" d="M64.6,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3L71,55c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14
c-0.1,0.3-0.4,0.4-0.7,0.3L65,69.7C64.7,69.7,64.6,69.4,64.6,69.2L64.6,69.2z"/>
<path class="p16n-1" d="M46.8,69.2l5-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C47,69.7,46.8,69.5,46.8,69.2C46.8,69.2,46.8,69.1,46.8,69.2L46.8,69.2z"/>
<path class="p16n-1" d="M59,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-5,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C59,69.7,58.9,69.4,59,69.2L59,69.2L59,69.2z"/>
<path class="p16n-1" d="M35.3,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3l-0.8-0.2C35.4,69.7,35.2,69.4,35.3,69.2L35.3,69.2z"/>
<path class="p16n-1" d="M70.6,69.2l4.9-14.1c0.1-0.3,0.4-0.4,0.7-0.3l0.8,0.2c0.3,0,0.4,0.3,0.4,0.5c0,0,0,0,0,0l0,0l-4.9,14.1
c-0.1,0.3-0.4,0.4-0.7,0.3L71,69.7C70.7,69.7,70.6,69.4,70.6,69.2L70.6,69.2z"/>
<g class="p16n-2">
<path class="p16n-3" d="M68.9,31.5c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7c6.3-0.3,11.1-5.7,10.8-11.9
C78.2,36.8,74.2,32.4,68.9,31.5L68.9,31.5z"/>
<path class="p16n-3" d="M33.2,25.6c-0.8-4.5-4.8-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9H33c2.9,0,5.2-2.3,5.3-5.1C38.3,28,36,25.6,33.2,25.6
L33.2,25.6L33.2,25.6z"/>
</g>
<path class="p16n-4" d="M66.3,28.9C62,21.9,52.9,19.8,46,24.1c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.2,11.2-5.5,11-11.8
C75.8,34.3,71.7,29.7,66.3,28.9L66.3,28.9z"/>
<path class="p16n-4" d="M30.5,23c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.4c2.9,0,5.2-2.3,5.3-5.1C35.7,25.3,33.4,23,30.5,23
L30.5,23L30.5,23L30.5,23z"/>
<polygon class="p16n-5" points="52.4,38.2 60.1,38.2 57.8,44.7 61.8,44.7 51.1,65.2 53.5,50.1 50.1,50.1 "/>
<polygon class="p16n-6" points="50.8,36.7 58.6,36.7 56.3,43.1 60.3,43.1 49.5,63.7 52,48.6 48.5,48.6 "/>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_27" data-name="Calque 27" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p17j-1{fill:#eeeb61;opacity:0.51;}.p17j-1,.p17j-6{isolation:isolate;}.p17j-2{fill:#f5b21a;stroke:#fde901;stroke-miterlimit:10;}.p17j-3{opacity:0.3;}.p17j-4{fill:#231f20;}.p17j-5{fill:#d8d9d8;}.p17j-6{fill:#fff;opacity:0.8;}.p17j-7{fill:#79ccf1;}</style></defs><title>27Plan de travail 1</title><circle class="p17j-1" cx="53.15" cy="34.39" r="20.04" transform="translate(18.14 87.13) rotate(-89.33)"/><circle class="p17j-2" cx="53.15" cy="34.39" r="15.29" transform="translate(18.14 87.13) rotate(-89.33)"/><g class="p17j-3"><path class="p17j-4" d="M69,42.52a14.77,14.77,0,0,0-27,4.89,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,42.49Z"/><path class="p17j-4" d="M33.2,36.54a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.15.57c-1.36-3-6-3.1-6.71-3.1A6.92,6.92,0,0,0,9.47,40,7.08,7.08,0,0,0,16.69,47H33.1a5.21,5.21,0,0,0,.13-10.42h0Z"/></g><path class="p17j-5" d="M66.34,39.91a14.77,14.77,0,0,0-27.08,4.91,8.63,8.63,0,0,1,6.62,4.24l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65.06a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p17j-5" d="M30.58,34a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46A7.08,7.08,0,0,0,14,44.36H30.48A5.19,5.19,0,1,0,30.58,34h0Z"/><circle class="p17j-6" cx="40.84" cy="64.49" r="10.07"/><path class="p17j-7" d="M48.1,67.67l-5.49-3.16,5.49-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32l-5.48,3.12V56.6a.89.89,0,0,0-1-.79.87.87,0,0,0-.79.79v6.34l-5.49-3.1a.89.89,0,0,0-1,1.44l.15.09,5.49,3.16-5.53,3.14a.89.89,0,0,0,.74,1.62l.15-.09L40,66v6.34a.89.89,0,0,0,1.77.19V66.06l5.49,3.16a.89.89,0,0,0,1.21-.32h0a.89.89,0,0,0-.31-1.22h0Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_28" data-name="Calque 28" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p17n-1{fill:#44454e;opacity:0.25;}.p17n-1,.p17n-3,.p17n-8{isolation:isolate;}.p17n-2,.p17n-8{fill:#fff;}.p17n-3{fill:#636573;opacity:0.18;}.p17n-4{fill:#fdfcea;}.p17n-5{opacity:0.3;}.p17n-6{fill:#231f20;}.p17n-7{fill:#d8d9d8;}.p17n-8{opacity:0.8;}.p17n-9{fill:#79ccf1;}</style></defs><title>28Plan de travail 1</title><circle class="p17n-1" cx="53.61" cy="31.85" r="22.87"/><path class="p17n-2" d="M63.88,34.84a.89.89,0,0,0,.89-.89h0V31A.89.89,0,1,0,63,30.76.61.61,0,0,0,63,31v3a.89.89,0,0,0,.88.9h0Z"/><path class="p17n-2" d="M66.32,32.43a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22a.9.9,0,0,0,.9-.88h0Z"/><path class="p17n-2" d="M35.19,19.9a.89.89,0,0,0,.89-.89h0V16a.89.89,0,0,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p17n-2" d="M37.6,17.49a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22a.9.9,0,0,0,.9-.88h0Z"/><path class="p17n-2" d="M60.34,17.49a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p17n-2" d="M62.76,15.08a.89.89,0,0,0-.88-.87h-3A.89.89,0,1,0,58.69,16h3.19a.9.9,0,0,0,.9-.88h0Z"/><path class="p17n-3" d="M53.56,16.69A15.43,15.43,0,0,1,59,16.4a15.51,15.51,0,0,0,6.69,28.44A15.56,15.56,0,1,1,53.56,16.69Z"/><path class="p17n-4" d="M49.5,17.13a15.4,15.4,0,0,1,5.37-.28A15.39,15.39,0,0,0,61.5,45a15.41,15.41,0,1,1-12-27.91Z"/><g class="p17n-5"><path class="p17n-6" d="M69,44.36a14.77,14.77,0,0,0-27,4.91,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,44.35Z"/><path class="p17n-6" d="M33.2,38.38a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33.06a5.21,5.21,0,0,0,.13-10.42Z"/></g><path class="p17n-7" d="M66.34,41.75a14.77,14.77,0,0,0-27.08,4.91,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65.06a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p17n-7" d="M30.58,35.76a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.93,6.93,0,0,0-4.73,6.53A7.08,7.08,0,0,0,14,46.22H30.45a5.21,5.21,0,0,0,.13-10.42Z"/><circle class="p17n-8" cx="41.31" cy="66.59" r="9.69"/><path class="p17n-9" d="M48.29,69.6,43,66.6l5.28-3a.86.86,0,0,0,.31-1.16h0a.86.86,0,0,0-1.16-.31l-5.28,3V59a.86.86,0,1,0-1.71,0v6.1L35.13,62A.85.85,0,0,0,34,63.27l.16.12.15.09h0l5.28,3-5.28,3A.85.85,0,1,0,35,71h0L35.1,71h0l5.28-3v6.1a.85.85,0,0,0,.85.85.86.86,0,0,0,.86-.85h0V68l5.28,3a.86.86,0,0,0,1.16-.31h0A.87.87,0,0,0,48.29,69.6Z"/></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_29" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p18j-0{opacity:0.3;}
.p18j-1{fill:#231F20;}
.p18j-2{fill:#D8D9D8;}
.p18j-3{opacity:0.8;fill:#FFFFFF;enable-background:new ;}
.p18j-4{fill:#79CCF1;}
</style>
<title>29Plan de travail 1</title>
<g class="p18j-0">
<path class="p18j-1" d="M69,34.7c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7C74,57,78.8,51.7,78.5,45.4
C78.3,40.1,74.3,35.6,69,34.7L69,34.7z"/>
<path class="p18j-1" d="M33.2,28.8c-0.8-4.5-4.8-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9H33c2.9,0,5.2-2.3,5.3-5.1C38.3,31.2,36,28.8,33.2,28.8
L33.2,28.8L33.2,28.8z"/>
</g>
<path class="p18j-2" d="M66.3,32.1C62.1,25.2,53,23,46,27.3c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.8c6.3-0.3,11.1-5.6,10.8-11.9
C75.6,37.5,71.6,33,66.3,32.1z"/>
<path class="p18j-2" d="M30.6,26.1c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.5c2.9,0,5.2-2.3,5.3-5.1C35.8,28.5,33.5,26.2,30.6,26.1
L30.6,26.1L30.6,26.1z"/>
<circle class="p18j-3" cx="40.6" cy="56.4" r="9.8"/>
<path class="p18j-4" d="M47.6,59.5l-5.3-3.1l5.3-3.1c0.4-0.2,0.6-0.7,0.4-1.2l0,0c-0.2-0.4-0.8-0.5-1.2-0.3c0,0,0,0,0,0l0,0L41.4,55
v-6.2c0.1-0.5-0.3-0.9-0.8-1s-0.9,0.3-1,0.8c0,0.1,0,0.1,0,0.2l0,0V55l-5.3-3.1c-0.4-0.2-0.9-0.1-1.2,0.3c0,0,0,0,0,0
c-0.2,0.4-0.1,0.9,0.3,1.2l0,0l5.3,3.1l-5.3,3.1c-0.5,0.1-0.7,0.6-0.6,1.1c0.1,0.5,0.6,0.7,1.1,0.6c0.2,0,0.3-0.1,0.4-0.3l0,0
l5.3-3.1v6.2c0.1,0.5,0.5,0.8,1,0.8c0.4,0,0.7-0.4,0.8-0.8l0,0v-6.2l5.3,3.1c0.4,0.2,0.9,0.1,1.2-0.3l0,0
C48.2,60.3,48,59.8,47.6,59.5L47.6,59.5z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_29" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p18n-0{opacity:0.3;}
.p18n-1{fill:#231F20;}
.p18n-2{fill:#D8D9D8;}
.p18n-3{opacity:0.8;fill:#FFFFFF;enable-background:new ;}
.p18n-4{fill:#79CCF1;}
</style>
<title>29Plan de travail 1</title>
<g class="p18n-0">
<path class="p18n-1" d="M69,34.7c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.7C74,57,78.8,51.7,78.5,45.4
C78.3,40.1,74.3,35.6,69,34.7L69,34.7z"/>
<path class="p18n-1" d="M33.2,28.8c-0.8-4.5-4.8-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9H33c2.9,0,5.2-2.3,5.3-5.1C38.3,31.2,36,28.8,33.2,28.8
L33.2,28.8L33.2,28.8z"/>
</g>
<path class="p18n-2" d="M66.3,32.1C62.1,25.2,53,23,46,27.3c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.8,6.6,4.2l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5h25.8c6.3-0.3,11.1-5.6,10.8-11.9
C75.6,37.5,71.6,33,66.3,32.1z"/>
<path class="p18n-2" d="M30.6,26.1c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9h16.5c2.9,0,5.2-2.3,5.3-5.1C35.8,28.5,33.5,26.2,30.6,26.1
L30.6,26.1L30.6,26.1z"/>
<circle class="p18n-3" cx="40.6" cy="56.4" r="9.8"/>
<path class="p18n-4" d="M47.6,59.5l-5.3-3.1l5.3-3.1c0.4-0.2,0.6-0.7,0.4-1.2l0,0c-0.2-0.4-0.8-0.5-1.2-0.3c0,0,0,0,0,0l0,0L41.4,55
v-6.2c0.1-0.5-0.3-0.9-0.8-1s-0.9,0.3-1,0.8c0,0.1,0,0.1,0,0.2l0,0V55l-5.3-3.1c-0.4-0.2-0.9-0.1-1.2,0.3c0,0,0,0,0,0
c-0.2,0.4-0.1,0.9,0.3,1.2l0,0l5.3,3.1l-5.3,3.1c-0.5,0.1-0.7,0.6-0.6,1.1c0.1,0.5,0.6,0.7,1.1,0.6c0.2,0,0.3-0.1,0.4-0.3l0,0
l5.3-3.1v6.2c0.1,0.5,0.5,0.8,1,0.8c0.4,0,0.7-0.4,0.8-0.8l0,0v-6.2l5.3,3.1c0.4,0.2,0.9,0.1,1.2-0.3l0,0
C48.2,60.3,48,59.8,47.6,59.5L47.6,59.5z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_30" data-name="Calque 30" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p19j-1{fill:#eeeb61;opacity:0.51;}.p19j-1,.p19j-8{isolation:isolate;}.p19j-2{fill:#f5b21a;stroke:#fde901;stroke-miterlimit:10;}.p19j-3{opacity:0.3;}.p19j-4{fill:#231f20;}.p19j-5{fill:#d8d9d8;}.p19j-6{fill:#79ccf1;}.p19j-7,.p19j-8{fill:#fff;}.p19j-8{opacity:0.8;}</style></defs><title>30Plan de travail 1</title><circle class="p19j-1" cx="53.2" cy="27.9" r="19.92"/><circle class="p19j-2" cx="53.2" cy="27.9" r="15.2" transform="translate(-0.28 0.54) rotate(-0.58)"/><g class="p19j-3"><path class="p19j-4" d="M68.89,36.2a14.77,14.77,0,0,0-27,4.93,8.64,8.64,0,0,1,6.64,4.21L47.39,46c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.65A11.37,11.37,0,0,0,68.88,36.2Z"/><path class="p19j-4" d="M33.13,30.2a9.31,9.31,0,0,0-9.32-7.61,9.57,9.57,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.23,6.93H33a5.21,5.21,0,0,0,.13-10.42Z"/></g><path class="p19j-5" d="M66.27,33.53a14.77,14.77,0,0,0-27.08,4.91,8.64,8.64,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p19j-5" d="M30.51,27.59a9.31,9.31,0,0,0-9.3-7.65,9.57,9.57,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46A7.08,7.08,0,0,0,14,38H30.41a5.21,5.21,0,0,0,.13-10.42h0Z"/><rect class="p19j-6" x="25.18" y="67.43" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-41.25 81.01) rotate(-72.96)"/><rect class="p19j-6" x="33.91" y="67.42" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-35.07 89.35) rotate(-72.96)"/><rect class="p19j-6" x="42.52" y="67.5" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-28.93 97.99) rotate(-73.19)"/><rect class="p19j-6" x="51.52" y="67.51" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-22.54 106.61) rotate(-73.19)"/><rect class="p19j-6" x="60.71" y="67.51" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-16.01 115.4) rotate(-73.19)"/><rect class="p19j-7" x="29.81" y="67.43" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-37.97 85.43) rotate(-72.96)"/><rect class="p19j-7" x="38.53" y="67.42" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-31.8 93.75) rotate(-72.96)"/><rect class="p19j-7" x="47.17" y="67.53" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-25.65 102.45) rotate(-73.19)"/><rect class="p19j-7" x="56.17" y="67.51" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-19.24 111.05) rotate(-73.19)"/><rect class="p19j-7" x="65.54" y="67.51" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-12.58 120.02) rotate(-73.19)"/><circle class="p19j-8" cx="44.51" cy="57.82" r="7.44"/><path class="p19j-6" d="M49.87,60.16l-4.06-2.34,4.06-2.34a.66.66,0,0,0,.24-.9h0a.67.67,0,0,0-.9-.24l-4.06,2.34V52a.65.65,0,0,0-.58-.73.65.65,0,0,0-.73.57.43.43,0,0,0,0,.16v4.69l-4-2.29a.65.65,0,1,0-.65,1.13h0l4.06,2.34L39.19,60.2a.65.65,0,1,0,.65,1.13L43.9,59v4.69a.66.66,0,0,0,.57.74.67.67,0,0,0,.74-.58.43.43,0,0,0,0-.16V59l4.06,2.34a.66.66,0,0,0,.9-.24h0a.67.67,0,0,0-.2-.91h0Z"/><circle class="p19j-8" cx="65.17" cy="58.29" r="7.44" transform="translate(6.36 123) rotate(-89.55)"/><path class="p19j-6" d="M70.53,60.59l-4.06-2.34,4.06-2.34a.66.66,0,0,0,.24-.9h0a.67.67,0,0,0-.91-.2h0l-4,2.38V52.5a.65.65,0,0,0-.58-.73.65.65,0,0,0-.73.57.43.43,0,0,0,0,.16v4.69l-4-2.34A.65.65,0,0,0,59.9,56h0L64,58.32l-4.1,2.35a.65.65,0,1,0,.65,1.13h0l4.06-2.34v4.69a.66.66,0,0,0,.57.74.67.67,0,0,0,.74-.58.43.43,0,0,0,0-.16V59.46l4,2.35a.66.66,0,0,0,.9-.24h0a.67.67,0,0,0-.2-.91h0Z"/></svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_31" data-name="Calque 31" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p19n-1{fill:#44454e;opacity:0.25;}.p19n-1,.p19n-3,.p19n-9{isolation:isolate;}.p19n-2,.p19n-9{fill:#fff;}.p19n-3{fill:#636573;opacity:0.18;}.p19n-4{fill:#fdfcea;}.p19n-5{fill:#79ccf1;}.p19n-6{opacity:0.3;}.p19n-7{fill:#231f20;}.p19n-8{fill:#d8d9d8;}.p19n-9{opacity:0.8;}</style></defs><title>31Plan de travail 1</title><circle class="p19n-1" cx="54.87" cy="30.34" r="22.87"/><path class="p19n-2" d="M65.17,33.35a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,0,0-1.77-.19v3.19a.89.89,0,0,0,.88.9h0Z"/><path class="p19n-2" d="M67.58,30.94a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22A.88.88,0,0,0,67.58,30.94Z"/><path class="p19n-2" d="M36.46,18.41a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19v3.19a.89.89,0,0,0,.88.9h0Z"/><path class="p19n-2" d="M38.83,16a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77H38A.88.88,0,0,0,38.83,16Z"/><path class="p19n-2" d="M61.6,16a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19V15.1A.89.89,0,0,0,61.6,16Z"/><path class="p19n-2" d="M64,13.58a.89.89,0,0,0-.89-.89H60.08a.89.89,0,1,0-.19,1.77h3.22A.89.89,0,0,0,64,13.6h0Z"/><path class="p19n-3" d="M56.06,14.05a15.69,15.69,0,0,1,5.42-.29A15.51,15.51,0,0,0,68.17,42.2,15.56,15.56,0,1,1,56.06,14.05Z"/><path class="p19n-4" d="M50.76,15.66a15.4,15.4,0,0,1,5.37-.28,15.39,15.39,0,0,0,6.63,28.17,15.41,15.41,0,1,1-12-27.91Z"/><rect class="p19n-5" x="25.21" y="67.94" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-41.72 81.39) rotate(-72.96)"/><rect class="p19n-5" x="33.94" y="67.93" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="matrix(0.29, -0.96, 0.96, 0.29, -35.54, 89.73)"/><rect class="p19n-5" x="42.55" y="68.02" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-29.4 98.37) rotate(-73.19)"/><rect class="p19n-5" x="51.55" y="68.02" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-23.01 107) rotate(-73.19)"/><rect class="p19n-5" x="60.74" y="68.02" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-16.48 115.79) rotate(-73.19)"/><rect class="p19n-2" x="29.83" y="67.94" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-38.45 85.81) rotate(-72.96)"/><rect class="p19n-2" x="38.55" y="67.93" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-32.28 94.14) rotate(-72.96)"/><rect class="p19n-2" x="47.19" y="68.04" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-26.13 102.83) rotate(-73.19)"/><rect class="p19n-2" x="56.19" y="68.02" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-19.71 111.44) rotate(-73.19)"/><rect class="p19n-2" x="65.56" y="68.02" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-13.05 120.41) rotate(-73.19)"/><g class="p19n-6"><path class="p19n-7" d="M68.91,36.33a14.77,14.77,0,0,0-27,4.91,8.64,8.64,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.67A11.37,11.37,0,0,0,68.9,36.32Z"/><path class="p19n-7" d="M33.15,30.34a9.29,9.29,0,0,0-9.32-7.68,9.59,9.59,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.94,6.94,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.23,6.93H33a5.21,5.21,0,1,0,.13-10.42Z"/></g><path class="p19n-8" d="M66.29,33.66a14.77,14.77,0,0,0-27.07,5,8.64,8.64,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p19n-8" d="M30.53,27.73a9.3,9.3,0,0,0-9.3-7.65,9.59,9.59,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.94,6.94,0,0,0-4.7,6.46A7.08,7.08,0,0,0,14,38.12H30.43a5.21,5.21,0,1,0,.13-10.42Z"/><circle class="p19n-9" cx="42.58" cy="54.76" r="8.75"/><path class="p19n-5" d="M48.83,57.53l-4.77-2.75,4.77-2.73a.77.77,0,0,0,.29-1h0a.77.77,0,0,0-1-.29h0l-4.77,2.75V48.05a.77.77,0,1,0-1.54,0v5.5l-4.75-2.78a.77.77,0,0,0-.9,1.25h0l.14.08,4.77,2.75-4.79,2.76a.77.77,0,0,0-.39,1,.76.76,0,0,0,1,.39h0l.14-.08h0l4.79-2.89v5.5a.77.77,0,0,0,1.54,0h0v-5.5l4.77,2.75a.76.76,0,0,0,1-.27h0A.76.76,0,0,0,48.83,57.53Z"/><circle class="p19n-9" cx="65.8" cy="54.76" r="8.75"/><path class="p19n-5" d="M72.1,57.53l-4.77-2.75L72.1,52a.77.77,0,0,0,.29-1h0a.77.77,0,0,0-1-.29h0l-4.77,2.75V48a.77.77,0,1,0-1.54,0v5.5l-4.75-2.78a.77.77,0,0,0-.9,1.25h0l.14.08,4.77,2.75-4.78,2.76a.77.77,0,0,0-.39,1,.76.76,0,0,0,1,.39h0l.14-.08,4.77-2.75v5.5a.77.77,0,0,0,1.54,0h0V56.05L71.4,58.8a.77.77,0,0,0,1-.27h0A.76.76,0,0,0,72.1,57.53Z"/></svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p1j-1{fill:#eeeb61;opacity:0.51;isolation:isolate;}.p1j-2{fill:#f5b21a;stroke:#fde901;stroke-miterlimit:10;}</style></defs><title>Plan de travail 1</title><circle class="p1j-1" cx="42.62" cy="42.64" r="26.14"/><circle class="p1j-2" cx="42.62" cy="42.64" r="19.94"/></svg>

Before

Width:  |  Height:  |  Size: 409 B

View File

@ -1 +0,0 @@
<svg id="Calque_2" data-name="Calque 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p1n-1{fill:#44454e;}.p1n-1,.p1n-2{opacity:0.18;isolation:isolate;}.p1n-2{fill:#636573;}.p1n-3{fill:#fdfcea;}.p1n-4{fill:#fff;}</style></defs><title>2Plan de travail 1</title><circle class="p1n-1" cx="43.92" cy="43.2" r="26.14"/><path class="p1n-2" d="M43.4,25.08a17.48,17.48,0,0,1,6.2-.32A17.58,17.58,0,0,0,57.17,57,17.58,17.58,0,1,1,43.4,25.08Z"/><path class="p1n-3" d="M37.88,26.35A17.61,17.61,0,0,1,44,26a17.58,17.58,0,0,0,7.57,32.19,17.58,17.58,0,1,1-19-29.58A17.28,17.28,0,0,1,37.88,26.35Z"/><path class="p1n-4" d="M55.69,48.64a1,1,0,0,0,1-1V44.18a1,1,0,1,0-2.07,0v3.46a1,1,0,0,0,1,1Z"/><path class="p1n-4" d="M58.44,45.88a1,1,0,0,0-1-1H54A1,1,0,0,0,54,47h3.46a1,1,0,0,0,1-1S58.44,46,58.44,45.88Z"/><path class="p1n-4" d="M22.88,31.56a1,1,0,0,0,1-1V27a1,1,0,1,0-2.07,0v3.46a1,1,0,0,0,.94,1.06h.13Z"/><path class="p1n-4" d="M25.63,28.8a1,1,0,0,0-1-1H21.14a1,1,0,0,0,0,2.07H24.6a1,1,0,0,0,1-1V28.8Z"/><path class="p1n-4" d="M51.61,26.8a1,1,0,0,0,1-1V22.35a1,1,0,1,0-2.07,0v3.46a1,1,0,0,0,1,1Z"/><path class="p1n-4" d="M54.37,24a1,1,0,0,0-1-1H49.88a1,1,0,0,0,0,2.07h3.46a1,1,0,0,0,1-1V24Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p20j-0{fill:#79CCF1;}
.p20j-1{fill:#FFFFFF;}
.p20j-2{opacity:0.3;}
.p20j-3{fill:#231F20;}
.p20j-4{fill:#D8D9D8;}
.p20j-5{opacity:0.8;fill:#FFFFFF;enable-background:new ;}
</style>
<title>32Plan de travail 1</title>
<path class="p20j-0" d="M29.8,70.7l4.9-16.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C29.8,71.2,29.7,70.9,29.8,70.7z"/>
<path class="p20j-0" d="M38.5,70.6l4.9-16.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C38.6,71.2,38.4,70.9,38.5,70.6z"/>
<path class="p20j-0" d="M47.2,70.6L52,54.5c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L49,71.2c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C47.2,71.2,47.1,70.9,47.2,70.6z"/>
<path class="p20j-0" d="M56.2,70.6L61,54.5c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L58,71.2c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C56.2,71.2,56.1,70.9,56.2,70.6z"/>
<path class="p20j-0" d="M65.3,70.6l4.9-16.2c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.2
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C65.4,71.2,65.3,70.9,65.3,70.6z"/>
<path class="p20j-1" d="M34.4,70.7l4.9-16.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C34.5,71.2,34.3,70.9,34.4,70.7z"/>
<path class="p20j-1" d="M43.1,70.6L48,54.5c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L45,71.2c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C43.2,71.2,43,70.9,43.1,70.6z"/>
<path class="p20j-1" d="M51.8,70.6l4.9-16.2c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.2
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C51.9,71.2,51.7,70.9,51.8,70.6z"/>
<path class="p20j-1" d="M60.8,70.6l4.9-16.2c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.2
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C60.9,71.2,60.7,70.9,60.8,70.6z"/>
<path class="p20j-1" d="M70.2,70.6l4.9-16.2c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L72,71.2
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C70.2,71.2,70.1,70.9,70.2,70.6z"/>
<g class="p20j-2">
<path class="p20j-3" d="M68.9,29.8c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.3,1.8,6.7,4.3l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.4,7.9,5.5h25.7c6.3-0.3,11.1-5.6,10.8-11.9
C78.2,35.2,74.2,30.7,68.9,29.8L68.9,29.8z"/>
<path class="p20j-3" d="M33.1,23.9c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6L20.8,24
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0H33c2.9,0,5.2-2.3,5.3-5.1
C38.3,26.3,36,23.9,33.1,23.9L33.1,23.9L33.1,23.9z"/>
</g>
<path class="p20j-4" d="M66.3,27.3C62,20.3,52.9,18.2,46,22.4c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.9,6.6,4.3l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.3,11.1-5.7,10.8-11.9
C75.5,32.6,71.5,28.2,66.3,27.3L66.3,27.3z"/>
<path class="p20j-4" d="M30.5,21.3c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0h16.4c2.9,0,5.2-2.3,5.3-5.1
C35.7,23.6,33.4,21.3,30.5,21.3L30.5,21.3z"/>
<circle class="p20j-5" cx="42.5" cy="50.5" r="8.4"/>
<path class="p20j-0" d="M48.6,53.2L44,50.5l4.6-2.6c0.4-0.2,0.5-0.6,0.3-1l0,0c-0.2-0.3-0.6-0.5-1-0.3l0,0l-4.6,2.6V44
c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7v5.3l-4.6-2.6c-0.3-0.2-0.8-0.1-1,0.2c-0.2,0.3-0.2,0.8,0.2,1l0.2,0.1l4.6,2.6
l-4.6,2.6c-0.4,0.2-0.6,0.6-0.4,1c0.2,0.4,0.6,0.6,1,0.4l0,0l0.2-0.1l0,0l4.5-2.6v5.3c0,0.4,0.3,0.7,0.7,0.7s0.7-0.3,0.7-0.7
c0,0,0,0,0,0v-5.3l4.5,2.6c0.3,0.2,0.8,0.1,1-0.3c0,0,0,0,0,0l0,0C49,53.9,48.9,53.4,48.6,53.2z"/>
<circle class="p20j-5" cx="64.8" cy="50.5" r="8.4"/>
<path class="p20j-0" d="M70.9,53.2l-4.6-2.6l4.6-2.6c0.4-0.2,0.5-0.6,0.3-1l0,0c-0.2-0.3-0.6-0.5-1-0.3l0,0l-4.6,2.6V44
c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7l0,0v5.3l-4.6-2.6c-0.3-0.2-0.8-0.1-1,0.2c-0.2,0.3-0.2,0.8,0.2,1l0.2,0.1l4.6,2.6
l-4.6,2.6c-0.4,0.2-0.6,0.6-0.4,1c0.2,0.4,0.6,0.6,1,0.4l0,0l0.2-0.1l0,0l4.5-2.6v5.3c0,0.4,0.3,0.7,0.7,0.7c0.4,0,0.7-0.3,0.7-0.7
l0,0l0,0v-5.2l4.6,2.6c0.3,0.2,0.8,0.1,1-0.3c0,0,0,0,0,0l0,0C71.3,53.9,71.2,53.4,70.9,53.2L70.9,53.2z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Calque_32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50" x="0px" y="0px"
viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve">
<style type="text/css">
.p20n-0{fill:#79CCF1;}
.p20n-1{fill:#FFFFFF;}
.p20n-2{opacity:0.3;}
.p20n-3{fill:#231F20;}
.p20n-4{fill:#D8D9D8;}
.p20n-5{opacity:0.8;fill:#FFFFFF;enable-background:new ;}
</style>
<title>32Plan de travail 1</title>
<path class="p20n-0" d="M29.8,70.7l4.9-16.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C29.8,71.2,29.7,70.9,29.8,70.7z"/>
<path class="p20n-0" d="M38.5,70.6l4.9-16.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C38.6,71.2,38.4,70.9,38.5,70.6z"/>
<path class="p20n-0" d="M47.2,70.6L52,54.5c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L49,71.2c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C47.2,71.2,47.1,70.9,47.2,70.6z"/>
<path class="p20n-0" d="M56.2,70.6L61,54.5c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L58,71.2c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C56.2,71.2,56.1,70.9,56.2,70.6z"/>
<path class="p20n-0" d="M65.3,70.6l4.9-16.2c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.2
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C65.4,71.2,65.3,70.9,65.3,70.6z"/>
<path class="p20n-1" d="M34.4,70.7l4.9-16.1c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.1
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C34.5,71.2,34.3,70.9,34.4,70.7z"/>
<path class="p20n-1" d="M43.1,70.6L48,54.5c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L45,71.2c-0.1,0.3-0.4,0.5-0.7,0.4
l-0.8-0.2C43.2,71.2,43,70.9,43.1,70.6z"/>
<path class="p20n-1" d="M51.8,70.6l4.9-16.2c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.2
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C51.9,71.2,51.7,70.9,51.8,70.6z"/>
<path class="p20n-1" d="M60.8,70.6l4.9-16.2c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7l-4.9,16.2
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C60.9,71.2,60.7,70.9,60.8,70.6z"/>
<path class="p20n-1" d="M70.2,70.6l4.9-16.2c0.1-0.3,0.4-0.5,0.7-0.4l0.8,0.2c0.3,0.1,0.5,0.4,0.4,0.7L72,71.2
c-0.1,0.3-0.4,0.5-0.7,0.4l-0.8-0.2C70.2,71.2,70.1,70.9,70.2,70.6z"/>
<g class="p20n-2">
<path class="p20n-3" d="M68.9,29.8c-4.3-6.9-13.4-9-20.4-4.7c-3.4,2.2-5.8,5.6-6.6,9.6c2.8,0.3,5.3,1.8,6.7,4.3l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.4,7.9,5.5h25.7c6.3-0.3,11.1-5.6,10.8-11.9
C78.2,35.2,74.2,30.7,68.9,29.8L68.9,29.8z"/>
<path class="p20n-3" d="M33.1,23.9c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6L20.8,24
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0H33c2.9,0,5.2-2.3,5.3-5.1
C38.3,26.3,36,23.9,33.1,23.9L33.1,23.9L33.1,23.9z"/>
</g>
<path class="p20n-4" d="M66.3,27.3C62,20.3,52.9,18.2,46,22.4c-3.5,2.2-6,5.7-6.8,9.8c2.8,0.3,5.2,1.9,6.6,4.3l-1.1,0.6
c-2-3.4-5.8-3.8-8.5-3.7c-4.4,1.7-6.6,6.6-4.9,11c1.3,3.3,4.4,5.5,7.9,5.5H65c6.3-0.3,11.1-5.7,10.8-11.9
C75.5,32.6,71.5,28.2,66.3,27.3L66.3,27.3z"/>
<path class="p20n-4" d="M30.5,21.3c-0.8-4.5-4.7-7.7-9.3-7.6c-2.9,0-5.7,1.3-7.5,3.6c2,0.3,4.5,1.2,5.6,3.6l-1.2,0.5
c-1.4-3-6-3.1-6.7-3.1c-2.8,0.9-4.7,3.5-4.7,6.5c0.1,3.9,3.3,7,7.2,6.9c0,0,0,0,0,0h16.4c2.9,0,5.2-2.3,5.3-5.1
C35.7,23.6,33.4,21.3,30.5,21.3L30.5,21.3z"/>
<circle class="p20n-5" cx="42.5" cy="50.5" r="8.4"/>
<path class="p20n-0" d="M48.6,53.2L44,50.5l4.6-2.6c0.4-0.2,0.5-0.6,0.3-1l0,0c-0.2-0.3-0.6-0.5-1-0.3l0,0l-4.6,2.6V44
c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7v5.3l-4.6-2.6c-0.3-0.2-0.8-0.1-1,0.2c-0.2,0.3-0.2,0.8,0.2,1l0.2,0.1l4.6,2.6
l-4.6,2.6c-0.4,0.2-0.6,0.6-0.4,1c0.2,0.4,0.6,0.6,1,0.4l0,0l0.2-0.1l0,0l4.5-2.6v5.3c0,0.4,0.3,0.7,0.7,0.7s0.7-0.3,0.7-0.7
c0,0,0,0,0,0v-5.3l4.5,2.6c0.3,0.2,0.8,0.1,1-0.3c0,0,0,0,0,0l0,0C49,53.9,48.9,53.4,48.6,53.2z"/>
<circle class="p20n-5" cx="64.8" cy="50.5" r="8.4"/>
<path class="p20n-0" d="M70.9,53.2l-4.6-2.6l4.6-2.6c0.4-0.2,0.5-0.6,0.3-1l0,0c-0.2-0.3-0.6-0.5-1-0.3l0,0l-4.6,2.6V44
c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7l0,0v5.3l-4.6-2.6c-0.3-0.2-0.8-0.1-1,0.2c-0.2,0.3-0.2,0.8,0.2,1l0.2,0.1l4.6,2.6
l-4.6,2.6c-0.4,0.2-0.6,0.6-0.4,1c0.2,0.4,0.6,0.6,1,0.4l0,0l0.2-0.1l0,0l4.5-2.6v5.3c0,0.4,0.3,0.7,0.7,0.7c0.4,0,0.7-0.3,0.7-0.7
l0,0l0,0v-5.2l4.6,2.6c0.3,0.2,0.8,0.1,1-0.3c0,0,0,0,0,0l0,0C71.3,53.9,71.2,53.4,70.9,53.2L70.9,53.2z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_33" data-name="Calque 33" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p21j-1{fill:#eeeb61;opacity:0.51;}.p21j-1,.p21j-6{isolation:isolate;}.p21j-2{fill:#f5b21a;stroke:#fde901;stroke-miterlimit:10;}.p21j-3{opacity:0.3;}.p21j-4{fill:#231f20;}.p21j-5{fill:#d8d9d8;}.p21j-6{fill:#fff;opacity:0.8;}.p21j-7{fill:#79ccf1;}</style></defs><title>33Plan de travail 1</title><circle class="p21j-1" cx="53.27" cy="30.06" r="19.92"/><circle class="p21j-2" cx="53.27" cy="30.06" r="15.2" transform="translate(-0.3 0.55) rotate(-0.58)"/><g class="p21j-3"><path class="p21j-4" d="M69,38.39A14.77,14.77,0,0,0,42,43.3a8.67,8.67,0,0,1,6.66,4.19l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48h25.7A11.37,11.37,0,0,0,69,38.39Z"/><path class="p21j-4" d="M33.2,32.39a9.31,9.31,0,0,0-9.32-7.61,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.93,6.93,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33a5.21,5.21,0,0,0,.13-10.42h0Z"/></g><path class="p21j-5" d="M66.34,35.69A14.77,14.77,0,0,0,39.26,40.6a8.64,8.64,0,0,1,6.62,4.18l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65.06a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p21j-5" d="M30.58,29.72a9.31,9.31,0,0,0-9.3-7.65,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.94,6.94,0,0,0-4.73,6.46A7.08,7.08,0,0,0,14,40.11H30.45a5.21,5.21,0,0,0,.13-10.42Z"/><circle class="p21j-6" cx="40.9" cy="63.99" r="10.05"/><path class="p21j-7" d="M48.14,67.15,42.66,64l5.48-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32l-5.48,3.16V56.13A.89.89,0,0,0,40,55.94a.6.6,0,0,0,0,.19v6.33L34.52,59.3a.9.9,0,0,0-1.21.33.88.88,0,0,0,.33,1.2h0L39.12,64l-5.48,3.16a.9.9,0,0,0-.33,1.21.89.89,0,0,0,1.21.32h0L40,65.52v6.33a.89.89,0,0,0,1.77.19v-.19h0V65.52l5.48,3.16a.89.89,0,0,0,1.21-.32h0A.89.89,0,0,0,48.14,67.15Z"/><circle class="p21j-6" cx="67.56" cy="63.99" r="10.05" transform="translate(-0.65 0.69) rotate(-0.58)"/><path class="p21j-7" d="M74.81,67.15,69.33,64l5.48-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32l-5.48,3.16V56.13a.89.89,0,0,0-1.77,0h0v6.33L61.19,59.3a.9.9,0,0,0-1.21.33.88.88,0,0,0,.33,1.2h0L65.79,64l-5.48,3.16A.9.9,0,0,0,60,68.36a.89.89,0,0,0,1.21.32h0l5.48-3.16v6.33a.89.89,0,1,0,1.77,0h0V65.52l5.44,3.16a.89.89,0,0,0,1.21-.32h0A.9.9,0,0,0,74.81,67.15Z"/></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_34" data-name="Calque 34" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p21n-1{fill:#44454e;opacity:0.25;}.p21n-1,.p21n-3,.p21n-8{isolation:isolate;}.p21n-2,.p21n-8{fill:#fff;}.p21n-3{fill:#636573;opacity:0.18;}.p21n-4{fill:#fdfcea;}.p21n-5{opacity:0.3;}.p21n-6{fill:#231f20;}.p21n-7{fill:#d8d9d8;}.p21n-8{opacity:0.8;}.p21n-9{fill:#79ccf1;}</style></defs><title>34Plan de travail 1</title><circle class="p21n-1" cx="54.92" cy="34.64" r="22.87"/><path class="p21n-2" d="M65.22,37.63a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,0,0-1.77-.19.6.6,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p21n-2" d="M67.63,35.26a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22A.89.89,0,0,0,67.63,35.26Z"/><path class="p21n-2" d="M36.51,22.69a.89.89,0,0,0,.89-.89h0V18.72a.89.89,0,1,0-1.77-.19.6.6,0,0,0,0,.19v3.1A.89.89,0,0,0,36.51,22.69Z"/><path class="p21n-2" d="M38.88,20.29A.89.89,0,0,0,38,19.4H35a.89.89,0,1,0-.19,1.77H38A.89.89,0,0,0,38.88,20.29Z"/><path class="p21n-2" d="M61.65,20.29a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.6.6,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p21n-2" d="M64.08,17.87a.89.89,0,0,0-.89-.89H60.13a.89.89,0,1,0-.19,1.77h3.22a.89.89,0,0,0,.92-.86h0Z"/><path class="p21n-3" d="M56.11,18.36a15.68,15.68,0,0,1,5.42-.29,15.51,15.51,0,0,0,6.69,28.44A15.56,15.56,0,1,1,56.11,18.36Z"/><path class="p21n-4" d="M50.81,20a15.4,15.4,0,0,1,5.37-.28,15.39,15.39,0,0,0,6.63,28.17A15.41,15.41,0,1,1,50.81,20Z"/><g class="p21n-5"><path class="p21n-6" d="M69,42.54a14.77,14.77,0,0,0-27,4.91,8.64,8.64,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,42.53Z"/><path class="p21n-6" d="M33.2,36.57A9.31,9.31,0,0,0,23.88,29a9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.93,6.93,0,0,0-4.7,6.46A7.08,7.08,0,0,0,16.63,47H33a5.21,5.21,0,0,0,.13-10.42Z"/></g><path class="p21n-7" d="M66.34,40a14.77,14.77,0,0,0-27.08,4.9,8.64,8.64,0,0,1,6.62,4.2l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65.06A11.37,11.37,0,0,0,66.29,40Z"/><path class="p21n-7" d="M30.58,34a9.31,9.31,0,0,0-9.3-7.65,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.93,6.93,0,0,0-4.7,6.46A7.07,7.07,0,0,0,14,44.36H30.48a5.21,5.21,0,0,0,.13-10.42Z"/><circle class="p21n-8" cx="40.9" cy="64.98" r="10.05"/><path class="p21n-9" d="M48.14,68.14,42.66,65l5.48-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32l-5.48,3.16V57.11A.89.89,0,1,0,40,56.92a.6.6,0,0,0,0,.19h0v6.33l-5.48-3.16a.9.9,0,0,0-1.21.33.88.88,0,0,0,.33,1.2L39.12,65l-5.48,3.16a.9.9,0,0,0-.33,1.21.89.89,0,0,0,1.21.32L40,66.5v6.33a.89.89,0,0,0,1.77.19v-.19h0V66.5l5.48,3.16a.89.89,0,0,0,1.21-.32h0A.9.9,0,0,0,48.14,68.14Z"/><circle class="p21n-8" cx="67.56" cy="64.98" r="10.05" transform="translate(-0.66 0.69) rotate(-0.58)"/><path class="p21n-9" d="M74.81,68.14,69.33,65l5.48-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32l-5.48,3.16V57.11a.89.89,0,0,0-1.77,0h0v6.33l-5.48-3.16a.9.9,0,0,0-1.21.33.88.88,0,0,0,.33,1.2L65.79,65l-5.48,3.16A.9.9,0,0,0,60,69.34a.89.89,0,0,0,1.21.32l5.48-3.16v6.33a.89.89,0,1,0,1.77,0h0V66.5l5.44,3.16a.89.89,0,0,0,1.21-.32h0A.89.89,0,0,0,74.81,68.14Z"/></svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_35" data-name="Calque 35" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p22-1{opacity:0.3;}.p22-2{fill:#231f20;}.p22-3{fill:#d8d9d8;}.p22-4{fill:#fff;opacity:0.8;isolation:isolate;}.p22-5{fill:#79ccf1;}</style></defs><title>35Plan de travail 1</title><g class="p22-1"><path class="p22-2" d="M69,33.05A14.77,14.77,0,0,0,42,38a8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,33.05Z"/><path class="p22-2" d="M33.2,27.05a9.3,9.3,0,0,0-9.3-7.65A9.53,9.53,0,0,0,16.4,23c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33.06A5.21,5.21,0,0,0,33.19,27Z"/></g><path class="p22-3" d="M66.34,30.45a14.77,14.77,0,0,0-27.08,4.91,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65.06a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p22-3" d="M30.58,24.46a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.93,6.93,0,0,0-4.73,6.59A7.08,7.08,0,0,0,14,35H30.45a5.21,5.21,0,0,0,.13-10.42Z"/><circle class="p22-4" cx="40.9" cy="57.43" r="10.05"/><path class="p22-5" d="M48.14,60.66,42.66,57.5l5.48-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32L41.77,56V49.66A.89.89,0,1,0,40,49.47a.61.61,0,0,0,0,.19v6.39l-5.48-3.16a.88.88,0,1,0-.88,1.53l5.48,3.16L33.64,60.7a.88.88,0,1,0,.88,1.53h0L40,59.07V65.4a.89.89,0,1,0,1.77.19V59.05l5.48,3.16a.89.89,0,0,0,1.21-.32h0a.89.89,0,0,0-.3-1.22Z"/><circle class="p22-4" cx="67.56" cy="57.43" r="10.05" transform="translate(-0.58 0.69) rotate(-0.58)"/><path class="p22-5" d="M74.81,60.66,69.33,57.5l5.48-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32L68.44,56V49.66a.89.89,0,1,0-1.77,0h0v6.39l-5.48-3.16a.88.88,0,1,0-.88,1.53l5.48,3.16L60.32,60.7a.88.88,0,1,0,.88,1.53h0l5.48-3.18v6.33a.89.89,0,0,0,1.77,0V59.05l5.48,3.16a.89.89,0,0,0,1.21-.32h0a.89.89,0,0,0-.26-1.21Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_35" data-name="Calque 35" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p22-1{opacity:0.3;}.p22-2{fill:#231f20;}.p22-3{fill:#d8d9d8;}.p22-4{fill:#fff;opacity:0.8;isolation:isolate;}.p22-5{fill:#79ccf1;}</style></defs><title>35Plan de travail 1</title><g class="p22-1"><path class="p22-2" d="M69,33.05A14.77,14.77,0,0,0,42,38a8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,33.05Z"/><path class="p22-2" d="M33.2,27.05a9.3,9.3,0,0,0-9.3-7.65A9.53,9.53,0,0,0,16.4,23c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33.06A5.21,5.21,0,0,0,33.19,27Z"/></g><path class="p22-3" d="M66.34,30.45a14.77,14.77,0,0,0-27.08,4.91,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H65.06a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p22-3" d="M30.58,24.46a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.93,6.93,0,0,0-4.73,6.59A7.08,7.08,0,0,0,14,35H30.45a5.21,5.21,0,0,0,.13-10.42Z"/><circle class="p22-4" cx="40.9" cy="57.43" r="10.05"/><path class="p22-5" d="M48.14,60.66,42.66,57.5l5.48-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32L41.77,56V49.66A.89.89,0,1,0,40,49.47a.61.61,0,0,0,0,.19v6.39l-5.48-3.16a.88.88,0,1,0-.88,1.53l5.48,3.16L33.64,60.7a.88.88,0,1,0,.88,1.53h0L40,59.07V65.4a.89.89,0,1,0,1.77.19V59.05l5.48,3.16a.89.89,0,0,0,1.21-.32h0a.89.89,0,0,0-.3-1.22Z"/><circle class="p22-4" cx="67.56" cy="57.43" r="10.05" transform="translate(-0.58 0.69) rotate(-0.58)"/><path class="p22-5" d="M74.81,60.66,69.33,57.5l5.48-3.16a.89.89,0,0,0,.32-1.21h0a.89.89,0,0,0-1.21-.32L68.44,56V49.66a.89.89,0,1,0-1.77,0h0v6.39l-5.48-3.16a.88.88,0,1,0-.88,1.53l5.48,3.16L60.32,60.7a.88.88,0,1,0,.88,1.53h0l5.48-3.18v6.33a.89.89,0,0,0,1.77,0V59.05l5.48,3.16a.89.89,0,0,0,1.21-.32h0a.89.89,0,0,0-.26-1.21Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_36" data-name="Calque 36" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p23-1{fill:#919191;}.p23-2{fill:#fff;opacity:0.8;isolation:isolate;}.p23-3{fill:#79ccf1;}</style></defs><title>36Plan de travail 1</title><path class="p23-1" d="M69,33.92a14.77,14.77,0,0,0-27,4.91A8.62,8.62,0,0,1,48.62,43l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.47H67.72A11.37,11.37,0,0,0,69,33.88Z"/><path class="p23-1" d="M33.2,28a9.29,9.29,0,0,0-9.32-7.61A9.53,9.53,0,0,0,16.38,24c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33A5.21,5.21,0,0,0,33.17,28Z"/><circle class="p23-2" cx="72.75" cy="60.72" r="8.3"/><path class="p23-3" d="M78.73,63.39,74.2,60.77l4.53-2.62a.74.74,0,0,0,.34-1v0h0a.74.74,0,0,0-1-.35l0,0h0L73.5,59.39V54.17a.73.73,0,0,0-1.46,0h0v5.22l-4.53-2.62a.73.73,0,0,0-1,.38.72.72,0,0,0,.24.88l4.52,2.67-4.53,2.69a.72.72,0,0,0-.16,1,.74.74,0,0,0,.88.24L72,62v5.22a.73.73,0,1,0,1.46,0h0V62L78,64.66a.73.73,0,0,0,1-.23h0a.73.73,0,0,0-.24-1Z"/><circle class="p23-2" cx="54.25" cy="60.72" r="8.3"/><path class="p23-3" d="M60.24,63.39l-4.5-2.61,4.53-2.62a.74.74,0,0,0,.34-1v0h0a.74.74,0,0,0-1-.35l0,0h0L55,59.39V54.17a.73.73,0,0,0-1.46,0h0v5.22l-4.53-2.62a.73.73,0,0,0-1,.38.72.72,0,0,0,.24.88h0l4.55,2.63-4.53,2.62a.72.72,0,0,0-.16,1,.74.74,0,0,0,.88.24l4.53-2.62v5.22a.73.73,0,1,0,1.46,0h0V62l4.53,2.62a.73.73,0,0,0,1-.23h0a.73.73,0,0,0-.26-1h0Z"/><circle class="p23-2" cx="35.71" cy="60.72" r="8.3"/><path class="p23-3" d="M41.68,63.39l-4.55-2.61,4.53-2.62a.74.74,0,0,0,.34-1v0h0a.74.74,0,0,0-1-.35l0,0h0l-4.56,2.56V54.17a.73.73,0,0,0-1.46,0h0v5.22l-4.53-2.62a.73.73,0,0,0-1,.38.72.72,0,0,0,.24.88h0l4.53,2.62-4.53,2.62a.72.72,0,0,0-.16,1,.74.74,0,0,0,.88.24L34.88,62v5.22a.73.73,0,0,0,1.46,0h0V62l4.54,2.6a.73.73,0,0,0,1-.23h0a.74.74,0,0,0-.17-1Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_36" data-name="Calque 36" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p23-1{fill:#919191;}.p23-2{fill:#fff;opacity:0.8;isolation:isolate;}.p23-3{fill:#79ccf1;}</style></defs><title>36Plan de travail 1</title><path class="p23-1" d="M69,33.92a14.77,14.77,0,0,0-27,4.91A8.62,8.62,0,0,1,48.62,43l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.47H67.72A11.37,11.37,0,0,0,69,33.88Z"/><path class="p23-1" d="M33.2,28a9.29,9.29,0,0,0-9.32-7.61A9.53,9.53,0,0,0,16.38,24c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33A5.21,5.21,0,0,0,33.17,28Z"/><circle class="p23-2" cx="72.75" cy="60.72" r="8.3"/><path class="p23-3" d="M78.73,63.39,74.2,60.77l4.53-2.62a.74.74,0,0,0,.34-1v0h0a.74.74,0,0,0-1-.35l0,0h0L73.5,59.39V54.17a.73.73,0,0,0-1.46,0h0v5.22l-4.53-2.62a.73.73,0,0,0-1,.38.72.72,0,0,0,.24.88l4.52,2.67-4.53,2.69a.72.72,0,0,0-.16,1,.74.74,0,0,0,.88.24L72,62v5.22a.73.73,0,1,0,1.46,0h0V62L78,64.66a.73.73,0,0,0,1-.23h0a.73.73,0,0,0-.24-1Z"/><circle class="p23-2" cx="54.25" cy="60.72" r="8.3"/><path class="p23-3" d="M60.24,63.39l-4.5-2.61,4.53-2.62a.74.74,0,0,0,.34-1v0h0a.74.74,0,0,0-1-.35l0,0h0L55,59.39V54.17a.73.73,0,0,0-1.46,0h0v5.22l-4.53-2.62a.73.73,0,0,0-1,.38.72.72,0,0,0,.24.88h0l4.55,2.63-4.53,2.62a.72.72,0,0,0-.16,1,.74.74,0,0,0,.88.24l4.53-2.62v5.22a.73.73,0,1,0,1.46,0h0V62l4.53,2.62a.73.73,0,0,0,1-.23h0a.73.73,0,0,0-.26-1h0Z"/><circle class="p23-2" cx="35.71" cy="60.72" r="8.3"/><path class="p23-3" d="M41.68,63.39l-4.55-2.61,4.53-2.62a.74.74,0,0,0,.34-1v0h0a.74.74,0,0,0-1-.35l0,0h0l-4.56,2.56V54.17a.73.73,0,0,0-1.46,0h0v5.22l-4.53-2.62a.73.73,0,0,0-1,.38.72.72,0,0,0,.24.88h0l4.53,2.62-4.53,2.62a.72.72,0,0,0-.16,1,.74.74,0,0,0,.88.24L34.88,62v5.22a.73.73,0,0,0,1.46,0h0V62l4.54,2.6a.73.73,0,0,0,1-.23h0a.74.74,0,0,0-.17-1Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_37" data-name="Calque 37" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p24j-1{fill:#eeeb61;opacity:0.51;isolation:isolate;}.p24j-2{fill:#f5b21a;stroke:#fde901;stroke-miterlimit:10;}.p24j-3{fill:#919191;}.p24j-4{fill:#79ccf1;}.p24j-5{fill:#fff;}.p24j-6{fill:#fdda00;}.p24j-7{fill:#f47a20;}.p24j-8{fill:#cf2e29;}</style></defs><title>37Plan de travail 1</title><circle class="p24j-1" cx="47.34" cy="26.73" r="16.34" transform="translate(-0.15 0.27) rotate(-0.32)"/><circle class="p24j-2" cx="47.34" cy="26.73" r="12.47"/><path class="p24j-3" d="M67.27,33.35a14.77,14.77,0,0,0-27,4.91,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H66a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p24j-3" d="M31.51,27.37a9.29,9.29,0,0,0-9.3-7.65,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.94,6.94,0,0,0-4.7,6.46A7.08,7.08,0,0,0,15,37.76h16.4a5.21,5.21,0,1,0,.13-10.42Z"/><rect class="p24j-4" x="33.52" y="65.16" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="matrix(0.29, -0.96, 0.96, 0.29, -33.18, 87.37)"/><rect class="p24j-4" x="45.66" y="65.13" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-24.58 98.96) rotate(-72.96)"/><rect class="p24j-4" x="21.95" y="65.15" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-41.35 76.3) rotate(-72.96)"/><rect class="p24j-4" x="57.31" y="65.16" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-16.37 110.12) rotate(-72.96)"/><rect class="p24j-5" x="39.56" y="65.15" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-28.91 93.14) rotate(-72.96)"/><rect class="p24j-5" x="51.71" y="65.14" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-20.31 104.75) rotate(-72.96)"/><rect class="p24j-5" x="28" y="65.16" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-37.08 82.09) rotate(-72.96)"/><rect class="p24j-5" x="63.35" y="65.16" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-12.09 115.89) rotate(-72.96)"/><polygon class="p24j-6" points="49.13 43.88 57.62 43.88 55.09 50.86 59.43 50.86 47.72 73.3 50.42 56.83 46.65 56.83 49.13 43.88"/><polygon class="p24j-7" points="47.44 42.17 55.91 42.17 53.4 49.17 57.73 49.17 46.01 71.6 48.7 55.14 44.96 55.14 47.44 42.17"/><rect class="p24j-8" x="60.5" y="48.54" width="16.98" height="16.98"/><path class="p24j-5" d="M73.5,61.68a11.63,11.63,0,0,1-3.42.58,5.74,5.74,0,0,1-4.14-1.39,5,5,0,0,1-1.45-3.73c0-3.4,2.49-5.36,5.85-5.36a7.07,7.07,0,0,1,2.84.5l-.49,1.86a5.58,5.58,0,0,0-2.39-.44,3.34,3.34,0,1,0,1,6.52V58.14H69.69V56.33H73.5Z"/></svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_38" data-name="Calque 38" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p24n-1{fill:#44454e;opacity:0.25;}.p24n-1,.p24n-3{isolation:isolate;}.p24n-2{fill:#fff;}.p24n-3{fill:#636573;opacity:0.18;}.p24n-4{fill:#fdfcea;}.p24n-5{fill:#919191;}.p24n-6{fill:#79ccf1;}.p24n-7{fill:#fdda00;}.p24n-8{fill:#f47a20;}.p24n-9{fill:#cf2e29;}</style></defs><title>38Plan de travail 1</title><circle class="p24n-1" cx="49.31" cy="30.91" r="22.87" transform="translate(-0.06 0.1) rotate(-0.12)"/><path class="p24n-2" d="M59.62,33.93a.89.89,0,0,0,.89-.89h0V30a.89.89,0,1,0-1.77-.19V33a.9.9,0,0,0,.88.9h0Z"/><path class="p24n-2" d="M62,31.54a.89.89,0,0,0-.89-.89h-3A.89.89,0,0,0,58,32.42H61.2A.89.89,0,0,0,62,31.54Z"/><path class="p24n-2" d="M30.9,18.93a.89.89,0,0,0,.89-.89h0V15A.89.89,0,1,0,30,14.85V18a.9.9,0,0,0,.88.9h0Z"/><path class="p24n-2" d="M33.32,16.54a.88.88,0,0,0-.85-.93H29.39a.89.89,0,1,0-.19,1.77h3.22A.89.89,0,0,0,33.32,16.54Z"/><path class="p24n-2" d="M56,16.54a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19v3.19a.9.9,0,0,0,.85.93h0Z"/><path class="p24n-2" d="M58.46,14.14a.89.89,0,0,0-.89-.89h-3a.89.89,0,0,0-1,.79.9.9,0,0,0,.79,1H57.6A.89.89,0,0,0,58.46,14.14Z"/><path class="p24n-3" d="M49.83,15.45a15.21,15.21,0,0,1,5.42-.29A15.51,15.51,0,0,0,61.94,43.6a15.56,15.56,0,0,1-17.09-26A15.4,15.4,0,0,1,49.83,15.45Z"/><path class="p24n-4" d="M45.2,16.2a15.16,15.16,0,0,1,5.37-.28A15.39,15.39,0,0,0,57.2,44.08,15.41,15.41,0,1,1,40.44,18.22a15.13,15.13,0,0,1,4.76-2Z"/><path class="p24n-5" d="M67.28,35.54a14.77,14.77,0,0,0-27.08,5,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H66a11.37,11.37,0,0,0,1.23-22.66Z"/><path class="p24n-5" d="M31.52,29.6a9.3,9.3,0,0,0-9.32-7.67,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1A6.94,6.94,0,0,0,7.73,33,7.08,7.08,0,0,0,15,40h16.4a5.21,5.21,0,1,0,.13-10.42Z"/><rect class="p24n-6" x="33.52" y="67.47" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-35.3 89.35) rotate(-73.19)"/><rect class="p24n-6" x="46.17" y="67.47" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-26.31 101.46) rotate(-73.19)"/><rect class="p24n-6" x="21.96" y="67.47" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-43.57 77.96) rotate(-72.96)"/><rect class="p24n-6" x="57.31" y="67.48" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-18.58 111.76) rotate(-72.96)"/><rect class="p24n-2" x="39.57" y="67.48" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-31.12 94.8) rotate(-72.96)"/><rect class="p24n-2" x="51.72" y="67.48" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-22.53 106.42) rotate(-72.96)"/><rect class="p24n-2" x="28" y="67.48" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-39.3 83.74) rotate(-72.96)"/><rect class="p24n-2" x="63.38" y="67.48" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-14.29 117.56) rotate(-72.96)"/><polygon class="p24n-7" points="48.77 47.7 56.51 47.7 54.2 54.07 58.16 54.07 47.48 74.53 49.95 59.51 46.51 59.51 48.77 47.7"/><polygon class="p24n-8" points="47.23 46.16 54.95 46.16 52.66 52.52 56.61 52.52 45.93 72.98 48.38 57.96 44.97 57.96 47.23 46.16"/><rect class="p24n-9" x="60.51" y="51.27" width="16.98" height="16.98"/><path class="p24n-2" d="M73.51,64.11a11.63,11.63,0,0,1-3.42.58A5.74,5.74,0,0,1,66,63.3a5,5,0,0,1-1.45-3.76c0-3.4,2.49-5.36,5.85-5.36a7.07,7.07,0,0,1,2.84.5l-.49,1.86a5.58,5.58,0,0,0-2.39-.44,3.34,3.34,0,1,0,0,6.68,3.64,3.64,0,0,0,1-.16V60.54H69.7V58.73h3.81Z"/></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_39" data-name="Calque 39" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p25-1{fill:#79ccf1;}.p25-2{fill:#fff;}.p25-3{fill:#919191;}.p25-4{fill:#fdda00;}.p25-5{fill:#f47a20;}.p25-6{fill:#cf2e29;}</style></defs><title>39Plan de travail 1</title><rect class="p25-1" x="34.07" y="60.53" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-28.26 84.94) rotate(-73.19)"/><rect class="p25-1" x="46.71" y="60.53" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-19.28 97.04) rotate(-73.19)"/><rect class="p25-1" x="22.51" y="60.54" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-36.55 73.57) rotate(-72.96)"/><rect class="p25-1" x="57.87" y="60.53" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-11.54 107.38) rotate(-72.96)"/><rect class="p25-2" x="40.12" y="60.53" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-24.09 90.41) rotate(-72.96)"/><rect class="p25-2" x="52.28" y="60.53" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-15.5 102.04) rotate(-72.96)"/><rect class="p25-2" x="39.37" y="51.83" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-16.16 83.82) rotate(-73.19)"/><rect class="p25-2" x="63.93" y="60.54" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-7.26 113.18) rotate(-72.96)"/><path class="p25-3" d="M65.21,28.61a14.78,14.78,0,0,0-27.07,4.94,8.64,8.64,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H63.93a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p25-3" d="M29.45,22.63A9.3,9.3,0,0,0,20.15,15a9.59,9.59,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.94,6.94,0,0,0-4.7,6.46A7.08,7.08,0,0,0,12.91,33H29.35a5.21,5.21,0,1,0,.13-10.42h0Z"/><polygon class="p25-4" points="48.51 39.49 56.37 39.49 54.04 45.99 58.05 45.99 47.18 66.76 49.68 51.51 46.2 51.51 48.51 39.49"/><polygon class="p25-5" points="46.94 37.91 54.79 37.91 52.46 44.41 56.47 44.41 45.6 65.2 48.11 49.94 44.63 49.94 46.94 37.91"/><rect class="p25-6" x="62.56" y="45.67" width="16.98" height="16.98"/><path class="p25-2" d="M75.55,58.81a11.31,11.31,0,0,1-3.42.58A5.65,5.65,0,0,1,68,58a5,5,0,0,1-1.45-3.72c0-3.4,2.49-5.36,5.85-5.36a7.07,7.07,0,0,1,2.84.5l-.49,1.85a5.9,5.9,0,0,0-2.39-.44A3.34,3.34,0,1,0,72,57.5a3.24,3.24,0,0,0,1.27-.18V55.25H71.75V53.44h3.8Z"/></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_39" data-name="Calque 39" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p25-1{fill:#79ccf1;}.p25-2{fill:#fff;}.p25-3{fill:#919191;}.p25-4{fill:#fdda00;}.p25-5{fill:#f47a20;}.p25-6{fill:#cf2e29;}</style></defs><title>39Plan de travail 1</title><rect class="p25-1" x="34.07" y="60.53" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-28.26 84.94) rotate(-73.19)"/><rect class="p25-1" x="46.71" y="60.53" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-19.28 97.04) rotate(-73.19)"/><rect class="p25-1" x="22.51" y="60.54" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-36.55 73.57) rotate(-72.96)"/><rect class="p25-1" x="57.87" y="60.53" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-11.54 107.38) rotate(-72.96)"/><rect class="p25-2" x="40.12" y="60.53" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-24.09 90.41) rotate(-72.96)"/><rect class="p25-2" x="52.28" y="60.53" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-15.5 102.04) rotate(-72.96)"/><rect class="p25-2" x="39.37" y="51.83" width="17.99" height="1.94" rx="0.55" ry="0.55" transform="translate(-16.16 83.82) rotate(-73.19)"/><rect class="p25-2" x="63.93" y="60.54" width="17.94" height="1.93" rx="0.55" ry="0.55" transform="translate(-7.26 113.18) rotate(-72.96)"/><path class="p25-3" d="M65.21,28.61a14.78,14.78,0,0,0-27.07,4.94,8.64,8.64,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H63.93a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p25-3" d="M29.45,22.63A9.3,9.3,0,0,0,20.15,15a9.59,9.59,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.94,6.94,0,0,0-4.7,6.46A7.08,7.08,0,0,0,12.91,33H29.35a5.21,5.21,0,1,0,.13-10.42h0Z"/><polygon class="p25-4" points="48.51 39.49 56.37 39.49 54.04 45.99 58.05 45.99 47.18 66.76 49.68 51.51 46.2 51.51 48.51 39.49"/><polygon class="p25-5" points="46.94 37.91 54.79 37.91 52.46 44.41 56.47 44.41 45.6 65.2 48.11 49.94 44.63 49.94 46.94 37.91"/><rect class="p25-6" x="62.56" y="45.67" width="16.98" height="16.98"/><path class="p25-2" d="M75.55,58.81a11.31,11.31,0,0,1-3.42.58A5.65,5.65,0,0,1,68,58a5,5,0,0,1-1.45-3.72c0-3.4,2.49-5.36,5.85-5.36a7.07,7.07,0,0,1,2.84.5l-.49,1.85a5.9,5.9,0,0,0-2.39-.44A3.34,3.34,0,1,0,72,57.5a3.24,3.24,0,0,0,1.27-.18V55.25H71.75V53.44h3.8Z"/></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_40" data-name="Calque 40" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p26j-1{fill:#eeeb61;opacity:0.51;isolation:isolate;}.p26j-2{fill:#f5b21a;stroke:#fde901;stroke-miterlimit:10;}.p26j-3{fill:#919191;}.p26j-4{fill:#fdda00;}.p26j-5{fill:#f47a20;}</style></defs><title>40Plan de travail 1</title><circle class="p26j-1" cx="50" cy="28.6" r="17.77"/><circle class="p26j-2" cx="50" cy="28.6" r="13.55"/><path class="p26j-3" d="M69,34.89A14.77,14.77,0,0,0,42,39.8,8.61,8.61,0,0,1,48.62,44l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48h25.7a11.37,11.37,0,0,0,1.23-22.58Z"/><path class="p26j-3" d="M33.2,28.9a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64L20.84,29c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33.06a5.21,5.21,0,0,0,.13-10.42Z"/><polygon class="p26j-4" points="51.49 46.78 59.29 46.78 56.96 53.22 60.95 53.22 50.18 73.83 52.67 58.7 49.2 58.7 51.49 46.78"/><polygon class="p26j-5" points="49.93 45.22 57.71 45.22 55.41 51.66 59.39 51.66 48.62 72.28 51.09 57.14 47.65 57.14 49.93 45.22"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_41" data-name="Calque 41" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p26n-1{fill:#44454e;opacity:0.25;}.p26n-1,.p26n-3{isolation:isolate;}.p26n-2{fill:#fff;}.p26n-3{fill:#636573;opacity:0.18;}.p26n-4{fill:#fdfcea;}.p26n-5{fill:#919191;}.p26n-6{fill:#fdda00;}.p26n-7{fill:#f47a20;}</style></defs><title>41Plan de travail 1</title><circle class="p26n-1" cx="50.99" cy="33.16" r="22.87" transform="translate(-0.07 0.11) rotate(-0.12)"/><path class="p26n-2" d="M61.3,36.15a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p26n-2" d="M63.71,33.74a.89.89,0,0,0-.89-.89h-3a.89.89,0,0,0-.19,1.77h3.25A.9.9,0,0,0,63.71,33.74Z"/><path class="p26n-2" d="M32.58,21.25a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p26n-2" d="M35,18.86a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22A.9.9,0,0,0,35,18.86Z"/><path class="p26n-2" d="M57.72,18.86a.89.89,0,0,0,.89-.89h0V15a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p26n-2" d="M60.14,16.39a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22A.9.9,0,0,0,60.14,16.39Z"/><path class="p26n-3" d="M51.58,16.38A15.43,15.43,0,0,1,57,16.09a15.51,15.51,0,0,0,6.69,28.44,15.56,15.56,0,0,1-17.09-26A15.4,15.4,0,0,1,51.58,16.38Z"/><path class="p26n-4" d="M46.88,18.44a15.16,15.16,0,0,1,5.37-.28,15.39,15.39,0,0,0,6.63,28.17,15.41,15.41,0,1,1-12-27.91Z"/><path class="p26n-5" d="M69,37.86a14.77,14.77,0,0,0-27,4.91A8.62,8.62,0,0,1,48.6,47l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,37.86Z"/><path class="p26n-5" d="M33.2,31.86a9.29,9.29,0,0,0-9.32-7.61,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64L20.82,32c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33a5.21,5.21,0,0,0,.13-10.42Z"/><polygon class="p26n-6" points="52.42 48.64 60.31 48.64 57.95 55.12 61.99 55.12 51.1 75.98 53.61 60.67 50.11 60.67 52.42 48.64"/><polygon class="p26n-7" points="50.85 47.05 58.72 47.05 56.38 53.55 60.41 53.55 49.52 74.41 52.02 59.1 48.54 59.1 50.85 47.05"/></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_42" data-name="Calque 42" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p27-1{fill:#919191;}.p27-2{fill:#fdda00;}.p27-3{fill:#f47a20;}</style></defs><title>42Plan de travail 1</title><path class="p27-1" d="M69,32.55a14.77,14.77,0,0,0-27.08,4.93,8.66,8.66,0,0,1,6.66,4.23l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.47H67.72A11.37,11.37,0,0,0,69,32.57Z"/><path class="p27-1" d="M33.2,26.57a9.31,9.31,0,0,0-9.3-7.65,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1A6.93,6.93,0,0,0,9.43,30,7.08,7.08,0,0,0,16.65,37H33.06a5.21,5.21,0,0,0,.13-10.42h0Z"/><polygon class="p27-2" points="53.94 42.42 61.72 42.42 59.39 48.84 63.38 48.84 52.64 69.4 55.12 54.31 51.66 54.31 53.94 42.42"/><polygon class="p27-3" points="52.39 40.87 60.15 40.87 57.85 47.28 61.81 47.28 51.08 67.84 53.54 52.74 50.11 52.74 52.39 40.87"/></svg>

Before

Width:  |  Height:  |  Size: 928 B

View File

@ -1 +0,0 @@
<svg id="Calque_42" data-name="Calque 42" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p27-1{fill:#919191;}.p27-2{fill:#fdda00;}.p27-3{fill:#f47a20;}</style></defs><title>42Plan de travail 1</title><path class="p27-1" d="M69,32.55a14.77,14.77,0,0,0-27.08,4.93,8.66,8.66,0,0,1,6.66,4.23l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.47H67.72A11.37,11.37,0,0,0,69,32.57Z"/><path class="p27-1" d="M33.2,26.57a9.31,9.31,0,0,0-9.3-7.65,9.56,9.56,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1A6.93,6.93,0,0,0,9.43,30,7.08,7.08,0,0,0,16.65,37H33.06a5.21,5.21,0,0,0,.13-10.42h0Z"/><polygon class="p27-2" points="53.94 42.42 61.72 42.42 59.39 48.84 63.38 48.84 52.64 69.4 55.12 54.31 51.66 54.31 53.94 42.42"/><polygon class="p27-3" points="52.39 40.87 60.15 40.87 57.85 47.28 61.81 47.28 51.08 67.84 53.54 52.74 50.11 52.74 52.39 40.87"/></svg>

Before

Width:  |  Height:  |  Size: 928 B

View File

@ -1 +0,0 @@
<svg id="Calque_43" data-name="Calque 43" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p28j-1{fill:#eeeb61;opacity:0.51;isolation:isolate;}.p28j-2{fill:#f5b21a;stroke:#fde901;stroke-miterlimit:10;}.p28j-3{fill:#919191;}.p28j-4{fill:#fdda00;}.p28j-5{fill:#f47a20;}</style></defs><title>43Plan de travail 1</title><circle class="p28j-1" cx="46.51" cy="31.18" r="19.05"/><circle class="p28j-2" cx="46.51" cy="31.18" r="14.55"/><path class="p28j-3" d="M69,34A14.77,14.77,0,0,0,42,38.9a8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.54H67.72A11.37,11.37,0,0,0,69,34Z"/><path class="p28j-3" d="M33.2,28a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33.06A5.21,5.21,0,0,0,33.19,28Z"/><polygon class="p28j-4" points="50.63 45.49 58.33 45.49 56.03 51.83 59.97 51.83 49.35 72.16 51.8 57.24 48.38 57.24 50.63 45.49"/><polygon class="p28j-5" points="49.1 43.95 56.77 43.95 54.5 50.29 58.42 50.29 47.81 70.63 50.25 55.7 46.85 55.7 49.1 43.95"/><polygon class="p28j-4" points="64.58 45.49 72.27 45.49 69.99 51.83 73.91 51.83 63.29 72.16 65.74 57.24 62.34 57.24 64.58 45.49"/><polygon class="p28j-5" points="63.05 43.95 70.73 43.95 68.44 50.29 72.38 50.29 61.76 70.63 64.19 55.7 60.79 55.7 63.05 43.95"/></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_44" data-name="Calque 44" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p28n-1{fill:#44454e;opacity:0.25;}.p28n-1,.p28n-3{isolation:isolate;}.p28n-2{fill:#fff;}.p28n-3{fill:#636573;opacity:0.18;}.p28n-4{fill:#fdfcea;}.p28n-5{fill:#919191;}.p28n-6{fill:#fdda00;}.p28n-7{fill:#f47a20;}</style></defs><title>44Plan de travail 1</title><circle class="p28n-1" cx="50.99" cy="33.16" r="22.87" transform="translate(-0.07 0.11) rotate(-0.12)"/><path class="p28n-2" d="M61.3,36.17a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p28n-2" d="M63.71,33.8a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.25A.9.9,0,0,0,63.71,33.8Z"/><path class="p28n-2" d="M32.58,21.24a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p28n-2" d="M35,18.8a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22A.9.9,0,0,0,35,18.8Z"/><path class="p28n-2" d="M57.72,18.8a.89.89,0,0,0,.89-.89h0v-3a.89.89,0,1,0-1.77-.19.61.61,0,0,0,0,.19v3a.89.89,0,0,0,.88.9h0Z"/><path class="p28n-2" d="M60.14,16.41a.89.89,0,0,0-.89-.89h-3a.89.89,0,1,0-.19,1.77h3.22A.9.9,0,0,0,60.14,16.41Z"/><path class="p28n-3" d="M51,17.71a15.43,15.43,0,0,1,5.42-.29,15.51,15.51,0,0,0,6.68,28.44A15.56,15.56,0,1,1,50.94,17.71Z"/><path class="p28n-4" d="M46.88,18.41a15.4,15.4,0,0,1,5.37-.28,15.39,15.39,0,0,0,6.63,28.28,15.41,15.41,0,1,1-12-28Z"/><path class="p28n-5" d="M69,37.8a14.77,14.77,0,0,0-27,4.91,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,37.8Z"/><path class="p28n-5" d="M33.2,31.86a9.3,9.3,0,0,0-9.3-7.65,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64L20.84,32c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33.06a5.21,5.21,0,0,0,.13-10.42Z"/><polygon class="p28n-6" points="49.54 49.15 57.51 49.15 55.13 55.71 59.21 55.71 48.21 76.77 50.75 61.33 47.21 61.33 49.54 49.15"/><polygon class="p28n-7" points="47.95 47.55 55.9 47.55 53.54 54.12 57.61 54.12 46.61 75.19 49.13 59.72 45.62 59.72 47.95 47.55"/><polygon class="p28n-6" points="64.65 49.15 72.62 49.15 70.25 55.71 74.32 55.71 63.32 76.77 65.86 61.33 62.33 61.33 64.65 49.15"/><polygon class="p28n-7" points="63.06 47.55 71.02 47.55 68.65 54.12 72.73 54.12 61.73 75.19 64.24 59.72 60.73 59.72 63.06 47.55"/></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_45" data-name="Calque 45" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p29-1{fill:#919191;}.p29-2{fill:#fdda00;}.p29-3{fill:#f47a20;}</style></defs><title>45Plan de travail 1</title><path class="p29-1" d="M69,32.13a14.77,14.77,0,0,0-27,4.93,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,32.14Z"/><path class="p29-1" d="M33.2,26.15a9.3,9.3,0,0,0-9.32-7.59,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33a5.21,5.21,0,0,0,.13-10.42Z"/><polygon class="p29-2" points="50.55 43.58 58.48 43.58 56.11 50.12 60.17 50.12 49.23 71.08 51.75 55.68 48.23 55.68 50.55 43.58"/><polygon class="p29-3" points="48.97 41.98 56.88 41.98 54.54 48.53 58.58 48.53 47.63 69.5 50.15 54.1 46.65 54.1 48.97 41.98"/><polygon class="p29-2" points="65.59 43.58 73.52 43.58 71.17 50.12 75.21 50.12 64.27 71.08 66.79 55.68 63.28 55.68 65.59 43.58"/><polygon class="p29-3" points="64.01 41.98 71.93 41.98 69.58 48.53 73.63 48.53 62.69 69.5 65.19 54.1 61.69 54.1 64.01 41.98"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1 +0,0 @@
<svg id="Calque_45" data-name="Calque 45" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85.23 85.24" width="50" height="50"><defs><style>.p29-1{fill:#919191;}.p29-2{fill:#fdda00;}.p29-3{fill:#f47a20;}</style></defs><title>45Plan de travail 1</title><path class="p29-1" d="M69,32.13a14.77,14.77,0,0,0-27,4.93,8.62,8.62,0,0,1,6.64,4.21l-1.14.64c-2-3.42-5.82-3.85-8.47-3.67a8.52,8.52,0,0,0,3,16.48H67.72A11.37,11.37,0,0,0,69,32.14Z"/><path class="p29-1" d="M33.2,26.15a9.3,9.3,0,0,0-9.32-7.59,9.53,9.53,0,0,0-7.5,3.57c2,.32,4.53,1.21,5.63,3.64l-1.19.54c-1.36-3-6-3.1-6.71-3.1a6.92,6.92,0,0,0-4.7,6.46,7.08,7.08,0,0,0,7.22,6.93H33a5.21,5.21,0,0,0,.13-10.42Z"/><polygon class="p29-2" points="50.55 43.58 58.48 43.58 56.11 50.12 60.17 50.12 49.23 71.08 51.75 55.68 48.23 55.68 50.55 43.58"/><polygon class="p29-3" points="48.97 41.98 56.88 41.98 54.54 48.53 58.58 48.53 47.63 69.5 50.15 54.1 46.65 54.1 48.97 41.98"/><polygon class="p29-2" points="65.59 43.58 73.52 43.58 71.17 50.12 75.21 50.12 64.27 71.08 66.79 55.68 63.28 55.68 65.59 43.58"/><polygon class="p29-3" points="64.01 41.98 71.93 41.98 69.58 48.53 73.63 48.53 62.69 69.5 65.19 54.1 61.69 54.1 64.01 41.98"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="orage_de_neige" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve" width="50" height="50">
<style type="text/css">
.p30j-0{opacity:0.51;fill:#EFEB60;enable-background:new ;}
.p30j-1{fill:#F6B31A;stroke:#FEEA02;stroke-miterlimit:10;}
.p30j-2{fill:#919191;}
.p30j-3{fill:#FEDA00;}
.p30j-4{fill:#F47920;}
.p30j-5{opacity:0.8;fill:#FFFFFF;enable-background:new ;}
.p30j-6{fill:#77CCF2;}
</style>
<circle class="p30j-0" cx="45.6" cy="27.1" r="17.8"/>
<circle class="p30j-1" cx="45.6" cy="27.1" r="13.6"/>
<path class="p30j-2" d="M68.7,33.7c-4.7-7.5-14.6-9.8-22.2-5.1c-3.7,2.4-6.3,6.1-7.2,10.4c3,0.2,5.7,2,7.3,4.6l-1.2,0.7
c-2.2-3.7-6.3-4.2-9.2-4c-4.8,1.8-7.2,7.2-5.3,12c1.4,3.6,4.8,6,8.6,6h27.9c6.9-0.3,12.1-6.2,11.7-12.9
C78.7,39.4,74.5,34.6,68.7,33.7L68.7,33.7z"/>
<path class="p30j-2" d="M29.8,27.1c-0.9-4.9-5.1-8.4-10.1-8.3c-3.2,0-6.2,1.4-8.2,3.9c2.2,0.3,4.9,1.3,6.1,3.9l-1.3,0.5
C14.8,24,9.8,23.9,9,23.9c-3,1-5.1,3.8-5.1,7.1c0.1,4.2,3.6,7.6,7.8,7.5l0,0h17.8c3.2,0,5.7-2.5,5.8-5.5
C35.4,29.9,32.9,27.1,29.8,27.1L29.8,27.1z"/>
<polygon class="p30j-3" points="49.7,46.6 58.2,46.6 55.7,53.6 60,53.6 48.3,76.1 51,59.5 47.2,59.5 "/>
<polygon class="p30j-4" points="48.1,44.9 56.4,44.9 53.9,51.9 58.3,51.9 46.5,74.3 49.3,57.9 45.6,57.9 "/>
<circle class="p30j-5" cx="33.4" cy="55.6" r="11"/>
<path class="p30j-6" d="M41.2,59.1l-6-3.5l6-3.5c0.4-0.2,0.7-0.9,0.3-1.3l0,0c-0.2-0.4-0.9-0.7-1.3-0.3l-6,3.4V47
c-0.1-0.5-0.5-0.9-1.1-0.9c-0.4,0-0.8,0.4-0.9,0.9v6.9l-6-3.4c-0.4-0.2-1.1,0-1.3,0.4c-0.2,0.3-0.1,0.8,0.2,1.1l0.1,0.1l6,3.5
l-6,3.4c-0.4,0.2-0.7,0.8-0.4,1.3c0.2,0.4,0.8,0.7,1.3,0.4l0.2-0.1l6-3.5V64c-0.1,0.5,0.3,1,0.9,1.1c0.5,0.1,1-0.3,1.1-0.9
c0-0.1,0-0.1,0-0.2v-6.9l6,3.5c0.4,0.2,1.1,0.1,1.3-0.3l0,0C41.9,60,41.8,59.3,41.2,59.1C41.3,59.1,41.3,59.1,41.2,59.1L41.2,59.1
L41.2,59.1z"/>
<circle class="p30j-5" cx="71.8" cy="56" r="11"/>
<path class="p30j-6" d="M79.7,59.4l-6-3.5l6-3.5c0.4-0.2,0.7-0.9,0.3-1.3l0,0c-0.2-0.4-0.9-0.7-1.3-0.3l-6,3.4v-6.9
c-0.1-0.5-0.5-0.9-1.1-0.9c-0.4,0-0.8,0.4-0.9,0.9v6.9l-6-3.4c-0.4-0.2-1.1,0-1.3,0.4c-0.2,0.3-0.1,0.8,0.2,1.1l0.1,0.1l6,3.5
l-6,3.4c-0.4,0.2-0.7,0.8-0.4,1.3c0.2,0.4,0.8,0.7,1.3,0.4l0.2-0.1l6-3.5v6.9c-0.1,0.5,0.3,1,0.9,1.1c0.5,0.1,1-0.3,1.1-0.9
c0-0.1,0-0.1,0-0.2v-6.9l6,3.5c0.4,0.2,1.1,0.1,1.3-0.3l0,0C80.4,60.3,80.2,59.8,79.7,59.4L79.7,59.4L79.7,59.4L79.7,59.4z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="orage_de_neige" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve" width="50" height="50">
<style type="text/css">
.p30n-0{opacity:0.18;fill:#43444D;enable-background:new ;}
.p30n-1{fill:#FFFFFF;}
.p30n-2{opacity:0.18;fill:#626472;enable-background:new ;}
.p30n-3{fill:#FDFCE9;}
.p30n-4{fill:#919191;}
.p30n-5{fill:#FEDA00;}
.p30n-6{fill:#F47920;}
.p30n-7{opacity:0.8;fill:#FFFFFF;enable-background:new ;}
.p30n-8{fill:#77CCF2;}
</style>
<circle class="p30n-0" cx="45.5" cy="27.2" r="17.8"/>
<path class="p30n-1" d="M53.5,29.5c0.4,0,0.7-0.3,0.7-0.7v-2.4c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7v2.4
C52.8,29.2,53.1,29.5,53.5,29.5L53.5,29.5z"/>
<path class="p30n-1" d="M55.4,27.6c0-0.4-0.3-0.7-0.7-0.7h-2.4c-0.4,0-0.7,0.3-0.7,0.7c0,0.4,0.3,0.7,0.7,0.7h2.4
C55.1,28.4,55.4,28.1,55.4,27.6C55.4,27.7,55.4,27.7,55.4,27.6z"/>
<path class="p30n-1" d="M31.2,18.6c0.4,0,0.7-0.3,0.7-0.7v-2.4c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7v2.4
C30.5,18.3,30.8,18.6,31.2,18.6L31.2,18.6z"/>
<path class="p30n-1" d="M33.1,16.7c0-0.4-0.3-0.7-0.7-0.7H30c-0.4,0-0.7,0.3-0.7,0.7c0,0.4,0.3,0.7,0.7,0.7h2.4
C32.7,17.5,33,17.2,33.1,16.7L33.1,16.7L33.1,16.7z"/>
<path class="p30n-1" d="M50.8,16.7c0.4,0,0.7-0.3,0.7-0.7v-2.4c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7V16
C50,16.4,50.3,16.7,50.8,16.7L50.8,16.7z"/>
<path class="p30n-1" d="M52.6,14.9c0-0.4-0.3-0.7-0.7-0.7h-2.4c-0.4,0-0.7,0.3-0.7,0.7c0,0.4,0.3,0.7,0.7,0.7h2.4
C52.3,15.5,52.6,15.3,52.6,14.9L52.6,14.9L52.6,14.9z"/>
<path class="p30n-2" d="M46.1,15.6c1.4-0.3,2.8-0.4,4.2-0.2c-5.5,3.6-7.1,11-3.5,16.5c2,3,5.1,5,8.6,5.4c-5.6,3.5-13,1.9-16.5-3.6
c-3.5-5.6-1.9-12.9,3.6-16.5C43.6,16.4,44.8,16,46.1,15.6z"/>
<path class="p30n-3" d="M42.3,15.8c1.4-0.3,2.8-0.4,4.2-0.2c-5.5,3.6-7.1,11-3.4,16.5c1.9,2.9,5.1,4.9,8.6,5.3
c-5.6,3.5-13,1.9-16.5-3.6c-3.5-5.6-1.9-12.9,3.6-16.5C39.9,16.6,41.1,16,42.3,15.8L42.3,15.8z"/>
<path class="p30n-4" d="M68.7,33.7c-4.7-7.5-14.6-9.8-22.2-5.1c-3.7,2.4-6.3,6.1-7.2,10.4c3,0.2,5.7,2,7.3,4.6l-1.2,0.7
c-2.2-3.7-6.3-4.2-9.2-4c-4.8,1.8-7.2,7.2-5.3,12c1.4,3.6,4.8,6,8.6,6h27.9c6.9-0.3,12.1-6.2,11.7-12.9
C78.7,39.4,74.5,34.6,68.7,33.7L68.7,33.7z"/>
<path class="p30n-4" d="M29.8,27.1c-0.9-4.9-5.1-8.4-10.1-8.3c-3.2,0-6.2,1.4-8.2,3.9c2.2,0.3,4.9,1.3,6.1,3.9l-1.3,0.5
C14.8,24,9.8,23.9,9,23.9c-3,1-5.1,3.8-5.1,7.1c0.1,4.2,3.6,7.6,7.8,7.5l0,0h17.8c3.2,0,5.7-2.5,5.8-5.5
C35.4,29.9,32.9,27.1,29.8,27.1L29.8,27.1z"/>
<polygon class="p30n-5" points="49.7,46.6 58.2,46.6 55.7,53.6 60,53.6 48.3,76.1 51,59.5 47.2,59.5 "/>
<polygon class="p30n-6" points="48.1,44.9 56.4,44.9 53.9,51.9 58.3,51.9 46.5,74.3 49.3,57.9 45.6,57.9 "/>
<circle class="p30n-7" cx="33.4" cy="55.6" r="11"/>
<path class="p30n-8" d="M41.2,59.1l-6-3.5l6-3.5c0.4-0.2,0.7-0.9,0.3-1.3l0,0c-0.2-0.4-0.9-0.7-1.3-0.3l-6,3.4V47
c-0.1-0.5-0.5-0.9-1.1-0.9c-0.4,0-0.8,0.4-0.9,0.9v6.9l-6-3.4c-0.4-0.2-1.1,0-1.3,0.4c-0.2,0.3-0.1,0.8,0.2,1.1l0.1,0.1l6,3.5
l-6,3.4c-0.4,0.2-0.7,0.8-0.4,1.3c0.2,0.4,0.8,0.7,1.3,0.4l0.2-0.1l6-3.5V64c-0.1,0.5,0.3,1,0.9,1.1c0.5,0.1,1-0.3,1.1-0.9
c0-0.1,0-0.1,0-0.2v-6.9l6,3.5c0.4,0.2,1.1,0.1,1.3-0.3l0,0C41.9,60,41.8,59.3,41.2,59.1C41.3,59.1,41.3,59.1,41.2,59.1L41.2,59.1
L41.2,59.1z"/>
<circle class="p30n-7" cx="71.8" cy="56" r="11"/>
<path class="p30n-8" d="M79.7,59.4l-6-3.5l6-3.5c0.4-0.2,0.7-0.9,0.3-1.3l0,0c-0.2-0.4-0.9-0.7-1.3-0.3l-6,3.4v-6.9
c-0.1-0.5-0.5-0.9-1.1-0.9c-0.4,0-0.8,0.4-0.9,0.9v6.9l-6-3.4c-0.4-0.2-1.1,0-1.3,0.4c-0.2,0.3-0.1,0.8,0.2,1.1l0.1,0.1l6,3.5
l-6,3.4c-0.4,0.2-0.7,0.8-0.4,1.3c0.2,0.4,0.8,0.7,1.3,0.4l0.2-0.1l6-3.5v6.9c-0.1,0.5,0.3,1,0.9,1.1c0.5,0.1,1-0.3,1.1-0.9
c0-0.1,0-0.1,0-0.2v-6.9l6,3.5c0.4,0.2,1.1,0.1,1.3-0.3l0,0C80.4,60.3,80.2,59.8,79.7,59.4L79.7,59.4L79.7,59.4L79.7,59.4z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -1,73 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="orage_de_neige" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 85.2 85.2" style="enable-background:new 0 0 85.2 85.2;" xml:space="preserve" width="50" height="50">
<style type="text/css">
.p31j-0{fill:#FFE7A4;}
.p31j-1{fill:#DDA766;}
</style>
<circle class="p31j-0" cx="26.9" cy="10.9" r="2.8"/>
<circle class="p31j-0" cx="11.9" cy="48.8" r="2.8"/>
<circle class="p31j-0" cx="28.8" cy="48.1" r="3.1"/>
<circle class="p31j-0" cx="43.6" cy="16" r="3.1"/>
<circle class="p31j-0" cx="36" cy="73" r="0.8"/>
<circle class="p31j-0" cx="9.3" cy="41.9" r="0.8"/>
<circle class="p31j-0" cx="63" cy="46" r="0.8"/>
<circle class="p31j-0" cx="40.7" cy="10.9" r="0.8"/>
<circle class="p31j-0" cx="60.7" cy="30.6" r="0.8"/>
<circle class="p31j-0" cx="66.5" cy="31.4" r="0.8"/>
<circle class="p31j-0" cx="48.4" cy="68.8" r="0.8"/>
<circle class="p31j-0" cx="59.9" cy="42.7" r="0.8"/>
<circle class="p31j-0" cx="56.5" cy="36" r="0.8"/>
<circle class="p31j-0" cx="45.3" cy="40.4" r="0.8"/>
<circle class="p31j-0" cx="49.2" cy="36.3" r="2.3"/>
<circle class="p31j-0" cx="15.2" cy="33.7" r="2.3"/>
<circle class="p31j-0" cx="73" cy="40.4" r="2.3"/>
<circle class="p31j-0" cx="70.6" cy="68" r="2.3"/>
<circle class="p31j-0" cx="43" cy="65" r="2.3"/>
<circle class="p31j-0" cx="20.5" cy="23.1" r="2.3"/>
<circle class="p31j-0" cx="60.7" cy="24.4" r="2.3"/>
<circle class="p31j-0" cx="46.7" cy="46" r="1.6"/>
<circle class="p31j-0" cx="25.7" cy="39.7" r="1.6"/>
<circle class="p31j-0" cx="37.6" cy="22.3" r="1.6"/>
<circle class="p31j-0" cx="63.8" cy="38.6" r="1.6"/>
<circle class="p31j-0" cx="66.5" cy="54.1" r="1.6"/>
<circle class="p31j-0" cx="36" cy="57.4" r="1.6"/>
<circle class="p31j-0" cx="54.2" cy="54.1" r="1.6"/>
<circle class="p31j-0" cx="35.6" cy="33.7" r="2.3"/>
<circle class="p31j-0" cx="62.2" cy="11.4" r="2.7"/>
<circle class="p31j-0" cx="57.4" cy="59" r="2.5"/>
<circle class="p31j-0" cx="21.5" cy="65.9" r="2.5"/>
<circle class="p31j-0" cx="9.3" cy="70.9" r="0.8"/>
<circle class="p31j-0" cx="54.9" cy="65.9" r="0.8"/>
<circle class="p31j-0" cx="50" cy="53.3" r="0.8"/>
<circle class="p31j-0" cx="28.8" cy="68.8" r="0.8"/>
<circle class="p31j-0" cx="36.8" cy="61" r="0.8"/>
<circle class="p31j-0" cx="76.3" cy="54.9" r="0.8"/>
<circle class="p31j-0" cx="71.5" cy="53.3" r="0.8"/>
<circle class="p31j-0" cx="70.7" cy="61" r="0.8"/>
<circle class="p31j-0" cx="77.3" cy="29.9" r="0.8"/>
<circle class="p31j-0" cx="77.3" cy="34" r="0.8"/>
<circle class="p31j-0" cx="63.8" cy="67.3" r="0.8"/>
<circle class="p31j-0" cx="18.3" cy="38.9" r="0.8"/>
<circle class="p31j-0" cx="23.9" cy="55.7" r="0.8"/>
<circle class="p31j-0" cx="22.3" cy="60.2" r="0.8"/>
<circle class="p31j-0" cx="37.3" cy="48.9" r="0.8"/>
<circle class="p31j-0" cx="11.1" cy="57.3" r="0.8"/>
<circle class="p31j-0" cx="14.7" cy="54.9" r="0.8"/>
<circle class="p31j-0" cx="41.3" cy="27.9" r="0.8"/>
<circle class="p31j-0" cx="32.7" cy="29.5" r="0.8"/>
<circle class="p31j-0" cx="26.9" cy="25.4" r="0.8"/>
<circle class="p31j-0" cx="39.7" cy="38.9" r="0.8"/>
<circle class="p31j-0" cx="53.3" cy="22.9" r="0.8"/>
<circle class="p31j-0" cx="50" cy="25.4" r="0.8"/>
<circle class="p31j-0" cx="72.3" cy="13.9" r="0.8"/>
<circle class="p31j-0" cx="34.1" cy="19.1" r="0.8"/>
<circle class="p31j-0" cx="23.9" cy="28.7" r="0.8"/>
<circle class="p31j-0" cx="17.5" cy="13.7" r="0.8"/>
<circle class="p31j-0" cx="10.3" cy="19.9" r="0.8"/>
<circle class="p31j-0" cx="57.2" cy="14.5" r="0.8"/>
<circle class="p31j-0" cx="55.8" cy="10.9" r="0.8"/>
<circle class="p31j-0" cx="65.7" cy="21.5" r="0.8"/>
<path class="p31j-1" d="M4,81.5h78C82,81.5,49.6,75.3,4,81.5z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

Some files were not shown because too many files have changed in this diff Show More