diff --git a/.gitignore b/.gitignore
index 76c2dee9e2b31747400e20682a19e8fefa33bed2..79405b57e991dec843624d510b113cb6a2e0cd67 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,15 @@
 /composer.lock
 /reports/
 .php_cs.*cache
+/nbproject/private/
+/nbproject
+/.idea/
+/.php_cs*cache
+package-lock.json
+yarn.lock
+yarn-error.log
+npm-debug.log
+node_modules/
+vendor/
+/tests/Fixtures/public/build
+/tests/Fixtures/var/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7055e4385ed551d91efb90db534ce0dc3e4c4c15..5146dec1981c4393189431895acbd747439454db 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,33 +1,16 @@
 include:
   - project: pole-is/tools/ci-config
-    ref: "2.0.0"
-    file: /php-package-ci.yml
+    ref: "2.1.0"
+    file: /php-multiversions-ci.yml
   - project: pole-is/tools/ci-config
-    ref: "2.0.0"
+    ref: "2.1.0"
     file: /satis-ci.yml
 
-stages:
-  - vendor
-  - test
-  - deploy
-
-# Personnalisation des tâches par défaut:
-
 .php:
   variables:
-    DEBIAN_CODENAME: "stretch"
-    PHP_VERSION: "7.1"
+    PHP_IMAGE: gitlab-registry.irstea.fr/pole-is/docker/php/ci/panther
+    PHP_IMAGE_TAG: "20.02"
 
-test:phpunit:
-#  variables:
-#    PHP_IMAGE: gitlab-registry.irstea.fr/pole-is/docker/php/ci/panther
+.php-test:
   script:
-    - composer test:phpunit -- --coverage-text --coverage-html=reports/coverage --log-junit=reports/junit.xml --colors=never
-  artifacts:
-    name: reports
-    expose_as: "phpunit reports"
-    when: always
-    paths:
-      - reports/
-    reports:
-      junit: reports/junit.xml
+    - composer "$CI_JOB_NAME"
diff --git a/.idea/file-upload-bundle.iml b/.idea/file-upload-bundle.iml
index 8fe443ebcdd6108a483723641bd8736ead81bc86..cadd3f4d34be491a10a06f1ea4fa9783579baf38 100644
--- a/.idea/file-upload-bundle.iml
+++ b/.idea/file-upload-bundle.iml
@@ -19,12 +19,28 @@
       <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-bundle" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-cache-bundle" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/event-manager" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/orm" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/persistence" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/reflection" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/facebook/webdriver" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/hexmedia/yaml-linter" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/composer-require-checker-shim" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/php-cs-fixer-config" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/php-cs-fixer-shim" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/phpcpd-shim" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/phploc-shim" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/phpmd-config" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/phpmd-shim" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/phpstan-config" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/irstea/theme-bundle" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-parallel-lint" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/jangregor/phpstan-prophecy" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/jdorn/sql-formatter" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/jean85/pretty-package-versions" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/knplabs/gaufrette" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/knplabs/knp-gaufrette-bundle" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/knplabs/knp-menu" />
@@ -32,14 +48,36 @@
       <excludeFolder url="file://$MODULE_DIR$/vendor/kriswallsmith/assetic" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/lmammino/jsmin4assetic" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/monolog/monolog" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/natxet/CssMin" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/natxet/cssmin" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nette/bootstrap" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nette/di" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nette/finder" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nette/neon" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nette/php-generator" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nette/robot-loader" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nette/schema" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nette/utils" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/ocramius/package-versions" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/oyejorge/less.php" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/pagerfanta/pagerfanta" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/pcov/clobber" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/manifest" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/version" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpdoc-parser" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpstan" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpstan-beberlei-assert" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpstan-deprecation-rules" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpstan-doctrine" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpstan-phpunit" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpstan-symfony" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
