diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 3faae2fb00f18efeeb909aeaf0ed21217e9bc498..397aec0aa9434ed053615f244710a1c6d23eed96 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -41,11 +41,10 @@ RUN chown -R abc:abc /home/abc/.mozilla/ ## Python -RUN apt-get install -y python3 python3-venv +RUN apt-get install -y python3 python3-venv python3-pip pip # Pytest RUN apt-get install -y python3-pytest -# Python lib -RUN sudo apt-get install -y pip + # latest VSCodium version RUN wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor | dd of=/usr/share/keyrings/vscodium-archive-keyring.gpg @@ -57,10 +56,10 @@ RUN sed -i 's/\/usr\/share\/codium\/codium /\/usr\/share\/codium\/codium --no-sa RUN mkdir -p /home/abc/.vscode-oss/extensions && chown -R abc:abc /home/abc/.vscode-oss && cd /home/abc/.vscode-oss/extensions && wget https://openvsxorg.blob.core.windows.net/resources/ms-python/python/2023.12.0/ms-python.python-2023.12.0.vsix && unzip ms-python.python-2023.12.0.vsix # Filius (a network simulator) -RUN apt-get install -y openjdk-17-jdk openjdk-17-jre -RUN wget https://www.lernsoftware-filius.de/downloads/Setup/filius_2.5.1_all.deb && apt install -y ./filius_2.5.1_all.deb && rm filius_2.5.1_all.deb -RUN mkdir /home/abc/.filius && chown -R abc:abc /home/abc/.filius -COPY konfig.xml /home/abc/.filius +#RUN apt-get install -y openjdk-17-jdk openjdk-17-jre +#RUN wget https://www.lernsoftware-filius.de/downloads/Setup/filius_2.5.1_all.deb && apt install -y ./filius_2.5.1_all.deb && rm filius_2.5.1_all.deb +#RUN mkdir /home/abc/.filius && chown -R abc:abc /home/abc/.filius +#COPY konfig.xml /home/abc/.filius # JASPER (for the Alternate Bit Protocol simulation) # use "appletviewer jasper-1.7/html/ABP.html" to launch the applet @@ -68,6 +67,15 @@ COPY jasper-1.7.zip /home/abc/ RUN unzip /home/abc/jasper-1.7.zip -d /home/abc/ && rm /home/abc/jasper-1.7.zip && chown -R abc:abc /home/abc/jasper-1.7 RUN apt-get update && apt-get upgrade -y && \ apt-get install -y openjdk-8-jdk + +# pour Jérôme François +RUN apt-get update && apt-get upgrade -y && \ + apt-get install -y hping3 wireshark +RUN pip install --no-cache-dir --upgrade --break-system-packages pip && \ + pip install --no-cache-dir --break-system-packages streamlit pillow +RUN mkdir -p /home/abc/gallery +COPY JeromeFrancois/ /home/abc/gallery/ +RUN chown -R abc:abc /home/abc/gallery && usermod -d /home/abc/gallery abc # Clean up RUN apt-get clean && \ diff --git a/Docker/JeromeFrancois/albums/cats/0000.jpg b/Docker/JeromeFrancois/albums/cats/0000.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12bf16269f1068dc8089fbaab02402284dc06347 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0000.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0001.jpg b/Docker/JeromeFrancois/albums/cats/0001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0242e585b06a42e4a753d3249fd322e48c15f56d Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0001.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0002.jpg b/Docker/JeromeFrancois/albums/cats/0002.jpg new file mode 100644 index 0000000000000000000000000000000000000000..949bd571cff53d917c8ee22c599d534335e2d93b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0002.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0003.jpg b/Docker/JeromeFrancois/albums/cats/0003.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62490977b59e75f3b90bb6b3677a6e58ad06224c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0003.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0004.jpg b/Docker/JeromeFrancois/albums/cats/0004.jpg new file mode 100644 index 0000000000000000000000000000000000000000..564d0c5196e49fdcb8bd2093e6a9d20803fabeab Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0004.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0005.jpg b/Docker/JeromeFrancois/albums/cats/0005.jpg new file mode 100644 index 0000000000000000000000000000000000000000..47f065dce52b90fe8ca6f7d17c3a9f1dfbe4793b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0005.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0006.jpg b/Docker/JeromeFrancois/albums/cats/0006.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4f4debc99f4ab848c080d4aa2660b961660689f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0006.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0007.jpg b/Docker/JeromeFrancois/albums/cats/0007.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a982931e56d845fdf7c3131ce76bee83cc9f14e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0007.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0008.jpg b/Docker/JeromeFrancois/albums/cats/0008.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e1c2fb733990fd12293e5c12a0e986d407d6cadd Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0008.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0009.jpg b/Docker/JeromeFrancois/albums/cats/0009.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4caec4ea3858eb63bf5d64f4e6dba060491d18d8 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0009.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0010.jpg b/Docker/JeromeFrancois/albums/cats/0010.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf25e49afc4dd0d876cacbbf026b1245f81e3a30 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0010.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0011.jpg b/Docker/JeromeFrancois/albums/cats/0011.jpg new file mode 100644 index 0000000000000000000000000000000000000000..563b3e4396e95ed1bbb4a0f0581bdc4e0859728c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0011.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0012.jpg b/Docker/JeromeFrancois/albums/cats/0012.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52cc0681afbe25c53c26f6f3501be1030297531e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0012.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0013.jpg b/Docker/JeromeFrancois/albums/cats/0013.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70d8c5937d5312cfb62b0a2bc38df553b80ee700 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0013.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0014.jpg b/Docker/JeromeFrancois/albums/cats/0014.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ef3b2021dd9d8aa6fc3d9f066373d9f05dd545b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0014.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0015.jpg b/Docker/JeromeFrancois/albums/cats/0015.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12085a5304746eb0198740dd1eae8395fe257568 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0015.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0016.jpg b/Docker/JeromeFrancois/albums/cats/0016.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d26adf1c874e6dcd3e3341d15b6f3d73e60cc85a Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0016.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0017.jpg b/Docker/JeromeFrancois/albums/cats/0017.jpg new file mode 100644 index 0000000000000000000000000000000000000000..02fcacd2c88abaef50cef8993daae8a429a2cff4 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0017.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0018.jpg b/Docker/JeromeFrancois/albums/cats/0018.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6926f3011cb692c926f9b2f56b90d86725d7ec8 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0018.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0019.jpg b/Docker/JeromeFrancois/albums/cats/0019.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3fd73ed28aeba478f8e2bf2510822d58462ddd7c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0019.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0020.jpg b/Docker/JeromeFrancois/albums/cats/0020.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92a79cc6b02748146a5d647f05f18dfa1fe9b4ed Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0020.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0021.jpg b/Docker/JeromeFrancois/albums/cats/0021.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8ab5661551e4ea519cc2146960c22a5f65bf839a Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0021.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0022.jpg b/Docker/JeromeFrancois/albums/cats/0022.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f058dea12bfda9e3efa8003d4254bbd79d77a30 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0022.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0023.jpg b/Docker/JeromeFrancois/albums/cats/0023.jpg new file mode 100644 index 0000000000000000000000000000000000000000..210537f196e7b951efe8807b20f35565cae865d6 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0023.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0024.jpg b/Docker/JeromeFrancois/albums/cats/0024.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c10ecaf76e70a393a3597b77c4770d82b81d98d3 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0024.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0025.jpg b/Docker/JeromeFrancois/albums/cats/0025.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8891e217dcfe6a6c1fb9dc9581ac7d793bf6c90f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0025.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0026.jpg b/Docker/JeromeFrancois/albums/cats/0026.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2e04ba552b7f73db4c69b183a46d45e5557709c5 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0026.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0027.jpg b/Docker/JeromeFrancois/albums/cats/0027.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a2883644336e50c9ea4ce99063e45ffde3af90a6 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0027.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0028.jpg b/Docker/JeromeFrancois/albums/cats/0028.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f2d7977a6c7f86964946eefa16449c78a2efcbb Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0028.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0029.jpg b/Docker/JeromeFrancois/albums/cats/0029.jpg new file mode 100644 index 0000000000000000000000000000000000000000..14d62804ea901d8452a8b229d72e8b823bc461b5 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0029.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0030.jpg b/Docker/JeromeFrancois/albums/cats/0030.jpg new file mode 100644 index 0000000000000000000000000000000000000000..179044a0d199d1431bcd7baa78c2c363199c70da Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0030.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0031.jpg b/Docker/JeromeFrancois/albums/cats/0031.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25abef68c8feafee53cec324eeec7f0f7a8d94b4 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0031.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0032.jpg b/Docker/JeromeFrancois/albums/cats/0032.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55480e869a8ebd4a69f5c4d9971299b42c2602d1 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0032.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0033.jpg b/Docker/JeromeFrancois/albums/cats/0033.jpg new file mode 100644 index 0000000000000000000000000000000000000000..16c6777ad6315e0e7a2249841ce7a7b77875944f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0033.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0034.jpg b/Docker/JeromeFrancois/albums/cats/0034.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b846070d6c43ad045f0967f973bea2fb61d8738 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0034.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0035.jpg b/Docker/JeromeFrancois/albums/cats/0035.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cec9676f71c0f92466391cd8a9ed4b4f5cb44cad Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0035.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0036.jpg b/Docker/JeromeFrancois/albums/cats/0036.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c43efd9eb2ed300e1ffb13f92cbc190f5ded5f3 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0036.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0037.jpg b/Docker/JeromeFrancois/albums/cats/0037.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb70a2443615c7504c61649beef24e2300c86689 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0037.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0038.jpg b/Docker/JeromeFrancois/albums/cats/0038.jpg new file mode 100644 index 0000000000000000000000000000000000000000..582c29c3970456b5eabf2b79d01654a5ec744935 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0038.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0039.jpg b/Docker/JeromeFrancois/albums/cats/0039.jpg new file mode 100644 index 0000000000000000000000000000000000000000..13d455eac595f7592e61b6f09be35bed59496503 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0039.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0040.jpg b/Docker/JeromeFrancois/albums/cats/0040.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05da90f9bc08c9029d42f33512bff60bcb9d6530 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0040.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0041.jpg b/Docker/JeromeFrancois/albums/cats/0041.jpg new file mode 100644 index 0000000000000000000000000000000000000000..541cc3eacbb5ae38536d5e0636764e196977c1a8 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0041.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0042.jpg b/Docker/JeromeFrancois/albums/cats/0042.jpg new file mode 100644 index 0000000000000000000000000000000000000000..27c0db933c7c63178e3c96581d19f1b84985fcf7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0042.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0043.jpg b/Docker/JeromeFrancois/albums/cats/0043.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb3bf6375adf10eace5ec63ab3fa6cabc4d5e5ba Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0043.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0044.jpg b/Docker/JeromeFrancois/albums/cats/0044.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1cc0c01f59549b734b7c904a72984e6e79b0b974 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0044.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0045.jpg b/Docker/JeromeFrancois/albums/cats/0045.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d4b8c1ca7aef95fdb014ac450473bcf6805bab90 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0045.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0046.jpg b/Docker/JeromeFrancois/albums/cats/0046.jpg new file mode 100644 index 0000000000000000000000000000000000000000..87ee121def94d9a6af9ccf692d27d7accbc95a36 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0046.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0047.jpg b/Docker/JeromeFrancois/albums/cats/0047.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7b2fd1be2a76821fc2dc699680744f5ee01da2ea Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0047.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0048.jpg b/Docker/JeromeFrancois/albums/cats/0048.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2958891afb43b167f02a11bb3c18b359466bbf2f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0048.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0049.jpg b/Docker/JeromeFrancois/albums/cats/0049.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7416c2634789d07dcfc952eb981d95d6be74372b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0049.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0050.jpg b/Docker/JeromeFrancois/albums/cats/0050.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c361d0dd9e9115020ab37d4d632ed4bde7996f4 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0050.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0051.jpg b/Docker/JeromeFrancois/albums/cats/0051.jpg new file mode 100644 index 0000000000000000000000000000000000000000..36ca6068502fdd13003c00a73bd99965bbfb8327 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0051.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0052.jpg b/Docker/JeromeFrancois/albums/cats/0052.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7fa74e91ec4ba1dad9585163ac7d990d7d82a3df Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0052.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0053.jpg b/Docker/JeromeFrancois/albums/cats/0053.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c77dfe6bb142a823cdc306fa0470a9918a09e75c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0053.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0054.jpg b/Docker/JeromeFrancois/albums/cats/0054.jpg new file mode 100644 index 0000000000000000000000000000000000000000..29a622709695213a6ed2f8d068bdd800b784bef0 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0054.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0055.jpg b/Docker/JeromeFrancois/albums/cats/0055.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a0722dcb9347ba2ca34c89e25a04e163e4a7c0c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0055.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0056.jpg b/Docker/JeromeFrancois/albums/cats/0056.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4cde7c91bbd5f8f542300ee378fca849a093de3a Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0056.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0057.jpg b/Docker/JeromeFrancois/albums/cats/0057.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c45355a68870941582a98fd3fab8a02b9e1b7312 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0057.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0058.jpg b/Docker/JeromeFrancois/albums/cats/0058.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aaff05c1e32d22748cf597be49bda44eea21faf9 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0058.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0059.jpg b/Docker/JeromeFrancois/albums/cats/0059.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e73677c41b1ac3406127572a465f5656648d0a3 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0059.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0060.jpg b/Docker/JeromeFrancois/albums/cats/0060.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6eefd3a8f9e59c2fa3011ec6eb1ae80aadebfe9c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0060.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0061.jpg b/Docker/JeromeFrancois/albums/cats/0061.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f14d0b935e522dc6ad18f6ac7efb0c1967f3494 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0061.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0062.jpg b/Docker/JeromeFrancois/albums/cats/0062.jpg new file mode 100644 index 0000000000000000000000000000000000000000..90a681fdf4ae0d6a5c582c232350aa655316216f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0062.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0063.jpg b/Docker/JeromeFrancois/albums/cats/0063.jpg new file mode 100644 index 0000000000000000000000000000000000000000..761b8944a4b2edffa4d3e0688b86a137f7fe1ae0 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0063.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0064.jpg b/Docker/JeromeFrancois/albums/cats/0064.jpg new file mode 100644 index 0000000000000000000000000000000000000000..107ccb86b217cf519f644424702eb102de019afc Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0064.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0065.jpg b/Docker/JeromeFrancois/albums/cats/0065.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f424549d1b510604ed9efd105561f9980cd45bfc Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0065.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0066.jpg b/Docker/JeromeFrancois/albums/cats/0066.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f0c3e55013c5eaf0527de26d8d94262f50f05fd Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0066.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0067.jpg b/Docker/JeromeFrancois/albums/cats/0067.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45da5a2c6f9584b51f72c856ef0af343fb4f2100 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0067.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0068.jpg b/Docker/JeromeFrancois/albums/cats/0068.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f7224deffad437dcd2c9e21d5bb243ecf8b8a226 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0068.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0069.jpg b/Docker/JeromeFrancois/albums/cats/0069.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94e3b59f0044a13c024859553945b6301f3c8934 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0069.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0070.jpg b/Docker/JeromeFrancois/albums/cats/0070.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c3540655cd4f93dc3e9764b6f29f4db1db45e46 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0070.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0071.jpg b/Docker/JeromeFrancois/albums/cats/0071.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b79f46bb8e7832350f465bca9ac695a57c9df40e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0071.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0072.jpg b/Docker/JeromeFrancois/albums/cats/0072.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9b6736cce292ce4a6e9cf65d90b6a1680e78bc1f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0072.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0073.jpg b/Docker/JeromeFrancois/albums/cats/0073.jpg new file mode 100644 index 0000000000000000000000000000000000000000..769e83e75921f830841be74b4124ffd4af9d940c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0073.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0074.jpg b/Docker/JeromeFrancois/albums/cats/0074.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5cc4669f453fc7450de837c5b7c9994cbcd0b8ce Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0074.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0075.jpg b/Docker/JeromeFrancois/albums/cats/0075.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ac25e72c138ecfdb5a587951cfdcaffae50ae6c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0075.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0076.jpg b/Docker/JeromeFrancois/albums/cats/0076.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2421e8e4501cf26c283ac4d1ccb8f32c969983b1 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0076.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0077.jpg b/Docker/JeromeFrancois/albums/cats/0077.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44a4f10e57f72dc717ecd3b51a7686c4628d4c7c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0077.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0078.jpg b/Docker/JeromeFrancois/albums/cats/0078.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2980a15268f01c565555f7ec83fddfb4a79ff483 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0078.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0079.jpg b/Docker/JeromeFrancois/albums/cats/0079.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7d0b95c64bd48a9d3632ddc887aafa3349a29852 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0079.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0080.jpg b/Docker/JeromeFrancois/albums/cats/0080.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86d4d58663ae8ff740a99955ca7f82778cdec118 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0080.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0081.jpg b/Docker/JeromeFrancois/albums/cats/0081.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0cb4436feb3bb218f519b437e41fcf74adb92b1 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0081.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0082.jpg b/Docker/JeromeFrancois/albums/cats/0082.jpg new file mode 100644 index 0000000000000000000000000000000000000000..91d0c9d2914c1bf66dca96f842834ca504d2fbff Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0082.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0083.jpg b/Docker/JeromeFrancois/albums/cats/0083.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f0607534bcb12d64d7adb5d58a759b54b8c315de Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0083.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0084.jpg b/Docker/JeromeFrancois/albums/cats/0084.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9ca3004137619876349507a1fae30e444655469 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0084.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0085.jpg b/Docker/JeromeFrancois/albums/cats/0085.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0729dd653bd83df7340e5beb54c59b3f3657d83f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0085.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0086.jpg b/Docker/JeromeFrancois/albums/cats/0086.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d0f2783bebaf99dc2a933909a52d19a5fc3c853 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0086.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0087.jpg b/Docker/JeromeFrancois/albums/cats/0087.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3666cdefc13b0861bb77fd27b6e80e842005d40a Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0087.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0088.jpg b/Docker/JeromeFrancois/albums/cats/0088.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84e05e97674a678595131091fb812a134a54b99b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0088.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0089.jpg b/Docker/JeromeFrancois/albums/cats/0089.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a9bd9c79ba02c3f499ced5411644f31c58c7a90c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0089.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0090.jpg b/Docker/JeromeFrancois/albums/cats/0090.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d26709242477e5fdbca86e573c5670990f15c2e3 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0090.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0091.jpg b/Docker/JeromeFrancois/albums/cats/0091.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e6796e2d9e68b72444d7daf08a2f7a18b68f2687 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0091.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0092.jpg b/Docker/JeromeFrancois/albums/cats/0092.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f12ec5df06c5cafec7da4569f62e738a12180f9 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0092.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0093.jpg b/Docker/JeromeFrancois/albums/cats/0093.jpg new file mode 100644 index 0000000000000000000000000000000000000000..353910ba1f930bf09f299e4d70f2416768164261 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0093.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0094.jpg b/Docker/JeromeFrancois/albums/cats/0094.jpg new file mode 100644 index 0000000000000000000000000000000000000000..efb89bd84d2e4418198db9442660b8cb1b752c26 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0094.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0095.jpg b/Docker/JeromeFrancois/albums/cats/0095.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b11da985e21e4e0dfb3cec94244d6d66162e8948 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0095.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0096.jpg b/Docker/JeromeFrancois/albums/cats/0096.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bbaa6d51ae973846232c6e5b1acbc8cae8d2a1f7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0096.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0097.jpg b/Docker/JeromeFrancois/albums/cats/0097.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5910b88ae781bef09c0a1c24425577624014386f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0097.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0098.jpg b/Docker/JeromeFrancois/albums/cats/0098.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b3a535cc14cba88fc6570e627bc003553a6e2b6 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0098.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0099.jpg b/Docker/JeromeFrancois/albums/cats/0099.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97cf8070699cb8948d3c34d9b68f12646ae70a14 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0099.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0100.jpg b/Docker/JeromeFrancois/albums/cats/0100.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f0cc4e049ccc6293a9b1d0a19b6ff6d839f5ffef Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0100.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0101.jpg b/Docker/JeromeFrancois/albums/cats/0101.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4c3aacbe7db4ef49997181714133204b6e47d9a Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0101.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0102.jpg b/Docker/JeromeFrancois/albums/cats/0102.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bb30637968e2418da3e6318d21cf040aee533e3 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0102.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0103.jpg b/Docker/JeromeFrancois/albums/cats/0103.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b8efd64a59723e561e078430758c7ee31c9f1f6e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0103.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0104.jpg b/Docker/JeromeFrancois/albums/cats/0104.jpg new file mode 100644 index 0000000000000000000000000000000000000000..681ca7a71dc0f4a738f5174ebe3ecfb62e5d090d Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0104.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0105.jpg b/Docker/JeromeFrancois/albums/cats/0105.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6befc1a8edd30d9486ed51ac73cec3893bb2fe6c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0105.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0106.jpg b/Docker/JeromeFrancois/albums/cats/0106.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c98543a2dac199a4cfb680f03bf1c34911b31ea7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0106.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0107.jpg b/Docker/JeromeFrancois/albums/cats/0107.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c615dcf04e06435670b1efa82a58596afae6240f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0107.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0108.jpg b/Docker/JeromeFrancois/albums/cats/0108.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c66a9b130c8c2627ee5f14503c6ac14c7e59852 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0108.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0109.jpg b/Docker/JeromeFrancois/albums/cats/0109.jpg new file mode 100644 index 0000000000000000000000000000000000000000..14bdeda79d40a094f093da2df7be57a32d5ba1f4 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0109.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0110.jpg b/Docker/JeromeFrancois/albums/cats/0110.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4355742325ed01087dc9da5178b7296f26713758 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0110.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0111.jpg b/Docker/JeromeFrancois/albums/cats/0111.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b0d37aca90460bf9306c65b2578535efae26de5 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0111.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0112.jpg b/Docker/JeromeFrancois/albums/cats/0112.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43f87825931d44fabb15db5bac7b6c67034aa979 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0112.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0113.jpg b/Docker/JeromeFrancois/albums/cats/0113.jpg new file mode 100644 index 0000000000000000000000000000000000000000..18655e4700cbdc0d1f9fd7fa50daf8ad75cbefbd Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0113.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0114.jpg b/Docker/JeromeFrancois/albums/cats/0114.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a147eb236153e602d9b3e9957e6ef3d0b393fce0 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0114.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0115.jpg b/Docker/JeromeFrancois/albums/cats/0115.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b13284a527d44076bb1d9d281e31731b911cec5 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0115.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0116.jpg b/Docker/JeromeFrancois/albums/cats/0116.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ce7359bc3951186aefc31ad5740c5f467ad5fe6 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0116.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0117.jpg b/Docker/JeromeFrancois/albums/cats/0117.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c84c312bfbfbcca8d68dc17ba7d83bf7f214a66 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0117.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0118.jpg b/Docker/JeromeFrancois/albums/cats/0118.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01a25e9360ed292b9047999f310f9a42a33e229d Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0118.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0119.jpg b/Docker/JeromeFrancois/albums/cats/0119.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6062ca5f898d6fbbc73dc14f07319b4ee384ca45 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0119.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0120.jpg b/Docker/JeromeFrancois/albums/cats/0120.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30f1418c976162540d262443c4ed33a29b18e20b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0120.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0121.jpg b/Docker/JeromeFrancois/albums/cats/0121.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48143a33bdcc09de34a32210318e4fc7e57bdfc2 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0121.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0122.jpg b/Docker/JeromeFrancois/albums/cats/0122.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0370e5472f63c1bc180332e998d5d08c642e02db Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0122.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0123.jpg b/Docker/JeromeFrancois/albums/cats/0123.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34034042ffbecbfd81c355a406694f81427365bf Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0123.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0124.jpg b/Docker/JeromeFrancois/albums/cats/0124.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1599a7bd53bb42c73ffa28c095845069fd637742 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0124.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0125.jpg b/Docker/JeromeFrancois/albums/cats/0125.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a18a0c83ad93eed1f0b39c60eaad722cf40edbca Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0125.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0126.jpg b/Docker/JeromeFrancois/albums/cats/0126.jpg new file mode 100644 index 0000000000000000000000000000000000000000..510d7e192816744a3a0a376ea5232eefdfad4e13 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0126.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0127.jpg b/Docker/JeromeFrancois/albums/cats/0127.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35b3e556b814b8b3d1b939bee6ba86f0e5c40d58 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0127.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0128.jpg b/Docker/JeromeFrancois/albums/cats/0128.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84356a1a3b60a239547249da493b44ba638c7c82 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0128.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0129.jpg b/Docker/JeromeFrancois/albums/cats/0129.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dfb067502cf16ce9af4efd1dcd7eb4dde622e7e7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0129.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0130.jpg b/Docker/JeromeFrancois/albums/cats/0130.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb7b4112926c4ad77738edf7c8d729d96307cc12 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0130.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0131.jpg b/Docker/JeromeFrancois/albums/cats/0131.jpg new file mode 100644 index 0000000000000000000000000000000000000000..571c4f8847b78605dfdff4578f49d4bc5dbc6f62 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0131.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0132.jpg b/Docker/JeromeFrancois/albums/cats/0132.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1dda822213f583711df5c47094cf9ea9a41c1d7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0132.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0133.jpg b/Docker/JeromeFrancois/albums/cats/0133.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62f38e9de0fb98ba52a7e147565e326b40e5b182 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0133.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0134.jpg b/Docker/JeromeFrancois/albums/cats/0134.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9b5cf83391b9dd84e0de553ddc231bce02bdb8f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0134.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0135.jpg b/Docker/JeromeFrancois/albums/cats/0135.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c17ebb2713be9ab8ccb93c9071c2b8d20b3b1aa Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0135.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0136.jpg b/Docker/JeromeFrancois/albums/cats/0136.jpg new file mode 100644 index 0000000000000000000000000000000000000000..99ad95acfad0fde1723574d4197c4625bc13dda8 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0136.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0137.jpg b/Docker/JeromeFrancois/albums/cats/0137.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b6645938a382c8c7e661a86f802956fbeca3ad7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0137.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0138.jpg b/Docker/JeromeFrancois/albums/cats/0138.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf36f7a6088467ac215d8e1c3d1220d6d91fce2e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0138.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0139.jpg b/Docker/JeromeFrancois/albums/cats/0139.jpg new file mode 100644 index 0000000000000000000000000000000000000000..701a2ab863fb357880282e460e2c9c97457237c7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0139.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0140.jpg b/Docker/JeromeFrancois/albums/cats/0140.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ddd457d8638edb2f1a6fac34a4e55ea6a2b63d9 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0140.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0141.jpg b/Docker/JeromeFrancois/albums/cats/0141.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e616a3309bc4c1bdb17b327a66c23f5e7105808 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0141.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0142.jpg b/Docker/JeromeFrancois/albums/cats/0142.jpg new file mode 100644 index 0000000000000000000000000000000000000000..114b8fe41ef57de6713cff3448756391d450387e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0142.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0143.jpg b/Docker/JeromeFrancois/albums/cats/0143.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97eccd25ad1e3c59154e50f37eaa5de84ccb4f6e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0143.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0144.jpg b/Docker/JeromeFrancois/albums/cats/0144.jpg new file mode 100644 index 0000000000000000000000000000000000000000..635246de55c790704cfc573166c35a5ee99a7cc3 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0144.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0145.jpg b/Docker/JeromeFrancois/albums/cats/0145.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d7fb4ed16326df08769682e7ea0eab9aa8b427c6 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0145.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0146.jpg b/Docker/JeromeFrancois/albums/cats/0146.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5383b3c87ba68a1169ed69bc0f8708bec86b57fd Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0146.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0147.jpg b/Docker/JeromeFrancois/albums/cats/0147.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9351622b8f33688fa89fdf1d640493907e808a88 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0147.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0148.jpg b/Docker/JeromeFrancois/albums/cats/0148.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de31836d1cddb0f7546b469c43dfeec8c2b2fe27 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0148.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0149.jpg b/Docker/JeromeFrancois/albums/cats/0149.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fbc31bf2b5979cf27442edbf5ab6896bcf3aefa1 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0149.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0150.jpg b/Docker/JeromeFrancois/albums/cats/0150.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa01f15ddc8a17e34ccfcd66a92554e8722dbd8c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0150.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0151.jpg b/Docker/JeromeFrancois/albums/cats/0151.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0ca095b8014a3bb8b49ab92f7af802b3bdda100 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0151.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0152.jpg b/Docker/JeromeFrancois/albums/cats/0152.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2f4891010ba0d95189c89d981fe495331bb395e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0152.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0153.jpg b/Docker/JeromeFrancois/albums/cats/0153.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53e5b518356176bdf47ed3384f59d81a6f2db062 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0153.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0154.jpg b/Docker/JeromeFrancois/albums/cats/0154.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9216098a979941bb9f478450cb5ab7bb9792b25c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0154.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0155.jpg b/Docker/JeromeFrancois/albums/cats/0155.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9dbaeca5a5924db5a05311d41a097bc9d89a4e04 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0155.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0156.jpg b/Docker/JeromeFrancois/albums/cats/0156.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f20901bbdcbfa27aaba6beacd3189d252316322 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0156.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0157.jpg b/Docker/JeromeFrancois/albums/cats/0157.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4734b106964d080f6283c27e436461eaf7648460 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0157.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0158.jpg b/Docker/JeromeFrancois/albums/cats/0158.jpg new file mode 100644 index 0000000000000000000000000000000000000000..170f590af78b408781e66d09d3568ba90f299d1e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0158.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0159.jpg b/Docker/JeromeFrancois/albums/cats/0159.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a71b522a81fbfcfb2f7dfca38536d664c0c4299 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0159.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0160.jpg b/Docker/JeromeFrancois/albums/cats/0160.jpg new file mode 100644 index 0000000000000000000000000000000000000000..85d09a335f5b635435372058df27d9ddc976c678 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0160.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0161.jpg b/Docker/JeromeFrancois/albums/cats/0161.jpg new file mode 100644 index 0000000000000000000000000000000000000000..574c6aadcd787992cad583769497b69f121e4159 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0161.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0162.jpg b/Docker/JeromeFrancois/albums/cats/0162.jpg new file mode 100644 index 0000000000000000000000000000000000000000..77f7ff872ff51893d0d803c836835b75cf42dc2b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0162.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0163.jpg b/Docker/JeromeFrancois/albums/cats/0163.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f2a36ccb4263b21125e9459b21b4311be61de59b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0163.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0164.jpg b/Docker/JeromeFrancois/albums/cats/0164.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dff6e09257f5939a9ddfd8a0dec9f1d0ca37dd1e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0164.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0165.jpg b/Docker/JeromeFrancois/albums/cats/0165.jpg new file mode 100644 index 0000000000000000000000000000000000000000..80ba28f085410a2f45339829e89fafc10158b298 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0165.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0166.jpg b/Docker/JeromeFrancois/albums/cats/0166.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9186ff2e0a90435983febbdbc69ddf1af1304331 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0166.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0167.jpg b/Docker/JeromeFrancois/albums/cats/0167.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e8d18f41bd54111aa25b02ee30a2061d9f488ae8 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0167.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0168.jpg b/Docker/JeromeFrancois/albums/cats/0168.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d44db46185535eabcfc624cd41abe36ec2399045 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0168.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0169.jpg b/Docker/JeromeFrancois/albums/cats/0169.jpg new file mode 100644 index 0000000000000000000000000000000000000000..11842eb1a8d30bb7a387e1789691e06adfb423de Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0169.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0170.jpg b/Docker/JeromeFrancois/albums/cats/0170.jpg new file mode 100644 index 0000000000000000000000000000000000000000..074afb44775d4ded9daf48f90ccc7621c179e469 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0170.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0171.jpg b/Docker/JeromeFrancois/albums/cats/0171.jpg new file mode 100644 index 0000000000000000000000000000000000000000..87c2bdbbf30457daab82db33633aef1d196910dd Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0171.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0172.jpg b/Docker/JeromeFrancois/albums/cats/0172.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06c9d789f99ba5d4fd609f62d53560006811eeb7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0172.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0173.jpg b/Docker/JeromeFrancois/albums/cats/0173.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d3ad36eb13bb885f1099121d1fbb236c8eaf81d Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0173.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0174.jpg b/Docker/JeromeFrancois/albums/cats/0174.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e1c03cd2d33ba556114ddd70e92e7c8b256543c6 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0174.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0175.jpg b/Docker/JeromeFrancois/albums/cats/0175.jpg new file mode 100644 index 0000000000000000000000000000000000000000..807e436354c9f3873ab53b04f19281300fa5970c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0175.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0176.jpg b/Docker/JeromeFrancois/albums/cats/0176.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f28e83e465c3f885a64e22485db9457325089134 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0176.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0177.jpg b/Docker/JeromeFrancois/albums/cats/0177.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c60c1624f6cc87ba7be58877182f999b35c56fa7 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0177.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0178.jpg b/Docker/JeromeFrancois/albums/cats/0178.jpg new file mode 100644 index 0000000000000000000000000000000000000000..398404bdb95732545a30d5886b690b310ecfcad9 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0178.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0179.jpg b/Docker/JeromeFrancois/albums/cats/0179.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f29338fd028c0ac3c69d3a6f4842fb3345f4f1fb Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0179.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0180.jpg b/Docker/JeromeFrancois/albums/cats/0180.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9c7475103ebbe21adc736261dcdd9e6ad5a9147 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0180.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0181.jpg b/Docker/JeromeFrancois/albums/cats/0181.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4b8e14a429c843dd81b7c1352da2809ba13bec5c Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0181.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0182.jpg b/Docker/JeromeFrancois/albums/cats/0182.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8acab4afa7bedb677d0c7bc7f92df3006f7ab90 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0182.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0183.jpg b/Docker/JeromeFrancois/albums/cats/0183.jpg new file mode 100644 index 0000000000000000000000000000000000000000..68d0596acbb2a3b18bc5526215490161d0002c98 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0183.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0184.jpg b/Docker/JeromeFrancois/albums/cats/0184.jpg new file mode 100644 index 0000000000000000000000000000000000000000..87319066436dab75ac54084ed125e0cbe52c54fb Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0184.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0185.jpg b/Docker/JeromeFrancois/albums/cats/0185.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9b81415c1589cb3763d000b311cc74e477925d5 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0185.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0186.jpg b/Docker/JeromeFrancois/albums/cats/0186.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b97e1bbd304d3b1081abce04a2260e39cb168eca Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0186.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0187.jpg b/Docker/JeromeFrancois/albums/cats/0187.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2e4a1d77b7d437ab4cf245b6611adfac89ee134e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0187.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0188.jpg b/Docker/JeromeFrancois/albums/cats/0188.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1767bec20e864bce68587176249a2ece00d4f2cb Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0188.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0189.jpg b/Docker/JeromeFrancois/albums/cats/0189.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe00dc1477a4f40c83d46b9dd1a864e8074f5bfc Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0189.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0190.jpg b/Docker/JeromeFrancois/albums/cats/0190.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aad97a06ecbebe07c45085d64329a38272676d58 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0190.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0191.jpg b/Docker/JeromeFrancois/albums/cats/0191.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a2e1a7e8c71034f89a899f967ad41fcbeadeaf36 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0191.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0192.jpg b/Docker/JeromeFrancois/albums/cats/0192.jpg new file mode 100644 index 0000000000000000000000000000000000000000..550c10c7143e04b629e5a9ef0244df556ae6d85f Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0192.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0193.jpg b/Docker/JeromeFrancois/albums/cats/0193.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a737785394d1dbe8629a676ebdae1ee6195edfc Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0193.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0194.jpg b/Docker/JeromeFrancois/albums/cats/0194.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d16f3318c29d8df2bc5976b6e64b2681ec2d1982 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0194.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0195.jpg b/Docker/JeromeFrancois/albums/cats/0195.jpg new file mode 100644 index 0000000000000000000000000000000000000000..440b00aa64964cf78fa7d408bc4eeef015fbf873 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0195.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0196.jpg b/Docker/JeromeFrancois/albums/cats/0196.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23371f1be23a8e01f7a03c2c09377d4176518a27 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0196.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0197.jpg b/Docker/JeromeFrancois/albums/cats/0197.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7726d1941b57415a3b591aa8a17d2bfdcd95030b Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0197.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0198.jpg b/Docker/JeromeFrancois/albums/cats/0198.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a0f111540f82586b50e0436cc9eece52d2f347bb Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0198.jpg differ diff --git a/Docker/JeromeFrancois/albums/cats/0199.jpg b/Docker/JeromeFrancois/albums/cats/0199.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a12c0a7cba39b516447b0a02ad81b3f5e1a5b63 Binary files /dev/null and b/Docker/JeromeFrancois/albums/cats/0199.jpg differ diff --git a/Docker/JeromeFrancois/albums/cows/art.jpg b/Docker/JeromeFrancois/albums/cows/art.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4018f7fbe5c8e844b45bff9e0b96bb2c36d5c38e Binary files /dev/null and b/Docker/JeromeFrancois/albums/cows/art.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0000.jpg b/Docker/JeromeFrancois/albums/lesscats/0000.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12bf16269f1068dc8089fbaab02402284dc06347 Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0000.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0001.jpg b/Docker/JeromeFrancois/albums/lesscats/0001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0242e585b06a42e4a753d3249fd322e48c15f56d Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0001.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0002.jpg b/Docker/JeromeFrancois/albums/lesscats/0002.jpg new file mode 100644 index 0000000000000000000000000000000000000000..949bd571cff53d917c8ee22c599d534335e2d93b Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0002.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0003.jpg b/Docker/JeromeFrancois/albums/lesscats/0003.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62490977b59e75f3b90bb6b3677a6e58ad06224c Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0003.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0004.jpg b/Docker/JeromeFrancois/albums/lesscats/0004.jpg new file mode 100644 index 0000000000000000000000000000000000000000..564d0c5196e49fdcb8bd2093e6a9d20803fabeab Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0004.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0005.jpg b/Docker/JeromeFrancois/albums/lesscats/0005.jpg new file mode 100644 index 0000000000000000000000000000000000000000..47f065dce52b90fe8ca6f7d17c3a9f1dfbe4793b Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0005.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0006.jpg b/Docker/JeromeFrancois/albums/lesscats/0006.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4f4debc99f4ab848c080d4aa2660b961660689f Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0006.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0007.jpg b/Docker/JeromeFrancois/albums/lesscats/0007.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a982931e56d845fdf7c3131ce76bee83cc9f14e Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0007.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0008.jpg b/Docker/JeromeFrancois/albums/lesscats/0008.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e1c2fb733990fd12293e5c12a0e986d407d6cadd Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0008.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0009.jpg b/Docker/JeromeFrancois/albums/lesscats/0009.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4caec4ea3858eb63bf5d64f4e6dba060491d18d8 Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0009.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0010.jpg b/Docker/JeromeFrancois/albums/lesscats/0010.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf25e49afc4dd0d876cacbbf026b1245f81e3a30 Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0010.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0011.jpg b/Docker/JeromeFrancois/albums/lesscats/0011.jpg new file mode 100644 index 0000000000000000000000000000000000000000..563b3e4396e95ed1bbb4a0f0581bdc4e0859728c Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0011.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0012.jpg b/Docker/JeromeFrancois/albums/lesscats/0012.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52cc0681afbe25c53c26f6f3501be1030297531e Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0012.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0013.jpg b/Docker/JeromeFrancois/albums/lesscats/0013.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70d8c5937d5312cfb62b0a2bc38df553b80ee700 Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0013.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0014.jpg b/Docker/JeromeFrancois/albums/lesscats/0014.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ef3b2021dd9d8aa6fc3d9f066373d9f05dd545b Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0014.jpg differ diff --git a/Docker/JeromeFrancois/albums/lesscats/0043.jpg b/Docker/JeromeFrancois/albums/lesscats/0043.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb3bf6375adf10eace5ec63ab3fa6cabc4d5e5ba Binary files /dev/null and b/Docker/JeromeFrancois/albums/lesscats/0043.jpg differ diff --git a/Docker/JeromeFrancois/albums/students/fotor-ai-2024050711748.jpg b/Docker/JeromeFrancois/albums/students/fotor-ai-2024050711748.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35f343f400ac00725ec4680cf848d7f26de99266 Binary files /dev/null and b/Docker/JeromeFrancois/albums/students/fotor-ai-2024050711748.jpg differ diff --git a/Docker/JeromeFrancois/albums/students/fotor-ai-2024050711754.jpg b/Docker/JeromeFrancois/albums/students/fotor-ai-2024050711754.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db2ddc02e1b61f33cbf4e05cb63c16f23ff6fc05 Binary files /dev/null and b/Docker/JeromeFrancois/albums/students/fotor-ai-2024050711754.jpg differ diff --git a/Docker/JeromeFrancois/albums/students/fotor-ai-20240507117542.jpg b/Docker/JeromeFrancois/albums/students/fotor-ai-20240507117542.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7cce6730622c4bc5128d513d726495fd4b2a1d10 Binary files /dev/null and b/Docker/JeromeFrancois/albums/students/fotor-ai-20240507117542.jpg differ diff --git a/Docker/JeromeFrancois/albums/students/gimp.jpg b/Docker/JeromeFrancois/albums/students/gimp.jpg new file mode 100644 index 0000000000000000000000000000000000000000..176fc4e3d22281f80c55e96c8ffd7c8d731ab590 Binary files /dev/null and b/Docker/JeromeFrancois/albums/students/gimp.jpg differ diff --git a/Docker/JeromeFrancois/albums/students/gimp2.png b/Docker/JeromeFrancois/albums/students/gimp2.png new file mode 100644 index 0000000000000000000000000000000000000000..61db603fb55781aa0be155f9b50f5d10591e8330 Binary files /dev/null and b/Docker/JeromeFrancois/albums/students/gimp2.png differ diff --git a/Docker/JeromeFrancois/albums/students/img1.jpg b/Docker/JeromeFrancois/albums/students/img1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bff4345a2f3e0709acbdee1b01321e7032f102b Binary files /dev/null and b/Docker/JeromeFrancois/albums/students/img1.jpg differ diff --git a/Docker/JeromeFrancois/demarrage.py b/Docker/JeromeFrancois/demarrage.py new file mode 100644 index 0000000000000000000000000000000000000000..f878d72a887f86a7c96927a1d81cacd307dcc216 --- /dev/null +++ b/Docker/JeromeFrancois/demarrage.py @@ -0,0 +1,186 @@ + +import struct +import threading +import time +import queue +import socket + + + +def disp_msg(): + time.sleep(1) + print("### Hello from the new thread") + +def disp_msg_arg(name): + time.sleep(1) + print("### Hello from thread",name) + +def disp_msg_lock(name,lock): + lock.acquire() + print("### Hello from the blocking thread",name) + time.sleep(2) + lock.release() + +def tell_secret(queue): + queue.put("OhOhOh") + +def open_server(): + #Serveur TCP sur la boucle locale et le port 5555 + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1) + sock.bind(("localhost",5555)) + sock.listen() + + print("### Server waiting its client") + connection, client_address = sock.accept() + + msg = connection.recv(2048).decode("UTF-8") + print("### Server getting message from the client - recv function", msg) + print("### Server echoing back the message with some modifications - sendall function") + reply = msg+" OhOhOh" + connection.sendall(reply.encode("UTF-8")) + print("### Server closing connection - close function") + connection.close() + + print("### Server stopping and not accepting any other client - close function") + sock.close() + + +#Rappel sur les encodages + +print("\033[92m************** Encodage UTF-8 **************\033[0m") +print("La valeur d'une variable est représentée sous un format interne à python.\ +Lorsque celle-ci doit être transmise ou stockée, on doit alors\ +faire en sorte qu'elle soit encodée sous forme d'octets sous un format commun entre l'émetteur et le récepteur") + +my_str = "ABCD" +print("Chaîne de caratcère en python --> ",my_str) +print("Chaîne de caractère binaire (bytes) encodée sour format UTF8 --> ",my_str.encode("UTF-8")) +print("Chaîne de caractère binaire (bytes) encodée sous format UTF-8 affichée sous forme d'une liste d'octets --> ",list((hex(x) for x in list(my_str.encode("UTF-8"))))) +print("Décodage d'une chaîne de caractères encodée en UTF8 [0x45,0x46,0x47,0x48] --> ",(bytes([0x45,0x46,0x47,0x48]).decode("UTF-8"))) +print("\n") + +print("\033[92m************** Encodage (la suite) **************\033[0m") +print("Hormis les chaînes de caractères, nous devons également encoder les autres types de valeurs comme par exemple les entiers") +print("Les entiers sont codés sur 32 bits mais vous avez sûrement déjà entendu parler de l'ordre des octets qui peut différer selon l'encodage des systèmes") + +my_int = 48621 +print("Entier en python",my_int) +print("Entier en codage big endian struct.pack('!i', my_int) -- > ",struct.pack('!i', my_int)) +print("Et on decode avec struct.unpack('!i', encoded_int)[0] -- > ",struct.unpack('!i', struct.pack('!i', my_int))[0]) +print("Et si on décode avec le mauvais encodage, par exemple en little endian avec struct.unpack('i', encoded_int)[0] OOOpps !!!-- > ",struct.unpack('!i', struct.pack('i', my_int))[0]) +print("\n") + + + +#Rappel sur la manipulation d'octets + +print("\033[92m************** Manipulation d'octets **************\033[0m") +print("Python permet de manipuler des données sous forme d'octets de plusieurs façons") +print("bytes est le type de base. Il n'est pas mutable et un objet de ce type ne peut donc pas être modifié") +print("Création d'un objet bytes de 5 octets tous égal 0xFF bytes([255,255,255,255,255]) --> ",bytes([255,255,255,255,255])) + +print("Pour pouvoir manipuler et modifier un objet représentant des octets, on utilisera le type bytearray") +print("Conversion de 5 octets précédents en ByteArray, bytearray(bytes([255,255,255,255,255]) -->",bytearray(bytes([255,255,255,255,255]))) + +my_obj = bytearray(bytes([255,255,255,255,255])) + +print("L'avantage de ce type est tout simplement de représenter les octets sous forme d'un tableau/liste") +print("On peut donc utiliser les opérations classiques sur les listes pour le modifier") + +my_obj[0]=0x41 +print("Modification du premier octet my_obj[0]=0x41 (A) -->",my_obj) +print("Avec la fonction print utilisé, python décode les caractères lorsqu'ils sont affichables comme le A") +print("Mais on peut afficher le code hexadécimal",list((hex(x) for x in my_obj))) + +my_obj.extend("ABCD".encode("UTF-8")) +print("Ajout de la chaîne caractère ABCD encodée en UTF-8 -->",my_obj) +print("\n") + + +#Rappel sur les threads +print("\033[92m************** Threading en python **************\033[0m") +print("Le module threading permet d'exécuter une fonction dans un nouveau processus fils (multi-processing)") +print("Pour comprendre, examinez le code d'exemple de ce script") +print("1er exemple: creation et exécution d'un thread pour afficher un message après une seconde d'attente alors que le processus initial affiche aussi un message dès que possible") + +new_thread = threading.Thread(target = disp_msg, args = []) +new_thread.start() +print("### Hello from main process") + +print("Avant de continuer, atendons un peu la fin des threads time.sleep(2)") +time.sleep(2) + +print("\n2eme exemple: grâce à la fonction join on peut synchroniser les threads... et on peut aussi passer dans args des arguments") +new_thread1 = threading.Thread(target = disp_msg_arg, args = ["First"]) +new_thread2 = threading.Thread(target = disp_msg_arg, args = ["Second"]) +new_thread1.start() +new_thread1.join() +new_thread2.start() +new_thread2.join() +print("### Hello from main process") +print("\n") + +print("\033[92m************** Verrous **************\033[0m") + +print("Il arrive souvent que les threads veulent accéder aux mêmes données ou objets") +print("Pour éviter des incohérences ou des erreurs d'IO, un mécanisme simple de verrou exclusif peut être utilisé") + +print("On crée un verrou threading.Lock()") +lock = threading.Lock() +print("On prend le verrou (dès que disponible), lock.acquire()") +lock.acquire() +print("Et on n'oublie pas de déverouiller (ou rendre le verrou) une fois qu'on en a plus besoin\ +car sinon on bloque les autres processus qui souhaiteraient l'utiliser") +lock.release() + +print("Et en pratique, on peut passer ce verrou en paramètres des threads ") +new_thread1 = threading.Thread(target = disp_msg_lock, args = ["First",lock]) +new_thread2 = threading.Thread(target = disp_msg_lock, args = ["Second",lock]) +new_thread1.start() +new_thread2.start() +print("### Main process waits a bit") +time.sleep(0.5) +lock.acquire() +print("### Main process finally got the lock") +lock.release() +print("\n") + +#Utilisation des files +print("\033[92m************** Files **************\033[0m") + +print("L'utilisation de files est un moyen simple de communication entre plusieurs threads ou process (sur Linux un Thread est en fait instancié\ +sous forme d'un process léger mais ce n'est pas forcément le cas avec d'autres OS)") +print("Creation d'une file queue.Queue()") +callback_queue = queue.Queue() + +print("Un thread est créé et communiquera son secret au processus parent via la queue en utilisant les fonctions put et get") +new_thread = threading.Thread(target = tell_secret, args = [callback_queue]) +new_thread.start() + +print("### Main process waits for the secret callback_queue.get(block=True))",callback_queue.get(block=True)) + +#Les sockets + +print("\033[92m************** Sockets **************\033[0m") + +print("Et les sockets dans tout ça") +print("Voici un aperçu rapide mais vous aurez l'occasion d'expérimenter plus en détail au cours du TP") +print("Création d'une socket TCP en attente de connexion sur la machine locale et le port 5555 dans un thread à part") + +new_thread = threading.Thread(target = open_server, args = []) +new_thread.start() + +print("On attend un peu pour que le serveur démarre et on envoie un message 'Coucou'") +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(("localhost",5555)) +client.sendall("Coucou".encode("UTF-8")) +print("On récupère la réponse du serveur dans un buffer de taille 2048 au maximum", client.recv(2048).decode("UTF-8")) +print("Fermeture de la connexion - close function") +client.close() + +new_thread.join() +print("\n\033[93mC'était un exemple ultra-simplifié. En pratique il faut gérer les erreurs possibles (par exemple en cas de connexion interomppue) ou encore une transmission\ +des données jusqu'à l'applicatif qui peut être découpée (la réponse complète n'est peut être pas encore dans le bufffer).\ +Vous allez voir des exemples un peu plus complet dans le code fourni du client et serveur du TP\033[0m") + diff --git a/Docker/JeromeFrancois/gallery.py b/Docker/JeromeFrancois/gallery.py new file mode 100644 index 0000000000000000000000000000000000000000..ca5eedcde821dfe74b4bfe6b205ae5c4354e328a --- /dev/null +++ b/Docker/JeromeFrancois/gallery.py @@ -0,0 +1,227 @@ +import streamlit as st +import img_client +import threading +from io import BytesIO +import base64 +import time +import queue + +separator = "::" + +def list_album(): + """ + Get the list of albmus in directory albums + + Returns: + The list of albums + """ + + reply = img_client.send_rcv("LIST") + elements = reply.split(separator) + if len(elements[0])>0: + raise Exception("Reply must contain an empty first argument: "+str(elements[0])) + else: + return elements[1:] + + + +def add_image_in_gallery(gallery,img): + """ + Add an image to the gallery + + Parameters: + gallery (dict): the gallery to update + img (BytesIO): the image + """ + + if gallery["current_col"]>=gallery["max_item_per_row"]: + #reset col index and update row index + gallery["current_row"] = gallery["top_container"].columns(gallery["max_item_per_row"]) + + gallery["current_col"]=0 + + + st.session_state.gallery.append(gallery["current_row"][gallery["current_col"]].image(img)) + gallery["current_col"]+=1 + + +def load_images(album,gallery): + """ + Load the images of an album into the gallery + + Parameters; + album (str): name of the album (directory name) + gallery (dict): the gallery where images will be loaded + """ + + #Get image filenamaes of the albmus to be loaded + cmd = "ALBUM"+separator+album + reply = img_client.send_rcv(cmd) + elements = reply.split(separator) + + if len(elements[0])>1: + raise Exception("Reply must contain an empty first argument: "+str(elements[0])) + else: + #Iterate over every single image, load it and it to the gallery + for e in elements[1:]: + cmd = "IMG"+separator+album+separator+e + reply = img_client.send_rcv(cmd) + elements2 = reply.split(separator) + + if len(elements2[0])>1: + raise Exception("Reply must contain an empty first argument: "+str(elements2[0])) + elif len(elements2)<2: + raise Exception("No image returned"+str(e)) + else: + im = BytesIO(base64.b64decode(elements2[1])) + add_image_in_gallery(gallery,im) + +def load_transform_images(album,gallery): + """ + Similar as load_images butwith TRANSFORM command + + Parameters; + album (str): name of the album (directory name) + gallery (dict): the gallery where images will be loaded + """ + + #Get image filenamaes of the albmus to be loaded + cmd = "ALBUM"+separator+album + reply = img_client.send_rcv(cmd) + elements = reply.split(separator) + + if len(elements[0])>1: + raise Exception("Reply must contain an empty first argument: "+str(elements[0])) + else: + #Iterate over every single image, load it and it to the gallery + for e in elements[1:]: + cmd = "IMG_TRANSFORM"+separator+album+separator+e + reply = img_client.send_rcv(cmd) + elements2 = reply.split(separator) + + if len(elements2[0])>1: + raise Exception("Reply must contain an empty first argument: "+str(elements2[0])) + elif len(elements2)<2: + raise Exception("No image returned"+str(e)) + else: + im = BytesIO(base64.b64decode(elements2[1])) + add_image_in_gallery(gallery,im) + + + +def load_images_optim1(album_dropdown,gallery): + + #Get image filenames + cmd = "ALBUM"+separator+album_dropdown + reply = img_client.send_rcv(cmd) + elements = reply.split(separator) + if len(elements[0])>1: + raise Exception("Reply must contain an empty first argument: "+str(elements[0])) + else: + + cmd = "IMGS"+separator+album_dropdown + + reply = img_client.send_rcv(cmd) + elements2 = reply.split(separator) + + + if len(elements2[0])>1: + raise Exception("Reply must contain an empty first argument: "+str(elements[0])) + elif len(elements2)<2: + raise Exception("No image returned") + else: + """ + To be implemented + """ + + + +def load_images_optim2(album_dropdown,gallery): + + #Get image filenames + cmd = "ALBUM"+separator+album_dropdown + + reply = img_client.send_rcv(cmd) + elements = reply.split(separator) + if len(elements[0])>1: + raise Exception("Reply must contain an empty first argument: "+str(elements[0])) + else: + callback_queue = queue.Queue() + """ + To be implemented + """ + + +def load_images_optim3(album_dropdown,gallery): + """ + To be implemented + """ + + +def load_images_optim4(album_dropdown,gallery): + """ + To be implemented + """ + +#Creation of the application + +st.title("Galerie") + +#State variable to keep track of the status of the gui session +if 'find' not in st.session_state: + st.session_state.find = False + +if st.button("Find albums",key="find_albums"): + st.session_state.list_albums = list_album() + st.session_state.find = True + + +option_album = st.empty() +if st.session_state.find: + option_album=st.selectbox("Select an album",st.session_state.list_albums) +else: + option_album=st.selectbox("Select an album",[]) + +col_buttons = st.columns(6) + +click_v1 = col_buttons[0].button("Load Images (v1)",key="v1") +click_v2 = col_buttons[1].button("Load Images (v2)",key="v2") +click_v3 = col_buttons[2].button("Load Images (v3)",key="v3") +click_v4 = col_buttons[3].button("Load Images (v4)",key="v4") +click_v5 = col_buttons[4].button("Load Images (v5)",key="v5") +click_v6 = col_buttons[5].button("Transform Images",key="v6") + +top = st.container() + +if 'gallery' in st.session_state: + for e in st.session_state.gallery: + e.empty() + top.empty() + time.sleep(0.01) + +timer = top.container() + +#Creation of the initial gallery (empty. Thi is represented in column format +gallery = {} +gallery["current_col"] = 0 +gallery["max_item_per_row"] = 8 +gallery["top_container"] = top +gallery["current_row"] = gallery["top_container"].columns(gallery["max_item_per_row"]) +st.session_state.gallery = [] + +t_start = time.time() + +if click_v1: + load_images(option_album,gallery) +elif click_v2: + load_images_optim1(option_album,gallery) +elif click_v3: + load_images_optim2(option_album,gallery) +elif click_v4: + load_images_optim3(option_album,gallery) +elif click_v5: + load_images_optim4(option_album,gallery) +elif click_v6: + load_transform_images(option_album,gallery) + +timer.write("Temps écoulé (secondes): "+str(time.time() - t_start)) \ No newline at end of file diff --git a/Docker/JeromeFrancois/hidden_imgs/Campus_petite.jpg b/Docker/JeromeFrancois/hidden_imgs/Campus_petite.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f72d6103f7f69bc9e2f4185d08fc7b552968368 Binary files /dev/null and b/Docker/JeromeFrancois/hidden_imgs/Campus_petite.jpg differ diff --git a/Docker/JeromeFrancois/hidden_imgs/sup.jpg b/Docker/JeromeFrancois/hidden_imgs/sup.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da871fc145b1fcd63484d87ed1cd79f66c32282b Binary files /dev/null and b/Docker/JeromeFrancois/hidden_imgs/sup.jpg differ diff --git a/Docker/JeromeFrancois/img_client.py b/Docker/JeromeFrancois/img_client.py new file mode 100644 index 0000000000000000000000000000000000000000..0a5e194d71fccb0cd33cacb029a5a8e3feea5666 --- /dev/null +++ b/Docker/JeromeFrancois/img_client.py @@ -0,0 +1,218 @@ +import socket + +import socket +import struct +from io import BytesIO + +#Default configuration parameters for the client +srv_addr = "localhost" +srv_port = 9786 +buff_size=1024 +int_size = 4 + + +#Size in bytes for an integer value +int_size = 4 +separator="::" + + +def send_rcv(data): + """ + Stateless function creating a new socket and sending data + The function encodes the request as follows: data length (4 bytes) | data (* bytes) + Parameters + data (str): data to be sent + + Returns: + Bytes sent back by the remote address + """ + + all_data = "" + try: + client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + client.connect((srv_addr,srv_port)) + + #Encode size as big endian + val = struct.pack('!i', len(data)) + client.send(val) + client.sendall(data.encode("UTF-8")) + + #Read bytes sent back until the socket is closed by the remote connection + while True: + data = client.recv(buff_size) + if data: + all_data += data.decode("UTF-8") + else: + print ('no more data from', srv_addr) + break + except socket.error as e: + print("Socket error: %s" %str(e)) + except Exception as e: + print("Other exception: %s" %str(e)) + finally: + #Close socket from the client side + client.close() + return all_data + + +def rcv_int(client): + """ + Read an int value encoded as four bytes in big endian + + Parameters: + client (socket): socket to read + + Return: + int: value read + """ + + #Read data from socket until the 4 bytes (int_size) has been read + data = bytearray() + while len(data)<int_size: + data.extend(client.recv(min(int_size,int_size-len(data)))) + return struct.unpack('!i', data)[0] + + + + + +def send_rcv_multi_chunks(data,gallery,callback): + file_dict = {} + try: + #Step 1) get metadata about files and chunk + meta_data = send_rcv("Step1_"+data) + + #We assume the following format: FILENAME1::SIZE_FILENAME1::FILENAME2::SIZE_FILENAME2 + elements = meta_data.split(separator) + + i=1 + while i < len(elements): + fname = elements[i] + size = int(elements[i+1]) + #initialization of file information + + file_dict[fname] = {} + file_dict[fname]["size"] = size + file_dict[fname]["bytes"] = bytearray(size) + file_dict[fname]["bytes_read"] = 0 + i+=2 + + + #Step 2) get chuncks + request = "Step2_"+data + client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + client.connect((srv_addr,srv_port)) + + val = struct.pack('!i', len(request)) + client.send(val) + client.sendall(request.encode("UTF-8")) + i = 0 + while True: + #all_data = bytes() + + #Pas très propre il faudrait fermer correctement la socket quand même... + + + length_filename = rcv_int(client) + + if length_filename==0: + client.close() + break + + total_read = 0 + all_data = bytearray() + while total_read<length_filename: + read_size = min(buff_size,length_filename-total_read) + data = client.recv(read_size) + total_read+=len(data) + + if data: + all_data.extend(data)# += data.decode("UTF-8") + else: + print ('no more data') + break + + + filename = all_data.decode("UTF-8") + + + start_index = rcv_int(client) + + stop_index = rcv_int(client) + + length_to_read = stop_index - start_index + total_read = 0 + + all_data = bytearray() + while total_read<length_to_read: + read_size = min(buff_size,length_to_read-total_read) + data = client.recv(read_size) + total_read+=len(data) + + if data: + all_data.extend(data) + else: + print ('no more data') + break + #Save the number of byte read for the received chunk + file_dict[filename]["bytes_read"]+=total_read + #Insert byte at the right place into the bytearray of the current file + + bytes = file_dict[filename]["bytes"] + for i in range(start_index,stop_index): + bytes[i] = all_data[i-start_index] + + #If the file is complete, display the picture + if file_dict[filename]["bytes_read"] == file_dict[filename]["size"]: + callback(gallery,BytesIO(file_dict[filename]["bytes"])) + + except socket.error as e: + raise e + print ("Socket error: %s" %str(e)) + # except Exception as e: + + # for k,v in file_dict.items(): + # print(k,v["size"],v["bytes_read"]) + + + +def send_rcv_multi(data,gallery,callback): + + try: + client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + client.connect((srv_addr,srv_port)) + + val = struct.pack('!i', len(data)) + client.send(val) + client.sendall(data.encode("UTF-8")) + + while True: + all_data = bytes() + expected_length = rcv_int(client) + total_read = 0 + print(expected_length) + + while total_read<expected_length: + read_size = min(buff_size,expected_length-total_read) + data = client.recv(read_size) + total_read+=len(data) + print("-->",total_read) + if data: + all_data += data + else: + print ('no more data from', srv_addr) + break + + + callback(gallery,BytesIO(all_data)) + + + except socket.error as e: + print ("Socket error: %s" %str(e)) + pass + except Exception as e: + print ("Other exception: %s" %str(e)) + finally: + client.close() + + diff --git a/Docker/JeromeFrancois/img_server.py b/Docker/JeromeFrancois/img_server.py new file mode 100644 index 0000000000000000000000000000000000000000..bee1483dca5d85765abcfbf78ee65194cdd93ffa --- /dev/null +++ b/Docker/JeromeFrancois/img_server.py @@ -0,0 +1,220 @@ +import socket +import threading +import base64 +import os +import struct +import time +from PIL import ImageFilter +from PIL import Image +Image.MAX_IMAGE_PIXELS = None +from io import BytesIO + +#Default value for server configuration +IP_addr = "localhost" +lstn_port = 9786 +buff_size = 2048 +separator = "::" +chunk_size = 2048 +album_directory = "albums" + + +#Size in bytes for an integer value +int_size = 4 + + +def rcv_int(client): + """ + Read an int value encoded as four bytes in big endian + + Parameters: + client (socket): socket to read + + Return: + int: value read + """ + + #Read data from socket until the 4 bytes (int_size) has been read + data = bytearray() + while len(data)<int_size: + data.extend(client.recv(min(int_size,int_size-len(data)))) + return struct.unpack('!i', data)[0] + +def send_img_chunk(f,conn,lock): + """ + Split a file as chunk and send the chunk (bytes) + + parameters: + f: file to send + conn: socket to use + lock: lock to ensure that all data are sent in a row + """ + filename = f.name.encode("UTF-8") + s_filename = struct.pack('!i', len(filename)) + file = open(f, "rb") + start = 0 + while True: + read_bytes = file.read(chunk_size) + n_read = len(read_bytes) + if n_read>0: + """ + To be implemented + """ + else: + break + + +def send_img(f,conn,lock): + """ + Send a file as bytes to a socket with the length as 4-bytes header + + parameters: + f: file to send + conn: socket to use + lock: lock to ensure that all data are sent in a row (length + payload) + """ + data = open(f, "rb").read() + val = struct.pack('!i', len(data)) + lock.acquire() + conn.send(val) + conn.send(data) + lock.release() + + + + +def handle_client(conn, addr): + """ + Function to handle a new connected client + + Parameters: + conn (socket): socket used for the client + addr (str): address of the client + """ + + #Add artifical delay for exercie purpose) + #time.sleep(0.01) + print(f"[NEW CONNECTION] {addr} connected.") + + all_data = bytearray() + try: + + #Get the length of data sent by teh client + expected_length = rcv_int(conn) + + #struct.unpack('!i', conn.recv(int_size))[0] + + #Read data until all expected data is read + while len(all_data)<expected_length: + data = conn.recv(buff_size) + if data: + all_data.extend(data) + else: + print ('no more data from', addr) + break + except socket.error as e: + print ("Socket error: %s" %str(e)) + except Exception as e: + print ("Other exception: %s" %str(e)) + + #Decode the request from the client + all_data = all_data.decode("UTF-8") + + #Extract the command and parameter based on the separator + for li in all_data.splitlines(): + elements = li.split(separator) + n_elements = len(elements) + + reply = "" + #print(elements) + try: + #Handle the request based on the command provided + if n_elements>0: + + if elements[0] == "LIST": + #Get the albums and send it to the clients + for f in [ f.name for f in os.scandir(album_directory) if f.is_dir() ]: + reply = reply + "::"+str(f) + conn.send(reply.encode("UTF-8")) + conn.close() + + elif elements[0] == "ALBUM": + #Get the images of an album and send them as filename (we sort images by filename) + if n_elements ==2: + for f in sorted([ f.name for f in os.scandir(album_directory+"/"+elements[1]) if f.is_file()]): + reply = reply + "::"+str(f) + conn.send(reply.encode("UTF-8")) + conn.close() + + elif elements[0] == "IMG": + #Load the image requested by the client and sent it back to it + if n_elements ==3: + img = open(album_directory+"/"+elements[1]+"/"+elements[2], "rb") + reply = reply + "::" + base64.b64encode(img.read()).decode("UTF-8") + + conn.send(reply.encode("UTF-8")) + conn.close() + + elif elements[0] == "IMGS": + if n_elements ==2: + + #On récupère la liste des images de l'album par ordre alphabétique + for f in sorted([f for f in os.scandir(album_directory+"/"+elements[1]) if f.is_file()],key=lambda x:x.name): + """ + To be implemented + """ + conn.send(reply.encode("UTF-8")) + conn.close() + + + + elif elements[0] == "IMG_TRANSFORM": + #Load the image requested by the client and sent it back to it + if n_elements ==3: + fname = album_directory+"/"+elements[1]+"/"+elements[2] + + s=BytesIO() + img = open(fname, "rb") + img_transform = Image.open(img).resize([400,400]).filter(ImageFilter.GaussianBlur(10)) + img_transform.save(s,format="JPEG") + + #img_transform.save(img_cache,format="JPEG") + reply = reply + "::" + base64.b64encode(s.getvalue()).decode("UTF-8") + + conn.send(reply.encode("UTF-8")) + conn.close() + else: + print("Error") + except socket.error as e: + print ("Socket error: %s" %str(e)) + finally: + continue + + +def start_server(): + """ + Start the server and listen for clients + For each new client connecting to the server, a dedicated thread will be dedicated to handle the connection + The server will run until sig-int signal (Ctrl-C ) + """ + # Create a TCP/IP socket + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1) + + + # Bind the socket to the port + sock.bind((IP_addr,lstn_port)) + sock.listen(1) + + #Listen incoming connection + while True: + # Wait for a connection + connection, client_address = sock.accept() + try: + thread = threading.Thread(target=handle_client, args=(connection, client_address)) + thread.start() + finally: + continue + + + +start_server() \ No newline at end of file