@@ -48,26 +86,76 @@
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/psr/cache" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/uuid" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/uuid-doctrine" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/robloach/component-installer" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-reflector" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sensio/framework-extra-bundle" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/sensio/generator-bundle" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/assetic-bundle" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/browser-kit" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/cache" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/cache-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/class-loader" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/config" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/console" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/css-selector" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/debug" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/doctrine-bridge" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dom-crawler" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/form" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/framework-bundle" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-client-contracts" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/inflector" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/intl" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/monolog-bridge" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/monolog-bundle" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/panther" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-icu" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php56" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php73" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php80" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-util" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/property-access" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/routing" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/service-contracts" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/symfony" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/templating" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/twig-bridge" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/twig-bundle" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/validator" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-exporter" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/web-server-bundle" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/yaml" />
+      <excludeFolder url="file://$MODULE_DIR$/vendor/theseer/tokenizer" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/twig/extensions" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
diff --git a/.idea/php.xml b/.idea/php.xml
index d7b80e007a0bea2aaacc389fcf5d2eed711a8f33..b46799e14be3cc5910fd992f8bf929d72c0399a0 100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -140,12 +140,100 @@
       <path value="$PROJECT_DIR$/vendor/twig/extensions" />
       <path value="$PROJECT_DIR$/vendor/clue/socket-raw" />
       <path value="$PROJECT_DIR$/vendor/xenolope/quahog" />
+      <path value="$PROJECT_DIR$/vendor/pcov/clobber" />
+      <path value="$PROJECT_DIR$/vendor/irstea/phpmd-shim" />
+      <path value="$PROJECT_DIR$/vendor/irstea/phpcpd-shim" />
+      <path value="$PROJECT_DIR$/vendor/irstea/phploc-shim" />
+      <path value="$PROJECT_DIR$/vendor/irstea/php-cs-fixer-config" />
+      <path value="$PROJECT_DIR$/vendor/irstea/phpmd-config" />
+      <path value="$PROJECT_DIR$/vendor/phpstan/phpstan" />
+      <path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
+      <path value="$PROJECT_DIR$/vendor/hexmedia/yaml-linter" />
+      <path value="$PROJECT_DIR$/vendor/symfony/var-exporter" />
+      <path value="$PROJECT_DIR$/vendor/irstea/php-cs-fixer-shim" />
+      <path value="$PROJECT_DIR$/vendor/symfony/translation" />
+      <path value="$PROJECT_DIR$/vendor/symfony/form" />
+      <path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
+      <path value="$PROJECT_DIR$/vendor/symfony/process" />
+      <path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
+      <path value="$PROJECT_DIR$/vendor/jakub-onderka/php-parallel-lint" />
+      <path value="$PROJECT_DIR$/vendor/symfony/doctrine-bridge" />
+      <path value="$PROJECT_DIR$/vendor/irstea/phpstan-config" />
+      <path value="$PROJECT_DIR$/vendor/symfony/config" />
+      <path value="$PROJECT_DIR$/vendor/symfony/twig-bridge" />
+      <path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
+      <path value="$PROJECT_DIR$/vendor/irstea/composer-require-checker-shim" />
+      <path value="$PROJECT_DIR$/vendor/symfony/debug" />
+      <path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" />
+      <path value="$PROJECT_DIR$/vendor/symfony/twig-bundle" />
+      <path value="$PROJECT_DIR$/vendor/psr/container" />
+      <path value="$PROJECT_DIR$/vendor/symfony/framework-bundle" />
+      <path value="$PROJECT_DIR$/vendor/phpstan/phpstan-phpunit" />
+      <path value="$PROJECT_DIR$/vendor/symfony/templating" />
+      <path value="$PROJECT_DIR$/vendor/phpstan/phpdoc-parser" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
+      <path value="$PROJECT_DIR$/vendor/phpstan/phpstan-symfony" />
+      <path value="$PROJECT_DIR$/vendor/symfony/options-resolver" />
+      <path value="$PROJECT_DIR$/vendor/phpstan/phpstan-doctrine" />
+      <path value="$PROJECT_DIR$/vendor/symfony/contracts" />
+      <path value="$PROJECT_DIR$/vendor/phpstan/phpstan-beberlei-assert" />
+      <path value="$PROJECT_DIR$/vendor/symfony/cache" />
+      <path value="$PROJECT_DIR$/vendor/symfony/routing" />
+      <path value="$PROJECT_DIR$/vendor/symfony/monolog-bridge" />
+      <path value="$PROJECT_DIR$/vendor/symfony/inflector" />
+      <path value="$PROJECT_DIR$/vendor/symfony/validator" />
+      <path value="$PROJECT_DIR$/vendor/symfony/finder" />
+      <path value="$PROJECT_DIR$/vendor/symfony/console" />
+      <path value="$PROJECT_DIR$/vendor/symfony/security" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
+      <path value="$PROJECT_DIR$/vendor/symfony/property-access" />
+      <path value="$PROJECT_DIR$/vendor/symfony/cache-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/class-loader" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
+      <path value="$PROJECT_DIR$/vendor/symfony/yaml" />
+      <path value="$PROJECT_DIR$/vendor/nette/utils" />
+      <path value="$PROJECT_DIR$/vendor/nette/robot-loader" />
+      <path value="$PROJECT_DIR$/vendor/nette/di" />
+      <path value="$PROJECT_DIR$/vendor/nette/php-generator" />
+      <path value="$PROJECT_DIR$/vendor/nette/neon" />
+      <path value="$PROJECT_DIR$/vendor/nette/schema" />
+      <path value="$PROJECT_DIR$/vendor/jean85/pretty-package-versions" />
+      <path value="$PROJECT_DIR$/vendor/nette/finder" />
+      <path value="$PROJECT_DIR$/vendor/nette/bootstrap" />
+      <path value="$PROJECT_DIR$/vendor/ocramius/package-versions" />
+      <path value="$PROJECT_DIR$/vendor/natxet/cssmin" />
+      <path value="$PROJECT_DIR$/vendor/ramsey/uuid-doctrine" />
+      <path value="$PROJECT_DIR$/vendor/robloach/component-installer" />
+      <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
+      <path value="$PROJECT_DIR$/vendor/jangregor/phpstan-prophecy" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/version" />
+      <path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
+      <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
+      <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/reflection" />
+      <path value="$PROJECT_DIR$/vendor/doctrine/persistence" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
+      <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
+      <path value="$PROJECT_DIR$/vendor/phpstan/phpstan-deprecation-rules" />
+      <path value="$PROJECT_DIR$/vendor/facebook/webdriver" />
+      <path value="$PROJECT_DIR$/vendor/symfony/panther" />
+      <path value="$PROJECT_DIR$/vendor/symfony/http-client" />
+      <path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
+      <path value="$PROJECT_DIR$/vendor/symfony/browser-kit" />
+      <path value="$PROJECT_DIR$/vendor/symfony/web-server-bundle" />
+      <path value="$PROJECT_DIR$/vendor/symfony/dom-crawler" />
     </include_path>
   </component>
   <component name="PhpProjectSharedConfiguration" php_language_level="7.1" />
   <component name="PhpUnit">
     <phpunit_settings>
-      <PhpUnitSettings load_method="CUSTOM_LOADER" configuration_file_path="$PROJECT_DIR$/phpunit.xml.dist" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="" use_configuration_file="true" />
+      <PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml.dist" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="" use_configuration_file="true" />
     </phpunit_settings>
   </component>
 </project>
\ No newline at end of file
diff --git a/composer.json b/composer.json
index 801a3036c0878ba2536eabed757a1ea3292f03f1..c830ebbf59867640687ebe880d9bf33f2271180d 100644
--- a/composer.json
+++ b/composer.json
@@ -31,14 +31,14 @@
         "blueimp/jquery-file-upload": "~9.9",
         "doctrine/doctrine-bundle": "^1.6",
         "doctrine/orm": "^2.5",
-        "irstea/theme-bundle": "^2.0",
+        "irstea/theme-bundle": "dev-utilisation_bundle_dans_projet_symfony3.4",
         "knplabs/gaufrette": "^0.3",
         "knplabs/knp-gaufrette-bundle": "~0.1",
         "pagerfanta/pagerfanta": "^1.0",
         "psr/log": "^1.0",
         "ramsey/uuid": "^3.0",
         "ramsey/uuid-doctrine": "^1.5",
-        "sensio/framework-extra-bundle": "^3.0",
+        "sensio/framework-extra-bundle": "^5.3",
         "symfony/assetic-bundle": "^2.3",
         "symfony/config": "^3.0",
         "symfony/console": "^3.0",
@@ -73,13 +73,21 @@
         "irstea/phpcpd-shim": "^3.0",
         "irstea/phploc-shim": "^4.0",
         "irstea/phpmd-config": "^1.0",
-        "irstea/phpstan-config": "^1.1",
+        "phpstan/phpstan-deprecation-rules": "@stable",
+        "symfony/browser-kit": "^4.3",
+        "symfony/css-selector": "^4.3",
+        "symfony/panther": "^0.5.2",
+        "irstea/pcov-clobber-plugin": "^1.0",
+        "symfony/web-server-bundle": "^3.4",
         "jakub-onderka/php-parallel-lint": "^1.0",
         "pcov/clobber": "^2.0",
-        "phpunit/phpunit": "^7.0"
+        "irstea/phpstan-config": "^1.1.1",
+      "phpunit/phpunit": "^7.0"
     },
     "config": {
-        "sort-packages": true,
+    "sort-packages": true,
+    "process-timeout":0,
+    "preferred-install": "dist",
         "platform": {
             "php": "7.1.30"
         }
@@ -89,39 +97,80 @@
             "dev-master": "2.x-dev"
         }
     },
-    "archive": {
-        "exclude": [
-            "vendor",
-            "phpunit.xml.dist",
-            ".git*",
-            ".idea"
-        ]
-    },
-    "scripts": {
-        "post-install-cmd": "@clobber-phpunit",
-        "post-update-cmd": "@clobber-phpunit",
-        "clobber-phpunit": "[ -d vendor/phpunit/phpunit ] && vendor/bin/pcov . clobber",
+  "archive": {
+    "exclude": [
+      "/*",
+      "!/src",
+      "!/doc",
+      "!/composer.json",
+      "!/package.json",
+      "!/COPYING*",
+      "!/README.md",
+      ".git*",
+      ".idea"
+    ]
+  },
+  "scripts": {
+    "fix-cs": "vendor/bin/php-cs-fixer fix --verbose",
+    "phploc": "vendor/bin/phploc src tests --exclude tests/Fixtures/var",
+    "make-icon-lists":[
+      "npm install",
+      "perl -ne '/\\.@\\{fa-css-prefix\\}\\-([-\\w]+):before/ and print \"$1\\n\"' node_modules/font-awesome/scss/_icons.scss | sort -u > src/Resources/icons/fa.txt",
+      "perl -ne '/\\.glyphicon\\-([-\\w]+)/ and print \"$1\\n\"' src/Resources/assets/sass/main.scss   | sort -u > src/Resources/icons/glyphicon.txt"
+    ],
+    "update:lowest": [
+      "rm -rf vendor composer.lock #",
+      "@composer update --no-suggest --prefer-stable --prefer-lowest"
+    ],
+    "update:latest": [
+      "rm -rf vendor composer.lock #",
+      "@composer clear-cache #",
+      "@composer update --no-suggest"
+    ],
+    "test:lowest": ["@update:lowest", "@test"],
+    "test:latest": ["@update:latest", "@test"],
+    "test": [
+      "@test:lint",
+      "@test:php-cs-fixer",
+      "@test:phpcpd",
+      "@test:phpmd",
+      "@test:phpstan",
+      "@test:composer-require-checker",
+      "@test:phpunit"
+    ],
+    "test:lint": [
+      "vendor/bin/parallel-lint -j $(nproc) --exclude tests/Fixtures/var src tests ",
+      "vendor/bin/yaml-lint src"
+    ],
+    "test:php-cs-fixer": "vendor/bin/php-cs-fixer fix --dry-run --verbose",
+    "test:phpcpd": "vendor/bin/phpcpd --fuzzy src tests --exclude=Fixtures/var",
+    "test:composer-require-checker": "vendor/bin/composer-require-checker",
+    "test:phpmd": "vendor/bin/phpmd src,tests/Form/,tests/Utils,tests/Listener text ./phpmd-ruleset.xml --suffixes=php",
+    "test:phpstan": "vendor/bin/phpstan analyse --no-progress",
 
-        "fix-cs": "vendor/bin/php-cs-fixer fix --verbose",
-        "phploc": "vendor/bin/phploc src tests --exclude tests/Fixtures/var",
-        "test": [
-          "@test:lint",
-          "@test:php-cs-fixer",
-          "@test:phpcpd",
-          "@test:phpmd",
-          "@test:phpstan",
-          "@test:composer-require-checker",
-          "@test:phpunit"
-        ],
-        "test:lint": [
-          "vendor/bin/parallel-lint -j $(nproc) --exclude tests/Fixtures/var src tests ",
-          "vendor/bin/yaml-lint src"
-        ],
-        "test:php-cs-fixer": "vendor/bin/php-cs-fixer fix --dry-run --verbose",
-        "test:phpcpd": "vendor/bin/phpcpd --fuzzy src tests --exclude=Fixtures/var",
-        "test:composer-require-checker": "vendor/bin/composer-require-checker",
-        "test:phpmd": "vendor/bin/phpmd src,tests text ./phpmd-ruleset.xml --suffixes=php",
-        "test:phpstan": "vendor/bin/phpstan analyse --no-progress",
-        "test:phpunit": "vendor/bin/phpunit"
-    }
+    "test:clear": [
+      "if [ -z \"$CI\" ]; then cd tests/Fixtures; rm -rf package-lock.json var node_modules public/assets reports/*; fi #"
+    ],
+    "test:install-assets": [
+      "@test:clear",
+      "cd tests/Fixtures && npm install && npm run dev #"
+    ],
+    "test:phpunit": [
+      "$PANTHER_CHROME_BINARY --version #",
+      "$PANTHER_CHROME_DRIVER_BINARY --version #",
+      "vendor/bin/phpunit --coverage-text --coverage-html=reports/coverage --log-junit=reports/junit.xml"
+    ],
+    "test:serve": [
+      "@test:install-assets",
+      "@php tests/console server:run -v --docroot=tests/Fixtures/public"
+    ],
+
+    "docker:serve": [
+      "@test:install-assets",
+      "set -x; IMG=`docker build --build-arg \"PHP_VERSION=${PHP_VERSION:-7.1}\" --pull -q .` && docker run --rm -p 8080:8080 -v ${PWD}:/var/www/theme-bundle -u `id -u`:`id -g` $IMG"
+    ],
+    "docker:test": [
+      "set -x; IMG=`docker build --build-arg \"PHP_VERSION=${PHP_VERSION:-7.1}\" --pull -q .` && docker run --rm -v ${PWD}:/var/www/theme-bundle -u `id -u`:`id -g` $IMG composer test"
+    ]
+  }
 }
diff --git a/phpstan.neon b/phpstan.neon
index 445f6f0dc0bc7a66b3a1d50ad67a9f3ab5ca4088..c993734f8b7a5292ddd1d4e71cc97180178f62e3 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -1,9 +1,14 @@
 includes:
-    - vendor/irstea/phpstan-config/phpstan.neon
+    - vendor/irstea/phpstan-config/strict.neon
+    - vendor/irstea/phpstan-config/phpunit.neon
 
 parameters:
-    level: 1
-
-    paths:
-        - src
-        - tests
+	excludes_analyse:
+	    - 'tests/Fixtures/var/cache/'
+	level: 1
+	paths:
+	    - src
+	    - tests/Entity
+	    - tests/Form
+	    - tests/Form
+	    - tests/Listener
diff --git a/src/Command/CheckCommand.php b/src/Command/CheckCommand.php
index 2a6b9633001475982c43badd0d85e0cb0bba321b..bc7aa929e8e304071e8337033f266482fc52bc79 100644
--- a/src/Command/CheckCommand.php
+++ b/src/Command/CheckCommand.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Command/CollectGarbageCommand.php b/src/Command/CollectGarbageCommand.php
index 7e1350b26579a0f61d8c2e5b102601d43420d183..3dd9edc3b5a8f7f7332a3a08a0bb2894428a3871 100644
--- a/src/Command/CollectGarbageCommand.php
+++ b/src/Command/CollectGarbageCommand.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Command/CreateCommand.php b/src/Command/CreateCommand.php
index 2a4c2422ae8695a80a38c9b4df08f9f567d01d96..76c75628afd0b7f1ddd166c30461f9592ddc8c79 100644
--- a/src/Command/CreateCommand.php
+++ b/src/Command/CreateCommand.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Command/ReadCommand.php b/src/Command/ReadCommand.php
index 2246fd8064524ab1dd44e32bbf9a673667459b87..3c128520cc19cc375727c4784e1b42e57b33657c 100644
--- a/src/Command/ReadCommand.php
+++ b/src/Command/ReadCommand.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Controller/UploadController.php b/src/Controller/UploadController.php
index 9b6d1f6e94c25a77413c9a43eca9a86b00fec44a..7c5dc0cd00133e8234bd2ccce8e9e13d21c96b65 100644
--- a/src/Controller/UploadController.php
+++ b/src/Controller/UploadController.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Controller/UploadedFileController.php b/src/Controller/UploadedFileController.php
index 59ea4e0c395e44d5b653de3cc6de02b979b3e931..bfde466f83863d8cfa59da685c36c260d9d3bb41 100644
--- a/src/Controller/UploadedFileController.php
+++ b/src/Controller/UploadedFileController.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php
index 4e5fbf594e18fe9536af292bbf358ce62a9abf9b..006fe127e7bf420c8aeed74d41ef6e6bb2be3e07 100644
--- a/src/DependencyInjection/Configuration.php
+++ b/src/DependencyInjection/Configuration.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/DependencyInjection/IrsteaFileUploadExtension.php b/src/DependencyInjection/IrsteaFileUploadExtension.php
index 1959f806df946dfb872df988d13d71760bb22bc4..8fb31a446f205f70153b6fccfd0a0e40b32445a0 100644
--- a/src/DependencyInjection/IrsteaFileUploadExtension.php
+++ b/src/DependencyInjection/IrsteaFileUploadExtension.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Entity/UploadedFile.php b/src/Entity/UploadedFile.php
index 1012b779f6e50a660102c33823166652cfe90c8e..b82d284d81ca4969c36294909ef9a55d86727c2a 100644
--- a/src/Entity/UploadedFile.php
+++ b/src/Entity/UploadedFile.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Event/FileUploadCompleteEvent.php b/src/Event/FileUploadCompleteEvent.php
index 143257e92b6c36fde35ef533a3e21e1295622f41..ecea86a8cb17a1f087c9c594d865fddc98e3c23f 100644
--- a/src/Event/FileUploadCompleteEvent.php
+++ b/src/Event/FileUploadCompleteEvent.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Exception/Exception.php b/src/Exception/Exception.php
index 25d10e2b238ad04e37d635f72e70ba7343a8143c..5d0accc5e6820989f326fd5731e0df83a8dc6556 100644
--- a/src/Exception/Exception.php
+++ b/src/Exception/Exception.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Exception/RejectedFileException.php b/src/Exception/RejectedFileException.php
index 6c7ea62230c02f0efb155116a82114b32eac7e48..88bfaaa0c3dc10cab7e68b6dd8a3244582e541f3 100644
--- a/src/Exception/RejectedFileException.php
+++ b/src/Exception/RejectedFileException.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/FileUploadEvents.php b/src/FileUploadEvents.php
index 44baec4abe1032e9829fc040ea994a34ce1802db..4f396b77ae276434f134ec16f211617c4b28f7a2 100644
--- a/src/FileUploadEvents.php
+++ b/src/FileUploadEvents.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Form/DataTranformer/UploadedFileTransformer.php b/src/Form/DataTranformer/UploadedFileTransformer.php
index d8a1757665b6a87e0c7c4e7abc10e00c7a2dc917..394067c1f65e5f4340489f62404413bd53742664 100644
--- a/src/Form/DataTranformer/UploadedFileTransformer.php
+++ b/src/Form/DataTranformer/UploadedFileTransformer.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Form/Type/FileUploadType.php b/src/Form/Type/FileUploadType.php
index 57b93525095ea1ebd2ffe02541bebaed1ab7f84f..737318b37386dd597612b2e81eb8977e881daacb 100644
--- a/src/Form/Type/FileUploadType.php
+++ b/src/Form/Type/FileUploadType.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Http/UploadedFileResponse.php b/src/Http/UploadedFileResponse.php
index 74976c6ffb6a8e7633991b56d3fe6e8b8d0f6646..c34df880cbee86536072f7dea198088227e634ef 100644
--- a/src/Http/UploadedFileResponse.php
+++ b/src/Http/UploadedFileResponse.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/IrsteaFileUploadBundle.php b/src/IrsteaFileUploadBundle.php
index 0d9bd90ee56cf1bd401d0d3516856270578dfce4..be1f2a88d196bd71f09f97488ff48d6d3d32c959 100644
--- a/src/IrsteaFileUploadBundle.php
+++ b/src/IrsteaFileUploadBundle.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Listener/CreationDataListener.php b/src/Listener/CreationDataListener.php
index 52db9c1585b69d8f7f10c3f778c69cc3b87484f1..a0f879a2699627787348563150b67af7391b78ed 100644
--- a/src/Listener/CreationDataListener.php
+++ b/src/Listener/CreationDataListener.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Listener/UploadedFileListener.php b/src/Listener/UploadedFileListener.php
index e4327e9e5e59caa75a6ecfc5285f52f9fefdfb9e..855ec4cd28e87e23001a30746edbe8f4444d1373 100644
--- a/src/Listener/UploadedFileListener.php
+++ b/src/Listener/UploadedFileListener.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Listener/VirusScannerListener.php b/src/Listener/VirusScannerListener.php
index 974889546b6c5ce0e2fc77e0dc00399a6dab905d..d949ed64b0fd3323651657922d39000279f6193e 100644
--- a/src/Listener/VirusScannerListener.php
+++ b/src/Listener/VirusScannerListener.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Model/FileManagerInterface.php b/src/Model/FileManagerInterface.php
index ef832837fc8c8209bc57258e46195825033286a9..43a5ddd9bd38d503e705854aa90c04966c318fe1 100644
--- a/src/Model/FileManagerInterface.php
+++ b/src/Model/FileManagerInterface.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Model/UploadedFileInterface.php b/src/Model/UploadedFileInterface.php
index ecf712201577773b07468dbaa6f98be7f61c03cd..82d2f882936e8e29859adb9eb78264b07b111346 100644
--- a/src/Model/UploadedFileInterface.php
+++ b/src/Model/UploadedFileInterface.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
@@ -84,7 +84,7 @@ interface UploadedFileInterface
      */
     public function setDisplayName($displayName);
 
-    /** Retourne le nom original du fichier (c-à-d sur le poste de l'utilisateur ayant fait l'upload.)
+    /** Retourne le nom original du fichier (c-à-d sur le poste de l'utilisateur ayant fait l'upload.).
      * @return string
      *
      * @api
diff --git a/src/Service/FileManager.php b/src/Service/FileManager.php
index c4a0f386056e52f538c026a2d97211abea456003..1aece7b31cfdd331b9223f69521650a02907bdf0 100644
--- a/src/Service/FileManager.php
+++ b/src/Service/FileManager.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Service/FileUrlGenerator.php b/src/Service/FileUrlGenerator.php
index a46bc7cf29c5f5c62a99b271b530064dd5e5fefa..2440009812c015c497e583355cfa6b7d82bb9ff1 100644
--- a/src/Service/FileUrlGenerator.php
+++ b/src/Service/FileUrlGenerator.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Service/FileUrlGeneratorInterface.php b/src/Service/FileUrlGeneratorInterface.php
index 3bdbab53957d0582595ca95c6e4989aff6e0fdf2..115274e13a7df999502b16ccab2a8af81115a7a9 100644
--- a/src/Service/FileUrlGeneratorInterface.php
+++ b/src/Service/FileUrlGeneratorInterface.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Twig/FileUploadExtension.php b/src/Twig/FileUploadExtension.php
index eb0b1700fec9fed810df52670994a00138531e24..1738e43656581c615aaf012913b717122854e2ac 100644
--- a/src/Twig/FileUploadExtension.php
+++ b/src/Twig/FileUploadExtension.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Utils/MimeTypeIcon.php b/src/Utils/MimeTypeIcon.php
index cfa4bb4b60778be2a0f980ac7eb5bac276117de1..b6e905692fc732cbf496092aeb5447c1fb6a07aa 100644
--- a/src/Utils/MimeTypeIcon.php
+++ b/src/Utils/MimeTypeIcon.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Validation/FileMimeType.php b/src/Validation/FileMimeType.php
index a34658634954c526170e952b340d9b2bb1912998..a34c137eee621d9da1eaa5447891666e82cddbe4 100644
--- a/src/Validation/FileMimeType.php
+++ b/src/Validation/FileMimeType.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Validation/FileMimeTypeValidator.php b/src/Validation/FileMimeTypeValidator.php
index 6c776895a43dc37ea9d8d55f72e894e1ee5775aa..2182828b4e2581af8661c4f1568fe386946ee65a 100644
--- a/src/Validation/FileMimeTypeValidator.php
+++ b/src/Validation/FileMimeTypeValidator.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Validation/FileSize.php b/src/Validation/FileSize.php
index 80da124516543f370eb9a00802daad07ceae61d7..fe8a1e1f3c43b8fb824da229c10b0640f7886866 100644
--- a/src/Validation/FileSize.php
+++ b/src/Validation/FileSize.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Validation/FileSizeValidator.php b/src/Validation/FileSizeValidator.php
index 1fcd584ce86c155af22e136fea8017cb33d82a66..f177b3b372cac2f02a17d6c45901ce2acb2ed873 100644
--- a/src/Validation/FileSizeValidator.php
+++ b/src/Validation/FileSizeValidator.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Entity/UploadedFileTest.php b/tests/Entity/UploadedFileTest.php
index bf31efd64f4701971a605de2e11df0dce39f7bec..b1f3e32732d87fa65ca023266c86e5fdfd55e81a 100644
--- a/tests/Entity/UploadedFileTest.php
+++ b/tests/Entity/UploadedFileTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Form/DataTranformer/UploadedFileTransformerTest.php b/tests/Form/DataTranformer/UploadedFileTransformerTest.php
index 29a75ce5bd77070fcf3400080ba88c99a8d51fc1..d237019f6afab37d2aa7581cf7d1224a8fba98b9 100644
--- a/tests/Form/DataTranformer/UploadedFileTransformerTest.php
+++ b/tests/Form/DataTranformer/UploadedFileTransformerTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Listener/UploadedFileListenerTest.php b/tests/Listener/UploadedFileListenerTest.php
index f953f4991c0d089cd1662e2f85806090e07985d0..b1e05a718fbf97197026ed40b51833a7d3aac46c 100644
--- a/tests/Listener/UploadedFileListenerTest.php
+++ b/tests/Listener/UploadedFileListenerTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Listener/VirusScannerListenerTest.php b/tests/Listener/VirusScannerListenerTest.php
index 3dfd048a2893d504fff75625418cbad4412f5886..5183e2d0b2fc50c1b43ad1de34b36310747b5fcd 100644
--- a/tests/Listener/VirusScannerListenerTest.php
+++ b/tests/Listener/VirusScannerListenerTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Utils/MimeTypeIconTest.php b/tests/Utils/MimeTypeIconTest.php
index 781d9c6f209439a6a9ca6c3a515ae3728c4ca000..0ba283c9e8977e19e68f2be7b54a982dd6f9024b 100644
--- a/tests/Utils/MimeTypeIconTest.php
+++ b/tests/Utils/MimeTypeIconTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
  * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
- * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
+ * Copyright (C) 2015-2020 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free